aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rw-r--r--system/rmw/README13
-rw-r--r--system/rmw/README.Slackware390
-rw-r--r--system/rmw/rmw.SlackBuild29
-rw-r--r--system/rmw/rmw.info6
-rw-r--r--system/rmw/slack-desc10
5 files changed, 293 insertions, 155 deletions
diff --git a/system/rmw/README b/system/rmw/README
index d51625f97370..9327eef2e95f 100644
--- a/system/rmw/README
+++ b/system/rmw/README
@@ -1,6 +1,7 @@
-rmw (ReMove to Waste) is a safe-remove utility for the command line.
-Its goal is to conform to the FreeDesktop.org Trash specification and
-therefore be compatible with KDE, GNOME, XFCE, and others. Desktop
-integration is optional however, and by default, rmw will only use a
-unique features is the ability to purge files from your Waste/Trash
-directories after x number of days.
+rmw (ReMove to Waste) is a safe-remove utility for the command line. It
+can move and restore files to and from directories specified in a
+configuration file, and can also be integrated with your regular
+desktop trash folder (if your desktop environment uses the
+FreeDesktop.org Trash specification). One of the unique features of rmw
+is the ability to purge items from your waste (or trash) directories
+after x number of days.
diff --git a/system/rmw/README.Slackware b/system/rmw/README.Slackware
index a93201f522a7..0243217f0b0b 100644
--- a/system/rmw/README.Slackware
+++ b/system/rmw/README.Slackware
@@ -1,186 +1,320 @@
-# rmw-0.7.05
-
+# rmw-0.8.1
## Description
-rmw (ReMove to Waste) is a safe-remove utility for the command line.
-Its goal is to conform to [the FreeDesktop.org Trash
-specification](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html)
-and therefore be compatible with KDE, GNOME, XFCE, and others. Desktop
-integration is optional however, and by default, rmw will only use a
-waste folder separated from your desktop trash. One of its unique
-features is the ability to purge files from your Waste/Trash
-directories after x number of days.
+rmw (ReMove to Waste) is a safe-remove utility for the command line. It
+can move and restore files to and from directories specified in a
+configuration file, and can also be integrated with your regular
+desktop trash folder (if your desktop environment uses the
+FreeDesktop.org Trash specification). One of the unique features of rmw
+is the ability to purge items from your waste (or trash) directories
+after x number of days.
Web site: <https://remove-to-waste.info/>
-## Build Status
+[![codeql-badge]][codeql-url]
+[![c-cpp-badge]][c-cpp-url]
-* [![Build Status](https://travis-ci.org/theimpossibleastronaut/rmw.svg?branch=master)](https://travis-ci.org/theimpossibleastronaut/rmw)
-* [![Build Status](https://semaphoreci.com/api/v1/andy5995/rmw-3/branches/master/badge.svg)](https://semaphoreci.com/andy5995/rmw-3)
+[c-cpp-badge]: https://github.com/theimpossibleastronaut/rmw/actions/workflows/c-cpp.yml/badge.svg
+[c-cpp-url]: https://github.com/theimpossibleastronaut/rmw/actions/workflows/c-cpp.yml
+[codeql-badge]: https://github.com/theimpossibleastronaut/rmw/workflows/CodeQL/badge.svg
+[codeql-url]: https://github.com/theimpossibleastronaut/rmw/actions?query=workflow%3ACodeQL
-## Screenshots
+rmw is for people who sometimes use rm or rmdir at the command line and
+would occasionally like an alternative choice. It's not intended or
+designed to act as a replacement for rm, as it's more closely related
+to how the [FreeDesktop.org trash
+system](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html)
+functions.
-![rmw usage output](https://remove-to-waste.info/images/Screenshot_2020-04-11.png)
+## Features and Usage
+<!-- Don't make changes below this line, but to src/man/rmw.1 instead. -->
+<!-- This is generated with 'man --nh --no-justification ./rmw.1 | col -bx > plaintext' -->
+```
+OPTIONS
+ -h, --help
+ show help for command line options
-[More Screenshots](https://remove-to-waste.info/screenshots.html)
+ -c, --config FILE
+ use an alternate configuration
-## Contact / Support
+ -l, --list
+ list waste directories
-* [Bug Reports and Feature Requests](https://github.com/theimpossibleastronaut/rmw/blob/master/CONTRIBUTING.md#bug-reports-and-feature-requests)
-* [General Help, Support, Discussion](https://remove-to-waste.info/#support)
+ -g[N_DAYS], --purge[=N_DAYS]
+ purge expired files; optional argument 'N_DAYS' overrides
+ 'expire_age' value from the configuration file (Examples: -g90,
+ --purge=90)
-## Required libraries
+ By default, purging is disabled ('expire_age' is set to '0' in the
+ configuration file). To enable, set the 'expire_age' value in your
+ config file to a value greater than '0'
-* libncursesw (ncurses-devel on some systems, such as CentOS)
-* gettext (or use --disable-nls if you only need English language support)
+ You can use '-vvg' to see when the remaining files in the waste
+ directories will expire.
-If you are building from source, you will need the libncursesw(5 or
-6)-dev package from your operating system distribution. On some systems
-just the ncurses packages is needed, and it's often already installed.
+ -o, --orphaned
+ check for orphaned files (maintenance)
-## Compiling
+ An orphan is an item in a waste directory that has no
+ corresponding .trashinfo file, or vice versa. This option is
+ intended primarily for developers. Orphans may happen while
+ testing code changes or if rmw is unintentionally released with a
+ bug.
+ (see also: <https://remove-to-waste.info/faq.html#dot_trashinfo>)
-### As a normal user:
+ -f, --force
+ allow purging of expired files
-Use `../configure --help` to view available compile-time options.
+ rmw will refuse to purge directories if they contain non-writable
+ files or subdirectories. rmw will show a message that tells you
+ "permission denied; directory still contains files". To override,
+ you can re-run rmw using '-ffg'.
- mkdir build
- cd build
- ../configure
- make
+ By default, force is not required to enable the purge feature. If
+ you would like to require it, add 'force_required' to your config
+ file.
-### Installing without superuser privileges
+ --empty
+ completely empty (purge) all waste directories
-If you would like to install rmw without superuser privileges, use a prefix
-that you have write access to. Example:
+ -r, -R, --recursive
+ option used for compatibility with rm (recursive operation is
+ enabled by default)
- ../configure --prefix=$HOME/usr
- make
- make install
+ -v, --verbose
+ increase output messages
-The rmw binary will be installed to `$HOME/usr/bin` and documentation to
-`$HOME/usr/doc`.
+ -w, --warranty
+ display warranty
-### If configure fails
+ -V, --version
+ display version and license information
-On **OSX**, ncursesw isn't provided by default but can be installed
-using `brew install ncurses`. Then precede `./configure` with
-`PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig"` Example:
+ RESTORING
+ -z, --restore FILE(s)
- PKG_CONFIG_PATH="/usr/local/opt/ncurses/lib/pkgconfig" ../configure
+ To restore items, specify the path to them in the <WASTE>/files
+ directory (wildcards ok).
-If you can't use [brew](https://brew.sh/), or install libncursesw or
-libmenuw some other way, rmw will use `ncurses` but you may experience
-[this minor
-bug](https://github.com/theimpossibleastronaut/rmw/issues/205).
+ When restoring an item, if a file or directory with the same name
+ already exists at the destination, the item being restored will
+ have a time/date string (formatted as "_%H%M%S-%y%m%d") appended
+ to it (e.g. 'foo_164353-210508').
-Note: rmw was built on **Windows** 2 years ago using Cygwin but it
-didn't use the proper directories. We have no Windows developers
-working on this project and are hoping that some will join soon!. As
-stated in the description, the goal of this project is a
-"cross-platform" utility; so getting rmw to work on Windows is
-still on the TODO list.
+ -s, --select
+ select files from list to restore
-## Uninstall / Cleaning up
+ Displays a list of items in your waste directories. You can use
+ the left/right cursor keys to switch between waste directories.
+ Use the space bar to select the items you wish to restore, then
+ press enter to restore all selected items.
-* make uninstall (uninstalls the program if installed with 'make install`)
-* make distclean (removes files in the build directory created by
-`configure` and 'make')
+ -u, --undo-last
+ undo last move
-## Usage
-```
-== First-time use ==
+ Restores files that were last rmw'ed
+
+ -m, --most-recent-list
+ list most recently rmw'ed files
+
+ENVIRONMENT
+ These variables are intended only to be used for testing. See the code-
+ testing page on the rmw website for more details.
+
+ RMW_FAKE_HOME
+
+ RMW_FAKE_YEAR
+
+ RMW_FAKE_MEDIA_ROOT
+
+FILES
+ On some systems, $HOME/.config and $HOME/.local/share may be replaced
+ with $XDG_CONFIG_HOME and $XDG_DATA_HOME
+
+ $HOME/.config/rmwrc
+ configuration file
+
+ $HOME/.local/share/rmw/purge-time
+ text file that stores the time of the last purge
+
+ $HOME/.local/share/rmw/mrl
+ text file containing a list of items that were last rmw'ed
+
+NOTES
+ rmw will not move items from one file system to another. If you try to
+ rmw a file but don't have a waste directory configured that matches the
+ file system on which it resides, rmw will refuse to do anything with it.
+
+ DESKTOP INTEGRATION
+ Items will be moved to a waste basket in the same manner as when using
+ the "move to trash" option from your desktop GUI. They will be separated
+ from your desktop trash by default; or if you wish for them to share the
+ same "trash" directory, uncomment the line (in your config file):
+
+ (Note that this does not apply to MacOS; while rmw is yet unable to
+ integrate with the desktop trash directory, you'll still be able to use
+ the default Waste directory.)
+
+ WASTE = $HOME/.local/share/Trash
+
+ then comment out the line
+
+ WASTE = $HOME/.local/share/Waste
+
+ You can reverse which directories are enabled at any time if you ever
+ change your mind. If both directories are on the same filesystem, rmw
+ will use the directory listed first in your config file.
+
+ It can be beneficial to have them both uncommented. If your desktop trash
+ directory (~/.local/share/Trash) is listed after the rmw default
+ (~/.local/share/Waste) and uncommented, rmw will place newly rmw'ed items
+ into the default, and it will purge expired files from both.
-After rmw is installed, running `rmw` will create a configuration file
-(rmwrc) in $HOME/.config (or $XDG_CONFIG_HOME). Edit the file as
-desired.
+ When rmw'ing an item, if a file or directory with the same name already
+ exists in the waste (or trash) directory, it will not be overwritten;
+ instead, the current file being rmw'ed will have a time/date string
+ (formatted as "_%H%M%S-%y%m%d") appended to it (e.g.
+ 'foo_164353-210508').
-== Configuration File ==
+ REMOVABLE MEDIA
+ The first time rmw is run, it will create a configuration file. Waste
+ directories will be created automatically (Except for when the
+ ',removable' option is used; see below) e.g., if
+ '$HOME/.local/share/Waste' is uncommented in the config file, these two
+ directories will be created:
-Documentation explaining the configuration can be found in your config
-file.
+ $HOME/.local/share/Waste/files
+ $HOME/.local/share/Waste/info
-Waste folders will be created automatically; e.g. if '$HOME/.local/share/Waste'
-is uncommented in the config file, these 3 directories will be created:
-$HOME/.local/share/Waste
-$HOME/.local/share/Waste/files
-$HOME/.local/share/Waste/info
+ If a WASTE directory is on removable media, you may append ',removable'.
+ In that case, rmw will not try to create it; it must be initially created
+ manually. When rmw runs, it will check to see if the directory exists
+ (which means the removable media containing the directory is currently
+ mounted). If rmw can't find the directory, it is assumed the media
+ containing the directory isn't mounted and that directory will not be
+ used for the current run of rmw.
-If one of the WASTE folders is on removable media, then the user has the
-option of appending ',removable'.
+ With the media mounted, once you manually create the waste directory for
+ that device (e.g. "/mnt/flash/.Trash-$UID") and run rmw, it will
+ automatically create the two required child directories "files" and
+ "info".
-If a folder has ',removable' appended to it, rmw will not try to create
-it; it must be initially created manually. If the folder exists when
-rmw is run, it will be used; if not, it will be skipped. Once you
-create "example_waste", rmw will automatically create
-example_waste/info and example_waste/files
+EXAMPLES
+ RESTORING
+ rmw -z ~/.local/share/Waste/files/foo
+ rmw -z ~/.local/share/Waste/files/bars*
- e.g.: WASTE=/mnt/sda10000/example_waste, removable
+ CONFIGURATION
+ WASTE=/mnt/flash/.Trash-$UID, removable
+ When using the removable attribute, you must also manually create
+ the directory
-== Features and Options ==
+ expire_age = 45
+ rmw will permanently delete files that have been in the waste (or
+ trash) for more than 45 days.
-Usage: rmw [OPTION]... FILE...
-ReMove the FILE(s) to a WASTE directory listed in configuration file
+AUTHORS
+ Project Manager: Andy Alt
+ The RMW team: see AUTHORS.md
- or: rmw -s
- or: rmw -u
- or: rmw -z FILE...
-Restore FILE(s) from a WASTE directory
+REPORTING BUGS
+ Report bugs to <https://github.com/theimpossibleastronaut/rmw/issues>.
--h, --help
--c, --config filename use an alternate configuration
--l, --list list waste directories
--g, --purge run purge even if it's been run today
--o, --orphaned check for orphaned files (maintenance)
--f, --force allow purge to run
--e, --empty completely empty (purge) all waste folders
--r, -R, --recursive option used for compatibility with rm
- (recursive operation is enabled by default)
--v, --verbose increase output messages
--w, --warranty display warranty
--V, --version display version and license information
+COPYRIGHT
+ Copyright © 2012-2021 Andy Alt
+ License GPLv3+: GNU GPL version 3 or later
+ <https://gnu.org/licenses/gpl.html>.
+ This is free software: you are free to change and redistribute it. There
+ is NO WARRANTY, to the extent permitted by law.
+```
- ===] Restoring [===
+## Screenshots
--z, --restore <wildcard filename(s) pattern> (e.g. ~/.local/share/Waste/files/foo*)
--s, --select select files from list to restore
--u, --undo-last undo last ReMove
+See the [Screenshots](https://remove-to-waste.info/screenshots.html)
+page on the website.
-== Purging ==
+## Contact / Support
-If purging is 'on', rmw will permanently delete files from the folders
-specified in the configuration file after 'x' number of days. Purging can be
-disabled by using 'purge_after = 0' in configuration file. rmw will only check
-once per day if it's time to purge (use -g to check more often).
+* [Bug Reports and Feature Requests](https://github.com/theimpossibleastronaut/rmw/blob/master/CONTRIBUTING.md#bug-reports-and-feature-requests)
+* [General Help, Support, Discussion](https://remove-to-waste.info/#support)
-The time of the last automatic purge check is stored in `purge-time`,
-located in $HOME/.local/share/rmw (or $XDG_DATA_HOME/rmw).
+## Installation
-== -e, --empty ==
+rmw is available in the [homebrew and
+linuxbrew](https://github.com/Homebrew/) repositories; or there may may
+be a binary package available for your OS. You can view a list at
+[Repology](https://repology.org/project/rmw/versions) to see in which
+repositories rmw is included. Since v0.7.09, x86_64 AppImages are
+available.
-Completely empty (purge) all waste folders
+AppImages and maintainer-created amd64 Debian packages are available in
+the [releases section][releases-url].
-== -u, --undo ==
+[releases-url]: https://github.com/theimpossibleastronaut/rmw/releases
-Restores files that were last rmw'ed. No arguments for `-u` are
-necessary. The list of files that were last rmw'ed is stored in `mrl`, located in
-$HOME/.local/share/rmw (or $XDG_DATA_HOME/rmw).
+## Installing from source
-== -z, --restore ==
+### Required libraries
-To restore a file, or multiple files, specify the path to them in the
-<WASTE>/files folder (wildcards ok).
-e.g. 'rmw -z ~/.local/share/Waste/files/foo*'
+* libncursesw (ncurses-devel on some systems, such as CentOS)
+* gettext (or use '-Dnls=false' if you only need English language support)
-== -f, --force ==
+If you're building from source, you will need the libncursesw(5 or
+6)-dev package from your operating system distribution. On some systems
+just the ncurses packages is needed, and it's often already installed.
-A change from previous versions, purge is allowed to run without the '-f'
-option. If you'd rather require the use of '-f', you can add the line
-'force_required' in your configuration file.
+### Compiling
-rmw will refuse to purge directories if they contain non-writable
-subdirectories. You can use -f 2 times if you ever see a message that tells
-you "permission denied; directory still contains files" (e.g. rwm -gff).
+#### As a normal user:
+(This examples places the generated files to a separate folder, but you can
+run 'configure' from any directory you like.)
+
+```
+ meson builddir
+ cd builddir
+ ninja
```
+
+Use `meson configure` in the build dir to view or change available
+options.
+
+#### Installing without superuser privileges
+
+If you would like to install rmw without superuser privileges, use a prefix
+that you have write access to. Example:
+
+ meson -Dprefix=$HOME/.local builddir
+
+or while in the build dir
+
+ meson configure -Dprefix=$HOME/.local
+
+To install:
+
+ meson install
+
+In the example above, the rmw binary will be installed to
+`$HOME/.local/bin` and documentation to `$HOME/.local/doc`.
+
+### If ncurses can't be found
+
+On **macOS**, you may get a message during 'configure' that the menu
+library can't be found. The ncurses menu library isn't provided by
+default but can be installed using `brew install ncurses`. Then run
+'configure' like this:
+
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/ncurses/lib/pkgconfig
+
+Or you can install [rmw using
+brew](https://formulae.brew.sh/formula/rmw).
+
+### Uninstall
+
+ ninja uninstall (uninstalls the program if installed with 'ninja install`)
+
+Note that if using Meson version < 0.60.0, uninstall does not remove
+any language files that were installed. To remove them:
+
+ sh uninstall_langs.sh
diff --git a/system/rmw/rmw.SlackBuild b/system/rmw/rmw.SlackBuild
index fe6cf613f217..1fcbab1ea86b 100644
--- a/system/rmw/rmw.SlackBuild
+++ b/system/rmw/rmw.SlackBuild
@@ -2,7 +2,7 @@
#
# Slackware build script for rmw
#
-# Copyright 2019-2021 / Andy Alt / United States
+# Copyright 2019-2022 / Andy Alt / United States
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rmw
-VERSION=${VERSION:-0.7.06}
+VERSION=${VERSION:-0.8.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -79,17 +79,20 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --mandir=/usr/man \
- --localedir=/usr/share/locale \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
-make
-make install-strip DESTDIR=$PKG
+mkdir build
+cd build
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ meson .. \
+ --buildtype=release \
+ -Dstrip=true \
+ --mandir=/usr/man \
+ --prefix=/usr \
+ --localedir=/usr/share/locale \
+ -Ddocdir=/usr/doc/$PRGNAM-$VERSION
+ ninja
+ DESTDIR=$PKG ninja install
+cd ..
#
# rmw no longer searches for a system-wide config file
diff --git a/system/rmw/rmw.info b/system/rmw/rmw.info
index 778de6ab1236..d90f70a52f26 100644
--- a/system/rmw/rmw.info
+++ b/system/rmw/rmw.info
@@ -1,8 +1,8 @@
PRGNAM="rmw"
-VERSION="0.7.06"
+VERSION="0.8.1"
HOMEPAGE="https://remove-to-waste.info/"
-DOWNLOAD="https://github.com/theimpossibleastronaut/rmw/releases/download/v0.7.06/rmw-0.7.06.tar.gz"
-MD5SUM="9b5e0fcda2e32b1886efd50030e51a5e"
+DOWNLOAD="https://github.com/theimpossibleastronaut/rmw/releases/download/v0.8.1/rmw-0.8.1.tar.gz"
+MD5SUM="f27b7de24fec27832d2fba2091ab02f8"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/system/rmw/slack-desc b/system/rmw/slack-desc
index ad3af3da9dd5..855e1f8b375f 100644
--- a/system/rmw/slack-desc
+++ b/system/rmw/slack-desc
@@ -9,11 +9,11 @@
rmw: rmw (command line trash can/recycle bin)
rmw:
rmw: rmw (ReMove to Waste) is a safe-remove utility for the command line.
-rmw: Its goal is to conform to the FreeDesktop.org Trash specification and
-rmw: therefore be compatible with KDE, GNOME, XFCE, and others. Desktop
-rmw: integration is optional however, and by default, rmw will only use a
-rmw: waste folder separated from your desktop trash. One of its unique
-rmw: features is the ability to purge files from your Waste/Trash
+rmw: It can move and restore files to and from directories specified in a
+rmw: configuration file, and can also be integrated with your regular
+rmw: desktop trash folder (if your desktop environment uses the
+rmw: FreeDesktop.org Trash specification). One of the unique features of
+rmw: rmw is the ability to purge items from your waste (or trash)
rmw: directories after x number of days.
rmw:
rmw: Homepage: https://remove-to-waste.info/