summaryrefslogtreecommitdiff
path: root/source/xap
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap')
-rw-r--r--source/xap/xlockmore/doinst.sh14
-rw-r--r--source/xap/xlockmore/xlock.pam5
-rwxr-xr-xsource/xap/xlockmore/xlockmore.SlackBuild19
-rw-r--r--source/xap/xscreensaver/doinst.sh15
-rwxr-xr-xsource/xap/xscreensaver/xscreensaver.SlackBuild35
-rw-r--r--source/xap/xscreensaver/xscreensaver.pam3
6 files changed, 78 insertions, 13 deletions
diff --git a/source/xap/xlockmore/doinst.sh b/source/xap/xlockmore/doinst.sh
new file mode 100644
index 00000000..3c7968d9
--- /dev/null
+++ b/source/xap/xlockmore/doinst.sh
@@ -0,0 +1,14 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/pam.d/xlock.new
diff --git a/source/xap/xlockmore/xlock.pam b/source/xap/xlockmore/xlock.pam
new file mode 100644
index 00000000..fcb7a466
--- /dev/null
+++ b/source/xap/xlockmore/xlock.pam
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth include system-auth
+account include system-auth
+password include system-auth
+session include system-auth
diff --git a/source/xap/xlockmore/xlockmore.SlackBuild b/source/xap/xlockmore/xlockmore.SlackBuild
index 6e884cf6..25322d6c 100755
--- a/source/xap/xlockmore/xlockmore.SlackBuild
+++ b/source/xap/xlockmore/xlockmore.SlackBuild
@@ -85,10 +85,13 @@ mkdir -p $PKG/usr/doc/xlockmore-$VERSION
cp -a README $PKG/usr/doc/xlockmore-$VERSION/README
cp -a docs/* $PKG/usr/doc/xlockmore-$VERSION
cp -a $CWD/l-bob.README $PKG/usr/doc/xlockmore-$VERSION
-## Normal compile:
-#./configure --prefix=/usr --without-opengl --without-mesagl \
-# --without-dtsaver --without-rplay --without-nas --disable-bomb
-# Use MesaGL/OpenGL:
+
+if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
+ USE_PAM="--enable-pam"
+else
+ unset USE_PAM
+fi
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -101,6 +104,7 @@ CXXFLAGS="$SLKCFLAGS" \
--without-motif \
--without-esound \
--without-gtk \
+ $USE_PAM \
--enable-appdefaultdir=/etc/X11/app-defaults \
--build=$ARCH-slackware-linux || exit 1
@@ -123,6 +127,13 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+if [ ! -z $USE_PAM ]; then
+ mkdir -p $PKG/etc/pam.d
+ cat $CWD/xlock.pam > $PKG/etc/pam.d/xlock.new
+ # Only used for PAM:
+ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+fi
+
# Build the package:
cd $PKG
/sbin/makepkg -l y -c n $TMP/xlockmore-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/xap/xscreensaver/doinst.sh b/source/xap/xscreensaver/doinst.sh
new file mode 100644
index 00000000..f2744d09
--- /dev/null
+++ b/source/xap/xscreensaver/doinst.sh
@@ -0,0 +1,15 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/pam.d/xscreensaver.new
+
diff --git a/source/xap/xscreensaver/xscreensaver.SlackBuild b/source/xap/xscreensaver/xscreensaver.SlackBuild
index 5ecaa8e6..cb9c10cd 100755
--- a/source/xap/xscreensaver/xscreensaver.SlackBuild
+++ b/source/xap/xscreensaver/xscreensaver.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2012, 2013, 2014, 2016, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012, 2013, 2014, 2016, 2018, 2019, 2020 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -71,9 +71,16 @@ rm -rf xscreensaver-$VERSION
tar xvf $CWD/xscreensaver-$VERSION.tar.?z || exit 1
cd xscreensaver-$VERSION
-# Allow xscreensaver to work setgid shadow. I'd rather avoid requiring
-# setuid root on this if at all possible...
-zcat $CWD/xscreensaver.setuid.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
+ USE_PAM="--with-pam"
+ unset USE_SHADOW
+else
+ # Allow xscreensaver to work setgid shadow. I'd rather avoid requiring
+ # setuid root on this if at all possible...
+ zcat $CWD/xscreensaver.setuid.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+ unset USE_PAM
+ USE_SHADOW="--with-shadow"
+fi
# Add support for the electricsheep distributed screensaver:
zcat $CWD/xscreensaver.electricsheep.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
@@ -100,7 +107,9 @@ CXXFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--with-x-app-defaults=/etc/X11/app-defaults \
--with-text-file=/usr/doc/netdate/COPYRIGHT \
- --with-shadow \
+ $USE_SHADOW \
+ $USE_PAM \
+ --without-kerberos \
--with-jpeg \
--with-gl \
--build=$ARCH-slackware-linux || exit 1
@@ -109,9 +118,18 @@ CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS || make || exit 1
make install_prefix=$PKG install-strip || exit 1
-# Needed for password unlock:
-chown root:shadow $PKG/usr/bin/xscreensaver
-chmod 2751 $PKG/usr/bin/xscreensaver
+if [ -z $USE_PAM ]; then
+ # Needed for password unlock:
+ chown root:shadow $PKG/usr/bin/xscreensaver
+ chmod 2751 $PKG/usr/bin/xscreensaver
+else
+ # No special perms needed with PAM:
+ chmod 755 $PKG/usr/bin/xscreensaver
+ mkdir -p $PKG/etc/pam.d
+ cat $CWD/xscreensaver.pam > $PKG/etc/pam.d/xscreensaver.new
+ mkdir -p $PKG/install
+ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+fi
# This is needed for the menus:
mkdir -p $PKG/usr/share/pixmaps
@@ -147,4 +165,3 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/xscreensaver-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/xap/xscreensaver/xscreensaver.pam b/source/xap/xscreensaver/xscreensaver.pam
new file mode 100644
index 00000000..86f37b29
--- /dev/null
+++ b/source/xap/xscreensaver/xscreensaver.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+
+ auth include system-auth