diff options
author | B. Watson <yalhcru@gmail.com> | 2022-03-15 16:02:24 -0400 |
---|---|---|
committer | B. Watson <yalhcru@gmail.com> | 2022-03-17 12:38:18 -0400 |
commit | 8fbe0b1fd3d1eb8b7d67de7babb2c252c318f3cd (patch) | |
tree | 5c6b23518182f4db0e35790c4576405a6c5137c0 /network/gui-ufw | |
parent | a68cb824c4e56fcd78de2eed2c2912fa6d138262 (diff) |
network/gui-ufw: Fix broken wrapper scripts.
Signed-off-by: B. Watson <yalhcru@gmail.com>
Diffstat (limited to 'network/gui-ufw')
-rw-r--r-- | network/gui-ufw/gufw.wrapper | 18 | ||||
-rw-r--r-- | network/gui-ufw/gui-ufw.SlackBuild | 51 | ||||
-rw-r--r-- | network/gui-ufw/slack-desc | 2 |
3 files changed, 43 insertions, 28 deletions
diff --git a/network/gui-ufw/gufw.wrapper b/network/gui-ufw/gufw.wrapper new file mode 100644 index 0000000000000..b5eedf591bb2a --- /dev/null +++ b/network/gui-ufw/gufw.wrapper @@ -0,0 +1,18 @@ +#!/bin/bash + +# 20220315 bkw: replacement wrapper script for gui-ufw, part of the +# gui-ufw SlackBuilds.org build, by B. Watson. WTFPL licensed. + +# find the path to the script, in a way that won't break if the +# python version gets upgraded, and works on either 32-bit or 64-bit +# Slackware. +PYVER="$( python3 --version | cut -d' ' -f2 | cut -d. -f1,2 )" +for i in lib64 lib; do + dir="/usr/$i/python$PYVER/site-packages/gufw" + [ -d "$dir" ] && break +done + +# kdesu takes care of allowing access to the X server (no need for +# xhost commands) and works fine regardless of desktop environment or +# window manager. it doesn't rely on policykit, which is a nice bonus. +exec kdesu -c "python3 $dir/gufw.py" diff --git a/network/gui-ufw/gui-ufw.SlackBuild b/network/gui-ufw/gui-ufw.SlackBuild index b56477b3a2228..306d92af576ef 100644 --- a/network/gui-ufw/gui-ufw.SlackBuild +++ b/network/gui-ufw/gui-ufw.SlackBuild @@ -22,11 +22,17 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20220315 bkw: Modified by SlackBuilds.org, BUILD=2: +# - fix broken wrapper scripts that prevented the app from starting +# on 32-bit Slackware, or after a python3 upgrade, or if the user +# uses runlevel 3. +# - fix repeated builds (we were missing "rm -rf $PRGNAM-$VERSION"). + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=gui-ufw VERSION=${VERSION:-19.10.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -38,9 +44,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 @@ -50,51 +53,45 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i586" ]; then - SLKCFLAGS="-O2 -march=i586 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686 -mtune=i686" - LIBDIRSUFFIX="" -elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2 -fPIC" - LIBDIRSUFFIX="64" -else - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" -fi +# 20220315 bkw: No compiled code here, and setup.py knows about +# lib64 directories already. set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP +rm -rf $PRGNAM-$VERSION mkdir $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.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 \ + -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 {} \; - -# Point gufw-pkexec to the correct python3 location and version. -sed -i "s|lib/python3.5|lib$LIBDIRSUFFIX/python3.7|g" bin/gufw-pkexec + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ python3 setup.py install --prefix=/usr --root=$PKG +# 20220315 bkw: upstream's wrapper scripts are broken in multiple ways: +# - hardcoded (wrong) path to gufw.py +# - relies on loginctl, meaning it'll never work for users who +# use runlevel 3 (console login + startx) +# - the xhost stuff unconditionally removes localuser:root access +# when gufw exits, even if the user put it there before the +# script was run +# Replace gufw and gufw-pkexec with something that actually works. +rm -f $PKG/usr/bin/* +install -oroot -groot -m0755 $CWD/gufw.wrapper $PKG/usr/bin/gufw + # Move the manpage to a sane directory. mv $PKG/usr/share/man $PKG/usr # Clean up some duplicates rm -rf $PKG/usr/share/doc -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 +gzip -9 $PKG/usr/man/man*/* mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a COPYING* README \ diff --git a/network/gui-ufw/slack-desc b/network/gui-ufw/slack-desc index 467139f2035cd..35569e8c845f9 100644 --- a/network/gui-ufw/slack-desc +++ b/network/gui-ufw/slack-desc @@ -10,10 +10,10 @@ gui-ufw: gui-ufw (GUI for Uncomplicated Firewall) gui-ufw: gui-ufw: A very user-friendly and uncomplicated way to manage ufw. gui-ufw: +gui-ufw: Homepage: https://gufw.org/ gui-ufw: gui-ufw: gui-ufw: gui-ufw: gui-ufw: -gui-ufw: Homepage: https://gufw.org/ gui-ufw: |