mirror of
git://slackware.nl/current.git
synced 2024-12-27 09:59:16 +01:00
Fri Aug 30 18:50:32 UTC 2019
a/bash-5.0.011-x86_64-1.txz: Upgraded. a/findutils-4.7.0-x86_64-1.txz: Upgraded. ap/squashfs-tools-4.4-x86_64-1.txz: Upgraded. n/irssi-1.2.2-x86_64-1.txz: Upgraded. This update fixes a security issue: Use after free when receiving duplicate CAP found by Joseph Bisch. For more information, see: https://irssi.org/security/html/irssi_sa_2019_08 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15717 (* Security fix *) x/libvdpau-1.3-x86_64-1.txz: Upgraded.
This commit is contained in:
parent
0b228c9576
commit
bfb7494122
21 changed files with 452 additions and 2345 deletions
|
@ -11,9 +11,30 @@
|
|||
<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>Thu, 29 Aug 2019 22:21:17 GMT</pubDate>
|
||||
<lastBuildDate>Fri, 30 Aug 2019 06:59:43 GMT</lastBuildDate>
|
||||
<pubDate>Fri, 30 Aug 2019 18:50:32 GMT</pubDate>
|
||||
<lastBuildDate>Sat, 31 Aug 2019 06:59:42 GMT</lastBuildDate>
|
||||
<generator>maintain_current_git.sh v 1.11</generator>
|
||||
<item>
|
||||
<title>Fri, 30 Aug 2019 18:50:32 GMT</title>
|
||||
<pubDate>Fri, 30 Aug 2019 18:50:32 GMT</pubDate>
|
||||
<link>https://git.slackware.nl/current/tag/?h=20190830185032</link>
|
||||
<guid isPermaLink="false">20190830185032</guid>
|
||||
<description>
|
||||
<![CDATA[<pre>
|
||||
a/bash-5.0.011-x86_64-1.txz: Upgraded.
|
||||
a/findutils-4.7.0-x86_64-1.txz: Upgraded.
|
||||
ap/squashfs-tools-4.4-x86_64-1.txz: Upgraded.
|
||||
n/irssi-1.2.2-x86_64-1.txz: Upgraded.
|
||||
This update fixes a security issue:
|
||||
Use after free when receiving duplicate CAP found by Joseph Bisch.
|
||||
For more information, see:
|
||||
https://irssi.org/security/html/irssi_sa_2019_08
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15717
|
||||
(* Security fix *)
|
||||
x/libvdpau-1.3-x86_64-1.txz: Upgraded.
|
||||
</pre>]]>
|
||||
</description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Thu, 29 Aug 2019 22:21:17 GMT</title>
|
||||
<pubDate>Thu, 29 Aug 2019 22:21:17 GMT</pubDate>
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
Fri Aug 30 18:50:32 UTC 2019
|
||||
a/bash-5.0.011-x86_64-1.txz: Upgraded.
|
||||
a/findutils-4.7.0-x86_64-1.txz: Upgraded.
|
||||
ap/squashfs-tools-4.4-x86_64-1.txz: Upgraded.
|
||||
n/irssi-1.2.2-x86_64-1.txz: Upgraded.
|
||||
This update fixes a security issue:
|
||||
Use after free when receiving duplicate CAP found by Joseph Bisch.
|
||||
For more information, see:
|
||||
https://irssi.org/security/html/irssi_sa_2019_08
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15717
|
||||
(* Security fix *)
|
||||
x/libvdpau-1.3-x86_64-1.txz: Upgraded.
|
||||
+--------------------------+
|
||||
Thu Aug 29 22:21:17 UTC 2019
|
||||
a/kernel-firmware-20190827_7307a29-noarch-1.txz: Upgraded.
|
||||
a/kernel-generic-4.19.69-x86_64-1.txz: Upgraded.
|
||||
|
|
189
FILELIST.TXT
189
FILELIST.TXT
|
@ -1,20 +1,20 @@
|
|||
Thu Aug 29 22:43:10 UTC 2019
|
||||
Fri Aug 30 19:01:47 UTC 2019
|
||||
|
||||
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 2019-08-29 22:21 .
|
||||
drwxr-xr-x 12 root root 4096 2019-08-30 18:50 .
|
||||
-rw-r--r-- 1 root root 10064 2016-06-30 18:39 ./ANNOUNCE.14_2
|
||||
-rw-r--r-- 1 root root 14375 2019-08-09 05:36 ./CHANGES_AND_HINTS.TXT
|
||||
-rw-r--r-- 1 root root 922877 2019-08-28 21:44 ./CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2019-08-28 21:44 ./CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 925350 2019-08-29 22:43 ./CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2019-08-29 22:43 ./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 682855 2019-08-29 22:21 ./ChangeLog.txt
|
||||
-rw-r--r-- 1 root root 683398 2019-08-30 18:50 ./ChangeLog.txt
|
||||
drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI
|
||||
drwxr-xr-x 2 root root 4096 2019-08-29 22:18 ./EFI/BOOT
|
||||
-rw-r--r-- 1 root root 1417216 2019-07-05 18:54 ./EFI/BOOT/bootx64.efi
|
||||
|
@ -25,9 +25,9 @@ drwxr-xr-x 2 root root 4096 2019-08-29 22:18 ./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 1213046 2019-08-28 21:44 ./FILELIST.TXT
|
||||
-rw-r--r-- 1 root root 1216842 2019-08-29 22:43 ./FILELIST.TXT
|
||||
-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY
|
||||
-rw-r--r-- 1 root root 733444 2019-08-29 22:41 ./PACKAGES.TXT
|
||||
-rw-r--r-- 1 root root 733431 2019-08-30 18:59 ./PACKAGES.TXT
|
||||
-rw-r--r-- 1 root root 8564 2016-06-28 21:33 ./README.TXT
|
||||
-rw-r--r-- 1 root root 3635 2019-08-29 21:50 ./README.initrd
|
||||
-rw-r--r-- 1 root root 34412 2017-12-01 17:44 ./README_CRYPT.TXT
|
||||
|
@ -786,13 +786,13 @@ drwxr-xr-x 2 root root 4096 2012-09-20 18:06 ./patches
|
|||
-rw-r--r-- 1 root root 575 2012-09-20 18:06 ./patches/FILE_LIST
|
||||
-rw-r--r-- 1 root root 14 2012-09-20 18:06 ./patches/MANIFEST.bz2
|
||||
-rw-r--r-- 1 root root 224 2012-09-20 18:06 ./patches/PACKAGES.TXT
|
||||
drwxr-xr-x 18 root root 4096 2019-08-29 22:41 ./slackware64
|
||||
-rw-r--r-- 1 root root 290994 2019-08-29 22:41 ./slackware64/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2019-08-29 22:41 ./slackware64/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 362459 2019-08-29 22:38 ./slackware64/FILE_LIST
|
||||
-rw-r--r-- 1 root root 3704633 2019-08-29 22:39 ./slackware64/MANIFEST.bz2
|
||||
drwxr-xr-x 18 root root 4096 2019-08-30 18:59 ./slackware64
|
||||
-rw-r--r-- 1 root root 290955 2019-08-30 18:59 ./slackware64/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 18:59 ./slackware64/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 362422 2019-08-30 18:57 ./slackware64/FILE_LIST
|
||||
-rw-r--r-- 1 root root 3693638 2019-08-30 18:58 ./slackware64/MANIFEST.bz2
|
||||
lrwxrwxrwx 1 root root 15 2009-08-23 23:34 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT
|
||||
drwxr-xr-x 2 root root 28672 2019-08-29 22:38 ./slackware64/a
|
||||
drwxr-xr-x 2 root root 28672 2019-08-30 18:57 ./slackware64/a
|
||||
-rw-r--r-- 1 root root 327 2018-06-24 18:44 ./slackware64/a/aaa_base-14.2-x86_64-5.txt
|
||||
-rw-r--r-- 1 root root 10820 2018-06-24 18:44 ./slackware64/a/aaa_base-14.2-x86_64-5.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-24 18:44 ./slackware64/a/aaa_base-14.2-x86_64-5.txz.asc
|
||||
|
@ -811,9 +811,9 @@ drwxr-xr-x 2 root root 28672 2019-08-29 22:38 ./slackware64/a
|
|||
-rw-r--r-- 1 root root 606 2018-06-19 20:02 ./slackware64/a/attr-2.4.48-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 63636 2018-06-19 20:02 ./slackware64/a/attr-2.4.48-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-19 20:02 ./slackware64/a/attr-2.4.48-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 507 2019-08-15 18:06 ./slackware64/a/bash-5.0.009-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1637708 2019-08-15 18:06 ./slackware64/a/bash-5.0.009-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-15 18:06 ./slackware64/a/bash-5.0.009-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 507 2019-08-30 18:29 ./slackware64/a/bash-5.0.011-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1638164 2019-08-30 18:29 ./slackware64/a/bash-5.0.011-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 18:29 ./slackware64/a/bash-5.0.011-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 226 2018-10-17 03:06 ./slackware64/a/bin-11.1-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 39576 2018-10-17 03:06 ./slackware64/a/bin-11.1-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-10-17 03:06 ./slackware64/a/bin-11.1-x86_64-3.txz.asc
|
||||
|
@ -880,9 +880,9 @@ drwxr-xr-x 2 root root 28672 2019-08-29 22:38 ./slackware64/a
|
|||
-rw-r--r-- 1 root root 271 2019-05-17 18:12 ./slackware64/a/file-5.37-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 361356 2019-05-17 18:12 ./slackware64/a/file-5.37-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-05-17 18:12 ./slackware64/a/file-5.37-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 366 2018-08-22 23:20 ./slackware64/a/findutils-4.6.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 467152 2018-08-22 23:20 ./slackware64/a/findutils-4.6.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-08-22 23:20 ./slackware64/a/findutils-4.6.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 366 2019-08-30 18:24 ./slackware64/a/findutils-4.7.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 499860 2019-08-30 18:24 ./slackware64/a/findutils-4.7.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 18:24 ./slackware64/a/findutils-4.7.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 257 2018-04-13 13:04 ./slackware64/a/floppy-5.5-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 362172 2018-04-13 13:04 ./slackware64/a/floppy-5.5-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:04 ./slackware64/a/floppy-5.5-x86_64-2.txz.asc
|
||||
|
@ -1143,7 +1143,7 @@ drwxr-xr-x 2 root root 28672 2019-08-29 22:38 ./slackware64/a
|
|||
-rw-r--r-- 1 root root 540 2018-04-13 13:15 ./slackware64/a/zoo-2.10_22-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 56156 2018-04-13 13:15 ./slackware64/a/zoo-2.10_22-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:15 ./slackware64/a/zoo-2.10_22-x86_64-2.txz.asc
|
||||
drwxr-xr-x 2 root root 20480 2019-08-29 22:38 ./slackware64/ap
|
||||
drwxr-xr-x 2 root root 20480 2019-08-30 18:57 ./slackware64/ap
|
||||
-rw-r--r-- 1 root root 291 2018-04-13 13:17 ./slackware64/ap/a2ps-4.14-x86_64-7.txt
|
||||
-rw-r--r-- 1 root root 694880 2018-04-13 13:17 ./slackware64/ap/a2ps-4.14-x86_64-7.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:17 ./slackware64/ap/a2ps-4.14-x86_64-7.txz.asc
|
||||
|
@ -1349,9 +1349,9 @@ drwxr-xr-x 2 root root 20480 2019-08-29 22:38 ./slackware64/ap
|
|||
-rw-r--r-- 1 root root 483 2019-07-11 03:49 ./slackware64/ap/sqlite-3.29.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 896608 2019-07-11 03:49 ./slackware64/ap/sqlite-3.29.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-07-11 03:49 ./slackware64/ap/sqlite-3.29.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 584 2019-07-22 18:36 ./slackware64/ap/squashfs-tools-20190721_95230e2-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 137164 2019-07-22 18:36 ./slackware64/ap/squashfs-tools-20190721_95230e2-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-07-22 18:36 ./slackware64/ap/squashfs-tools-20190721_95230e2-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 584 2019-08-30 04:20 ./slackware64/ap/squashfs-tools-4.4-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 135992 2019-08-30 04:20 ./slackware64/ap/squashfs-tools-4.4-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 04:20 ./slackware64/ap/squashfs-tools-4.4-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 442 2019-01-13 19:53 ./slackware64/ap/sudo-1.8.27-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 744616 2019-01-13 19:53 ./slackware64/ap/sudo-1.8.27-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-01-13 19:53 ./slackware64/ap/sudo-1.8.27-x86_64-1.txz.asc
|
||||
|
@ -2727,7 +2727,7 @@ drwxr-xr-x 2 root root 69632 2019-08-26 20:08 ./slackware64/l
|
|||
-rw-r--r-- 1 root root 163 2019-08-21 04:34 ./slackware64/l/gsl-2.6-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 607 2019-04-19 18:39 ./slackware64/l/gst-plugins-base-1.16.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 2566516 2019-04-19 18:39 ./slackware64/l/gst-plugins-base-1.16.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-04-19 18:39 ./slackware64/l/gst-plugins-base-1.16.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 163 2019-04-19 18:39 ./slackware64/l/gst-plugins-base-1.16.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 622 2018-04-14 22:32 ./slackware64/l/gst-plugins-base0-0.10.36-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 1357928 2018-04-14 22:32 ./slackware64/l/gst-plugins-base0-0.10.36-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-14 22:32 ./slackware64/l/gst-plugins-base0-0.10.36-x86_64-3.txz.asc
|
||||
|
@ -3423,7 +3423,7 @@ drwxr-xr-x 2 root root 69632 2019-08-26 20:08 ./slackware64/l
|
|||
-rw-r--r-- 1 root root 463 2019-08-21 04:36 ./slackware64/l/zstd-1.4.3-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 400628 2019-08-21 04:36 ./slackware64/l/zstd-1.4.3-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-21 04:36 ./slackware64/l/zstd-1.4.3-x86_64-1.txz.asc
|
||||
drwxr-xr-x 2 root root 36864 2019-08-29 22:38 ./slackware64/n
|
||||
drwxr-xr-x 2 root root 36864 2019-08-30 18:57 ./slackware64/n
|
||||
-rw-r--r-- 1 root root 357 2019-07-05 18:51 ./slackware64/n/ModemManager-1.10.4-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1697584 2019-07-05 18:51 ./slackware64/n/ModemManager-1.10.4-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-07-05 18:51 ./slackware64/n/ModemManager-1.10.4-x86_64-1.txz.asc
|
||||
|
@ -3558,9 +3558,9 @@ drwxr-xr-x 2 root root 36864 2019-08-29 22:38 ./slackware64/n
|
|||
-rw-r--r-- 1 root root 532 2010-05-03 03:32 ./slackware64/n/ipw2200-fw-3.1-fw-1.txt
|
||||
-rw-r--r-- 1 root root 118824 2010-05-03 03:32 ./slackware64/n/ipw2200-fw-3.1-fw-1.txz
|
||||
-rw-r--r-- 1 root root 198 2010-05-03 03:32 ./slackware64/n/ipw2200-fw-3.1-fw-1.txz.asc
|
||||
-rw-r--r-- 1 root root 331 2019-06-29 17:56 ./slackware64/n/irssi-1.2.1-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 651960 2019-06-29 17:56 ./slackware64/n/irssi-1.2.1-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-06-29 17:56 ./slackware64/n/irssi-1.2.1-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 331 2019-08-30 18:30 ./slackware64/n/irssi-1.2.2-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 652428 2019-08-30 18:30 ./slackware64/n/irssi-1.2.2-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 18:30 ./slackware64/n/irssi-1.2.2-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 422 2019-08-06 02:42 ./slackware64/n/iw-5.3-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 80980 2019-08-06 02:42 ./slackware64/n/iw-5.3-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-06 02:42 ./slackware64/n/iw-5.3-x86_64-1.txz.asc
|
||||
|
@ -3903,7 +3903,7 @@ drwxr-xr-x 2 root root 4096 2019-07-12 18:59 ./slackware64/tcl
|
|||
-rw-r--r-- 1 root root 227 2018-11-24 19:32 ./slackware64/tcl/tk-8.6.9.1-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1771556 2018-11-24 19:32 ./slackware64/tcl/tk-8.6.9.1-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-11-24 19:32 ./slackware64/tcl/tk-8.6.9.1-x86_64-1.txz.asc
|
||||
drwxr-xr-x 2 root root 65536 2019-08-26 20:09 ./slackware64/x
|
||||
drwxr-xr-x 2 root root 65536 2019-08-30 18:57 ./slackware64/x
|
||||
-rw-r--r-- 1 root root 257 2018-04-13 16:03 ./slackware64/x/anthy-9100h-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 5074404 2018-04-13 16:03 ./slackware64/x/anthy-9100h-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 16:03 ./slackware64/x/anthy-9100h-x86_64-2.txz.asc
|
||||
|
@ -4233,9 +4233,9 @@ drwxr-xr-x 2 root root 65536 2019-08-26 20:09 ./slackware64/x
|
|||
-rw-r--r-- 1 root root 294 2019-07-08 20:13 ./slackware64/x/libva-utils-2.5.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 427956 2019-07-08 20:13 ./slackware64/x/libva-utils-2.5.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-07-08 20:13 ./slackware64/x/libva-utils-2.5.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 500 2019-03-01 19:17 ./slackware64/x/libvdpau-1.2-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 56068 2019-03-01 19:17 ./slackware64/x/libvdpau-1.2-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-03-01 19:17 ./slackware64/x/libvdpau-1.2-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 500 2019-08-30 18:36 ./slackware64/x/libvdpau-1.3-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 55728 2019-08-30 18:36 ./slackware64/x/libvdpau-1.3-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 18:36 ./slackware64/x/libvdpau-1.3-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 390 2019-04-12 21:00 ./slackware64/x/libwacom-0.33-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 53104 2019-04-12 21:00 ./slackware64/x/libwacom-0.33-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2019-04-12 21:00 ./slackware64/x/libwacom-0.33-x86_64-1.txz.asc
|
||||
|
@ -5007,11 +5007,11 @@ drwxr-xr-x 2 root root 4096 2019-02-17 23:51 ./slackware64/y
|
|||
-rw-r--r-- 1 root root 1147 2018-03-01 07:55 ./slackware64/y/maketag
|
||||
-rw-r--r-- 1 root root 1147 2018-03-01 07:55 ./slackware64/y/maketag.ez
|
||||
-rw-r--r-- 1 root root 14 2018-03-01 07:55 ./slackware64/y/tagfile
|
||||
drwxr-xr-x 19 root root 4096 2019-08-29 22:42 ./source
|
||||
-rw-r--r-- 1 root root 470324 2019-08-29 22:42 ./source/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2019-08-29 22:42 ./source/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 663412 2019-08-29 22:42 ./source/FILE_LIST
|
||||
-rw-r--r-- 1 root root 16083254 2019-08-29 22:42 ./source/MANIFEST.bz2
|
||||
drwxr-xr-x 19 root root 4096 2019-08-30 19:01 ./source
|
||||
-rw-r--r-- 1 root root 469496 2019-08-30 19:01 ./source/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2019-08-30 19:01 ./source/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 662366 2019-08-30 19:00 ./source/FILE_LIST
|
||||
-rw-r--r-- 1 root root 16088424 2019-08-30 19:00 ./source/MANIFEST.bz2
|
||||
-rw-r--r-- 1 root root 1314 2006-10-02 04:40 ./source/README.TXT
|
||||
drwxr-xr-x 111 root root 4096 2019-08-17 19:53 ./source/a
|
||||
-rw-r--r-- 1 root root 1034 2019-05-04 17:56 ./source/a/FTBFSlog
|
||||
|
@ -5052,7 +5052,7 @@ drwxr-xr-x 2 root root 4096 2018-09-18 22:04 ./source/a/attr
|
|||
-rw-r--r-- 1 root root 270 2018-06-19 18:09 ./source/a/attr/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 1058 2018-02-27 06:13 ./source/a/attr/slack-desc
|
||||
drwxr-xr-x 3 root root 4096 2019-03-08 17:32 ./source/a/bash
|
||||
drwxr-xr-x 2 root root 4096 2019-08-15 18:05 ./source/a/bash/bash-5.0-patches
|
||||
drwxr-xr-x 2 root root 4096 2019-08-30 18:28 ./source/a/bash/bash-5.0-patches
|
||||
-rw-r--r-- 1 root root 4133 2019-01-18 20:02 ./source/a/bash/bash-5.0-patches/bash50-001
|
||||
-rw-r--r-- 1 root root 95 2019-01-18 20:02 ./source/a/bash/bash-5.0-patches/bash50-001.sig
|
||||
-rw-r--r-- 1 root root 4380 2019-01-18 20:03 ./source/a/bash/bash-5.0-patches/bash50-002
|
||||
|
@ -5071,6 +5071,10 @@ drwxr-xr-x 2 root root 4096 2019-08-15 18:05 ./source/a/bash/bash-5.0-patc
|
|||
-rw-r--r-- 1 root root 95 2019-08-14 18:49 ./source/a/bash/bash-5.0-patches/bash50-008.sig
|
||||
-rw-r--r-- 1 root root 1095 2019-08-14 18:49 ./source/a/bash/bash-5.0-patches/bash50-009
|
||||
-rw-r--r-- 1 root root 95 2019-08-14 18:49 ./source/a/bash/bash-5.0-patches/bash50-009.sig
|
||||
-rw-r--r-- 1 root root 6407 2019-08-29 15:10 ./source/a/bash/bash-5.0-patches/bash50-010
|
||||
-rw-r--r-- 1 root root 95 2019-08-29 15:10 ./source/a/bash/bash-5.0-patches/bash50-010.sig
|
||||
-rw-r--r-- 1 root root 1870 2019-08-29 15:10 ./source/a/bash/bash-5.0-patches/bash50-011
|
||||
-rw-r--r-- 1 root root 95 2019-08-29 15:10 ./source/a/bash/bash-5.0-patches/bash50-011.sig
|
||||
-rw-r--r-- 1 root root 5988202 2019-01-07 14:13 ./source/a/bash/bash-5.0.tar.lz
|
||||
-rwxr-xr-x 1 root root 6188 2019-03-19 19:22 ./source/a/bash/bash.SlackBuild
|
||||
-rw-r--r-- 1 root root 631 2018-03-29 01:12 ./source/a/bash/bash_manpages.patch.gz
|
||||
|
@ -5268,24 +5272,11 @@ drwxr-xr-x 2 root root 4096 2019-05-17 18:11 ./source/a/file
|
|||
-rw-r--r-- 1 root root 214 2005-09-07 03:59 ./source/a/file/file.zisofs.magic.gz
|
||||
-rw-r--r-- 1 root root 233 2015-04-14 20:30 ./source/a/file/recompile_magic.mgc.sh.gz
|
||||
-rw-r--r-- 1 root root 723 2018-02-27 06:13 ./source/a/file/slack-desc
|
||||
drwxr-xr-x 3 root root 4096 2018-09-18 22:04 ./source/a/findutils
|
||||
-rw-r--r-- 1 root root 1792415 2015-12-28 21:53 ./source/a/findutils/findutils-4.6.0.tar.lz
|
||||
-rwxr-xr-x 1 root root 5329 2018-09-18 22:04 ./source/a/findutils/findutils.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2019-08-30 18:23 ./source/a/findutils
|
||||
-rw-r--r-- 1 root root 1887433 2019-08-29 20:06 ./source/a/findutils/findutils-4.7.0.tar.lz
|
||||
-rwxr-xr-x 1 root root 4379 2019-08-30 18:14 ./source/a/findutils/findutils.SlackBuild
|
||||
-rw-r--r-- 1 root root 186 2009-02-21 21:50 ./source/a/findutils/findutils.no.default.options.warnings.diff.gz
|
||||
-rw-r--r-- 1 root root 339 2018-08-16 20:04 ./source/a/findutils/findutils.nolocate.diff.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-08-19 19:28 ./source/a/findutils/patches
|
||||
-rw-r--r-- 1 root root 2026 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.4.2-xautofs.patch.gz
|
||||
-rw-r--r-- 1 root root 844 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.5.13-warnings.patch.gz
|
||||
-rw-r--r-- 1 root root 2431 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.5.15-no-locate.patch.gz
|
||||
-rw-r--r-- 1 root root 3211 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-exec-args.patch.gz
|
||||
-rw-r--r-- 1 root root 9633 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-fts-update.patch.gz
|
||||
-rw-r--r-- 1 root root 1970 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-gnulib-fflush.patch.gz
|
||||
-rw-r--r-- 1 root root 1481 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-gnulib-makedev.patch.gz
|
||||
-rw-r--r-- 1 root root 2999 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-internal-noop.patch.gz
|
||||
-rw-r--r-- 1 root root 1351 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch.gz
|
||||
-rw-r--r-- 1 root root 813 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-man-exec.patch.gz
|
||||
-rw-r--r-- 1 root root 721 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-mbrtowc-tests.patch.gz
|
||||
-rw-r--r-- 1 root root 557 2018-07-13 04:43 ./source/a/findutils/patches/findutils-4.6.0-test-lock.patch.gz
|
||||
-rw-r--r-- 1 root root 1045 2019-08-30 18:23 ./source/a/findutils/findutils.nolocate.diff.gz
|
||||
-rw-r--r-- 1 root root 823 2018-02-27 06:13 ./source/a/findutils/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-09-18 23:48 ./source/a/floppy
|
||||
-rw-r--r-- 1 root root 8893 2008-10-27 19:57 ./source/a/floppy/fdutils-5.5-20081027.diff.gz
|
||||
|
@ -5648,24 +5639,24 @@ drwxr-xr-x 2 root root 4096 2008-09-12 04:35 ./source/a/pcmciautils/config
|
|||
-rw-r--r-- 1 root root 926 2007-03-16 20:00 ./source/a/pcmciautils/config/60-pcmcia.rules
|
||||
-rw-r--r-- 1 root root 2577 2008-03-05 03:14 ./source/a/pcmciautils/config/config.opts
|
||||
-rwxr-xr-x 1 root root 1722 2007-03-16 21:09 ./source/a/pcmciautils/config/rc.pcmcia
|
||||
-rw-r--r-- 1 root root 277 2009-04-14 04:38 ./source/a/pcmciautils/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 819 2015-06-07 13:23 ./source/a/pcmciautils/pcmciautils-018.tar.sign
|
||||
-rw-r--r-- 1 root root 42484 2015-06-07 13:23 ./source/a/pcmciautils/pcmciautils-018.tar.xz
|
||||
-rwxr-xr-x 1 root root 4494 2018-09-18 20:57 ./source/a/pcmciautils/pcmciautils.SlackBuild
|
||||
-rw-r--r-- 1 root root 910 2018-02-27 06:13 ./source/a/pcmciautils/slack-desc
|
||||
drwxr-xr-x 4 root root 4096 2018-06-19 21:12 ./source/a/pkgtools
|
||||
-rw-r--r-- 1 root root 984 2018-06-19 19:28 ./source/a/pkgtools/doinst.sh.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-07-09 19:21 ./source/a/pkgtools/manpages
|
||||
-rw-r--r-- 1 root root 76636 2016-06-15 01:08 ./source/a/pkgtools/manpages-l10n.tar.xz
|
||||
-rw-r--r-- 1 root root 1265 2018-06-19 19:28 ./source/a/pkgtools/manpages/explodepkg.8
|
||||
-rw-r--r-- 1 root root 3554 2018-06-19 19:28 ./source/a/pkgtools/manpages/installpkg.8
|
||||
-rw-r--r-- 1 root root 5702 2018-07-09 19:21 ./source/a/pkgtools/manpages/makepkg.8
|
||||
-rw-r--r-- 1 root root 1401 2018-04-11 19:48 ./source/a/pkgtools/manpages/pkgdiff.8
|
||||
-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8
|
||||
-rw-r--r-- 1 root root 3251 2018-06-19 19:28 ./source/a/pkgtools/manpages/removepkg.8
|
||||
-rw-r--r-- 1 root root 2962 2018-06-08 19:56 ./source/a/pkgtools/manpages/upgradepkg.8
|
||||
-rwxr-xr-x 1 root root 3742 2018-09-06 22:16 ./source/a/pkgtools/pkgtools.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-09-06 22:16 ./source/a/pkgtools/scripts
|
||||
-rw-r--r-- 1 root root 277 2009-04-14 04:38 ./source/a/pcmciautils/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 819 2015-06-07 13:23 ./source/a/pcmciautils/pcmciautils-018.tar.sign
|
||||
-rw-r--r-- 1 root root 42484 2015-06-07 13:23 ./source/a/pcmciautils/pcmciautils-018.tar.xz
|
||||
-rwxr-xr-x 1 root root 4494 2018-09-18 20:57 ./source/a/pcmciautils/pcmciautils.SlackBuild
|
||||
-rw-r--r-- 1 root root 910 2018-02-27 06:13 ./source/a/pcmciautils/slack-desc
|
||||
drwxr-xr-x 4 root root 4096 2018-06-19 21:12 ./source/a/pkgtools
|
||||
-rw-r--r-- 1 root root 984 2018-06-19 19:28 ./source/a/pkgtools/doinst.sh.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-07-09 19:21 ./source/a/pkgtools/manpages
|
||||
-rw-r--r-- 1 root root 76636 2016-06-15 01:08 ./source/a/pkgtools/manpages-l10n.tar.xz
|
||||
-rw-r--r-- 1 root root 1265 2018-06-19 19:28 ./source/a/pkgtools/manpages/explodepkg.8
|
||||
-rw-r--r-- 1 root root 3554 2018-06-19 19:28 ./source/a/pkgtools/manpages/installpkg.8
|
||||
-rw-r--r-- 1 root root 5702 2018-07-09 19:21 ./source/a/pkgtools/manpages/makepkg.8
|
||||
-rw-r--r-- 1 root root 1401 2018-04-11 19:48 ./source/a/pkgtools/manpages/pkgdiff.8
|
||||
-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8
|
||||
-rw-r--r-- 1 root root 3251 2018-06-19 19:28 ./source/a/pkgtools/manpages/removepkg.8
|
||||
-rw-r--r-- 1 root root 2962 2018-06-08 19:56 ./source/a/pkgtools/manpages/upgradepkg.8
|
||||
-rwxr-xr-x 1 root root 3742 2018-09-06 22:16 ./source/a/pkgtools/pkgtools.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-09-06 22:16 ./source/a/pkgtools/scripts
|
||||
-rw-r--r-- 1 root root 3608 2018-06-19 19:28 ./source/a/pkgtools/scripts/explodepkg
|
||||
-rw-r--r-- 1 root root 26417 2018-09-06 22:14 ./source/a/pkgtools/scripts/installpkg
|
||||
-rw-r--r-- 1 root root 13672 2018-06-19 19:28 ./source/a/pkgtools/scripts/makebootdisk
|
||||
|
@ -6415,10 +6406,10 @@ drwxr-xr-x 2 root root 4096 2019-07-11 03:48 ./source/ap/sqlite
|
|||
-rw-r--r-- 1 root root 937 2018-11-29 19:15 ./source/ap/sqlite/slack-desc
|
||||
-rw-r--r-- 1 root root 6771951 2019-07-10 20:14 ./source/ap/sqlite/sqlite-src-3290000.tar.lz
|
||||
-rwxr-xr-x 1 root root 6251 2019-04-17 19:25 ./source/ap/sqlite/sqlite.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2019-07-22 18:35 ./source/ap/squashfs-tools
|
||||
drwxr-xr-x 2 root root 4096 2019-08-30 04:19 ./source/ap/squashfs-tools
|
||||
-rwxr-xr-x 1 root root 1939 2018-09-13 21:02 ./source/ap/squashfs-tools/get-squashfs-tools.sh
|
||||
-rw-r--r-- 1 root root 1078 2018-09-13 21:00 ./source/ap/squashfs-tools/slack-desc
|
||||
-rw-r--r-- 1 root root 165665 2019-07-22 18:34 ./source/ap/squashfs-tools/squashfs-tools-20190721_95230e2.tar.lz
|
||||
-rw-r--r-- 1 root root 169349 2019-08-30 04:19 ./source/ap/squashfs-tools/squashfs-tools-4.4.tar.lz
|
||||
-rwxr-xr-- 1 root root 3850 2018-09-19 00:04 ./source/ap/squashfs-tools/squashfs-tools.SlackBuild
|
||||
-rw-r--r-- 1 root root 237 2018-09-19 00:03 ./source/ap/squashfs-tools/squashfs-tools.glibc228.diff.gz
|
||||
drwxr-xr-x 2 root root 4096 2019-01-13 19:52 ./source/ap/sudo
|
||||
|
@ -10190,10 +10181,10 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/n/ipw2100-fw
|
|||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/n/ipw2200-fw
|
||||
-rw-r--r-- 1 root root 118152 2010-05-03 02:47 ./source/n/ipw2200-fw/ipw2200-fw-3.1.tar.xz
|
||||
-rwxr-xr-x 1 root root 3122 2018-04-23 17:20 ./source/n/ipw2200-fw/ipw2200-fw.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2019-06-29 17:55 ./source/n/irssi
|
||||
drwxr-xr-x 2 root root 4096 2019-08-30 18:29 ./source/n/irssi
|
||||
-rw-r--r-- 1 root root 264 2009-07-29 00:34 ./source/n/irssi/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 1140380 2019-06-28 19:53 ./source/n/irssi/irssi-1.2.1.tar.xz
|
||||
-rw-r--r-- 1 root root 195 2019-06-28 19:53 ./source/n/irssi/irssi-1.2.1.tar.xz.asc
|
||||
-rw-r--r-- 1 root root 1140844 2019-08-29 15:38 ./source/n/irssi/irssi-1.2.2.tar.xz
|
||||
-rw-r--r-- 1 root root 195 2019-08-29 15:38 ./source/n/irssi/irssi-1.2.2.tar.xz.asc
|
||||
-rwxr-xr-x 1 root root 4790 2019-06-29 17:55 ./source/n/irssi/irssi.SlackBuild
|
||||
-rw-r--r-- 1 root root 784 2018-02-27 06:13 ./source/n/irssi/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2019-08-06 02:41 ./source/n/iw
|
||||
|
@ -11063,10 +11054,10 @@ drwxr-xr-x 2 root root 4096 2019-07-08 20:13 ./source/x/libva-utils
|
|||
-rwxr-xr-x 1 root root 3477 2018-09-18 22:04 ./source/x/libva/libva.SlackBuild
|
||||
-rw-r--r-- 1 root root 31 2018-11-08 00:15 ./source/x/libva/libva.url
|
||||
-rw-r--r-- 1 root root 908 2018-02-27 06:13 ./source/x/libva/slack-desc
|
||||
drwxr-xr-x 3 root root 4096 2019-03-01 19:17 ./source/x/libvdpau
|
||||
drwxr-xr-x 3 root root 4096 2019-08-30 18:35 ./source/x/libvdpau
|
||||
-rw-r--r-- 1 root root 290 2014-05-30 17:35 ./source/x/libvdpau/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 374642 2019-02-28 18:50 ./source/x/libvdpau/libvdpau-1.2.tar.lz
|
||||
-rwxr--r-- 1 root root 3836 2019-03-01 19:17 ./source/x/libvdpau/libvdpau.SlackBuild
|
||||
-rw-r--r-- 1 root root 131807 2019-08-30 18:34 ./source/x/libvdpau/libvdpau-1.3.tar.lz
|
||||
-rwxr--r-- 1 root root 3985 2019-08-30 18:36 ./source/x/libvdpau/libvdpau.SlackBuild
|
||||
-rw-r--r-- 1 root root 51 2019-03-01 19:16 ./source/x/libvdpau/libvdpau.url
|
||||
drwxr-xr-x 2 root root 4096 2015-03-14 21:20 ./source/x/libvdpau/profile.d
|
||||
-rwxr--r-- 1 root root 526 2015-03-14 21:20 ./source/x/libvdpau/profile.d/vdpau.csh
|
||||
|
@ -12422,24 +12413,24 @@ drwxr-xr-x 2 root root 4096 2019-07-26 04:33 ./source/xap/gkrellm
|
|||
drwxr-xr-x 2 root root 4096 2019-04-03 20:41 ./source/xap/gnuchess
|
||||
-rw-r--r-- 1 root root 142963 2004-01-19 11:50 ./source/xap/gnuchess/Sjeng-Free-11.2.tar.bz2
|
||||
-rw-r--r-- 1 root root 652 2004-10-27 05:47 ./source/xap/gnuchess/chess.png
|
||||
-rw-r--r-- 1 root root 271 2013-03-20 02:41 ./source/xap/gnuchess/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 462386 2008-02-22 15:57 ./source/xap/gnuchess/eboard-1.1.1.tar.bz2
|
||||
-rw-r--r-- 1 root root 458 2010-02-20 03:54 ./source/xap/gnuchess/eboard.assert.diff.gz
|
||||
-rw-r--r-- 1 root root 224 2004-10-27 06:07 ./source/xap/gnuchess/eboard.desktop
|
||||
-rw-r--r-- 1 root root 221 2013-03-20 01:49 ./source/xap/gnuchess/eboard.ldl.diff.gz
|
||||
-rw-r--r-- 1 root root 336 2015-03-23 16:11 ./source/xap/gnuchess/eboard.png16.diff.gz
|
||||
-rw-r--r-- 1 root root 518760 2017-07-24 23:16 ./source/xap/gnuchess/gnuchess-6.2.5.tar.xz
|
||||
-rwxr-xr-x 1 root root 6366 2019-04-03 20:41 ./source/xap/gnuchess/gnuchess.SlackBuild
|
||||
-rw-r--r-- 1 root root 792 2018-02-27 06:13 ./source/xap/gnuchess/slack-desc
|
||||
-rw-r--r-- 1 root root 2731760 2016-08-01 03:55 ./source/xap/gnuchess/xboard-4.9.1.tar.xz
|
||||
-rw-r--r-- 1 root root 269 2015-03-20 18:35 ./source/xap/gnuchess/xboard.conf.diff.gz
|
||||
drwxr-xr-x 2 root root 4096 2019-05-29 18:28 ./source/xap/gnuplot
|
||||
-rw-r--r-- 1 root root 4247684 2019-05-29 04:21 ./source/xap/gnuplot/gnuplot-5.2.7.tar.lz
|
||||
-rwxr-xr-x 1 root root 5230 2018-10-30 21:08 ./source/xap/gnuplot/gnuplot.SlackBuild
|
||||
-rw-r--r-- 1 root root 232 2017-09-30 18:21 ./source/xap/gnuplot/gnuplot.fix.info.generation.diff.gz
|
||||
-rw-r--r-- 1 root root 24 2018-06-05 04:25 ./source/xap/gnuplot/gnuplot.url
|
||||
-rw-r--r-- 1 root root 1099 2018-02-27 06:13 ./source/xap/gnuplot/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2019-05-30 18:46 ./source/xap/gparted
|
||||
-rw-r--r-- 1 root root 271 2013-03-20 02:41 ./source/xap/gnuchess/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 462386 2008-02-22 15:57 ./source/xap/gnuchess/eboard-1.1.1.tar.bz2
|
||||
-rw-r--r-- 1 root root 458 2010-02-20 03:54 ./source/xap/gnuchess/eboard.assert.diff.gz
|
||||
-rw-r--r-- 1 root root 224 2004-10-27 06:07 ./source/xap/gnuchess/eboard.desktop
|
||||
-rw-r--r-- 1 root root 221 2013-03-20 01:49 ./source/xap/gnuchess/eboard.ldl.diff.gz
|
||||
-rw-r--r-- 1 root root 336 2015-03-23 16:11 ./source/xap/gnuchess/eboard.png16.diff.gz
|
||||
-rw-r--r-- 1 root root 518760 2017-07-24 23:16 ./source/xap/gnuchess/gnuchess-6.2.5.tar.xz
|
||||
-rwxr-xr-x 1 root root 6366 2019-04-03 20:41 ./source/xap/gnuchess/gnuchess.SlackBuild
|
||||
-rw-r--r-- 1 root root 792 2018-02-27 06:13 ./source/xap/gnuchess/slack-desc
|
||||
-rw-r--r-- 1 root root 2731760 2016-08-01 03:55 ./source/xap/gnuchess/xboard-4.9.1.tar.xz
|
||||
-rw-r--r-- 1 root root 269 2015-03-20 18:35 ./source/xap/gnuchess/xboard.conf.diff.gz
|
||||
drwxr-xr-x 2 root root 4096 2019-05-29 18:28 ./source/xap/gnuplot
|
||||
-rw-r--r-- 1 root root 4247684 2019-05-29 04:21 ./source/xap/gnuplot/gnuplot-5.2.7.tar.lz
|
||||
-rwxr-xr-x 1 root root 5230 2018-10-30 21:08 ./source/xap/gnuplot/gnuplot.SlackBuild
|
||||
-rw-r--r-- 1 root root 232 2017-09-30 18:21 ./source/xap/gnuplot/gnuplot.fix.info.generation.diff.gz
|
||||
-rw-r--r-- 1 root root 24 2018-06-05 04:25 ./source/xap/gnuplot/gnuplot.url
|
||||
-rw-r--r-- 1 root root 1099 2018-02-27 06:13 ./source/xap/gnuplot/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2019-05-30 18:46 ./source/xap/gparted
|
||||
-rw-r--r-- 1 root root 121 2016-02-03 19:48 ./source/xap/gparted/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 2283660 2019-05-29 16:18 ./source/xap/gparted/gparted-1.0.0.tar.lz
|
||||
-rwxr-xr-x 1 root root 4124 2018-09-18 22:04 ./source/xap/gparted/gparted.SlackBuild
|
||||
|
|
|
@ -263,18 +263,6 @@ gzip ./source/a/dcron/doinst.sh
|
|||
gzip ./source/a/dcron/run-parts
|
||||
gzip ./source/a/patch/0001-Refuse-to-apply-ed-scripts-by-default.patch
|
||||
gzip ./source/a/pcmciautils/doinst.sh
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-fts-update.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-gnulib-makedev.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-leaf-opt.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-man-exec.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-exec-args.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.5.13-warnings.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-gnulib-fflush.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.5.15-no-locate.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-mbrtowc-tests.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.4.2-xautofs.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-test-lock.patch
|
||||
gzip ./source/a/findutils/patches/findutils-4.6.0-internal-noop.patch
|
||||
gzip ./source/a/findutils/findutils.no.default.options.warnings.diff
|
||||
gzip ./source/a/findutils/findutils.nolocate.diff
|
||||
gzip ./source/a/kbd/sources/kbd-1.15-unicode_start.patch
|
||||
|
|
172
source/a/bash/bash-5.0-patches/bash50-010
Normal file
172
source/a/bash/bash-5.0-patches/bash50-010
Normal file
|
@ -0,0 +1,172 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-010
|
||||
|
||||
Bug-Reported-by: Thorsten Glaser <tg@mirbsd.de>
|
||||
Bug-Reference-ID: <156622962831.19438.16374961114836556294.reportbug@tglase.lan.tarent.de>
|
||||
Bug-Reference-URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935115
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Bash-5.0 changed the way assignment statements preceding special builtins
|
||||
and shell functions were handled in posix mode. They automatically created
|
||||
or modified global variables instead of modifying existing local variables
|
||||
as in bash-4.4.
|
||||
|
||||
The bash-4.4 posix-mode semantics were buggy, and resulted in creating
|
||||
local variables where they were not intended and modifying global variables
|
||||
and local variables simultaneously.
|
||||
|
||||
The bash-5.0 changes were intended to fix this issue, but did not preserve
|
||||
enough backwards compatibility. The posix standard also changed what it
|
||||
required in these cases, so bash-5.0 is not bound by the strict conformance
|
||||
requirements that existed in previous issues of the standard.
|
||||
|
||||
This patch modifies the bash-5.0 posix mode behavior in an effort to restore
|
||||
some backwards compatibility and rationalize the behavior in the presence of
|
||||
local variables. It
|
||||
|
||||
1. Changes the assignment semantics to be more similar to standalone assignment
|
||||
statements: assignments preceding a function call or special builtin while
|
||||
executing in a shell function will modify the value of a local variable
|
||||
with the same name for the duration of the function's execution;
|
||||
|
||||
2. Changes assignments preceding shell function calls or special builtins
|
||||
from within a shell function to no longer create or modify global variables
|
||||
in the presence of a local variable with the same name;
|
||||
|
||||
3. Assignment statements preceding a shell function call or special builtin
|
||||
at the global scope continue to modify the (global) calling environment,
|
||||
but are unaffected by assignments preceding function calls or special
|
||||
builtins within a function, as described in item 2. This is also similar
|
||||
to the behavior of a standalone assignment statement.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.0-patched/variables.c 2018-12-18 11:07:21.000000000 -0500
|
||||
--- variables.c 2019-08-22 10:53:44.000000000 -0400
|
||||
***************
|
||||
*** 4461,4467 ****
|
||||
|
||||
/* Take a variable from an assignment statement preceding a posix special
|
||||
! builtin (including `return') and create a global variable from it. This
|
||||
! is called from merge_temporary_env, which is only called when in posix
|
||||
! mode. */
|
||||
static void
|
||||
push_posix_temp_var (data)
|
||||
--- 4461,4467 ----
|
||||
|
||||
/* Take a variable from an assignment statement preceding a posix special
|
||||
! builtin (including `return') and create a variable from it as if a
|
||||
! standalone assignment statement had been performed. This is called from
|
||||
! merge_temporary_env, which is only called when in posix mode. */
|
||||
static void
|
||||
push_posix_temp_var (data)
|
||||
***************
|
||||
*** 4473,4486 ****
|
||||
var = (SHELL_VAR *)data;
|
||||
|
||||
! binding_table = global_variables->table;
|
||||
! if (binding_table == 0)
|
||||
! binding_table = global_variables->table = hash_create (VARIABLES_HASH_BUCKETS);
|
||||
!
|
||||
! v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE|ASS_NOLONGJMP);
|
||||
|
||||
/* global variables are no longer temporary and don't need propagating. */
|
||||
! var->attributes &= ~(att_tempvar|att_propagate);
|
||||
if (v)
|
||||
! v->attributes |= var->attributes;
|
||||
|
||||
if (find_special_var (var->name) >= 0)
|
||||
--- 4473,4497 ----
|
||||
var = (SHELL_VAR *)data;
|
||||
|
||||
! /* Just like do_assignment_internal(). This makes assignments preceding
|
||||
! special builtins act like standalone assignment statements when in
|
||||
! posix mode, satisfying the posix requirement that this affect the
|
||||
! "current execution environment." */
|
||||
! v = bind_variable (var->name, value_cell (var), ASS_FORCE|ASS_NOLONGJMP);
|
||||
!
|
||||
! /* If this modifies an existing local variable, v->context will be non-zero.
|
||||
! If it comes back with v->context == 0, we bound at the global context.
|
||||
! Set binding_table appropriately. It doesn't matter whether it's correct
|
||||
! if the variable is local, only that it's not global_variables->table */
|
||||
! binding_table = v->context ? shell_variables->table : global_variables->table;
|
||||
|
||||
/* global variables are no longer temporary and don't need propagating. */
|
||||
! if (binding_table == global_variables->table)
|
||||
! var->attributes &= ~(att_tempvar|att_propagate);
|
||||
!
|
||||
if (v)
|
||||
! {
|
||||
! v->attributes |= var->attributes;
|
||||
! v->attributes &= ~att_tempvar; /* not a temp var now */
|
||||
! }
|
||||
|
||||
if (find_special_var (var->name) >= 0)
|
||||
***************
|
||||
*** 4576,4587 ****
|
||||
{
|
||||
int i;
|
||||
|
||||
tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
|
||||
tempvar_list[tvlist_ind = 0] = 0;
|
||||
!
|
||||
! hash_flush (temporary_env, pushf);
|
||||
! hash_dispose (temporary_env);
|
||||
temporary_env = (HASH_TABLE *)NULL;
|
||||
|
||||
tempvar_list[tvlist_ind] = 0;
|
||||
|
||||
--- 4587,4601 ----
|
||||
{
|
||||
int i;
|
||||
+ HASH_TABLE *disposer;
|
||||
|
||||
tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
|
||||
tempvar_list[tvlist_ind = 0] = 0;
|
||||
!
|
||||
! disposer = temporary_env;
|
||||
temporary_env = (HASH_TABLE *)NULL;
|
||||
|
||||
+ hash_flush (disposer, pushf);
|
||||
+ hash_dispose (disposer);
|
||||
+
|
||||
tempvar_list[tvlist_ind] = 0;
|
||||
|
||||
*** ../bash-5.0-patched/tests/varenv.right 2018-12-17 15:39:48.000000000 -0500
|
||||
--- tests/varenv.right 2019-08-22 16:05:25.000000000 -0400
|
||||
***************
|
||||
*** 147,153 ****
|
||||
outside: declare -- var="one"
|
||||
inside: declare -x var="value"
|
||||
! outside: declare -x var="value"
|
||||
! inside: declare -- var="local"
|
||||
! outside: declare -x var="global"
|
||||
foo=<unset> environment foo=
|
||||
foo=foo environment foo=foo
|
||||
--- 147,153 ----
|
||||
outside: declare -- var="one"
|
||||
inside: declare -x var="value"
|
||||
! outside: declare -- var="outside"
|
||||
! inside: declare -x var="global"
|
||||
! outside: declare -- var="outside"
|
||||
foo=<unset> environment foo=
|
||||
foo=foo environment foo=foo
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 9
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 10
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
59
source/a/bash/bash-5.0-patches/bash50-011
Normal file
59
source/a/bash/bash-5.0-patches/bash50-011
Normal file
|
@ -0,0 +1,59 @@
|
|||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 5.0
|
||||
Patch-ID: bash50-011
|
||||
|
||||
Bug-Reported-by: Matt Whitlock
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL: https://savannah.gnu.org/support/?109671
|
||||
|
||||
Bug-Description:
|
||||
|
||||
The conditional command did not perform appropriate quoted null character
|
||||
removal on its arguments, causing syntax errors and attempts to stat
|
||||
invalid pathnames.
|
||||
|
||||
Patch (apply with `patch -p0'):
|
||||
|
||||
*** ../bash-5.0-patched/subst.c 2018-12-22 17:43:37.000000000 -0500
|
||||
--- subst.c 2019-04-14 13:25:41.000000000 -0400
|
||||
***************
|
||||
*** 3626,3630 ****
|
||||
SPECIAL is 2, this is an rhs argument for the =~ operator, and should
|
||||
be quoted appropriately for regcomp/regexec. The caller is responsible
|
||||
! for removing the backslashes if the unquoted word is needed later. */
|
||||
char *
|
||||
cond_expand_word (w, special)
|
||||
--- 3642,3648 ----
|
||||
SPECIAL is 2, this is an rhs argument for the =~ operator, and should
|
||||
be quoted appropriately for regcomp/regexec. The caller is responsible
|
||||
! for removing the backslashes if the unquoted word is needed later. In
|
||||
! any case, since we don't perform word splitting, we need to do quoted
|
||||
! null character removal. */
|
||||
char *
|
||||
cond_expand_word (w, special)
|
||||
***************
|
||||
*** 3647,3650 ****
|
||||
--- 3665,3670 ----
|
||||
if (special == 0) /* LHS */
|
||||
{
|
||||
+ if (l->word)
|
||||
+ word_list_remove_quoted_nulls (l);
|
||||
dequote_list (l);
|
||||
r = string_list (l);
|
||||
*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
|
||||
--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 10
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 11
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
|
@ -79,19 +79,8 @@ find . \
|
|||
# like to be yelled at.
|
||||
zcat $CWD/findutils.no.default.options.warnings.diff.gz | patch -p1 --verbose || exit 1
|
||||
|
||||
# Add patches from Fedora to finally make findutils-4.6.0 usable:
|
||||
zcat $CWD/patches/findutils-4.4.2-xautofs.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.5.13-warnings.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.5.15-no-locate.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-exec-args.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-fts-update.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-gnulib-fflush.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-gnulib-makedev.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-internal-noop.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-leaf-opt.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-man-exec.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-mbrtowc-tests.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/patches/findutils-4.6.0-test-lock.patch.gz | patch -p1 --verbose || exit 1
|
||||
# Don't include updatedb, locate, frcode:
|
||||
zcat $CWD/findutils.nolocate.diff.gz | patch -p1 --verbose || exit 1
|
||||
|
||||
autoreconf -vif
|
||||
|
||||
|
@ -104,6 +93,7 @@ CFLAGS="$SLKCFLAGS" \
|
|||
|
||||
make $NUMJOBS || make || exit 1
|
||||
make install DESTDIR=$PKG || exit 1
|
||||
make install-man DESTDIR=$PKG || exit 1
|
||||
|
||||
# Now there is only FTS find, but make the old symlink in case any scripts
|
||||
# out there are using it:
|
||||
|
|
|
@ -1,22 +1,82 @@
|
|||
--- ./Makefile.in.orig 2015-12-28 15:31:15.000000000 -0600
|
||||
+++ ./Makefile.in 2018-08-16 15:04:37.525329502 -0500
|
||||
@@ -1639,7 +1639,7 @@
|
||||
--- ./configure.ac.orig 2019-06-23 04:00:40.000000000 -0500
|
||||
+++ ./configure.ac 2019-08-30 13:22:48.133114947 -0500
|
||||
@@ -94,7 +94,6 @@
|
||||
|
||||
dnl for gnulib
|
||||
gl_EARLY
|
||||
-AC_PROG_LN_S
|
||||
AC_PROG_INSTALL
|
||||
AC_CHECK_TOOLS([AR], [ar])
|
||||
AC_CHECK_TOOLS([RANLIB], [ranlib], [:])
|
||||
@@ -309,8 +308,6 @@
|
||||
gl/Makefile
|
||||
gl/lib/Makefile
|
||||
lib/Makefile
|
||||
-locate/Makefile
|
||||
-locate/testsuite/Makefile
|
||||
m4/Makefile
|
||||
po/Makefile.in
|
||||
po/Makefile
|
||||
--- ./doc/find.texi.orig 2019-08-30 13:21:12.626110869 -0500
|
||||
+++ ./doc/find.texi 2019-08-30 13:22:56.395115300 -0500
|
||||
@@ -7,7 +7,6 @@
|
||||
@c %**end of header
|
||||
|
||||
@include version.texi
|
||||
-@include dblocation.texi
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
--- ./doc/Makefile.am.orig 2019-06-23 04:00:40.000000000 -0500
|
||||
+++ ./doc/Makefile.am 2019-08-30 13:21:04.629110527 -0500
|
||||
@@ -16,11 +16,9 @@
|
||||
|
||||
info_TEXINFOS = find.texi find-maint.texi
|
||||
find_TEXINFOS = perm.texi parse-datetime.texi regexprops.texi fdl.texi
|
||||
-BUILT_SOURCES = dblocation.texi
|
||||
-nodist_find_TEXINFOS = dblocation.texi
|
||||
find_maint_TEXINFOS = fdl.texi
|
||||
MOSTLYCLEANFILES = find.cps
|
||||
-CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz dblocation.texi \
|
||||
+CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz \
|
||||
find_mono.html findutils.texi_html_node.tar.gz \
|
||||
find-info.tar.gz find.texi find.texi.tar.gz \
|
||||
find.txt tmp-doc-install find_mono.html.gz
|
||||
@@ -72,10 +70,6 @@
|
||||
findutils.texi_html_node.tar.gz: find.html
|
||||
tar zcf $@ $<
|
||||
|
||||
-
|
||||
-dblocation.texi: ../locate/dblocation.texi
|
||||
- $(LN_S) ../locate/dblocation.texi $@
|
||||
-
|
||||
find-info.tar.gz:
|
||||
$(MKDIR_P) tmp-doc-install/info
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
--- ./Makefile.in.orig 2019-08-29 14:15:43.000000000 -0500
|
||||
+++ ./Makefile.in 2019-08-30 13:18:16.959103368 -0500
|
||||
@@ -1955,11 +1955,11 @@
|
||||
DISTCLEANFILES = tool-versions.txt
|
||||
|
||||
# "tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl tests build-aux lib find xargs locate doc po m4
|
||||
+SUBDIRS = gl tests build-aux lib find xargs doc po m4
|
||||
# "gnulib-tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl build-aux lib find xargs locate doc po m4 gnulib-tests
|
||||
+SUBDIRS = gl build-aux lib find xargs doc po m4 gnulib-tests
|
||||
ALL_RECURSIVE_TARGETS = check-root
|
||||
ACLOCAL_AMFLAGS = -I gl/m4 -I m4
|
||||
TESTFILE_SUFFIXES = .exp .xo .xe .xi
|
||||
all: config.h
|
||||
--- ./Makefile.am.orig 2015-12-28 15:10:23.000000000 -0600
|
||||
+++ ./Makefile.am 2018-08-16 15:04:25.998328424 -0500
|
||||
@@ -9,7 +9,7 @@
|
||||
-built_programs = find oldfind xargs frcode locate updatedb
|
||||
+built_programs = find oldfind xargs
|
||||
|
||||
# Indirections required so that we'll still be able to know the
|
||||
# complete list of our tests even if the user overrides TESTS
|
||||
--- ./Makefile.am.orig 2019-06-23 04:00:40.000000000 -0500
|
||||
+++ ./Makefile.am 2019-08-30 13:18:16.961103368 -0500
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
|
||||
# "tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl tests build-aux lib find xargs locate doc po m4
|
||||
+SUBDIRS = gl tests build-aux lib find xargs doc po m4
|
||||
# "gnulib-tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl build-aux lib find xargs locate doc po m4 gnulib-tests
|
||||
+SUBDIRS = gl build-aux lib find xargs doc po m4 gnulib-tests
|
||||
|
||||
ACLOCAL_AMFLAGS = -I gl/m4 -I m4
|
||||
ALL_RECURSIVE_TARGETS =
|
||||
|
||||
|
|
|
@ -1,132 +0,0 @@
|
|||
From 17e470dc1acca4824b70328d733d5f99c12d0d65 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 11 May 2011 16:46:45 +0200
|
||||
Subject: [PATCH 3/4] findutils-4.4.2-xautofs.patch
|
||||
|
||||
---
|
||||
doc/find.texi | 4 ++++
|
||||
find/defs.h | 3 +++
|
||||
find/find.1 | 3 +++
|
||||
find/ftsfind.c | 6 ++++++
|
||||
find/parser.c | 11 ++++++++++-
|
||||
find/util.c | 1 +
|
||||
6 files changed, 27 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/doc/find.texi b/doc/find.texi
|
||||
index c584298..9731b71 100644
|
||||
--- a/doc/find.texi
|
||||
+++ b/doc/find.texi
|
||||
@@ -1446,6 +1446,10 @@ them.
|
||||
There are two ways to avoid searching certain filesystems. One way is
|
||||
to tell @code{find} to only search one filesystem:
|
||||
|
||||
+@deffn Option -xautofs
|
||||
+Don't descend directories on autofs filesystems.
|
||||
+@end deffn
|
||||
+
|
||||
@deffn Option -xdev
|
||||
@deffnx Option -mount
|
||||
Don't descend directories on other filesystems. These options are
|
||||
diff --git a/find/defs.h b/find/defs.h
|
||||
index 11d1d00..f95ce72 100644
|
||||
--- a/find/defs.h
|
||||
+++ b/find/defs.h
|
||||
@@ -557,6 +557,9 @@ struct options
|
||||
/* If true, don't cross filesystem boundaries. */
|
||||
bool stay_on_filesystem;
|
||||
|
||||
+ /* If true, don't descend directories on autofs filesystems. */
|
||||
+ bool bypass_autofs;
|
||||
+
|
||||
/* If true, we ignore the problem where we find that a directory entry
|
||||
* no longer exists by the time we get around to processing it.
|
||||
*/
|
||||
diff --git a/find/find.1 b/find/find.1
|
||||
index e851f82..a4799ff 100644
|
||||
--- a/find/find.1
|
||||
+++ b/find/find.1
|
||||
@@ -520,6 +520,9 @@ to stat them; this gives a significant increase in search speed.
|
||||
.IP "\-version, \-\-version"
|
||||
Print the \fBfind\fR version number and exit.
|
||||
|
||||
+.IP \-xautofs
|
||||
+Don't descend directories on autofs filesystems.
|
||||
+
|
||||
.IP \-xdev
|
||||
Don't descend directories on other filesystems.
|
||||
|
||||
diff --git a/find/ftsfind.c b/find/ftsfind.c
|
||||
index 9fdb8ef..bd7cc37 100644
|
||||
--- a/find/ftsfind.c
|
||||
+++ b/find/ftsfind.c
|
||||
@@ -485,6 +485,12 @@ consider_visiting (FTS *p, FTSENT *ent)
|
||||
}
|
||||
}
|
||||
|
||||
+ if (options.bypass_autofs &&
|
||||
+ 0 == strcmp ("autofs", filesystem_type (&statbuf, ent->fts_name)))
|
||||
+ {
|
||||
+ fts_set(p, ent, FTS_SKIP); /* descend no further */
|
||||
+ }
|
||||
+
|
||||
if ( (ent->fts_info == FTS_D) && !options.do_dir_first )
|
||||
{
|
||||
/* this is the preorder visit, but user said -depth */
|
||||
diff --git a/find/parser.c b/find/parser.c
|
||||
index 52a1ef6..995aec3 100644
|
||||
--- a/find/parser.c
|
||||
+++ b/find/parser.c
|
||||
@@ -146,6 +146,7 @@ static bool parse_user (const struct parser_table*, char *argv[], int *
|
||||
static bool parse_version (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_wholename (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_xdev (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
+static bool parse_xautofs (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_ignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_noignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_warn (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
@@ -306,6 +307,7 @@ static struct parser_table const parse_table[] =
|
||||
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but anyway -path will soon be in POSIX */
|
||||
{ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */
|
||||
PARSE_OPTION ("xdev", xdev), /* POSIX */
|
||||
+ PARSE_OPTION ("xautofs", xautofs),
|
||||
PARSE_TEST ("xtype", xtype), /* GNU */
|
||||
#ifdef UNIMPLEMENTED_UNIX
|
||||
/* It's pretty ugly for find to know about archive formats.
|
||||
@@ -1239,7 +1241,7 @@ operators (decreasing precedence; -and is implicit where no others are given):\n
|
||||
positional options (always true): -daystart -follow -regextype\n\n\
|
||||
normal options (always true, specified before other expressions):\n\
|
||||
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf\n\
|
||||
- --version -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
||||
+ --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
||||
puts (_("\
|
||||
tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N\n\
|
||||
-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME\n\
|
||||
@@ -2683,6 +2685,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
}
|
||||
|
||||
static bool
|
||||
+parse_xautofs (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
+{
|
||||
+ options.bypass_autofs = true;
|
||||
+ return parse_noop (entry, argv, arg_ptr);
|
||||
+}
|
||||
+
|
||||
+static bool
|
||||
parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
{
|
||||
options.ignore_readdir_race = true;
|
||||
diff --git a/find/util.c b/find/util.c
|
||||
index 8577396..4d45f84 100644
|
||||
--- a/find/util.c
|
||||
+++ b/find/util.c
|
||||
@@ -1017,6 +1017,7 @@ set_option_defaults (struct options *p)
|
||||
|
||||
p->full_days = false;
|
||||
p->stay_on_filesystem = false;
|
||||
+ p->bypass_autofs = false;
|
||||
p->ignore_readdir_race = false;
|
||||
|
||||
if (p->posixly_correct)
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
From 690d4bd9f29a805999a3ce4651dac9585ccc9917 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 11 May 2011 16:46:57 +0200
|
||||
Subject: [PATCH 1/2] findutils-4.5.7-warnings.patch
|
||||
|
||||
---
|
||||
xargs/xargs.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xargs/xargs.c b/xargs/xargs.c
|
||||
index 5e373f2..c0a8676 100644
|
||||
--- a/xargs/xargs.c
|
||||
+++ b/xargs/xargs.c
|
||||
@@ -1289,7 +1289,8 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char *
|
||||
* utility if we run it, for POSIX compliance on the
|
||||
* handling of exit values.
|
||||
*/
|
||||
- write (fd[1], &errno, sizeof (int));
|
||||
+ int sink = write (fd[1], &errno, sizeof (int));
|
||||
+ (void) sink;
|
||||
}
|
||||
|
||||
close (fd[1]);
|
||||
--
|
||||
1.7.1
|
||||
|
||||
|
||||
From c5654b9ca5f50daa1ca406ebd7b4546f24d00db6 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Mon, 23 Sep 2013 15:04:03 +0200
|
||||
Subject: [PATCH 2/2] parser: silence a [-Wmaybe-uninitialized] GCC warning
|
||||
|
||||
... caused by a missing model of error()
|
||||
---
|
||||
find/parser.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/find/parser.c b/find/parser.c
|
||||
index 89d8bcf..8c399d7 100644
|
||||
--- a/find/parser.c
|
||||
+++ b/find/parser.c
|
||||
@@ -2723,7 +2723,7 @@ insert_type (char **argv, int *arg_ptr,
|
||||
const struct parser_table *entry,
|
||||
PRED_FUNC which_pred)
|
||||
{
|
||||
- mode_t type_cell;
|
||||
+ mode_t type_cell /* to silence GCC warning */ = 0;
|
||||
struct predicate *our_pred;
|
||||
float rate = 0.5;
|
||||
const char *typeletter;
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
From 3e5e311d23ac0a5bd5930ddb4094f7555b886329 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Sat, 19 Dec 2015 22:56:40 +0100
|
||||
Subject: [PATCH 1/2] Revert "Don't include dblocation.texi from original spot,
|
||||
symlink it."
|
||||
|
||||
This reverts commit f59d88e456553dfe0b5185caf75e4041285fd595.
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
doc/Makefile.am | 8 +-------
|
||||
doc/find.texi | 2 +-
|
||||
3 files changed, 3 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7962719..ce0e768 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -70,7 +70,7 @@ AC_PROG_CPP
|
||||
|
||||
dnl for gnulib
|
||||
gl_EARLY
|
||||
-AC_PROG_LN_S
|
||||
+
|
||||
AC_PROG_INSTALL
|
||||
AC_CHECK_TOOLS([AR], [ar])
|
||||
AC_CHECK_TOOLS([RANLIB], [ranlib], [:])
|
||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||
index f6f7443..6fbf57b 100644
|
||||
--- a/doc/Makefile.am
|
||||
+++ b/doc/Makefile.am
|
||||
@@ -16,11 +16,9 @@ AM_CFLAGS = $(WARN_CFLAGS)
|
||||
|
||||
info_TEXINFOS = find.texi find-maint.texi
|
||||
find_TEXINFOS = perm.texi parse-datetime.texi regexprops.texi fdl.texi
|
||||
-BUILT_SOURCES = dblocation.texi
|
||||
-nodist_find_TEXINFOS = dblocation.texi
|
||||
find_maint_TEXINFOS = fdl.texi
|
||||
MOSTLYCLEANFILES = find.cps
|
||||
-CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz dblocation.texi
|
||||
+CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz
|
||||
|
||||
MAKEINFOTXT = $(MAKEINFO) --plaintext
|
||||
|
||||
@@ -69,7 +67,3 @@ find_mono.html: find.texi
|
||||
# for "make all" or "make install" (or even "make check").
|
||||
findutils.texi_html_node.tar.gz: find.html
|
||||
tar zcf $@ $<
|
||||
-
|
||||
-
|
||||
-dblocation.texi: ../locate/dblocation.texi
|
||||
- $(LN_S) ../locate/dblocation.texi $@
|
||||
diff --git a/doc/find.texi b/doc/find.texi
|
||||
index a83a645..c2714dd 100644
|
||||
--- a/doc/find.texi
|
||||
+++ b/doc/find.texi
|
||||
@@ -7,7 +7,7 @@
|
||||
@c %**end of header
|
||||
|
||||
@include version.texi
|
||||
-@include dblocation.texi
|
||||
+@include ../locate/dblocation.texi
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From d5473caa86f689ebcadacc593f5a71781c99e829 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 11 May 2011 16:46:13 +0200
|
||||
Subject: [PATCH 2/2] findutils-4.4.0-no-locate.patch
|
||||
|
||||
---
|
||||
Makefile.am | 2 +-
|
||||
configure.ac | 2 --
|
||||
doc/find.texi | 24 ++++++++----------------
|
||||
3 files changed, 9 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index af82d54..6ad453b 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -9,7 +9,7 @@ DISTCLEANFILES = tool-versions.txt
|
||||
|
||||
|
||||
# "tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl tests build-aux lib find xargs locate doc po m4
|
||||
+SUBDIRS = gl tests build-aux lib find xargs doc po m4
|
||||
|
||||
ACLOCAL_AMFLAGS = -I gl/m4 -I m4
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ce0e768..521e665 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -248,8 +248,6 @@ find/testsuite/Makefile
|
||||
gl/Makefile
|
||||
gl/lib/Makefile
|
||||
lib/Makefile
|
||||
-locate/Makefile
|
||||
-locate/testsuite/Makefile
|
||||
m4/Makefile
|
||||
po/Makefile.in
|
||||
po/Makefile
|
||||
diff --git a/doc/find.texi b/doc/find.texi
|
||||
index c2714dd..01367a4 100644
|
||||
--- a/doc/find.texi
|
||||
+++ b/doc/find.texi
|
||||
@@ -7,7 +7,6 @@
|
||||
@c %**end of header
|
||||
|
||||
@include version.texi
|
||||
-@include ../locate/dblocation.texi
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
@@ -571,8 +570,7 @@ the databases are updated, and the directories for which they contain
|
||||
entries.
|
||||
|
||||
Here is how to select which file name databases @code{locate}
|
||||
-searches. The default is system-dependent. At the time this document
|
||||
-was generated, the default was @file{@value{LOCATE_DB}}.
|
||||
+searches. The default is system-dependent.
|
||||
|
||||
@table @code
|
||||
@item --database=@var{path}
|
||||
@@ -2892,13 +2890,9 @@ thrashing the network.
|
||||
directories are indexed by each database file.
|
||||
|
||||
The default location for the locate database depends on how findutils
|
||||
-is built, but the findutils installation accompanying this manual uses
|
||||
-the default location @file{@value{LOCATE_DB}}.
|
||||
-
|
||||
-If no database exists at @file{@value{LOCATE_DB}} but the user did not
|
||||
-specify where to look (by using @samp{-d} or setting
|
||||
-@code{LOCATE_PATH}), then @code{locate} will also check for a
|
||||
-``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
||||
+is built. If user did not specify where to look (by using @samp{-d}
|
||||
+or setting @code{LOCATE_PATH}), then @code{locate} will also check for
|
||||
+a ``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
||||
|
||||
@node Database Formats
|
||||
@section Database Formats
|
||||
@@ -3438,8 +3432,7 @@ present.
|
||||
|
||||
@item --database=@var{path}
|
||||
@itemx -d @var{path}
|
||||
-Instead of searching the default @code{locate} database
|
||||
-@file{@value{LOCATE_DB}}, @code{locate} searches the file
|
||||
+@code{locate} searches the file
|
||||
name databases in @var{path}, which is a colon-separated list of
|
||||
database file names. You can also use the environment variable
|
||||
@code{LOCATE_PATH} to set the list of database files to search. The
|
||||
@@ -3614,8 +3607,7 @@ The environment variable @code{PRUNEFS} also sets this value. Default
|
||||
is @file{nfs NFS proc}.
|
||||
|
||||
@item --output=@var{dbfile}
|
||||
-The database file to build. The default is system-dependent, but
|
||||
-when this document was formatted it was @file{@value{LOCATE_DB}}.
|
||||
+The database file to build.
|
||||
|
||||
@item --localuser=@var{user}
|
||||
The user to search the non-network directories as, using @code{su}.
|
||||
@@ -5635,7 +5627,7 @@ why @code{xargs} is confused by your operating system).
|
||||
@section Error Messages From @code{locate}
|
||||
|
||||
@table @samp
|
||||
-@item warning: database @file{@value{LOCATE_DB}} is more than 8 days old
|
||||
+@item warning: database @file{LOCATE_DB} is more than 8 days old
|
||||
The @code{locate} program relies on a database which is periodically
|
||||
built by the @code{updatedb} program. That hasn't happened in a long
|
||||
time. To fix this problem, run @code{updatedb} manually. This can
|
||||
@@ -5643,7 +5635,7 @@ often happen on systems that are generally not left on, so the
|
||||
periodic ``cron'' task which normally does this doesn't get a chance
|
||||
to run.
|
||||
|
||||
-@item locate database @file{@value{LOCATE_DB}} is corrupt or invalid
|
||||
+@item locate database @file{LOCATE_DB} is corrupt or invalid
|
||||
This should not happen. Re-run @code{updatedb}. If that works, but
|
||||
@code{locate} still produces this error, run @code{locate --version}
|
||||
and @code{updatedb --version}. These should produce the same output.
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,226 +0,0 @@
|
|||
From 443166adaf1c8b91e16a716f3b13f47493b895cc Mon Sep 17 00:00:00 2001
|
||||
From: Bernhard Voelker <mail@bernhard-voelker.de>
|
||||
Date: Tue, 31 May 2016 10:38:52 +0200
|
||||
Subject: [PATCH] Fix bug #48030: find: -exec + does not pass all arguments in
|
||||
certain cases
|
||||
|
||||
When the -exec arguments buffer (usually 128k) is full and the given
|
||||
command has been executed with all that arguments, find(1) missed to
|
||||
execute the command yet another time if only 1 another file would have
|
||||
to be processed.
|
||||
Both find(1), i.e., nowadays FTS-version, and oldfind are affected.
|
||||
This bug was present since the implementation of '-exec +' in 2005,
|
||||
see commit FINDUTILS_4_2_11-1-25-gf0a6ac6.
|
||||
|
||||
* lib/buildcmd.c (bc_push_arg): Move the assignment to set 'state->todo'
|
||||
to 1 down after the immediate execution which resets that flag.
|
||||
* find/testsuite/sv-48030-exec-plus-bug.sh: Add a test.
|
||||
* find/testsuite/Makefile.am (test_shell_progs): Reference the test.
|
||||
* NEWS (Bug Fixes): Mention the fix.
|
||||
|
||||
Reported by Joe Philip Ninan <indiajoe@gmail.com> in
|
||||
https://savannah.gnu.org/bugs/?48030
|
||||
|
||||
Upstream-commit: 8cdc9767e305c9566f537af9d1acf71d1bc6ee8e
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
find/testsuite/Makefile.am | 3 +-
|
||||
find/testsuite/sv-48030-exec-plus-bug.sh | 143 +++++++++++++++++++++++++++++++
|
||||
lib/buildcmd.c | 10 +--
|
||||
3 files changed, 150 insertions(+), 6 deletions(-)
|
||||
create mode 100644 find/testsuite/sv-48030-exec-plus-bug.sh
|
||||
|
||||
diff --git a/find/testsuite/Makefile.am b/find/testsuite/Makefile.am
|
||||
index c1369c3..ab5dbe8 100644
|
||||
--- a/find/testsuite/Makefile.am
|
||||
+++ b/find/testsuite/Makefile.am
|
||||
@@ -258,7 +258,8 @@ test_escapechars.sh \
|
||||
test_escape_c.sh \
|
||||
test_inode.sh \
|
||||
sv-34079.sh \
|
||||
-sv-34976-execdir-fd-leak.sh
|
||||
+sv-34976-execdir-fd-leak.sh \
|
||||
+sv-48030-exec-plus-bug.sh
|
||||
|
||||
EXTRA_DIST = $(EXTRA_DIST_EXP) $(EXTRA_DIST_XO) $(EXTRA_DIST_GOLDEN) \
|
||||
$(test_shell_progs) binary_locations.sh checklists.py
|
||||
diff --git a/find/testsuite/sv-48030-exec-plus-bug.sh b/find/testsuite/sv-48030-exec-plus-bug.sh
|
||||
new file mode 100755
|
||||
index 0000000..4dbf149
|
||||
--- /dev/null
|
||||
+++ b/find/testsuite/sv-48030-exec-plus-bug.sh
|
||||
@@ -0,0 +1,143 @@
|
||||
+#! /bin/sh
|
||||
+# Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
+#
|
||||
+
|
||||
+# This test verifies that find invokes the given command for the
|
||||
+# multiple-argument sytax '-exec CMD {} +'. Between FINDUTILS-4.2.12
|
||||
+# and v4.6.0, find(1) would have failed to execute CMD another time
|
||||
+# if there was only one last single file argument.
|
||||
+
|
||||
+testname="$(basename $0)"
|
||||
+
|
||||
+. "${srcdir}"/binary_locations.sh
|
||||
+
|
||||
+die() {
|
||||
+ echo "$@" >&2
|
||||
+ exit 1
|
||||
+}
|
||||
+
|
||||
+# This is used to simplify checking of the return value
|
||||
+# which is useful when ensuring a command fails as desired.
|
||||
+# I.e., just doing `command ... &&fail=1` will not catch
|
||||
+# a segfault in command for example. With this helper you
|
||||
+# instead check an explicit exit code like
|
||||
+# returns_ 1 command ... || fail
|
||||
+returns_ () {
|
||||
+ # Disable tracing so it doesn't interfere with stderr of the wrapped command
|
||||
+ { set +x; } 2>/dev/null
|
||||
+
|
||||
+ local exp_exit="$1"
|
||||
+ shift
|
||||
+ "$@"
|
||||
+ test $? -eq $exp_exit && ret_=0 || ret_=1
|
||||
+
|
||||
+ set -x
|
||||
+ { return $ret_; } 2>/dev/null
|
||||
+}
|
||||
+
|
||||
+# Define the nicest compare available (borrowed from gnulib).
|
||||
+if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
|
||||
+ && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then
|
||||
+ # diff accepts the -u option and does not (like AIX 7 'diff') produce an
|
||||
+ # extra space on column 1 of every content line.
|
||||
+ if test -z "$diff_out_"; then
|
||||
+ compare () { diff -u "$@"; }
|
||||
+ else
|
||||
+ compare ()
|
||||
+ {
|
||||
+ if diff -u "$@" > diff.out; then
|
||||
+ # No differences were found, but Solaris 'diff' produces output
|
||||
+ # "No differences encountered". Hide this output.
|
||||
+ rm -f diff.out
|
||||
+ true
|
||||
+ else
|
||||
+ cat diff.out
|
||||
+ rm -f diff.out
|
||||
+ false
|
||||
+ fi
|
||||
+ }
|
||||
+ fi
|
||||
+elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
|
||||
+ if test -z "$diff_out_"; then
|
||||
+ compare () { diff -c "$@"; }
|
||||
+ else
|
||||
+ compare ()
|
||||
+ {
|
||||
+ if diff -c "$@" > diff.out; then
|
||||
+ # No differences were found, but AIX and HP-UX 'diff' produce output
|
||||
+ # "No differences encountered" or "There are no differences between the
|
||||
+ # files.". Hide this output.
|
||||
+ rm -f diff.out
|
||||
+ true
|
||||
+ else
|
||||
+ cat diff.out
|
||||
+ rm -f diff.out
|
||||
+ false
|
||||
+ fi
|
||||
+ }
|
||||
+ fi
|
||||
+elif cmp -s /dev/null /dev/null 2>/dev/null; then
|
||||
+ compare () { cmp -s "$@"; }
|
||||
+else
|
||||
+ compare () { cmp "$@"; }
|
||||
+fi
|
||||
+
|
||||
+DIR='RashuBug'
|
||||
+# Name of the CMD to execute: the file name must be 6 characters long
|
||||
+# (to trigger the bug in combination with the test files).
|
||||
+CMD='tstcmd'
|
||||
+
|
||||
+# Create test files.
|
||||
+make_test_data() {
|
||||
+ # Create the CMD script and check that it works.
|
||||
+ mkdir "$DIR" 'bin' \
|
||||
+ && echo 'printf "%s\n" "$@"' > "bin/$CMD" \
|
||||
+ && chmod +x "bin/$CMD" \
|
||||
+ && PATH="$PWD/bin:$PATH" \
|
||||
+ && [ $( "${ftsfind}" bin -maxdepth 0 -exec "$CMD" '{}' + ) = 'bin' ] \
|
||||
+ || return 1
|
||||
+
|
||||
+ # Create expected output file - also used for creating the test data.
|
||||
+ { seq -f "${DIR}/abcdefghijklmnopqrstuv%04g" 901 &&
|
||||
+ seq -f "${DIR}/abcdefghijklmnopqrstu%04g" 902 3719
|
||||
+ } > exp2 \
|
||||
+ && LC_ALL=C sort exp2 > exp \
|
||||
+ && rm exp2 \
|
||||
+ || return 1
|
||||
+
|
||||
+ # Create test files, and check if test data has been created correctly.
|
||||
+ xargs touch < exp \
|
||||
+ && [ -f "${DIR}/abcdefghijklmnopqrstu3719" ] \
|
||||
+ && [ 3719 = $( "${ftsfind}" "$DIR" -type f | wc -l ) ] \
|
||||
+ || return 1
|
||||
+}
|
||||
+
|
||||
+set -x
|
||||
+tmpdir="$(mktemp -d)" \
|
||||
+ && cd "$tmpdir" \
|
||||
+ && make_test_data "${tmpdir}" \
|
||||
+ || die "FAIL: failed to set up the test in ${tmpdir}"
|
||||
+
|
||||
+fail=0
|
||||
+for exe in "${ftsfind}" "${oldfind}"; do
|
||||
+ "$exe" "$DIR" -type f -exec "$CMD" '{}' + > out || fail=1
|
||||
+ LC_ALL=C sort out > out2 || fail=1
|
||||
+ compare exp out2 || fail=1
|
||||
+done
|
||||
+
|
||||
+cd ..
|
||||
+rm -rf "${tmpdir}" || exit 1
|
||||
+exit $fail
|
||||
diff --git a/lib/buildcmd.c b/lib/buildcmd.c
|
||||
index a58f67e..27e9ce5 100644
|
||||
--- a/lib/buildcmd.c
|
||||
+++ b/lib/buildcmd.c
|
||||
@@ -356,11 +356,6 @@ bc_push_arg (struct buildcmd_control *ctl,
|
||||
|
||||
assert (arg != NULL);
|
||||
|
||||
- if (!initial_args)
|
||||
- {
|
||||
- state->todo = 1;
|
||||
- }
|
||||
-
|
||||
if (!terminate)
|
||||
{
|
||||
if (state->cmd_argv_chars + len + pfxlen > ctl->arg_max)
|
||||
@@ -380,6 +375,11 @@ bc_push_arg (struct buildcmd_control *ctl,
|
||||
bc_do_exec (ctl, state);
|
||||
}
|
||||
|
||||
+ if (!initial_args)
|
||||
+ {
|
||||
+ state->todo = 1;
|
||||
+ }
|
||||
+
|
||||
if (state->cmd_argc >= state->cmd_argv_alloc)
|
||||
{
|
||||
/* XXX: we could use extendbuf() here. */
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -1,990 +0,0 @@
|
|||
From f3337786e55909538aacfd7c29b1cf58ff444fbf Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Mon, 12 Feb 2018 12:45:36 +0100
|
||||
Subject: [PATCH 1/4] import gnulib's FTS module from upstream commit 281b825e
|
||||
|
||||
---
|
||||
gl/lib/fts.c | 424 +++++++++++++++++++++++++++++-----------------------------
|
||||
gl/lib/fts_.h | 10 +-
|
||||
2 files changed, 221 insertions(+), 213 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index c91d7a1..bfa73e3 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Traverse a file hierarchy.
|
||||
|
||||
- Copyright (C) 2004-2015 Free Software Foundation, Inc.
|
||||
+ Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
|
||||
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
|
||||
@@ -13,7 +13,7 @@
|
||||
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, see <http://www.gnu.org/licenses/>. */
|
||||
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990, 1993, 1994
|
||||
@@ -46,9 +46,9 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
-#if defined(LIBC_SCCS) && !defined(lint)
|
||||
+#if defined LIBC_SCCS && !defined GCC_LINT && !defined lint
|
||||
static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
|
||||
-#endif /* LIBC_SCCS and not lint */
|
||||
+#endif
|
||||
|
||||
#include "fts_.h"
|
||||
|
||||
@@ -71,11 +71,7 @@ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
|
||||
|
||||
#if ! _LIBC
|
||||
# include "fcntl--.h"
|
||||
-# include "dirent--.h"
|
||||
-# include "unistd--.h"
|
||||
-/* FIXME - use fcntl(F_DUPFD_CLOEXEC)/openat(O_CLOEXEC) once they are
|
||||
- supported. */
|
||||
-# include "cloexec.h"
|
||||
+# include "flexmember.h"
|
||||
# include "openat.h"
|
||||
# include "same-inode.h"
|
||||
#endif
|
||||
@@ -202,6 +198,14 @@ enum Fts_stat
|
||||
while (false)
|
||||
#endif
|
||||
|
||||
+#ifndef FALLTHROUGH
|
||||
+# if __GNUC__ < 7
|
||||
+# define FALLTHROUGH ((void) 0)
|
||||
+# else
|
||||
+# define FALLTHROUGH __attribute__ ((__fallthrough__))
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
static FTSENT *fts_alloc (FTS *, const char *, size_t) internal_function;
|
||||
static FTSENT *fts_build (FTS *, int) internal_function;
|
||||
static void fts_lfree (FTSENT *) internal_function;
|
||||
@@ -296,14 +300,13 @@ static DIR *
|
||||
internal_function
|
||||
opendirat (int fd, char const *dir, int extra_flags, int *pdir_fd)
|
||||
{
|
||||
- int new_fd = openat (fd, dir,
|
||||
- (O_RDONLY | O_DIRECTORY | O_NOCTTY | O_NONBLOCK
|
||||
- | extra_flags));
|
||||
+ int open_flags = (O_RDONLY | O_CLOEXEC | O_DIRECTORY | O_NOCTTY
|
||||
+ | O_NONBLOCK | extra_flags);
|
||||
+ int new_fd = openat (fd, dir, open_flags);
|
||||
DIR *dirp;
|
||||
|
||||
if (new_fd < 0)
|
||||
return NULL;
|
||||
- set_cloexec_flag (new_fd, true);
|
||||
dirp = fdopendir (new_fd);
|
||||
if (dirp)
|
||||
*pdir_fd = new_fd;
|
||||
@@ -366,15 +369,13 @@ static int
|
||||
internal_function
|
||||
diropen (FTS const *sp, char const *dir)
|
||||
{
|
||||
- int open_flags = (O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK
|
||||
+ int open_flags = (O_SEARCH | O_CLOEXEC | O_DIRECTORY | O_NOCTTY | O_NONBLOCK
|
||||
| (ISSET (FTS_PHYSICAL) ? O_NOFOLLOW : 0)
|
||||
| (ISSET (FTS_NOATIME) ? O_NOATIME : 0));
|
||||
|
||||
int fd = (ISSET (FTS_CWDFD)
|
||||
? openat (sp->fts_cwd_fd, dir, open_flags)
|
||||
: open (dir, open_flags));
|
||||
- if (0 <= fd)
|
||||
- set_cloexec_flag (fd, true);
|
||||
return fd;
|
||||
}
|
||||
|
||||
@@ -470,6 +471,7 @@ fts_open (char * const *argv,
|
||||
if ((parent = fts_alloc(sp, "", 0)) == NULL)
|
||||
goto mem2;
|
||||
parent->fts_level = FTS_ROOTPARENTLEVEL;
|
||||
+ parent->fts_n_dirs_remaining = -1;
|
||||
}
|
||||
|
||||
/* The classic fts implementation would call fts_stat with
|
||||
@@ -656,39 +658,139 @@ fts_close (FTS *sp)
|
||||
return (0);
|
||||
}
|
||||
|
||||
+/* Minimum link count of a traditional Unix directory. When leaf
|
||||
+ optimization is OK and MIN_DIR_NLINK <= st_nlink, then st_nlink is
|
||||
+ an upper bound on the number of subdirectories (counting "." and
|
||||
+ ".."). */
|
||||
+enum { MIN_DIR_NLINK = 2 };
|
||||
+
|
||||
+/* Whether leaf optimization is OK for a directory. */
|
||||
+enum leaf_optimization
|
||||
+ {
|
||||
+ /* st_nlink is not reliable for this directory's subdirectories. */
|
||||
+ NO_LEAF_OPTIMIZATION,
|
||||
+
|
||||
+ /* Leaf optimization is OK, but is not useful for avoiding stat calls. */
|
||||
+ OK_LEAF_OPTIMIZATION,
|
||||
+
|
||||
+ /* Leaf optimization is not only OK: it is useful for avoiding
|
||||
+ stat calls, because dirent.d_type does not work. */
|
||||
+ NOSTAT_LEAF_OPTIMIZATION
|
||||
+ };
|
||||
+
|
||||
#if defined __linux__ \
|
||||
&& HAVE_SYS_VFS_H && HAVE_FSTATFS && HAVE_STRUCT_STATFS_F_TYPE
|
||||
|
||||
# include <sys/vfs.h>
|
||||
|
||||
/* Linux-specific constants from coreutils' src/fs.h */
|
||||
-# define S_MAGIC_TMPFS 0x1021994
|
||||
+# define S_MAGIC_AFS 0x5346414F
|
||||
# define S_MAGIC_NFS 0x6969
|
||||
+# define S_MAGIC_PROC 0x9FA0
|
||||
# define S_MAGIC_REISERFS 0x52654973
|
||||
+# define S_MAGIC_TMPFS 0x1021994
|
||||
# define S_MAGIC_XFS 0x58465342
|
||||
-# define S_MAGIC_PROC 0x9FA0
|
||||
|
||||
-/* Return false if it is easy to determine the file system type of
|
||||
- the directory on which DIR_FD is open, and sorting dirents on
|
||||
- inode numbers is known not to improve traversal performance with
|
||||
- that type of file system. Otherwise, return true. */
|
||||
+# ifdef HAVE___FSWORD_T
|
||||
+typedef __fsword_t fsword;
|
||||
+# else
|
||||
+typedef long int fsword;
|
||||
+# endif
|
||||
+
|
||||
+/* Map a stat.st_dev number to a file system type number f_ftype. */
|
||||
+struct dev_type
|
||||
+{
|
||||
+ dev_t st_dev;
|
||||
+ fsword f_type;
|
||||
+};
|
||||
+
|
||||
+/* Use a tiny initial size. If a traversal encounters more than
|
||||
+ a few devices, the cost of growing/rehashing this table will be
|
||||
+ rendered negligible by the number of inodes processed. */
|
||||
+enum { DEV_TYPE_HT_INITIAL_SIZE = 13 };
|
||||
+
|
||||
+static size_t
|
||||
+dev_type_hash (void const *x, size_t table_size)
|
||||
+{
|
||||
+ struct dev_type const *ax = x;
|
||||
+ uintmax_t dev = ax->st_dev;
|
||||
+ return dev % table_size;
|
||||
+}
|
||||
+
|
||||
static bool
|
||||
-dirent_inode_sort_may_be_useful (int dir_fd)
|
||||
+dev_type_compare (void const *x, void const *y)
|
||||
+{
|
||||
+ struct dev_type const *ax = x;
|
||||
+ struct dev_type const *ay = y;
|
||||
+ return ax->st_dev == ay->st_dev;
|
||||
+}
|
||||
+
|
||||
+/* Return the file system type of P, or 0 if not known.
|
||||
+ Try to cache known values. */
|
||||
+
|
||||
+static fsword
|
||||
+filesystem_type (FTSENT const *p)
|
||||
+{
|
||||
+ FTS *sp = p->fts_fts;
|
||||
+ Hash_table *h = sp->fts_leaf_optimization_works_ht;
|
||||
+ struct dev_type *ent;
|
||||
+ struct statfs fs_buf;
|
||||
+
|
||||
+ /* If we're not in CWDFD mode, don't bother with this optimization,
|
||||
+ since the caller is not serious about performance. */
|
||||
+ if (!ISSET (FTS_CWDFD))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (! h)
|
||||
+ h = sp->fts_leaf_optimization_works_ht
|
||||
+ = hash_initialize (DEV_TYPE_HT_INITIAL_SIZE, NULL, dev_type_hash,
|
||||
+ dev_type_compare, free);
|
||||
+ if (h)
|
||||
+ {
|
||||
+ struct dev_type tmp;
|
||||
+ tmp.st_dev = p->fts_statp->st_dev;
|
||||
+ ent = hash_lookup (h, &tmp);
|
||||
+ if (ent)
|
||||
+ return ent->f_type;
|
||||
+ }
|
||||
+
|
||||
+ /* Look-up failed. Query directly and cache the result. */
|
||||
+ if (fstatfs (p->fts_fts->fts_cwd_fd, &fs_buf) != 0)
|
||||
+ return 0;
|
||||
+
|
||||
+ if (h)
|
||||
+ {
|
||||
+ struct dev_type *t2 = malloc (sizeof *t2);
|
||||
+ if (t2)
|
||||
+ {
|
||||
+ t2->st_dev = p->fts_statp->st_dev;
|
||||
+ t2->f_type = fs_buf.f_type;
|
||||
+
|
||||
+ ent = hash_insert (h, t2);
|
||||
+ if (ent)
|
||||
+ fts_assert (ent == t2);
|
||||
+ else
|
||||
+ free (t2);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return fs_buf.f_type;
|
||||
+}
|
||||
+
|
||||
+/* Return false if it is easy to determine the file system type of the
|
||||
+ directory P, and sorting dirents on inode numbers is known not to
|
||||
+ improve traversal performance with that type of file system.
|
||||
+ Otherwise, return true. */
|
||||
+static bool
|
||||
+dirent_inode_sort_may_be_useful (FTSENT const *p)
|
||||
{
|
||||
/* Skip the sort only if we can determine efficiently
|
||||
that skipping it is the right thing to do.
|
||||
The cost of performing an unnecessary sort is negligible,
|
||||
while the cost of *not* performing it can be O(N^2) with
|
||||
a very large constant. */
|
||||
- struct statfs fs_buf;
|
||||
-
|
||||
- /* If fstatfs fails, assume sorting would be useful. */
|
||||
- if (fstatfs (dir_fd, &fs_buf) != 0)
|
||||
- return true;
|
||||
|
||||
- /* FIXME: what about when f_type is not an integral type?
|
||||
- deal with that if/when it's encountered. */
|
||||
- switch (fs_buf.f_type)
|
||||
+ switch (filesystem_type (p))
|
||||
{
|
||||
case S_MAGIC_TMPFS:
|
||||
case S_MAGIC_NFS:
|
||||
@@ -701,133 +803,58 @@ dirent_inode_sort_may_be_useful (int dir_fd)
|
||||
}
|
||||
}
|
||||
|
||||
-/* Given a file descriptor DIR_FD open on a directory D,
|
||||
- return true if it is valid to apply the leaf-optimization
|
||||
- technique of counting directories in D via stat.st_nlink. */
|
||||
-static bool
|
||||
-leaf_optimization_applies (int dir_fd)
|
||||
+/* Given an FTS entry P for a directory D,
|
||||
+ return true if it is both useful and valid to apply leaf optimization.
|
||||
+ The optimization is useful only for file systems that lack usable
|
||||
+ dirent.d_type info. The optimization is valid if an st_nlink value
|
||||
+ of at least MIN_DIR_NLINK is an upper bound on the number of
|
||||
+ subdirectories of D, counting "." and ".." as subdirectories. */
|
||||
+static enum leaf_optimization
|
||||
+leaf_optimization (FTSENT const *p)
|
||||
{
|
||||
- struct statfs fs_buf;
|
||||
-
|
||||
- /* If fstatfs fails, assume we can't use the optimization. */
|
||||
- if (fstatfs (dir_fd, &fs_buf) != 0)
|
||||
- return false;
|
||||
-
|
||||
- /* FIXME: do we need to detect AFS mount points? I doubt it,
|
||||
- unless fstatfs can report S_MAGIC_REISERFS for such a directory. */
|
||||
-
|
||||
- switch (fs_buf.f_type)
|
||||
+ switch (filesystem_type (p))
|
||||
{
|
||||
- case S_MAGIC_NFS:
|
||||
- /* NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
- of large directories. See <https://bugzilla.redhat.com/1252549>. */
|
||||
- return true;
|
||||
-
|
||||
- /* List here the file system types that lack usable dirent.d_type
|
||||
+ /* List here the file system types that may lack usable dirent.d_type
|
||||
info, yet for which the optimization does apply. */
|
||||
case S_MAGIC_REISERFS:
|
||||
- case S_MAGIC_XFS:
|
||||
- return true;
|
||||
-
|
||||
+ case S_MAGIC_XFS: /* XFS lacked it until 2013-08-22 commit. */
|
||||
+ return NOSTAT_LEAF_OPTIMIZATION;
|
||||
+
|
||||
+ case 0:
|
||||
+ /* Leaf optimization is unsafe if the file system type is unknown. */
|
||||
+ FALLTHROUGH;
|
||||
+ case S_MAGIC_AFS:
|
||||
+ /* Although AFS mount points are not counted in st_nlink, they
|
||||
+ act like directories. See <https://bugs.debian.org/143111>. */
|
||||
+ FALLTHROUGH;
|
||||
+ case S_MAGIC_NFS:
|
||||
+ /* NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
+ of large directories, so as per <https://bugzilla.redhat.com/1252549>
|
||||
+ NFS should return true. However st_nlink values are not accurate on
|
||||
+ all implementations as per <https://bugzilla.redhat.com/1299169>. */
|
||||
+ FALLTHROUGH;
|
||||
case S_MAGIC_PROC:
|
||||
- /* Explicitly listing this or any other file system type for which
|
||||
- the optimization is not applicable is not necessary, but we leave
|
||||
- it here to document the risk. Per http://bugs.debian.org/143111,
|
||||
- /proc may have bogus stat.st_nlink values. */
|
||||
- /* fall through */
|
||||
+ /* Per <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=143111> /proc
|
||||
+ may have bogus stat.st_nlink values. */
|
||||
+ return NO_LEAF_OPTIMIZATION;
|
||||
+
|
||||
default:
|
||||
- return false;
|
||||
+ return OK_LEAF_OPTIMIZATION;
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
static bool
|
||||
-dirent_inode_sort_may_be_useful (int dir_fd _GL_UNUSED) { return true; }
|
||||
-static bool
|
||||
-leaf_optimization_applies (int dir_fd _GL_UNUSED) { return false; }
|
||||
-#endif
|
||||
-
|
||||
-/* link-count-optimization entry:
|
||||
- map a stat.st_dev number to a boolean: leaf_optimization_works */
|
||||
-struct LCO_ent
|
||||
-{
|
||||
- dev_t st_dev;
|
||||
- bool opt_ok;
|
||||
-};
|
||||
-
|
||||
-/* Use a tiny initial size. If a traversal encounters more than
|
||||
- a few devices, the cost of growing/rehashing this table will be
|
||||
- rendered negligible by the number of inodes processed. */
|
||||
-enum { LCO_HT_INITIAL_SIZE = 13 };
|
||||
-
|
||||
-static size_t
|
||||
-LCO_hash (void const *x, size_t table_size)
|
||||
-{
|
||||
- struct LCO_ent const *ax = x;
|
||||
- return (uintmax_t) ax->st_dev % table_size;
|
||||
-}
|
||||
-
|
||||
-static bool
|
||||
-LCO_compare (void const *x, void const *y)
|
||||
+dirent_inode_sort_may_be_useful (FTSENT const *p _GL_UNUSED)
|
||||
{
|
||||
- struct LCO_ent const *ax = x;
|
||||
- struct LCO_ent const *ay = y;
|
||||
- return ax->st_dev == ay->st_dev;
|
||||
+ return true;
|
||||
}
|
||||
-
|
||||
-/* Ask the same question as leaf_optimization_applies, but query
|
||||
- the cache first (FTS.fts_leaf_optimization_works_ht), and if necessary,
|
||||
- update that cache. */
|
||||
-static bool
|
||||
-link_count_optimize_ok (FTSENT const *p)
|
||||
+static enum leaf_optimization
|
||||
+leaf_optimization (FTSENT const *p _GL_UNUSED)
|
||||
{
|
||||
- FTS *sp = p->fts_fts;
|
||||
- Hash_table *h = sp->fts_leaf_optimization_works_ht;
|
||||
- struct LCO_ent tmp;
|
||||
- struct LCO_ent *ent;
|
||||
- bool opt_ok;
|
||||
- struct LCO_ent *t2;
|
||||
-
|
||||
- /* If we're not in CWDFD mode, don't bother with this optimization,
|
||||
- since the caller is not serious about performance. */
|
||||
- if (!ISSET(FTS_CWDFD))
|
||||
- return false;
|
||||
-
|
||||
- /* map st_dev to the boolean, leaf_optimization_works */
|
||||
- if (h == NULL)
|
||||
- {
|
||||
- h = sp->fts_leaf_optimization_works_ht
|
||||
- = hash_initialize (LCO_HT_INITIAL_SIZE, NULL, LCO_hash,
|
||||
- LCO_compare, free);
|
||||
- if (h == NULL)
|
||||
- return false;
|
||||
- }
|
||||
- tmp.st_dev = p->fts_statp->st_dev;
|
||||
- ent = hash_lookup (h, &tmp);
|
||||
- if (ent)
|
||||
- return ent->opt_ok;
|
||||
-
|
||||
- /* Look-up failed. Query directly and cache the result. */
|
||||
- t2 = malloc (sizeof *t2);
|
||||
- if (t2 == NULL)
|
||||
- return false;
|
||||
-
|
||||
- /* Is it ok to perform the optimization in the dir, FTS_CWD_FD? */
|
||||
- opt_ok = leaf_optimization_applies (sp->fts_cwd_fd);
|
||||
- t2->opt_ok = opt_ok;
|
||||
- t2->st_dev = p->fts_statp->st_dev;
|
||||
-
|
||||
- ent = hash_insert (h, t2);
|
||||
- if (ent == NULL)
|
||||
- {
|
||||
- /* insertion failed */
|
||||
- free (t2);
|
||||
- return false;
|
||||
- }
|
||||
- fts_assert (ent == t2);
|
||||
-
|
||||
- return opt_ok;
|
||||
+ return NO_LEAF_OPTIMIZATION;
|
||||
}
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Special case of "/" at the end of the file name so that slashes aren't
|
||||
@@ -1014,13 +1041,11 @@ check_for_dir:
|
||||
if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
|
||||
{
|
||||
FTSENT *parent = p->fts_parent;
|
||||
- if (FTS_ROOTLEVEL < p->fts_level
|
||||
- /* ->fts_n_dirs_remaining is not valid
|
||||
- for command-line-specified names. */
|
||||
- && parent->fts_n_dirs_remaining == 0
|
||||
+ if (parent->fts_n_dirs_remaining == 0
|
||||
&& ISSET(FTS_NOSTAT)
|
||||
&& ISSET(FTS_PHYSICAL)
|
||||
- && link_count_optimize_ok (parent))
|
||||
+ && (leaf_optimization (parent)
|
||||
+ == NOSTAT_LEAF_OPTIMIZATION))
|
||||
{
|
||||
/* nothing more needed */
|
||||
}
|
||||
@@ -1029,7 +1054,8 @@ check_for_dir:
|
||||
p->fts_info = fts_stat(sp, p, false);
|
||||
if (S_ISDIR(p->fts_statp->st_mode)
|
||||
&& p->fts_level != FTS_ROOTLEVEL
|
||||
- && parent->fts_n_dirs_remaining)
|
||||
+ && 0 < parent->fts_n_dirs_remaining
|
||||
+ && parent->fts_n_dirs_remaining != (nlink_t) -1)
|
||||
parent->fts_n_dirs_remaining--;
|
||||
}
|
||||
}
|
||||
@@ -1298,8 +1324,6 @@ fts_build (register FTS *sp, int type)
|
||||
bool descend;
|
||||
bool doadjust;
|
||||
ptrdiff_t level;
|
||||
- nlink_t nlinks;
|
||||
- bool nostat;
|
||||
size_t len, maxlen, new_len;
|
||||
char *cp;
|
||||
int dir_fd;
|
||||
@@ -1369,24 +1393,6 @@ fts_build (register FTS *sp, int type)
|
||||
sorting, yet not so large that we risk exhausting memory. */
|
||||
max_entries = sp->fts_compar ? SIZE_MAX : FTS_MAX_READDIR_ENTRIES;
|
||||
|
||||
- /*
|
||||
- * Nlinks is the number of possible entries of type directory in the
|
||||
- * directory if we're cheating on stat calls, 0 if we're not doing
|
||||
- * any stat calls at all, (nlink_t) -1 if we're statting everything.
|
||||
- */
|
||||
- if (type == BNAMES) {
|
||||
- nlinks = 0;
|
||||
- /* Be quiet about nostat, GCC. */
|
||||
- nostat = false;
|
||||
- } else if (ISSET(FTS_NOSTAT) && ISSET(FTS_PHYSICAL)) {
|
||||
- nlinks = (cur->fts_statp->st_nlink
|
||||
- - (ISSET(FTS_SEEDOT) ? 0 : 2));
|
||||
- nostat = true;
|
||||
- } else {
|
||||
- nlinks = -1;
|
||||
- nostat = false;
|
||||
- }
|
||||
-
|
||||
/*
|
||||
* If we're going to need to stat anything or we want to descend
|
||||
* and stay in the directory, chdir. If this fails we keep going,
|
||||
@@ -1408,15 +1414,22 @@ fts_build (register FTS *sp, int type)
|
||||
the required dirp and dir_fd. */
|
||||
descend = true;
|
||||
}
|
||||
- else if (nlinks || type == BREAD) {
|
||||
+ else
|
||||
+ {
|
||||
+ /* Try to descend unless it is a names-only fts_children,
|
||||
+ or the directory is known to lack subdirectories. */
|
||||
+ descend = (type != BNAMES
|
||||
+ && ! (ISSET (FTS_NOSTAT) && ISSET (FTS_PHYSICAL)
|
||||
+ && ! ISSET (FTS_SEEDOT)
|
||||
+ && cur->fts_statp->st_nlink == MIN_DIR_NLINK
|
||||
+ && (leaf_optimization (cur)
|
||||
+ != NO_LEAF_OPTIMIZATION)));
|
||||
+ if (descend || type == BREAD)
|
||||
+ {
|
||||
if (ISSET(FTS_CWDFD))
|
||||
- {
|
||||
- dir_fd = dup (dir_fd);
|
||||
- if (0 <= dir_fd)
|
||||
- set_cloexec_flag (dir_fd, true);
|
||||
- }
|
||||
+ dir_fd = fcntl (dir_fd, F_DUPFD_CLOEXEC, STDERR_FILENO + 1);
|
||||
if (dir_fd < 0 || fts_safe_changedir(sp, cur, dir_fd, NULL)) {
|
||||
- if (nlinks && type == BREAD)
|
||||
+ if (descend && type == BREAD)
|
||||
cur->fts_errno = errno;
|
||||
cur->fts_flags |= FTS_DONTCHDIR;
|
||||
descend = false;
|
||||
@@ -1426,8 +1439,8 @@ fts_build (register FTS *sp, int type)
|
||||
cur->fts_dirp = NULL;
|
||||
} else
|
||||
descend = true;
|
||||
- } else
|
||||
- descend = false;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Figure out the max file name length that can be stored in the
|
||||
@@ -1458,11 +1471,19 @@ fts_build (register FTS *sp, int type)
|
||||
tail = NULL;
|
||||
nitems = 0;
|
||||
while (cur->fts_dirp) {
|
||||
- bool is_dir;
|
||||
size_t d_namelen;
|
||||
+ __set_errno (0);
|
||||
struct dirent *dp = readdir(cur->fts_dirp);
|
||||
- if (dp == NULL)
|
||||
+ if (dp == NULL) {
|
||||
+ if (errno) {
|
||||
+ cur->fts_errno = errno;
|
||||
+ /* If we've not read any items yet, treat
|
||||
+ the error as if we can't access the dir. */
|
||||
+ cur->fts_info = (continue_readdir || nitems)
|
||||
+ ? FTS_ERR : FTS_DNR;
|
||||
+ }
|
||||
break;
|
||||
+ }
|
||||
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
|
||||
continue;
|
||||
|
||||
@@ -1550,19 +1571,10 @@ mem1: saved_errno = errno;
|
||||
to caller, when possible. */
|
||||
set_stat_type (p->fts_statp, D_TYPE (dp));
|
||||
fts_set_stat_required(p, !skip_stat);
|
||||
- is_dir = (ISSET(FTS_PHYSICAL)
|
||||
- && DT_MUST_BE(dp, DT_DIR));
|
||||
} else {
|
||||
p->fts_info = fts_stat(sp, p, false);
|
||||
- is_dir = (p->fts_info == FTS_D
|
||||
- || p->fts_info == FTS_DC
|
||||
- || p->fts_info == FTS_DOT);
|
||||
}
|
||||
|
||||
- /* Decrement link count if applicable. */
|
||||
- if (nlinks > 0 && is_dir)
|
||||
- nlinks -= nostat;
|
||||
-
|
||||
/* We walk in directory order so "ls -f" doesn't get upset. */
|
||||
p->fts_link = NULL;
|
||||
if (head == NULL)
|
||||
@@ -1621,7 +1633,8 @@ mem1: saved_errno = errno;
|
||||
|
||||
/* If didn't find anything, return NULL. */
|
||||
if (!nitems) {
|
||||
- if (type == BREAD)
|
||||
+ if (type == BREAD
|
||||
+ && cur->fts_info != FTS_DNR && cur->fts_info != FTS_ERR)
|
||||
cur->fts_info = FTS_DP;
|
||||
fts_lfree(head);
|
||||
return (NULL);
|
||||
@@ -1633,8 +1646,7 @@ mem1: saved_errno = errno;
|
||||
inode numbers. */
|
||||
if (nitems > _FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD
|
||||
&& !sp->fts_compar
|
||||
- && ISSET (FTS_CWDFD)
|
||||
- && dirent_inode_sort_may_be_useful (sp->fts_cwd_fd)) {
|
||||
+ && dirent_inode_sort_may_be_useful (cur)) {
|
||||
sp->fts_compar = fts_compare_ino;
|
||||
head = fts_sort (sp, head, nitems);
|
||||
sp->fts_compar = NULL;
|
||||
@@ -1757,7 +1769,7 @@ fd_ring_check (FTS const *sp)
|
||||
I_ring fd_w = sp->fts_fd_ring;
|
||||
|
||||
int cwd_fd = sp->fts_cwd_fd;
|
||||
- cwd_fd = dup (cwd_fd);
|
||||
+ cwd_fd = fcntl (cwd_fd, F_DUPFD_CLOEXEC, STDERR_FILENO + 1);
|
||||
char *dot = getcwdat (cwd_fd, NULL, 0);
|
||||
error (0, 0, "===== check ===== cwd: %s", dot);
|
||||
free (dot);
|
||||
@@ -1766,7 +1778,8 @@ fd_ring_check (FTS const *sp)
|
||||
int fd = i_ring_pop (&fd_w);
|
||||
if (0 <= fd)
|
||||
{
|
||||
- int parent_fd = openat (cwd_fd, "..", O_SEARCH | O_NOATIME);
|
||||
+ int open_flags = O_SEARCH | O_CLOEXEC | O_NOATIME;
|
||||
+ int parent_fd = openat (cwd_fd, "..", open_flags);
|
||||
if (parent_fd < 0)
|
||||
{
|
||||
// Warn?
|
||||
@@ -1795,7 +1808,6 @@ internal_function
|
||||
fts_stat(FTS *sp, register FTSENT *p, bool follow)
|
||||
{
|
||||
struct stat *sbp = p->fts_statp;
|
||||
- int saved_errno;
|
||||
|
||||
if (p->fts_level == FTS_ROOTLEVEL && ISSET(FTS_COMFOLLOW))
|
||||
follow = true;
|
||||
@@ -1807,13 +1819,12 @@ fts_stat(FTS *sp, register FTSENT *p, bool follow)
|
||||
*/
|
||||
if (ISSET(FTS_LOGICAL) || follow) {
|
||||
if (stat(p->fts_accpath, sbp)) {
|
||||
- saved_errno = errno;
|
||||
if (errno == ENOENT
|
||||
&& lstat(p->fts_accpath, sbp) == 0) {
|
||||
__set_errno (0);
|
||||
return (FTS_SLNONE);
|
||||
}
|
||||
- p->fts_errno = saved_errno;
|
||||
+ p->fts_errno = errno;
|
||||
goto err;
|
||||
}
|
||||
} else if (fstatat(sp->fts_cwd_fd, p->fts_accpath, sbp,
|
||||
@@ -1824,8 +1835,11 @@ err: memset(sbp, 0, sizeof(struct stat));
|
||||
}
|
||||
|
||||
if (S_ISDIR(sbp->st_mode)) {
|
||||
- p->fts_n_dirs_remaining = (sbp->st_nlink
|
||||
- - (ISSET(FTS_SEEDOT) ? 0 : 2));
|
||||
+ p->fts_n_dirs_remaining
|
||||
+ = ((sbp->st_nlink < MIN_DIR_NLINK
|
||||
+ || p->fts_level <= FTS_ROOTLEVEL)
|
||||
+ ? -1
|
||||
+ : sbp->st_nlink - (ISSET (FTS_SEEDOT) ? 0 : MIN_DIR_NLINK));
|
||||
if (ISDOT(p->fts_name)) {
|
||||
/* Command-line "." and ".." are real directories. */
|
||||
return (p->fts_level == FTS_ROOTLEVEL ? FTS_D : FTS_DOT);
|
||||
@@ -1914,17 +1928,7 @@ fts_alloc (FTS *sp, const char *name, register size_t namelen)
|
||||
* The file name is a variable length array. Allocate the FTSENT
|
||||
* structure and the file name in one chunk.
|
||||
*/
|
||||
- len = offsetof(FTSENT, fts_name) + namelen + 1;
|
||||
- /* Align the allocation size so that it works for FTSENT,
|
||||
- so that trailing padding may be referenced by direct access
|
||||
- to the flexible array members, without triggering undefined behavior
|
||||
- by accessing bytes beyond the heap allocation. This implicit access
|
||||
- was seen for example with ISDOT() and GCC 5.1.1 at -O2.
|
||||
- Do not use alignof (FTSENT) here, since C11 prohibits
|
||||
- taking the alignment of a structure containing a flexible
|
||||
- array member. */
|
||||
- len += alignof (max_align_t) - 1;
|
||||
- len &= ~ (alignof (max_align_t) - 1);
|
||||
+ len = FLEXSIZEOF(FTSENT, fts_name, namelen + 1);
|
||||
if ((p = malloc(len)) == NULL)
|
||||
return (NULL);
|
||||
|
||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
||||
index b9a3f12..70cc9e3 100644
|
||||
--- a/gl/lib/fts_.h
|
||||
+++ b/gl/lib/fts_.h
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Traverse a file hierarchy.
|
||||
|
||||
- Copyright (C) 2004-2015 Free Software Foundation, Inc.
|
||||
+ Copyright (C) 2004-2018 Free Software Foundation, Inc.
|
||||
|
||||
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
|
||||
@@ -13,7 +13,7 @@
|
||||
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, see <http://www.gnu.org/licenses/>. */
|
||||
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
@@ -220,7 +220,11 @@ typedef struct _ftsent {
|
||||
ptrdiff_t fts_level; /* depth (-1 to N) */
|
||||
|
||||
size_t fts_namelen; /* strlen(fts_name) */
|
||||
- nlink_t fts_n_dirs_remaining; /* count down from st_nlink */
|
||||
+
|
||||
+ /* If not (nlink_t) -1, an upper bound on the number of
|
||||
+ remaining subdirectories of interest. If this becomes
|
||||
+ zero, some work can be avoided. */
|
||||
+ nlink_t fts_n_dirs_remaining;
|
||||
|
||||
# define FTS_D 1 /* preorder directory */
|
||||
# define FTS_DC 2 /* directory that causes cycles */
|
||||
--
|
||||
2.13.6
|
||||
|
||||
|
||||
From ea88dd373c60feab541fe037369805f326dc3494 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Mon, 12 Feb 2018 18:58:30 +0100
|
||||
Subject: [PATCH 2/4] fts: remove dependency on gnulib's fleximember.h
|
||||
|
||||
... by reverting upstream commit edb9d82948cb23f67a19e1b435047a0570225df3
|
||||
---
|
||||
gl/lib/fts.c | 13 +++++++++++--
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index bfa73e3..c37ebe2 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -71,7 +71,6 @@ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94";
|
||||
|
||||
#if ! _LIBC
|
||||
# include "fcntl--.h"
|
||||
-# include "flexmember.h"
|
||||
# include "openat.h"
|
||||
# include "same-inode.h"
|
||||
#endif
|
||||
@@ -1928,7 +1927,17 @@ fts_alloc (FTS *sp, const char *name, register size_t namelen)
|
||||
* The file name is a variable length array. Allocate the FTSENT
|
||||
* structure and the file name in one chunk.
|
||||
*/
|
||||
- len = FLEXSIZEOF(FTSENT, fts_name, namelen + 1);
|
||||
+ len = offsetof(FTSENT, fts_name) + namelen + 1;
|
||||
+ /* Align the allocation size so that it works for FTSENT,
|
||||
+ so that trailing padding may be referenced by direct access
|
||||
+ to the flexible array members, without triggering undefined behavior
|
||||
+ by accessing bytes beyond the heap allocation. This implicit access
|
||||
+ was seen for example with ISDOT() and GCC 5.1.1 at -O2.
|
||||
+ Do not use alignof (FTSENT) here, since C11 prohibits
|
||||
+ taking the alignment of a structure containing a flexible
|
||||
+ array member. */
|
||||
+ len += alignof (max_align_t) - 1;
|
||||
+ len &= ~ (alignof (max_align_t) - 1);
|
||||
if ((p = malloc(len)) == NULL)
|
||||
return (NULL);
|
||||
|
||||
--
|
||||
2.13.6
|
||||
|
||||
|
||||
From 9c1720c99bbf8998dfdaa5976bca8bdc6d93f8e7 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Thu, 5 Apr 2018 08:48:01 -0700
|
||||
Subject: [PATCH 3/4] fts: treat CIFS like NFS
|
||||
|
||||
Problem reported by Kamil Dudka in:
|
||||
https://lists.gnu.org/r/bug-gnulib/2018-04/msg00015.html
|
||||
* lib/fts.c (S_MAGIC_CIFS): New macro.
|
||||
(dirent_inode_sort_may_be_useful, leaf_optimization):
|
||||
Treat CIFS like NFS.
|
||||
|
||||
Upstream-commit: 2e53df541a30d438859087ed4b5a396e04697b9b
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/fts.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index c37ebe2..508ceac 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -684,6 +684,7 @@ enum leaf_optimization
|
||||
|
||||
/* Linux-specific constants from coreutils' src/fs.h */
|
||||
# define S_MAGIC_AFS 0x5346414F
|
||||
+# define S_MAGIC_CIFS 0xFF534D42
|
||||
# define S_MAGIC_NFS 0x6969
|
||||
# define S_MAGIC_PROC 0x9FA0
|
||||
# define S_MAGIC_REISERFS 0x52654973
|
||||
@@ -791,8 +792,9 @@ dirent_inode_sort_may_be_useful (FTSENT const *p)
|
||||
|
||||
switch (filesystem_type (p))
|
||||
{
|
||||
- case S_MAGIC_TMPFS:
|
||||
+ case S_MAGIC_CIFS:
|
||||
case S_MAGIC_NFS:
|
||||
+ case S_MAGIC_TMPFS:
|
||||
/* On a file system of any of these types, sorting
|
||||
is unnecessary, and hence wasteful. */
|
||||
return false;
|
||||
@@ -826,6 +828,10 @@ leaf_optimization (FTSENT const *p)
|
||||
/* Although AFS mount points are not counted in st_nlink, they
|
||||
act like directories. See <https://bugs.debian.org/143111>. */
|
||||
FALLTHROUGH;
|
||||
+ case S_MAGIC_CIFS:
|
||||
+ /* Leaf optimization causes 'find' to abort. See
|
||||
+ <https://lists.gnu.org/r/bug-gnulib/2018-04/msg00015.html>. */
|
||||
+ FALLTHROUGH;
|
||||
case S_MAGIC_NFS:
|
||||
/* NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
of large directories, so as per <https://bugzilla.redhat.com/1252549>
|
||||
--
|
||||
2.14.3
|
||||
|
||||
|
||||
From ff64329a046e76ba553c15373ed61bbed814d286 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Wed, 11 Apr 2018 12:50:35 -0700
|
||||
Subject: [PATCH 4/4] fts: fix bug in find across filesystems
|
||||
|
||||
This fixes a bug I introduced last summer.
|
||||
Problem reported by Kamil Dudka in:
|
||||
https://lists.gnu.org/r/bug-gnulib/2018-04/msg00033.html
|
||||
* lib/fts.c (filesystem_type, dirent_inode_sort_may_be_useful)
|
||||
(leaf_optimization):
|
||||
New arg for file descriptor. All callers changed.
|
||||
(fts_build): Check for whether inodes should be sorted
|
||||
before closing the directory.
|
||||
|
||||
Upstream-commit: 81b8c0d3be98f5a77403599de3d06329b3e7673e
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/fts.c | 55 +++++++++++++++++++++++++++++++------------------------
|
||||
1 file changed, 31 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index 508ceac..175f12a 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -725,11 +725,12 @@ dev_type_compare (void const *x, void const *y)
|
||||
return ax->st_dev == ay->st_dev;
|
||||
}
|
||||
|
||||
-/* Return the file system type of P, or 0 if not known.
|
||||
+/* Return the file system type of P with file descriptor FD, or 0 if not known.
|
||||
+ If FD is negative, P's file descriptor is unavailable.
|
||||
Try to cache known values. */
|
||||
|
||||
static fsword
|
||||
-filesystem_type (FTSENT const *p)
|
||||
+filesystem_type (FTSENT const *p, int fd)
|
||||
{
|
||||
FTS *sp = p->fts_fts;
|
||||
Hash_table *h = sp->fts_leaf_optimization_works_ht;
|
||||
@@ -755,7 +756,7 @@ filesystem_type (FTSENT const *p)
|
||||
}
|
||||
|
||||
/* Look-up failed. Query directly and cache the result. */
|
||||
- if (fstatfs (p->fts_fts->fts_cwd_fd, &fs_buf) != 0)
|
||||
+ if (fd < 0 || fstatfs (fd, &fs_buf) != 0)
|
||||
return 0;
|
||||
|
||||
if (h)
|
||||
@@ -777,12 +778,12 @@ filesystem_type (FTSENT const *p)
|
||||
return fs_buf.f_type;
|
||||
}
|
||||
|
||||
-/* Return false if it is easy to determine the file system type of the
|
||||
- directory P, and sorting dirents on inode numbers is known not to
|
||||
- improve traversal performance with that type of file system.
|
||||
- Otherwise, return true. */
|
||||
+/* Return true if sorting dirents on inode numbers is known to improve
|
||||
+ traversal performance for the directory P with descriptor DIR_FD.
|
||||
+ Return false otherwise. When in doubt, return true.
|
||||
+ DIR_FD is negative if unavailable. */
|
||||
static bool
|
||||
-dirent_inode_sort_may_be_useful (FTSENT const *p)
|
||||
+dirent_inode_sort_may_be_useful (FTSENT const *p, int dir_fd)
|
||||
{
|
||||
/* Skip the sort only if we can determine efficiently
|
||||
that skipping it is the right thing to do.
|
||||
@@ -790,7 +791,7 @@ dirent_inode_sort_may_be_useful (FTSENT const *p)
|
||||
while the cost of *not* performing it can be O(N^2) with
|
||||
a very large constant. */
|
||||
|
||||
- switch (filesystem_type (p))
|
||||
+ switch (filesystem_type (p, dir_fd))
|
||||
{
|
||||
case S_MAGIC_CIFS:
|
||||
case S_MAGIC_NFS:
|
||||
@@ -804,16 +805,17 @@ dirent_inode_sort_may_be_useful (FTSENT const *p)
|
||||
}
|
||||
}
|
||||
|
||||
-/* Given an FTS entry P for a directory D,
|
||||
+/* Given an FTS entry P for a directory with descriptor DIR_FD,
|
||||
return true if it is both useful and valid to apply leaf optimization.
|
||||
The optimization is useful only for file systems that lack usable
|
||||
dirent.d_type info. The optimization is valid if an st_nlink value
|
||||
of at least MIN_DIR_NLINK is an upper bound on the number of
|
||||
- subdirectories of D, counting "." and ".." as subdirectories. */
|
||||
+ subdirectories of D, counting "." and ".." as subdirectories.
|
||||
+ DIR_FD is negative if unavailable. */
|
||||
static enum leaf_optimization
|
||||
-leaf_optimization (FTSENT const *p)
|
||||
+leaf_optimization (FTSENT const *p, int dir_fd)
|
||||
{
|
||||
- switch (filesystem_type (p))
|
||||
+ switch (filesystem_type (p, dir_fd))
|
||||
{
|
||||
/* List here the file system types that may lack usable dirent.d_type
|
||||
info, yet for which the optimization does apply. */
|
||||
@@ -850,12 +852,13 @@ leaf_optimization (FTSENT const *p)
|
||||
|
||||
#else
|
||||
static bool
|
||||
-dirent_inode_sort_may_be_useful (FTSENT const *p _GL_UNUSED)
|
||||
+dirent_inode_sort_may_be_useful (FTSENT const *p _GL_UNUSED,
|
||||
+ int dir_fd _GL_UNUSED)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
static enum leaf_optimization
|
||||
-leaf_optimization (FTSENT const *p _GL_UNUSED)
|
||||
+leaf_optimization (FTSENT const *p _GL_UNUSED, int dir_fd _GL_UNUSED)
|
||||
{
|
||||
return NO_LEAF_OPTIMIZATION;
|
||||
}
|
||||
@@ -1049,7 +1052,7 @@ check_for_dir:
|
||||
if (parent->fts_n_dirs_remaining == 0
|
||||
&& ISSET(FTS_NOSTAT)
|
||||
&& ISSET(FTS_PHYSICAL)
|
||||
- && (leaf_optimization (parent)
|
||||
+ && (leaf_optimization (parent, sp->fts_cwd_fd)
|
||||
== NOSTAT_LEAF_OPTIMIZATION))
|
||||
{
|
||||
/* nothing more needed */
|
||||
@@ -1334,6 +1337,7 @@ fts_build (register FTS *sp, int type)
|
||||
int dir_fd;
|
||||
FTSENT *cur = sp->fts_cur;
|
||||
bool continue_readdir = !!cur->fts_dirp;
|
||||
+ bool sort_by_inode = false;
|
||||
size_t max_entries;
|
||||
|
||||
/* When cur->fts_dirp is non-NULL, that means we should
|
||||
@@ -1427,7 +1431,7 @@ fts_build (register FTS *sp, int type)
|
||||
&& ! (ISSET (FTS_NOSTAT) && ISSET (FTS_PHYSICAL)
|
||||
&& ! ISSET (FTS_SEEDOT)
|
||||
&& cur->fts_statp->st_nlink == MIN_DIR_NLINK
|
||||
- && (leaf_optimization (cur)
|
||||
+ && (leaf_optimization (cur, dir_fd)
|
||||
!= NO_LEAF_OPTIMIZATION)));
|
||||
if (descend || type == BREAD)
|
||||
{
|
||||
@@ -1588,6 +1592,15 @@ mem1: saved_errno = errno;
|
||||
tail->fts_link = p;
|
||||
tail = p;
|
||||
}
|
||||
+
|
||||
+ /* If there are many entries, no sorting function has been
|
||||
+ specified, and this file system is of a type that may be
|
||||
+ slow with a large number of entries, arrange to sort the
|
||||
+ directory entries on increasing inode numbers. */
|
||||
+ if (nitems == _FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD
|
||||
+ && !sp->fts_compar)
|
||||
+ sort_by_inode = dirent_inode_sort_may_be_useful (cur, dir_fd);
|
||||
+
|
||||
++nitems;
|
||||
if (max_entries <= nitems) {
|
||||
/* When there are too many dir entries, leave
|
||||
@@ -1645,13 +1658,7 @@ mem1: saved_errno = errno;
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
- /* If there are many entries, no sorting function has been specified,
|
||||
- and this file system is of a type that may be slow with a large
|
||||
- number of entries, then sort the directory entries on increasing
|
||||
- inode numbers. */
|
||||
- if (nitems > _FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD
|
||||
- && !sp->fts_compar
|
||||
- && dirent_inode_sort_may_be_useful (cur)) {
|
||||
+ if (sort_by_inode) {
|
||||
sp->fts_compar = fts_compare_ino;
|
||||
head = fts_sort (sp, head, nitems);
|
||||
sp->fts_compar = NULL;
|
||||
--
|
||||
2.14.3
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
From 80cdfba079627e15129a926a133825b961d41e36 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||
Date: Mon, 5 Mar 2018 10:56:29 -0800
|
||||
Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Problem reported by Daniel P. Berrangé in:
|
||||
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
|
||||
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
|
||||
(disable_seek_optimization, rpl_fflush):
|
||||
* lib/fpurge.c (fpurge):
|
||||
* lib/freadahead.c (freadahead):
|
||||
* lib/freading.c (freading):
|
||||
* lib/fseeko.c (fseeko):
|
||||
* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
|
||||
Define if not already defined.
|
||||
|
||||
Upstream-commit: 4af4a4a71827c0bc5e0ec67af23edef4f15cee8e
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/fflush.c | 6 +++---
|
||||
gl/lib/fpurge.c | 2 +-
|
||||
gl/lib/freadahead.c | 2 +-
|
||||
gl/lib/freading.c | 2 +-
|
||||
gl/lib/fseeko.c | 4 ++--
|
||||
gl/lib/stdio-impl.h | 6 ++++++
|
||||
6 files changed, 14 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fflush.c b/gl/lib/fflush.c
|
||||
index 5ae3e41..7a82470 100644
|
||||
--- a/gl/lib/fflush.c
|
||||
+++ b/gl/lib/fflush.c
|
||||
@@ -33,7 +33,7 @@
|
||||
#undef fflush
|
||||
|
||||
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
/* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
|
||||
static void
|
||||
@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
|
||||
|
||||
#endif
|
||||
|
||||
-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
|
||||
+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
|
||||
|
||||
# if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
|
||||
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
|
||||
@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
|
||||
if (stream == NULL || ! freading (stream))
|
||||
return fflush (stream);
|
||||
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
|
||||
clear_ungetc_buffer_preserving_position (stream);
|
||||
|
||||
diff --git a/gl/lib/fpurge.c b/gl/lib/fpurge.c
|
||||
index f313b22..ecdf82d 100644
|
||||
--- a/gl/lib/fpurge.c
|
||||
+++ b/gl/lib/fpurge.c
|
||||
@@ -62,7 +62,7 @@ fpurge (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
fp->_IO_read_end = fp->_IO_read_ptr;
|
||||
fp->_IO_write_ptr = fp->_IO_write_base;
|
||||
/* Avoid memory leak when there is an active ungetc buffer. */
|
||||
diff --git a/gl/lib/freadahead.c b/gl/lib/freadahead.c
|
||||
index 094daab..3f8101e 100644
|
||||
--- a/gl/lib/freadahead.c
|
||||
+++ b/gl/lib/freadahead.c
|
||||
@@ -25,7 +25,7 @@
|
||||
size_t
|
||||
freadahead (FILE *fp)
|
||||
{
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
if (fp->_IO_write_ptr > fp->_IO_write_base)
|
||||
return 0;
|
||||
return (fp->_IO_read_end - fp->_IO_read_ptr)
|
||||
diff --git a/gl/lib/freading.c b/gl/lib/freading.c
|
||||
index 0512b19..8c48fe4 100644
|
||||
--- a/gl/lib/freading.c
|
||||
+++ b/gl/lib/freading.c
|
||||
@@ -31,7 +31,7 @@ freading (FILE *fp)
|
||||
/* Most systems provide FILE as a struct and the necessary bitmask in
|
||||
<stdio.h>, because they need it for implementing getc() and putc() as
|
||||
fast macros. */
|
||||
-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
return ((fp->_flags & _IO_NO_WRITES) != 0
|
||||
|| ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
|
||||
&& fp->_IO_read_base != NULL));
|
||||
diff --git a/gl/lib/fseeko.c b/gl/lib/fseeko.c
|
||||
index 1c65d2a..9026408 100644
|
||||
--- a/gl/lib/fseeko.c
|
||||
+++ b/gl/lib/fseeko.c
|
||||
@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
|
||||
#endif
|
||||
|
||||
/* These tests are based on fpurge.c. */
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
if (fp->_IO_read_end == fp->_IO_read_ptr
|
||||
&& fp->_IO_write_ptr == fp->_IO_write_base
|
||||
&& fp->_IO_save_base == NULL)
|
||||
@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
|
||||
return -1;
|
||||
}
|
||||
|
||||
-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
|
||||
fp->_flags &= ~_IO_EOF_SEEN;
|
||||
fp->_offset = pos;
|
||||
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
|
||||
diff --git a/gl/lib/stdio-impl.h b/gl/lib/stdio-impl.h
|
||||
index 502d891..ea38ee2 100644
|
||||
--- a/gl/lib/stdio-impl.h
|
||||
+++ b/gl/lib/stdio-impl.h
|
||||
@@ -18,6 +18,12 @@
|
||||
the same implementation of stdio extension API, except that some fields
|
||||
have different naming conventions, or their access requires some casts. */
|
||||
|
||||
+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
|
||||
+ problem by defining it ourselves. FIXME: Do not rely on glibc
|
||||
+ internals. */
|
||||
+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
|
||||
+# define _IO_IN_BACKUP 0x100
|
||||
+#endif
|
||||
|
||||
/* BSD stdio derived implementations. */
|
||||
|
||||
--
|
||||
2.16.2
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
From 80628047a6cc83f82e0c410a82b8f7facd9d50f2 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Blake <eblake@redhat.com>
|
||||
Date: Wed, 14 Sep 2016 19:21:42 -0500
|
||||
Subject: [PATCH] mountlist: include sysmacros.h for glibc
|
||||
|
||||
On Fedora rawhide (glibc 2.25), './gnulib-tool --test mountlist'
|
||||
reports:
|
||||
../../gllib/mountlist.c: In function 'read_file_system_list':
|
||||
../../gllib/mountlist.c:534:13: warning: '__makedev_from_sys_types' is deprecated:
|
||||
In the GNU C Library, `makedev' is defined by <sys/sysmacros.h>.
|
||||
For historical compatibility, it is currently defined by
|
||||
<sys/types.h> as well, but we plan to remove this soon.
|
||||
To use `makedev', include <sys/sysmacros.h> directly.
|
||||
If you did not intend to use a system-defined macro `makedev',
|
||||
you should #undef it after including <sys/types.h>.
|
||||
[-Wdeprecated-declarations]
|
||||
me->me_dev = makedev (devmaj, devmin);
|
||||
^~
|
||||
In file included from /usr/include/features.h:397:0,
|
||||
from /usr/include/sys/types.h:25,
|
||||
from ./sys/types.h:28,
|
||||
from ../../gllib/mountlist.h:23,
|
||||
from ../../gllib/mountlist.c:20:
|
||||
/usr/include/sys/sysmacros.h:89:1: note: declared here
|
||||
__SYSMACROS_DEFINE_MAKEDEV (__SYSMACROS_FST_IMPL_TEMPL)
|
||||
^
|
||||
|
||||
Fix it by including the right headers. We also need a fix to
|
||||
autoconf's AC_HEADER_MAJOR, but that's a separate patch.
|
||||
|
||||
* m4/mountlist.m4 (gl_PREREQ_MOUTLIST_EXTRA): Include
|
||||
AC_HEADER_MAJOR.
|
||||
* lib/mountlist.c (includes): Use correct headers.
|
||||
|
||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
Upstream-commit: 4da63c5881f60f71999a943612da9112232b9161
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/mountlist.c | 6 ++++++
|
||||
gl/m4/mountlist.m4 | 3 ++-
|
||||
2 files changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gl/lib/mountlist.c b/gl/lib/mountlist.c
|
||||
index c3d2852..0b6f92e 100644
|
||||
--- a/gl/lib/mountlist.c
|
||||
+++ b/gl/lib/mountlist.c
|
||||
@@ -37,6 +37,12 @@
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
|
||||
+#if MAJOR_IN_MKDEV
|
||||
+# include <sys/mkdev.h>
|
||||
+#elif MAJOR_IN_SYSMACROS
|
||||
+# include <sys/sysmacros.h>
|
||||
+#endif
|
||||
+
|
||||
#if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */
|
||||
# if HAVE_SYS_UCRED_H
|
||||
# include <grp.h> /* needed on OSF V4.0 for definition of NGROUPS,
|
||||
diff --git a/gl/m4/mountlist.m4 b/gl/m4/mountlist.m4
|
||||
index ec58dc8..82b2dcb 100644
|
||||
--- a/gl/m4/mountlist.m4
|
||||
+++ b/gl/m4/mountlist.m4
|
||||
@@ -1,4 +1,4 @@
|
||||
-# serial 11
|
||||
+# serial 12
|
||||
dnl Copyright (C) 2002-2006, 2009-2015 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -15,5 +15,6 @@ AC_DEFUN([gl_PREREQ_MOUNTLIST_EXTRA],
|
||||
[
|
||||
dnl Note gl_LIST_MOUNTED_FILE_SYSTEMS checks for mntent.h, not sys/mntent.h.
|
||||
AC_CHECK_HEADERS([sys/mntent.h])
|
||||
+ AC_HEADER_MAJOR()dnl for use of makedev ()
|
||||
gl_FSTYPENAME
|
||||
])
|
||||
--
|
||||
2.16.2
|
||||
|
|
@ -1,195 +0,0 @@
|
|||
From d844b7bbf3952998a906f21ba432aa62a3b9c7c6 Mon Sep 17 00:00:00 2001
|
||||
From: Bernhard Voelker <mail@bernhard-voelker.de>
|
||||
Date: Tue, 14 Jun 2016 20:49:42 +0200
|
||||
Subject: [PATCH] Fix bug #48180: find: avoid segfault for internal '-noop'
|
||||
option
|
||||
|
||||
The pseudo-option '-noop' was never meant to be exposed to the user
|
||||
interface. If specified by the user, find(1) segfaulted.
|
||||
Bug introduced in commit FINDUTILS_4_3_0-1-12-g6b8a4db.
|
||||
|
||||
* find/parser.c (struct parser_table): Rename the parser_name element of
|
||||
the ARG_NOOP entry from 'noop' to '--noop', thus indicating its pure
|
||||
internal character.
|
||||
(found_parser): Return NULL when the user has passed the '---noop' option;
|
||||
the caller does the error handling.
|
||||
* find/testsuite/sv-48180-refuse-noop.sh: Add test.
|
||||
* find/testsuite/Makefile.am (test_shell_progs): Reference the test.
|
||||
* NEWS (Bug fixes): Document the fix.
|
||||
|
||||
Reported by Tavian Barnes <tavianator@tavianator.com> in
|
||||
https://savannah.gnu.org/bugs/?48180
|
||||
|
||||
Upstream-commit: 595060f28eb5f658fa8d98970959c617fab0f078
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
find/parser.c | 6 +-
|
||||
find/testsuite/Makefile.am | 3 +-
|
||||
find/testsuite/sv-48180-refuse-noop.sh | 117 +++++++++++++++++++++++++++++++++
|
||||
3 files changed, 124 insertions(+), 2 deletions(-)
|
||||
create mode 100644 find/testsuite/sv-48180-refuse-noop.sh
|
||||
|
||||
diff --git a/find/parser.c b/find/parser.c
|
||||
index 2d45349..697b2a2 100644
|
||||
--- a/find/parser.c
|
||||
+++ b/find/parser.c
|
||||
@@ -321,7 +321,8 @@ static struct parser_table const parse_table[] =
|
||||
*/
|
||||
{ARG_TEST, "false", parse_false, pred_false}, /* GNU */
|
||||
{ARG_TEST, "true", parse_true, pred_true }, /* GNU */
|
||||
- {ARG_NOOP, "noop", NULL, pred_true }, /* GNU, internal use only */
|
||||
+ /* Internal pseudo-option, therefore 3 minus: ---noop. */
|
||||
+ {ARG_NOOP, "--noop", NULL, pred_true }, /* GNU, internal use only */
|
||||
|
||||
/* Various other cases that don't fit neatly into our macro scheme. */
|
||||
{ARG_TEST, "help", parse_help, NULL}, /* GNU */
|
||||
@@ -596,6 +597,9 @@ found_parser (const char *original_arg, const struct parser_table *entry)
|
||||
*/
|
||||
if (entry->type != ARG_POSITIONAL_OPTION)
|
||||
{
|
||||
+ if (entry->type == ARG_NOOP)
|
||||
+ return NULL; /* internal use only, trap -noop here. */
|
||||
+
|
||||
/* Something other than -follow/-daystart.
|
||||
* If this is an option, check if it followed
|
||||
* a non-option and if so, issue a warning.
|
||||
diff --git a/find/testsuite/Makefile.am b/find/testsuite/Makefile.am
|
||||
index ab5dbe8..1371c70 100644
|
||||
--- a/find/testsuite/Makefile.am
|
||||
+++ b/find/testsuite/Makefile.am
|
||||
@@ -259,7 +259,8 @@ test_escape_c.sh \
|
||||
test_inode.sh \
|
||||
sv-34079.sh \
|
||||
sv-34976-execdir-fd-leak.sh \
|
||||
-sv-48030-exec-plus-bug.sh
|
||||
+sv-48030-exec-plus-bug.sh \
|
||||
+sv-48180-refuse-noop.sh
|
||||
|
||||
EXTRA_DIST = $(EXTRA_DIST_EXP) $(EXTRA_DIST_XO) $(EXTRA_DIST_GOLDEN) \
|
||||
$(test_shell_progs) binary_locations.sh checklists.py
|
||||
diff --git a/find/testsuite/sv-48180-refuse-noop.sh b/find/testsuite/sv-48180-refuse-noop.sh
|
||||
new file mode 100755
|
||||
index 0000000..974f0f0
|
||||
--- /dev/null
|
||||
+++ b/find/testsuite/sv-48180-refuse-noop.sh
|
||||
@@ -0,0 +1,117 @@
|
||||
+#! /bin/sh
|
||||
+# Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
+#
|
||||
+# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
+#
|
||||
+
|
||||
+# This test verifies that find refuses the internal -noop, ---noop option.
|
||||
+# Between findutils-4.3.1 and 4.6, find dumped core ($? = 139).
|
||||
+
|
||||
+testname="$(basename $0)"
|
||||
+
|
||||
+. "${srcdir}"/binary_locations.sh
|
||||
+
|
||||
+die() {
|
||||
+ echo "$@" >&2
|
||||
+ exit 1
|
||||
+}
|
||||
+
|
||||
+# This is used to simplify checking of the return value
|
||||
+# which is useful when ensuring a command fails as desired.
|
||||
+# I.e., just doing `command ... &&fail=1` will not catch
|
||||
+# a segfault in command for example. With this helper you
|
||||
+# instead check an explicit exit code like
|
||||
+# returns_ 1 command ... || fail
|
||||
+returns_ () {
|
||||
+ # Disable tracing so it doesn't interfere with stderr of the wrapped command
|
||||
+ { set +x; } 2>/dev/null
|
||||
+
|
||||
+ local exp_exit="$1"
|
||||
+ shift
|
||||
+ "$@"
|
||||
+ test $? -eq $exp_exit && ret_=0 || ret_=1
|
||||
+
|
||||
+ set -x
|
||||
+ { return $ret_; } 2>/dev/null
|
||||
+}
|
||||
+
|
||||
+# Define the nicest compare available (borrowed from gnulib).
|
||||
+if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
|
||||
+ && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then
|
||||
+ # diff accepts the -u option and does not (like AIX 7 'diff') produce an
|
||||
+ # extra space on column 1 of every content line.
|
||||
+ if test -z "$diff_out_"; then
|
||||
+ compare () { diff -u "$@"; }
|
||||
+ else
|
||||
+ compare ()
|
||||
+ {
|
||||
+ if diff -u "$@" > diff.out; then
|
||||
+ # No differences were found, but Solaris 'diff' produces output
|
||||
+ # "No differences encountered". Hide this output.
|
||||
+ rm -f diff.out
|
||||
+ true
|
||||
+ else
|
||||
+ cat diff.out
|
||||
+ rm -f diff.out
|
||||
+ false
|
||||
+ fi
|
||||
+ }
|
||||
+ fi
|
||||
+elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
|
||||
+ if test -z "$diff_out_"; then
|
||||
+ compare () { diff -c "$@"; }
|
||||
+ else
|
||||
+ compare ()
|
||||
+ {
|
||||
+ if diff -c "$@" > diff.out; then
|
||||
+ # No differences were found, but AIX and HP-UX 'diff' produce output
|
||||
+ # "No differences encountered" or "There are no differences between the
|
||||
+ # files.". Hide this output.
|
||||
+ rm -f diff.out
|
||||
+ true
|
||||
+ else
|
||||
+ cat diff.out
|
||||
+ rm -f diff.out
|
||||
+ false
|
||||
+ fi
|
||||
+ }
|
||||
+ fi
|
||||
+elif cmp -s /dev/null /dev/null 2>/dev/null; then
|
||||
+ compare () { cmp -s "$@"; }
|
||||
+else
|
||||
+ compare () { cmp "$@"; }
|
||||
+fi
|
||||
+
|
||||
+set -x
|
||||
+tmpdir="$(mktemp -d)" \
|
||||
+ && cd "$tmpdir" \
|
||||
+ || die "FAIL: failed to set up the test in ${tmpdir}"
|
||||
+
|
||||
+fail=0
|
||||
+# Exercise both the previous name of the pseudo-option '-noop',
|
||||
+# and the now renamed '---noop' option for both find executables.
|
||||
+for exe in "${ftsfind}" "${oldfind}"; do
|
||||
+ for opt in 'noop' '--noop'; do
|
||||
+ out="${exe}${opt}.out"
|
||||
+ err="${exe}${opt}.err"
|
||||
+ returns_ 1 "$exe" "-${opt}" >"$out" 2> "$err" || fail=1
|
||||
+ compare /dev/null "$out" || fail=1
|
||||
+ grep "find: unknown predicate .-${opt}." "$err" \
|
||||
+ || { cat "$err"; fail=1; }
|
||||
+ done
|
||||
+done
|
||||
+
|
||||
+cd ..
|
||||
+rm -rf "$tmpdir" || exit 1
|
||||
+exit $fail
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
From 1328926a705fdb4728c1f255dd368de928736d39 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 25 Sep 2015 16:09:39 +0200
|
||||
Subject: [PATCH 1/2] fts: introduce the FTS_NOLEAF flag
|
||||
|
||||
The flag is needed to implement the -noleaf option of find.
|
||||
* lib/fts.c (link_count_optimize_ok): Implement the FTS_NOLEAF flag.
|
||||
* lib/fts_.h (FTS_NOLEAF): New macro, shifted conflicting constants.
|
||||
---
|
||||
gl/lib/fts.c | 4 ++++
|
||||
gl/lib/fts_.h | 12 +++++++++---
|
||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index d2d404f..808466f 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -736,6 +736,10 @@ filesystem_type (FTSENT const *p)
|
||||
struct dev_type *ent;
|
||||
struct statfs fs_buf;
|
||||
|
||||
+ if (ISSET(FTS_NOLEAF))
|
||||
+ /* leaf optimization explicitly disabled by the FTS_NOLEAF flag */
|
||||
+ return 0;
|
||||
+
|
||||
/* If we're not in CWDFD mode, don't bother with this optimization,
|
||||
since the caller is not serious about performance. */
|
||||
if (!ISSET (FTS_CWDFD))
|
||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
||||
index 63d4b74..f1d519b 100644
|
||||
--- a/gl/lib/fts_.h
|
||||
+++ b/gl/lib/fts_.h
|
||||
@@ -155,10 +155,16 @@ typedef struct {
|
||||
from input path names during fts_open initialization. */
|
||||
# define FTS_VERBATIM 0x1000
|
||||
|
||||
-# define FTS_OPTIONMASK 0x1fff /* valid user option mask */
|
||||
+ /* Disable leaf optimization (which eliminates stat() calls during traversal,
|
||||
+ based on the count of nested directories stored in stat.st_nlink of each
|
||||
+ directory). Note that the optimization is by default enabled only for
|
||||
+ selected file systems, and only if the FTS_CWDFD flag is set. */
|
||||
+# define FTS_NOLEAF 0x2000
|
||||
|
||||
-# define FTS_NAMEONLY 0x2000 /* (private) child names only */
|
||||
-# define FTS_STOP 0x4000 /* (private) unrecoverable error */
|
||||
+# define FTS_OPTIONMASK 0x3fff /* valid user option mask */
|
||||
+
|
||||
+# define FTS_NAMEONLY 0x4000 /* (private) child names only */
|
||||
+# define FTS_STOP 0x8000 /* (private) unrecoverable error */
|
||||
int fts_options; /* fts_open options, global flags */
|
||||
|
||||
/* Map a directory's device number to a boolean. The boolean is
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From c186934e6e37ddadf7511abb9b1045192757618e Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 25 Sep 2015 19:13:15 +0200
|
||||
Subject: [PATCH 2/2] ftsfind: propagate the -noleaf option to FTS
|
||||
|
||||
* find/ftsfind.c (find): Propagate the -noleaf option to FTS.
|
||||
---
|
||||
find/ftsfind.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/find/ftsfind.c b/find/ftsfind.c
|
||||
index 5159470..e34b672 100644
|
||||
--- a/find/ftsfind.c
|
||||
+++ b/find/ftsfind.c
|
||||
@@ -559,6 +559,9 @@ find (char *arg)
|
||||
if (options.stay_on_filesystem)
|
||||
ftsoptions |= FTS_XDEV;
|
||||
|
||||
+ if (options.no_leaf_check)
|
||||
+ ftsoptions |= FTS_NOLEAF;
|
||||
+
|
||||
p = fts_open (arglist, ftsoptions, NULL);
|
||||
if (NULL == p)
|
||||
{
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From a8ff1e964b2b8cd0b60362c76bd92795cee6b3c3 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Sun, 17 Apr 2016 22:36:13 +0200
|
||||
Subject: [PATCH] doc: clarify exit status handling of -exec command {} +
|
||||
|
||||
* find/find.1 (-exec): Explain how exit status is propagated if the
|
||||
-exec command {} + syntax is used.
|
||||
(-execdir): Likewise.
|
||||
|
||||
Reported at https://bugzilla.redhat.com/1325049
|
||||
|
||||
Upstream-commit: ae424b959c5e9bd23f9f686cb34653bc4cd1270e
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
find/find.1 | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/find/find.1 b/find/find.1
|
||||
index a36a0bc..c4aaf17 100644
|
||||
--- a/find/find.1
|
||||
+++ b/find/find.1
|
||||
@@ -1069,6 +1069,9 @@ command line is built in much the same way that
|
||||
.B xargs
|
||||
builds its command lines. Only one instance of `{}' is allowed within
|
||||
the command. The command is executed in the starting directory. If
|
||||
+any invocation returns a non-zero value as exit status, then
|
||||
+.B find
|
||||
+returns a non-zero exit status. If
|
||||
.B find
|
||||
encounters an error, this can sometimes cause an
|
||||
immediate exit, so some pending commands may not be run
|
||||
@@ -1104,6 +1107,9 @@ appropriately-named file in a directory in which you will run
|
||||
The same applies to having entries in
|
||||
.B $PATH
|
||||
which are empty or which are not absolute directory names. If
|
||||
+any invocation returns a non-zero value as exit status, then
|
||||
+.B find
|
||||
+returns a non-zero exit status. If
|
||||
.B find
|
||||
encounters an error, this can sometimes cause an
|
||||
immediate exit, so some pending commands may not be run
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
From 06a46ba755195810f2aeda01b12d1ccfe7c2dcfd Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@gnu.org>
|
||||
Date: Mon, 28 Dec 2015 06:27:42 +0900
|
||||
Subject: [PATCH] maint: fix operator precedence in mbrtowc test
|
||||
|
||||
This is a fix for test breakage introduced by commit 45228d96; the
|
||||
equality expression must be parenthesized when negated with '!',
|
||||
otherwise we always get:
|
||||
|
||||
test-mbrtowc.c:49: assertion 'ret == (size_t)(-2)' failed
|
||||
|
||||
* m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): Negate the entire expression.
|
||||
|
||||
Upstream-commit: 1f63650823cebf52044df840c81062ccb52163a2
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/m4/mbrtowc.m4 | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gl/m4/mbrtowc.m4 b/gl/m4/mbrtowc.m4
|
||||
index deb9f06..be2e9d6 100644
|
||||
--- a/gl/m4/mbrtowc.m4
|
||||
+++ b/gl/m4/mbrtowc.m4
|
||||
@@ -569,7 +569,7 @@ changequote([,])dnl
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
- return ! mbrtowc (&wc, "", 0, &mbs) == (size_t) -2;
|
||||
+ return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2;
|
||||
}]])],
|
||||
[gl_cv_func_mbrtowc_empty_input=yes],
|
||||
[gl_cv_func_mbrtowc_empty_input=no],
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From 129f23ce758620fade812baab811379ce8454048 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Fri, 27 Jan 2017 11:44:41 +0100
|
||||
Subject: [PATCH] test-lock: disable the rwlock test
|
||||
|
||||
It hangs indefinitely if the system rwlock implementation does not
|
||||
prevent writer starvation (and glibc does not implement it).
|
||||
|
||||
Bug: http://www.mail-archive.com/bug-gnulib@gnu.org/msg33017.html
|
||||
---
|
||||
tests/test-lock.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/test-lock.c b/tests/test-lock.c
|
||||
index a992f64..fd9c014 100644
|
||||
--- a/tests/test-lock.c
|
||||
+++ b/tests/test-lock.c
|
||||
@@ -42,7 +42,7 @@
|
||||
Uncomment some of these, to verify that all tests crash if no locking
|
||||
is enabled. */
|
||||
#define DO_TEST_LOCK 1
|
||||
-#define DO_TEST_RWLOCK 1
|
||||
+#define DO_TEST_RWLOCK 0
|
||||
#define DO_TEST_RECURSIVE_LOCK 1
|
||||
#define DO_TEST_ONCE 1
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -78,20 +78,27 @@ find -L . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
CXXFLAGS="$SLKCFLAGS" \
|
||||
./configure \
|
||||
# Configure, build, and install:
|
||||
export CFLAGS="$SLKCFLAGS"
|
||||
export CXXFLAGS="$SLKCFLAGS"
|
||||
mkdir meson-build
|
||||
cd meson-build
|
||||
meson setup \
|
||||
--prefix=/usr \
|
||||
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||
--libdir=lib${LIBDIRSUFFIX} \
|
||||
--libexecdir=/usr/libexec \
|
||||
--bindir=/usr/bin \
|
||||
--sbindir=/usr/sbin \
|
||||
--includedir=/usr/include \
|
||||
--datadir=/usr/share \
|
||||
--mandir=/usr/man \
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
--mandir=/usr/man \
|
||||
--docdir=/usr/doc/$PKGNAM-$VERSION \
|
||||
--disable-static \
|
||||
--build=$ARCH-slackware-linux || exit 1
|
||||
|
||||
make $NUMJOBS || make || exit 1
|
||||
make install-strip DESTDIR=$PKG || exit 1
|
||||
--buildtype=release \
|
||||
.. || exit 1
|
||||
"${NINJA:=ninja}" $NUMJOBS || exit 1
|
||||
DESTDIR=$PKG $NINJA install || exit 1
|
||||
cd ..
|
||||
|
||||
# Don't ship .la files:
|
||||
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
|
||||
|
|
Loading…
Reference in a new issue