mirror of
git://slackware.nl/current.git
synced 2024-12-27 09:59:16 +01:00
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.
This commit is contained in:
parent
61e0126fa3
commit
78c0119973
15 changed files with 1417 additions and 86 deletions
|
@ -11,9 +11,21 @@
|
|||
<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>
|
||||
|
|
|
@ -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.
|
||||
|
|
183
FILELIST.TXT
183
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
|
||||
|
|
11
patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt
Normal file
11
patches/packages/xscreensaver-6.06-x86_64-1_slack15.0.txt
Normal file
|
@ -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:
|
16
patches/source/xscreensaver/doinst.sh
Normal file
16
patches/source/xscreensaver/doinst.sh
Normal file
|
@ -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
|
14
patches/source/xscreensaver/dump.android.osx.sources.sh
Executable file
14
patches/source/xscreensaver/dump.android.osx.sources.sh
Executable file
|
@ -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
|
274
patches/source/xscreensaver/setuid.c
Normal file
274
patches/source/xscreensaver/setuid.c
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
19
patches/source/xscreensaver/slack-desc
Normal file
19
patches/source/xscreensaver/slack-desc
Normal file
|
@ -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:
|
555
patches/source/xscreensaver/xscreensaver-getimage-file-5.14
Normal file
555
patches/source/xscreensaver/xscreensaver-getimage-file-5.14
Normal file
|
@ -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;
|
174
patches/source/xscreensaver/xscreensaver.SlackBuild
Executable file
174
patches/source/xscreensaver/xscreensaver.SlackBuild
Executable file
|
@ -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
|
20
patches/source/xscreensaver/xscreensaver.electricsheep.diff
Normal file
20
patches/source/xscreensaver/xscreensaver.electricsheep.diff
Normal file
|
@ -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\
|
|
@ -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");
|
3
patches/source/xscreensaver/xscreensaver.pam
Normal file
3
patches/source/xscreensaver/xscreensaver.pam
Normal file
|
@ -0,0 +1,3 @@
|
|||
#%PAM-1.0
|
||||
|
||||
auth include system-auth
|
179
patches/source/xscreensaver/xscreensaver.setuid.diff
Normal file
179
patches/source/xscreensaver/xscreensaver.setuid.diff
Normal file
|
@ -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;
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue