diff --git a/system/fatrace/README b/system/fatrace/README index e986031f20..edd2a3600c 100644 --- a/system/fatrace/README +++ b/system/fatrace/README @@ -1,10 +1,17 @@ +fatrace (file access trace) + fatrace reports file access events from all running processes. Its main purpose is to find processes which keep waking up the disk unnecessarily and thus prevent some power saving. -Included is a python3 script called "power-usage-report", which uses -fatrace and powertop to build a textual report from one minute of -measuring power usage and file accesses. This does not take any -arguments or requires any interactivity, so is very simple to use and +Included is a python3 script called "power-usage-report", which +uses fatrace and powertop to build a textual report from one minute +of measuring power usage and file accesses. This does not take any +arguments or require any interactivity, so it's very simple to use and serves as a starting point for bug reports or optimizing a particular installation. + +fatrace has self-test scripts that can be run during the build. These +are disabled by default, because they create a file outside of the +temp directory (/etc/test.txt). If you want to run the tests, export +RUNTESTS=yes in the environment. diff --git a/system/fatrace/fatrace.SlackBuild b/system/fatrace/fatrace.SlackBuild index 17bc63d7b3..da5374c384 100644 --- a/system/fatrace/fatrace.SlackBuild +++ b/system/fatrace/fatrace.SlackBuild @@ -2,30 +2,21 @@ # Slackware build script for fatrace -# Copyright 2018-2020 Leonardo Citrolo, Italy -# All rights reserved. -# -# Redistribution and use of this script, with or without modification, is -# permitted provided that the following conditions are met: -# -# 1. Redistributions of this script must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# 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. +# Originally written by Leonardo Citrolo. +# Now maintained by B. Watson (urchlay@slackware.uk). + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# 20230509 bkw: +# - new maintainer. +# - relicense as WTFPL with permission from original author. +# - update for v0.17.0. +# - add RUNTESTS environment variable. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=fatrace -VERSION=${VERSION:-0.15} +VERSION=${VERSION:-0.17.0} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -38,9 +29,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -70,30 +58,34 @@ rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* +tar xvf $CWD/${PRGNAM}_${VERSION}.orig.tar.gz cd $PRGNAM-$VERSION chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ -sed -i -e "/^CFLAGS/s/?=/+=/" -e "s%share/man/man1%man/man1%" Makefile +sed -i -e "/^CFLAGS/s,-O2,$SLKCFLAGS," \ + -e 's,share/man,man,' \ + -e 's,-Werror,,' \ + Makefile -CFLAGS="$SLKCFLAGS" make +make +strip $PRGNAM make install DESTDIR=$PKG PREFIX=/usr +gzip $PKG/usr/man/man*/* -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 +# This is disabled by default because it creates (and deletes) an +# /etc/test.txt (outside of $TMP). +if [ "${RUNTESTS:-no}" = "yes" ]; then + # Tests assume wrong path (our /usr/bin/head is a symlink to /bin/head) + sed -i 's,/usr/bin/,/bin/,' tests/fatrace + sh tests/run +fi -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 - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a COPYING NEWS \ - $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -a COPYING NEWS $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc diff --git a/system/fatrace/fatrace.info b/system/fatrace/fatrace.info index 5afad456fe..4bc0b631af 100644 --- a/system/fatrace/fatrace.info +++ b/system/fatrace/fatrace.info @@ -1,10 +1,10 @@ PRGNAM="fatrace" -VERSION="0.15" +VERSION="0.17.0" HOMEPAGE="https://launchpad.net/fatrace" -DOWNLOAD="https://launchpad.net/fatrace/trunk/0.15/+download/fatrace-0.15.tar.xz" -MD5SUM="d33ec7c650ab25a835540e802bfab09f" +DOWNLOAD="https://launchpad.net/debian/+archive/primary/+sourcefiles/fatrace/0.17.0-1/fatrace_0.17.0.orig.tar.gz" +MD5SUM="8671c90caebc668abfbc63efabeb89c6" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Leo C." -EMAIL="leoc@gmx.com" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" diff --git a/system/fatrace/slack-desc b/system/fatrace/slack-desc index 10d928650f..f9527c7825 100644 --- a/system/fatrace/slack-desc +++ b/system/fatrace/slack-desc @@ -12,8 +12,8 @@ fatrace: fatrace reports file access events from all running processes. fatrace: Its main purpose is to find processes which keep waking up the disk fatrace: unnecessarily and thus prevent some power saving. fatrace: -fatrace: -fatrace: -fatrace: fatrace: Homepage: https://launchpad.net/fatrace fatrace: +fatrace: +fatrace: +fatrace: