diff options
author | andy5995 <andy400-dev@yahoo.com> | 2021-07-11 20:51:04 +0200 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2021-07-12 18:53:15 +0700 |
commit | 9453e66b2cff3b29bc4760bfc6d87731457e76fb (patch) | |
tree | ba161d36373995310af356b0d3dcbe7e01edbab2 /system | |
parent | 3628cf7f3c2077a27ae4607dd713f09f85efefac (diff) |
system/rmw: Updated for version 0.8.0_2.
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system')
-rw-r--r-- | system/rmw/README | 13 | ||||
-rw-r--r-- | system/rmw/README.Slackware | 390 | ||||
-rw-r--r-- | system/rmw/rmw.SlackBuild | 35 | ||||
-rw-r--r-- | system/rmw/rmw.info | 8 | ||||
-rw-r--r-- | system/rmw/slack-desc | 10 |
5 files changed, 298 insertions, 158 deletions
diff --git a/system/rmw/README b/system/rmw/README index d51625f973709..9327eef2e95f6 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 a93201f522a7d..7e0afd8f31e84 100644 --- a/system/rmw/README.Slackware +++ b/system/rmw/README.Slackware @@ -1,186 +1,320 @@ -# rmw-0.7.05 - +# rmw-0.8.0 ## 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 + -e, --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 -After rmw is installed, running `rmw` will create a configuration file -(rmwrc) in $HOME/.config (or $XDG_CONFIG_HOME). Edit the file as -desired. + -m, --most-recent-list + list most recently rmw'ed files -== Configuration File == +ENVIRONMENT + These variables are intended only to be used for testing. See the code- + testing page on the rmw website for more details. -Documentation explaining the configuration can be found in your config -file. + RMW_FAKE_HOME -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 + RMW_FAKE_YEAR -If one of the WASTE folders is on removable media, then the user has the -option of appending ',removable'. + RMW_FAKE_MEDIA_ROOT -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 +FILES + On some systems, $HOME/.config and $HOME/.local/share may be replaced + with $XDG_CONFIG_HOME and $XDG_DATA_HOME - e.g.: WASTE=/mnt/sda10000/example_waste, removable + $HOME/.config/rmwrc + configuration file -== Features and Options == + $HOME/.local/share/rmw/purge-time + text file that stores the time of the last purge -Usage: rmw [OPTION]... FILE... -ReMove the FILE(s) to a WASTE directory listed in configuration file + $HOME/.local/share/rmw/mrl + text file containing a list of items that were last rmw'ed - or: rmw -s - or: rmw -u - or: rmw -z FILE... -Restore FILE(s) from a WASTE directory +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. --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 + 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.) - ===] Restoring [=== + WASTE = $HOME/.local/share/Trash --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 + then comment out the line -== Purging == + WASTE = $HOME/.local/share/Waste -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). + 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. -The time of the last automatic purge check is stored in `purge-time`, -located in $HOME/.local/share/rmw (or $XDG_DATA_HOME/rmw). + 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. -== -e, --empty == + 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'). -Completely empty (purge) all waste folders + 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: -== -u, --undo == + $HOME/.local/share/Waste/files + $HOME/.local/share/Waste/info -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). + 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. -== -z, --restore == + 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". -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*' +EXAMPLES + RESTORING + rmw -z ~/.local/share/Waste/files/foo + rmw -z ~/.local/share/Waste/files/bars* -== -f, --force == + CONFIGURATION + WASTE=/mnt/flash/.Trash-$UID, removable + When using the removable attribute, you must also manually create + the directory -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. + expire_age = 45 + rmw will permanently delete files that have been in the waste (or + trash) for more than 45 days. -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). +AUTHORS + Project Manager: Andy Alt + The RMW team: see AUTHORS.md +REPORTING BUGS + Report bugs to <https://github.com/theimpossibleastronaut/rmw/issues>. + +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. ``` + +## Screenshots + +See the [Screenshots](https://remove-to-waste.info/screenshots.html) +page on the website. + +## Contact / Support + +* [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) + +## Installation + +[![Packaging status](https://repology.org/badge/vertical-allrepos/rmw.svg)](https://repology.org/project/rmw/versions) + +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. + +AppImages and maintainer-created amd64 Debian packages are available in +the [releases section][releases-url]. + +[releases-url]: https://github.com/theimpossibleastronaut/rmw/releases] + +## Installing from source + +### Required libraries + +* libncursesw (ncurses-devel on some systems, such as CentOS) +* gettext (or use '-Dnls=false' if you only need English language support) + +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. + +### Compiling + +#### 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 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: + + ninja 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 the 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 bee1c166a75a0..8b744a35e24df 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 2021 / Andy Alt / Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,11 +21,13 @@ # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# cd $(dirname $0) ; CWD=$(pwd) PRGNAM=rmw -VERSION=${VERSION:-0.7.06} +VERSION=${VERSION:-0.8.0_2} +SRCNAM=$(echo $VERSION | tr _ -) BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -60,9 +62,9 @@ set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz -cd $PRGNAM-$VERSION +rm -rf $SRCNAM-$VERSION +tar xvf $CWD/$PRGNAM-$SRCNAM.tar.gz +cd $PRGNAM-$SRCNAM chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -70,23 +72,26 @@ 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 {} \; +mkdir build +cd build CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ -./configure \ +meson .. \ + --buildtype=release \ + -Dstrip=true \ --prefix=/usr \ --mandir=/usr/man \ - --localedir=/usr/share/locale \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ - --build=$ARCH-slackware-linux + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --localedir=/usr/share/locale -make -make install-strip DESTDIR=$PKG +ninja +DESTDIR=$PKG ninja install +cd .. +# meson configures stripping the binary when installing above # -# rmw no longer searches for a system-wide config file -# -#mkdir -p $PKG/etc -#cat rmwrc > $PKG/etc/rmwrc.new +#find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ +# | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true find $PKG/usr/man -type f -exec gzip -9 {} \; for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done diff --git a/system/rmw/rmw.info b/system/rmw/rmw.info index 778de6ab12367..0c123a78c4a0a 100644 --- a/system/rmw/rmw.info +++ b/system/rmw/rmw.info @@ -1,10 +1,10 @@ PRGNAM="rmw" -VERSION="0.7.06" +VERSION="0.8.0_2" 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.0/rmw-0.8.0-2.tar.gz" +MD5SUM="96fb309442916eb040593f9ebf571bad" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="" +REQUIRES="meson" MAINTAINER="Andy Alt" EMAIL="andy400-dev@yahoo.com" diff --git a/system/rmw/slack-desc b/system/rmw/slack-desc index ad3af3da9dd55..855e1f8b375fa 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/ |