Thu Jun 28 19:52:19 UTC 2018

a/dcron-4.5-x86_64-9.txz:  Rebuilt.
  Dropped two patches that were breaking @daily jobs.
  Thanks to Dennis Snow for the bug report.
ap/texinfo-6.5-x86_64-6.txz:  Rebuilt.
  Rebuilt with --disable-perl-xs (use native Perl modules instead of C
  versions), which fixes the FTBFS issues we were having with glibc.
  Thanks to nobodino, ponce, and mmawhin for the help.
This commit is contained in:
Patrick J Volkerding 2018-06-28 19:52:19 +00:00 committed by Eric Hameleers
parent 233fc224df
commit 4a88d2e418
11 changed files with 80 additions and 666 deletions

View file

@ -11,9 +11,26 @@
<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>Wed, 27 Jun 2018 19:40:52 GMT</pubDate>
<lastBuildDate>Thu, 28 Jun 2018 07:00:29 GMT</lastBuildDate>
<pubDate>Thu, 28 Jun 2018 19:52:19 GMT</pubDate>
<lastBuildDate>Fri, 29 Jun 2018 07:00:31 GMT</lastBuildDate>
<generator>maintain_current_git.sh v 1.10</generator>
<item>
<title>Thu, 28 Jun 2018 19:52:19 GMT</title>
<pubDate>Thu, 28 Jun 2018 19:52:19 GMT</pubDate>
<link>https://git.slackware.nl/current/tag/?h=20180628195219</link>
<guid isPermaLink="false">20180628195219</guid>
<description>
<![CDATA[<pre>
a/dcron-4.5-x86_64-9.txz: Rebuilt.
Dropped two patches that were breaking @daily jobs.
Thanks to Dennis Snow for the bug report.
ap/texinfo-6.5-x86_64-6.txz: Rebuilt.
Rebuilt with --disable-perl-xs (use native Perl modules instead of C
versions), which fixes the FTBFS issues we were having with glibc.
Thanks to nobodino, ponce, and mmawhin for the help.
</pre>]]>
</description>
</item>
<item>
<title>Wed, 27 Jun 2018 19:40:52 GMT</title>
<pubDate>Wed, 27 Jun 2018 19:40:52 GMT</pubDate>

View file

@ -1,3 +1,12 @@
Thu Jun 28 19:52:19 UTC 2018
a/dcron-4.5-x86_64-9.txz: Rebuilt.
Dropped two patches that were breaking @daily jobs.
Thanks to Dennis Snow for the bug report.
ap/texinfo-6.5-x86_64-6.txz: Rebuilt.
Rebuilt with --disable-perl-xs (use native Perl modules instead of C
versions), which fixes the FTBFS issues we were having with glibc.
Thanks to nobodino, ponce, and mmawhin for the help.
+--------------------------+
Wed Jun 27 19:40:52 UTC 2018
ap/texinfo-6.5-x86_64-5.txz: Rebuilt.
Fixed unescaped left brace warning from perl-5.28.0.

View file

@ -1,20 +1,20 @@
Wed Jun 27 19:51:09 UTC 2018
Thu Jun 28 20:03:21 UTC 2018
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 2018-06-27 19:40 .
drwxr-xr-x 12 root root 4096 2018-06-28 19:52 .
-rw-r--r-- 1 root root 10064 2016-06-30 18:39 ./ANNOUNCE.14_2
-rw-r--r-- 1 root root 13424 2018-06-13 05:25 ./CHANGES_AND_HINTS.TXT
-rw-r--r-- 1 root root 896021 2018-06-27 04:25 ./CHECKSUMS.md5
-rw-r--r-- 1 root root 163 2018-06-27 04:25 ./CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 896203 2018-06-27 19:51 ./CHECKSUMS.md5
-rw-r--r-- 1 root root 163 2018-06-27 19:51 ./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 429756 2018-06-27 19:40 ./ChangeLog.txt
-rw-r--r-- 1 root root 430182 2018-06-28 19:52 ./ChangeLog.txt
drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI
drwxr-xr-x 2 root root 4096 2018-06-27 04:12 ./EFI/BOOT
-rw-r--r-- 1 root root 1253376 2018-02-24 20:49 ./EFI/BOOT/bootx64.efi
@ -25,9 +25,9 @@ drwxr-xr-x 2 root root 4096 2018-06-27 04:12 ./EFI/BOOT
-rwxr-xr-x 1 root root 2494 2018-02-24 20:49 ./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 1179646 2018-06-27 04:25 ./FILELIST.TXT
-rw-r--r-- 1 root root 1179855 2018-06-27 19:51 ./FILELIST.TXT
-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY
-rw-r--r-- 1 root root 725871 2018-06-27 19:49 ./PACKAGES.TXT
-rw-r--r-- 1 root root 725871 2018-06-28 20:01 ./PACKAGES.TXT
-rw-r--r-- 1 root root 8564 2016-06-28 21:33 ./README.TXT
-rw-r--r-- 1 root root 3634 2018-06-27 00:44 ./README.initrd
-rw-r--r-- 1 root root 34412 2017-12-01 17:44 ./README_CRYPT.TXT
@ -748,13 +748,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 2018-06-27 19:49 ./slackware64
-rw-r--r-- 1 root root 288378 2018-06-27 19:49 ./slackware64/CHECKSUMS.md5
-rw-r--r-- 1 root root 163 2018-06-27 19:49 ./slackware64/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 359295 2018-06-27 19:47 ./slackware64/FILE_LIST
-rw-r--r-- 1 root root 3627406 2018-06-27 19:47 ./slackware64/MANIFEST.bz2
drwxr-xr-x 18 root root 4096 2018-06-28 20:01 ./slackware64
-rw-r--r-- 1 root root 288378 2018-06-28 20:01 ./slackware64/CHECKSUMS.md5
-rw-r--r-- 1 root root 163 2018-06-28 20:01 ./slackware64/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 359295 2018-06-28 19:59 ./slackware64/FILE_LIST
-rw-r--r-- 1 root root 3627811 2018-06-28 19:59 ./slackware64/MANIFEST.bz2
lrwxrwxrwx 1 root root 15 2009-08-23 23:34 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT
drwxr-xr-x 2 root root 20480 2018-06-27 04:21 ./slackware64/a
drwxr-xr-x 2 root root 20480 2018-06-28 19:59 ./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
@ -800,9 +800,9 @@ drwxr-xr-x 2 root root 20480 2018-06-27 04:21 ./slackware64/a
-rw-r--r-- 1 root root 531 2018-05-01 15:22 ./slackware64/a/dbus-1.12.8-x86_64-1.txt
-rw-r--r-- 1 root root 516264 2018-05-01 15:22 ./slackware64/a/dbus-1.12.8-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-05-01 15:22 ./slackware64/a/dbus-1.12.8-x86_64-1.txz.asc
-rw-r--r-- 1 root root 358 2018-06-14 19:02 ./slackware64/a/dcron-4.5-x86_64-8.txt
-rw-r--r-- 1 root root 34764 2018-06-14 19:02 ./slackware64/a/dcron-4.5-x86_64-8.txz
-rw-r--r-- 1 root root 163 2018-06-14 19:02 ./slackware64/a/dcron-4.5-x86_64-8.txz.asc
-rw-r--r-- 1 root root 358 2018-06-28 16:51 ./slackware64/a/dcron-4.5-x86_64-9.txt
-rw-r--r-- 1 root root 34352 2018-06-28 16:51 ./slackware64/a/dcron-4.5-x86_64-9.txz
-rw-r--r-- 1 root root 163 2018-06-28 16:51 ./slackware64/a/dcron-4.5-x86_64-9.txz.asc
-rw-r--r-- 1 root root 311 2008-09-25 21:53 ./slackware64/a/devs-2.3.1-noarch-25.txt
-rw-r--r-- 1 root root 98596 2008-09-25 21:53 ./slackware64/a/devs-2.3.1-noarch-25.txz
-rw-r--r-- 1 root root 197 2008-09-25 21:53 ./slackware64/a/devs-2.3.1-noarch-25.txz.asc
@ -1102,7 +1102,7 @@ drwxr-xr-x 2 root root 20480 2018-06-27 04:21 ./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 2018-06-27 19:47 ./slackware64/ap
drwxr-xr-x 2 root root 20480 2018-06-28 19:59 ./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
@ -1321,9 +1321,9 @@ drwxr-xr-x 2 root root 20480 2018-06-27 19:47 ./slackware64/ap
-rw-r--r-- 1 root root 505 2018-06-06 06:19 ./slackware64/ap/terminus-font-4.40-noarch-3.txt
-rw-r--r-- 1 root root 2048072 2018-06-06 06:19 ./slackware64/ap/terminus-font-4.40-noarch-3.txz
-rw-r--r-- 1 root root 163 2018-06-06 06:19 ./slackware64/ap/terminus-font-4.40-noarch-3.txz.asc
-rw-r--r-- 1 root root 614 2018-06-27 18:16 ./slackware64/ap/texinfo-6.5-x86_64-5.txt
-rw-r--r-- 1 root root 1257496 2018-06-27 18:16 ./slackware64/ap/texinfo-6.5-x86_64-5.txz
-rw-r--r-- 1 root root 163 2018-06-27 18:16 ./slackware64/ap/texinfo-6.5-x86_64-5.txz.asc
-rw-r--r-- 1 root root 614 2018-06-28 17:09 ./slackware64/ap/texinfo-6.5-x86_64-6.txt
-rw-r--r-- 1 root root 1237144 2018-06-28 17:09 ./slackware64/ap/texinfo-6.5-x86_64-6.txz
-rw-r--r-- 1 root root 163 2018-06-28 17:09 ./slackware64/ap/texinfo-6.5-x86_64-6.txz.asc
-rw-r--r-- 1 root root 357 2018-04-14 17:54 ./slackware64/ap/tmux-2.7-x86_64-1.txt
-rw-r--r-- 1 root root 250080 2018-04-14 17:54 ./slackware64/ap/tmux-2.7-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-04-14 17:54 ./slackware64/ap/tmux-2.7-x86_64-1.txz.asc
@ -4933,11 +4933,11 @@ drwxr-xr-x 2 root root 4096 2018-04-18 08:35 ./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 2018-06-27 19:51 ./source
-rw-r--r-- 1 root root 452894 2018-06-27 19:51 ./source/CHECKSUMS.md5
-rw-r--r-- 1 root root 163 2018-06-27 19:51 ./source/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 641013 2018-06-27 19:50 ./source/FILE_LIST
-rw-r--r-- 1 root root 14704820 2018-06-27 19:50 ./source/MANIFEST.bz2
drwxr-xr-x 19 root root 4096 2018-06-28 20:03 ./source
-rw-r--r-- 1 root root 452619 2018-06-28 20:03 ./source/CHECKSUMS.md5
-rw-r--r-- 1 root root 163 2018-06-28 20:03 ./source/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 640684 2018-06-28 20:02 ./source/FILE_LIST
-rw-r--r-- 1 root root 14704519 2018-06-28 20:02 ./source/MANIFEST.bz2
-rw-r--r-- 1 root root 1314 2006-10-02 04:40 ./source/README.TXT
drwxr-xr-x 110 root root 4096 2018-06-26 09:45 ./source/a
-rw-r--r-- 1 root root 769 2018-06-26 09:45 ./source/a/FTBFSlog
@ -5087,19 +5087,17 @@ drwxr-xr-x 2 root root 4096 2018-05-01 15:21 ./source/a/dbus
-rw-r--r-- 1 root root 394 2015-03-09 19:24 ./source/a/dbus/doinst.sh.gz
-rw-r--r-- 1 root root 816 2017-11-14 19:29 ./source/a/dbus/rc.messagebus.gz
-rw-r--r-- 1 root root 982 2018-02-27 06:13 ./source/a/dbus/slack-desc
drwxr-xr-x 3 root root 4096 2018-06-13 04:30 ./source/a/dcron
drwxr-xr-x 3 root root 4096 2018-06-28 16:44 ./source/a/dcron
-rw-r--r-- 1 root root 389 2018-06-12 22:24 ./source/a/dcron/crond.default
-rw-r--r-- 1 root root 487 2012-09-07 20:20 ./source/a/dcron/crontab.root.gz
-rw-r--r-- 1 root root 44978 2011-05-01 12:44 ./source/a/dcron/dcron-4.5.tar.gz
-rwxr-xr-x 1 root root 5504 2018-06-14 18:33 ./source/a/dcron/dcron.SlackBuild
-rwxr-xr-x 1 root root 5313 2018-06-28 16:50 ./source/a/dcron/dcron.SlackBuild
-rw-r--r-- 1 root root 383 2018-06-12 22:29 ./source/a/dcron/doinst.sh.gz
drwxr-xr-x 2 root root 4096 2017-07-28 18:05 ./source/a/dcron/patches
drwxr-xr-x 2 root root 4096 2018-06-28 16:50 ./source/a/dcron/patches
-rw-r--r-- 1 root root 500 2017-07-21 06:26 ./source/a/dcron/patches/0002-README-var-spool-cron-crontabs-root.patch.gz
-rw-r--r-- 1 root root 685 2017-07-21 06:26 ./source/a/dcron/patches/0003-CHANGELOG-tweak.patch.gz
-rw-r--r-- 1 root root 600 2017-07-21 06:26 ./source/a/dcron/patches/0006-Fixed-a-bug-whereby-syncs-killed-all-waiting-jobs.patch.gz
-rw-r--r-- 1 root root 522 2017-07-21 06:26 ./source/a/dcron/patches/0007-Update-main.c.patch.gz
-rw-r--r-- 1 root root 5157 2017-07-21 06:26 ./source/a/dcron/patches/0008-Fix-3-every-Nth-day-of-week-syntax-not-working.patch.gz
-rw-r--r-- 1 root root 731 2017-07-21 06:26 ./source/a/dcron/patches/0009-Updated-manpage.patch.gz
-rw-r--r-- 1 root root 363 2011-08-22 21:26 ./source/a/dcron/patches/crontab.c.O_EXCL.diff.gz
-rw-r--r-- 1 root root 233 2017-07-21 06:33 ./source/a/dcron/patches/defs.h.TMPDIR.diff.gz
-rw-r--r-- 1 root root 731 2018-06-14 18:40 ./source/a/dcron/rc.crond
@ -6317,13 +6315,13 @@ drwxr-xr-x 2 root root 4096 2018-06-05 22:38 ./source/ap/terminus-font
-rw-r--r-- 1 root root 256260 2015-08-18 16:34 ./source/ap/terminus-font/terminus-font-4.40.tar.xz
-rw-r--r-- 1 root root 262 2013-02-19 20:37 ./source/ap/terminus-font/terminus-font.Makefile.paths.diff.gz
-rwxr-xr-x 1 root root 3028 2018-06-05 22:34 ./source/ap/terminus-font/terminus-font.SlackBuild
drwxr-xr-x 2 root root 4096 2018-06-27 18:14 ./source/ap/texinfo
drwxr-xr-x 2 root root 4096 2018-06-28 17:07 ./source/ap/texinfo
-rw-r--r-- 1 root root 5853 2008-11-20 23:57 ./source/ap/texinfo/dir.gz
-rw-r--r-- 1 root root 251 2008-11-21 00:01 ./source/ap/texinfo/doinst.sh.gz
-rw-r--r-- 1 root root 1069 2018-02-27 06:12 ./source/ap/texinfo/slack-desc
-rw-r--r-- 1 root root 4503048 2017-09-12 20:14 ./source/ap/texinfo/texinfo-6.5.tar.xz
-rw-r--r-- 1 root root 213 2017-09-12 20:15 ./source/ap/texinfo/texinfo-6.5.tar.xz.sig
-rwxr-xr-x 1 root root 4094 2018-06-27 18:13 ./source/ap/texinfo/texinfo.SlackBuild
-rwxr-xr-x 1 root root 4263 2018-06-28 17:08 ./source/ap/texinfo/texinfo.SlackBuild
-rw-r--r-- 1 root root 366 2018-06-27 18:14 ./source/ap/texinfo/texinfo.fix.unescaped.left.brace.diff.gz
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/ap/tmux
-rw-r--r-- 1 root root 270 2017-05-24 03:36 ./source/ap/tmux/doinst.sh.gz
@ -7971,7 +7969,7 @@ drwxr-xr-x 2 root root 4096 2015-10-21 21:51 ./source/l/ConsoleKit2/patch
-rw-r--r-- 1 root root 554 2015-09-10 12:24 ./source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch.gz
-rw-r--r-- 1 root root 572 2015-09-10 09:24 ./source/l/ConsoleKit2/rc.consolekit
-rw-r--r-- 1 root root 796 2018-02-27 06:12 ./source/l/ConsoleKit2/slack-desc
-rw-r--r-- 1 root root 2060 2018-06-27 19:04 ./source/l/FTBFSlog
-rw-r--r-- 1 root root 2222 2018-06-28 17:36 ./source/l/FTBFSlog
drwxr-xr-x 3 root root 4096 2018-04-23 17:20 ./source/l/GConf
-rw-r--r-- 1 root root 1559904 2013-01-22 02:48 ./source/l/GConf/GConf-3.2.6.tar.xz
-rwxr-xr-x 1 root root 4672 2018-04-23 17:20 ./source/l/GConf/GConf.SlackBuild
@ -8348,15 +8346,14 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/glib2
-rw-r--r-- 1 root root 999 2011-03-27 21:04 ./source/l/glib2/libglib2.csh
-rw-r--r-- 1 root root 982 2008-03-18 07:08 ./source/l/glib2/libglib2.sh
-rw-r--r-- 1 root root 688 2018-02-27 06:12 ./source/l/glib2/slack-desc
drwxr-xr-x 3 root root 4096 2018-06-27 18:57 ./source/l/glibc
drwxr-xr-x 3 root root 4096 2018-06-28 17:35 ./source/l/glibc
-rw-r--r-- 1 root root 7615 2018-06-12 21:35 ./source/l/glibc/doinst.sh-glibc
-rw-r--r-- 1 root root 5639 2018-06-12 21:35 ./source/l/glibc/doinst.sh-glibc-solibs
-rw-r--r-- 1 root root 15395316 2018-02-01 20:39 ./source/l/glibc/glibc-2.27.tar.xz
-rw-r--r-- 1 root root 801 2018-02-01 20:39 ./source/l/glibc/glibc-2.27.tar.xz.sig
-rw-r--r-- 1 root root 2617 2016-08-08 14:05 ./source/l/glibc/glibc-c-utf8-locale.patch.gz
-rwxr-xr-x 1 root root 174 2004-08-09 06:21 ./source/l/glibc/glibc-cvs-checkout.sh
-rwxr-xr-x 1 root root 14306 2018-06-27 19:00 ./source/l/glibc/glibc.SlackBuild
-rw-r--r-- 1 root root 763 2018-06-27 18:56 ./source/l/glibc/glibc.libc.texinfo.no.utf8.patch.gz
-rwxr-xr-x 1 root root 14000 2018-06-28 17:35 ./source/l/glibc/glibc.SlackBuild
-rw-r--r-- 1 root root 309 2018-02-05 05:07 ./source/l/glibc/glibc.locale.no-archive.diff.gz
-rw-r--r-- 1 root root 648 2018-04-14 19:08 ./source/l/glibc/glibc.pkey_get.56170e0.diff.gz
-rw-r--r-- 1 root root 213 2006-08-22 06:33 ./source/l/glibc/glibc.ru_RU.CP1251.diff.gz

View file

@ -512,7 +512,6 @@ gzip ./source/l/shared-mime-info/doinst.sh
gzip ./source/l/glibc/glibc.locale.no-archive.diff
gzip ./source/l/glibc/glibc-c-utf8-locale.patch
gzip ./source/l/glibc/glibc.ru_RU.CP1251.diff
gzip ./source/l/glibc/glibc.libc.texinfo.no.utf8.patch
gzip ./source/l/glibc/glibc.pkey_get.56170e0.diff
gzip ./source/l/strigi/libstreams-0003-Build-fix-for-gcc-4.8.patch
gzip ./source/l/strigi/libstreams-0005-use-rpath-only-when-needed.patch
@ -817,8 +816,6 @@ gzip ./source/a/dcron/run-parts.8
gzip ./source/a/dcron/patches/0007-Update-main.c.patch
gzip ./source/a/dcron/patches/defs.h.TMPDIR.diff
gzip ./source/a/dcron/patches/0006-Fixed-a-bug-whereby-syncs-killed-all-waiting-jobs.patch
gzip ./source/a/dcron/patches/0008-Fix-3-every-Nth-day-of-week-syntax-not-working.patch
gzip ./source/a/dcron/patches/0009-Updated-manpage.patch
gzip ./source/a/dcron/patches/crontab.c.O_EXCL.diff
gzip ./source/a/dcron/patches/0003-CHANGELOG-tweak.patch
gzip ./source/a/dcron/patches/0002-README-var-spool-cron-crontabs-root.patch

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=dcron
VERSION=${VERSION:-$(echo dcron-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-8}
BUILD=${BUILD:-9}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@ -79,8 +79,6 @@ zcat $CWD/patches/0002-README-var-spool-cron-crontabs-root.patch.gz | patch -p1
zcat $CWD/patches/0003-CHANGELOG-tweak.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/0006-Fixed-a-bug-whereby-syncs-killed-all-waiting-jobs.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/0007-Update-main.c.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/0008-Fix-3-every-Nth-day-of-week-syntax-not-working.patch.gz | patch -p1 --verbose || exit 1
zcat $CWD/patches/0009-Updated-manpage.patch.gz | patch -p1 --verbose || exit 1
# Define TMPDIR as /run/cron instead of /tmp:
# This eliminates possibility of stale $TMPDIR/cron.??????/ dirs as

View file

@ -1,538 +0,0 @@
From f048a83da348c1d62204fcbdf407b7abf33e3db0 Mon Sep 17 00:00:00 2001
From: Erik on RPi <ewfalor@gmail.com>
Date: Tue, 17 Nov 2015 11:28:42 -0700
Subject: [PATCH 8/9] Fix #3 '"every Nth [day of week]" syntax not working'
---
database.c | 237 ++++++++++++++++++++++++++++++++++++++++++-------------------
defs.h | 24 ++++---
2 files changed, 180 insertions(+), 81 deletions(-)
diff --git a/database.c b/database.c
index 02c5c92..c0cdc11 100644
--- a/database.c
+++ b/database.c
@@ -9,6 +9,14 @@
#include "defs.h"
+#define FIRST_DOW (1 << 0)
+#define SECOND_DOW (1 << 1)
+#define THIRD_DOW (1 << 2)
+#define FOURTH_DOW (1 << 3)
+#define FIFTH_DOW (1 << 4)
+#define LAST_DOW (1 << 5)
+#define ALL_DOW (FIRST_DOW|SECOND_DOW|THIRD_DOW|FOURTH_DOW|FIFTH_DOW|LAST_DOW)
+
Prototype void CheckUpdates(const char *dpath, const char *user_override, time_t t1, time_t t2);
Prototype void SynchronizeDir(const char *dpath, const char *user_override, int initial_scan);
Prototype void ReadTimestamps(const char *user);
@@ -21,8 +29,10 @@ Prototype int CheckJobs(void);
void SynchronizeFile(const char *dpath, const char *fname, const char *uname);
void DeleteFile(CronFile **pfile);
char *ParseInterval(int *interval, char *ptr);
-char *ParseField(char *userName, char *ary, int modvalue, int off, int onvalue, const char **names, char *ptr);
+char *ParseField(char *userName, char *ary, int modvalue, int offset, int onvalue, const char **names, char *ptr);
void FixDayDow(CronLine *line);
+void PrintLine(CronLine *line);
+void PrintFile(CronFile *file, char* loc, char* fname, int line);
CronFile *FileBase = NULL;
@@ -454,15 +464,15 @@ SynchronizeFile(const char *dpath, const char *fileName, const char *userName)
* parse date ranges
*/
- ptr = ParseField(file->cf_UserName, line.cl_Mins, 60, 0, 1,
+ ptr = ParseField(file->cf_UserName, line.cl_Mins, FIELD_MINUTES, 0, 1,
NULL, ptr);
- ptr = ParseField(file->cf_UserName, line.cl_Hrs, 24, 0, 1,
+ ptr = ParseField(file->cf_UserName, line.cl_Hrs, FIELD_HOURS, 0, 1,
NULL, ptr);
- ptr = ParseField(file->cf_UserName, line.cl_Days, 32, 0, 1,
+ ptr = ParseField(file->cf_UserName, line.cl_Days, FIELD_M_DAYS, 0, 1,
NULL, ptr);
- ptr = ParseField(file->cf_UserName, line.cl_Mons, 12, -1, 1,
+ ptr = ParseField(file->cf_UserName, line.cl_Mons, FIELD_MONTHS, -1, 1,
MonAry, ptr);
- ptr = ParseField(file->cf_UserName, line.cl_Dow, 7, 0, 31,
+ ptr = ParseField(file->cf_UserName, line.cl_Dow, FIELD_W_DAYS, 0, ALL_DOW,
DowAry, ptr);
/*
* check failure
@@ -634,12 +644,12 @@ SynchronizeFile(const char *dpath, const char *fileName, const char *userName)
if (line.cl_JobName) {
if (DebugOpt)
- printlogf(LOG_DEBUG, " Command %s Job %s\n", line.cl_Shell, line.cl_JobName);
+ printlogf(LOG_DEBUG, " Command %s Job %s\n\n", line.cl_Shell, line.cl_JobName);
} else {
/* when cl_JobName is NULL, we point cl_Description to cl_Shell */
line.cl_Description = line.cl_Shell;
if (DebugOpt)
- printlogf(LOG_DEBUG, " Command %s\n", line.cl_Shell);
+ printlogf(LOG_DEBUG, " Command %s\n\n", line.cl_Shell);
}
*pline = calloc(1, sizeof(CronLine));
@@ -691,7 +701,7 @@ ParseInterval(int *interval, char *ptr)
}
char *
-ParseField(char *user, char *ary, int modvalue, int off, int onvalue, const char **names, char *ptr)
+ParseField(char *user, char *ary, int modvalue, int offset, int onvalue, const char **names, char *ptr)
{
char *base = ptr;
int n1 = -1;
@@ -714,9 +724,9 @@ ParseField(char *user, char *ary, int modvalue, int off, int onvalue, const char
++ptr;
} else if (*ptr >= '0' && *ptr <= '9') {
if (n1 < 0)
- n1 = strtol(ptr, &ptr, 10) + off;
+ n1 = strtol(ptr, &ptr, 10) + offset;
else
- n2 = strtol(ptr, &ptr, 10) + off;
+ n2 = strtol(ptr, &ptr, 10) + offset;
skip = 1;
} else if (names) {
int i;
@@ -805,7 +815,7 @@ ParseField(char *user, char *ary, int modvalue, int off, int onvalue, const char
int i;
for (i = 0; i < modvalue; ++i)
- if (modvalue == 7)
+ if (modvalue == FIELD_W_DAYS)
printlogf(LOG_DEBUG, "%2x ", ary[i]);
else
printlogf(LOG_DEBUG, "%d", ary[i]);
@@ -815,50 +825,66 @@ ParseField(char *user, char *ary, int modvalue, int off, int onvalue, const char
return(ptr);
}
+/* Reconcile Days of Month with Days of Week.
+ * There are four cases to cover:
+ * 1) DoM and DoW are both specified as *; the task may run on any day
+ * 2) DoM is * and DoW is specific; the task runs weekly on the specified DoW(s)
+ * 3) DoM is specific and DoW is *; the task runs on the specified DoM, regardless
+ * of which day of the week they fall
+ * 4) DoM is in the range [1..5] and DoW is specific; the task runs on the Nth
+ * specified DoW. DoM > 5 means the last such DoW in that month
+ */
void
FixDayDow(CronLine *line)
{
- unsigned short i,j;
- short weekUsed = 0;
- short daysUsed = 0;
+ unsigned short i;
+ short DowStar = 1;
+ short DomStar = 1;
+ char mask = 0;
for (i = 0; i < arysize(line->cl_Dow); ++i) {
if (line->cl_Dow[i] == 0) {
- weekUsed = 1;
+ /* '*' was NOT specified in the DoW field on this CronLine */
+ DowStar = 0;
break;
}
}
+
for (i = 0; i < arysize(line->cl_Days); ++i) {
if (line->cl_Days[i] == 0) {
- if (weekUsed) {
- if (!daysUsed) {
- daysUsed = 1;
- /* change from "every Mon" to "ith Mon"
- * 6th,7th... Dow are treated as 1st,2nd... */
- for (j = 0; j < arysize(line->cl_Dow); ++j) {
- line->cl_Dow[j] &= 1 << (i-1)%5;
- }
- } else {
- /* change from "nth Mon" to "nth or ith Mon" */
- for (j = 0; j < arysize(line->cl_Dow); ++j) {
- if (line->cl_Dow[j])
- line->cl_Dow[j] |= 1 << (i-1)%5;
- }
- }
- /* continue cycling through cl_Days */
- }
- else {
- daysUsed = 1;
- break;
- }
+ /* '*' was NOT specified in the Date field on this CronLine */
+ DomStar = 0;
+ break;
}
}
- if (weekUsed) {
- memset(line->cl_Days, 0, sizeof(line->cl_Days));
+
+ /* When cases 1, 2 or 3 there is nothing left to do */
+ if (DowStar || DomStar)
+ return;
+
+ /* Set individual bits within the DoW mask... */
+ for (i = 0; i < arysize(line->cl_Days); ++i) {
+ if (line->cl_Days[i]) {
+ if (i < 6)
+ mask |= 1 << (i - 1);
+ else
+ mask |= LAST_DOW;
+ }
}
- if (daysUsed && !weekUsed) {
- memset(line->cl_Dow, 0, sizeof(line->cl_Dow));
+
+ /* and apply the mask to each DoW element */
+ for (i = 0; i < arysize(line->cl_Dow); ++i) {
+ if (line->cl_Dow[i])
+ line->cl_Dow[i] = mask;
+ else
+ line->cl_Dow[i] = 0;
}
+
+ /* case 4 relies on the DoW value to guard the date instead of using the
+ * cl_Days field for this purpose; so we must set each element of cl_Days
+ * to 1 to allow the DoW bitmask test to be made
+ */
+ memset(line->cl_Days, 1, sizeof(line->cl_Days));
}
/*
@@ -881,7 +907,7 @@ DeleteFile(CronFile **pfile)
file->cf_Deleted = 1;
while ((line = *pline) != NULL) {
- if (line->cl_Pid > 0) {
+ if (line->cl_Pid > JOB_NONE) {
file->cf_Running = 1;
pline = &line->cl_Next;
} else {
@@ -942,13 +968,14 @@ TestJobs(time_t t1, time_t t2)
CronFile *file;
CronLine *line;
+ PrintFile(FileBase, "TestJobs()", __FILE__, __LINE__);
for (file = FileBase; file; file = file->cf_Next) {
if (file->cf_Deleted)
continue;
for (line = file->cf_LineBase; line; line = line->cl_Next) {
struct CronWaiter *waiter;
- if (line->cl_Pid == -2) {
+ if (line->cl_Pid == JOB_WAITING) {
/* can job stop waiting? */
int ready = 1;
waiter = line->cl_Waiters;
@@ -965,7 +992,7 @@ TestJobs(time_t t1, time_t t2)
if (ready == 2) {
if (DebugOpt)
printlogf(LOG_DEBUG, "cancelled waiting: user %s %s\n", file->cf_UserName, line->cl_Description);
- line->cl_Pid = 0;
+ line->cl_Pid = JOB_NONE;
} else if (ready) {
if (DebugOpt)
printlogf(LOG_DEBUG, "finished waiting: user %s %s\n", file->cf_UserName, line->cl_Description);
@@ -987,24 +1014,23 @@ TestJobs(time_t t1, time_t t2)
if (t > t1) {
struct tm *tp = localtime(&t);
- unsigned short n_wday = (tp->tm_mday - 1)%7 + 1;
- if (n_wday >= 4) {
+ char n_wday = 1 << ((tp->tm_mday - 1) / 7);
+ if (n_wday >= FOURTH_DOW) {
struct tm tnext = *tp;
tnext.tm_mday += 7;
if (mktime(&tnext) != (time_t)-1 && tnext.tm_mon != tp->tm_mon)
- n_wday |= 16; /* last dow in month is always recognized as 5th */
+ n_wday |= LAST_DOW; /* last dow in month is always recognized as 6th bit */
}
for (file = FileBase; file; file = file->cf_Next) {
if (file->cf_Deleted)
continue;
for (line = file->cf_LineBase; line; line = line->cl_Next) {
- if ((line->cl_Pid == -2 || line->cl_Pid == 0) && (line->cl_Freq == 0 || (line->cl_Freq > 0 && t2 >= line->cl_NotUntil))) {
+ if ((line->cl_Pid == JOB_WAITING || line->cl_Pid == JOB_NONE) && (line->cl_Freq == 0 || (line->cl_Freq > 0 && t2 >= line->cl_NotUntil))) {
/* (re)schedule job? */
if (line->cl_Mins[tp->tm_min] &&
line->cl_Hrs[tp->tm_hour] &&
- (line->cl_Days[tp->tm_mday] || (n_wday && line->cl_Dow[tp->tm_wday]) ) &&
- line->cl_Mons[tp->tm_mon]
+ (line->cl_Days[tp->tm_mday] && n_wday & line->cl_Dow[tp->tm_wday])
) {
if (line->cl_NotUntil)
line->cl_NotUntil = t2 - t2 % 60 + line->cl_Delay; /* save what minute this job was scheduled/started waiting, plus cl_Delay */
@@ -1027,19 +1053,19 @@ int
ArmJob(CronFile *file, CronLine *line, time_t t1, time_t t2)
{
struct CronWaiter *waiter;
- if (line->cl_Pid > 0) {
+ if (line->cl_Pid > JOB_NONE) {
printlogf(LOG_NOTICE, "process already running (%d): user %s %s\n",
line->cl_Pid,
file->cf_UserName,
line->cl_Description
);
- } else if (t2 == -1 && line->cl_Pid != -1) {
- line->cl_Pid = -1;
+ } else if (t2 == -1 && line->cl_Pid != JOB_ARMED) {
+ line->cl_Pid = JOB_ARMED;
file->cf_Ready = 1;
return 1;
- } else if (line->cl_Pid == 0) {
+ } else if (line->cl_Pid == JOB_NONE) {
/* arming a waiting job (cl_Pid == -2) without forcing has no effect */
- line->cl_Pid = -1;
+ line->cl_Pid = JOB_ARMED;
/* if we have any waiters, zero them and arm cl_Pid=-2 */
waiter = line->cl_Waiters;
while (waiter != NULL) {
@@ -1047,15 +1073,15 @@ ArmJob(CronFile *file, CronLine *line, time_t t1, time_t t2)
if (!waiter->cw_NotifLine)
/* notifier deleted */
waiter->cw_Flag = 0;
- else if (waiter->cw_NotifLine->cl_Pid != 0) {
+ else if (waiter->cw_NotifLine->cl_Pid != JOB_NONE) {
/* if notifier is armed, or waiting, or running, we wait for it */
waiter->cw_Flag = -1;
- line->cl_Pid = -2;
+ line->cl_Pid = JOB_WAITING;
} else if (waiter->cw_NotifLine->cl_Freq < 0) {
/* arm any @noauto or @reboot jobs we're waiting on */
ArmJob(file, waiter->cw_NotifLine, t1, t2);
waiter->cw_Flag = -1;
- line->cl_Pid = -2;
+ line->cl_Pid = JOB_WAITING;
} else {
time_t t;
if (waiter->cw_MaxWait == 0)
@@ -1068,21 +1094,20 @@ ArmJob(CronFile *file, CronLine *line, time_t t1, time_t t2)
if (t > t1) {
struct tm *tp = localtime(&t);
- unsigned short n_wday = (tp->tm_mday - 1)%7 + 1;
- if (n_wday >= 4) {
+ char n_wday = 1 << ((tp->tm_mday - 1) / 7);
+ if (n_wday >= FOURTH_DOW) {
struct tm tnext = *tp;
tnext.tm_mday += 7;
if (mktime(&tnext) != (time_t)-1 && tnext.tm_mon != tp->tm_mon)
- n_wday |= 16; /* last dow in month is always recognized as 5th */
+ n_wday |= LAST_DOW; /* last dow in month is always recognized as 6th */
}
if (line->cl_Mins[tp->tm_min] &&
line->cl_Hrs[tp->tm_hour] &&
- (line->cl_Days[tp->tm_mday] || (n_wday && line->cl_Dow[tp->tm_wday]) ) &&
- line->cl_Mons[tp->tm_mon]
+ (line->cl_Days[tp->tm_mday] && n_wday & line->cl_Dow[tp->tm_wday])
) {
/* notifier will run soon enough, we wait for it */
waiter->cw_Flag = -1;
- line->cl_Pid = -2;
+ line->cl_Pid = JOB_WAITING;
break;
}
}
@@ -1091,7 +1116,7 @@ ArmJob(CronFile *file, CronLine *line, time_t t1, time_t t2)
}
waiter = waiter->cw_Next;
}
- if (line->cl_Pid == -1) {
+ if (line->cl_Pid == JOB_ARMED) {
/* job is ready to run */
file->cf_Ready = 1;
if (DebugOpt)
@@ -1135,18 +1160,18 @@ TestStartupJobs(void)
if (line->cl_Freq == -1) {
/* freq is @reboot */
- line->cl_Pid = -1;
+ line->cl_Pid = JOB_ARMED;
/* if we have any waiters, reset them and arm Pid = -2 */
waiter = line->cl_Waiters;
while (waiter != NULL) {
waiter->cw_Flag = -1;
- line->cl_Pid = -2;
+ line->cl_Pid = JOB_WAITING;
/* we only arm @noauto jobs we're waiting on, not other @reboot jobs */
if (waiter->cw_NotifLine && waiter->cw_NotifLine->cl_Freq == -2)
ArmJob(file, waiter->cw_NotifLine, t1, t1+60);
waiter = waiter->cw_Next;
}
- if (line->cl_Pid == -1) {
+ if (line->cl_Pid == JOB_ARMED) {
/* job is ready to run */
file->cf_Ready = 1;
++nJobs;
@@ -1173,7 +1198,7 @@ RunJobs(void)
file->cf_Ready = 0;
for (line = file->cf_LineBase; line; line = line->cl_Next) {
- if (line->cl_Pid == -1) {
+ if (line->cl_Pid == JOB_ARMED) {
RunJob(file, line);
@@ -1184,10 +1209,10 @@ RunJobs(void)
line->cl_Pid,
line->cl_Description
);
- if (line->cl_Pid < 0)
+ if (line->cl_Pid < JOB_NONE)
/* QUESTION how could this happen? RunJob will leave cl_Pid set to 0 or the actual pid */
file->cf_Ready = 1;
- else if (line->cl_Pid > 0)
+ else if (line->cl_Pid > JOB_NONE)
file->cf_Running = 1;
}
}
@@ -1214,7 +1239,7 @@ CheckJobs(void)
file->cf_Running = 0;
for (line = file->cf_LineBase; line; line = line->cl_Next) {
- if (line->cl_Pid > 0) {
+ if (line->cl_Pid > JOB_NONE) {
int status;
int r = waitpid(line->cl_Pid, &status, WNOHANG);
@@ -1237,7 +1262,7 @@ CheckJobs(void)
/* For the purposes of this check, increase the "still running" counter if a file has lines that are waiting */
if (file->cf_Running == 0) {
for (line = file->cf_LineBase; line; line = line->cl_Next) {
- if (line->cl_Pid == -2) {
+ if (line->cl_Pid == JOB_WAITING) {
nStillRunning += 1;
break;
}
@@ -1247,3 +1272,69 @@ CheckJobs(void)
return(nStillRunning);
}
+void
+PrintLine(CronLine *line)
+{
+ int i;
+ if (!line)
+ return;
+
+ printlogf(LOG_DEBUG, "CronLine:\n------------\n");
+ printlogf(LOG_DEBUG, " Command: %s\n", line->cl_Shell);
+ //printlogf(LOG_DEBUG, " Desc: %s\n", line->cl_Description);
+ printlogf(LOG_DEBUG, " Freq: %s\n", (line->cl_Freq ?
+ (line->cl_Freq == -1 ? "(noauto)" : "(startup") : "(use arrays)"));
+ printlogf(LOG_DEBUG, " PID: %d\n", line->cl_Pid);
+
+ printlogf(LOG_DEBUG, " Mins: ");
+ for (i = 0; i < 60; ++i)
+ printlogf(LOG_DEBUG, "%d", line->cl_Mins[i]);
+
+ printlogf(LOG_DEBUG, "\n Hrs: ");
+ for (i = 0; i < 24; ++i)
+ printlogf(LOG_DEBUG, "%d", line->cl_Hrs[i]);
+
+ printlogf(LOG_DEBUG, "\n Days: ");
+ for (i = 0; i < 32; ++i)
+ printlogf(LOG_DEBUG, "%d", line->cl_Days[i]);
+
+ printlogf(LOG_DEBUG, "\n Mons: ");
+ for (i = 0; i < 12; ++i)
+ printlogf(LOG_DEBUG, "%d", line->cl_Mons[i]);
+
+ printlogf(LOG_DEBUG, "\n Dow: ");
+ for (i = 0; i < 7; ++i)
+ printlogf(LOG_DEBUG, "%02x ", line->cl_Dow[i]);
+ printlogf(LOG_DEBUG, "\n\n");
+}
+
+void
+PrintFile(CronFile *file, char* loc, char* fname, int line)
+{
+ CronFile *f;
+ CronLine *l;
+
+ printlogf(LOG_DEBUG, "%s %s:%d\n", loc, fname, line);
+
+ if (!file)
+ return;
+
+ f = file;
+ while (f) {
+
+ if (strncmp(file->cf_UserName, "root", 4)) {
+ printlogf(LOG_DEBUG, "FILE %s/%s USER %s\n=============================\n",
+ file->cf_DPath,
+ file->cf_FileName,
+ file->cf_UserName);
+ l = f->cf_LineBase;
+
+ while (l) {
+ PrintLine(l);
+ l = l->cl_Next;
+ }
+ }
+ f = f->cf_Next;
+ }
+
+}
diff --git a/defs.h b/defs.h
index b221636..cf77b5f 100644
--- a/defs.h
+++ b/defs.h
@@ -17,6 +17,7 @@
*/
#define _XOPEN_SOURCE 1
+#define _DEFAULT_SOURCE 1
#define _BSD_SOURCE 1
#include <sys/types.h>
@@ -102,6 +103,16 @@
#define MONTHLY_FREQ 30 * DAILY_FREQ
#define YEARLY_FREQ 365 * DAILY_FREQ
+#define FIELD_MINUTES 60
+#define FIELD_HOURS 24
+#define FIELD_M_DAYS 32
+#define FIELD_MONTHS 12
+#define FIELD_W_DAYS 7
+
+#define JOB_NONE 0
+#define JOB_ARMED -1
+#define JOB_WAITING -2
+
#define LOGHEADER TIMESTAMP_FMT " %%s " LOG_IDENT ": "
#define LOCALE_LOGHEADER "%c %%s " LOG_IDENT ": "
@@ -112,9 +123,6 @@
#define RW_BUFFER 1024
#define LOG_BUFFER 2048 /* max size of log line */
-
-
-
typedef struct CronFile {
struct CronFile *cf_Next;
struct CronLine *cf_LineBase;
@@ -141,11 +149,11 @@ typedef struct CronLine {
int cl_Pid; /* running pid, 0, or armed (-1), or waiting (-2) */
int cl_MailFlag; /* running pid is for mail */
int cl_MailPos; /* 'empty file' size */
- char cl_Mins[60]; /* 0-59 */
- char cl_Hrs[24]; /* 0-23 */
- char cl_Days[32]; /* 1-31 */
- char cl_Mons[12]; /* 0-11 */
- char cl_Dow[7]; /* 0-6, beginning sunday */
+ char cl_Mins[FIELD_MINUTES]; /* 0-59 */
+ char cl_Hrs[FIELD_HOURS]; /* 0-23 */
+ char cl_Days[FIELD_M_DAYS]; /* 1-31 */
+ char cl_Mons[FIELD_MONTHS]; /* 0-11 */
+ char cl_Dow[FIELD_W_DAYS]; /* 0-6, beginning sunday */
} CronLine;
typedef struct CronWaiter {
--
2.13.2

View file

@ -1,45 +0,0 @@
From 496027f566df6968939c45ad1a0069af495a2d40 Mon Sep 17 00:00:00 2001
From: "Erik Falor (fadein)" <ewfalor@gmail.com>
Date: Tue, 24 Nov 2015 22:19:30 -0700
Subject: [PATCH 9/9] Updated manpage
---
crontab.1 | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/crontab.1 b/crontab.1
index 36043a9..1e2f59f 100644
--- a/crontab.1
+++ b/crontab.1
@@ -92,20 +92,23 @@ Some examples:
.fi
.PP
To request the last Monday, etc.
-in a month, ask for the \[lq]5th\[rq] one.
+in a month, ask for the \[lq]6th\[rq] one.
This will always match the last Monday, etc., even if there are
only four Mondays in the month:
.IP
.nf
\f[C]
#\ run\ at\ 11\ am\ on\ the\ first\ and\ last\ Mon,\ Tue,\ Wed\ of\ each\ month
-0\ 11\ 1,5\ *\ mon-wed\ date
+0\ 11\ 1,6\ *\ mon-wed\ date
+
+#\ run\ at\ noon\ on\ the\ fourth\ and\ last\ Friday\ of\ each\ month
+0\ 12\ 4,6\ *\ fri\ date
\f[]
.fi
.PP
-When the fourth Monday in a month is the last, it will match
-against both the \[lq]4th\[rq] and the \[lq]5th\[rq] (it will only
-run once if both are specified).
+When the fourth Monday in a month is also the last, this will match against
+both the \[lq]4th\[rq] and the \[lq]6th\[rq] but the job is scheduled only
+once.
.PP
The following formats are also recognized:
.IP
--
2.13.2

View file

@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=texinfo
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-5}
BUILD=${BUILD:-6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@ -84,6 +84,9 @@ find . \
# Fix for perl-5.28.0:
zcat $CWD/texinfo.fix.unescaped.left.brace.diff.gz | patch -p1 --verbose || exit 1
# The --disable-perl-xs below prevents some perl extensions from being replaced
# by C versions which have been known to choke over UTF-8 issues:
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@ -93,6 +96,7 @@ CFLAGS="$SLKCFLAGS" \
--infodir=/usr/info \
--disable-static \
--docdir=/usr/doc/texinfo-$VERSION \
--disable-perl-xs \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1

View file

@ -1,3 +1,7 @@
Thu Jun 28 17:35:27 UTC 2018
glibc: removed patch for libc.texinfo since the bug is fixed properly in
the texinfo package now.
+--------------------------+
Wed Jun 27 19:03:51 UTC 2018
glibc: don't request UTF-8 in libc.texinfo since it is built using
LANGUAGE=C LC_ALL=C which are non-UTF-8. This leads to a hang if makeinfo

View file

@ -153,10 +153,6 @@ apply_patches() {
zcat $CWD/glibc-c-utf8-locale.patch.gz | patch -p1 --verbose || exit 1
# Linux: use reserved name __key in pkey_get [BZ #22797]:
zcat $CWD/glibc.pkey_get.56170e0.diff.gz | patch -p1 --verbose || exit 1
# Don't request UTF-8 in libc.texinfo since it is built using the non-UTF-8
# C locale, and that causes a hang. This was exposed by the upgrade to
# perl-5.28, but I'm guessing the real bug is in the texinfo package...
zcat $CWD/glibc.libc.texinfo.no.utf8.patch.gz | patch -p1 --verbose || exit 1
}
# This is going to be the initial $DESTDIR:

View file

@ -1,25 +0,0 @@
From b90ec2dc463a134c7d3438c3b9b478fb0a6c5c94 Mon Sep 17 00:00:00 2001
From: Patrick J. Volkerding <volkerdi@slackware.com>
Date: Wed Jun 27 18:53:13 UTC 2018
Subject: [PATCH] Fix hang when locale is not UTF-8
This issue seems to have been exposed by the recent upgrade to perl-5.28.
If the system supports UTF-8 in general, but makeinfo is called using a
non-UTF-8 locale (and in this case, glibc calls it with LANG=C), then
makeinfo will get into an infinite loop and hang. We'll work around this
by removing the request for UTF-8 in the affected document.
An alternate fix would be to call makeinfo like this instead:
LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8 makeinfo [...]
--- ./manual/libc.texinfo.orig 2018-02-01 10:17:18.000000000 -0600
+++ ./manual/libc.texinfo 2018-06-27 13:34:48.901560769 -0500
@@ -2,7 +2,6 @@
@comment %**start of header (This is for running Texinfo on a region.)
@setfilename libc.info
@settitle The GNU C Library
-@documentencoding UTF-8
@c '@codequotebacktick on' and '@codequoteundirected on' require
@c Texinfo 5.0 or later, so use the older equivalent @set variables
@c supported in Texinfo 4.11 and later.