summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2023-03-06 02:21:57 +0000
committer Eric Hameleers <alien@slackware.com>2023-03-06 13:30:35 +0100
commit78c0119973fb1815718db6a2f2bbff6a1983fdc2 (patch)
tree30764439789bd329080051b64e0f3883ac57ac7a
parent61e0126fa38ec4eb6050bbdc4c594ac349b7da0c (diff)
downloadcurrent-20230306022157_15.0.tar.gz
current-20230306022157_15.0.tar.xz
Mon Mar 6 02:21:57 UTC 202320230306022157_15.0
patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txz: Upgraded. Here's an upgrade to the latest xscreensaver.
-rw-r--r--ChangeLog.rss16
-rw-r--r--ChangeLog.txt4
-rw-r--r--FILELIST.TXT183
-rw-r--r--patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt11
-rw-r--r--patches/source/xscreensaver/doinst.sh16
-rwxr-xr-xpatches/source/xscreensaver/dump.android.osx.sources.sh14
-rw-r--r--patches/source/xscreensaver/setuid.c274
-rw-r--r--patches/source/xscreensaver/slack-desc19
-rw-r--r--patches/source/xscreensaver/xscreensaver-getimage-file-5.14555
-rwxr-xr-xpatches/source/xscreensaver/xscreensaver.SlackBuild174
-rw-r--r--patches/source/xscreensaver/xscreensaver.electricsheep.diff20
-rw-r--r--patches/source/xscreensaver/xscreensaver.no.expiration.date.diff30
-rw-r--r--patches/source/xscreensaver/xscreensaver.pam3
-rw-r--r--patches/source/xscreensaver/xscreensaver.setuid.diff179
-rwxr-xr-xrecompress.sh5
15 files changed, 1417 insertions, 86 deletions
diff --git a/ChangeLog.rss b/ChangeLog.rss
index 4288bffdb..4df644f89 100644
--- a/ChangeLog.rss
+++ b/ChangeLog.rss
@@ -11,10 +11,22 @@
<description>Tracking Slackware development in git.</description>
<language>en-us</language>
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
- <pubDate>Tue, 28 Feb 2023 21:33:32 GMT</pubDate>
- <lastBuildDate>Wed, 1 Mar 2023 12:30:26 GMT</lastBuildDate>
+ <pubDate>Mon, 6 Mar 2023 02:21:57 GMT</pubDate>
+ <lastBuildDate>Mon, 6 Mar 2023 12:30:22 GMT</lastBuildDate>
<generator>maintain_current_git.sh v 1.17</generator>
<item>
+ <title>Mon, 6 Mar 2023 02:21:57 GMT</title>
+ <pubDate>Mon, 6 Mar 2023 02:21:57 GMT</pubDate>
+ <link>https://git.slackware.nl/current/tag/?h=20230306022157</link>
+ <guid isPermaLink="false">20230306022157</guid>
+ <description>
+ <![CDATA[<pre>
+patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txz: Upgraded.
+ Here's an upgrade to the latest xscreensaver.
+ </pre>]]>
+ </description>
+ </item>
+ <item>
<title>Tue, 28 Feb 2023 21:33:32 GMT</title>
<pubDate>Tue, 28 Feb 2023 21:33:32 GMT</pubDate>
<link>https://git.slackware.nl/current/tag/?h=20230228213332</link>
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 185991364..b2024ad7b 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,7 @@
+Mon Mar 6 02:21:57 UTC 2023
+patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txz: Upgraded.
+ Here's an upgrade to the latest xscreensaver.
++--------------------------+
Tue Feb 28 21:33:32 UTC 2023
patches/packages/whois-5.5.16-x86_64-1_slack15.0.txz: Upgraded.
Add bash completion support, courtesy of Ville Skytta.
diff --git a/FILELIST.TXT b/FILELIST.TXT
index b8711d711..968b81aa8 100644
--- a/FILELIST.TXT
+++ b/FILELIST.TXT
@@ -1,20 +1,20 @@
-Tue Feb 28 21:39:27 UTC 2023
+Mon Mar 6 02:24:58 UTC 2023
Here is the file list for this directory. If you are using a
mirror site and find missing or extra files in the disk
subdirectories, please have the archive administrator refresh
the mirror.
-drwxr-xr-x 12 root root 4096 2023-02-28 21:33 .
+drwxr-xr-x 12 root root 4096 2023-03-06 02:21 .
-rw-r--r-- 1 root root 5767 2022-02-02 22:44 ./ANNOUNCE.15.0
-rw-r--r-- 1 root root 16609 2022-03-30 19:03 ./CHANGES_AND_HINTS.TXT
--rw-r--r-- 1 root root 1172757 2023-02-20 19:46 ./CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2023-02-20 19:46 ./CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 1172757 2023-02-28 21:39 ./CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2023-02-28 21:39 ./CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 17976 1994-06-10 02:28 ./COPYING
-rw-r--r-- 1 root root 35147 2007-06-30 04:21 ./COPYING3
-rw-r--r-- 1 root root 19573 2016-06-23 20:08 ./COPYRIGHT.TXT
-rw-r--r-- 1 root root 616 2006-10-02 04:37 ./CRYPTO_NOTICE.TXT
--rw-r--r-- 1 root root 1994570 2023-02-28 21:33 ./ChangeLog.txt
+-rw-r--r-- 1 root root 1994746 2023-03-06 02:21 ./ChangeLog.txt
drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI
drwxr-xr-x 2 root root 4096 2022-02-02 08:21 ./EFI/BOOT
-rw-r--r-- 1 root root 1187840 2021-06-15 19:16 ./EFI/BOOT/bootx64.efi
@@ -25,7 +25,7 @@ drwxr-xr-x 2 root root 4096 2022-02-02 08:21 ./EFI/BOOT
-rwxr-xr-x 1 root root 2504 2019-07-05 18:54 ./EFI/BOOT/make-grub.sh
-rw-r--r-- 1 root root 10722 2013-09-21 19:02 ./EFI/BOOT/osdetect.cfg
-rw-r--r-- 1 root root 1273 2013-08-12 21:08 ./EFI/BOOT/tools.cfg
--rw-r--r-- 1 root root 1529385 2023-02-20 19:46 ./FILELIST.TXT
+-rw-r--r-- 1 root root 1529385 2023-02-28 21:39 ./FILELIST.TXT
-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY
-rw-r--r-- 1 root root 864745 2022-02-02 08:25 ./PACKAGES.TXT
-rw-r--r-- 1 root root 8034 2022-02-02 03:36 ./README.TXT
@@ -738,13 +738,13 @@ drwxr-xr-x 2 root root 4096 2008-05-07 05:21 ./pasture/source/php/pear
-rwxr-xr-x 1 root root 9448 2018-05-16 22:38 ./pasture/source/php/php.SlackBuild
-rw-r--r-- 1 root root 775 2017-07-07 19:25 ./pasture/source/php/php.ini-development.diff.gz
-rw-r--r-- 1 root root 830 2005-12-09 05:18 ./pasture/source/php/slack-desc
-drwxr-xr-x 4 root root 4096 2023-02-28 21:39 ./patches
--rw-r--r-- 1 root root 66680 2023-02-28 21:39 ./patches/CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2023-02-28 21:39 ./patches/CHECKSUMS.md5.asc
--rw-r--r-- 1 root root 90442 2023-02-28 21:39 ./patches/FILE_LIST
--rw-r--r-- 1 root root 11954842 2023-02-28 21:39 ./patches/MANIFEST.bz2
--rw-r--r-- 1 root root 47976 2023-02-28 21:39 ./patches/PACKAGES.TXT
-drwxr-xr-x 3 root root 20480 2023-02-28 21:39 ./patches/packages
+drwxr-xr-x 4 root root 4096 2023-03-06 02:24 ./patches
+-rw-r--r-- 1 root root 67823 2023-03-06 02:24 ./patches/CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2023-03-06 02:24 ./patches/CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 91896 2023-03-06 02:24 ./patches/FILE_LIST
+-rw-r--r-- 1 root root 11980129 2023-03-06 02:24 ./patches/MANIFEST.bz2
+-rw-r--r-- 1 root root 48600 2023-03-06 02:24 ./patches/PACKAGES.TXT
+drwxr-xr-x 3 root root 20480 2023-03-06 02:24 ./patches/packages
-rw-r--r-- 1 root root 327 2022-02-15 05:07 ./patches/packages/aaa_base-15.0-x86_64-4_slack15.0.txt
-rw-r--r-- 1 root root 10716 2022-02-15 05:07 ./patches/packages/aaa_base-15.0-x86_64-4_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-02-15 05:07 ./patches/packages/aaa_base-15.0-x86_64-4_slack15.0.txz.asc
@@ -968,13 +968,16 @@ drwxr-xr-x 2 root root 4096 2023-02-18 02:05 ./patches/packages/linux-5.15
-rw-r--r-- 1 root root 816 2023-02-07 20:26 ./patches/packages/xorg-server-xwayland-21.1.4-x86_64-6_slack15.0.txt
-rw-r--r-- 1 root root 816632 2023-02-07 20:26 ./patches/packages/xorg-server-xwayland-21.1.4-x86_64-6_slack15.0.txz
-rw-r--r-- 1 root root 163 2023-02-07 20:26 ./patches/packages/xorg-server-xwayland-21.1.4-x86_64-6_slack15.0.txz.asc
+-rw-r--r-- 1 root root 463 2023-03-05 20:29 ./patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt
+-rw-r--r-- 1 root root 9161204 2023-03-05 20:29 ./patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txz
+-rw-r--r-- 1 root root 163 2023-03-05 20:29 ./patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txz.asc
-rw-r--r-- 1 root root 489 2022-04-14 21:04 ./patches/packages/xz-5.2.5-x86_64-4_slack15.0.txt
-rw-r--r-- 1 root root 322660 2022-04-14 21:04 ./patches/packages/xz-5.2.5-x86_64-4_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-04-14 21:04 ./patches/packages/xz-5.2.5-x86_64-4_slack15.0.txz.asc
-rw-r--r-- 1 root root 388 2022-10-15 04:05 ./patches/packages/zlib-1.2.13-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 105356 2022-10-15 04:05 ./patches/packages/zlib-1.2.13-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-10-15 04:05 ./patches/packages/zlib-1.2.13-x86_64-1_slack15.0.txz.asc
-drwxr-xr-x 68 root root 4096 2023-02-28 19:38 ./patches/source
+drwxr-xr-x 69 root root 4096 2023-03-05 22:13 ./patches/source
drwxr-xr-x 2 root root 4096 2022-01-16 05:07 ./patches/source/aaa_base
-rw-r--r-- 1 root root 11041 2022-02-15 04:49 ./patches/source/aaa_base/_aaa_base.tar.gz
-rwxr-xr-x 1 root root 3894 2022-02-15 05:07 ./patches/source/aaa_base/aaa_base.SlackBuild
@@ -1704,6 +1707,18 @@ drwxr-xr-x 2 root root 4096 2022-07-12 20:20 ./patches/source/xorg-server/
-rw-r--r-- 1 root root 5178288 2021-12-15 19:04 ./patches/source/xorg-server/src/xserver/xorg-server-1.20.14.tar.xz
-rwxr-xr-x 1 root root 15219 2020-02-19 20:37 ./patches/source/xorg-server/x11.SlackBuild
-rwxr-xr-x 1 root root 85 2014-12-18 04:56 ./patches/source/xorg-server/xorg-server.SlackBuild
+drwxr-xr-x 2 root root 4096 2023-03-05 20:20 ./patches/source/xscreensaver
+-rw-r--r-- 1 root root 280 2020-02-07 00:37 ./patches/source/xscreensaver/doinst.sh.gz
+-rwxr-xr-x 1 root root 616 2017-12-24 07:25 ./patches/source/xscreensaver/dump.android.osx.sources.sh
+-rw-r--r-- 1 root root 2868 2008-10-17 04:30 ./patches/source/xscreensaver/setuid.c.gz
+-rw-r--r-- 1 root root 923 2018-02-27 06:13 ./patches/source/xscreensaver/slack-desc
+-rw-r--r-- 1 root root 9959144 2022-12-11 23:12 ./patches/source/xscreensaver/xscreensaver-6.06.tar.xz
+-rw-r--r-- 1 root root 16569 2011-01-30 03:18 ./patches/source/xscreensaver/xscreensaver-getimage-file-5.14
+-rwxr-xr-x 1 root root 6012 2023-03-05 20:29 ./patches/source/xscreensaver/xscreensaver.SlackBuild
+-rw-r--r-- 1 root root 285 2022-12-12 19:21 ./patches/source/xscreensaver/xscreensaver.electricsheep.diff.gz
+-rw-r--r-- 1 root root 638 2023-03-05 20:03 ./patches/source/xscreensaver/xscreensaver.no.expiration.date.diff.gz
+-rw-r--r-- 1 root root 50 2014-07-26 21:13 ./patches/source/xscreensaver/xscreensaver.pam
+-rw-r--r-- 1 root root 1763 2008-10-17 04:32 ./patches/source/xscreensaver/xscreensaver.setuid.diff.gz
drwxr-xr-x 2 root root 4096 2022-04-14 20:33 ./patches/source/xz
-rw-r--r-- 1 root root 939 2020-03-18 18:04 ./patches/source/xz/slack-desc
-rw-r--r-- 1 root root 1148824 2020-03-17 18:46 ./patches/source/xz/xz-5.2.5.tar.xz
@@ -2733,20 +2748,20 @@ drwxr-xr-x 2 root root 69632 2022-02-01 08:29 ./slackware64/kde
-rw-r--r-- 1 root root 163 2022-01-31 20:06 ./slackware64/kde/falkon-3.2.0-x86_64-1.txz.asc
-rw-r--r-- 1 root root 371 2022-01-06 22:16 ./slackware64/kde/ffmpegthumbs-21.12.1-x86_64-1.txt
-rw-r--r-- 1 root root 31748 2022-01-06 22:16 ./slackware64/kde/ffmpegthumbs-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:16 ./slackware64/kde/ffmpegthumbs-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 335 2022-01-06 22:02 ./slackware64/kde/filelight-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 769724 2022-01-06 22:02 ./slackware64/kde/filelight-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:02 ./slackware64/kde/filelight-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 434 2022-01-08 22:45 ./slackware64/kde/frameworkintegration-5.90.0-x86_64-1.txt
--rw-r--r-- 1 root root 1624288 2022-01-08 22:45 ./slackware64/kde/frameworkintegration-5.90.0-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-08 22:45 ./slackware64/kde/frameworkintegration-5.90.0-x86_64-1.txz.asc
--rw-r--r-- 1 root root 255 2022-01-06 22:29 ./slackware64/kde/granatier-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 2207680 2022-01-06 22:29 ./slackware64/kde/granatier-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:29 ./slackware64/kde/granatier-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 260 2022-01-06 21:51 ./slackware64/kde/grantlee-editor-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 239580 2022-01-06 21:51 ./slackware64/kde/grantlee-editor-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 21:51 ./slackware64/kde/grantlee-editor-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 263 2022-01-06 21:38 ./slackware64/kde/grantleetheme-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 163 2022-01-06 22:16 ./slackware64/kde/ffmpegthumbs-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 335 2022-01-06 22:02 ./slackware64/kde/filelight-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 769724 2022-01-06 22:02 ./slackware64/kde/filelight-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:02 ./slackware64/kde/filelight-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 434 2022-01-08 22:45 ./slackware64/kde/frameworkintegration-5.90.0-x86_64-1.txt
+-rw-r--r-- 1 root root 1624288 2022-01-08 22:45 ./slackware64/kde/frameworkintegration-5.90.0-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-08 22:45 ./slackware64/kde/frameworkintegration-5.90.0-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 255 2022-01-06 22:29 ./slackware64/kde/granatier-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 2207680 2022-01-06 22:29 ./slackware64/kde/granatier-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:29 ./slackware64/kde/granatier-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 260 2022-01-06 21:51 ./slackware64/kde/grantlee-editor-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 239580 2022-01-06 21:51 ./slackware64/kde/grantlee-editor-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 21:51 ./slackware64/kde/grantlee-editor-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 263 2022-01-06 21:38 ./slackware64/kde/grantleetheme-21.12.1-x86_64-1.txt
-rw-r--r-- 1 root root 65892 2022-01-06 21:38 ./slackware64/kde/grantleetheme-21.12.1-x86_64-1.txz
-rw-r--r-- 1 root root 163 2022-01-06 21:38 ./slackware64/kde/grantleetheme-21.12.1-x86_64-1.txz.asc
-rw-r--r-- 1 root root 292 2022-01-06 21:57 ./slackware64/kde/gwenview-21.12.1-x86_64-1.txt
@@ -5466,20 +5481,20 @@ drwxr-xr-x 2 root root 65536 2022-02-01 04:47 ./slackware64/x
-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-75dpi-1.0.3-noarch-5.txz.asc
-rw-r--r-- 1 root root 618 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-5.txt
-rw-r--r-- 1 root root 858892 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-5.txz.asc
--rw-r--r-- 1 root root 605 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-5.txt
--rw-r--r-- 1 root root 749596 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-5.txz.asc
--rw-r--r-- 1 root root 360 2021-02-13 13:19 ./slackware64/x/font-bh-ttf-1.0.3-noarch-5.txt
--rw-r--r-- 1 root root 282976 2021-02-13 13:19 ./slackware64/x/font-bh-ttf-1.0.3-noarch-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-ttf-1.0.3-noarch-5.txz.asc
--rw-r--r-- 1 root root 386 2021-02-13 13:19 ./slackware64/x/font-bh-type1-1.0.3-noarch-5.txt
--rw-r--r-- 1 root root 543364 2021-02-13 13:19 ./slackware64/x/font-bh-type1-1.0.3-noarch-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-type1-1.0.3-noarch-5.txz.asc
--rw-r--r-- 1 root root 488 2021-02-13 13:19 ./slackware64/x/font-bitstream-100dpi-1.0.3-noarch-5.txt
--rw-r--r-- 1 root root 169444 2021-02-13 13:19 ./slackware64/x/font-bitstream-100dpi-1.0.3-noarch-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bitstream-100dpi-1.0.3-noarch-5.txz.asc
--rw-r--r-- 1 root root 475 2021-02-13 13:19 ./slackware64/x/font-bitstream-75dpi-1.0.3-noarch-5.txt
+-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-5.txz.asc
+-rw-r--r-- 1 root root 605 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-5.txt
+-rw-r--r-- 1 root root 749596 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-5.txz.asc
+-rw-r--r-- 1 root root 360 2021-02-13 13:19 ./slackware64/x/font-bh-ttf-1.0.3-noarch-5.txt
+-rw-r--r-- 1 root root 282976 2021-02-13 13:19 ./slackware64/x/font-bh-ttf-1.0.3-noarch-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-ttf-1.0.3-noarch-5.txz.asc
+-rw-r--r-- 1 root root 386 2021-02-13 13:19 ./slackware64/x/font-bh-type1-1.0.3-noarch-5.txt
+-rw-r--r-- 1 root root 543364 2021-02-13 13:19 ./slackware64/x/font-bh-type1-1.0.3-noarch-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bh-type1-1.0.3-noarch-5.txz.asc
+-rw-r--r-- 1 root root 488 2021-02-13 13:19 ./slackware64/x/font-bitstream-100dpi-1.0.3-noarch-5.txt
+-rw-r--r-- 1 root root 169444 2021-02-13 13:19 ./slackware64/x/font-bitstream-100dpi-1.0.3-noarch-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bitstream-100dpi-1.0.3-noarch-5.txz.asc
+-rw-r--r-- 1 root root 475 2021-02-13 13:19 ./slackware64/x/font-bitstream-75dpi-1.0.3-noarch-5.txt
-rw-r--r-- 1 root root 149232 2021-02-13 13:19 ./slackware64/x/font-bitstream-75dpi-1.0.3-noarch-5.txz
-rw-r--r-- 1 root root 163 2021-02-13 13:19 ./slackware64/x/font-bitstream-75dpi-1.0.3-noarch-5.txz.asc
-rw-r--r-- 1 root root 490 2021-02-13 13:19 ./slackware64/x/font-bitstream-speedo-1.0.2-noarch-5.txt
@@ -8624,26 +8639,26 @@ drwxr-xr-x 2 root root 4096 2021-02-13 05:31 ./source/d/python2
-rw-r--r-- 1 root root 833 2020-04-19 21:50 ./source/d/python2/Python-2.7.18.tar.xz.asc
-rw-r--r-- 1 root root 1631043 2020-04-19 21:53 ./source/d/python2/python-2.7.18-docs-text.tar.bz2
-rw-r--r-- 1 root root 798 2012-05-09 18:38 ./source/d/python2/python.no-static-library.diff.gz
--rw-r--r-- 1 root root 325 2009-06-09 19:23 ./source/d/python2/python.readline.set_pre_input_hook.diff.gz
--rw-r--r-- 1 root root 34 2019-03-03 19:49 ./source/d/python2/python.url
--rw-r--r-- 1 root root 1867 2016-12-28 19:19 ./source/d/python2/python.x86_64.diff.gz
--rwxr-xr-x 1 root root 5723 2021-02-13 05:31 ./source/d/python2/python2.SlackBuild
--rw-r--r-- 1 root root 939 2020-04-20 19:09 ./source/d/python2/slack-desc
-drwxr-xr-x 2 root root 4096 2022-01-16 02:41 ./source/d/python3
--rw-r--r-- 1 root root 19154136 2022-01-13 23:44 ./source/d/python3/Python-3.9.10.tar.xz
--rw-r--r-- 1 root root 833 2022-01-13 23:44 ./source/d/python3/Python-3.9.10.tar.xz.asc
--rw-r--r-- 1 root root 890 2017-01-12 20:00 ./source/d/python3/README
--rw-r--r-- 1 root root 2523091 2022-01-13 23:42 ./source/d/python3/python-3.9.10-docs-text.tar.bz2
--rw-r--r-- 1 root root 372 2021-11-20 19:27 ./source/d/python3/python.sysconfig.py.x86_64.diff.gz
--rwxr-xr-x 1 root root 6370 2022-01-16 02:40 ./source/d/python3/python3.SlackBuild
--rw-r--r-- 1 root root 495 2020-10-24 22:31 ./source/d/python3/python3.distutils.x86_64.diff.gz
--rw-r--r-- 1 root root 1389 2020-10-24 17:53 ./source/d/python3/python3.no-static-library.diff.gz
--rw-r--r-- 1 root root 369 2014-05-25 17:49 ./source/d/python3/python3.readline.set_pre_input_hook.diff.gz
--rw-r--r-- 1 root root 340 2020-10-24 22:35 ./source/d/python3/python3.setup.py.x86_64.diff.gz
--rw-r--r-- 1 root root 34 2019-03-03 19:49 ./source/d/python3/python3.url
--rw-r--r-- 1 root root 1150 2018-02-27 06:13 ./source/d/python3/slack-desc
-drwxr-xr-x 2 root root 4096 2021-02-13 05:31 ./source/d/rcs
--rw-r--r-- 1 root root 890872 2020-10-20 04:27 ./source/d/rcs/rcs-5.10.0.tar.xz
+-rw-r--r-- 1 root root 325 2009-06-09 19:23 ./source/d/python2/python.readline.set_pre_input_hook.diff.gz
+-rw-r--r-- 1 root root 34 2019-03-03 19:49 ./source/d/python2/python.url
+-rw-r--r-- 1 root root 1867 2016-12-28 19:19 ./source/d/python2/python.x86_64.diff.gz
+-rwxr-xr-x 1 root root 5723 2021-02-13 05:31 ./source/d/python2/python2.SlackBuild
+-rw-r--r-- 1 root root 939 2020-04-20 19:09 ./source/d/python2/slack-desc
+drwxr-xr-x 2 root root 4096 2022-01-16 02:41 ./source/d/python3
+-rw-r--r-- 1 root root 19154136 2022-01-13 23:44 ./source/d/python3/Python-3.9.10.tar.xz
+-rw-r--r-- 1 root root 833 2022-01-13 23:44 ./source/d/python3/Python-3.9.10.tar.xz.asc
+-rw-r--r-- 1 root root 890 2017-01-12 20:00 ./source/d/python3/README
+-rw-r--r-- 1 root root 2523091 2022-01-13 23:42 ./source/d/python3/python-3.9.10-docs-text.tar.bz2
+-rw-r--r-- 1 root root 372 2021-11-20 19:27 ./source/d/python3/python.sysconfig.py.x86_64.diff.gz
+-rwxr-xr-x 1 root root 6370 2022-01-16 02:40 ./source/d/python3/python3.SlackBuild
+-rw-r--r-- 1 root root 495 2020-10-24 22:31 ./source/d/python3/python3.distutils.x86_64.diff.gz
+-rw-r--r-- 1 root root 1389 2020-10-24 17:53 ./source/d/python3/python3.no-static-library.diff.gz
+-rw-r--r-- 1 root root 369 2014-05-25 17:49 ./source/d/python3/python3.readline.set_pre_input_hook.diff.gz
+-rw-r--r-- 1 root root 340 2020-10-24 22:35 ./source/d/python3/python3.setup.py.x86_64.diff.gz
+-rw-r--r-- 1 root root 34 2019-03-03 19:49 ./source/d/python3/python3.url
+-rw-r--r-- 1 root root 1150 2018-02-27 06:13 ./source/d/python3/slack-desc
+drwxr-xr-x 2 root root 4096 2021-02-13 05:31 ./source/d/rcs
+-rw-r--r-- 1 root root 890872 2020-10-20 04:27 ./source/d/rcs/rcs-5.10.0.tar.xz
-rw-r--r-- 1 root root 95 2020-10-20 04:27 ./source/d/rcs/rcs-5.10.0.tar.xz.sig
-rwxr-xr-x 1 root root 4825 2021-02-13 05:31 ./source/d/rcs/rcs.SlackBuild
-rw-r--r-- 1 root root 772 2018-02-27 06:13 ./source/d/rcs/slack-desc
@@ -15051,28 +15066,28 @@ drwxr-xr-x 2 root root 12288 2020-05-18 17:50 ./source/x/x11/slack-desc
-rw-r--r-- 1 root root 760 2012-04-08 03:40 ./source/x/x11/slack-desc/rendercheck
-rw-r--r-- 1 root root 838 2012-04-08 03:40 ./source/x/x11/slack-desc/renderproto
-rw-r--r-- 1 root root 865 2012-04-08 03:40 ./source/x/x11/slack-desc/resourceproto
--rw-r--r-- 1 root root 709 2012-04-08 03:40 ./source/x/x11/slack-desc/rgb
--rw-r--r-- 1 root root 889 2012-04-08 03:41 ./source/x/x11/slack-desc/scrnsaverproto
--rw-r--r-- 1 root root 750 2012-04-08 03:41 ./source/x/x11/slack-desc/sessreg
--rw-r--r-- 1 root root 798 2012-04-08 03:42 ./source/x/x11/slack-desc/setxkbmap
--rw-r--r-- 1 root root 737 2012-04-08 03:42 ./source/x/x11/slack-desc/showfont
--rw-r--r-- 1 root root 707 2012-04-08 03:42 ./source/x/x11/slack-desc/smproxy
--rw-r--r-- 1 root root 884 2012-06-13 15:39 ./source/x/x11/slack-desc/transset
--rw-r--r-- 1 root root 730 2012-04-08 03:43 ./source/x/x11/slack-desc/twm
--rw-r--r-- 1 root root 823 2012-04-08 03:43 ./source/x/x11/slack-desc/util-macros
--rw-r--r-- 1 root root 820 2012-04-08 03:43 ./source/x/x11/slack-desc/videoproto
--rw-r--r-- 1 root root 796 2012-04-08 03:43 ./source/x/x11/slack-desc/viewres
--rw-r--r-- 1 root root 779 2012-04-08 03:44 ./source/x/x11/slack-desc/x11perf
--rw-r--r-- 1 root root 679 2012-04-08 03:44 ./source/x/x11/slack-desc/xauth
--rw-r--r-- 1 root root 796 2012-04-08 03:44 ./source/x/x11/slack-desc/xbacklight
--rw-r--r-- 1 root root 725 2018-02-26 22:58 ./source/x/x11/slack-desc/xbiff
--rw-r--r-- 1 root root 786 2012-04-08 03:45 ./source/x/x11/slack-desc/xbitmaps
--rw-r--r-- 1 root root 639 2012-04-08 03:45 ./source/x/x11/slack-desc/xcalc
--rw-r--r-- 1 root root 922 2012-04-08 01:17 ./source/x/x11/slack-desc/xcb-proto
--rw-r--r-- 1 root root 809 2012-04-08 03:45 ./source/x/x11/slack-desc/xcb-util
--rw-r--r-- 1 root root 808 2013-09-07 20:11 ./source/x/x11/slack-desc/xcb-util-cursor
--rw-r--r-- 1 root root 1011 2015-04-27 03:32 ./source/x/x11/slack-desc/xcb-util-errors
--rw-r--r-- 1 root root 778 2012-04-08 01:14 ./source/x/x11/slack-desc/xcb-util-image
+-rw-r--r-- 1 root root 709 2012-04-08 03:40 ./source/x/x11/slack-desc/rgb
+-rw-r--r-- 1 root root 889 2012-04-08 03:41 ./source/x/x11/slack-desc/scrnsaverproto
+-rw-r--r-- 1 root root 750 2012-04-08 03:41 ./source/x/x11/slack-desc/sessreg
+-rw-r--r-- 1 root root 798 2012-04-08 03:42 ./source/x/x11/slack-desc/setxkbmap
+-rw-r--r-- 1 root root 737 2012-04-08 03:42 ./source/x/x11/slack-desc/showfont
+-rw-r--r-- 1 root root 707 2012-04-08 03:42 ./source/x/x11/slack-desc/smproxy
+-rw-r--r-- 1 root root 884 2012-06-13 15:39 ./source/x/x11/slack-desc/transset
+-rw-r--r-- 1 root root 730 2012-04-08 03:43 ./source/x/x11/slack-desc/twm
+-rw-r--r-- 1 root root 823 2012-04-08 03:43 ./source/x/x11/slack-desc/util-macros
+-rw-r--r-- 1 root root 820 2012-04-08 03:43 ./source/x/x11/slack-desc/videoproto
+-rw-r--r-- 1 root root 796 2012-04-08 03:43 ./source/x/x11/slack-desc/viewres
+-rw-r--r-- 1 root root 779 2012-04-08 03:44 ./source/x/x11/slack-desc/x11perf
+-rw-r--r-- 1 root root 679 2012-04-08 03:44 ./source/x/x11/slack-desc/xauth
+-rw-r--r-- 1 root root 796 2012-04-08 03:44 ./source/x/x11/slack-desc/xbacklight
+-rw-r--r-- 1 root root 725 2018-02-26 22:58 ./source/x/x11/slack-desc/xbiff
+-rw-r--r-- 1 root root 786 2012-04-08 03:45 ./source/x/x11/slack-desc/xbitmaps
+-rw-r--r-- 1 root root 639 2012-04-08 03:45 ./source/x/x11/slack-desc/xcalc
+-rw-r--r-- 1 root root 922 2012-04-08 01:17 ./source/x/x11/slack-desc/xcb-proto
+-rw-r--r-- 1 root root 809 2012-04-08 03:45 ./source/x/x11/slack-desc/xcb-util
+-rw-r--r-- 1 root root 808 2013-09-07 20:11 ./source/x/x11/slack-desc/xcb-util-cursor
+-rw-r--r-- 1 root root 1011 2015-04-27 03:32 ./source/x/x11/slack-desc/xcb-util-errors
+-rw-r--r-- 1 root root 778 2012-04-08 01:14 ./source/x/x11/slack-desc/xcb-util-image
-rw-r--r-- 1 root root 827 2012-04-08 01:18 ./source/x/x11/slack-desc/xcb-util-keysyms
-rw-r--r-- 1 root root 871 2012-04-08 03:49 ./source/x/x11/slack-desc/xcb-util-renderutil
-rw-r--r-- 1 root root 774 2012-04-08 03:51 ./source/x/x11/slack-desc/xcb-util-wm
diff --git a/patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt b/patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt
new file mode 100644
index 000000000..b94c265bb
--- /dev/null
+++ b/patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt
@@ -0,0 +1,11 @@
+xscreensaver: xscreensaver (a screen saver and locker for X)
+xscreensaver:
+xscreensaver: A modular screen saver and locker for the X Window System. Highly
+xscreensaver: customizable: allows the use of any program that can draw on the
+xscreensaver: root window as a display mode. More than 100 display modes are
+xscreensaver: included in this package.
+xscreensaver:
+xscreensaver: Homepage: http://www.jwz.org/xscreensaver
+xscreensaver:
+xscreensaver:
+xscreensaver:
diff --git a/patches/source/xscreensaver/doinst.sh b/patches/source/xscreensaver/doinst.sh
new file mode 100644
index 000000000..8f79143c7
--- /dev/null
+++ b/patches/source/xscreensaver/doinst.sh
@@ -0,0 +1,16 @@
+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...
+}
+
+if [ -r etc/pam.d/xscreensaver.new ]; then
+ config etc/pam.d/xscreensaver.new
+fi
diff --git a/patches/source/xscreensaver/dump.android.osx.sources.sh b/patches/source/xscreensaver/dump.android.osx.sources.sh
new file mode 100755
index 000000000..4626090f4
--- /dev/null
+++ b/patches/source/xscreensaver/dump.android.osx.sources.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Repacks the xscreensaver tarball to remove the unneeded OSX sources.
+
+VERSION=${VERSION:-$(echo xscreensaver-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+
+tar xf xscreensaver-${VERSION}.tar.?z || exit 1
+mv xscreensaver-${VERSION}.tar.?z xscreensaver-${VERSION}.tarball.orig
+rm -r xscreensaver-${VERSION}/OSX/*
+rm -r xscreensaver-${VERSION}/android/*
+tar cf xscreensaver-${VERSION}.tar xscreensaver-${VERSION}
+rm -r xscreensaver-${VERSION}
+plzip -9 xscreensaver-${VERSION}.tar
+touch -r xscreensaver-${VERSION}.tarball.orig xscreensaver-${VERSION}.tar.lz
+rm xscreensaver-${VERSION}.tarball.orig
diff --git a/patches/source/xscreensaver/setuid.c b/patches/source/xscreensaver/setuid.c
new file mode 100644
index 000000000..343dcf097
--- /dev/null
+++ b/patches/source/xscreensaver/setuid.c
@@ -0,0 +1,274 @@
+/* setuid.c --- management of runtime privileges.
+ * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <X11/Xlib.h> /* not used for much... */
+
+/* This file doesn't need the Xt headers, so stub these types out... */
+#undef XtPointer
+#define XtAppContext void*
+#define XrmDatabase void*
+#define XtIntervalId void*
+#define XtPointer void*
+#define Widget void*
+
+#include "xscreensaver.h"
+
+#ifndef EPERM
+#include <errno.h>
+#endif
+
+#include <pwd.h> /* for getpwnam() and struct passwd */
+#include <grp.h> /* for getgrgid() and struct group */
+
+static const char *
+uid_gid_string (uid_t uid, gid_t gid)
+{
+ static char buf[255];
+ struct passwd *p = 0;
+ struct group *g = 0;
+ p = getpwuid (uid);
+ g = getgrgid (gid);
+ sprintf (buf, "%s/%s (%ld/%ld)",
+ (p && p->pw_name ? p->pw_name : "???"),
+ (g && g->gr_name ? g->gr_name : "???"),
+ (long) uid, (long) gid);
+ return buf;
+}
+
+
+void
+describe_uids (saver_info *si, FILE *out)
+{
+ uid_t uid = getuid();
+ gid_t gid = getgid();
+ uid_t euid = geteuid();
+ gid_t egid = getegid();
+ char *s1 = strdup (uid_gid_string (uid, gid));
+ char *s2 = strdup (uid_gid_string (euid, egid));
+
+ if (si->orig_uid && *si->orig_uid &&
+ (!!strcmp (si->orig_uid, s1) ||
+ !!strcmp (si->orig_uid, s2)))
+ fprintf (out, "%s: initial effective uid/gid was %s\n", blurb(),
+ si->orig_uid);
+
+ fprintf (out, "%s: running as %s", blurb(), s1);
+ if (uid != euid || gid != egid)
+ fprintf (out, "; effectively %s", s2);
+ fprintf(out, "\n");
+ free(s1);
+ free(s2);
+}
+
+
+static int
+set_ids_by_number (uid_t uid, gid_t gid, char **message_ret)
+{
+ int uid_errno = 0;
+ int gid_errno = 0;
+ struct passwd *p = getpwuid (uid);
+ struct group *g = getgrgid (gid);
+
+ if (message_ret)
+ *message_ret = 0;
+
+ /* Rumor has it that some implementations of of setuid() do nothing
+ when called with -1; therefore, if the "nobody" user has a uid of
+ -1, then that would be Really Bad. Rumor further has it that such
+ systems really ought to be using -2 for "nobody", since that works.
+ So, if we get a uid (or gid, for good measure) of -1, switch to -2
+ instead. Note that this must be done after we've looked up the
+ user/group names with getpwuid(-1) and/or getgrgid(-1).
+ */
+ if (gid == (gid_t) -1) gid = (gid_t) -2;
+ if (uid == (uid_t) -1) uid = (uid_t) -2;
+
+ errno = 0;
+ if (setgid (gid) != 0)
+ gid_errno = errno ? errno : -1;
+
+ errno = 0;
+ if (setuid (uid) != 0)
+ uid_errno = errno ? errno : -1;
+
+ if (uid_errno == 0 && gid_errno == 0)
+ {
+ static char buf [1024];
+ sprintf (buf, "changed uid/gid to %s/%s (%ld/%ld).",
+ (p && p->pw_name ? p->pw_name : "???"),
+ (g && g->gr_name ? g->gr_name : "???"),
+ (long) uid, (long) gid);
+ if (message_ret)
+ *message_ret = buf;
+ return 0;
+ }
+ else
+ {
+ char buf [1024];
+ if (gid_errno)
+ {
+ sprintf (buf, "%s: couldn't set gid to %s (%ld)",
+ blurb(),
+ (g && g->gr_name ? g->gr_name : "???"),
+ (long) gid);
+ if (gid_errno == -1)
+ fprintf(stderr, "%s: unknown error\n", buf);
+ else
+ perror(buf);
+ }
+
+ if (uid_errno)
+ {
+ sprintf (buf, "%s: couldn't set uid to %s (%ld)",
+ blurb(),
+ (p && p->pw_name ? p->pw_name : "???"),
+ (long) uid);
+ if (uid_errno == -1)
+ fprintf(stderr, "%s: unknown error\n", buf);
+ else
+ perror(buf);
+ }
+
+ return -1;
+ }
+}
+
+
+/* If we've been run as setuid or setgid to someone else (most likely root)
+ turn off the extra permissions so that random user-specified programs
+ don't get special privileges. (On some systems it is necessary to install
+ this program as setuid root in order to read the passwd file to implement
+ lock-mode.)
+
+ *** WARNING: DO NOT DISABLE ANY OF THE FOLLOWING CODE!
+ If you do so, you will open a security hole. See the sections
+ of the xscreensaver manual titled "LOCKING AND ROOT LOGINS",
+ and "USING XDM".
+ */
+void
+hack_uid (saver_info *si)
+{
+
+ /* Discard privileges, and set the effective user/group ids to the
+ real user/group ids. That is, give up our "chmod +s" rights.
+ */
+ {
+ uid_t euid = geteuid();
+ gid_t egid = getegid();
+ uid_t uid = getuid();
+ gid_t gid = getgid();
+
+ si->orig_uid = strdup (uid_gid_string (euid, egid));
+
+ if (uid != euid || gid != egid)
+ if (set_ids_by_number (uid, gid, &si->uid_message) != 0)
+ saver_exit (si, 1, 0);
+ }
+
+
+ /* Locking can't work when running as root, because we have no way of
+ knowing what the user id of the logged in user is (so we don't know
+ whose password to prompt for.)
+
+ *** WARNING: DO NOT DISABLE THIS CODE!
+ If you do so, you will open a security hole. See the sections
+ of the xscreensaver manual titled "LOCKING AND ROOT LOGINS",
+ and "USING XDM".
+ */
+ if (getuid() == (uid_t) 0)
+ {
+ si->locking_disabled_p = True;
+ si->nolock_reason = "running as root";
+ }
+
+
+ /* If we're running as root, switch to a safer user. This is above and
+ beyond the fact that we've disabling locking, above -- the theory is
+ that running graphics demos as root is just always a stupid thing
+ to do, since they have probably never been security reviewed and are
+ more likely to be buggy than just about any other kind of program.
+ (And that assumes non-malicious code. There are also attacks here.)
+
+ *** WARNING: DO NOT DISABLE THIS CODE!
+ If you do so, you will open a security hole. See the sections
+ of the xscreensaver manual titled "LOCKING AND ROOT LOGINS",
+ and "USING XDM".
+ */
+ if (getuid() == (uid_t) 0)
+ {
+ struct passwd *p;
+
+ p = getpwnam ("nobody");
+ if (! p) p = getpwnam ("noaccess");
+ if (! p) p = getpwnam ("daemon");
+ if (! p)
+ {
+ fprintf (stderr,
+ "%s: running as root, and couldn't find a safer uid.\n",
+ blurb());
+ saver_exit(si, 1, 0);
+ }
+
+ if (set_ids_by_number (p->pw_uid, p->pw_gid, &si->uid_message) != 0)
+ saver_exit (si, -1, 0);
+ }
+
+
+ /* If there's anything even remotely funny looking about the passwd struct,
+ or if we're running as some other user from the list below (a
+ non-comprehensive selection of users known to be privileged in some way,
+ and not normal end-users) then disable locking. If it was possible,
+ switching to "nobody" would be the thing to do, but only root itself has
+ the privs to do that.
+
+ *** WARNING: DO NOT DISABLE THIS CODE!
+ If you do so, you will open a security hole. See the sections
+ of the xscreensaver manual titled "LOCKING AND ROOT LOGINS",
+ and "USING XDM".
+ */
+ {
+ uid_t uid = getuid (); /* get it again */
+ struct passwd *p = getpwuid (uid); /* get it again */
+
+ if (!p ||
+ uid == (uid_t) 0 ||
+ uid == (uid_t) -1 ||
+ uid == (uid_t) -2 ||
+ p->pw_uid == (uid_t) 0 ||
+ p->pw_uid == (uid_t) -1 ||
+ p->pw_uid == (uid_t) -2 ||
+ !p->pw_name ||
+ !*p->pw_name ||
+ !strcmp (p->pw_name, "root") ||
+ !strcmp (p->pw_name, "nobody") ||
+ !strcmp (p->pw_name, "noaccess") ||
+ !strcmp (p->pw_name, "operator") ||
+ !strcmp (p->pw_name, "daemon") ||
+ !strcmp (p->pw_name, "bin") ||
+ !strcmp (p->pw_name, "adm") ||
+ !strcmp (p->pw_name, "sys") ||
+ !strcmp (p->pw_name, "games"))
+ {
+ static char buf [1024];
+ sprintf (buf, "running as %s",
+ (p && p->pw_name && *p->pw_name
+ ? p->pw_name : "<unknown>"));
+ si->nolock_reason = buf;
+ si->locking_disabled_p = True;
+ si->dangerous_uid_p = True;
+ }
+ }
+}
diff --git a/patches/source/xscreensaver/slack-desc b/patches/source/xscreensaver/slack-desc
new file mode 100644
index 000000000..6394a1458
--- /dev/null
+++ b/patches/source/xscreensaver/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+xscreensaver: xscreensaver (a screen saver and locker for X)
+xscreensaver:
+xscreensaver: A modular screen saver and locker for the X Window System. Highly
+xscreensaver: customizable: allows the use of any program that can draw on the
+xscreensaver: root window as a display mode. More than 100 display modes are
+xscreensaver: included in this package.
+xscreensaver:
+xscreensaver: Homepage: http://www.jwz.org/xscreensaver
+xscreensaver:
+xscreensaver:
+xscreensaver:
diff --git a/patches/source/xscreensaver/xscreensaver-getimage-file-5.14 b/patches/source/xscreensaver/xscreensaver-getimage-file-5.14
new file mode 100644
index 000000000..bc7bcbd9e
--- /dev/null
+++ b/patches/source/xscreensaver/xscreensaver-getimage-file-5.14
@@ -0,0 +1,555 @@
+#!/usr/bin/perl -w
+# Copyright © 2001-2011 Jamie Zawinski <jwz@jwz.org>.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation. No representations are made about the suitability of this
+# software for any purpose. It is provided "as is" without express or
+# implied warranty.
+#
+# This program chooses a random file from under the given directory, and
+# prints its name. The file will be an image file whose dimensions are
+# larger than a certain minimum size.
+#
+# The various xscreensaver hacks that manipulate images ("jigsaw", etc.) get
+# the image to manipulate by running the "xscreensaver-getimage" program.
+#
+# Under X11, the "xscreensaver-getimage" program invokes this script,
+# depending on the value of the "chooseRandomImages" and "imageDirectory"
+# settings in the ~/.xscreensaver file (or .../app-defaults/XScreenSaver).
+# The screen savers invoke "xscreensaver-getimage" via utils/grabclient.c,
+# which then invokes this script.
+#
+# Under Cocoa, this script lives inside the .saver bundle, and is invoked
+# directly from utils/grabclient.c.
+#
+# Created: 12-Apr-01.
+
+require 5;
+#use diagnostics; # Fails on some MacOS 10.5 systems
+use strict;
+
+use POSIX;
+use Fcntl;
+
+use Fcntl ':flock'; # import LOCK_* constants
+
+use POSIX ':fcntl_h'; # S_ISDIR was here in Perl 5.6
+import Fcntl ':mode' unless defined &S_ISUID; # but it is here in Perl 5.8
+ # but in Perl 5.10, both of these load, and cause errors!
+ # So we have to check for S_ISUID instead of S_ISDIR? WTF?
+
+use bytes; # Larry can take Unicode and shove it up his ass sideways.
+ # Perl 5.8.0 causes us to start getting incomprehensible
+ # errors about UTF-8 all over the place without this.
+
+my $progname = $0; $progname =~ s@.*/@@g;
+my $version = q{ $Revision: 1.29 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+
+my $verbose = 0;
+
+# Whether to use MacOS X's Spotlight to generate the list of files.
+# When set to -1, uses Spotlight if "mdfind" exists.
+#
+# (In my experience, this isn't actually any faster, and might not find
+# everything if your Spotlight index is out of date, which happens often.)
+#
+my $use_spotlight_p = 0;
+
+# Whether to cache the results of the last run.
+#
+my $cache_p = 1;
+
+# Regenerate the cache if it is older than this many seconds.
+#
+my $cache_max_age = 60 * 60 * 3; # 3 hours
+
+
+# This matches files that we are allowed to use as images (case-insensitive.)
+# Anything not matching this is ignored. This is so you can point your
+# imageDirectory at directory trees that have things other than images in
+# them, but it assumes that you gave your images sensible file extensions.
+#
+my @good_extensions = ('jpg', 'jpeg', 'pjpeg', 'pjpg', 'png', 'gif',
+ 'tif', 'tiff', 'xbm', 'xpm');
+my $good_file_re = '\.(' . join("|", @good_extensions) . ')$';
+
+# This matches file extensions that might occur in an image directory,
+# and that are never used in the name of a subdirectory. This is an
+# optimization that prevents us from having to stat() those files to
+# tell whether they are directories or not. (It speeds things up a
+# lot. Don't give your directories stupid names.)
+#
+my @nondir_extensions = ('ai', 'bmp', 'bz2', 'cr2', 'crw', 'db',
+ 'dmg', 'eps', 'gz', 'hqx', 'htm', 'html', 'icns', 'ilbm', 'mov',
+ 'nef', 'pbm', 'pdf', 'pl', 'ppm', 'ps', 'psd', 'sea', 'sh', 'shtml',
+ 'tar', 'tgz', 'thb', 'txt', 'xcf', 'xmp', 'Z', 'zip' );
+my $nondir_re = '\.(' . join("|", @nondir_extensions) . ')$';
+
+
+# JPEG, GIF, and PNG files that are are smaller than this are rejected:
+# this is so that you can use an image directory that contains both big
+# images and thumbnails, and have it only select the big versions.
+#
+my $min_image_width = 255;
+my $min_image_height = 255;
+
+my @all_files = (); # list of "good" files we've collected
+my %seen_inodes; # for breaking recursive symlink loops
+
+# For diagnostic messages:
+#
+my $dir_count = 1; # number of directories seen
+my $stat_count = 0; # number of files/dirs stat'ed
+my $skip_count_unstat = 0; # number of files skipped without stat'ing
+my $skip_count_stat = 0; # number of files skipped after stat
+
+sub find_all_files($);
+sub find_all_files($) {
+ my ($dir) = @_;
+
+ print STDERR "$progname: + reading dir $dir/...\n" if ($verbose > 1);
+
+ my $dd;
+ if (! opendir ($dd, $dir)) {
+ print STDERR "$progname: couldn't open $dir: $!\n" if ($verbose);
+ return;
+ }
+ my @files = readdir ($dd);
+ closedir ($dd);
+
+ my @dirs = ();
+
+ foreach my $file (@files) {
+ next if ($file =~ m/^\./); # silently ignore dot files/dirs
+
+ if ($file =~ m/[~%\#]$/) { # ignore backup files (and dirs...)
+ $skip_count_unstat++;
+ print STDERR "$progname: - skip file $file\n" if ($verbose > 1);
+ }
+
+ $file = "$dir/$file";
+
+ if ($file =~ m/$good_file_re/io) {
+ #
+ # Assume that files ending in .jpg exist and are not directories.
+ #
+ push @all_files, $file;
+ print STDERR "$progname: - found file $file\n" if ($verbose > 1);
+
+ } elsif ($file =~ m/$nondir_re/io) {
+ #
+ # Assume that files ending in .html are not directories.
+ #
+ $skip_count_unstat++;
+ print STDERR "$progname: -- skip file $file\n" if ($verbose > 1);
+
+ } else {
+ #
+ # Now we need to stat the file to see if it's a subdirectory.
+ #
+ # Note: we could use the trick of checking "nlinks" on the parent
+ # directory to see if this directory contains any subdirectories,
+ # but that would exclude any symlinks to directories.
+ #
+ my @st = stat($file);
+ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
+ $atime,$mtime,$ctime,$blksize,$blocks) = @st;
+
+ $stat_count++;
+
+ if ($#st == -1) {
+ if ($verbose) {
+ my $ll = readlink $file;
+ if (defined ($ll)) {
+ print STDERR "$progname: + dangling symlink: $file -> $ll\n";
+ } else {
+ print STDERR "$progname: + unreadable: $file\n";
+ }
+ }
+ next;
+ }
+
+ next if ($seen_inodes{"$dev:$ino"}); # break symlink loops
+ $seen_inodes{"$dev:$ino"} = 1;
+
+ if (S_ISDIR($mode)) {
+ push @dirs, $file;
+ $dir_count++;
+ print STDERR "$progname: + found dir $file\n" if ($verbose > 1);
+
+ } else {
+ $skip_count_stat++;
+ print STDERR "$progname: + skip file $file\n" if ($verbose > 1);
+ }
+ }
+ }
+
+ foreach (@dirs) {
+ find_all_files ($_);
+ }
+}
+
+
+sub spotlight_all_files($) {
+ my ($dir) = @_;
+
+ my @terms = ();
+ # "public.image" matches all (indexed) images, including Photoshop, etc.
+# push @terms, "kMDItemContentTypeTree == 'public.image'";
+ foreach (@good_extensions) {
+
+ # kMDItemFSName hits the file system every time: much worse than "find".
+# push @terms, "kMDItemFSName == '*.$_'";
+
+ # kMDItemDisplayName matches against the name in the Spotlight index,
+ # but won't find files that (for whatever reason) didn't get indexed.
+ push @terms, "kMDItemDisplayName == '*.$_'";
+ }
+
+ $dir =~ s@([^-_/a-z\d.,])@\\$1@gsi; # quote for sh
+ my $cmd = "mdfind -onlyin $dir \"" . join (' || ', @terms) . "\"";
+
+ print STDERR "$progname: executing: $cmd\n" if ($verbose > 1);
+ @all_files = split (/[\r\n]+/, `$cmd`);
+}
+
+
+# If we're using cacheing, read the cache file and return its contents,
+# if any. This also holds an exclusive lock on the cache file, which
+# has the additional benefit that if two copies of this program are
+# running at once, one will wait for the other, instead of both of
+# them spanking the same file system at the same time.
+#
+my $cache_fd = undef;
+my $cache_file_name = undef;
+my $read_cache_p = 0;
+
+sub read_cache($) {
+ my ($dir) = @_;
+
+ return () unless ($cache_p);
+
+ my $dd = "$ENV{HOME}/Library/Caches"; # MacOS location
+ if (-d $dd) {
+ $cache_file_name = "$dd/org.jwz.xscreensaver.getimage.cache";
+ } elsif (-d "$ENV{HOME}/tmp") {
+ $cache_file_name = "$ENV{HOME}/tmp/.xscreensaver-getimage.cache";
+ } else {
+ $cache_file_name = "$ENV{HOME}/.xscreensaver-getimage.cache";
+ }
+
+ print STDERR "$progname: awaiting lock: $cache_file_name\n"
+ if ($verbose > 1);
+
+ my $file = $cache_file_name;
+ open ($cache_fd, '+>>', $file) || error ("unable to write $file: $!");
+ flock ($cache_fd, LOCK_EX) || error ("unable to lock $file: $!");
+ seek ($cache_fd, 0, 0) || error ("unable to rewind $file: $!");
+
+ my $mtime = (stat($cache_fd))[9];
+
+ if ($mtime + $cache_max_age < time) {
+ print STDERR "$progname: cache is too old\n" if ($verbose);
+ return ();
+ }
+
+ my $odir = <$cache_fd>;
+ $odir =~ s/[\r\n]+$//s if defined ($odir);
+ if (!defined ($odir) || ($dir ne $odir)) {
+ print STDERR "$progname: cache is for $odir, not $dir\n"
+ if ($verbose && $odir);
+ return ();
+ }
+
+ my @files = ();
+ while (<$cache_fd>) {
+ s/[\r\n]+$//s;
+ push @files, "$odir/$_";
+ }
+
+ print STDERR "$progname: " . ($#files+1) . " files in cache\n"
+ if ($verbose);
+
+ $read_cache_p = 1;
+ return @files;
+}
+
+
+sub write_cache($) {
+ my ($dir) = @_;
+
+ return unless ($cache_p);
+
+ # If we read the cache, just close it without rewriting it.
+ # If we didn't read it, then write it now.
+
+ if (! $read_cache_p) {
+
+ truncate ($cache_fd, 0) ||
+ error ("unable to truncate $cache_file_name: $!");
+ seek ($cache_fd, 0, 0) ||
+ error ("unable to rewind $cache_file_name: $!");
+
+ if ($#all_files >= 0) {
+ print $cache_fd "$dir\n";
+ foreach (@all_files) {
+ my $f = $_; # stupid Perl. do this to avoid modifying @all_files!
+ $f =~ s@^\Q$dir\L/@@so || die; # remove $dir from front
+ print $cache_fd "$f\n";
+ }
+ }
+
+ print STDERR "$progname: cached " . ($#all_files+1) . " files\n"
+ if ($verbose);
+ }
+
+ flock ($cache_fd, LOCK_UN) ||
+ error ("unable to unlock $cache_file_name: $!");
+ close ($cache_fd);
+ $cache_fd = undef;
+}
+
+
+sub find_random_file($) {
+ my ($dir) = @_;
+
+ if ($use_spotlight_p == -1) {
+ $use_spotlight_p = 0;
+ if (-x '/usr/bin/mdfind') {
+ $use_spotlight_p = 1;
+ }
+ }
+
+ @all_files = read_cache ($dir);
+
+ if ($#all_files >= 0) {
+ # got it from the cache...
+
+ } elsif ($use_spotlight_p) {
+ print STDERR "$progname: spotlighting $dir...\n" if ($verbose);
+ spotlight_all_files ($dir);
+ print STDERR "$progname: found " . ($#all_files+1) .
+ " file" . ($#all_files == 0 ? "" : "s") .
+ " via Spotlight\n"
+ if ($verbose);
+ } else {
+ print STDERR "$progname: recursively reading $dir...\n" if ($verbose);
+ find_all_files ($dir);
+ print STDERR "$progname: " .
+ "f=" . ($#all_files+1) . "; " .
+ "d=$dir_count; " .
+ "s=$stat_count; " .
+ "skip=${skip_count_unstat}+$skip_count_stat=" .
+ ($skip_count_unstat + $skip_count_stat) .
+ ".\n"
+ if ($verbose);
+ }
+
+ write_cache ($dir);
+
+# @all_files = sort(@all_files);
+
+ if ($#all_files < 0) {
+ print STDERR "$progname: no files in $dir\n";
+ exit 1;
+ }
+
+ my $max_tries = 50;
+ for (my $i = 0; $i < $max_tries; $i++) {
+
+ my $n = int (rand ($#all_files + 1));
+ my $file = $all_files[$n];
+ if (large_enough_p ($file)) {
+ $file =~ s@^\Q$dir\L/@@so || die; # remove $dir from front
+ return $file;
+ }
+ }
+
+ print STDERR "$progname: no suitable images in $dir " .
+ "(after $max_tries tries)\n";
+ exit 1;
+}
+
+
+sub large_enough_p($) {
+ my ($file) = @_;
+
+ my ($w, $h) = image_file_size ($file);
+
+ if (!defined ($h)) {
+ print STDERR "$progname: $file: unable to determine image size\n"
+ if ($verbose);
+ # Assume that unknown files are of good sizes: this will happen if
+ # they matched $good_file_re, but we don't have code to parse them.
+ # (This will also happen if the file is junk...)
+ return 1;
+ }
+
+ if ($w < $min_image_width || $h < $min_image_height) {
+ print STDERR "$progname: $file: too small ($w x $h)\n" if ($verbose);
+ return 0;
+ }
+
+ print STDERR "$progname: $file: $w x $h\n" if ($verbose);
+ return 1;
+}
+
+
+
+# Given the raw body of a GIF document, returns the dimensions of the image.
+#
+sub gif_size($) {
+ my ($body) = @_;
+ my $type = substr($body, 0, 6);
+ my $s;
+ return () unless ($type =~ /GIF8[7,9]a/);
+ $s = substr ($body, 6, 10);
+ my ($a,$b,$c,$d) = unpack ("C"x4, $s);
+ return (($b<<8|$a), ($d<<8|$c));
+}
+
+# Given the raw body of a JPEG document, returns the dimensions of the image.
+#
+sub jpeg_size($) {
+ my ($body) = @_;
+ my $i = 0;
+ my $L = length($body);
+
+ my $c1 = substr($body, $i, 1); $i++;
+ my $c2 = substr($body, $i, 1); $i++;
+ return () unless (ord($c1) == 0xFF && ord($c2) == 0xD8);
+
+ my $ch = "0";
+ while (ord($ch) != 0xDA && $i < $L) {
+ # Find next marker, beginning with 0xFF.
+ while (ord($ch) != 0xFF) {
+ return () if (length($body) <= $i);
+ $ch = substr($body, $i, 1); $i++;
+ }
+ # markers can be padded with any number of 0xFF.
+ while (ord($ch) == 0xFF) {
+ return () if (length($body) <= $i);
+ $ch = substr($body, $i, 1); $i++;
+ }
+
+ # $ch contains the value of the marker.
+ my $marker = ord($ch);
+
+ if (($marker >= 0xC0) &&
+ ($marker <= 0xCF) &&
+ ($marker != 0xC4) &&
+ ($marker != 0xCC)) { # it's a SOFn marker
+ $i += 3;
+ return () if (length($body) <= $i);
+ my $s = substr($body, $i, 4); $i += 4;
+ my ($a,$b,$c,$d) = unpack("C"x4, $s);
+ return (($c<<8|$d), ($a<<8|$b));
+
+ } else {
+ # We must skip variables, since FFs in variable names aren't
+ # valid JPEG markers.
+ return () if (length($body) <= $i);
+ my $s = substr($body, $i, 2); $i += 2;
+ my ($c1, $c2) = unpack ("C"x2, $s);
+ my $length = ($c1 << 8) | $c2;
+ return () if ($length < 2);
+ $i += $length-2;
+ }
+ }
+ return ();
+}
+
+# Given the raw body of a PNG document, returns the dimensions of the image.
+#
+sub png_size($) {
+ my ($body) = @_;
+ return () unless ($body =~ m/^\211PNG\r/s);
+ my ($bits) = ($body =~ m/^.{12}(.{12})/s);
+ return () unless defined ($bits);
+ return () unless ($bits =~ /^IHDR/);
+ my ($ign, $w, $h) = unpack("a4N2", $bits);
+ return ($w, $h);
+}
+
+
+# Given the raw body of a GIF, JPEG, or PNG document, returns the dimensions
+# of the image.
+#
+sub image_size($) {
+ my ($body) = @_;
+ return () if (length($body) < 10);
+ my ($w, $h) = gif_size ($body);
+ if ($w && $h) { return ($w, $h); }
+ ($w, $h) = jpeg_size ($body);
+ if ($w && $h) { return ($w, $h); }
+ # #### TODO: need image parsers for TIFF, XPM, XBM.
+ return png_size ($body);
+}
+
+# Returns the dimensions of the image file.
+#
+sub image_file_size($) {
+ my ($file) = @_;
+ my $in;
+ if (! open ($in, '<', $file)) {
+ print STDERR "$progname: $file: $!\n" if ($verbose);
+ return undef;
+ }
+ binmode ($in); # Larry can take Unicode and shove it up his ass sideways.
+ my $body = '';
+ sysread ($in, $body, 1024 * 50); # The first 50k should be enough.
+ close $in; # (It's not for certain huge jpegs...
+ return image_size ($body); # but we know they're huge!)
+}
+
+
+sub error($) {
+ my ($err) = @_;
+ print STDERR "$progname: $err\n";
+ exit 1;
+}
+
+sub usage() {
+ print STDERR "usage: $progname [--verbose] directory\n" .
+ " Prints the name of a randomly-selected image file. The directory\n" .
+ " is searched recursively. Images smaller than " .
+ "${min_image_width}x${min_image_height} are excluded.\n";
+ exit 1;
+}
+
+sub main() {
+ my $dir = undef;
+
+ while ($_ = $ARGV[0]) {
+ shift @ARGV;
+ if ($_ eq "--verbose") { $verbose++; }
+ elsif (m/^-v+$/) { $verbose += length($_)-1; }
+ elsif ($_ eq "--name") { } # ignored, for compatibility
+ elsif ($_ eq "--spotlight") { $use_spotlight_p = 1; }
+ elsif ($_ eq "--no-spotlight") { $use_spotlight_p = 0; }
+ elsif ($_ eq "--cache") { $cache_p = 1; }
+ elsif ($_ eq "--no-cache") { $cache_p = 0; }
+ elsif (m/^-./) { usage; }
+ elsif (!defined($dir)) { $dir = $_; }
+ else { usage; }
+ }
+
+ usage unless (defined($dir));
+
+ $dir =~ s@^~/@$ENV{HOME}/@s; # allow literal "~/"
+ $dir =~ s@/+$@@s; # omit trailing /
+
+ if (! -d $dir) {
+ print STDERR "$progname: $dir: not a directory\n";
+ usage;
+ }
+
+ my $file = find_random_file ($dir);
+ print STDOUT "$file\n";
+}
+
+main;
+exit 0;
diff --git a/patches/source/xscreensaver/xscreensaver.SlackBuild b/patches/source/xscreensaver/xscreensaver.SlackBuild
new file mode 100755
index 000000000..7dabdcc1e
--- /dev/null
+++ b/patches/source/xscreensaver/xscreensaver.SlackBuild
@@ -0,0 +1,174 @@
+#!/bin/bash
+
+# Copyright 2008, 2009, 2010, 2012, 2013, 2014, 2016, 2018, 2019, 2020, 2021, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# 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.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=xscreensaver
+VERSION=${VERSION:-$(echo xscreensaver-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1_slack15.0}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ 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 "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-xscreensaver
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf xscreensaver-$VERSION
+tar xvf $CWD/xscreensaver-$VERSION.tar.?z || exit 1
+cd xscreensaver-$VERSION
+
+if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
+ USE_PAM="--with-pam"
+ unset USE_SHADOW
+else
+ ## NOTE: The patch below (and support for setgid shadow) is broken and
+ ## unmaintained. But the broken bits will be left as hints for anyone
+ ## down the line who might care.
+ # 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
+
+# Remove a feature that pops up a nag screen claiming the version is old
+# after one year. Just don't send in bug reports on an old version, OK folks?
+# I hate to swim against upstream, but with all respect this feature is not
+# helpful to distributions.
+zcat $CWD/xscreensaver.no.expiration.date.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+xml_config=/usr/bin/xml-config xml2_config=/usr/bin/xml2-config \
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --with-app-defaults=/etc/X11/app-defaults \
+ --with-text-file=/usr/doc/netdate/COPYRIGHT \
+ $USE_SHADOW \
+ $USE_PAM \
+ --without-kerberos \
+ --with-jpeg \
+ --with-gl \
+ --build=$ARCH-slackware-linux || exit 1
+
+# Build:
+make $NUMJOBS || make || exit 1
+make install_prefix=$PKG install-strip || exit 1
+
+if [ -z $USE_PAM ]; then
+ # Needed for password unlock:
+ chown root:shadow $PKG/usr/bin/xscreensaver
+ chmod 2751 $PKG/usr/bin/xscreensaver
+else
+ ## Commenting out the chmod below, since as of v6.00 this binary is no longer
+ ## made setuid at installation. But if that changes, we'll go along with it
+ ## since jwz says it may be required to prevent OOM killer abuse from
+ ## unlocking the screen.
+ # 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
+mkdir -p $PKG/etc
+mkdir -p $PKG/usr/doc/xscreensaver-$VERSION
+cp -a \
+ README* \
+ $PKG/usr/doc/xscreensaver-$VERSION
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Insert an older version of xscreensaver-getimage-file to avoid depending
+# on libwww-perl. Maybe we'll eventually add this, but bundling 14 perl
+# modules is a lot of maintainance just to get slidescreen working again.
+# This restores the functionality that we had before without all that.
+cat $CWD/xscreensaver-getimage-file-5.14 > $PKG/usr/bin/xscreensaver-getimage-file
+
+mkdir -p $PKG/install
+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/patches/source/xscreensaver/xscreensaver.electricsheep.diff b/patches/source/xscreensaver/xscreensaver.electricsheep.diff
new file mode 100644
index 000000000..b8ef4e527
--- /dev/null
+++ b/patches/source/xscreensaver/xscreensaver.electricsheep.diff
@@ -0,0 +1,20 @@
+--- ./driver/XScreenSaver.ad.in.orig 2022-12-11 14:32:55.000000000 -0600
++++ ./driver/XScreenSaver.ad.in 2022-12-12 13:21:20.761072115 -0600
+@@ -411,6 +411,7 @@
+ spotlight --root \n\
+ squiral --root \n\
+ wander --root \n\
++ electricsheep --root 1 \n\
+ xflame --root \n\
+ xmatrix --root \n\
+ @GL_KLUDGE@ GL: gflux --root \n\
+--- ./driver/XScreenSaver_ad.h.orig 2022-12-11 15:08:39.000000000 -0600
++++ ./driver/XScreenSaver_ad.h 2022-12-12 13:21:24.404072196 -0600
+@@ -266,6 +266,7 @@
+ spotlight --root \\n\
+ squiral --root \\n\
+ wander --root \\n\
++ electricsheep --root 1 \\n\
+ xflame --root \\n\
+ xmatrix --root \\n\
+ GL: gflux --root \\n\
diff --git a/patches/source/xscreensaver/xscreensaver.no.expiration.date.diff b/patches/source/xscreensaver/xscreensaver.no.expiration.date.diff
new file mode 100644
index 000000000..5929e91c0
--- /dev/null
+++ b/patches/source/xscreensaver/xscreensaver.no.expiration.date.diff
@@ -0,0 +1,30 @@
+--- ./driver/dialog.c.orig 2021-10-04 17:18:28.000000000 -0500
++++ ./driver/dialog.c 2023-03-05 14:03:13.158084489 -0600
+@@ -1333,6 +1333,15 @@
+ lines[i].align = CENTER;
+ i++;
+
++/*
++ NOTE: This feature is disabled by Slackware... we do not ship multi-year
++ old versions, nor do we think it is a good idea to include nag screens
++ that activate when an expiration date is reached. In this case, the
++ nag screen was activated after only one year, which practically insures
++ that this will be seen before the next stable Slackware release.
++ If there's a problem that needs fixing, we'll issue a fix.
++ No nag screens please. Thanks for possibly reconsidering this!
++
+ if (time ((time_t *) 0) - XSCREENSAVER_RELEASED > 60*60*24*30*17)
+ {
+ lines[i].text = _("Update available!\nThis version is very old.\n");
+@@ -1343,7 +1352,10 @@
+ lines[i].align = CENTER;
+ i++;
+ }
+- else if (strstr (ws->version, "a") ||
++ else
++*/
++
++ if (strstr (ws->version, "a") ||
+ strstr (ws->version, "b"))
+ {
+ lines[i].text = _("PRE-RELEASE VERSION");
diff --git a/patches/source/xscreensaver/xscreensaver.pam b/patches/source/xscreensaver/xscreensaver.pam
new file mode 100644
index 000000000..86f37b294
--- /dev/null
+++ b/patches/source/xscreensaver/xscreensaver.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+
+ auth include system-auth
diff --git a/patches/source/xscreensaver/xscreensaver.setuid.diff b/patches/source/xscreensaver/xscreensaver.setuid.diff
new file mode 100644
index 000000000..c6810af55
--- /dev/null
+++ b/patches/source/xscreensaver/xscreensaver.setuid.diff
@@ -0,0 +1,179 @@
+--- ./driver/setuid.c.orig 2006-02-08 20:28:38.000000000 -0600
++++ ./driver/setuid.c 2006-04-04 16:48:08.000000000 -0500
+@@ -1,5 +1,5 @@
+ /* setuid.c --- management of runtime privileges.
+- * xscreensaver, Copyright (c) 1993-1998, 2005 Jamie Zawinski <jwz@jwz.org>
++ * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+@@ -41,7 +41,7 @@
+ struct group *g = 0;
+ p = getpwuid (uid);
+ g = getgrgid (gid);
+- sprintf (buf, "%.100s/%.100s (%ld/%ld)",
++ sprintf (buf, "%s/%s (%ld/%ld)",
+ (p && p->pw_name ? p->pw_name : "???"),
+ (g && g->gr_name ? g->gr_name : "???"),
+ (long) uid, (long) gid);
+@@ -74,50 +74,11 @@
+ }
+
+
+-/* Returns true if we need to call setgroups().
+-
+- Without calling setgroups(), the process will retain any supplementary
+- gids associated with the uid, e.g.:
+-
+- % groups root
+- root : root bin daemon sys adm disk wheel
+-
+- However, setgroups() can only be called by root, and returns EPERM
+- for other users even if the call would be a no-op (e.g., setting the
+- group list to the current list.) So, to avoid that spurious error,
+- before calling setgroups() we first check whether the current list
+- of groups contains only one element, our target group. If so, we
+- don't need to call setgroups().
+- */
+-static int
+-setgroups_needed_p (uid_t target_group)
+-{
+- gid_t groups[1024];
+- int n, size;
+- size = sizeof(groups) / sizeof(gid_t);
+- n = getgroups (size - 1, groups);
+- if (n < 0)
+- {
+- char buf [1024];
+- sprintf (buf, "%s: getgroups(%ld, ...)", blurb(), (long int)(size - 1));
+- perror (buf);
+- return 1;
+- }
+- else if (n == 0) /* an empty list means only egid is in effect. */
+- return 0;
+- else if (n == 1 && groups[0] == target_group) /* one element, the target */
+- return 0;
+- else /* more than one, or the wrong one. */
+- return 1;
+-}
+-
+-
+ static int
+ set_ids_by_number (uid_t uid, gid_t gid, char **message_ret)
+ {
+ int uid_errno = 0;
+ int gid_errno = 0;
+- int sgs_errno = 0;
+ struct passwd *p = getpwuid (uid);
+ struct group *g = getgrgid (gid);
+
+@@ -136,11 +97,6 @@
+ if (uid == (uid_t) -1) uid = (uid_t) -2;
+
+ errno = 0;
+- if (setgroups_needed_p (gid) &&
+- setgroups (1, &gid) < 0)
+- sgs_errno = errno ? errno : -1;
+-
+- errno = 0;
+ if (setgid (gid) != 0)
+ gid_errno = errno ? errno : -1;
+
+@@ -148,10 +104,10 @@
+ if (setuid (uid) != 0)
+ uid_errno = errno ? errno : -1;
+
+- if (uid_errno == 0 && gid_errno == 0 && sgs_errno == 0)
++ if (uid_errno == 0 && gid_errno == 0)
+ {
+ static char buf [1024];
+- sprintf (buf, "changed uid/gid to %.100s/%.100s (%ld/%ld).",
++ sprintf (buf, "changed uid/gid to %s/%s (%ld/%ld).",
+ (p && p->pw_name ? p->pw_name : "???"),
+ (g && g->gr_name ? g->gr_name : "???"),
+ (long) uid, (long) gid);
+@@ -162,71 +118,28 @@
+ else
+ {
+ char buf [1024];
+- gid_t groups[1024];
+- int n, size;
+-
+- if (sgs_errno)
+- {
+- sprintf (buf, "%s: couldn't setgroups to %.100s (%ld)",
+- blurb(),
+- (g && g->gr_name ? g->gr_name : "???"),
+- (long) gid);
+- if (sgs_errno == -1)
+- fprintf(stderr, "%s: unknown error\n", buf);
+- else
+- {
+- errno = sgs_errno;
+- perror(buf);
+- }
+-
+- fprintf (stderr, "%s: effective group list: ", blurb());
+- size = sizeof(groups) / sizeof(gid_t);
+- n = getgroups (size - 1, groups);
+- if (n < 0)
+- fprintf (stderr, "unknown!\n");
+- else
+- {
+- int i;
+- fprintf (stderr, "[");
+- for (i = 0; i < n; i++)
+- {
+- g = getgrgid (groups[i]);
+- if (i > 0) fprintf (stderr, ", ");
+- if (g && g->gr_name) fprintf (stderr, "%s", g->gr_name);
+- else fprintf (stderr, "%ld", (long) groups[i]);
+- }
+- fprintf (stderr, "]\n");
+- }
+- }
+-
+ if (gid_errno)
+ {
+- sprintf (buf, "%s: couldn't set gid to %.100s (%ld)",
++ sprintf (buf, "%s: couldn't set gid to %s (%ld)",
+ blurb(),
+ (g && g->gr_name ? g->gr_name : "???"),
+ (long) gid);
+ if (gid_errno == -1)
+ fprintf(stderr, "%s: unknown error\n", buf);
+ else
+- {
+- errno = gid_errno;
+- perror(buf);
+- }
++ perror(buf);
+ }
+
+ if (uid_errno)
+ {
+- sprintf (buf, "%s: couldn't set uid to %.100s (%ld)",
++ sprintf (buf, "%s: couldn't set uid to %s (%ld)",
+ blurb(),
+ (p && p->pw_name ? p->pw_name : "???"),
+ (long) uid);
+ if (uid_errno == -1)
+ fprintf(stderr, "%s: unknown error\n", buf);
+ else
+- {
+- errno = uid_errno;
+- perror(buf);
+- }
++ perror(buf);
+ }
+
+ return -1;
+@@ -350,7 +263,7 @@
+ !strcmp (p->pw_name, "games"))
+ {
+ static char buf [1024];
+- sprintf (buf, "running as %.100s",
++ sprintf (buf, "running as %s",
+ (p && p->pw_name && *p->pw_name
+ ? p->pw_name : "<unknown>"));
+ si->nolock_reason = buf;
diff --git a/recompress.sh b/recompress.sh
index bf5209fcd..084bd9531 100755
--- a/recompress.sh
+++ b/recompress.sh
@@ -1253,6 +1253,11 @@ gzip ./patches/source/xorg-server/patch/xorg-server/CVE-2022-3550.patch
gzip ./patches/source/xorg-server/patch/xorg-server/06_use-intel-only-on-pre-gen4.diff
gzip ./patches/source/xorg-server/patch/xorg-server/0001-Always-install-vbe-and-int10-sdk-headers.patch
gzip ./patches/source/xorg-server/patch/xorg-server/0001-f1070c01d616c5f21f939d5ebc533738779451ac.patch
+gzip ./patches/source/xscreensaver/setuid.c
+gzip ./patches/source/xscreensaver/xscreensaver.electricsheep.diff
+gzip ./patches/source/xscreensaver/doinst.sh
+gzip ./patches/source/xscreensaver/xscreensaver.setuid.diff
+gzip ./patches/source/xscreensaver/xscreensaver.no.expiration.date.diff
gzip ./patches/source/util-linux/setserial-undef_TIOCGHAYESESP.diff
gzip ./patches/source/util-linux/setserial-rc.serial.diff
gzip ./patches/source/util-linux/util-linux.do.not.list.ram.devices.diff