diff --git a/ChangeLog.rss b/ChangeLog.rss
index 7181bf4fd..8c4a0ac74 100644
--- a/ChangeLog.rss
+++ b/ChangeLog.rss
@@ -11,9 +11,46 @@
Tracking Slackware development in git.
en-us
urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f
- Fri, 23 Dec 2022 02:37:47 GMT
- Fri, 23 Dec 2022 12:30:16 GMT
+ Wed, 4 Jan 2023 02:18:08 GMT
+ Wed, 4 Jan 2023 12:30:15 GMT
maintain_current_git.sh v 1.17
+ -
+ Wed, 4 Jan 2023 02:18:08 GMT
+ Wed, 4 Jan 2023 02:18:08 GMT
+ https://git.slackware.nl/current/tag/?h=20230104021808
+ 20230104021808
+
+
+patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txz: Upgraded.
+ Patched various security bugs.
+ For more information, see:
+ https://www.cve.org/CVERecord?id=CVE-2022-2056
+ https://www.cve.org/CVERecord?id=CVE-2022-2057
+ https://www.cve.org/CVERecord?id=CVE-2022-2058
+ https://www.cve.org/CVERecord?id=CVE-2022-3970
+ https://www.cve.org/CVERecord?id=CVE-2022-34526
+ (* Security fix *)
+patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txz: Rebuilt.
+ When the "background" extension was loaded, an attacker able to control the
+ data written to the terminal would be able to execute arbitrary code as the
+ terminal's user. Thanks to David Leadbeater and Ben Collver.
+ For more information, see:
+ https://www.openwall.com/lists/oss-security/2022/12/05/1
+ https://www.cve.org/CVERecord?id=CVE-2022-4170
+ (* Security fix *)
+patches/packages/whois-5.5.15-x86_64-1_slack15.0.txz: Upgraded.
+ Updated the .bd, .nz and .tv TLD servers.
+ Added the .llyw.cymru, .gov.scot and .gov.wales SLD servers.
+ Updated the .ac.uk and .gov.uk SLD servers.
+ Recursion has been enabled for whois.nic.tv.
+ Updated the list of new gTLDs with four generic TLDs assigned in October 2013
+ which were missing due to a bug.
+ Removed 4 new gTLDs which are no longer active.
+ Added the Georgian translation, contributed by Temuri Doghonadze.
+ Updated the Finnish translation, contributed by Lauri Nurmi.
+ ]]>
+
+
-
Fri, 23 Dec 2022 02:37:47 GMT
Fri, 23 Dec 2022 02:37:47 GMT
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 065f035cd..530ee1e29 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,32 @@
+Wed Jan 4 02:18:08 UTC 2023
+patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txz: Upgraded.
+ Patched various security bugs.
+ For more information, see:
+ https://www.cve.org/CVERecord?id=CVE-2022-2056
+ https://www.cve.org/CVERecord?id=CVE-2022-2057
+ https://www.cve.org/CVERecord?id=CVE-2022-2058
+ https://www.cve.org/CVERecord?id=CVE-2022-3970
+ https://www.cve.org/CVERecord?id=CVE-2022-34526
+ (* Security fix *)
+patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txz: Rebuilt.
+ When the "background" extension was loaded, an attacker able to control the
+ data written to the terminal would be able to execute arbitrary code as the
+ terminal's user. Thanks to David Leadbeater and Ben Collver.
+ For more information, see:
+ https://www.openwall.com/lists/oss-security/2022/12/05/1
+ https://www.cve.org/CVERecord?id=CVE-2022-4170
+ (* Security fix *)
+patches/packages/whois-5.5.15-x86_64-1_slack15.0.txz: Upgraded.
+ Updated the .bd, .nz and .tv TLD servers.
+ Added the .llyw.cymru, .gov.scot and .gov.wales SLD servers.
+ Updated the .ac.uk and .gov.uk SLD servers.
+ Recursion has been enabled for whois.nic.tv.
+ Updated the list of new gTLDs with four generic TLDs assigned in October 2013
+ which were missing due to a bug.
+ Removed 4 new gTLDs which are no longer active.
+ Added the Georgian translation, contributed by Temuri Doghonadze.
+ Updated the Finnish translation, contributed by Lauri Nurmi.
++--------------------------+
Fri Dec 23 02:37:47 UTC 2022
testing/packages/bind-9.18.10-x86_64-1_slack15.0.txz: Upgraded.
+--------------------------+
diff --git a/FILELIST.TXT b/FILELIST.TXT
index 2e42f7c5f..aa2f69744 100644
--- a/FILELIST.TXT
+++ b/FILELIST.TXT
@@ -1,20 +1,20 @@
-Fri Dec 23 02:42:01 UTC 2022
+Wed Jan 4 02:23:33 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 2022-12-23 02:39 .
+drwxr-xr-x 12 root root 4096 2023-01-04 02:18 .
-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 1165359 2022-12-23 02:39 ./CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2022-12-23 02:39 ./CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 1165541 2022-12-23 02:42 ./CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2022-12-23 02:42 ./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 1970597 2022-12-23 02:37 ./ChangeLog.txt
+-rw-r--r-- 1 root root 1972071 2023-01-04 02:18 ./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 1522135 2022-12-23 02:39 ./FILELIST.TXT
+-rw-r--r-- 1 root root 1522351 2022-12-23 02:42 ./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 2022-12-22 03:46 ./patches
--rw-r--r-- 1 root root 60168 2022-12-22 03:46 ./patches/CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2022-12-22 03:46 ./patches/CHECKSUMS.md5.asc
--rw-r--r-- 1 root root 81062 2022-12-22 03:46 ./patches/FILE_LIST
--rw-r--r-- 1 root root 11915999 2022-12-22 03:46 ./patches/MANIFEST.bz2
--rw-r--r-- 1 root root 43081 2022-12-22 03:46 ./patches/PACKAGES.TXT
-drwxr-xr-x 3 root root 20480 2022-12-22 03:46 ./patches/packages
+drwxr-xr-x 4 root root 4096 2023-01-04 02:23 ./patches
+-rw-r--r-- 1 root root 61893 2023-01-04 02:23 ./patches/CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2023-01-04 02:23 ./patches/CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 83378 2023-01-04 02:23 ./patches/FILE_LIST
+-rw-r--r-- 1 root root 11937223 2023-01-04 02:23 ./patches/MANIFEST.bz2
+-rw-r--r-- 1 root root 44325 2023-01-04 02:23 ./patches/PACKAGES.TXT
+drwxr-xr-x 3 root root 20480 2023-01-04 02:23 ./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
@@ -826,6 +826,9 @@ drwxr-xr-x 3 root root 20480 2022-12-22 03:46 ./patches/packages
-rw-r--r-- 1 root root 332 2022-12-20 19:28 ./patches/packages/libksba-1.6.3-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 169200 2022-12-20 19:28 ./patches/packages/libksba-1.6.3-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-12-20 19:28 ./patches/packages/libksba-1.6.3-x86_64-1_slack15.0.txz.asc
+-rw-r--r-- 1 root root 440 2023-01-03 22:02 ./patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txt
+-rw-r--r-- 1 root root 467968 2023-01-03 22:02 ./patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txz
+-rw-r--r-- 1 root root 163 2023-01-03 22:02 ./patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txz.asc
-rw-r--r-- 1 root root 518 2022-05-02 18:01 ./patches/packages/libxml2-2.9.14-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 1374356 2022-05-02 18:01 ./patches/packages/libxml2-2.9.14-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-05-02 18:01 ./patches/packages/libxml2-2.9.14-x86_64-1_slack15.0.txz.asc
@@ -896,6 +899,9 @@ drwxr-xr-x 2 root root 4096 2022-11-29 21:00 ./patches/packages/linux-5.15
-rw-r--r-- 1 root root 385 2022-11-24 20:10 ./patches/packages/ruby-3.0.5-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 7740336 2022-11-24 20:10 ./patches/packages/ruby-3.0.5-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-11-24 20:10 ./patches/packages/ruby-3.0.5-x86_64-1_slack15.0.txz.asc
+-rw-r--r-- 1 root root 480 2023-01-03 20:05 ./patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txt
+-rw-r--r-- 1 root root 901912 2023-01-03 20:05 ./patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txz
+-rw-r--r-- 1 root root 163 2023-01-03 20:05 ./patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txz.asc
-rw-r--r-- 1 root root 507 2022-12-17 19:58 ./patches/packages/samba-4.15.13-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 13030204 2022-12-17 19:58 ./patches/packages/samba-4.15.13-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-12-17 19:58 ./patches/packages/samba-4.15.13-x86_64-1_slack15.0.txz.asc
@@ -923,9 +929,9 @@ drwxr-xr-x 2 root root 4096 2022-11-29 21:00 ./patches/packages/linux-5.15
-rw-r--r-- 1 root root 507 2022-07-10 18:40 ./patches/packages/wavpack-5.5.0-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 185936 2022-07-10 18:40 ./patches/packages/wavpack-5.5.0-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-07-10 18:40 ./patches/packages/wavpack-5.5.0-x86_64-1_slack15.0.txz.asc
--rw-r--r-- 1 root root 367 2022-10-20 18:34 ./patches/packages/whois-5.5.14-x86_64-1_slack15.0.txt
--rw-r--r-- 1 root root 61840 2022-10-20 18:34 ./patches/packages/whois-5.5.14-x86_64-1_slack15.0.txz
--rw-r--r-- 1 root root 163 2022-10-20 18:34 ./patches/packages/whois-5.5.14-x86_64-1_slack15.0.txz.asc
+-rw-r--r-- 1 root root 367 2023-01-03 19:41 ./patches/packages/whois-5.5.15-x86_64-1_slack15.0.txt
+-rw-r--r-- 1 root root 64020 2023-01-03 19:41 ./patches/packages/whois-5.5.15-x86_64-1_slack15.0.txz
+-rw-r--r-- 1 root root 163 2023-01-03 19:41 ./patches/packages/whois-5.5.15-x86_64-1_slack15.0.txz.asc
-rw-r--r-- 1 root root 377 2022-11-17 01:47 ./patches/packages/xfce4-settings-4.16.5-x86_64-1_slack15.0.txt
-rw-r--r-- 1 root root 801956 2022-11-17 01:47 ./patches/packages/xfce4-settings-4.16.5-x86_64-1_slack15.0.txz
-rw-r--r-- 1 root root 163 2022-11-17 01:47 ./patches/packages/xfce4-settings-4.16.5-x86_64-1_slack15.0.txz.asc
@@ -950,7 +956,7 @@ drwxr-xr-x 2 root root 4096 2022-11-29 21:00 ./patches/packages/linux-5.15
-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 60 root root 4096 2022-12-22 03:39 ./patches/source
+drwxr-xr-x 62 root root 4096 2023-01-03 22:20 ./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
@@ -1192,6 +1198,17 @@ drwxr-xr-x 2 root root 4096 2022-12-20 19:28 ./patches/source/libksba
-rwxr-xr-x 1 root root 3977 2022-10-08 18:40 ./patches/source/libksba/libksba.SlackBuild
-rw-r--r-- 1 root root 36 2020-05-24 18:04 ./patches/source/libksba/libksba.url
-rw-r--r-- 1 root root 787 2018-02-27 06:13 ./patches/source/libksba/slack-desc
+drwxr-xr-x 3 root root 4096 2023-01-03 20:12 ./patches/source/libtiff
+-rwxr-xr-x 1 root root 4389 2023-01-03 21:14 ./patches/source/libtiff/libtiff.SlackBuild
+-rw-r--r-- 1 root root 35 2018-11-12 18:29 ./patches/source/libtiff/libtiff.repo
+-rw-r--r-- 1 root root 36 2018-11-12 18:26 ./patches/source/libtiff/libtiff.url
+drwxr-xr-x 2 root root 4096 2023-01-03 20:11 ./patches/source/libtiff/patches
+-rw-r--r-- 1 root root 1901 2022-12-10 18:23 ./patches/source/libtiff/patches/CVE-2022-2056_2057_2058.patch.gz
+-rw-r--r-- 1 root root 574 2022-12-10 18:23 ./patches/source/libtiff/patches/CVE-2022-34526.patch.gz
+-rw-r--r-- 1 root root 661 2022-12-10 18:28 ./patches/source/libtiff/patches/CVE-2022-3970.patch.gz
+-rw-r--r-- 1 root root 895 2018-02-27 06:12 ./patches/source/libtiff/slack-desc
+-rw-r--r-- 1 root root 1929292 2022-05-27 14:53 ./patches/source/libtiff/tiff-4.4.0.tar.xz
+-rw-r--r-- 1 root root 310 2022-05-27 14:53 ./patches/source/libtiff/tiff-4.4.0.tar.xz.sig
drwxr-xr-x 2 root root 4096 2022-05-02 17:57 ./patches/source/libxml2
-rw-r--r-- 1 root root 3022896 2022-05-02 17:59 ./patches/source/libxml2/libxml2-2.9.14.tar.xz
-rwxr-xr-x 1 root root 4926 2022-03-01 01:04 ./patches/source/libxml2/libxml2.SlackBuild
@@ -1420,6 +1437,14 @@ drwxr-xr-x 2 root root 4096 2022-11-24 20:07 ./patches/source/ruby
-rw-r--r-- 1 root root 15531585 2022-11-24 13:05 ./patches/source/ruby/ruby-3.0.5.tar.lz
-rwxr-xr-x 1 root root 4817 2022-04-13 18:14 ./patches/source/ruby/ruby.SlackBuild
-rw-r--r-- 1 root root 837 2019-03-13 16:43 ./patches/source/ruby/slack-desc
+drwxr-xr-x 2 root root 4096 2023-01-03 19:55 ./patches/source/rxvt-unicode
+-rw-r--r-- 1 root root 303 2023-01-03 19:54 ./patches/source/rxvt-unicode/CVE-2022-4170.diff.gz
+-rw-r--r-- 1 root root 222 2018-03-31 17:18 ./patches/source/rxvt-unicode/rxvt-unicode-256color.desktop
+-rw-r--r-- 1 root root 743838 2021-05-14 17:15 ./patches/source/rxvt-unicode/rxvt-unicode-9.26.tar.lz
+-rwxr-xr-x 1 root root 5744 2023-01-03 20:05 ./patches/source/rxvt-unicode/rxvt-unicode.SlackBuild
+-rw-r--r-- 1 root root 207 2018-03-31 17:17 ./patches/source/rxvt-unicode/rxvt-unicode.desktop
+-rw-r--r-- 1 root root 7758 2018-03-31 16:26 ./patches/source/rxvt-unicode/rxvt-unicode.utempter.diff.gz
+-rw-r--r-- 1 root root 940 2018-03-31 16:58 ./patches/source/rxvt-unicode/slack-desc
drwxr-xr-x 2 root root 4096 2022-12-17 19:52 ./patches/source/samba
-rw-r--r-- 1 root root 703 2016-06-13 04:19 ./patches/source/samba/doinst.sh.gz
-rw-r--r-- 1 root root 940 2016-06-04 17:50 ./patches/source/samba/rc.samba
@@ -1520,9 +1545,9 @@ drwxr-xr-x 2 root root 4096 2022-07-10 18:34 ./patches/source/wavpack
-rw-r--r-- 1 root root 797996 2022-07-09 01:55 ./patches/source/wavpack/wavpack-5.5.0.tar.xz
-rwxr-xr-x 1 root root 4283 2022-07-10 18:40 ./patches/source/wavpack/wavpack.SlackBuild
-rw-r--r-- 1 root root 32 2019-12-19 18:55 ./patches/source/wavpack/wavpack.url
-drwxr-xr-x 2 root root 4096 2022-10-20 18:15 ./patches/source/whois
+drwxr-xr-x 2 root root 4096 2023-01-03 19:41 ./patches/source/whois
-rw-r--r-- 1 root root 820 2019-03-28 19:25 ./patches/source/whois/slack-desc
--rw-r--r-- 1 root root 87372 2022-10-16 20:16 ./patches/source/whois/whois-5.5.14.tar.xz
+-rw-r--r-- 1 root root 89912 2022-12-28 19:46 ./patches/source/whois/whois-5.5.15.tar.xz
-rwxr-xr-x 1 root root 2917 2022-03-28 19:06 ./patches/source/whois/whois.SlackBuild
-rw-r--r-- 1 root root 33 2019-07-24 18:55 ./patches/source/whois/whois.url
drwxr-xr-x 2 root root 4096 2022-11-16 19:13 ./patches/source/xfce4-settings
@@ -2712,32 +2737,32 @@ drwxr-xr-x 2 root root 69632 2022-02-01 08:29 ./slackware64/kde
-rw-r--r-- 1 root root 163 2022-01-06 22:35 ./slackware64/kde/katomic-21.12.1-x86_64-1.txz.asc
-rw-r--r-- 1 root root 303 2022-01-08 22:33 ./slackware64/kde/kauth-5.90.0-x86_64-1.txt
-rw-r--r-- 1 root root 127260 2022-01-08 22:33 ./slackware64/kde/kauth-5.90.0-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-08 22:33 ./slackware64/kde/kauth-5.90.0-x86_64-1.txz.asc
--rw-r--r-- 1 root root 457 2022-01-06 22:04 ./slackware64/kde/kbackup-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 497484 2022-01-06 22:04 ./slackware64/kde/kbackup-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:04 ./slackware64/kde/kbackup-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 266 2022-01-06 22:34 ./slackware64/kde/kblackbox-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 603400 2022-01-06 22:34 ./slackware64/kde/kblackbox-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:34 ./slackware64/kde/kblackbox-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 200 2022-01-06 22:28 ./slackware64/kde/kblocks-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 2213608 2022-01-06 22:28 ./slackware64/kde/kblocks-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:28 ./slackware64/kde/kblocks-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 497 2022-01-08 22:38 ./slackware64/kde/kbookmarks-5.90.0-x86_64-1.txt
--rw-r--r-- 1 root root 151540 2022-01-08 22:38 ./slackware64/kde/kbookmarks-5.90.0-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-08 22:38 ./slackware64/kde/kbookmarks-5.90.0-x86_64-1.txz.asc
--rw-r--r-- 1 root root 388 2022-01-06 22:30 ./slackware64/kde/kbounce-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 3023468 2022-01-06 22:30 ./slackware64/kde/kbounce-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:30 ./slackware64/kde/kbounce-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 214 2022-01-06 22:32 ./slackware64/kde/kbreakout-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 2644332 2022-01-06 22:32 ./slackware64/kde/kbreakout-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:32 ./slackware64/kde/kbreakout-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 183 2022-01-06 22:42 ./slackware64/kde/kbruch-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 4521928 2022-01-06 22:42 ./slackware64/kde/kbruch-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:42 ./slackware64/kde/kbruch-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 281 2022-01-06 22:07 ./slackware64/kde/kcachegrind-21.12.1-x86_64-1.txt
--rw-r--r-- 1 root root 856336 2022-01-06 22:07 ./slackware64/kde/kcachegrind-21.12.1-x86_64-1.txz
--rw-r--r-- 1 root root 163 2022-01-06 22:07 ./slackware64/kde/kcachegrind-21.12.1-x86_64-1.txz.asc
--rw-r--r-- 1 root root 251 2022-01-06 22:03 ./slackware64/kde/kcalc-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 163 2022-01-08 22:33 ./slackware64/kde/kauth-5.90.0-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 457 2022-01-06 22:04 ./slackware64/kde/kbackup-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 497484 2022-01-06 22:04 ./slackware64/kde/kbackup-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:04 ./slackware64/kde/kbackup-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 266 2022-01-06 22:34 ./slackware64/kde/kblackbox-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 603400 2022-01-06 22:34 ./slackware64/kde/kblackbox-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:34 ./slackware64/kde/kblackbox-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 200 2022-01-06 22:28 ./slackware64/kde/kblocks-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 2213608 2022-01-06 22:28 ./slackware64/kde/kblocks-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:28 ./slackware64/kde/kblocks-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 497 2022-01-08 22:38 ./slackware64/kde/kbookmarks-5.90.0-x86_64-1.txt
+-rw-r--r-- 1 root root 151540 2022-01-08 22:38 ./slackware64/kde/kbookmarks-5.90.0-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-08 22:38 ./slackware64/kde/kbookmarks-5.90.0-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 388 2022-01-06 22:30 ./slackware64/kde/kbounce-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 3023468 2022-01-06 22:30 ./slackware64/kde/kbounce-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:30 ./slackware64/kde/kbounce-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 214 2022-01-06 22:32 ./slackware64/kde/kbreakout-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 2644332 2022-01-06 22:32 ./slackware64/kde/kbreakout-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:32 ./slackware64/kde/kbreakout-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 183 2022-01-06 22:42 ./slackware64/kde/kbruch-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 4521928 2022-01-06 22:42 ./slackware64/kde/kbruch-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:42 ./slackware64/kde/kbruch-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 281 2022-01-06 22:07 ./slackware64/kde/kcachegrind-21.12.1-x86_64-1.txt
+-rw-r--r-- 1 root root 856336 2022-01-06 22:07 ./slackware64/kde/kcachegrind-21.12.1-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2022-01-06 22:07 ./slackware64/kde/kcachegrind-21.12.1-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 251 2022-01-06 22:03 ./slackware64/kde/kcalc-21.12.1-x86_64-1.txt
-rw-r--r-- 1 root root 557248 2022-01-06 22:03 ./slackware64/kde/kcalc-21.12.1-x86_64-1.txz
-rw-r--r-- 1 root root 163 2022-01-06 22:03 ./slackware64/kde/kcalc-21.12.1-x86_64-1.txz.asc
-rw-r--r-- 1 root root 369 2022-01-08 22:28 ./slackware64/kde/kcalendarcore-5.90.0-x86_64-1.txt
@@ -5439,34 +5464,34 @@ drwxr-xr-x 2 root root 65536 2022-02-01 04:47 ./slackware64/x
-rw-r--r-- 1 root root 13308 2021-02-13 13:20 ./slackware64/x/font-winitzki-cyrillic-1.0.3-noarch-5.txz
-rw-r--r-- 1 root root 163 2021-02-13 13:20 ./slackware64/x/font-winitzki-cyrillic-1.0.3-noarch-5.txz.asc
-rw-r--r-- 1 root root 451 2021-02-13 13:20 ./slackware64/x/font-xfree86-type1-1.0.4-noarch-5.txt
--rw-r--r-- 1 root root 36448 2021-02-13 13:20 ./slackware64/x/font-xfree86-type1-1.0.4-noarch-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:20 ./slackware64/x/font-xfree86-type1-1.0.4-noarch-5.txz.asc
--rw-r--r-- 1 root root 385 2021-02-13 12:46 ./slackware64/x/fontconfig-2.13.92-x86_64-3.txt
--rw-r--r-- 1 root root 318208 2021-02-13 12:46 ./slackware64/x/fontconfig-2.13.92-x86_64-3.txz
--rw-r--r-- 1 root root 163 2021-02-13 12:46 ./slackware64/x/fontconfig-2.13.92-x86_64-3.txz.asc
--rw-r--r-- 1 root root 372 2021-06-15 18:31 ./slackware64/x/fonttosfnt-1.2.2-x86_64-1.txt
--rw-r--r-- 1 root root 34144 2021-06-15 18:31 ./slackware64/x/fonttosfnt-1.2.2-x86_64-1.txz
--rw-r--r-- 1 root root 163 2021-06-15 18:31 ./slackware64/x/fonttosfnt-1.2.2-x86_64-1.txz.asc
--rw-r--r-- 1 root root 474 2021-02-13 12:47 ./slackware64/x/freeglut-3.2.1-x86_64-3.txt
--rw-r--r-- 1 root root 135108 2021-02-13 12:47 ./slackware64/x/freeglut-3.2.1-x86_64-3.txz
--rw-r--r-- 1 root root 163 2021-02-13 12:47 ./slackware64/x/freeglut-3.2.1-x86_64-3.txz.asc
--rw-r--r-- 1 root root 363 2021-02-13 13:10 ./slackware64/x/fslsfonts-1.0.5-x86_64-5.txt
--rw-r--r-- 1 root root 19696 2021-02-13 13:10 ./slackware64/x/fslsfonts-1.0.5-x86_64-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:10 ./slackware64/x/fslsfonts-1.0.5-x86_64-5.txz.asc
--rw-r--r-- 1 root root 371 2021-02-13 13:10 ./slackware64/x/fstobdf-1.0.6-x86_64-5.txt
--rw-r--r-- 1 root root 19440 2021-02-13 13:10 ./slackware64/x/fstobdf-1.0.6-x86_64-5.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:10 ./slackware64/x/fstobdf-1.0.6-x86_64-5.txz.asc
--rw-r--r-- 1 root root 357 2021-02-13 13:05 ./slackware64/x/gccmakedep-1.0.3-noarch-4.txt
--rw-r--r-- 1 root root 5700 2021-02-13 13:05 ./slackware64/x/gccmakedep-1.0.3-noarch-4.txz
--rw-r--r-- 1 root root 163 2021-02-13 13:05 ./slackware64/x/gccmakedep-1.0.3-noarch-4.txz.asc
--rw-r--r-- 1 root root 385 2021-02-13 12:47 ./slackware64/x/glew-2.2.0-x86_64-3.txt
--rw-r--r-- 1 root root 417612 2021-02-13 12:47 ./slackware64/x/glew-2.2.0-x86_64-3.txz
--rw-r--r-- 1 root root 163 2021-02-13 12:47 ./slackware64/x/glew-2.2.0-x86_64-3.txz.asc
--rw-r--r-- 1 root root 138 2021-06-27 18:06 ./slackware64/x/glu-9.0.2-x86_64-1.txt
--rw-r--r-- 1 root root 170184 2021-06-27 18:06 ./slackware64/x/glu-9.0.2-x86_64-1.txz
--rw-r--r-- 1 root root 163 2021-06-27 18:06 ./slackware64/x/glu-9.0.2-x86_64-1.txz.asc
--rw-r--r-- 1 root root 508 2021-02-13 12:47 ./slackware64/x/hack-fonts-ttf-3.003-noarch-3.txt
--rw-r--r-- 1 root root 375048 2021-02-13 12:47 ./slackware64/x/hack-fonts-ttf-3.003-noarch-3.txz
+-rw-r--r-- 1 root root 36448 2021-02-13 13:20 ./slackware64/x/font-xfree86-type1-1.0.4-noarch-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:20 ./slackware64/x/font-xfree86-type1-1.0.4-noarch-5.txz.asc
+-rw-r--r-- 1 root root 385 2021-02-13 12:46 ./slackware64/x/fontconfig-2.13.92-x86_64-3.txt
+-rw-r--r-- 1 root root 318208 2021-02-13 12:46 ./slackware64/x/fontconfig-2.13.92-x86_64-3.txz
+-rw-r--r-- 1 root root 163 2021-02-13 12:46 ./slackware64/x/fontconfig-2.13.92-x86_64-3.txz.asc
+-rw-r--r-- 1 root root 372 2021-06-15 18:31 ./slackware64/x/fonttosfnt-1.2.2-x86_64-1.txt
+-rw-r--r-- 1 root root 34144 2021-06-15 18:31 ./slackware64/x/fonttosfnt-1.2.2-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2021-06-15 18:31 ./slackware64/x/fonttosfnt-1.2.2-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 474 2021-02-13 12:47 ./slackware64/x/freeglut-3.2.1-x86_64-3.txt
+-rw-r--r-- 1 root root 135108 2021-02-13 12:47 ./slackware64/x/freeglut-3.2.1-x86_64-3.txz
+-rw-r--r-- 1 root root 163 2021-02-13 12:47 ./slackware64/x/freeglut-3.2.1-x86_64-3.txz.asc
+-rw-r--r-- 1 root root 363 2021-02-13 13:10 ./slackware64/x/fslsfonts-1.0.5-x86_64-5.txt
+-rw-r--r-- 1 root root 19696 2021-02-13 13:10 ./slackware64/x/fslsfonts-1.0.5-x86_64-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:10 ./slackware64/x/fslsfonts-1.0.5-x86_64-5.txz.asc
+-rw-r--r-- 1 root root 371 2021-02-13 13:10 ./slackware64/x/fstobdf-1.0.6-x86_64-5.txt
+-rw-r--r-- 1 root root 19440 2021-02-13 13:10 ./slackware64/x/fstobdf-1.0.6-x86_64-5.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:10 ./slackware64/x/fstobdf-1.0.6-x86_64-5.txz.asc
+-rw-r--r-- 1 root root 357 2021-02-13 13:05 ./slackware64/x/gccmakedep-1.0.3-noarch-4.txt
+-rw-r--r-- 1 root root 5700 2021-02-13 13:05 ./slackware64/x/gccmakedep-1.0.3-noarch-4.txz
+-rw-r--r-- 1 root root 163 2021-02-13 13:05 ./slackware64/x/gccmakedep-1.0.3-noarch-4.txz.asc
+-rw-r--r-- 1 root root 385 2021-02-13 12:47 ./slackware64/x/glew-2.2.0-x86_64-3.txt
+-rw-r--r-- 1 root root 417612 2021-02-13 12:47 ./slackware64/x/glew-2.2.0-x86_64-3.txz
+-rw-r--r-- 1 root root 163 2021-02-13 12:47 ./slackware64/x/glew-2.2.0-x86_64-3.txz.asc
+-rw-r--r-- 1 root root 138 2021-06-27 18:06 ./slackware64/x/glu-9.0.2-x86_64-1.txt
+-rw-r--r-- 1 root root 170184 2021-06-27 18:06 ./slackware64/x/glu-9.0.2-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2021-06-27 18:06 ./slackware64/x/glu-9.0.2-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 508 2021-02-13 12:47 ./slackware64/x/hack-fonts-ttf-3.003-noarch-3.txt
+-rw-r--r-- 1 root root 375048 2021-02-13 12:47 ./slackware64/x/hack-fonts-ttf-3.003-noarch-3.txz
-rw-r--r-- 1 root root 163 2021-02-13 12:47 ./slackware64/x/hack-fonts-ttf-3.003-noarch-3.txz.asc
-rw-r--r-- 1 root root 287 2021-11-18 18:00 ./slackware64/x/ibus-1.5.25-x86_64-5.txt
-rw-r--r-- 1 root root 7728816 2021-11-18 18:00 ./slackware64/x/ibus-1.5.25-x86_64-5.txz
@@ -15053,43 +15078,43 @@ drwxr-xr-x 2 root root 12288 2020-05-18 17:50 ./source/x/x11/slack-desc
-rw-r--r-- 1 root root 633 2012-04-08 04:33 ./source/x/x11/slack-desc/xgc
-rw-r--r-- 1 root root 673 2012-04-08 04:33 ./source/x/x11/slack-desc/xhost
-rw-r--r-- 1 root root 867 2012-04-08 04:34 ./source/x/x11/slack-desc/xineramaproto
--rw-r--r-- 1 root root 769 2018-02-26 23:01 ./source/x/x11/slack-desc/xinit
--rw-r--r-- 1 root root 952 2012-04-08 04:34 ./source/x/x11/slack-desc/xinput
--rw-r--r-- 1 root root 875 2020-05-18 17:52 ./source/x/x11/slack-desc/xisxwayland
--rw-r--r-- 1 root root 764 2012-04-08 04:35 ./source/x/x11/slack-desc/xkbcomp
--rw-r--r-- 1 root root 755 2012-04-08 04:36 ./source/x/x11/slack-desc/xkbevd
--rw-r--r-- 1 root root 703 2012-04-08 04:36 ./source/x/x11/slack-desc/xkbprint
--rw-r--r-- 1 root root 708 2012-04-08 04:36 ./source/x/x11/slack-desc/xkbutils
--rw-r--r-- 1 root root 1122 2012-04-08 04:37 ./source/x/x11/slack-desc/xkeyboard-config
--rw-r--r-- 1 root root 756 2018-02-26 23:02 ./source/x/x11/slack-desc/xkill
--rw-r--r-- 1 root root 763 2012-04-08 04:37 ./source/x/x11/slack-desc/xload
--rw-r--r-- 1 root root 749 2012-04-08 04:38 ./source/x/x11/slack-desc/xlogo
--rw-r--r-- 1 root root 807 2012-04-08 04:38 ./source/x/x11/slack-desc/xlsatoms
--rw-r--r-- 1 root root 747 2012-04-08 04:39 ./source/x/x11/slack-desc/xlsclients
--rw-r--r-- 1 root root 696 2012-04-08 04:39 ./source/x/x11/slack-desc/xlsfonts
--rw-r--r-- 1 root root 620 2012-04-08 04:39 ./source/x/x11/slack-desc/xmag
--rw-r--r-- 1 root root 753 2012-04-08 04:40 ./source/x/x11/slack-desc/xman
--rw-r--r-- 1 root root 779 2018-02-26 23:02 ./source/x/x11/slack-desc/xmessage
--rw-r--r-- 1 root root 691 2018-02-26 23:02 ./source/x/x11/slack-desc/xmh
--rw-r--r-- 1 root root 867 2018-02-26 23:02 ./source/x/x11/slack-desc/xmodmap
--rw-r--r-- 1 root root 766 2012-04-08 04:42 ./source/x/x11/slack-desc/xmore
--rw-r--r-- 1 root root 954 2012-04-08 04:43 ./source/x/x11/slack-desc/xorg-cf-files
--rw-r--r-- 1 root root 805 2012-04-08 04:43 ./source/x/x11/slack-desc/xorg-docs
--rw-r--r-- 1 root root 1133 2020-02-19 20:30 ./source/x/x11/slack-desc/xorg-server
--rw-r--r-- 1 root root 839 2009-05-30 01:47 ./source/x/x11/slack-desc/xorg-server-xephyr
--rw-r--r-- 1 root root 1060 2018-02-26 23:03 ./source/x/x11/slack-desc/xorg-server-xnest
--rw-r--r-- 1 root root 1156 2018-02-26 23:03 ./source/x/x11/slack-desc/xorg-server-xvfb
--rw-r--r-- 1 root root 1287 2020-02-19 20:33 ./source/x/x11/slack-desc/xorg-server-xwayland
--rw-r--r-- 1 root root 1138 2018-02-26 23:03 ./source/x/x11/slack-desc/xorg-sgml-doctools
--rw-r--r-- 1 root root 792 2018-03-12 18:07 ./source/x/x11/slack-desc/xorgproto
--rw-r--r-- 1 root root 664 2018-02-26 23:03 ./source/x/x11/slack-desc/xpr
--rw-r--r-- 1 root root 766 2012-04-08 04:45 ./source/x/x11/slack-desc/xprop
--rw-r--r-- 1 root root 776 2012-04-08 04:45 ./source/x/x11/slack-desc/xproto
--rw-r--r-- 1 root root 1009 2013-08-20 22:30 ./source/x/x11/slack-desc/xproxymanagementprotocol
--rw-r--r-- 1 root root 625 2018-02-26 23:03 ./source/x/x11/slack-desc/xpyb
--rw-r--r-- 1 root root 664 2018-02-26 23:04 ./source/x/x11/slack-desc/xrandr
--rw-r--r-- 1 root root 736 2012-04-08 04:46 ./source/x/x11/slack-desc/xrdb
--rw-r--r-- 1 root root 792 2012-04-08 04:46 ./source/x/x11/slack-desc/xrefresh
+-rw-r--r-- 1 root root 769 2018-02-26 23:01 ./source/x/x11/slack-desc/xinit
+-rw-r--r-- 1 root root 952 2012-04-08 04:34 ./source/x/x11/slack-desc/xinput
+-rw-r--r-- 1 root root 875 2020-05-18 17:52 ./source/x/x11/slack-desc/xisxwayland
+-rw-r--r-- 1 root root 764 2012-04-08 04:35 ./source/x/x11/slack-desc/xkbcomp
+-rw-r--r-- 1 root root 755 2012-04-08 04:36 ./source/x/x11/slack-desc/xkbevd
+-rw-r--r-- 1 root root 703 2012-04-08 04:36 ./source/x/x11/slack-desc/xkbprint
+-rw-r--r-- 1 root root 708 2012-04-08 04:36 ./source/x/x11/slack-desc/xkbutils
+-rw-r--r-- 1 root root 1122 2012-04-08 04:37 ./source/x/x11/slack-desc/xkeyboard-config
+-rw-r--r-- 1 root root 756 2018-02-26 23:02 ./source/x/x11/slack-desc/xkill
+-rw-r--r-- 1 root root 763 2012-04-08 04:37 ./source/x/x11/slack-desc/xload
+-rw-r--r-- 1 root root 749 2012-04-08 04:38 ./source/x/x11/slack-desc/xlogo
+-rw-r--r-- 1 root root 807 2012-04-08 04:38 ./source/x/x11/slack-desc/xlsatoms
+-rw-r--r-- 1 root root 747 2012-04-08 04:39 ./source/x/x11/slack-desc/xlsclients
+-rw-r--r-- 1 root root 696 2012-04-08 04:39 ./source/x/x11/slack-desc/xlsfonts
+-rw-r--r-- 1 root root 620 2012-04-08 04:39 ./source/x/x11/slack-desc/xmag
+-rw-r--r-- 1 root root 753 2012-04-08 04:40 ./source/x/x11/slack-desc/xman
+-rw-r--r-- 1 root root 779 2018-02-26 23:02 ./source/x/x11/slack-desc/xmessage
+-rw-r--r-- 1 root root 691 2018-02-26 23:02 ./source/x/x11/slack-desc/xmh
+-rw-r--r-- 1 root root 867 2018-02-26 23:02 ./source/x/x11/slack-desc/xmodmap
+-rw-r--r-- 1 root root 766 2012-04-08 04:42 ./source/x/x11/slack-desc/xmore
+-rw-r--r-- 1 root root 954 2012-04-08 04:43 ./source/x/x11/slack-desc/xorg-cf-files
+-rw-r--r-- 1 root root 805 2012-04-08 04:43 ./source/x/x11/slack-desc/xorg-docs
+-rw-r--r-- 1 root root 1133 2020-02-19 20:30 ./source/x/x11/slack-desc/xorg-server
+-rw-r--r-- 1 root root 839 2009-05-30 01:47 ./source/x/x11/slack-desc/xorg-server-xephyr
+-rw-r--r-- 1 root root 1060 2018-02-26 23:03 ./source/x/x11/slack-desc/xorg-server-xnest
+-rw-r--r-- 1 root root 1156 2018-02-26 23:03 ./source/x/x11/slack-desc/xorg-server-xvfb
+-rw-r--r-- 1 root root 1287 2020-02-19 20:33 ./source/x/x11/slack-desc/xorg-server-xwayland
+-rw-r--r-- 1 root root 1138 2018-02-26 23:03 ./source/x/x11/slack-desc/xorg-sgml-doctools
+-rw-r--r-- 1 root root 792 2018-03-12 18:07 ./source/x/x11/slack-desc/xorgproto
+-rw-r--r-- 1 root root 664 2018-02-26 23:03 ./source/x/x11/slack-desc/xpr
+-rw-r--r-- 1 root root 766 2012-04-08 04:45 ./source/x/x11/slack-desc/xprop
+-rw-r--r-- 1 root root 776 2012-04-08 04:45 ./source/x/x11/slack-desc/xproto
+-rw-r--r-- 1 root root 1009 2013-08-20 22:30 ./source/x/x11/slack-desc/xproxymanagementprotocol
+-rw-r--r-- 1 root root 625 2018-02-26 23:03 ./source/x/x11/slack-desc/xpyb
+-rw-r--r-- 1 root root 664 2018-02-26 23:04 ./source/x/x11/slack-desc/xrandr
+-rw-r--r-- 1 root root 736 2012-04-08 04:46 ./source/x/x11/slack-desc/xrdb
+-rw-r--r-- 1 root root 792 2012-04-08 04:46 ./source/x/x11/slack-desc/xrefresh
-rw-r--r-- 1 root root 773 2012-04-08 04:46 ./source/x/x11/slack-desc/xscope
-rw-r--r-- 1 root root 681 2012-04-08 01:01 ./source/x/x11/slack-desc/xset
-rw-r--r-- 1 root root 801 2012-04-08 04:47 ./source/x/x11/slack-desc/xsetroot
diff --git a/patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txt b/patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txt
new file mode 100644
index 000000000..fb381117d
--- /dev/null
+++ b/patches/packages/libtiff-4.4.0-x86_64-1_slack15.0.txt
@@ -0,0 +1,11 @@
+libtiff: libtiff (a library for reading and writing TIFF files)
+libtiff:
+libtiff: This package provides support for the Tag Image File Format (TIFF),
+libtiff: a widely used format for storing image data. Included is the libtiff
+libtiff: library (for reading and writing TIFF files), and a collection of
+libtiff: tools for working with TIFF images.
+libtiff:
+libtiff: Homepage: http://www.simplesystems.org/libtiff
+libtiff:
+libtiff:
+libtiff:
diff --git a/patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txt b/patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txt
new file mode 100644
index 000000000..21bdf6dd1
--- /dev/null
+++ b/patches/packages/rxvt-unicode-9.26-x86_64-3_slack15.0.txt
@@ -0,0 +1,11 @@
+rxvt-unicode: rxvt-unicode (terminal emulator)
+rxvt-unicode:
+rxvt-unicode: rxvt-unicode is a color vt102 terminal emulator based on rxvt.
+rxvt-unicode: Features of rxvt-unicode include international language support
+rxvt-unicode: through Unicode, transparency, the ability to display multiple font
+rxvt-unicode: types and support for Perl extensions.
+rxvt-unicode:
+rxvt-unicode: Homepage: http://software.schmorp.de/pkg/rxvt-unicode.html
+rxvt-unicode:
+rxvt-unicode:
+rxvt-unicode:
diff --git a/patches/packages/whois-5.5.14-x86_64-1_slack15.0.txt b/patches/packages/whois-5.5.15-x86_64-1_slack15.0.txt
similarity index 100%
rename from patches/packages/whois-5.5.14-x86_64-1_slack15.0.txt
rename to patches/packages/whois-5.5.15-x86_64-1_slack15.0.txt
diff --git a/patches/source/libtiff/libtiff.SlackBuild b/patches/source/libtiff/libtiff.SlackBuild
new file mode 100755
index 000000000..221a330cb
--- /dev/null
+++ b/patches/source/libtiff/libtiff.SlackBuild
@@ -0,0 +1,137 @@
+#!/bin/bash
+
+# Copyright 2004, 2005, 2006, 2009, 2010, 2011, 2012, 2013, 2015, 2018, 2022, 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=libtiff
+VERSION=${VERSION:-$(echo tiff-*.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" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$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-libtiff
+
+rm -rf $PKG
+mkdir -p $PKG
+cd $TMP
+rm -rf tiff-$VERSION
+tar xvf $CWD/tiff-$VERSION.tar.?z || exit 1
+cd tiff-$VERSION || 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 {} \+
+
+# Apply upstream patches (if any):
+for patch in $CWD/patches/*.patch.gz ; do
+ zcat $patch | patch -p1 --verbose || exit 1
+done
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --disable-static \
+ --program-prefix="" \
+ --program-suffix="" \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Don't ship .la files:
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+( cd man ; make install-man DESTDIR=$PKG || exit 1 ) || exit 1
+rm -r $PKG/usr/share
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+strip -g $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a
+chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libtiff*.so.*
+mkdir -p $PKG/usr/doc/libtiff-$VERSION
+cp -a \
+ COPYRIGHT README RELEASE-DATE TODO VERSION \
+ $PKG/usr/doc/libtiff-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mv $PKG/usr/local/man $PKG/usr
+rmdir $PKG/usr/local
+
+# I'd use that shiny new manpage script here but all the
+# .3 manpages end with '.3tiff'.
+gzip -9 $PKG/usr/man/man?/*
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/libtiff-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/patches/source/libtiff/libtiff.repo b/patches/source/libtiff/libtiff.repo
new file mode 100644
index 000000000..703868f03
--- /dev/null
+++ b/patches/source/libtiff/libtiff.repo
@@ -0,0 +1 @@
+https://gitlab.com/libtiff/libtiff
diff --git a/patches/source/libtiff/libtiff.url b/patches/source/libtiff/libtiff.url
new file mode 100644
index 000000000..9d3f75bfd
--- /dev/null
+++ b/patches/source/libtiff/libtiff.url
@@ -0,0 +1 @@
+https://download.osgeo.org/libtiff/
diff --git a/patches/source/libtiff/patches/CVE-2022-2056_2057_2058.patch b/patches/source/libtiff/patches/CVE-2022-2056_2057_2058.patch
new file mode 100644
index 000000000..f62a41ad7
--- /dev/null
+++ b/patches/source/libtiff/patches/CVE-2022-2056_2057_2058.patch
@@ -0,0 +1,180 @@
+From dd1bcc7abb26094e93636e85520f0d8f81ab0fab Mon Sep 17 00:00:00 2001
+From: 4ugustus
+Date: Sat, 11 Jun 2022 09:31:43 +0000
+Subject: [PATCH] fix the FPE in tiffcrop (#415, #427, and #428)
+
+---
+ libtiff/tif_aux.c | 9 +++++++
+ libtiff/tiffiop.h | 1 +
+ tools/tiffcrop.c | 62 ++++++++++++++++++++++++++---------------------
+ 3 files changed, 44 insertions(+), 28 deletions(-)
+
+diff --git a/libtiff/tif_aux.c b/libtiff/tif_aux.c
+index 140f26c7..5b88c8d0 100644
+--- a/libtiff/tif_aux.c
++++ b/libtiff/tif_aux.c
+@@ -402,6 +402,15 @@ float _TIFFClampDoubleToFloat( double val )
+ return (float)val;
+ }
+
++uint32_t _TIFFClampDoubleToUInt32(double val)
++{
++ if( val < 0 )
++ return 0;
++ if( val > 0xFFFFFFFFU || val != val )
++ return 0xFFFFFFFFU;
++ return (uint32_t)val;
++}
++
+ int _TIFFSeekOK(TIFF* tif, toff_t off)
+ {
+ /* Huge offsets, especially -1 / UINT64_MAX, can cause issues */
+diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h
+index e3af461d..4e8bdac2 100644
+--- a/libtiff/tiffiop.h
++++ b/libtiff/tiffiop.h
+@@ -365,6 +365,7 @@ extern double _TIFFUInt64ToDouble(uint64_t);
+ extern float _TIFFUInt64ToFloat(uint64_t);
+
+ extern float _TIFFClampDoubleToFloat(double);
++extern uint32_t _TIFFClampDoubleToUInt32(double);
+
+ extern tmsize_t
+ _TIFFReadEncodedStripAndAllocBuffer(TIFF* tif, uint32_t strip,
+diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c
+index 1f827b2b..90286a5e 100644
+--- a/tools/tiffcrop.c
++++ b/tools/tiffcrop.c
+@@ -5268,17 +5268,17 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image,
+ {
+ if ((crop->res_unit == RESUNIT_INCH) || (crop->res_unit == RESUNIT_CENTIMETER))
+ {
+- x1 = (uint32_t) (crop->corners[i].X1 * scale * xres);
+- x2 = (uint32_t) (crop->corners[i].X2 * scale * xres);
+- y1 = (uint32_t) (crop->corners[i].Y1 * scale * yres);
+- y2 = (uint32_t) (crop->corners[i].Y2 * scale * yres);
++ x1 = _TIFFClampDoubleToUInt32(crop->corners[i].X1 * scale * xres);
++ x2 = _TIFFClampDoubleToUInt32(crop->corners[i].X2 * scale * xres);
++ y1 = _TIFFClampDoubleToUInt32(crop->corners[i].Y1 * scale * yres);
++ y2 = _TIFFClampDoubleToUInt32(crop->corners[i].Y2 * scale * yres);
+ }
+ else
+ {
+- x1 = (uint32_t) (crop->corners[i].X1);
+- x2 = (uint32_t) (crop->corners[i].X2);
+- y1 = (uint32_t) (crop->corners[i].Y1);
+- y2 = (uint32_t) (crop->corners[i].Y2);
++ x1 = _TIFFClampDoubleToUInt32(crop->corners[i].X1);
++ x2 = _TIFFClampDoubleToUInt32(crop->corners[i].X2);
++ y1 = _TIFFClampDoubleToUInt32(crop->corners[i].Y1);
++ y2 = _TIFFClampDoubleToUInt32(crop->corners[i].Y2);
+ }
+ /* a) Region needs to be within image sizes 0.. width-1; 0..length-1
+ * b) Corners are expected to be submitted as top-left to bottom-right.
+@@ -5357,17 +5357,17 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image,
+ {
+ if (crop->res_unit != RESUNIT_INCH && crop->res_unit != RESUNIT_CENTIMETER)
+ { /* User has specified pixels as reference unit */
+- tmargin = (uint32_t)(crop->margins[0]);
+- lmargin = (uint32_t)(crop->margins[1]);
+- bmargin = (uint32_t)(crop->margins[2]);
+- rmargin = (uint32_t)(crop->margins[3]);
++ tmargin = _TIFFClampDoubleToUInt32(crop->margins[0]);
++ lmargin = _TIFFClampDoubleToUInt32(crop->margins[1]);
++ bmargin = _TIFFClampDoubleToUInt32(crop->margins[2]);
++ rmargin = _TIFFClampDoubleToUInt32(crop->margins[3]);
+ }
+ else
+ { /* inches or centimeters specified */
+- tmargin = (uint32_t)(crop->margins[0] * scale * yres);
+- lmargin = (uint32_t)(crop->margins[1] * scale * xres);
+- bmargin = (uint32_t)(crop->margins[2] * scale * yres);
+- rmargin = (uint32_t)(crop->margins[3] * scale * xres);
++ tmargin = _TIFFClampDoubleToUInt32(crop->margins[0] * scale * yres);
++ lmargin = _TIFFClampDoubleToUInt32(crop->margins[1] * scale * xres);
++ bmargin = _TIFFClampDoubleToUInt32(crop->margins[2] * scale * yres);
++ rmargin = _TIFFClampDoubleToUInt32(crop->margins[3] * scale * xres);
+ }
+
+ if ((lmargin + rmargin) > image->width)
+@@ -5397,24 +5397,24 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image,
+ if (crop->res_unit != RESUNIT_INCH && crop->res_unit != RESUNIT_CENTIMETER)
+ {
+ if (crop->crop_mode & CROP_WIDTH)
+- width = (uint32_t)crop->width;
++ width = _TIFFClampDoubleToUInt32(crop->width);
+ else
+ width = image->width - lmargin - rmargin;
+
+ if (crop->crop_mode & CROP_LENGTH)
+- length = (uint32_t)crop->length;
++ length = _TIFFClampDoubleToUInt32(crop->length);
+ else
+ length = image->length - tmargin - bmargin;
+ }
+ else
+ {
+ if (crop->crop_mode & CROP_WIDTH)
+- width = (uint32_t)(crop->width * scale * image->xres);
++ width = _TIFFClampDoubleToUInt32(crop->width * scale * image->xres);
+ else
+ width = image->width - lmargin - rmargin;
+
+ if (crop->crop_mode & CROP_LENGTH)
+- length = (uint32_t)(crop->length * scale * image->yres);
++ length = _TIFFClampDoubleToUInt32(crop->length * scale * image->yres);
+ else
+ length = image->length - tmargin - bmargin;
+ }
+@@ -5868,13 +5868,13 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image,
+ {
+ if (page->res_unit == RESUNIT_INCH || page->res_unit == RESUNIT_CENTIMETER)
+ { /* inches or centimeters specified */
+- hmargin = (uint32_t)(page->hmargin * scale * page->hres * ((image->bps + 7) / 8));
+- vmargin = (uint32_t)(page->vmargin * scale * page->vres * ((image->bps + 7) / 8));
++ hmargin = _TIFFClampDoubleToUInt32(page->hmargin * scale * page->hres * ((image->bps + 7) / 8));
++ vmargin = _TIFFClampDoubleToUInt32(page->vmargin * scale * page->vres * ((image->bps + 7) / 8));
+ }
+ else
+ { /* Otherwise user has specified pixels as reference unit */
+- hmargin = (uint32_t)(page->hmargin * scale * ((image->bps + 7) / 8));
+- vmargin = (uint32_t)(page->vmargin * scale * ((image->bps + 7) / 8));
++ hmargin = _TIFFClampDoubleToUInt32(page->hmargin * scale * ((image->bps + 7) / 8));
++ vmargin = _TIFFClampDoubleToUInt32(page->vmargin * scale * ((image->bps + 7) / 8));
+ }
+
+ if ((hmargin * 2.0) > (pwidth * page->hres))
+@@ -5912,13 +5912,13 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image,
+ {
+ if (page->mode & PAGE_MODE_PAPERSIZE )
+ {
+- owidth = (uint32_t)((pwidth * page->hres) - (hmargin * 2));
+- olength = (uint32_t)((plength * page->vres) - (vmargin * 2));
++ owidth = _TIFFClampDoubleToUInt32((pwidth * page->hres) - (hmargin * 2));
++ olength = _TIFFClampDoubleToUInt32((plength * page->vres) - (vmargin * 2));
+ }
+ else
+ {
+- owidth = (uint32_t)(iwidth - (hmargin * 2 * page->hres));
+- olength = (uint32_t)(ilength - (vmargin * 2 * page->vres));
++ owidth = _TIFFClampDoubleToUInt32(iwidth - (hmargin * 2 * page->hres));
++ olength = _TIFFClampDoubleToUInt32(ilength - (vmargin * 2 * page->vres));
+ }
+ }
+
+@@ -5927,6 +5927,12 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image,
+ if (olength > ilength)
+ olength = ilength;
+
++ if (owidth == 0 || olength == 0)
++ {
++ TIFFError("computeOutputPixelOffsets", "Integer overflow when calculating the number of pages");
++ exit(EXIT_FAILURE);
++ }
++
+ /* Compute the number of pages required for Portrait or Landscape */
+ switch (page->orient)
+ {
+--
+GitLab
+
diff --git a/patches/source/libtiff/patches/CVE-2022-34526.patch b/patches/source/libtiff/patches/CVE-2022-34526.patch
new file mode 100644
index 000000000..cb3a4d3c7
--- /dev/null
+++ b/patches/source/libtiff/patches/CVE-2022-34526.patch
@@ -0,0 +1,28 @@
+From 275735d0354e39c0ac1dc3c0db2120d6f31d1990 Mon Sep 17 00:00:00 2001
+From: Even Rouault
+Date: Mon, 27 Jun 2022 16:09:43 +0200
+Subject: [PATCH] _TIFFCheckFieldIsValidForCodec(): return FALSE when passed a
+ codec-specific tag and the codec is not configured (fixes #433)
+
+This avoids crashes when querying such tags
+---
+ libtiff/tif_dirinfo.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c
+index c30f569b..3371cb5c 100644
+--- a/libtiff/tif_dirinfo.c
++++ b/libtiff/tif_dirinfo.c
+@@ -1191,6 +1191,9 @@ _TIFFCheckFieldIsValidForCodec(TIFF *tif, ttag_t tag)
+ default:
+ return 1;
+ }
++ if( !TIFFIsCODECConfigured(tif->tif_dir.td_compression) ) {
++ return 0;
++ }
+ /* Check if codec specific tags are allowed for the current
+ * compression scheme (codec) */
+ switch (tif->tif_dir.td_compression) {
+--
+GitLab
+
diff --git a/patches/source/libtiff/patches/CVE-2022-3970.patch b/patches/source/libtiff/patches/CVE-2022-3970.patch
new file mode 100644
index 000000000..e58a2624c
--- /dev/null
+++ b/patches/source/libtiff/patches/CVE-2022-3970.patch
@@ -0,0 +1,38 @@
+From 227500897dfb07fb7d27f7aa570050e62617e3be Mon Sep 17 00:00:00 2001
+From: Even Rouault
+Date: Tue, 8 Nov 2022 15:16:58 +0100
+Subject: [PATCH] TIFFReadRGBATileExt(): fix (unsigned) integer overflow on
+ strips/tiles > 2 GB
+
+Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53137
+---
+ libtiff/tif_getimage.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c
+index a4d0c1d6..60b94d8e 100644
+--- a/libtiff/tif_getimage.c
++++ b/libtiff/tif_getimage.c
+@@ -3016,15 +3016,15 @@ TIFFReadRGBATileExt(TIFF* tif, uint32_t col, uint32_t row, uint32_t * raster, in
+ return( ok );
+
+ for( i_row = 0; i_row < read_ysize; i_row++ ) {
+- memmove( raster + (tile_ysize - i_row - 1) * tile_xsize,
+- raster + (read_ysize - i_row - 1) * read_xsize,
++ memmove( raster + (size_t)(tile_ysize - i_row - 1) * tile_xsize,
++ raster + (size_t)(read_ysize - i_row - 1) * read_xsize,
+ read_xsize * sizeof(uint32_t) );
+- _TIFFmemset( raster + (tile_ysize - i_row - 1) * tile_xsize+read_xsize,
++ _TIFFmemset( raster + (size_t)(tile_ysize - i_row - 1) * tile_xsize+read_xsize,
+ 0, sizeof(uint32_t) * (tile_xsize - read_xsize) );
+ }
+
+ for( i_row = read_ysize; i_row < tile_ysize; i_row++ ) {
+- _TIFFmemset( raster + (tile_ysize - i_row - 1) * tile_xsize,
++ _TIFFmemset( raster + (size_t)(tile_ysize - i_row - 1) * tile_xsize,
+ 0, sizeof(uint32_t) * tile_xsize );
+ }
+
+--
+GitLab
+
diff --git a/patches/source/libtiff/slack-desc b/patches/source/libtiff/slack-desc
new file mode 100644
index 000000000..523cb11a5
--- /dev/null
+++ b/patches/source/libtiff/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------------------------------------------------------|
+libtiff: libtiff (a library for reading and writing TIFF files)
+libtiff:
+libtiff: This package provides support for the Tag Image File Format (TIFF),
+libtiff: a widely used format for storing image data. Included is the libtiff
+libtiff: library (for reading and writing TIFF files), and a collection of
+libtiff: tools for working with TIFF images.
+libtiff:
+libtiff: Homepage: http://www.simplesystems.org/libtiff
+libtiff:
+libtiff:
+libtiff:
diff --git a/patches/source/rxvt-unicode/CVE-2022-4170.diff b/patches/source/rxvt-unicode/CVE-2022-4170.diff
new file mode 100644
index 000000000..95edd1221
--- /dev/null
+++ b/patches/source/rxvt-unicode/CVE-2022-4170.diff
@@ -0,0 +1,12 @@
+--- ./src/perl/background.orig 2021-05-09 10:04:44.000000000 -0500
++++ ./src/perl/background 2023-01-03 13:53:59.865031717 -0600
+@@ -1451,8 +1451,7 @@
+ # any code execution or other shenanigans. does not
+ # support binary NULs in string.
+ sub q0 {
+- (my $str = shift) =~ s/\x00//g; # make sure there really aren't any embedded NULs
+- "q\x00$str\x00"
++ "qq\x00\Q$_[0]\E\x00"
+ }
+
+ sub old_bg_expr {
diff --git a/patches/source/rxvt-unicode/rxvt-unicode-256color.desktop b/patches/source/rxvt-unicode/rxvt-unicode-256color.desktop
new file mode 100644
index 000000000..2dcc832de
--- /dev/null
+++ b/patches/source/rxvt-unicode/rxvt-unicode-256color.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=rxvt-unicode (256color)
+Comment=A VT102 emulator for the X window system
+Exec=urxvt256c
+Terminal=false
+Type=Application
+Icon=utilities-terminal
+Categories=System;TerminalEmulator;
+StartupWMClass=URxvt
diff --git a/patches/source/rxvt-unicode/rxvt-unicode.SlackBuild b/patches/source/rxvt-unicode/rxvt-unicode.SlackBuild
new file mode 100755
index 000000000..679bc1e9a
--- /dev/null
+++ b/patches/source/rxvt-unicode/rxvt-unicode.SlackBuild
@@ -0,0 +1,191 @@
+#!/bin/bash
+
+# Copyright 2018 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=rxvt-unicode
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-3_slack15.0}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | grep -E -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+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" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || 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 {} \+
+
+# Add support for utempter:
+zcat $CWD/rxvt-unicode.utempter.diff.gz | patch -p1 --verbose || exit 1
+
+# Security fix:
+zcat $CWD/CVE-2022-4170.diff.gz | patch -p1 --verbose || exit 1
+
+# Regenerate configure from configure.ac after patching in utempter support:
+autoreconf -vif
+
+# Obsolete options (due to utempter patch):
+# --enable-utmp \
+# --enable-wtmp \
+# --enable-lastlog \
+#
+
+run_configure() {
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --mandir=/usr/man \
+ --enable-keepscrolling \
+ --enable-selectionscrolling \
+ --enable-pointer-blank \
+ --enable-unicode3 \
+ --enable-combining \
+ --enable-xft \
+ --enable-font-styles \
+ --enable-pixbuf \
+ --enable-transparency \
+ --enable-fading \
+ --enable-rxvt-scroll \
+ --enable-next-scroll \
+ --enable-xterm-scroll \
+ --enable-perl \
+ --enable-xim \
+ --enable-iso14755 \
+ --with-codesets=all \
+ --enable-frills \
+ --enable-mousewheel \
+ --enable-slipwheeling \
+ --enable-smart-resize \
+ $COLOR_OPTS \
+ --build=$ARCH-slackware-linux || exit 1
+}
+
+# Make sure the terminfo definitions go to the correct location:
+mkdir -p $PKG/usr/share/terminfo
+export TERMINFO=$PKG/usr/share/terminfo
+
+# Build and install standard version:
+export COLOR_OPTS="--with-term=rxvt-unicode"
+run_configure
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Build and install 256color version:
+export COLOR_OPTS="--with-term=rxvt-unicode-256color --with-name=urxvt256c --enable-256-color"
+run_configure
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+mkdir -p $PKG/usr/share/applications
+cp -a $CWD/*.desktop $PKG/usr/share/applications
+chown root:root $PKG/usr/share/applications/*
+chmod 644 $PKG/usr/share/applications/*
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \+
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ Changes COPYING* NEWS* README* THANKS* TODO* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# If there's a Changes file, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r Changes ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat Changes | head -n 1000 > $DOCSDIR/Changes
+ touch -r Changes $DOCSDIR/Changes
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/patches/source/rxvt-unicode/rxvt-unicode.desktop b/patches/source/rxvt-unicode/rxvt-unicode.desktop
new file mode 100644
index 000000000..0bc798927
--- /dev/null
+++ b/patches/source/rxvt-unicode/rxvt-unicode.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=rxvt-unicode
+Comment=A VT102 emulator for the X window system
+Exec=urxvt
+Terminal=false
+Type=Application
+Icon=utilities-terminal
+Categories=System;TerminalEmulator;
+StartupWMClass=URxvt
diff --git a/patches/source/rxvt-unicode/rxvt-unicode.utempter.diff b/patches/source/rxvt-unicode/rxvt-unicode.utempter.diff
new file mode 100644
index 000000000..d56c13522
--- /dev/null
+++ b/patches/source/rxvt-unicode/rxvt-unicode.utempter.diff
@@ -0,0 +1,1183 @@
+--- ./configure.ac.orig 2015-06-17 06:57:42.000000000 -0500
++++ ./configure.ac 2018-03-31 11:21:43.971399093 -0500
+@@ -113,7 +113,6 @@
+ support_fading=no
+ support_keepscrolling=no
+ support_selectionscrolling=no
+- support_lastlog=no
+ support_mousewheel=no
+ support_mouseslipwheel=no
+ support_text_blink=no
+@@ -121,8 +120,6 @@
+ support_scroll_rxvt=no
+ support_scroll_next=no
+ support_scroll_xterm=no
+- support_utmp=no
+- support_wtmp=no
+ support_xim=no
+ support_pixbuf=no
+ support_startup_notification=no
+@@ -141,7 +138,6 @@
+ support_fading=yes
+ support_keepscrolling=yes
+ support_selectionscrolling=yes
+- support_lastlog=yes
+ support_mousewheel=yes
+ support_mouseslipwheel=yes
+ support_text_blink=yes
+@@ -149,8 +145,6 @@
+ support_scroll_rxvt=yes
+ support_scroll_next=yes
+ support_scroll_xterm=yes
+- support_utmp=yes
+- support_wtmp=yes
+ support_xim=yes
+ support_pixbuf=yes
+ support_startup_notification=yes
+@@ -513,8 +507,6 @@
+ dnl# --------------------------------------------------------------------------
+ AC_CHECK_FUNCS(unsetenv)
+
+-UTMP_CHECK
+-
+ dnl# --------------------------------------------------------------------------
+
+ dnl# --------------------------------------------------------------------------
+--- ./config.h.in.orig 2015-06-17 06:57:42.000000000 -0500
++++ ./config.h.in 2018-03-31 11:21:43.970399093 -0500
+@@ -75,9 +75,6 @@
+ /* Define to 1 if you have the `kqueue' function. */
+ #undef HAVE_KQUEUE
+
+-/* Define to 1 if you have the header file. */
+-#undef HAVE_LASTLOG_H
+-
+ /* Define to 1 if you have the `rt' library (-lrt). */
+ #undef HAVE_LIBRT
+
+@@ -156,18 +153,6 @@
+ /* Define to 1 if you have the header file. */
+ #undef HAVE_STROPTS_H
+
+-/* Define to 1 if the system has the type `struct lastlog'. */
+-#undef HAVE_STRUCT_LASTLOG
+-
+-/* Define to 1 if the system has the type `struct lastlogx'. */
+-#undef HAVE_STRUCT_LASTLOGX
+-
+-/* Define to 1 if the system has the type `struct utmp'. */
+-#undef HAVE_STRUCT_UTMP
+-
+-/* Define to 1 if the system has the type `struct utmpx'. */
+-#undef HAVE_STRUCT_UTMPX
+-
+ /* Define to 1 if you have the header file. */
+ #undef HAVE_SYS_BYTEORDER_H
+
+@@ -214,33 +199,9 @@
+ /* Define to 1 if you have the `unsetenv' function. */
+ #undef HAVE_UNSETENV
+
+-/* Define to 1 if you have the `updlastlogx' function. */
+-#undef HAVE_UPDLASTLOGX
+-
+-/* Define to 1 if you have the `updwtmp' function. */
+-#undef HAVE_UPDWTMP
+-
+-/* Define to 1 if you have the `updwtmpx' function. */
+-#undef HAVE_UPDWTMPX
+-
+ /* Define to 1 if you have the header file. */
+ #undef HAVE_UTIL_H
+
+-/* Define to 1 if you have the header file. */
+-#undef HAVE_UTMPX_H
+-
+-/* Define if struct utmpx contains ut_host */
+-#undef HAVE_UTMPX_HOST
+-
+-/* Define to 1 if you have the header file. */
+-#undef HAVE_UTMP_H
+-
+-/* Define if struct utmp contains ut_host */
+-#undef HAVE_UTMP_HOST
+-
+-/* Define if struct utmp contains ut_pid */
+-#undef HAVE_UTMP_PID
+-
+ /* Define to 1 if you have the header file. */
+ #undef HAVE_WCHAR_H
+
+@@ -262,9 +223,6 @@
+ /* Define if you want ISO 14755 extended support */
+ #undef ISO_14755
+
+-/* Define if you want to have lastlog support when utmp/utmpx is enabled */
+-#undef LASTLOG_SUPPORT
+-
+ /* Define to have CTRL cause wheel events to accelerate scrolling. Release
+ CTRL to halt scrolling */
+ #undef MOUSE_SLIP_WHEELING
+@@ -322,21 +280,6 @@
+ /* Define if you want to hide the pointer while typing */
+ #undef POINTER_BLANK
+
+-/* Define to a fallback location of lastlogx */
+-#undef PT_LASTLOGX_FILE
+-
+-/* Define to a fallback location of lastlog */
+-#undef PT_LASTLOG_FILE
+-
+-/* Define to a fallback location of utmp */
+-#undef PT_UTMP_FILE
+-
+-/* Define to a fallback location of wtmpx */
+-#undef PT_WTMPX_FILE
+-
+-/* Define to a fallback location of wtmp */
+-#undef PT_WTMP_FILE
+-
+ /* Resource class */
+ #undef RESCLASS
+
+@@ -409,12 +352,6 @@
+ for multibyte characters input */
+ #undef USE_XIM
+
+-/* Define if you want to have utmp/utmpx support */
+-#undef UTMP_SUPPORT
+-
+-/* Define if you want to have wtmp support when utmp/utmpx is enabled */
+-#undef WTMP_SUPPORT
+-
+ /* Define to enable xft support */
+ #undef XFT
+
+@@ -451,10 +388,6 @@
+ /* Enable declarations of msg_control and msg_controllen on Solaris */
+ #undef _XOPEN_SOURCE
+
+-/* Enable declarations in utmp.h on Solaris when the XPG4v2 namespace is
+- active */
+-#undef __EXTENSIONS__
+-
+ /* Define to `int' if doesn't define. */
+ #undef gid_t
+
+--- ./libptytty/ptytty.m4.orig 2015-05-11 17:24:03.000000000 -0500
++++ ./libptytty/ptytty.m4 2018-03-31 11:24:41.669415706 -0500
+@@ -51,143 +51,6 @@
+ fi
+ ])
+
+-AC_DEFUN([UTMP_CHECK],
+-[
+-support_utmp=yes
+-support_wtmp=yes
+-support_lastlog=yes
+-
+-AC_ARG_ENABLE(utmp,
+- [AS_HELP_STRING([--enable-utmp],[enable utmp (utmpx) support])],
+- [if test x$enableval = xyes -o x$enableval = xno; then
+- support_utmp=$enableval
+- fi])
+-
+-AC_ARG_ENABLE(wtmp,
+- [AS_HELP_STRING([--enable-wtmp],[enable wtmp (wtmpx) support (requires --enable-utmp)])],
+- [if test x$enableval = xyes -o x$enableval = xno; then
+- support_wtmp=$enableval
+- fi])
+-
+-AC_ARG_ENABLE(lastlog,
+- [AS_HELP_STRING([--enable-lastlog],[enable lastlog support (requires --enable-utmp)])],
+- [if test x$enableval = xyes -o x$enableval = xno; then
+- support_lastlog=$enableval
+- fi])
+-
+-if test x$support_utmp = xyes; then
+- AC_DEFINE(UTMP_SUPPORT, 1, Define if you want to have utmp/utmpx support)
+-fi
+-if test x$support_wtmp = xyes; then
+- AC_DEFINE(WTMP_SUPPORT, 1, Define if you want to have wtmp support when utmp/utmpx is enabled)
+-fi
+-if test x$support_lastlog = xyes; then
+- AC_DEFINE(LASTLOG_SUPPORT, 1, Define if you want to have lastlog support when utmp/utmpx is enabled)
+-fi
+-
+-AC_CHECK_FUNCS( \
+- updwtmp \
+- updwtmpx \
+- updlastlogx \
+-)
+-
+-AC_CHECK_HEADERS(lastlog.h)
+-
+-case $host in
+- *-*-solaris*)
+- AC_DEFINE(__EXTENSIONS__, 1, Enable declarations in utmp.h on Solaris when the XPG4v2 namespace is active)
+- ;;
+-esac
+-
+-dnl# --------------------------------------------------------------------------
+-dnl# DO ALL UTMP AND WTMP CHECKING
+-dnl# --------------------------------------------------------------------------
+-dnl# check for host field in utmp structure
+-
+-dnl# --------------------------------------------
+-AC_CHECK_HEADERS(utmp.h, [
+-AC_CHECK_TYPES([struct utmp], [], [], [
+-#include
+-#include
+-])
+-
+-AC_CHECK_MEMBER([struct utmp.ut_host],
+-[AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host)], [], [
+-#include
+-#include
+-])
+-
+-AC_CHECK_MEMBER([struct utmp.ut_pid],
+-[AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid)], [], [
+-#include
+-#include
+-])
+-]) dnl# AC_CHECK_HEADERS(utmp.h
+-
+-dnl# --------------------------------------------
+-
+-AC_CHECK_HEADERS(utmpx.h, [
+-AC_CHECK_TYPES([struct utmpx], [], [], [
+-#include
+-#include
+-])
+-
+-AC_CHECK_MEMBER([struct utmpx.ut_host],
+-[AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host)], [], [
+-#include
+-#include
+-])
+-]) dnl# AC_CHECK_HEADERS(utmpx.h
+-
+-dnl# --------------------------------------------------------------------------
+-dnl# check for struct lastlog
+-AC_CHECK_TYPES([struct lastlog], [], [], [
+-#include
+-#include
+-#ifdef HAVE_LASTLOG_H
+-#include
+-#endif
+-])
+-
+-dnl# check for struct lastlogx
+-AC_CHECK_TYPES([struct lastlogx], [], [], [
+-#include
+-#include
+-#ifdef HAVE_LASTLOG_H
+-#include
+-#endif
+-])
+-
+-dnl# --------------------------------------------------------------------------
+-dnl# FIND FILES
+-dnl# --------------------------------------------------------------------------
+-
+-dnl# find utmp
+-PT_FIND_FILE([utmp], [PT_UTMP_FILE],
+-["/var/run/utmp" "/var/adm/utmp" "/etc/utmp" "/usr/etc/utmp" "/usr/adm/utmp"])
+-
+-dnl# --------------------------------------------------------------------------
+-
+-dnl# find wtmp
+-PT_FIND_FILE([wtmp], [PT_WTMP_FILE],
+-["/var/log/wtmp" "/var/adm/wtmp" "/etc/wtmp" "/usr/etc/wtmp" "/usr/adm/wtmp"])
+-dnl# --------------------------------------------------------------------------
+-
+-dnl# find wtmpx
+-PT_FIND_FILE([wtmpx], [PT_WTMPX_FILE],
+-["/var/log/wtmpx" "/var/adm/wtmpx"])
+-dnl# --------------------------------------------------------------------------
+-
+-dnl# find lastlog
+-PT_FIND_FILE([lastlog], [PT_LASTLOG_FILE],
+-["/var/log/lastlog" "/var/adm/lastlog"])
+-dnl# --------------------------------------------------------------------------
+-
+-dnl# find lastlogx
+-PT_FIND_FILE([lastlogx], [PT_LASTLOGX_FILE],
+-["/var/log/lastlogx" "/var/adm/lastlogx"])
+-])
+-
+ AC_DEFUN([SCM_RIGHTS_CHECK],
+ [
+ AH_TEMPLATE([_XOPEN_SOURCE], [Enable declarations of msg_control and msg_controllen on Solaris])
+--- ./libptytty/src/proxy.C.orig 2015-04-11 13:27:01.000000000 -0500
++++ ./libptytty/src/proxy.C 2018-03-31 11:25:17.787419082 -0500
+@@ -1,351 +0,0 @@
+-/*----------------------------------------------------------------------*
+- * File: proxy.C
+- *----------------------------------------------------------------------*
+- *
+- * All portions of code are copyright by their respective author/s.
+- * Copyright (c) 2006 Marc Lehmann
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+- *---------------------------------------------------------------------*/
+-
+-#include "config.h"
+-
+-#include "ptytty.h"
+-
+-#include "estl.h"
+-
+-#include
+-#include
+-#include
+-
+-#include
+-#include
+-#include
+-#include
+-#include
+-
+-// helper/proxy support
+-
+-#if PTYTTY_HELPER
+-
+-static int sock_fd = -1, lock_fd = -1;
+-static int helper_pid;
+-
+-struct command
+-{
+- enum { get, login, destroy } type;
+-
+- ptytty *id;
+-
+- bool login_shell;
+- int cmd_pid;
+- char hostname[512]; // arbitrary, but should be plenty
+-};
+-
+-struct ptytty_proxy : ptytty
+-{
+- ptytty *id;
+-
+- ptytty_proxy ()
+- : id(0)
+- {
+- }
+-
+- ~ptytty_proxy ();
+-
+- bool get ();
+- void login (int cmd_pid, bool login_shell, const char *hostname);
+-};
+-
+-#if PTYTTY_REENTRANT
+-# define NEED_TOKEN do { char ch; read (lock_fd, &ch , 1); } while (0)
+-# define GIVE_TOKEN write (lock_fd, &lock_fd, 1)
+-#else
+-# define NEED_TOKEN (void)0
+-# define GIVE_TOKEN (void)0
+-#endif
+-
+-bool
+-ptytty_proxy::get ()
+-{
+- NEED_TOKEN;
+-
+- command cmd;
+-
+- cmd.type = command::get;
+-
+- write (sock_fd, &cmd, sizeof (cmd));
+-
+- if (read (sock_fd, &id, sizeof (id)) != sizeof (id))
+- PTYTTY_FATAL ("protocol error while creating pty using helper process, aborting.\n");
+-
+- if (!id)
+- {
+- GIVE_TOKEN;
+- return false;
+- }
+-
+- if ((pty = recv_fd (sock_fd)) < 0
+- || (tty = recv_fd (sock_fd)) < 0)
+- PTYTTY_FATAL ("protocol error while reading pty/tty fds from helper process, aborting.\n");
+-
+- GIVE_TOKEN;
+- return true;
+-}
+-
+-void
+-ptytty_proxy::login (int cmd_pid, bool login_shell, const char *hostname)
+-{
+- NEED_TOKEN;
+-
+- command cmd;
+-
+- cmd.type = command::login;
+- cmd.id = id;
+- cmd.cmd_pid = cmd_pid;
+- cmd.login_shell = login_shell;
+- strncpy (cmd.hostname, hostname, sizeof (cmd.hostname));
+-
+- write (sock_fd, &cmd, sizeof (cmd));
+-
+- GIVE_TOKEN;
+-}
+-
+-ptytty_proxy::~ptytty_proxy ()
+-{
+- if (id)
+- {
+- close_tty ();
+-
+- if (pty >= 0)
+- close (pty);
+-
+- NEED_TOKEN;
+-
+- command cmd;
+-
+- cmd.type = command::destroy;
+- cmd.id = id;
+-
+- write (sock_fd, &cmd, sizeof (cmd));
+-
+- GIVE_TOKEN;
+- }
+-}
+-
+-static
+-void serve ()
+-{
+- command cmd;
+- vector ptys;
+-
+- for (;;)
+- {
+- GIVE_TOKEN;
+-
+- if (read (sock_fd, &cmd, sizeof (command)) != sizeof (command))
+- break;
+-
+- if (cmd.type == command::get)
+- {
+- // -> id ptyfd ttyfd
+- cmd.id = new ptytty_unix;
+-
+- if (cmd.id->get ())
+- {
+- write (sock_fd, &cmd.id, sizeof (cmd.id));
+- ptys.push_back (cmd.id);
+-
+- ptytty::send_fd (sock_fd, cmd.id->pty);
+- ptytty::send_fd (sock_fd, cmd.id->tty);
+-
+- cmd.id->close_tty ();
+- }
+- else
+- {
+- delete cmd.id;
+- cmd.id = 0;
+- write (sock_fd, &cmd.id, sizeof (cmd.id));
+- }
+- }
+- else if (cmd.type == command::login)
+- {
+-#if UTMP_SUPPORT
+- if (find (ptys.begin (), ptys.end (), cmd.id) != ptys.end ())
+- {
+- cmd.hostname[sizeof (cmd.hostname) - 1] = 0;
+- cmd.id->login (cmd.cmd_pid, cmd.login_shell, cmd.hostname);
+- }
+-#endif
+- }
+- else if (cmd.type == command::destroy)
+- {
+- vector::iterator pty = find (ptys.begin (), ptys.end (), cmd.id);
+-
+- if (pty != ptys.end ())
+- {
+- delete *pty;
+- ptys.erase (pty);
+- }
+- }
+- else
+- break;
+-
+- NEED_TOKEN;
+- }
+-
+- // destroy all ptys
+- for (vector::iterator i = ptys.end (); i-- > ptys.begin (); )
+- delete *i;
+-}
+-
+-void
+-ptytty::use_helper ()
+-{
+- if (sock_fd >= 0)
+- return;
+-
+- int sv[2];
+-
+- if (socketpair (AF_UNIX, SOCK_STREAM, 0, sv))
+- PTYTTY_FATAL ("could not create socket to communicate with pty/sessiondb helper, aborting.\n");
+-
+-#if PTYTTY_REENTRANT
+- int lv[2];
+-
+- if (socketpair (AF_UNIX, SOCK_STREAM, 0, lv))
+- PTYTTY_FATAL ("could not create socket to communicate with pty/sessiondb helper, aborting.\n");
+-#endif
+-
+- helper_pid = fork ();
+-
+- if (helper_pid < 0)
+- PTYTTY_FATAL ("could not create pty/sessiondb helper process, aborting.\n");
+-
+- if (helper_pid)
+- {
+- // client, process
+- sock_fd = sv[0];
+- close (sv[1]);
+- fcntl (sock_fd, F_SETFD, FD_CLOEXEC);
+-#if PTYTTY_REENTRANT
+- lock_fd = lv[0];
+- close (lv[1]);
+- fcntl (lock_fd, F_SETFD, FD_CLOEXEC);
+-#endif
+- }
+- else
+- {
+- // server, pty-helper
+- sock_fd = sv[1];
+-#if PTYTTY_REENTRANT
+- lock_fd = lv[1];
+-#endif
+-
+- chdir ("/");
+-
+- signal (SIGHUP, SIG_IGN);
+- signal (SIGTERM, SIG_IGN);
+- signal (SIGINT, SIG_IGN);
+- signal (SIGPIPE, SIG_IGN);
+-
+- for (int fd = 0; fd < 1023; fd++)
+- if (fd != sock_fd && fd != lock_fd)
+- close (fd);
+-
+- serve ();
+- _exit (EXIT_SUCCESS);
+- }
+-}
+-
+-#endif
+-
+-ptytty *
+-ptytty::create ()
+-{
+-#if PTYTTY_HELPER
+- if (helper_pid)
+- // use helper process
+- return new ptytty_proxy;
+- else
+-#endif
+- return new ptytty_unix;
+-}
+-
+-void
+-ptytty::sanitise_stdfd ()
+-{
+- // sanitise stdin/stdout/stderr to point to *something*.
+- for (int fd = 0; fd <= 2; ++fd)
+- if (fcntl (fd, F_GETFL) < 0 && errno == EBADF)
+- {
+- int fd2 = open ("/dev/tty", fd ? O_WRONLY : O_RDONLY);
+-
+- if (fd2 < 0)
+- fd2 = open ("/dev/null", fd ? O_WRONLY : O_RDONLY);
+-
+- if (fd2 != fd)
+- PTYTTY_FATAL ("unable to sanitise fds, aborting.\n");
+- }
+-}
+-
+-void
+-ptytty::init ()
+-{
+- sanitise_stdfd ();
+-
+- uid_t uid = getuid ();
+- gid_t gid = getgid ();
+-
+- // before doing anything else, check for setuid/setgid operation,
+- // start the helper process and drop privileges
+- if (uid != geteuid ()
+- || gid != getegid ())
+- {
+-#if PTYTTY_HELPER
+- use_helper ();
+-#else
+- PTYTTY_WARN ("running setuid/setgid without pty helper compiled in, continuing unprivileged.\n");
+-#endif
+-
+- drop_privileges ();
+- }
+-}
+-
+-void
+-ptytty::drop_privileges ()
+-{
+- uid_t uid = getuid ();
+- gid_t gid = getgid ();
+-
+- // drop privileges
+-#if HAVE_SETRESUID
+- setresgid (gid, gid, gid);
+- setresuid (uid, uid, uid);
+-#elif HAVE_SETREUID
+- setregid (gid, gid);
+- setreuid (uid, uid);
+-#elif HAVE_SETUID
+- setgid (gid);
+- setuid (uid);
+-#else
+-# error no way to drop privileges, configure failed?
+-#endif
+-
+- if (uid != geteuid ()
+- || gid != getegid ())
+- PTYTTY_FATAL ("unable to drop privileges, aborting.\n");
+-}
+-
+--- ./libptytty/src/ptytty.h.orig 2014-11-16 06:22:34.000000000 -0600
++++ ./libptytty/src/ptytty.h 2018-03-31 11:21:57.530400360 -0500
+@@ -8,23 +8,10 @@
+ # define NO_SETOWNER_TTYDEV 1
+ #endif
+
+-#if UTMP_SUPPORT
+-# if defined(__GLIBC__)
+-# undef HAVE_STRUCT_UTMPX
+-# endif
+-
+-# if ! defined(HAVE_STRUCT_UTMPX) && ! defined(HAVE_STRUCT_UTMP)
+-# error cannot build with utmp support - no utmp or utmpx struct found
+-# endif
+-
+-#endif
+-
+ struct ptytty_unix : ptytty
+ {
+ char *name;
+
+- void log_session (bool login, const char *hostname);
+-
+ public:
+
+ ptytty_unix ();
+@@ -35,13 +22,10 @@
+
+ void login (int cmd_pid, bool login_shell, const char *hostname);
+
+-#if UTMP_SUPPORT
+- int utmp_pos;
+ int cmd_pid;
+ bool login_shell;
+
+ void logout ();
+-#endif
+ };
+
+ #endif
+--- ./libptytty/src/ptytty.C.orig 2015-05-11 17:24:03.000000000 -0500
++++ ./libptytty/src/ptytty.C 2018-03-31 11:21:57.529400360 -0500
+@@ -217,6 +217,29 @@
+ return 0;
+ }
+
++ptytty *
++ptytty::create ()
++{
++ return new ptytty_unix;
++}
++
++void
++ptytty::sanitise_stdfd ()
++{
++ // sanitise stdin/stdout/stderr to point to *something*.
++ for (int fd = 0; fd <= 2; ++fd)
++ if (fcntl (fd, F_GETFL) < 0 && errno == EBADF)
++ {
++ int fd2 = open ("/dev/tty", fd ? O_WRONLY : O_RDONLY);
++
++ if (fd2 < 0)
++ fd2 = open ("/dev/null", fd ? O_WRONLY : O_RDONLY);
++
++ if (fd2 != fd)
++ abort ();
++ }
++}
++
+ void
+ ptytty::close_tty ()
+ {
+@@ -287,16 +310,12 @@
+ ptytty_unix::ptytty_unix ()
+ {
+ name = 0;
+-#if UTMP_SUPPORT
+ cmd_pid = 0;
+-#endif
+ }
+
+ ptytty_unix::~ptytty_unix ()
+ {
+-#if UTMP_SUPPORT
+ logout ();
+-#endif
+ put ();
+ }
+
+@@ -390,18 +409,6 @@
+ }
+ #endif
+
+-#if UTMP_SUPPORT
+-# if defined(HAVE_STRUCT_UTMP) && !defined(HAVE_UTMP_PID)
+- int fd_stdin = dup (STDIN_FILENO);
+- dup2 (tty, STDIN_FILENO);
+-
+- utmp_pos = ttyslot ();
+-
+- dup2 (fd_stdin, STDIN_FILENO);
+- close (fd_stdin);
+-# endif
+-#endif
+-
+ return true;
+ }
+
+--- ./libptytty/src/logging.C.orig 2014-11-16 06:22:34.000000000 -0600
++++ ./libptytty/src/logging.C 2018-03-31 11:21:57.527400360 -0500
+@@ -36,251 +36,8 @@
+
+ #include "ptytty.h"
+
+-#include
++#include "utempter.h"
+
+-#if UTMP_SUPPORT
+-
+-#ifdef HAVE_UTMPX_H
+-# include
+-#endif
+-#ifdef HAVE_UTMP_H
+-# include
+-#endif
+-#ifdef HAVE_LASTLOG_H
+-# include
+-#endif
+-
+-#if !defined(UTMP_FILE)
+-# if defined(_PATH_UTMP)
+-# define UTMP_FILE _PATH_UTMP
+-# elif defined(PT_UTMP_FILE)
+-# define UTMP_FILE PT_UTMP_FILE
+-# endif
+-#endif
+-#if !defined(WTMP_FILE)
+-# if defined(_PATH_WTMP)
+-# define WTMP_FILE _PATH_WTMP
+-# elif defined(PT_WTMP_FILE)
+-# define WTMP_FILE PT_WTMP_FILE
+-# endif
+-#endif
+-#if !defined(WTMPX_FILE)
+-# if defined(_PATH_WTMPX)
+-# define WTMPX_FILE _PATH_WTMPX
+-# elif defined(PT_WTMPX_FILE)
+-# define WTMPX_FILE PT_WTMPX_FILE
+-# endif
+-#endif
+-#if !defined(LASTLOG_FILE)
+-# if defined(_PATH_LASTLOG)
+-# define LASTLOG_FILE _PATH_LASTLOG
+-# elif defined(PT_LASTLOG_FILE)
+-# define LASTLOG_FILE PT_LASTLOG_FILE
+-# endif
+-#endif
+-#if !defined(LASTLOGX_FILE)
+-# if defined(_PATH_LASTLOGX)
+-# define LASTLOGX_FILE _PATH_LASTLOGX
+-# elif defined(PT_LASTLOGX_FILE)
+-# define LASTLOGX_FILE PT_LASTLOGX_FILE
+-# endif
+-#endif
+-
+-#include
+-
+-#include
+-#include
+-
+-#include
+-#include
+-#include
+-#include
+-#include
+-
+-/*
+- * BSD style utmp entry
+- * ut_line, ut_name, ut_host, ut_time
+- * SYSV style utmp (and utmpx) entry
+- * ut_user, ut_id, ut_line, ut_pid, ut_type, ut_exit, ut_time
+- */
+-
+-/* ------------------------------------------------------------------------- */
+-/*
+- * Write a BSD style utmp entry
+- */
+-#if defined(HAVE_STRUCT_UTMP) && !defined(HAVE_UTMP_PID)
+-static void
+-write_bsd_utmp (int utmp_pos, struct utmp *ut)
+-{
+- int fd;
+-
+- if (utmp_pos <= 0 || (fd = open (UTMP_FILE, O_WRONLY)) == -1)
+- return;
+-
+- if (lseek (fd, (off_t) (utmp_pos * sizeof (struct utmp)), SEEK_SET) != -1)
+- write (fd, ut, sizeof (struct utmp));
+- close (fd);
+-}
+-#endif
+-
+-/* ------------------------------------------------------------------------- */
+-/*
+- * Update a BSD style wtmp entry
+- */
+-#if defined(WTMP_SUPPORT) && !defined(HAVE_UPDWTMP) && defined(HAVE_STRUCT_UTMP)
+-static void
+-update_wtmp (const char *fname, const struct utmp *ut)
+-{
+- int fd, gotlock, retry;
+- struct flock lck; /* fcntl locking scheme */
+- struct stat sbuf;
+-
+- if ((fd = open (fname, O_WRONLY | O_APPEND, 0)) < 0)
+- return;
+-
+- lck.l_whence = SEEK_END; /* start lock at current eof */
+- lck.l_len = 0; /* end at ``largest possible eof'' */
+- lck.l_start = 0;
+- lck.l_type = F_WRLCK; /* we want a write lock */
+-
+- /* attempt lock with F_SETLK; F_SETLKW would cause a deadlock! */
+- for (retry = 10, gotlock = 0; retry--;)
+- if (fcntl (fd, F_SETLK, &lck) != -1)
+- {
+- gotlock = 1;
+- break;
+- }
+- else if (errno != EAGAIN && errno != EACCES)
+- break;
+-
+- if (gotlock)
+- {
+- if (fstat (fd, &sbuf) == 0)
+- if (write (fd, ut, sizeof (struct utmp)) != sizeof (struct utmp))
+- ftruncate (fd, sbuf.st_size); /* remove bad writes */
+-
+- lck.l_type = F_UNLCK; /* unlocking the file */
+- fcntl (fd, F_SETLK, &lck);
+- }
+-
+- close (fd);
+-}
+-#endif
+-
+-/* ------------------------------------------------------------------------- */
+-#ifdef LASTLOG_SUPPORT
+-static void
+-update_lastlog (const char *pty, const char *host)
+-{
+-# if defined(HAVE_STRUCT_LASTLOGX) && defined(HAVE_UPDLASTLOGX)
+- struct lastlogx llx;
+-# endif
+-# ifdef HAVE_STRUCT_LASTLOG
+- int fd;
+- struct lastlog ll;
+-# endif
+-
+-# if defined(HAVE_STRUCT_LASTLOGX) && defined(HAVE_UPDLASTLOGX)
+- memset (&llx, 0, sizeof (llx));
+- llx.ll_tv.tv_sec = time (NULL);
+- llx.ll_tv.tv_usec = 0;
+- strncpy (llx.ll_line, pty, sizeof (llx.ll_line));
+- strncpy (llx.ll_host, host, sizeof (llx.ll_host));
+- updlastlogx (LASTLOGX_FILE, getuid (), &llx);
+-# endif
+-
+-# ifdef HAVE_STRUCT_LASTLOG
+- memset (&ll, 0, sizeof (ll));
+- ll.ll_time = time (NULL);
+- strncpy (ll.ll_line, pty, sizeof (ll.ll_line));
+- strncpy (ll.ll_host, host, sizeof (ll.ll_host));
+- if ((fd = open (LASTLOG_FILE, O_RDWR)) != -1)
+- {
+- if (lseek (fd, (off_t) (getuid () * sizeof (ll)),
+- SEEK_SET) != -1)
+- write (fd, &ll, sizeof (ll));
+- close (fd);
+- }
+-# endif /* HAVE_STRUCT_LASTLOG */
+-}
+-#endif /* LASTLOG_SUPPORT */
+-
+-#if defined(HAVE_UTMP_PID) || defined(HAVE_STRUCT_UTMPX)
+-static void
+-fill_id (char *id, const char *line, size_t id_size)
+-{
+- size_t len = strlen (line);
+-
+- if (len > id_size)
+- line += len - id_size;
+- strncpy (id, line, id_size);
+-}
+-#endif
+-
+-#ifdef HAVE_STRUCT_UTMP
+-static void
+-fill_utmp (struct utmp *ut, bool login, int pid, const char *line, const char *user, const char *host)
+-{
+- memset (ut, 0, sizeof (struct utmp));
+-
+- strncpy (ut->ut_line, line, sizeof (ut->ut_line));
+-# ifdef HAVE_UTMP_PID
+- fill_id (ut->ut_id, line, sizeof (ut->ut_id));
+- ut->ut_pid = pid;
+- ut->ut_type = login ? USER_PROCESS : DEAD_PROCESS;
+-# endif
+- ut->ut_time = time (NULL);
+-
+- if (login)
+- {
+-# ifdef HAVE_UTMP_PID
+- strncpy (ut->ut_user, user, sizeof (ut->ut_user));
+-# else
+- strncpy (ut->ut_name, user, sizeof (ut->ut_name));
+-# endif
+-# ifdef HAVE_UTMP_HOST
+- strncpy (ut->ut_host, host, sizeof (ut->ut_host));
+-# endif
+- }
+-}
+-#endif
+-
+-#ifdef HAVE_STRUCT_UTMPX
+-static void
+-fill_utmpx (struct utmpx *utx, bool login, int pid, const char *line, const char *user, const char *host)
+-{
+- memset (utx, 0, sizeof (struct utmpx));
+-
+- // posix says that ut_line is not meaningful for DEAD_PROCESS
+- // records, but most implementations of last use ut_line to
+- // associate records in wtmp file
+- strncpy (utx->ut_line, line, sizeof (utx->ut_line));
+- fill_id (utx->ut_id, line, sizeof (utx->ut_id));
+- utx->ut_pid = pid;
+- utx->ut_type = login ? USER_PROCESS : DEAD_PROCESS;
+- utx->ut_tv.tv_sec = time (NULL);
+- utx->ut_tv.tv_usec = 0;
+-
+- // posix says that ut_user is not meaningful for DEAD_PROCESS
+- // records, but solaris utmp_update helper requires that the ut_user
+- // field of a DEAD_PROCESS entry matches the one of an existing
+- // USER_PROCESS entry for the same line, if any
+- strncpy (utx->ut_user, user, sizeof (utx->ut_user));
+-
+- if (login)
+- {
+-# ifdef HAVE_UTMPX_HOST
+- strncpy (utx->ut_host, host, sizeof (utx->ut_host));
+-# endif
+- }
+-}
+-#endif
+-
+-/* ------------------------------------------------------------------------- */
+-
+-/*
+- * make and write utmp and wtmp entries
+- */
+ void
+ ptytty_unix::login (int cmd_pid, bool login_shell, const char *hostname)
+ {
+@@ -290,97 +47,17 @@
+ this->cmd_pid = cmd_pid;
+ this->login_shell = login_shell;
+
+- log_session (true, hostname);
+-}
+-
+-void
+-ptytty_unix::log_session (bool login, const char *hostname)
+-{
+- struct passwd *pwent = getpwuid (getuid ());
+- const char *user = (pwent && pwent->pw_name) ? pwent->pw_name : "?";
+-
+- const char *pty = name;
+-
+- if (!strncmp (pty, "/dev/", 5))
+- pty += 5; /* skip /dev/ prefix */
+-
+-#ifdef HAVE_STRUCT_UTMP
+- struct utmp *tmput;
+- struct utmp ut;
+- fill_utmp (&ut, login, cmd_pid, pty, user, hostname);
+-#endif
+-
+-#ifdef HAVE_STRUCT_UTMPX
+- struct utmpx *tmputx;
+- struct utmpx utx;
+- fill_utmpx (&utx, login, cmd_pid, pty, user, hostname);
+-#endif
+-
+-#ifdef HAVE_STRUCT_UTMP
+-# ifdef HAVE_UTMP_PID
+- setutent ();
+- if (login || ((tmput = getutid (&ut)) && tmput->ut_pid == cmd_pid))
+- pututline (&ut);
+- endutent ();
+-# else
+- write_bsd_utmp (utmp_pos, &ut);
+-# endif
+-#endif
+-
+-#ifdef HAVE_STRUCT_UTMPX
+- setutxent ();
+- if (login || ((tmputx = getutxid (&utx)) && tmputx->ut_pid == cmd_pid))
+- pututxline (&utx);
+- endutxent ();
+-#endif
+-
+-#ifdef WTMP_SUPPORT
+- if (login_shell)
+- {
+-# ifdef HAVE_STRUCT_UTMP
+-# ifdef HAVE_UPDWTMP
+- updwtmp (WTMP_FILE, &ut);
+-# else
+- update_wtmp (WTMP_FILE, &ut);
+-# endif
+-# endif
+-# if defined(HAVE_STRUCT_UTMPX) && defined(HAVE_UPDWTMPX)
+- updwtmpx (WTMPX_FILE, &utx);
+-# endif
+- }
+-#endif
+-
+-#ifdef LASTLOG_SUPPORT
+- if (login_shell)
+- if (login)
+- {
+- if (pwent)
+- update_lastlog (pty, hostname);
+- else
+- PTYTTY_WARN ("no entry in password file, not updating lastlog.\n");
+- }
+-#endif
++ utempter_add_record(pty, hostname);
+ }
+
+-/* ------------------------------------------------------------------------- */
+-/*
+- * remove utmp and wtmp entries
+- */
+ void
+ ptytty_unix::logout ()
+ {
+ if (!cmd_pid)
+ return;
+
+- log_session (false, 0);
++ utempter_remove_record(pty);
+
+ cmd_pid = 0;
+ }
+
+-#else
+-void
+-ptytty_unix::login (int cmd_pid, bool login_shell, const char *hostname)
+-{
+-}
+-#endif
+-
+--- ./src/Makefile.in.orig 2016-01-23 14:09:22.000000000 -0600
++++ ./src/Makefile.in 2018-03-31 11:21:43.963399092 -0500
+@@ -64,10 +64,10 @@
+ all: allbin
+
+ rxvt: rxvt.o $(COMMON)
+- $(LINK) -o $@ rxvt.o $(COMMON) $(LIBS) $(XLIB) $(PERLLIB)
++ $(LINK) -o $@ rxvt.o $(COMMON) $(LIBS) $(XLIB) $(PERLLIB) -lutempter
+
+ rxvtd: rxvtd.o $(COMMON) $(COMMON_DAEMON)
+- $(LINK) -o $@ rxvtd.o $(COMMON) $(COMMON_DAEMON) $(LIBS) $(XLIB) $(PERLLIB)
++ $(LINK) -o $@ rxvtd.o $(COMMON) $(COMMON_DAEMON) $(LIBS) $(XLIB) $(PERLLIB) -lutempter
+
+ rxvtc: rxvtc.o $(COMMON_DAEMON) fdpass_wrapper.o
+ $(LINK) -o $@ rxvtc.o $(COMMON_DAEMON) fdpass_wrapper.o $(LIBS)
+@@ -205,7 +205,7 @@
+ ptytty_wrapper.o: ../libptytty/src/libptytty.h rxvtperl.h hookinc.h rsinc.h
+ ptytty_wrapper.o: optinc.h ../libptytty/src/logging.C
+ ptytty_wrapper.o: ../libptytty/src/ptytty.h ../libptytty/src/ptytty_conf.h
+-ptytty_wrapper.o: ../libptytty/src/proxy.C ../libptytty/src/ptytty.C
++ptytty_wrapper.o: ../libptytty/src/ptytty.C
+ rxvt.o: ../config.h rxvt.h feature.h ../libptytty/src/ecb.h encoding.h
+ rxvt.o: rxvtutil.h ../libptytty/src/estl.h emman.h rxvtfont.h rxvttoolkit.h
+ rxvt.o: ev_cpp.h ../config.h ../libev/ev++.h ../libev/ev.h callback.h
+--- ./src/rxvt.C.orig 2014-12-12 19:00:23.000000000 -0600
++++ ./src/rxvt.C 2018-03-31 11:21:43.965399092 -0500
+@@ -30,7 +30,7 @@
+ main (int argc, char *argv[])
+ try
+ {
+- ptytty::init ();
++ ptytty::sanitise_stdfd ();
+ rxvt_init ();
+
+ rxvt_term *t = new rxvt_term;
+--- ./src/ptytty_wrapper.C.orig 2014-12-12 19:00:23.000000000 -0600
++++ ./src/ptytty_wrapper.C 2018-03-31 11:21:43.961399092 -0500
+@@ -7,5 +7,4 @@
+ #define PTYTTY_WARN rxvt_warn
+
+ #include "logging.C"
+-#include "proxy.C"
+ #include "ptytty.C"
+--- ./src/rxvtd.C.orig 2014-12-26 16:34:13.000000000 -0600
++++ ./src/rxvtd.C 2018-03-31 11:21:43.960399092 -0500
+@@ -227,7 +227,7 @@
+ int
+ main (int argc, char *argv[])
+ {
+- ptytty::init ();
++ ptytty::sanitise_stdfd ();
+
+ static char opt_fork, opt_opendisplay, opt_quiet;
+ #if ENABLE_PERL
diff --git a/patches/source/rxvt-unicode/slack-desc b/patches/source/rxvt-unicode/slack-desc
new file mode 100644
index 000000000..d6388cadf
--- /dev/null
+++ b/patches/source/rxvt-unicode/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------------------------------------------------------|
+rxvt-unicode: rxvt-unicode (terminal emulator)
+rxvt-unicode:
+rxvt-unicode: rxvt-unicode is a color vt102 terminal emulator based on rxvt.
+rxvt-unicode: Features of rxvt-unicode include international language support
+rxvt-unicode: through Unicode, transparency, the ability to display multiple font
+rxvt-unicode: types and support for Perl extensions.
+rxvt-unicode:
+rxvt-unicode: Homepage: http://software.schmorp.de/pkg/rxvt-unicode.html
+rxvt-unicode:
+rxvt-unicode:
+rxvt-unicode:
diff --git a/recompress.sh b/recompress.sh
index 1587ed90b..7a56fef65 100755
--- a/recompress.sh
+++ b/recompress.sh
@@ -1215,6 +1215,8 @@ gzip ./patches/source/openssl/certwatch
gzip ./patches/source/glibc-zoneinfo/doinst.sh
gzip ./patches/source/glibc-zoneinfo/zic.default.fat.diff
gzip ./patches/source/sudo/doinst.sh
+gzip ./patches/source/rxvt-unicode/rxvt-unicode.utempter.diff
+gzip ./patches/source/rxvt-unicode/CVE-2022-4170.diff
gzip ./patches/source/ca-certificates/fixup_update-ca-certificates.diff
gzip ./patches/source/ca-certificates/doinst.sh
gzip ./patches/source/ca-certificates/update-ca-certificates.c_rehash.diff
@@ -1257,6 +1259,9 @@ gzip ./patches/source/util-linux/doinst.sh
gzip ./patches/source/util-linux/ziptool-fix_build.patch
gzip ./patches/source/flac/flac.man.diff
gzip ./patches/source/mozilla-nss/CVE-2022-3479.patch
+gzip ./patches/source/libtiff/patches/CVE-2022-2056_2057_2058.patch
+gzip ./patches/source/libtiff/patches/CVE-2022-34526.patch
+gzip ./patches/source/libtiff/patches/CVE-2022-3970.patch
gzip ./patches/source/php/php-fpm.conf.diff
gzip ./patches/source/php/php.enchant-2.patch
gzip ./patches/source/php/doinst.sh