summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.rss61
-rw-r--r--ChangeLog.txt49
-rw-r--r--FILELIST.TXT266
-rw-r--r--README.initrd14
-rw-r--r--isolinux/message.txt2
-rw-r--r--kernels/VERSIONS.TXT2
-rwxr-xr-xrecompress.sh2
-rw-r--r--slackware64/a/maketag6
-rw-r--r--slackware64/a/maketag.ez6
-rw-r--r--slackware64/k/maketag2
-rw-r--r--slackware64/k/maketag.ez2
-rwxr-xr-xsource/a/libcgroup/libcgroup.SlackBuild7
-rw-r--r--source/a/libcgroup/libcgroup.loop.diff1595
-rwxr-xr-xsource/a/pkgtools/pkgtools.SlackBuild2
-rw-r--r--source/a/pkgtools/scripts/installpkg8
-rwxr-xr-xsource/installer/sources/efi.i586/EFI/BOOT/message.txt2
-rw-r--r--source/k/kernel-configs/config-generic-4.14.49 (renamed from source/k/kernel-configs/config-generic-4.14.48)13
-rw-r--r--source/k/kernel-configs/config-generic-4.14.49.x64 (renamed from source/k/kernel-configs/config-generic-4.14.48.x64)13
-rw-r--r--source/k/kernel-configs/config-generic-smp-4.14.49-smp (renamed from source/k/kernel-configs/config-generic-smp-4.14.48-smp)13
-rw-r--r--source/k/kernel-configs/config-huge-4.14.49 (renamed from source/k/kernel-configs/config-huge-4.14.48)13
-rw-r--r--source/k/kernel-configs/config-huge-4.14.49.x64 (renamed from source/k/kernel-configs/config-huge-4.14.48.x64)13
-rw-r--r--source/k/kernel-configs/config-huge-smp-4.14.49-smp (renamed from source/k/kernel-configs/config-huge-smp-4.14.48-smp)13
-rw-r--r--source/k/linux-4.14.48.tar.sign16
-rw-r--r--source/k/linux-4.14.49.tar.sign16
-rwxr-xr-xsource/l/LibRaw/LibRaw.SlackBuild2
-rwxr-xr-xsource/l/dconf-editor/dconf-editor.SlackBuild2
-rw-r--r--source/l/dconf-editor/doinst.sh2
-rwxr-xr-xsource/l/dconf/dconf.SlackBuild2
-rw-r--r--source/l/dconf/doinst.sh2
-rw-r--r--source/n/iproute2/iproute2-4.16.0.tar.signbin566 -> 0 bytes
-rw-r--r--source/n/iproute2/iproute2-4.17.0.tar.signbin0 -> 566 bytes
-rwxr-xr-xsource/n/iproute2/iproute2.SlackBuild2
-rw-r--r--source/x/wqy-zenhei-font-ttf/64-wqy-zenhei.conf93
-rwxr-xr-xsource/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild20
-rw-r--r--source/x/x11/build/xkbcomp2
35 files changed, 2047 insertions, 216 deletions
diff --git a/ChangeLog.rss b/ChangeLog.rss
index ef486bce..22608513 100644
--- a/ChangeLog.rss
+++ b/ChangeLog.rss
@@ -11,10 +11,67 @@
<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>Sat, 9 Jun 2018 16:57:58 GMT</pubDate>
- <lastBuildDate>Sun, 10 Jun 2018 06:58:02 GMT</lastBuildDate>
+ <pubDate>Tue, 12 Jun 2018 05:02:45 GMT</pubDate>
+ <lastBuildDate>Tue, 12 Jun 2018 18:58:04 GMT</lastBuildDate>
<generator>maintain_current_git.sh v 1.8</generator>
<item>
+ <title>Tue, 12 Jun 2018 05:02:45 GMT</title>
+ <pubDate>Tue, 12 Jun 2018 05:02:45 GMT</pubDate>
+ <link>https://git.slackware.nl/current/tag/?h=20180612050245</link>
+ <guid isPermaLink="false">20180612050245</guid>
+ <description>
+ <![CDATA[<pre>
+a/kernel-firmware-20180606_d114732-noarch-1.txz: Upgraded.
+a/kernel-generic-4.14.49-x86_64-1.txz: Upgraded.
+a/kernel-huge-4.14.49-x86_64-1.txz: Upgraded.
+a/kernel-modules-4.14.49-x86_64-1.txz: Upgraded.
+a/libcgroup-0.41-x86_64-4.txz: Rebuilt.
+ Apply all post 0.41 patches from git, including one for an infinite loop
+ bug that causes 100% CPU usage on one core. Thanks to chris.willing.
+a/pkgtools-15.0-noarch-17.txz: Rebuilt.
+ installpkg: Use terse mode if TERSE=0 is set in the environment (this already
+ works for removepkg and upgradepkg). This allows using terse mode in other
+ tools that use the pkgtools (such as slackpkg with: TERSE=0 slackpkg).
+ Thanks to Xsane.
+ap/hplip-3.18.6-x86_64-1.txz: Upgraded.
+d/kernel-headers-4.14.49-x86-1.txz: Upgraded.
+k/kernel-source-4.14.49-noarch-1.txz: Upgraded.
+ GPIO_AMDPT n -> m (thanks to walecha)
+ NFSD_V3_ACL n -> y (thanks to Jonathan Woithe)
+ NFS_V3_ACL n -> y (thanks to Jonathan Woithe)
+ NFS_V4_2 n -> y
+ +NFSD_V2_ACL y
+ +NFS_ACL_SUPPORT y
+ +NFS_V4_SECURITY_LABEL y
+l/LibRaw-0.18.12-x86_64-1.txz: Upgraded.
+ This update fixes bugs and security issues, including:
+ parse_qt: possible integer overflow
+ reject broken/crafted NOKIARAW files
+ recover read position if TIFF/EXIF tag is too long
+ possible infinite loop in parse_minolta()
+ possible stack overrun in X3F parser
+ out of bounds read in X3F parser
+ For more information, see:
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13735
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14265
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10528
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10529
+ (* Security fix *)
+l/dconf-0.26.1-x86_64-3.txz: Rebuilt.
+ Eliminate install script noise.
+l/dconf-editor-3.26.2-x86_64-3.txz: Rebuilt.
+ Eliminate install script noise.
+n/iproute2-4.17.0-x86_64-1.txz: Upgraded.
+x/wqy-zenhei-font-ttf-0.8.38_1-noarch-7.txz: Rebuilt.
+ Try to avoid overriding other font choices unless lang = zh-cn or zh-sg.
+x/xkbcomp-1.4.2-x86_64-1.txz: Upgraded.
+isolinux/initrd.img: Rebuilt.
+kernels/*: Upgraded.
+usb-and-pxe-installers/usbboot.img: Rebuilt.
+ </pre>]]>
+ </description>
+ </item>
+ <item>
<title>Sat, 9 Jun 2018 16:57:58 GMT</title>
<pubDate>Sat, 9 Jun 2018 16:57:58 GMT</pubDate>
<link>https://git.slackware.nl/current/tag/?h=20180609165758</link>
diff --git a/ChangeLog.txt b/ChangeLog.txt
index ac1539f2..10c224c5 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,52 @@
+Tue Jun 12 05:02:45 UTC 2018
+a/kernel-firmware-20180606_d114732-noarch-1.txz: Upgraded.
+a/kernel-generic-4.14.49-x86_64-1.txz: Upgraded.
+a/kernel-huge-4.14.49-x86_64-1.txz: Upgraded.
+a/kernel-modules-4.14.49-x86_64-1.txz: Upgraded.
+a/libcgroup-0.41-x86_64-4.txz: Rebuilt.
+ Apply all post 0.41 patches from git, including one for an infinite loop
+ bug that causes 100% CPU usage on one core. Thanks to chris.willing.
+a/pkgtools-15.0-noarch-17.txz: Rebuilt.
+ installpkg: Use terse mode if TERSE=0 is set in the environment (this already
+ works for removepkg and upgradepkg). This allows using terse mode in other
+ tools that use the pkgtools (such as slackpkg with: TERSE=0 slackpkg).
+ Thanks to Xsane.
+ap/hplip-3.18.6-x86_64-1.txz: Upgraded.
+d/kernel-headers-4.14.49-x86-1.txz: Upgraded.
+k/kernel-source-4.14.49-noarch-1.txz: Upgraded.
+ GPIO_AMDPT n -> m (thanks to walecha)
+ NFSD_V3_ACL n -> y (thanks to Jonathan Woithe)
+ NFS_V3_ACL n -> y (thanks to Jonathan Woithe)
+ NFS_V4_2 n -> y
+ +NFSD_V2_ACL y
+ +NFS_ACL_SUPPORT y
+ +NFS_V4_SECURITY_LABEL y
+l/LibRaw-0.18.12-x86_64-1.txz: Upgraded.
+ This update fixes bugs and security issues, including:
+ parse_qt: possible integer overflow
+ reject broken/crafted NOKIARAW files
+ recover read position if TIFF/EXIF tag is too long
+ possible infinite loop in parse_minolta()
+ possible stack overrun in X3F parser
+ out of bounds read in X3F parser
+ For more information, see:
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13735
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14265
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10528
+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10529
+ (* Security fix *)
+l/dconf-0.26.1-x86_64-3.txz: Rebuilt.
+ Eliminate install script noise.
+l/dconf-editor-3.26.2-x86_64-3.txz: Rebuilt.
+ Eliminate install script noise.
+n/iproute2-4.17.0-x86_64-1.txz: Upgraded.
+x/wqy-zenhei-font-ttf-0.8.38_1-noarch-7.txz: Rebuilt.
+ Try to avoid overriding other font choices unless lang = zh-cn or zh-sg.
+x/xkbcomp-1.4.2-x86_64-1.txz: Upgraded.
+isolinux/initrd.img: Rebuilt.
+kernels/*: Upgraded.
+usb-and-pxe-installers/usbboot.img: Rebuilt.
++--------------------------+
Sat Jun 9 16:57:58 UTC 2018
ap/cups-2.2.8-x86_64-2.txz: Rebuilt.
Applied upstream patch to fix high CPU usage in some situations.
diff --git a/FILELIST.TXT b/FILELIST.TXT
index b6d6e0ea..53f3db37 100644
--- a/FILELIST.TXT
+++ b/FILELIST.TXT
@@ -1,35 +1,35 @@
-Sat Jun 9 17:08:27 UTC 2018
+Tue Jun 12 05:32:10 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-09 16:57 .
+drwxr-xr-x 12 root root 4096 2018-06-12 05:02 .
-rw-r--r-- 1 root root 10064 2016-06-30 18:39 ./ANNOUNCE.14_2
-rw-r--r-- 1 root root 11329 2018-01-08 02:48 ./CHANGES_AND_HINTS.TXT
--rw-r--r-- 1 root root 894521 2018-06-08 21:03 ./CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2018-06-08 21:03 ./CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 894622 2018-06-09 17:09 ./CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2018-06-09 17:09 ./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 410525 2018-06-09 16:57 ./ChangeLog.txt
+-rw-r--r-- 1 root root 412755 2018-06-12 05:02 ./ChangeLog.txt
drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI
-drwxr-xr-x 2 root root 4096 2018-06-06 20:39 ./EFI/BOOT
+drwxr-xr-x 2 root root 4096 2018-06-12 04:57 ./EFI/BOOT
-rw-r--r-- 1 root root 1253376 2018-02-24 20:49 ./EFI/BOOT/bootx64.efi
-rw-r--r-- 1 root root 78 2013-09-23 20:35 ./EFI/BOOT/grub-embedded.cfg
-rw-r--r-- 1 root root 893 2018-04-17 21:17 ./EFI/BOOT/grub.cfg
--rw-r--r-- 2 root root 8824592 2018-06-06 00:18 ./EFI/BOOT/huge.s
--rw-r--r-- 2 root root 47914280 2018-06-06 20:38 ./EFI/BOOT/initrd.img
+-rw-r--r-- 2 root root 8828688 2018-06-12 03:31 ./EFI/BOOT/huge.s
+-rw-r--r-- 2 root root 47916607 2018-06-12 04:57 ./EFI/BOOT/initrd.img
-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 1177578 2018-06-08 21:02 ./FILELIST.TXT
+-rw-r--r-- 1 root root 1177694 2018-06-09 17:08 ./FILELIST.TXT
-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY
--rw-r--r-- 1 root root 724907 2018-06-09 17:06 ./PACKAGES.TXT
+-rw-r--r-- 1 root root 724907 2018-06-12 05:29 ./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-06 20:17 ./README.initrd
+-rw-r--r-- 1 root root 3634 2018-06-12 04:26 ./README.initrd
-rw-r--r-- 1 root root 34412 2017-12-01 17:44 ./README_CRYPT.TXT
-rw-r--r-- 1 root root 8751 2016-06-28 21:44 ./README_LVM.TXT
-rw-r--r-- 1 root root 19658 2013-06-18 04:34 ./README_RAID.TXT
@@ -678,16 +678,16 @@ drwxr-xr-x 2 root root 4096 2011-01-31 03:46 ./extra/xf86-video-nouveau-bl
-rw-r--r-- 1 root root 645 2010-04-27 21:47 ./extra/xf86-video-nouveau-blacklist/xf86-video-nouveau-blacklist-noarch-1.txt
-rw-r--r-- 1 root root 880 2010-04-27 21:47 ./extra/xf86-video-nouveau-blacklist/xf86-video-nouveau-blacklist-noarch-1.txz
-rw-r--r-- 1 root root 198 2010-04-27 21:47 ./extra/xf86-video-nouveau-blacklist/xf86-video-nouveau-blacklist-noarch-1.txz.asc
-drwxr-xr-x 3 root root 4096 2018-06-06 20:39 ./isolinux
+drwxr-xr-x 3 root root 4096 2018-06-12 04:57 ./isolinux
-rw-r--r-- 1 root root 6183 2017-11-18 18:47 ./isolinux/README.TXT
-rw-r--r-- 1 root root 788 2007-03-17 19:50 ./isolinux/README_SPLIT.TXT
-rw-r--r-- 1 root root 1474560 2018-02-24 20:49 ./isolinux/efiboot.img
-rw-r--r-- 1 root root 574 2013-10-24 00:19 ./isolinux/f2.txt
--rw-r--r-- 2 root root 47914280 2018-06-06 20:38 ./isolinux/initrd.img
+-rw-r--r-- 2 root root 47916607 2018-06-12 04:57 ./isolinux/initrd.img
-rw-r--r-- 1 root root 50 2003-01-18 00:02 ./isolinux/iso.sort
-rw-r--r-- 1 root root 24576 2016-05-27 20:36 ./isolinux/isolinux.bin
-rw-r--r-- 1 root root 578 2013-03-27 03:29 ./isolinux/isolinux.cfg
--rw-r--r-- 1 root root 683 2018-06-06 20:17 ./isolinux/message.txt
+-rw-r--r-- 1 root root 683 2018-06-12 04:26 ./isolinux/message.txt
drwxr-xr-x 2 root root 4096 2003-03-17 07:31 ./isolinux/sbootmgr
-rwxr-xr-x 1 root root 36064 1995-05-12 01:23 ./isolinux/sbootmgr/RAWRITE.EXE
-rw-r--r-- 1 root root 2138 1997-12-01 01:21 ./isolinux/sbootmgr/RAWRITE12.DOC
@@ -698,12 +698,12 @@ lrwxrwxrwx 1 root root 11 2009-08-23 23:37 ./isolinux/sbootmgr/RAWRITE13
-rw-r--r-- 1 root root 1291 2003-03-17 07:31 ./isolinux/sbootmgr/README.TXT
-rw-r--r-- 1 root root 110592 2003-03-16 08:38 ./isolinux/sbootmgr/sbootmgr.dsk
-rw-r--r-- 1 root root 3024 2018-03-03 01:37 ./isolinux/setpkg
-drwxr-xr-x 5 root root 4096 2018-06-06 20:17 ./kernels
--rw-r--r-- 1 root root 37 2018-06-06 20:17 ./kernels/VERSIONS.TXT
-drwxr-xr-x 2 root root 4096 2018-06-06 00:18 ./kernels/huge.s
--rw-r--r-- 1 root root 919689 2018-06-06 00:18 ./kernels/huge.s/System.map.gz
--rw-r--r-- 2 root root 8824592 2018-06-06 00:18 ./kernels/huge.s/bzImage
--rw-r--r-- 1 root root 180707 2018-06-06 00:11 ./kernels/huge.s/config
+drwxr-xr-x 5 root root 4096 2018-06-12 04:26 ./kernels
+-rw-r--r-- 1 root root 37 2018-06-12 04:26 ./kernels/VERSIONS.TXT
+drwxr-xr-x 2 root root 4096 2018-06-12 03:31 ./kernels/huge.s
+-rw-r--r-- 1 root root 920749 2018-06-12 03:31 ./kernels/huge.s/System.map.gz
+-rw-r--r-- 2 root root 8828688 2018-06-12 03:31 ./kernels/huge.s/bzImage
+-rw-r--r-- 1 root root 180740 2018-06-12 03:26 ./kernels/huge.s/config
drwxr-xr-x 2 root root 4096 2011-03-25 03:15 ./kernels/memtest
-rw-r--r-- 1 root root 60 2011-03-24 00:19 ./kernels/memtest/README
-rw-r--r-- 1 root root 150024 2013-10-17 04:15 ./kernels/memtest/memtest
@@ -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-09 17:06 ./slackware64
--rw-r--r-- 1 root root 288025 2018-06-09 17:06 ./slackware64/CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2018-06-09 17:06 ./slackware64/CHECKSUMS.md5.asc
--rw-r--r-- 1 root root 358846 2018-06-09 17:04 ./slackware64/FILE_LIST
--rw-r--r-- 1 root root 3609373 2018-06-09 17:05 ./slackware64/MANIFEST.bz2
+drwxr-xr-x 18 root root 4096 2018-06-12 05:29 ./slackware64
+-rw-r--r-- 1 root root 288025 2018-06-12 05:29 ./slackware64/CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2018-06-12 05:29 ./slackware64/CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 358846 2018-06-12 05:27 ./slackware64/FILE_LIST
+-rw-r--r-- 1 root root 3613269 2018-06-12 05:27 ./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-08 20:58 ./slackware64/a
+drwxr-xr-x 2 root root 20480 2018-06-12 05:27 ./slackware64/a
-rw-r--r-- 1 root root 327 2018-04-14 20:33 ./slackware64/a/aaa_base-14.2-x86_64-4.txt
-rw-r--r-- 1 root root 10972 2018-04-14 20:33 ./slackware64/a/aaa_base-14.2-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-04-14 20:33 ./slackware64/a/aaa_base-14.2-x86_64-4.txz.asc
@@ -898,18 +898,18 @@ drwxr-xr-x 2 root root 20480 2018-06-08 20:58 ./slackware64/a
-rw-r--r-- 1 root root 461 2018-04-13 13:06 ./slackware64/a/kbd-1.15.3-x86_64-4.txt
-rw-r--r-- 1 root root 1144600 2018-04-13 13:06 ./slackware64/a/kbd-1.15.3-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:06 ./slackware64/a/kbd-1.15.3-x86_64-4.txz.asc
--rw-r--r-- 1 root root 422 2018-06-05 21:31 ./slackware64/a/kernel-firmware-20180604_1fa9ce3-noarch-1.txt
--rw-r--r-- 1 root root 74505428 2018-06-05 21:31 ./slackware64/a/kernel-firmware-20180604_1fa9ce3-noarch-1.txz
--rw-r--r-- 1 root root 163 2018-06-05 21:31 ./slackware64/a/kernel-firmware-20180604_1fa9ce3-noarch-1.txz.asc
--rw-r--r-- 1 root root 624 2018-06-06 00:19 ./slackware64/a/kernel-generic-4.14.48-x86_64-1.txt
--rw-r--r-- 1 root root 5917292 2018-06-06 00:19 ./slackware64/a/kernel-generic-4.14.48-x86_64-1.txz
--rw-r--r-- 1 root root 163 2018-06-06 00:19 ./slackware64/a/kernel-generic-4.14.48-x86_64-1.txz.asc
--rw-r--r-- 1 root root 636 2018-06-06 00:18 ./slackware64/a/kernel-huge-4.14.48-x86_64-1.txt
--rw-r--r-- 1 root root 9336464 2018-06-06 00:18 ./slackware64/a/kernel-huge-4.14.48-x86_64-1.txz
--rw-r--r-- 1 root root 163 2018-06-06 00:18 ./slackware64/a/kernel-huge-4.14.48-x86_64-1.txz.asc
--rw-r--r-- 1 root root 567 2018-06-06 00:52 ./slackware64/a/kernel-modules-4.14.48-x86_64-1.txt
--rw-r--r-- 1 root root 35881868 2018-06-06 00:52 ./slackware64/a/kernel-modules-4.14.48-x86_64-1.txz
--rw-r--r-- 1 root root 163 2018-06-06 00:52 ./slackware64/a/kernel-modules-4.14.48-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 422 2018-06-11 22:44 ./slackware64/a/kernel-firmware-20180606_d114732-noarch-1.txt
+-rw-r--r-- 1 root root 74994552 2018-06-11 22:44 ./slackware64/a/kernel-firmware-20180606_d114732-noarch-1.txz
+-rw-r--r-- 1 root root 163 2018-06-11 22:44 ./slackware64/a/kernel-firmware-20180606_d114732-noarch-1.txz.asc
+-rw-r--r-- 1 root root 624 2018-06-12 03:32 ./slackware64/a/kernel-generic-4.14.49-x86_64-1.txt
+-rw-r--r-- 1 root root 5932644 2018-06-12 03:32 ./slackware64/a/kernel-generic-4.14.49-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-12 03:32 ./slackware64/a/kernel-generic-4.14.49-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 636 2018-06-12 03:31 ./slackware64/a/kernel-huge-4.14.49-x86_64-1.txt
+-rw-r--r-- 1 root root 9340920 2018-06-12 03:31 ./slackware64/a/kernel-huge-4.14.49-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-12 03:31 ./slackware64/a/kernel-huge-4.14.49-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 567 2018-06-12 04:04 ./slackware64/a/kernel-modules-4.14.49-x86_64-1.txt
+-rw-r--r-- 1 root root 35862712 2018-06-12 04:04 ./slackware64/a/kernel-modules-4.14.49-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-12 04:04 ./slackware64/a/kernel-modules-4.14.49-x86_64-1.txz.asc
-rw-r--r-- 1 root root 512 2018-04-13 13:07 ./slackware64/a/kmod-25-x86_64-2.txt
-rw-r--r-- 1 root root 201376 2018-04-13 13:07 ./slackware64/a/kmod-25-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:07 ./slackware64/a/kmod-25-x86_64-2.txz.asc
@@ -922,9 +922,9 @@ drwxr-xr-x 2 root root 20480 2018-06-08 20:58 ./slackware64/a
-rw-r--r-- 1 root root 152 2018-04-13 13:07 ./slackware64/a/lha-114i-x86_64-2.txt
-rw-r--r-- 1 root root 49220 2018-04-13 13:07 ./slackware64/a/lha-114i-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:07 ./slackware64/a/lha-114i-x86_64-2.txz.asc
--rw-r--r-- 1 root root 594 2018-04-13 13:07 ./slackware64/a/libcgroup-0.41-x86_64-3.txt
--rw-r--r-- 1 root root 117312 2018-04-13 13:07 ./slackware64/a/libcgroup-0.41-x86_64-3.txz
--rw-r--r-- 1 root root 163 2018-04-13 13:07 ./slackware64/a/libcgroup-0.41-x86_64-3.txz.asc
+-rw-r--r-- 1 root root 594 2018-06-11 22:55 ./slackware64/a/libcgroup-0.41-x86_64-4.txt
+-rw-r--r-- 1 root root 121716 2018-06-11 22:55 ./slackware64/a/libcgroup-0.41-x86_64-4.txz
+-rw-r--r-- 1 root root 163 2018-06-11 22:55 ./slackware64/a/libcgroup-0.41-x86_64-4.txz.asc
-rw-r--r-- 1 root root 332 2018-04-13 13:07 ./slackware64/a/libgudev-232-x86_64-2.txt
-rw-r--r-- 1 root root 70352 2018-04-13 13:07 ./slackware64/a/libgudev-232-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:07 ./slackware64/a/libgudev-232-x86_64-2.txz.asc
@@ -946,8 +946,8 @@ drwxr-xr-x 2 root root 20480 2018-06-08 20:58 ./slackware64/a
-rw-r--r-- 1 root root 405 2018-04-13 13:08 ./slackware64/a/lzlib-1.10-x86_64-3.txt
-rw-r--r-- 1 root root 55468 2018-04-13 13:08 ./slackware64/a/lzlib-1.10-x86_64-3.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:08 ./slackware64/a/lzlib-1.10-x86_64-3.txz.asc
--rw-r--r-- 1 root root 8905 2018-06-06 20:17 ./slackware64/a/maketag
--rw-r--r-- 1 root root 8905 2018-06-06 20:17 ./slackware64/a/maketag.ez
+-rw-r--r-- 1 root root 8905 2018-06-12 04:26 ./slackware64/a/maketag
+-rw-r--r-- 1 root root 8905 2018-06-12 04:26 ./slackware64/a/maketag.ez
-rw-r--r-- 1 root root 591 2018-05-31 17:59 ./slackware64/a/mcelog-158-x86_64-1.txt
-rw-r--r-- 1 root root 328472 2018-05-31 17:59 ./slackware64/a/mcelog-158-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-05-31 17:59 ./slackware64/a/mcelog-158-x86_64-1.txz.asc
@@ -993,9 +993,9 @@ drwxr-xr-x 2 root root 20480 2018-06-08 20:58 ./slackware64/a
-rw-r--r-- 1 root root 450 2018-04-13 13:10 ./slackware64/a/pcmciautils-018-x86_64-2.txt
-rw-r--r-- 1 root root 32548 2018-04-13 13:10 ./slackware64/a/pcmciautils-018-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:10 ./slackware64/a/pcmciautils-018-x86_64-2.txz.asc
--rw-r--r-- 1 root root 672 2018-06-08 20:00 ./slackware64/a/pkgtools-15.0-noarch-16.txt
--rw-r--r-- 1 root root 193864 2018-06-08 20:00 ./slackware64/a/pkgtools-15.0-noarch-16.txz
--rw-r--r-- 1 root root 163 2018-06-08 20:00 ./slackware64/a/pkgtools-15.0-noarch-16.txz.asc
+-rw-r--r-- 1 root root 672 2018-06-12 03:07 ./slackware64/a/pkgtools-15.0-noarch-17.txt
+-rw-r--r-- 1 root root 193908 2018-06-12 03:07 ./slackware64/a/pkgtools-15.0-noarch-17.txz
+-rw-r--r-- 1 root root 163 2018-06-12 03:07 ./slackware64/a/pkgtools-15.0-noarch-17.txz.asc
-rw-r--r-- 1 root root 523 2018-04-13 13:10 ./slackware64/a/plzip-1.7-x86_64-3.txt
-rw-r--r-- 1 root root 54224 2018-04-13 13:10 ./slackware64/a/plzip-1.7-x86_64-3.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:10 ./slackware64/a/plzip-1.7-x86_64-3.txz.asc
@@ -1047,7 +1047,7 @@ drwxr-xr-x 2 root root 20480 2018-06-08 20:58 ./slackware64/a
-rw-r--r-- 1 root root 378 2018-04-13 13:12 ./slackware64/a/sysvinit-scripts-2.1-noarch-9.txt
-rw-r--r-- 1 root root 21692 2018-04-13 13:12 ./slackware64/a/sysvinit-scripts-2.1-noarch-9.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:12 ./slackware64/a/sysvinit-scripts-2.1-noarch-9.txz.asc
--rw-r--r-- 1 root root 1370 2018-06-06 20:17 ./slackware64/a/tagfile
+-rw-r--r-- 1 root root 1370 2018-06-12 04:26 ./slackware64/a/tagfile
-rw-r--r-- 1 root root 379 2018-04-13 13:15 ./slackware64/a/tar-1.30-x86_64-2.txt
-rw-r--r-- 1 root root 793456 2018-04-13 13:15 ./slackware64/a/tar-1.30-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:15 ./slackware64/a/tar-1.30-x86_64-2.txz.asc
@@ -1096,7 +1096,7 @@ drwxr-xr-x 2 root root 20480 2018-06-08 20:58 ./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-09 17:04 ./slackware64/ap
+drwxr-xr-x 2 root root 20480 2018-06-12 05:26 ./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
@@ -1181,9 +1181,9 @@ drwxr-xr-x 2 root root 20480 2018-06-09 17:04 ./slackware64/ap
-rw-r--r-- 1 root root 547 2018-05-14 18:55 ./slackware64/ap/gutenprint-5.2.14-x86_64-2.txt
-rw-r--r-- 1 root root 2613904 2018-05-14 18:55 ./slackware64/ap/gutenprint-5.2.14-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-05-14 18:55 ./slackware64/ap/gutenprint-5.2.14-x86_64-2.txz.asc
--rw-r--r-- 1 root root 476 2018-05-25 18:25 ./slackware64/ap/hplip-3.18.5-x86_64-1.txt
--rw-r--r-- 1 root root 17448628 2018-05-25 18:25 ./slackware64/ap/hplip-3.18.5-x86_64-1.txz
--rw-r--r-- 1 root root 163 2018-05-25 18:25 ./slackware64/ap/hplip-3.18.5-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 476 2018-06-11 18:05 ./slackware64/ap/hplip-3.18.6-x86_64-1.txt
+-rw-r--r-- 1 root root 17602100 2018-06-11 18:05 ./slackware64/ap/hplip-3.18.6-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-11 18:05 ./slackware64/ap/hplip-3.18.6-x86_64-1.txz.asc
-rw-r--r-- 1 root root 481 2018-04-13 13:22 ./slackware64/ap/htop-2.2.0-x86_64-2.txt
-rw-r--r-- 1 root root 86676 2018-04-13 13:22 ./slackware64/ap/htop-2.2.0-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:22 ./slackware64/ap/htop-2.2.0-x86_64-2.txz.asc
@@ -1342,7 +1342,7 @@ drwxr-xr-x 2 root root 20480 2018-06-09 17:04 ./slackware64/ap
-rw-r--r-- 1 root root 506 2018-04-18 05:00 ./slackware64/ap/zsh-5.5.1-x86_64-1.txt
-rw-r--r-- 1 root root 2935316 2018-04-18 05:00 ./slackware64/ap/zsh-5.5.1-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-04-18 05:00 ./slackware64/ap/zsh-5.5.1-x86_64-1.txz.asc
-drwxr-xr-x 2 root root 12288 2018-06-06 22:32 ./slackware64/d
+drwxr-xr-x 2 root root 12288 2018-06-12 05:27 ./slackware64/d
-rw-r--r-- 1 root root 360 2018-05-22 19:10 ./slackware64/d/Cython-0.28.2-x86_64-1.txt
-rw-r--r-- 1 root root 4516748 2018-05-22 19:10 ./slackware64/d/Cython-0.28.2-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-05-22 19:10 ./slackware64/d/Cython-0.28.2-x86_64-1.txz.asc
@@ -1435,9 +1435,9 @@ drwxr-xr-x 2 root root 12288 2018-06-06 22:32 ./slackware64/d
-rw-r--r-- 1 root root 279 2018-04-13 13:53 ./slackware64/d/intltool-0.51.0-x86_64-4.txt
-rw-r--r-- 1 root root 48112 2018-04-13 13:53 ./slackware64/d/intltool-0.51.0-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:53 ./slackware64/d/intltool-0.51.0-x86_64-4.txz.asc
--rw-r--r-- 1 root root 332 2018-06-06 00:53 ./slackware64/d/kernel-headers-4.14.48-x86-1.txt
--rw-r--r-- 1 root root 870492 2018-06-06 00:53 ./slackware64/d/kernel-headers-4.14.48-x86-1.txz
--rw-r--r-- 1 root root 163 2018-06-06 00:53 ./slackware64/d/kernel-headers-4.14.48-x86-1.txz.asc
+-rw-r--r-- 1 root root 332 2018-06-12 04:04 ./slackware64/d/kernel-headers-4.14.49-x86-1.txt
+-rw-r--r-- 1 root root 870552 2018-06-12 04:04 ./slackware64/d/kernel-headers-4.14.49-x86-1.txz
+-rw-r--r-- 1 root root 163 2018-06-12 04:04 ./slackware64/d/kernel-headers-4.14.49-x86-1.txz.asc
-rw-r--r-- 1 root root 498 2018-04-13 13:53 ./slackware64/d/libtool-2.4.6-x86_64-7.txt
-rw-r--r-- 1 root root 428268 2018-04-13 13:53 ./slackware64/d/libtool-2.4.6-x86_64-7.txz
-rw-r--r-- 1 root root 163 2018-04-13 13:53 ./slackware64/d/libtool-2.4.6-x86_64-7.txz.asc
@@ -1552,15 +1552,15 @@ drwxr-xr-x 2 root root 4096 2016-04-01 21:41 ./slackware64/f
-rw-r--r-- 1 root root 1075 2018-03-01 07:54 ./slackware64/f/maketag
-rw-r--r-- 1 root root 1075 2018-03-01 07:54 ./slackware64/f/maketag.ez
-rw-r--r-- 1 root root 32 2018-03-01 07:54 ./slackware64/f/tagfile
-drwxr-xr-x 2 root root 4096 2018-06-06 22:31 ./slackware64/k
+drwxr-xr-x 2 root root 4096 2018-06-12 05:26 ./slackware64/k
-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/k/install-packages
-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/k/install.end
--rw-r--r-- 1 root root 317 2018-06-06 00:10 ./slackware64/k/kernel-source-4.14.48-noarch-1.txt
--rw-r--r-- 1 root root 102055392 2018-06-06 00:10 ./slackware64/k/kernel-source-4.14.48-noarch-1.txz
--rw-r--r-- 1 root root 163 2018-06-06 00:10 ./slackware64/k/kernel-source-4.14.48-noarch-1.txz.asc
--rw-r--r-- 1 root root 1171 2018-06-06 20:18 ./slackware64/k/maketag
--rw-r--r-- 1 root root 1171 2018-06-06 20:18 ./slackware64/k/maketag.ez
--rw-r--r-- 1 root root 18 2018-06-06 20:18 ./slackware64/k/tagfile
+-rw-r--r-- 1 root root 317 2018-06-12 03:25 ./slackware64/k/kernel-source-4.14.49-noarch-1.txt
+-rw-r--r-- 1 root root 102048076 2018-06-12 03:25 ./slackware64/k/kernel-source-4.14.49-noarch-1.txz
+-rw-r--r-- 1 root root 163 2018-06-12 03:25 ./slackware64/k/kernel-source-4.14.49-noarch-1.txz.asc
+-rw-r--r-- 1 root root 1171 2018-06-12 04:26 ./slackware64/k/maketag
+-rw-r--r-- 1 root root 1171 2018-06-12 04:26 ./slackware64/k/maketag.ez
+-rw-r--r-- 1 root root 18 2018-06-12 04:26 ./slackware64/k/tagfile
drwxr-xr-x 2 root root 45056 2018-06-03 05:20 ./slackware64/kde
-rw-r--r-- 1 root root 319 2018-06-02 22:05 ./slackware64/kde/amarok-2.9.0-x86_64-3.txt
-rw-r--r-- 1 root root 47003780 2018-06-02 22:05 ./slackware64/kde/amarok-2.9.0-x86_64-3.txz
@@ -2401,16 +2401,16 @@ drwxr-xr-x 2 root root 20480 2016-03-10 03:11 ./slackware64/kdei
-rw-r--r-- 1 root root 7544 2018-03-01 07:54 ./slackware64/kdei/maketag
-rw-r--r-- 1 root root 7544 2018-03-01 07:54 ./slackware64/kdei/maketag.ez
-rw-r--r-- 1 root root 1500 2018-03-01 07:54 ./slackware64/kdei/tagfile
-drwxr-xr-x 2 root root 69632 2018-06-08 20:58 ./slackware64/l
+drwxr-xr-x 2 root root 69632 2018-06-12 05:26 ./slackware64/l
-rw-r--r-- 1 root root 338 2018-04-13 14:13 ./slackware64/l/ConsoleKit2-1.0.0-x86_64-4.txt
-rw-r--r-- 1 root root 149752 2018-04-13 14:13 ./slackware64/l/ConsoleKit2-1.0.0-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-04-13 14:13 ./slackware64/l/ConsoleKit2-1.0.0-x86_64-4.txz.asc
-rw-r--r-- 1 root root 329 2018-04-13 14:14 ./slackware64/l/GConf-3.2.6-x86_64-4.txt
-rw-r--r-- 1 root root 930172 2018-04-13 14:14 ./slackware64/l/GConf-3.2.6-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-04-13 14:14 ./slackware64/l/GConf-3.2.6-x86_64-4.txz.asc
--rw-r--r-- 1 root root 333 2018-05-03 13:05 ./slackware64/l/LibRaw-0.18.10-x86_64-1.txt
--rw-r--r-- 1 root root 367316 2018-05-03 13:05 ./slackware64/l/LibRaw-0.18.10-x86_64-1.txz
--rw-r--r-- 1 root root 163 2018-05-03 13:05 ./slackware64/l/LibRaw-0.18.10-x86_64-1.txz.asc
+-rw-r--r-- 1 root root 333 2018-06-11 17:52 ./slackware64/l/LibRaw-0.18.12-x86_64-1.txt
+-rw-r--r-- 1 root root 366988 2018-06-11 17:52 ./slackware64/l/LibRaw-0.18.12-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-11 17:52 ./slackware64/l/LibRaw-0.18.12-x86_64-1.txz.asc
-rw-r--r-- 1 root root 569 2018-05-08 02:26 ./slackware64/l/M2Crypto-0.27.0-x86_64-4.txt
-rw-r--r-- 1 root root 734612 2018-05-08 02:26 ./slackware64/l/M2Crypto-0.27.0-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-05-08 02:26 ./slackware64/l/M2Crypto-0.27.0-x86_64-4.txz.asc
@@ -2528,12 +2528,12 @@ drwxr-xr-x 2 root root 69632 2018-06-08 20:58 ./slackware64/l
-rw-r--r-- 1 root root 246 2018-04-13 14:29 ./slackware64/l/dbus-python-1.2.6-x86_64-2.txt
-rw-r--r-- 1 root root 164400 2018-04-13 14:29 ./slackware64/l/dbus-python-1.2.6-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 14:29 ./slackware64/l/dbus-python-1.2.6-x86_64-2.txz.asc
--rw-r--r-- 1 root root 268 2018-04-13 14:29 ./slackware64/l/dconf-0.26.1-x86_64-2.txt
--rw-r--r-- 1 root root 103932 2018-04-13 14:29 ./slackware64/l/dconf-0.26.1-x86_64-2.txz
--rw-r--r-- 1 root root 163 2018-04-13 14:29 ./slackware64/l/dconf-0.26.1-x86_64-2.txz.asc
--rw-r--r-- 1 root root 386 2018-04-13 14:29 ./slackware64/l/dconf-editor-3.26.2-x86_64-2.txt
--rw-r--r-- 1 root root 294900 2018-04-13 14:29 ./slackware64/l/dconf-editor-3.26.2-x86_64-2.txz
--rw-r--r-- 1 root root 163 2018-04-13 14:29 ./slackware64/l/dconf-editor-3.26.2-x86_64-2.txz.asc
+-rw-r--r-- 1 root root 268 2018-06-10 04:12 ./slackware64/l/dconf-0.26.1-x86_64-3.txt
+-rw-r--r-- 1 root root 103860 2018-06-10 04:12 ./slackware64/l/dconf-0.26.1-x86_64-3.txz
+-rw-r--r-- 1 root root 163 2018-06-10 04:12 ./slackware64/l/dconf-0.26.1-x86_64-3.txz.asc
+-rw-r--r-- 1 root root 386 2018-06-10 04:13 ./slackware64/l/dconf-editor-3.26.2-x86_64-3.txt
+-rw-r--r-- 1 root root 295312 2018-06-10 04:13 ./slackware64/l/dconf-editor-3.26.2-x86_64-3.txz
+-rw-r--r-- 1 root root 163 2018-06-10 04:13 ./slackware64/l/dconf-editor-3.26.2-x86_64-3.txz.asc
-rw-r--r-- 1 root root 649 2018-04-13 14:29 ./slackware64/l/desktop-file-utils-0.23-x86_64-2.txt
-rw-r--r-- 1 root root 55672 2018-04-13 14:29 ./slackware64/l/desktop-file-utils-0.23-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 14:29 ./slackware64/l/desktop-file-utils-0.23-x86_64-2.txz.asc
@@ -3349,7 +3349,7 @@ drwxr-xr-x 2 root root 69632 2018-06-08 20:58 ./slackware64/l
-rw-r--r-- 1 root root 388 2018-04-13 15:26 ./slackware64/l/zlib-1.2.11-x86_64-2.txt
-rw-r--r-- 1 root root 103500 2018-04-13 15:26 ./slackware64/l/zlib-1.2.11-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 15:26 ./slackware64/l/zlib-1.2.11-x86_64-2.txz.asc
-drwxr-xr-x 2 root root 32768 2018-06-08 20:58 ./slackware64/n
+drwxr-xr-x 2 root root 32768 2018-06-12 05:27 ./slackware64/n
-rw-r--r-- 1 root root 368 2018-06-05 04:17 ./slackware64/n/ModemManager-1.8.0-x86_64-1.txt
-rw-r--r-- 1 root root 1510328 2018-06-05 04:17 ./slackware64/n/ModemManager-1.8.0-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-06-05 04:17 ./slackware64/n/ModemManager-1.8.0-x86_64-1.txz.asc
@@ -3463,9 +3463,9 @@ drwxr-xr-x 2 root root 32768 2018-06-08 20:58 ./slackware64/n
-rw-r--r-- 1 root root 163 2018-04-13 15:37 ./slackware64/n/inetd-1.79s-x86_64-11.txz.asc
-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/n/install-packages
-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/n/install.end
--rw-r--r-- 1 root root 476 2018-04-13 15:38 ./slackware64/n/iproute2-4.16.0-x86_64-2.txt
--rw-r--r-- 1 root root 751740 2018-04-13 15:38 ./slackware64/n/iproute2-4.16.0-x86_64-2.txz
--rw-r--r-- 1 root root 163 2018-04-13 15:38 ./slackware64/n/iproute2-4.16.0-x86_64-2.txz.asc
+-rw-r--r-- 1 root root 476 2018-06-11 18:03 ./slackware64/n/iproute2-4.17.0-x86_64-1.txt
+-rw-r--r-- 1 root root 777196 2018-06-11 18:03 ./slackware64/n/iproute2-4.17.0-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-11 18:03 ./slackware64/n/iproute2-4.17.0-x86_64-1.txz.asc
-rw-r--r-- 1 root root 442 2018-04-18 18:19 ./slackware64/n/ipset-6.38-x86_64-1.txt
-rw-r--r-- 1 root root 78568 2018-04-18 18:19 ./slackware64/n/ipset-6.38-x86_64-1.txz
-rw-r--r-- 1 root root 163 2018-04-18 18:19 ./slackware64/n/ipset-6.38-x86_64-1.txz.asc
@@ -3829,7 +3829,7 @@ drwxr-xr-x 2 root root 4096 2018-04-18 08:32 ./slackware64/tcl
-rw-r--r-- 1 root root 198 2018-04-13 16:03 ./slackware64/tcl/tk-8.6.8-x86_64-2.txt
-rw-r--r-- 1 root root 1762804 2018-04-13 16:03 ./slackware64/tcl/tk-8.6.8-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 16:03 ./slackware64/tcl/tk-8.6.8-x86_64-2.txz.asc
-drwxr-xr-x 2 root root 65536 2018-06-06 22:32 ./slackware64/x
+drwxr-xr-x 2 root root 65536 2018-06-12 05:27 ./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
@@ -4288,9 +4288,9 @@ drwxr-xr-x 2 root root 65536 2018-06-06 22:32 ./slackware64/x
-rw-r--r-- 1 root root 527 2018-04-17 09:28 ./slackware64/x/vulkan-sdk-1.1.70.0-x86_64-2.txt
-rw-r--r-- 1 root root 3706184 2018-04-17 09:28 ./slackware64/x/vulkan-sdk-1.1.70.0-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-17 09:28 ./slackware64/x/vulkan-sdk-1.1.70.0-x86_64-2.txz.asc
--rw-r--r-- 1 root root 668 2018-06-06 06:20 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txt
--rw-r--r-- 1 root root 5750112 2018-06-06 06:20 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txz
--rw-r--r-- 1 root root 163 2018-06-06 06:20 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txz.asc
+-rw-r--r-- 1 root root 668 2018-06-10 05:31 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-7.txt
+-rw-r--r-- 1 root root 5750408 2018-06-10 05:31 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-7.txz
+-rw-r--r-- 1 root root 163 2018-06-10 05:31 ./slackware64/x/wqy-zenhei-font-ttf-0.8.38_1-noarch-7.txz.asc
-rw-r--r-- 1 root root 606 2018-04-29 17:16 ./slackware64/x/x11-skel-7.7-x86_64-4.txt
-rw-r--r-- 1 root root 12296 2018-04-29 17:16 ./slackware64/x/x11-skel-7.7-x86_64-4.txz
-rw-r--r-- 1 root root 163 2018-04-29 17:16 ./slackware64/x/x11-skel-7.7-x86_64-4.txz.asc
@@ -4558,9 +4558,9 @@ drwxr-xr-x 2 root root 65536 2018-06-06 22:32 ./slackware64/x
-rw-r--r-- 1 root root 495 2018-04-13 06:07 ./slackware64/x/xinput-1.6.2-x86_64-2.txt
-rw-r--r-- 1 root root 38848 2018-04-13 06:07 ./slackware64/x/xinput-1.6.2-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 06:07 ./slackware64/x/xinput-1.6.2-x86_64-2.txz.asc
--rw-r--r-- 1 root root 306 2018-04-13 06:07 ./slackware64/x/xkbcomp-1.4.1-x86_64-2.txt
--rw-r--r-- 1 root root 97936 2018-04-13 06:07 ./slackware64/x/xkbcomp-1.4.1-x86_64-2.txz
--rw-r--r-- 1 root root 163 2018-04-13 06:07 ./slackware64/x/xkbcomp-1.4.1-x86_64-2.txz.asc
+-rw-r--r-- 1 root root 306 2018-06-11 18:01 ./slackware64/x/xkbcomp-1.4.2-x86_64-1.txt
+-rw-r--r-- 1 root root 98116 2018-06-11 18:01 ./slackware64/x/xkbcomp-1.4.2-x86_64-1.txz
+-rw-r--r-- 1 root root 163 2018-06-11 18:01 ./slackware64/x/xkbcomp-1.4.2-x86_64-1.txz.asc
-rw-r--r-- 1 root root 298 2018-04-13 06:07 ./slackware64/x/xkbevd-1.1.4-x86_64-2.txt
-rw-r--r-- 1 root root 28952 2018-04-13 06:07 ./slackware64/x/xkbevd-1.1.4-x86_64-2.txz
-rw-r--r-- 1 root root 163 2018-04-13 06:07 ./slackware64/x/xkbevd-1.1.4-x86_64-2.txz.asc
@@ -4927,11 +4927,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-09 17:08 ./source
--rw-r--r-- 1 root root 451417 2018-06-09 17:08 ./source/CHECKSUMS.md5
--rw-r--r-- 1 root root 163 2018-06-09 17:08 ./source/CHECKSUMS.md5.asc
--rw-r--r-- 1 root root 638839 2018-06-09 17:07 ./source/FILE_LIST
--rw-r--r-- 1 root root 14762500 2018-06-09 17:07 ./source/MANIFEST.bz2
+drwxr-xr-x 19 root root 4096 2018-06-12 05:32 ./source
+-rw-r--r-- 1 root root 451567 2018-06-12 05:32 ./source/CHECKSUMS.md5
+-rw-r--r-- 1 root root 163 2018-06-12 05:32 ./source/CHECKSUMS.md5.asc
+-rw-r--r-- 1 root root 639025 2018-06-12 05:30 ./source/FILE_LIST
+-rw-r--r-- 1 root root 14759779 2018-06-12 05:30 ./source/MANIFEST.bz2
-rw-r--r-- 1 root root 1314 2006-10-02 04:40 ./source/README.TXT
drwxr-xr-x 108 root root 4096 2018-05-24 18:00 ./source/a
-rw-r--r-- 1 root root 567 2018-03-13 18:43 ./source/a/FTBFSlog
@@ -5367,12 +5367,13 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/lha
-rwxr-xr-x 1 root root 3129 2018-04-23 17:20 ./source/a/lha/lha.SlackBuild
-rw-r--r-- 1 root root 45132 2006-12-13 19:47 ./source/a/lha/lha_1.14i-10.1.diff.gz
-rw-r--r-- 1 root root 603 2018-02-27 06:13 ./source/a/lha/slack-desc
-drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/libcgroup
+drwxr-xr-x 2 root root 4096 2018-06-11 22:52 ./source/a/libcgroup
-rw-r--r-- 1 root root 513 2011-01-10 20:23 ./source/a/libcgroup/doinst.sh.gz
-rw-r--r-- 1 root root 406464 2014-01-13 14:10 ./source/a/libcgroup/libcgroup-0.41.tar.xz
--rwxr-xr-x 1 root root 5422 2018-04-23 17:20 ./source/a/libcgroup/libcgroup.SlackBuild
+-rwxr-xr-x 1 root root 5576 2018-06-11 22:54 ./source/a/libcgroup/libcgroup.SlackBuild
-rw-r--r-- 1 root root 282 2011-01-10 20:16 ./source/a/libcgroup/libcgroup.conf.diff.gz
-rw-r--r-- 1 root root 1375 2017-02-28 18:42 ./source/a/libcgroup/libcgroup.init.diff.gz
+-rw-r--r-- 1 root root 12460 2018-06-11 22:52 ./source/a/libcgroup/libcgroup.loop.diff.gz
-rw-r--r-- 1 root root 1052 2018-02-27 06:13 ./source/a/libcgroup/slack-desc
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/libgudev
-rw-r--r-- 1 root root 270904 2017-08-31 23:58 ./source/a/libgudev/libgudev-232.tar.xz
@@ -5527,10 +5528,10 @@ drwxr-xr-x 2 root root 4096 2018-04-11 19:37 ./source/a/pkgtools/manpages
-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8
-rw-r--r-- 1 root root 3189 2018-05-27 20:08 ./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 3451 2018-06-08 19:51 ./source/a/pkgtools/pkgtools.SlackBuild
+-rwxr-xr-x 1 root root 3451 2018-06-12 03:00 ./source/a/pkgtools/pkgtools.SlackBuild
drwxr-xr-x 2 root root 4096 2018-05-27 20:01 ./source/a/pkgtools/scripts
-rw-r--r-- 1 root root 3591 2018-04-11 19:36 ./source/a/pkgtools/scripts/explodepkg
--rw-r--r-- 1 root root 25896 2018-05-31 19:37 ./source/a/pkgtools/scripts/installpkg
+-rw-r--r-- 1 root root 26031 2018-06-12 02:59 ./source/a/pkgtools/scripts/installpkg
-rw-r--r-- 1 root root 13728 2018-04-28 19:17 ./source/a/pkgtools/scripts/makebootdisk
-rw-r--r-- 1 root root 15923 2018-05-22 00:23 ./source/a/pkgtools/scripts/makepkg
-rw-r--r-- 1 root root 4712 2018-04-11 20:28 ./source/a/pkgtools/scripts/pkgdiff
@@ -5695,8 +5696,8 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/time
-rw-r--r-- 1 root root 884 2018-02-27 06:13 ./source/a/time/slack-desc
-rw-r--r-- 1 root root 426163 2018-03-12 22:16 ./source/a/time/time-1.9.tar.lz
-rwxr-xr-x 1 root root 4672 2018-04-23 17:20 ./source/a/time/time.SlackBuild
-drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/tree
--rw-r--r-- 1 root root 869 2018-02-27 06:13 ./source/a/tree/slack-desc
+drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/tree
+-rw-r--r-- 1 root root 869 2018-02-27 06:13 ./source/a/tree/slack-desc
-rw-r--r-- 1 root root 39780 2014-04-23 21:39 ./source/a/tree/tree-1.7.0.tar.xz
-rwxr-xr-x 1 root root 3316 2018-04-23 17:20 ./source/a/tree/tree.SlackBuild
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/udisks
@@ -5961,9 +5962,9 @@ drwxr-xr-x 2 root root 4096 2018-04-23 21:37 ./source/ap/gutenprint
-rwxr-xr-x 1 root root 4757 2018-05-14 18:55 ./source/ap/gutenprint/gutenprint.SlackBuild
-rw-r--r-- 1 root root 121 2016-02-03 04:22 ./source/ap/gutenprint/setup.cups-genppdupdate
-rw-r--r-- 1 root root 1005 2018-02-27 06:13 ./source/ap/gutenprint/slack-desc
-drwxr-xr-x 2 root root 4096 2018-05-25 18:24 ./source/ap/hplip
+drwxr-xr-x 2 root root 4096 2018-06-11 18:04 ./source/ap/hplip
-rw-r--r-- 1 root root 118 2009-03-05 16:38 ./source/ap/hplip/doinst.sh.gz
--rw-r--r-- 1 root root 18378350 2018-05-24 10:23 ./source/ap/hplip/hplip-3.18.5.tar.lz
+-rw-r--r-- 1 root root 18521387 2018-06-11 04:48 ./source/ap/hplip/hplip-3.18.6.tar.lz
-rwxr-xr-x 1 root root 4965 2018-05-25 18:23 ./source/ap/hplip/hplip.SlackBuild
-rw-r--r-- 1 root root 419 2013-03-20 04:46 ./source/ap/hplip/hplip.no.upgrade.diff.gz
-rw-r--r-- 1 root root 291 2017-11-28 00:41 ./source/ap/hplip/hplip.python3.shebang.diff.gz
@@ -6752,7 +6753,7 @@ drwxr-xr-x 3 root root 4096 2013-03-11 21:15 ./source/installer/sources/e
drwxr-xr-x 2 root root 4096 2015-11-24 23:20 ./source/installer/sources/efi.i586/EFI/BOOT
-rwxr-xr-x 1 root root 237749 2017-11-20 18:36 ./source/installer/sources/efi.i586/EFI/BOOT/BOOTX64.EFI
-rwxr-xr-x 1 root root 803 2013-03-27 03:35 ./source/installer/sources/efi.i586/EFI/BOOT/elilo.conf
--rwxr-xr-x 1 root root 568 2018-04-18 05:03 ./source/installer/sources/efi.i586/EFI/BOOT/message.txt
+-rwxr-xr-x 1 root root 577 2018-06-11 18:52 ./source/installer/sources/efi.i586/EFI/BOOT/message.txt
drwxr-xr-x 3 root root 4096 2013-03-11 21:15 ./source/installer/sources/efi.x86_64
drwxr-xr-x 3 root root 4096 2013-03-11 21:15 ./source/installer/sources/efi.x86_64/EFI
drwxr-xr-x 2 root root 4096 2018-03-11 02:36 ./source/installer/sources/efi.x86_64/EFI/BOOT
@@ -6762,21 +6763,21 @@ drwxr-xr-x 2 root root 4096 2018-03-11 02:36 ./source/installer/sources/e
drwxr-xr-x 2 root root 4096 2018-06-06 20:30 ./source/installer/sources/initrd
-rw-r--r-- 1 root root 142812 2018-06-06 20:30 ./source/installer/sources/initrd/skeleton_initrd.tar.gz
-rw-r--r-- 1 root root 16894 2012-09-03 20:53 ./source/installer/usbimg2disk.sh
-drwxr-xr-x 4 root root 4096 2018-06-05 21:18 ./source/k
+drwxr-xr-x 4 root root 4096 2018-06-11 23:18 ./source/k
-rwxr-xr-x 1 root root 7342 2018-03-15 18:04 ./source/k/build-all-kernels.sh
-drwxr-xr-x 2 root root 4096 2018-06-05 21:42 ./source/k/kernel-configs
--rw-r--r-- 1 root root 180759 2018-06-05 21:28 ./source/k/kernel-configs/config-generic-4.14.48
--rw-r--r-- 1 root root 180707 2018-06-05 21:41 ./source/k/kernel-configs/config-generic-4.14.48.x64
--rw-r--r-- 1 root root 182103 2018-06-05 21:28 ./source/k/kernel-configs/config-generic-smp-4.14.48-smp
--rw-r--r-- 1 root root 180759 2018-06-05 21:28 ./source/k/kernel-configs/config-huge-4.14.48
--rw-r--r-- 1 root root 180707 2018-06-05 21:41 ./source/k/kernel-configs/config-huge-4.14.48.x64
--rw-r--r-- 1 root root 182103 2018-06-05 21:28 ./source/k/kernel-configs/config-huge-smp-4.14.48-smp
+drwxr-xr-x 2 root root 4096 2018-06-12 00:59 ./source/k/kernel-configs
+-rw-r--r-- 1 root root 180792 2018-06-12 00:55 ./source/k/kernel-configs/config-generic-4.14.49
+-rw-r--r-- 1 root root 180740 2018-06-12 00:59 ./source/k/kernel-configs/config-generic-4.14.49.x64
+-rw-r--r-- 1 root root 182136 2018-06-12 00:55 ./source/k/kernel-configs/config-generic-smp-4.14.49-smp
+-rw-r--r-- 1 root root 180792 2018-06-12 00:55 ./source/k/kernel-configs/config-huge-4.14.49
+-rw-r--r-- 1 root root 180740 2018-06-12 00:58 ./source/k/kernel-configs/config-huge-4.14.49.x64
+-rw-r--r-- 1 root root 182136 2018-06-12 00:55 ./source/k/kernel-configs/config-huge-smp-4.14.49-smp
-rwxr-xr-x 1 root root 7149 2018-03-26 04:29 ./source/k/kernel-generic.SlackBuild
-rwxr-xr-x 1 root root 3779 2018-03-15 06:02 ./source/k/kernel-headers.SlackBuild
-rwxr-xr-x 1 root root 5604 2018-03-15 06:02 ./source/k/kernel-modules.SlackBuild
-rwxr-xr-x 1 root root 7881 2018-04-12 22:05 ./source/k/kernel-source.SlackBuild
--rw-r--r-- 1 root root 833 2018-06-05 09:45 ./source/k/linux-4.14.48.tar.sign
--rw-r--r-- 1 root root 100929592 2018-06-05 09:45 ./source/k/linux-4.14.48.tar.xz
+-rw-r--r-- 1 root root 833 2018-06-11 20:59 ./source/k/linux-4.14.49.tar.sign
+-rw-r--r-- 1 root root 100928468 2018-06-11 20:59 ./source/k/linux-4.14.49.tar.xz
drwxr-xr-x 2 root root 4096 2018-03-05 18:29 ./source/k/slack-desc
-rw-r--r-- 1 root root 1138 2018-02-27 06:16 ./source/k/slack-desc/slack-desc.kernel-generic-smp.i686
-rw-r--r-- 1 root root 1041 2018-02-27 06:16 ./source/k/slack-desc/slack-desc.kernel-generic.i586
@@ -7923,7 +7924,7 @@ drwxr-xr-x 2 root root 4096 2018-02-27 06:35 ./source/kdei/kde-l10n/slack
-rw-r--r-- 1 root root 648 2018-02-27 06:35 ./source/kdei/kde-l10n/slack-desc/slack-desc.kde-l10n-wa
-rw-r--r-- 1 root root 698 2018-02-27 06:37 ./source/kdei/kde-l10n/slack-desc/slack-desc.kde-l10n-zh_CN
-rw-r--r-- 1 root root 687 2018-02-27 06:37 ./source/kdei/kde-l10n/slack-desc/slack-desc.kde-l10n-zh_TW
-drwxr-xr-x 312 root root 12288 2018-06-08 19:29 ./source/l
+drwxr-xr-x 312 root root 12288 2018-06-11 17:52 ./source/l
drwxr-xr-x 3 root root 4096 2018-04-23 17:20 ./source/l/ConsoleKit2
-rw-r--r-- 1 root root 705880 2015-08-10 06:49 ./source/l/ConsoleKit2/ConsoleKit2-1.0.0.tar.xz
-rwxr-xr-x 1 root root 5303 2018-04-23 17:20 ./source/l/ConsoleKit2/ConsoleKit2.SlackBuild
@@ -7946,11 +7947,11 @@ drwxr-xr-x 2 root root 4096 2016-02-17 23:11 ./source/l/GConf/patches
-rw-r--r-- 1 root root 739 2016-02-17 23:10 ./source/l/GConf/patches/0003-gsettings-data-convert-Warn-and-fix-invalid-schema-p.patch.gz
-rw-r--r-- 1 root root 10435 2016-02-17 23:10 ./source/l/GConf/patches/0011-Fix-some-compiler-warnings.patch
-rw-r--r-- 1 root root 783 2018-02-27 06:12 ./source/l/GConf/slack-desc
-drwxr-xr-x 2 root root 4096 2018-05-03 13:04 ./source/l/LibRaw
--rw-r--r-- 1 root root 540387 2018-05-03 06:42 ./source/l/LibRaw/LibRaw-0.18.10.tar.lz
+drwxr-xr-x 2 root root 4096 2018-06-11 17:51 ./source/l/LibRaw
+-rw-r--r-- 1 root root 541926 2018-06-11 11:39 ./source/l/LibRaw/LibRaw-0.18.12.tar.lz
-rw-r--r-- 1 root root 25871 2018-02-24 11:20 ./source/l/LibRaw/LibRaw-demosaic-pack-GPL2-0.18.8.tar.lz
-rw-r--r-- 1 root root 31961 2018-02-24 11:20 ./source/l/LibRaw/LibRaw-demosaic-pack-GPL3-0.18.8.tar.lz
--rwxr-xr-x 1 root root 4207 2018-05-03 13:04 ./source/l/LibRaw/LibRaw.SlackBuild
+-rwxr-xr-x 1 root root 4207 2018-06-11 17:52 ./source/l/LibRaw/LibRaw.SlackBuild
-rw-r--r-- 1 root root 819 2018-02-27 06:12 ./source/l/LibRaw/slack-desc
drwxr-xr-x 2 root root 4096 2018-05-06 19:33 ./source/l/M2Crypto
-rw-r--r-- 1 root root 674692 2017-10-05 20:59 ./source/l/M2Crypto/M2Crypto-0.27.0.tar.xz
@@ -8139,16 +8140,16 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/dbus-python
-rwxr-xr-x 1 root root 4273 2018-04-23 17:20 ./source/l/dbus-python/dbus-python.SlackBuild
-rw-r--r-- 1 root root 50 2018-02-03 23:41 ./source/l/dbus-python/dbus-python.url
-rw-r--r-- 1 root root 699 2018-02-27 06:12 ./source/l/dbus-python/slack-desc
-drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/dconf
-drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/dconf-editor
+drwxr-xr-x 2 root root 4096 2018-06-10 04:11 ./source/l/dconf
+drwxr-xr-x 2 root root 4096 2018-06-10 04:12 ./source/l/dconf-editor
-rw-r--r-- 1 root root 542828 2017-10-31 13:20 ./source/l/dconf-editor/dconf-editor-3.26.2.tar.xz
--rwxr-xr-x 1 root root 4040 2018-04-23 17:20 ./source/l/dconf-editor/dconf-editor.SlackBuild
--rw-r--r-- 1 root root 220 2013-09-18 01:39 ./source/l/dconf-editor/doinst.sh.gz
+-rwxr-xr-x 1 root root 4040 2018-06-10 04:12 ./source/l/dconf-editor/dconf-editor.SlackBuild
+-rw-r--r-- 1 root root 222 2018-06-10 04:12 ./source/l/dconf-editor/doinst.sh.gz
-rw-r--r-- 1 root root 878 2018-02-27 06:12 ./source/l/dconf-editor/slack-desc
-rw-r--r-- 1 root root 218516 2017-10-03 16:00 ./source/l/dconf/dconf-0.26.1.tar.xz
--rwxr-xr-x 1 root root 4027 2018-04-23 17:20 ./source/l/dconf/dconf.SlackBuild
+-rwxr-xr-x 1 root root 4027 2018-06-10 04:11 ./source/l/dconf/dconf.SlackBuild
-rw-r--r-- 1 root root 73 2012-02-20 04:10 ./source/l/dconf/dconf.url
--rw-r--r-- 1 root root 220 2013-09-18 01:39 ./source/l/dconf/doinst.sh.gz
+-rw-r--r-- 1 root root 222 2018-06-10 04:11 ./source/l/dconf/doinst.sh.gz
-rw-r--r-- 1 root root 753 2018-02-27 06:12 ./source/l/dconf/slack-desc
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/desktop-file-utils
-rw-r--r-- 1 root root 132000 2016-06-19 20:37 ./source/l/desktop-file-utils/desktop-file-utils-0.23.tar.xz
@@ -9867,11 +9868,11 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/n/inetd
-rw-r--r-- 1 root root 889 2003-09-06 23:32 ./source/n/inetd/inetd.loopingdos.diff.gz
-rw-r--r-- 1 root root 497 2003-09-12 03:27 ./source/n/inetd/rc.inetd
-rw-r--r-- 1 root root 905 2018-02-27 06:13 ./source/n/inetd/slack-desc
-drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/n/iproute2
+drwxr-xr-x 2 root root 4096 2018-06-11 18:02 ./source/n/iproute2
-rw-r--r-- 1 root root 280 2017-02-07 19:00 ./source/n/iproute2/doinst.sh.gz
--rw-r--r-- 1 root root 566 2018-04-02 17:06 ./source/n/iproute2/iproute2-4.16.0.tar.sign
--rw-r--r-- 1 root root 661336 2018-04-02 17:06 ./source/n/iproute2/iproute2-4.16.0.tar.xz
--rwxr-xr-x 1 root root 4926 2018-04-23 17:20 ./source/n/iproute2/iproute2.SlackBuild
+-rw-r--r-- 1 root root 566 2018-06-08 17:12 ./source/n/iproute2/iproute2-4.17.0.tar.sign
+-rw-r--r-- 1 root root 675268 2018-06-08 17:12 ./source/n/iproute2/iproute2-4.17.0.tar.xz
+-rwxr-xr-x 1 root root 4926 2018-06-11 18:02 ./source/n/iproute2/iproute2.SlackBuild
-rw-r--r-- 1 root root 53 2017-11-12 22:05 ./source/n/iproute2/iproute2.url
-rw-r--r-- 1 root root 932 2018-02-27 06:13 ./source/n/iproute2/slack-desc
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/n/ipset
@@ -10881,11 +10882,12 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/x/vulkan-sdk
-rw-r--r-- 1 root root 1017 2018-02-27 06:13 ./source/x/vulkan-sdk/slack-desc
-rwxr-xr-x 1 root root 5909 2018-04-23 17:20 ./source/x/vulkan-sdk/vulkan-sdk.SlackBuild
-rw-r--r-- 1 root root 534 2018-03-22 06:10 ./source/x/vulkan-sdk/vulkan-sdk.url
-drwxr-xr-x 2 root root 4096 2018-06-05 22:35 ./source/x/wqy-zenhei-font-ttf
+drwxr-xr-x 2 root root 4096 2018-06-10 05:31 ./source/x/wqy-zenhei-font-ttf
+-rw-r--r-- 1 root root 317 2018-06-10 05:08 ./source/x/wqy-zenhei-font-ttf/64-wqy-zenhei.conf.gz
-rw-r--r-- 1 root root 457 2017-04-30 21:32 ./source/x/wqy-zenhei-font-ttf/fixup-fontconfig-file.diff.gz
-rw-r--r-- 1 root root 1135 2018-02-27 06:13 ./source/x/wqy-zenhei-font-ttf/slack-desc
--rw-r--r-- 1 root root 6649596 2009-04-20 19:06 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei-0.8.38-1.tar.bz2
--rwxr-xr-x 1 root root 4930 2018-06-05 22:40 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild
+-rw-r--r-- 1 root root 5743256 2009-04-20 19:06 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei-0.8.38-1.tar.lz
+-rwxr-xr-x 1 root root 5051 2018-06-10 05:31 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild
-rw-r--r-- 1 root root 372 2018-03-07 23:23 ./source/x/wqy-zenhei-font-ttf/wqy-zenhei.fix.fontconfig.warning.diff.gz
drwxr-xr-x 11 root root 4096 2018-05-03 12:16 ./source/x/x11
drwxr-xr-x 4 root root 4096 2018-04-23 17:20 ./source/x/x11-skel
@@ -11178,7 +11180,7 @@ drwxr-xr-x 2 root root 12288 2018-04-15 22:31 ./source/x/x11/build
-rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xineramaproto
-rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xinit
-rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xinput
--rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xkbcomp
+-rw-r--r-- 1 root root 2 2018-06-11 18:01 ./source/x/x11/build/xkbcomp
-rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xkbevd
-rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xkbprint
-rw-r--r-- 1 root root 2 2018-04-13 02:44 ./source/x/x11/build/xkbutils
@@ -11725,7 +11727,7 @@ drwxr-xr-x 2 root root 12288 2018-03-12 18:05 ./source/x/x11/slack-desc
-rw-r--r-- 1 root root 702 2012-04-08 02:21 ./source/x/x11/slack-desc/xwininfo
-rw-r--r-- 1 root root 668 2012-04-07 23:42 ./source/x/x11/slack-desc/xwud
drwxr-xr-x 12 root root 4096 2018-05-18 17:19 ./source/x/x11/src
-drwxr-xr-x 2 root root 4096 2018-03-11 22:26 ./source/x/x11/src/app
+drwxr-xr-x 2 root root 4096 2018-06-11 18:01 ./source/x/x11/src/app
-rw-r--r-- 1 root root 115464 2018-03-05 03:32 ./source/x/x11/src/app/appres-1.0.5.tar.xz
-rw-r--r-- 1 root root 139452 2017-11-07 19:12 ./source/x/x11/src/app/bdftopcf-1.1.tar.xz
-rw-r--r-- 1 root root 109956 2013-01-15 05:23 ./source/x/x11/src/app/beforelight-1.0.5.tar.xz
@@ -11783,7 +11785,7 @@ drwxr-xr-x 2 root root 4096 2018-03-11 22:26 ./source/x/x11/src/app
-rw-r--r-- 1 root root 125428 2015-04-17 06:29 ./source/x/x11/src/app/xhost-1.0.7.tar.xz
-rw-r--r-- 1 root root 153392 2018-03-10 01:46 ./source/x/x11/src/app/xinit-1.4.0.tar.xz
-rw-r--r-- 1 root root 146860 2015-10-19 21:36 ./source/x/x11/src/app/xinput-1.6.2.tar.xz
--rw-r--r-- 1 root root 227944 2018-03-01 17:52 ./source/x/x11/src/app/xkbcomp-1.4.1.tar.xz
+-rw-r--r-- 1 root root 228208 2018-06-07 23:18 ./source/x/x11/src/app/xkbcomp-1.4.2.tar.xz
-rw-r--r-- 1 root root 141024 2015-04-17 06:39 ./source/x/x11/src/app/xkbevd-1.1.4.tar.xz
-rw-r--r-- 1 root root 150312 2015-04-17 06:44 ./source/x/x11/src/app/xkbprint-1.0.4.tar.xz
-rw-r--r-- 1 root root 120732 2013-02-10 23:48 ./source/x/x11/src/app/xkbutils-1.0.4.tar.xz
@@ -12450,9 +12452,9 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-clipman-
-rw-r--r-- 1 root root 385592 2017-07-21 12:52 ./source/xfce/xfce4-clipman-plugin/xfce4-clipman-plugin-1.4.2.tar.xz
-rwxr-xr-x 1 root root 3748 2018-04-23 17:20 ./source/xfce/xfce4-clipman-plugin/xfce4-clipman-plugin.SlackBuild
-rw-r--r-- 1 root root 64 2011-11-28 03:27 ./source/xfce/xfce4-clipman-plugin/xfce4-clipman-plugin.url
-drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-dev-tools
--rw-r--r-- 1 root root 820 2018-02-27 06:13 ./source/xfce/xfce4-dev-tools/slack-desc
--rw-r--r-- 1 root root 254756 2015-02-28 14:35 ./source/xfce/xfce4-dev-tools/xfce4-dev-tools-4.12.0.tar.xz
+drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-dev-tools
+-rw-r--r-- 1 root root 820 2018-02-27 06:13 ./source/xfce/xfce4-dev-tools/slack-desc
+-rw-r--r-- 1 root root 254756 2015-02-28 14:35 ./source/xfce/xfce4-dev-tools/xfce4-dev-tools-4.12.0.tar.xz
-rwxr-xr-x 1 root root 4592 2018-04-23 17:20 ./source/xfce/xfce4-dev-tools/xfce4-dev-tools.SlackBuild
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-notifyd
-rw-r--r-- 1 root root 174 2009-02-26 05:47 ./source/xfce/xfce4-notifyd/doinst.sh.gz
@@ -12568,9 +12570,9 @@ drwxr-xr-x 2 root root 4096 2018-02-27 06:13 ./testing/source/efibootmgr
-rw-r--r-- 1 root root 64995 2013-09-12 03:45 ./testing/source/efibootmgr/efibootmgr-0.6.0.tar.gz
-rwxr-xr-x 1 root root 3552 2018-02-03 21:16 ./testing/source/efibootmgr/efibootmgr.SlackBuild
-rw-r--r-- 1 root root 949 2018-02-27 06:13 ./testing/source/efibootmgr/slack-desc
-drwxr-xr-x 2 root root 4096 2018-06-06 20:39 ./usb-and-pxe-installers
+drwxr-xr-x 2 root root 4096 2018-06-12 04:57 ./usb-and-pxe-installers
-rw-r--r-- 1 root root 31203 2011-03-21 21:21 ./usb-and-pxe-installers/README_PXE.TXT
-rw-r--r-- 1 root root 9197 2013-09-25 04:33 ./usb-and-pxe-installers/README_USB.TXT
-rw-r--r-- 1 root root 574 2013-03-27 04:59 ./usb-and-pxe-installers/pxelinux.cfg_default
--rw-r--r-- 1 root root 57799680 2018-06-06 20:38 ./usb-and-pxe-installers/usbboot.img
+-rw-r--r-- 1 root root 57807872 2018-06-12 04:57 ./usb-and-pxe-installers/usbboot.img
-rw-r--r-- 1 root root 16045 2016-03-29 07:41 ./usb-and-pxe-installers/usbimg2disk.sh
diff --git a/README.initrd b/README.initrd
index 2a2a2bb5..829b93cf 100644
--- a/README.initrd
+++ b/README.initrd
@@ -1,7 +1,7 @@
Slackware initrd mini HOWTO
by Patrick Volkerding, volkerdi@slackware.com
-Wed Jun 6 20:17:46 UTC 2018
+Tue Jun 12 04:26:32 UTC 2018
This document describes how to create and install an initrd, which may be
required to use the 4.x kernel. Also see "man mkinitrd".
@@ -33,15 +33,15 @@ flexible to ship a generic kernel and a set of kernel modules for it.
The easiest way to make the initrd is to use the mkinitrd script included
in Slackware's mkinitrd package. We'll walk through the process of
-upgrading to the generic 4.14.48 Linux kernel using the packages
+upgrading to the generic 4.14.49 Linux kernel using the packages
found in Slackware's slackware/a/ directory.
First, make sure the kernel, kernel modules, and mkinitrd package are
installed (the current version numbers might be a little different, so
this is just an example):
- installpkg kernel-generic-4.14.48-x86_64-1.txz
- installpkg kernel-modules-4.14.48-x86_64-1.txz
+ installpkg kernel-generic-4.14.49-x86_64-1.txz
+ installpkg kernel-modules-4.14.49-x86_64-1.txz
installpkg mkinitrd-1.4.11-x86_64-7.txz
Change into the /boot directory:
@@ -52,7 +52,7 @@ Now you'll want to run "mkinitrd". I'm using ext4 for my root filesystem,
and since the disk controller requires no special support the ext4 module
will be the only one I need to load:
- mkinitrd -c -k 4.14.48 -m ext4
+ mkinitrd -c -k 4.14.49 -m ext4
This should do two things. First, it will create a directory
/boot/initrd-tree containing the initrd's filesystem. Then it will
@@ -61,10 +61,10 @@ you could make some additional changes in /boot/initrd-tree/ and
then run mkinitrd again without options to rebuild the image. That's
optional, though, and only advanced users will need to think about that.
-Here's another example: Build an initrd image using Linux 4.14.48
+Here's another example: Build an initrd image using Linux 4.14.49
kernel modules for a system with an ext4 root partition on /dev/sdb3:
- mkinitrd -c -k 4.14.48 -m ext4 -f ext4 -r /dev/sdb3
+ mkinitrd -c -k 4.14.49 -m ext4 -f ext4 -r /dev/sdb3
4. Now that I've built an initrd, how do I use it?
diff --git a/isolinux/message.txt b/isolinux/message.txt
index aea30566..b1c5e4ba 100644
--- a/isolinux/message.txt
+++ b/isolinux/message.txt
@@ -1,5 +1,5 @@
-Welcome to 09Slackware6407 version 15.0 (Linux kernel 4.14.48)!
+Welcome to 09Slackware6407 version 15.0 (Linux kernel 4.14.49)!
If you need to pass extra parameters to the kernel, enter them at the prompt
below after the name of the kernel to boot (e.g., huge.s).
diff --git a/kernels/VERSIONS.TXT b/kernels/VERSIONS.TXT
index 64f0c269..fd55f578 100644
--- a/kernels/VERSIONS.TXT
+++ b/kernels/VERSIONS.TXT
@@ -1,3 +1,3 @@
-These kernels are version 4.14.48.
+These kernels are version 4.14.49.
diff --git a/recompress.sh b/recompress.sh
index 8ca1ec49..a4107c68 100755
--- a/recompress.sh
+++ b/recompress.sh
@@ -79,6 +79,7 @@ gzip ./source/x/ttf-tlwg/doinst.sh
gzip ./source/x/scim-anthy/scim-anthy.gcc43.diff
gzip ./source/x/wqy-zenhei-font-ttf/wqy-zenhei.fix.fontconfig.warning.diff
gzip ./source/x/wqy-zenhei-font-ttf/fixup-fontconfig-file.diff
+gzip ./source/x/wqy-zenhei-font-ttf/64-wqy-zenhei.conf
gzip ./source/e/emacs/doinst.sh
gzip ./source/n/ppp/radius.msdict
gzip ./source/n/ppp/doinst.sh
@@ -943,6 +944,7 @@ gzip ./source/a/dbus/doinst.sh
gzip ./source/a/dbus/dbus-1.12.x-allow_root_globally.diff
gzip ./source/a/dbus/rc.messagebus
gzip ./source/a/os-prober/os-prober.reiserfs.diff
+gzip ./source/a/libcgroup/libcgroup.loop.diff
gzip ./source/a/libcgroup/doinst.sh
gzip ./source/a/libcgroup/libcgroup.conf.diff
gzip ./source/a/libcgroup/libcgroup.init.diff
diff --git a/slackware64/a/maketag b/slackware64/a/maketag
index 2075dc38..edee2afd 100644
--- a/slackware64/a/maketag
+++ b/slackware64/a/maketag
@@ -59,9 +59,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \
"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \
"kbd" "Change keyboard and console mappings" "on" \
"kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \
-"kernel-generic" "Generic 4.14.48 kernel (needs an initrd)" "on" \
-"kernel-huge" "Loaded 4.14.48 Linux kernel" "on" \
-"kernel-modules" "Linux 4.14.48 kernel modules -- REQUIRED" "on" \
+"kernel-generic" "Generic 4.14.49 kernel (needs an initrd)" "on" \
+"kernel-huge" "Loaded 4.14.49 Linux kernel" "on" \
+"kernel-modules" "Linux 4.14.49 kernel modules -- REQUIRED" "on" \
"kmod" "Kernel module utilities -- REQUIRED" "on" \
"lbzip2" "Parallel bzip2 compressor" "on" \
"less" "A text pager utility - REQUIRED" "on" \
diff --git a/slackware64/a/maketag.ez b/slackware64/a/maketag.ez
index 2075dc38..edee2afd 100644
--- a/slackware64/a/maketag.ez
+++ b/slackware64/a/maketag.ez
@@ -59,9 +59,9 @@ system. :^) Press ENTER when you are done." 21 76 10 \
"jfsutils" "Utilities for IBM's Journaled Filesystem" "on" \
"kbd" "Change keyboard and console mappings" "on" \
"kernel-firmware" "Linux kernel firmware -- REQUIRED" "on" \
-"kernel-generic" "Generic 4.14.48 kernel (needs an initrd)" "on" \
-"kernel-huge" "Loaded 4.14.48 Linux kernel" "on" \
-"kernel-modules" "Linux 4.14.48 kernel modules -- REQUIRED" "on" \
+"kernel-generic" "Generic 4.14.49 kernel (needs an initrd)" "on" \
+"kernel-huge" "Loaded 4.14.49 Linux kernel" "on" \
+"kernel-modules" "Linux 4.14.49 kernel modules -- REQUIRED" "on" \
"kmod" "Kernel module utilities -- REQUIRED" "on" \
"lbzip2" "Parallel bzip2 compressor" "on" \
"less" "A text pager utility - REQUIRED" "on" \
diff --git a/slackware64/k/maketag b/slackware64/k/maketag
index 745dcaa3..ac87555f 100644
--- a/slackware64/k/maketag
+++ b/slackware64/k/maketag
@@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \
the SPACE key to deselect any items you don't want to install. \
Press ENTER when you are \
done." 11 70 1 \
-"kernel-source" "Linux 4.14.48 kernel source" "on" \
+"kernel-source" "Linux 4.14.49 kernel source" "on" \
2> $TMP/SeTpkgs
if [ $? = 1 -o $? = 255 ]; then
rm -f $TMP/SeTpkgs
diff --git a/slackware64/k/maketag.ez b/slackware64/k/maketag.ez
index 745dcaa3..ac87555f 100644
--- a/slackware64/k/maketag.ez
+++ b/slackware64/k/maketag.ez
@@ -21,7 +21,7 @@ from series K. Use the UP/DOWN keys to scroll through the list, and \
the SPACE key to deselect any items you don't want to install. \
Press ENTER when you are \
done." 11 70 1 \
-"kernel-source" "Linux 4.14.48 kernel source" "on" \
+"kernel-source" "Linux 4.14.49 kernel source" "on" \
2> $TMP/SeTpkgs
if [ $? = 1 -o $? = 255 ]; then
rm -f $TMP/SeTpkgs
diff --git a/source/a/libcgroup/libcgroup.SlackBuild b/source/a/libcgroup/libcgroup.SlackBuild
index d059f378..6a5185a7 100755
--- a/source/a/libcgroup/libcgroup.SlackBuild
+++ b/source/a/libcgroup/libcgroup.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libcgroup
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -77,6 +77,9 @@ zcat $CWD/libcgroup.init.diff.gz | patch -p1 --verbose || exit 1
# Slackware does not use /etc/sysconfig:
zcat $CWD/libcgroup.conf.diff.gz | patch -p1 --verbose || exit 1
+# Apply combined patches from git, including for an infinate loop bug:
+zcat $CWD/libcgroup.loop.diff.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -84,6 +87,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+autoreconf -vif
+
# Configure:
CFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/a/libcgroup/libcgroup.loop.diff b/source/a/libcgroup/libcgroup.loop.diff
new file mode 100644
index 00000000..3d6ac83f
--- /dev/null
+++ b/source/a/libcgroup/libcgroup.loop.diff
@@ -0,0 +1,1595 @@
+diff --git a/doc/man/cgclassify.1 b/doc/man/cgclassify.1
+index db4e086..1facd2b 100644
+--- a/doc/man/cgclassify.1
++++ b/doc/man/cgclassify.1
+@@ -57,7 +57,25 @@ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ .TP
+ .B /etc/cgrules.conf
+ default libcgroup configuration file
++.TP
++.B /etc/cgrules.d
++default libcgroup configuration files directory
++
++.SH EXAMPLES
++.TP
++.B cgclassify -g cpu:student 1234
++moves process with pid number 1234 to control group student in cpu hierarchy.
+
++.TP
++.B cgclassify 1234
++moves process with pid number 1234 to control groups based on
++\fB/etc/cgrules.conf\fR configuration file.
++
++.TP
++.B cgclassify --sticky -g cpu:/student 1234
++moves process with pid number 1234 to control group student in cpu hierarchy.
++The daemon of service cgred does not change cgroups of pid 1234 and its children
++(based on \fB/etc/cgrules.conf\fR).
+
+ .SH SEE ALSO
+ cgrules.conf (5), cgexec (1)
+diff --git a/doc/man/cgclear.1 b/doc/man/cgclear.1
+index 318c925..241a095 100644
+--- a/doc/man/cgclear.1
++++ b/doc/man/cgclear.1
+@@ -43,5 +43,24 @@ option works only with \fB-l\fR or \fB-L\fR options.
+ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
++.SH FILES
++.TP
++.B /etc/cgconfig.conf
++default templates file
++.TP
++.B /etc/cgconfig.d/
++default templates files directory
++.RE
++
++
++.SH EXAMPLES
++.TP
++.B cgclear
++unload the whole cgroup filesystem
++
++.TP
++.B cgclear -l /etc/cgconfig.conf
++unload a subsystem of cgroup filesystem based on \fB/etc/cgconfig.conf\fR definition.
++
+ .SH SEE ALSO
+-cgconfigparser(1)
++cgconfigparser(1), cgconfig.conf(5)
+diff --git a/doc/man/cgconfig.conf.5 b/doc/man/cgconfig.conf.5
+index be80e4e..f3a4ba9 100644
+--- a/doc/man/cgconfig.conf.5
++++ b/doc/man/cgconfig.conf.5
+@@ -251,6 +251,9 @@ Templates does not use
+ .B default
+ section settings.
+
++.I /etc/cgconfig.d/
++directory can be used for additional configuration files. cgrulesengd searches this directory for additional templates.
++
+ .\"********************************************"
+ .SH EXAMPLES
+ .LP
+@@ -781,13 +784,12 @@ better to explicitly specify all groups and all controllers
+ related to them.
+
+ .SH FILES
+-.LP
+-.PD .1v
+-.TP 20
+-.B /etc/cgconfig.conf
+ .TP
++.B /etc/cgconfig.conf
+ default libcgroup configuration file
+-.PD
++.TP
++.B /etc/cgconfig.d/
++default libcgroup configuration files directory
+
+ .SH SEE ALSO
+ cgconfigparser (8)
+diff --git a/doc/man/cgconfigparser.8 b/doc/man/cgconfigparser.8
+index 0a20f95..8fff95f 100644
+--- a/doc/man/cgconfigparser.8
++++ b/doc/man/cgconfigparser.8
+@@ -74,5 +74,19 @@ of this group have write access to the file.
+ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
++.SH FILES
++.TP
++.B /etc/cgconfig.conf
++default libcgroup configuration file
++.TP
++.B /etc/cgconfig.d/
++default libcgroup configuration files directory
++
++.SH EXAMPLES
++.TP
++.B cgconfigparser -l /etc/cgconfig.conf
++setup control group file system based on \fB/etc/cgconfig.conf\fR configuration file
++
++
+ .SH SEE ALSO
+ cgconfig.conf (5)
+diff --git a/doc/man/cgcreate.1 b/doc/man/cgcreate.1
+index 7068073..6ec1b27 100644
+--- a/doc/man/cgcreate.1
++++ b/doc/man/cgcreate.1
+@@ -38,7 +38,8 @@ others permissions to the owners permissions).
+ .TP
+ .B -g <controllers>:<path>
+ defines control groups to be added.
+-\fBcontrollers\fR is a list of controllers and
++\fBcontrollers\fR is a list of controllers. Character "*" can be used
++as a shortcut for "all mounted controllers".
+ \fBpath\fR is the relative path to control groups
+ in the given controllers list. This option can be specified
+ multiple times.
+@@ -69,9 +70,16 @@ The default value is the same as has the parent cgroup.
+ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
+-.SH FILES
++.SH EXAMPLES
++.TP
++.B cgcreate -g *:student devices:teacher
++create control group student in all mounted hierarchies and create
++control group teacher in hierarchy containing controller devices.
++
++
++
+
+ .SH SEE ALSO
+ cgrules.conf (5)
+ cgexec (1)
+-cgclassify (1)
++cgclassify (1)
+\ No newline at end of file
+diff --git a/doc/man/cgdelete.1 b/doc/man/cgdelete.1
+index 025a799..9572287 100644
+--- a/doc/man/cgdelete.1
++++ b/doc/man/cgdelete.1
+@@ -16,7 +16,7 @@ program removes all specified control groups.
+
+ .TP
+ .B [-g] <controllers>:<path>
+-Defines the control group to delete. Multiple control groups nay be
++Defines the control group to delete. Multiple control groups may be
+ specified.
+ .B -g
+ is optional.
+@@ -35,5 +35,11 @@ Recursively remove all subgroups.
+ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
++.SH EXAMPLES
++.TP
++.B cgdelete -g cpu,devices:/test
++remove control group test from hierarchies containing cpu and device controllers
++
++
+ .SH SEE ALSO
+ cgcreate (1), lscgroup (1), cgclear (1)
+diff --git a/doc/man/cgred.conf.5 b/doc/man/cgred.conf.5
+index 3fe760f..1c0922f 100644
+--- a/doc/man/cgred.conf.5
++++ b/doc/man/cgred.conf.5
+@@ -42,7 +42,7 @@ default libcgroup configuration file
+
+ .SH SEE ALSO
+ cgrules.conf (5),
+-cgconfig.conf (5)
++cgconfig.conf (5), cgrules.d (5)
+
+
+
+diff --git a/doc/man/cgrules.conf.5 b/doc/man/cgrules.conf.5
+index 7a89fb5..2d434e7 100644
+--- a/doc/man/cgrules.conf.5
++++ b/doc/man/cgrules.conf.5
+@@ -85,7 +85,7 @@ configuration file. See (\fBcgconfig.conf\fR (5)).
+ If the template definition is not found there created group have default
+ kernel setting.
+
+-
++To create a hierarchy of configuration files, use \fB/etc/cgrules.d\fR directory.
+
+ .SH EXAMPLES
+ .nf
+@@ -136,13 +136,19 @@ process.
+ .PD .1v
+ .TP 20
+ .B /etc/cgrules.conf
+-.TP
++.RS 6
+ default libcgroup configuration file
+-.PD .
++.RE
++.TP 20
++.B /etc/cgrules.d
++.RS 6
++default libcgroup configuration files directory
++.RE
++.PD
+
+
+ .SH SEE ALSO
+-cgconfig.conf (5), cgclassify (1), cgred.conf (5)
++cgconfig.conf (5), cgclassify (1), cgred.conf (5), cgrules.d (5)
+
+ .SH BUGS
+
+diff --git a/doc/man/cgrules.d.5 b/doc/man/cgrules.d.5
+new file mode 100644
+index 0000000..37717de
+--- /dev/null
++++ b/doc/man/cgrules.d.5
+@@ -0,0 +1,50 @@
++.\" Copyright (C) 2014 Red Hat, Inc. All Rights Reserved.
++.\" Written by Jan Chaloupka <jchaloup@redhat.com>
++
++.TH CGRULES.D 5 2014-07-14 "Linux" "libcgroup Manual"
++.SH NAME
++cgrules.d \- libcgroup configuration files directory
++.SH DESCRIPTION
++.B "cgrules.d"
++configuration files directory is used by
++.B libcgroups
++and contains additional configuration files with the same syntax as
++\fBcgconfig.conf\fR (5).
++
++Files are parsed in an arbitrary order.
++If the cache is disabled, the searching algorithm of \fBcgrulesengd\fR (8)
++tries the first match.
++If there are two rules which match the criteria for a given process,
++and each rule is in a separate file, then there is no guarantee which one
++is chosen. If you want to control the given order of the rules, put them
++in one configuration file.
++
++
++\fB/etc/cgconfig.conf\fR is parsed as the first file. After success,
++all files from /etc/cgconfig.d are parsed as well (in an arbitrary order).
++If some file from the directory ends up with a parsing error,
++the process is stopped. With cache enabled, all successfully processed
++rules
++are kept in the cache. With cache disabled,
++matching is stopped and ends with a 'not found' result.
++
++If \fB/etc/cgrules.d\fR is empty, \fBcgrulesengd\fR (8) acts
++in a backwards compatibility mode.
++
++.SH FILES
++.LP
++.PD .1v
++.TP 20
++.B /etc/cgrules.d
++.RS 4
++default libcgroup configuration files directory
++.RE
++.B /etc/cgconfig.conf
++.RS 4
++default libcgroup configuration file
++.RE
++.PD .
++
++
++.SH SEE ALSO
++cgconfig.conf (5), cgrulesengd (8)
+diff --git a/doc/man/cgrulesengd.8 b/doc/man/cgrulesengd.8
+index 2e89c5b..cf45611 100644
+--- a/doc/man/cgrulesengd.8
++++ b/doc/man/cgrulesengd.8
+@@ -10,10 +10,11 @@ cgrulesengd \- control group rules daemon
+ .SH DESCRIPTION
+ \fBcgrulesengd\fR is a daemon, which distributes processes to control groups. When
+ any process changes its effective UID or GID, \fBcgrulesengd\fR inspects the list
+-of rules loaded from the \fIcgrules.conf\fR file and moves the process to
+-the appropriate control group.
++of rules loaded from the \fIcgrules.conf\fR file and files in \fIcgrules.d\fR
++(see \fBcgrules.d\fR (5) for potential conflicts) directory
++and moves the process to the appropriate control group.
+
+-The list of rules is read during the daemon startup is are cached in the daemon's memory.
++The list of rules is read during the daemon startup and cached in the daemon's memory.
+ The daemon reloads the list of rules when it receives SIGUSR2 signal.
+ The daemon reloads the list of templates when it receives SIGUSR1 signal.
+
+@@ -63,12 +64,21 @@ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
+ .SH FILES
+-.LP
+-.PD .1v
+-.TP 20
++.TP
+ .B /etc/cgrules.conf
++default libcgroup configuration file
++
++.TP
++.B /etc/cgrules.d
++default libcgroup configuration files directory
++
++.TP
++.B /etc/cgconfig.conf
++default templates file
++
+ .TP
+-the default libcgroup configuration file
++.B /etc/cgconfig.d
++default templates directory
+
+ .SH SEE ALSO
+-cgrules.conf (5)
++cgrules.conf (5), cgrules.d (5)
+diff --git a/doc/man/cgset.1 b/doc/man/cgset.1
+index be886c6..b05473f 100644
+--- a/doc/man/cgset.1
++++ b/doc/man/cgset.1
+@@ -36,5 +36,16 @@ copied to the input cgroup.
+ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
++.SH EXAMPLES
++.TP
++.B cgset -r cpuset.cpus=0-1 student
++set variable cpus in control group student (controller cpuset) to 0-1
++
++.TP
++.B cgset --copy-from group1/ group2/
++copy all parameters of group group1 to group group2
++(for all path where both cgroups are defined)
++
++
+ .SH SEE ALSO
+ cgrules.conf (1), cgcreate (1), cgget (1)
+diff --git a/doc/man/cgsnapshot.1 b/doc/man/cgsnapshot.1
+index 03c85f6..48a038e 100644
+--- a/doc/man/cgsnapshot.1
++++ b/doc/man/cgsnapshot.1
+@@ -8,7 +8,7 @@ cgsnapshot \- generate the configuration file for given controllers
+
+ .SH SYNOPSIS
+ \fBcgsnapshot\fR [\fB-h\fR] [\fB-s\fR] [\fB-t\fR] [\fB-b\fR \fIfile\fR]
+-[\fB-w\fR \fIfile\fR] [\fB-f\fR \fIoutput_file\fR] [\fBcontroller\fR] [...]
++[\fB-w\fR \fIfile\fR] [\fB-f\fR \fIoutput_file\fR] [\fBcontroller\fR] [...]
+
+ .SH DESCRIPTION
+ \fBcgsnapshot\fR
+@@ -96,5 +96,18 @@ default whitelist
+ .B /etc/cgconfig.conf
+ default libcgroup configuration file
+
++.SH EXAMPLES
++.TP
++.B cgsnapshot -s -f /etc/cgconfig.conf.cgsnapshot
++create configuration file which contains all mounted controllers and all
++control groups which are on the actual system
++
++.TP
++.B cgsnapshot -s -f /etc/cgconfig.conf.cgsnapshot cpu
++create configuration file which contains hierarchy containing cpu controller and all its
++control groups on the actual system
++
++
++
+ .SH SEE ALSO
+ cgconfig.conf (5)
+diff --git a/doc/man/lscgroup.1 b/doc/man/lscgroup.1
+index 693fbbc..124379e 100644
+--- a/doc/man/lscgroup.1
++++ b/doc/man/lscgroup.1
+@@ -26,6 +26,21 @@ list all existing cgroups.
+ controls verbosity of the tool. Allowed values are \fBDEBUG\fR,
+ \fBINFO\fR, \fBWARNING\fR or \fBERROR\fR.
+
++.SH EXAMPLES
++.TP
++.B lscgroup -g cpu:/
++list all cgroups which are in hierarchy containing cpu controller
++
++.TP
++.B lscgroup -g cpu:/student
++list all cgroups which are in hierarchy containing cpu controller
++in subgroup student
++
++.TP
++.B lscgroup
++list all cgroups which in all hierarchies
++
++
+ .SH SEE ALSO
+ lssubsys (1), cgcreate (1), cgdelete (1),
+ cgconfig.conf (5)
+diff --git a/include/libcgroup/config.h b/include/libcgroup/config.h
+index 43568e1..9aaa390 100644
+--- a/include/libcgroup/config.h
++++ b/include/libcgroup/config.h
+@@ -83,12 +83,33 @@ int cgroup_init_templates_cache(char *pathname);
+ */
+ int cgroup_reload_cached_templates(char *pathname);
+
++/**
++ * Load the templates cache from files. Before calling this function,
++ * cgroup_templates_cache_set_source_files has to be called first.
++ * @param file_index index of file which was unable to be parsed
++ * @return 0 on success, > 0 on error
++ */
++int cgroup_load_templates_cache_from_files(int *file_index);
++
++/**
++ * Setting source files of templates. This function has to be called before
++ * any call of cgroup_load_templates_cache_from_files.
++ * @param tmpl_files
++ */
++struct cgroup_string_list;
++void cgroup_templates_cache_set_source_files(
++ struct cgroup_string_list *tmpl_files);
++
+ /**
+ * Physically create a new control group in kernel, based on given control
+ * group template and configuration file. If given template is not set in
+ * configuration file, then the procedure works create the control group
+ * using cgroup_create_cgroup() function
+ *
++ * Templates are loaded using cgroup_load_templates_cache_from_files
++ * function, which must be preceded by cgroup_templates_cache_set_source_files
++ * call.
++ *
+ * The flags can alter the behavior of this function:
+ * CGFLAG_USE_TEMPLATE_CACHE: Use cached templates instead of
+ * parsing the config file
+diff --git a/include/libcgroup/groups.h b/include/libcgroup/groups.h
+index d5c87aa..201558f 100644
+--- a/include/libcgroup/groups.h
++++ b/include/libcgroup/groups.h
+@@ -149,6 +149,16 @@ struct cgroup *cgroup_new_cgroup(const char *name);
+ struct cgroup_controller *cgroup_add_controller(struct cgroup *cgroup,
+ const char *name);
+
++/**
++ * Attach all mounted controllers to given cgroup. This function just modifies
++ * internal libcgroup structure, not the kernel control group.
++ *
++ * @param cgroup
++ * @return zero or error number
++ */
++int cgroup_add_all_controllers(struct cgroup *cgroup);
++
++
+ /**
+ * Return appropriate controller from given group.
+ * The controller must be added before using cgroup_add_controller() or loaded
+diff --git a/src/api.c b/src/api.c
+index bfd0177..0bf0615 100644
+--- a/src/api.c
++++ b/src/api.c
+@@ -473,17 +473,19 @@ static char *cg_skip_unused_charactors_in_rule(char *rule)
+ * The cache parameter alters the behavior of this function. If true, this
+ * function will read the entire configuration file and store the results in
+ * rl (global rules list). If false, this function will only parse until it
+- * finds a rule matching the given UID or GID. It will store this rule in rl,
++ * finds a rule matching the given UID or GID. It will store this rule in trl,
+ * as well as any children rules (rules that begin with a %) that it has.
+ *
+ * This function is NOT thread safe!
++ * @param filename configuration file to parse
+ * @param cache True to cache rules, else false
+ * @param muid If cache is false, the UID to match against
+ * @param mgid If cache is false, the GID to match against
+ * @return 0 on success, -1 if no cache and match found, > 0 on error.
+ * TODO: Make this function thread safe!
++ *
+ */
+-static int cgroup_parse_rules(bool cache, uid_t muid,
++static int cgroup_parse_rules_file(char *filename, bool cache, uid_t muid,
+ gid_t mgid, const char *mprocname)
+ {
+ /* File descriptor for the configuration file */
+@@ -544,21 +546,19 @@ static int cgroup_parse_rules(bool cache, uid_t muid,
+ else
+ lst = &trl;
+
+- /* If our list already exists, clean it. */
+- if (lst->head)
+- cgroup_free_rule_list(lst);
+-
+ /* Open the configuration file. */
+- pthread_rwlock_wrlock(&rl_lock);
+- fp = fopen(CGRULES_CONF_FILE, "re");
++ fp = fopen(filename, "re");
+ if (!fp) {
+ cgroup_warn("Warning: failed to open configuration file %s: %s\n",
+- CGRULES_CONF_FILE, strerror(errno));
+- goto unlock;
++ filename, strerror(errno));
++
++ ret = ECGRULESPARSEFAIL; /* originally ret = 0, but */
++ /* this is parse fail, not success */
++ goto finish;
+ }
+
+ /* Now, parse the configuration file one line at a time. */
+- cgroup_dbg("Parsing configuration file.\n");
++ cgroup_dbg("Parsing configuration file %s.\n", filename);
+ while (fgets(buff, sizeof(buff), fp) != NULL) {
+ linenum++;
+
+@@ -804,8 +804,143 @@ parsefail:
+
+ close:
+ fclose(fp);
+-unlock:
++finish:
++ return ret;
++}
++
++/**
++ * Parse CGRULES_CONF_FILE and all files in CGRULES_CONF_FILE_DIR.
++ * If CGRULES_CONF_FILE_DIR does not exists or can not be read,
++ * parse only CGRULES_CONF_FILE. This way we keep the back compatibility.
++ *
++ * Original description of this function moved to cgroup_parse_rules_file.
++ * Also cloned and all occurences of file changed to files.
++ *
++ * Parse the configuration files that maps UID/GIDs to cgroups. If ever the
++ * configuration files are modified, applications should call this function to
++ * load the new configuration rules. The function caller is responsible for
++ * calling free() on each rule in the list.
++ *
++ * The cache parameter alters the behavior of this function. If true, this
++ * function will read the entire content of all configuration files and store
++ * the results in rl (global rules list). If false, this function will only
++ * parse until it finds a file and a rule matching the given UID or GID.
++ * The remaining files are skipped. It will store this rule in trl,
++ * as well as any children rules (rules that begin with a %) that it has.
++ *
++ * Files can be read in an random order so the first match must not be
++ * dependent on it. Thus construct the rules the way not to break
++ * this assumption.
++ *
++ * This function is NOT thread safe!
++ * @param cache True to cache rules, else false
++ * @param muid If cache is false, the UID to match against
++ * @param mgid If cache is false, the GID to match against
++ * @return 0 on success, -1 if no cache and match found, > 0 on error.
++ * TODO: Make this function thread safe!
++ */
++static int cgroup_parse_rules(bool cache, uid_t muid,
++ gid_t mgid, const char *mprocname)
++{
++ int ret;
++
++ /* Pointer to the list that we're using */
++ struct cgroup_rule_list *lst = NULL;
++
++ /* Directory variables */
++ DIR *d;
++ struct dirent *item;
++ const char *dirname = CGRULES_CONF_DIR;
++ char *tmp;
++ int sret;
++
++ /* Determine which list we're using. */
++ if (cache)
++ lst = &rl;
++ else
++ lst = &trl;
++
++ /* If our list already exists, clean it. */
++ if (lst->head)
++ cgroup_free_rule_list(lst);
++
++ pthread_rwlock_wrlock(&rl_lock);
++
++ /* Parse CGRULES_CONF_FILE configuration file (back compatibility). */
++ ret = cgroup_parse_rules_file(CGRULES_CONF_FILE,
++ cache, muid, mgid, mprocname);
++
++ /*
++ * if match (ret = -1), stop parsing other files, just return
++ * or ret > 0 => error
++ */
++ if (ret != 0) {
++ pthread_rwlock_unlock(&rl_lock);
++ return ret;
++ }
++
++ /* Continue parsing */
++ d = opendir(dirname);
++ if (!d) {
++ cgroup_warn("Warning: Failed to open directory %s: %s\n",
++ dirname, strerror(errno));
++
++ /*
++ * Cannot read directory. However, CGRULES_CONF_FILE is
++ * succesfully parsed. Thus return as a success
++ * for back compatibility.
++ */
++ pthread_rwlock_unlock(&rl_lock);
++
++ return 0;
++ }
++
++ /* read all files from CGRULES_CONF_FILE_DIR */
++ do {
++ item = readdir(d);
++ if (item && (item->d_type == DT_REG
++ || item->d_type == DT_LNK)) {
++
++ sret = asprintf(&tmp, "%s/%s", dirname, item->d_name);
++ if (sret < 0) {
++ cgroup_err("Out of memory\n");
++
++ /*
++ * Cannot read directory. However, CGRULES_CONF_FILE is
++ * succesfully parsed. Thus return as a success
++ * for back compatibility.
++ */
++ ret = 0;
++ goto unlock_list;
++ }
++
++ cgroup_dbg("Parsing cgrules file: %s\n", tmp);
++ ret = cgroup_parse_rules_file(tmp,
++ cache, muid, mgid, mprocname);
++
++ free(tmp);
++
++ /* match with cache disabled? */
++ if (ret != 0)
++ goto unlock_list;
++ }
++ if (!item && errno) {
++ cgroup_warn("Warning: cannot read %s: %s\n",
++ dirname, strerror(errno));
++ /*
++ * Cannot read an item. But continue for
++ * back compatibility as a success.
++ */
++ ret = 0;
++ goto unlock_list;
++ }
++ } while (item != NULL);
++
++unlock_list:
++ closedir(d);
++
+ pthread_rwlock_unlock(&rl_lock);
++
+ return ret;
+ }
+
+@@ -1360,13 +1495,18 @@ static int cg_create_control_group(const char *path)
+ */
+ static int cg_set_control_value(char *path, const char *val)
+ {
+- FILE *control_file = NULL;
++ int ctl_file;
++ char *str_val;
++ char *str_val_start;
++ char *pos;
++ size_t len;
++
+ if (!cg_test_mounted_fs())
+ return ECGROUPNOTMOUNTED;
+
+- control_file = fopen(path, "r+e");
++ ctl_file = open(path, O_RDWR | O_CLOEXEC);
+
+- if (!control_file) {
++ if (ctl_file == -1) {
+ if (errno == EPERM) {
+ /*
+ * We need to set the correct error value, does the
+@@ -1377,6 +1517,7 @@ static int cg_set_control_value(char *path, const char *val)
+ */
+ char *path_dir_end;
+ char *tasks_path;
++ FILE *control_file;
+
+ path_dir_end = strrchr(path, '/');
+ if (path_dir_end == NULL)
+@@ -1408,15 +1549,47 @@ static int cg_set_control_value(char *path, const char *val)
+ return ECGROUPVALUENOTEXIST;
+ }
+
+- if (fprintf(control_file, "%s", val) < 0) {
++ /* Split the multiline value into lines. */
++ /* One line is a special case of multiline value. */
++ str_val = strdup(val);
++ if (str_val == NULL) {
+ last_errno = errno;
+- fclose(control_file);
++ close(ctl_file);
+ return ECGOTHER;
+ }
+- if (fclose(control_file) < 0) {
++
++ str_val_start = str_val;
++ pos = str_val;
++
++ do {
++ str_val = pos;
++ pos = strchr(str_val, '\n');
++
++ if (pos) {
++ *pos = '\0';
++ ++pos;
++ }
++
++ len = strlen(str_val);
++ if (len > 0) {
++ if (write(ctl_file, str_val, len) == -1) {
++ last_errno = errno;
++ free(str_val_start);
++ close(ctl_file);
++ return ECGOTHER;
++ }
++ } else
++ cgroup_warn("Warning: skipping empty line for %s\n",
++ path);
++ } while(pos);
++
++ if (close(ctl_file)) {
+ last_errno = errno;
++ free(str_val_start);
+ return ECGOTHER;
+ }
++
++ free(str_val_start);
+ return 0;
+ }
+
+@@ -1897,15 +2070,23 @@ static int cg_move_task_files(FILE *input_tasks, FILE *output_tasks)
+ break;
+
+ ret = fprintf(output_tasks, "%d", tids);
+- if (ret < 0)
+- break;
++ if (ret < 0) {
++ if (errno == ESRCH)
++ ret = 0;
++ else
++ break;
++ }
+
+ /*
+ * Flush the file, we need only one process per write() call.
+ */
+ ret = fflush(output_tasks);
+- if (ret < 0)
+- break;
++ if (ret < 0) {
++ if (errno == ESRCH)
++ ret = 0;
++ else
++ break;
++ }
+ }
+
+ if (ret < 0) {
+@@ -2594,13 +2775,17 @@ static struct cgroup_rule *cgroup_find_matching_rule_uid_gid(uid_t uid,
+ /* Get the group data. */
+ sp = &(rule->username[1]);
+ grp = getgrnam(sp);
+- if (!grp)
++ if (!grp) {
++ rule = rule->next;
+ continue;
++ }
+
+ /* Get the data for UID. */
+ usr = getpwuid(uid);
+- if (!usr)
++ if (!usr) {
++ rule = rule->next;
+ continue;
++ }
+
+ /* If UID is a member of group, we matched. */
+ for (i = 0; grp->gr_mem[i]; i++) {
+@@ -3108,10 +3293,13 @@ int cgroup_change_all_cgroups(void)
+ return -ECGOTHER;
+
+ while ((pid_dir = readdir(dir)) != NULL) {
+- int err, pid;
++ int err, pid, tid;
+ uid_t euid;
+ gid_t egid;
+ char *procname = NULL;
++ DIR *tdir;
++ struct dirent *tid_dir = NULL;
++ char tpath[FILENAME_MAX] = { '\0' };
+
+ err = sscanf(pid_dir->d_name, "%i", &pid);
+ if (err < 1)
+@@ -3125,11 +3313,24 @@ int cgroup_change_all_cgroups(void)
+ if (err)
+ continue;
+
+- err = cgroup_change_cgroup_flags(euid,
+- egid, procname, pid, CGFLAG_USECACHE);
+- if (err)
+- cgroup_dbg("cgroup change pid %i failed\n", pid);
++ snprintf(tpath, FILENAME_MAX, "%s%d/task/", path, pid);
++
++ tdir = opendir(tpath);
++ if (!tdir)
++ continue;
++
++ while ((tid_dir = readdir(tdir)) != NULL) {
++ err = sscanf(tid_dir->d_name, "%i", &tid);
++ if (err < 1)
++ continue;
++
++ err = cgroup_change_cgroup_flags(euid,
++ egid, procname, tid, CGFLAG_USECACHE);
++ if (err)
++ cgroup_dbg("cgroup change tid %i failed\n", tid);
++ }
+
++ closedir(tdir);
+ free(procname);
+ }
+
+diff --git a/src/config.c b/src/config.c
+index da2c0dd..090bea5 100644
+--- a/src/config.c
++++ b/src/config.c
+@@ -41,6 +41,8 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+
++#include "tools/tools-common.h"
++
+ unsigned int MAX_CGROUPS = 64; /* NOTE: This value changes dynamically */
+ unsigned int MAX_TEMPLATES = 64;
+ /* NOTE: This value changes dynamically */
+@@ -89,6 +91,7 @@ static int config_template_table_index;
+ */
+ static struct cgroup *template_table;
+ static int template_table_index;
++static struct cgroup_string_list *template_files;
+
+
+ /*
+@@ -1572,6 +1575,161 @@ int cgroup_init_templates_cache(char *pathname)
+
+ }
+
++/**
++ * Setting source files of templates. This function has to be called before
++ * any call of cgroup_load_templates_cache_from_files.
++ * @param tmpl_files
++ */
++void cgroup_templates_cache_set_source_files(
++ struct cgroup_string_list *tmpl_files)
++{
++ template_files = tmpl_files;
++}
++
++/**
++ * Appending cgroup templates parsed by parser to template_table
++ * @param offset number of templates already in the table
++ */
++int cgroup_add_cgroup_templates(int offset)
++{
++ int i, ti, ret;
++
++ for (i = 0; i < config_template_table_index; i++) {
++ ti = i + offset;
++ ret = cgroup_copy_cgroup(&template_table[ti],
++ &config_template_table[i]);
++ if (ret)
++ return ret;
++
++ strcpy((template_table[ti]).name,
++ (config_template_table[i]).name);
++ template_table[ti].tasks_uid =
++ config_template_table[i].tasks_uid;
++ template_table[ti].tasks_gid =
++ config_template_table[i].tasks_gid;
++ template_table[ti].task_fperm =
++ config_template_table[i].task_fperm;
++ template_table[ti].control_uid =
++ config_template_table[i].control_uid;
++ template_table[ti].control_gid =
++ config_template_table[i].control_gid;
++ template_table[ti].control_fperm =
++ config_template_table[i].control_fperm;
++ template_table[ti].control_dperm =
++ config_template_table[i].control_dperm;
++ }
++
++ return 0;
++}
++
++/**
++ * Expand template table based on new number of parsed templates, i.e.
++ * on value of config_template_table_index.
++ * Change value of template_table_index.
++ * @return 0 on success, < 0 on error
++ */
++int cgroup_expand_template_table(void)
++{
++ int i;
++
++ template_table = realloc(template_table,
++ (template_table_index + config_template_table_index)
++ *sizeof(struct cgroup));
++
++ if (template_table == NULL)
++ return -ECGOTHER;
++
++ for (i = 0; i < config_template_table_index; i++)
++ template_table[i + template_table_index].index = 0;
++
++ template_table_index += config_template_table_index;
++
++ return 0;
++}
++
++/**
++ * Load the templates cache from files. Before calling this function,
++ * cgroup_templates_cache_set_source_files has to be called first.
++ * @param file_index index of file which was unable to be parsed
++ * @return 0 on success, > 0 on error
++ */
++int cgroup_load_templates_cache_from_files(int *file_index)
++{
++ int ret;
++ int i, j;
++ int template_table_last_index;
++ char *pathname;
++
++ if (!template_files) {
++ /* source files has not been set */
++ cgroup_dbg("Template source files have not been set. ");
++ cgroup_dbg("Using only %s\n", CGCONFIG_CONF_FILE);
++
++ if (template_table_index == 0)
++ /* the rules cache is empty */
++ return cgroup_init_templates_cache(
++ CGCONFIG_CONF_FILE);
++ else
++ /* cache is not empty */
++ return cgroup_reload_cached_templates(
++ CGCONFIG_CONF_FILE);
++ }
++
++ if (template_table) {
++ /* template structures have to be free */
++ for (i = 0; i < template_table_index; i++)
++ cgroup_free_controllers(&template_table[i]);
++ free(template_table);
++ template_table = NULL;
++ }
++ template_table_index = 0;
++
++ if ((config_template_table_index != 0) || (config_table_index != 0)) {
++ /* config structures have to be clean before parsing */
++ cgroup_free_config();
++ }
++
++ for (j = 0; j < template_files->count; j++) {
++ pathname = template_files->items[j];
++
++ cgroup_dbg("Parsing templates from %s.\n", pathname);
++ /* Attempt to read the configuration file
++ * and cache the rules. */
++ ret = cgroup_parse_config(pathname);
++ if (ret) {
++ cgroup_dbg("Could not initialize rule cache, ");
++ cgroup_dbg("error was: %d\n", ret);
++ *file_index = j;
++ return ret;
++ }
++
++ if (config_template_table_index > 0) {
++ template_table_last_index = template_table_index;
++ ret = cgroup_expand_template_table();
++ if (ret) {
++ cgroup_dbg("Could not expand template table, ");
++ cgroup_dbg("error was: %d\n", -ret);
++ *file_index = j;
++ return -ret;
++ }
++
++ /* copy template data to templates cache structures */
++ cgroup_dbg("Copying templates to template table ");
++ cgroup_dbg("from %s.\n", pathname);
++ ret = cgroup_add_cgroup_templates(
++ template_table_last_index);
++ if (ret) {
++ cgroup_dbg("Unable to copy cgroup\n");
++ *file_index = j;
++ return ret;
++ }
++ cgroup_dbg("Templates to template table copied\n");
++ }
++ }
++
++ return 0;
++}
++
+ /*
+ * Create a given cgroup, based on template configuration if it is present
+ * if the template is not present cgroup is creted using cgroup_create_cgroup
+@@ -1593,13 +1751,22 @@ int cgroup_config_create_template_group(struct cgroup *cgroup,
+ * use CGCONFIG_CONF_FILE by default
+ */
+ if (!(flags & CGFLAG_USE_TEMPLATE_CACHE)) {
+- if (template_table_index == 0)
+- /* the rules cache is empty */
+- ret = cgroup_init_templates_cache(CGCONFIG_CONF_FILE);
+- else
+- /* cache is not empty */
+- ret = cgroup_reload_cached_templates(
+- CGCONFIG_CONF_FILE);
++ int fileindex;
++
++ /* the rules cache is empty */
++ ret = cgroup_load_templates_cache_from_files(
++ &fileindex);
++ if (ret != 0) {
++ if (fileindex < 0) {
++ cgroup_dbg("Error: Template source files ");
++ cgroup_dbg("have not been set\n");
++ } else {
++ cgroup_dbg("Error: Failed to load template");
++ cgroup_dbg("rules from %s. ",
++ template_files->items[fileindex]);
++ }
++ }
++
+ if (ret != 0) {
+ cgroup_dbg("Failed initialize templates cache.\n");
+ return ret;
+@@ -1659,7 +1826,7 @@ int cgroup_config_create_template_group(struct cgroup *cgroup,
+ /* no template is present for given name x controller pair
+ * add controller to result cgroup */
+ aux_cgroup = cgroup_new_cgroup(cgroup->name);
+- if (aux_cgroup) {
++ if (!aux_cgroup) {
+ ret = ECGINVAL;
+ fprintf(stderr, "cgroup %s can't be created\n",
+ cgroup->name);
+diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
+index f3100ed..abbbe30 100644
+--- a/src/daemon/Makefile.am
++++ b/src/daemon/Makefile.am
+@@ -1,9 +1,9 @@
+-INCLUDES = -I $(top_srcdir)/include
++INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/include
+
+ if WITH_DAEMON
+
+ sbin_PROGRAMS = cgrulesengd
+-cgrulesengd_SOURCES = cgrulesengd.c cgrulesengd.h
++cgrulesengd_SOURCES = cgrulesengd.c cgrulesengd.h ../tools/tools-common.h ../tools/tools-common.c
+ cgrulesengd_LDADD = $(top_builddir)/src/.libs/libcgroup.la -lrt
+ cgrulesengd_LDFLAGS = -L$(top_builddir)/src/.libs
+
+diff --git a/src/daemon/cgrulesengd.c b/src/daemon/cgrulesengd.c
+index 367b898..ea51f11 100644
+--- a/src/daemon/cgrulesengd.c
++++ b/src/daemon/cgrulesengd.c
+@@ -34,6 +34,7 @@
+ #include "libcgroup.h"
+ #include "cgrulesengd.h"
+ #include "../libcgroup-internal.h"
++#include "../tools/tools-common.h"
+
+ #include <errno.h>
+ #include <stdarg.h>
+@@ -59,6 +60,9 @@
+
+ #define NUM_PER_REALLOCATIOM (100)
+
++/* list of config files from CGCONFIG_CONF_FILE and CGCONFIG_CONF_DIR */
++static struct cgroup_string_list template_files;
++
+ /* Log file, NULL if logging to file is disabled */
+ FILE* logfile;
+
+@@ -936,6 +940,8 @@ void cgre_flash_rules(int signum)
+ /* Current time */
+ time_t tm = time(0);
+
++ int fileindex;
++
+ flog(LOG_INFO, "Reloading rules configuration\n");
+ flog(LOG_DEBUG, "Current time: %s\n", ctime(&tm));
+
+@@ -949,7 +955,7 @@ void cgre_flash_rules(int signum)
+ }
+
+ /* Ask libcgroup to reload the template rules table. */
+- cgroup_reload_cached_templates(CGCONFIG_CONF_FILE);
++ cgroup_load_templates_cache_from_files(&fileindex);
+ }
+
+ /**
+@@ -962,11 +968,13 @@ void cgre_flash_templates(int signum)
+ /* Current time */
+ time_t tm = time(0);
+
++ int fileindex;
++
+ flog(LOG_INFO, "Reloading templates configuration.\n");
+ flog(LOG_DEBUG, "Current time: %s\n", ctime(&tm));
+
+ /* Ask libcgroup to reload the templates table. */
+- cgroup_reload_cached_templates(CGCONFIG_CONF_FILE);
++ cgroup_load_templates_cache_from_files(&fileindex);
+ }
+
+ /**
+@@ -1069,6 +1077,8 @@ int main(int argc, char *argv[])
+ {NULL, 0, NULL, 0}
+ };
+
++ int fileindex;
++
+ /* Make sure the user is root. */
+ if (getuid() != 0) {
+ fprintf(stderr, "Error: Only root can start/stop the control"
+@@ -1180,6 +1190,25 @@ int main(int argc, char *argv[])
+ }
+
+ /* Ask libcgroup to load the configuration rules. */
++ ret = cgroup_string_list_init(&template_files,
++ CGCONFIG_CONF_FILES_LIST_MINIMUM_SIZE);
++ if (ret) {
++ fprintf(stderr, "%s: cannot init file list, out of memory?\n",
++ argv[0]);
++ goto finished_without_temp_files;
++ }
++ /* first add CGCONFIG_CONF_FILE into file list */
++ ret = cgroup_string_list_add_item(&template_files, CGCONFIG_CONF_FILE);
++ if (ret) {
++ fprintf(stderr, "%s: cannot add file to list, out of memory?\n"
++ , argv[0]);
++ goto finished;
++ }
++
++ /* then read CGCONFIG_CONF_DIR directory for additional config files */
++ cgroup_string_list_add_directory(&template_files, CGCONFIG_CONF_DIR,
++ argv[0]);
++
+ if ((ret = cgroup_init_rules_cache()) != 0) {
+ fprintf(stderr, "Error: libcgroup failed to initialize rules"
+ "cache from %s. %s\n", CGRULES_CONF_FILE,
+@@ -1188,11 +1217,18 @@ int main(int argc, char *argv[])
+ }
+
+ /* ask libcgroup to load template rules as well */
+- ret = cgroup_init_templates_cache(CGCONFIG_CONF_FILE);
++ cgroup_templates_cache_set_source_files(&template_files);
++ ret = cgroup_load_templates_cache_from_files(&fileindex);
+ if (ret != 0) {
+- fprintf(stderr, "Error: libcgroup failed to initialize teplate"\
+- "rules from %s. %s\n", CGCONFIG_CONF_FILE,
+- cgroup_strerror(ret));
++ if (fileindex < 0) {
++ fprintf(stderr, "Error: Template source files ");
++ fprintf(stderr, "have not been set\n");
++ } else {
++ fprintf(stderr, "Error: Failed to initialize template");
++ fprintf(stderr, "rules from %s. ",
++ template_files.items[fileindex]);
++ fprintf(stderr, "%s\n", cgroup_strerror(-ret));
++ }
+ goto finished;
+ }
+
+@@ -1259,6 +1295,9 @@ int main(int argc, char *argv[])
+ ret = cgre_create_netlink_socket_process_msg();
+
+ finished:
++ cgroup_string_list_free(&template_files);
++
++finished_without_temp_files:
+ if (logfile && logfile != stdout)
+ fclose(logfile);
+
+diff --git a/src/lex.l b/src/lex.l
+index 1b357db..ecd212c 100644
+--- a/src/lex.l
++++ b/src/lex.l
+@@ -42,8 +42,8 @@ jmp_buf parser_error_env;
+ "group" {return GROUP;}
+ "namespace" {return NAMESPACE;}
+ "template" {return TEMPLATE;}
+-"default" {return DEFAULT;}
+-[a-zA-Z0-9_\-\/\.\,\%\@]+ {yylval.name = strdup(yytext); return ID;}
++"default" {yylval.name = strdup(yytext); return DEFAULT;}
++[a-zA-Z0-9_\-\/\.\,\%\@\\]+ {yylval.name = strdup(yytext); return ID;}
+ \"[^"]*\" {yylval.name = strdup(yytext+1); yylval.name[strlen(yylval.name)-1] = '\0'; return ID; }
+ . {return yytext[0];}
+ %%
+diff --git a/src/libcgroup-internal.h b/src/libcgroup-internal.h
+index 4c0f46c..9875dd9 100644
+--- a/src/libcgroup-internal.h
++++ b/src/libcgroup-internal.h
+@@ -48,8 +48,12 @@ __BEGIN_DECLS
+
+
+ #define CGCONFIG_CONF_FILE "/etc/cgconfig.conf"
++/* Minimum number of file in template file list for cgrulesengd */
++#define CGCONFIG_CONF_FILES_LIST_MINIMUM_SIZE 4
++#define CGCONFIG_CONF_DIR "/etc/cgconfig.d"
+
+ #define CGRULES_CONF_FILE "/etc/cgrules.conf"
++#define CGRULES_CONF_DIR "/etc/cgrules.d"
+ #define CGRULES_MAX_FIELDS_PER_LINE 3
+
+ #define CGROUP_BUFFER_LEN (5 * FILENAME_MAX)
+diff --git a/src/libcgroup.map b/src/libcgroup.map
+index b0c162c..8fe1990 100644
+--- a/src/libcgroup.map
++++ b/src/libcgroup.map
+@@ -117,3 +117,15 @@ CGROUP_0.39 {
+ cgroup_log;
+ cgroup_parse_log_level_str;
+ } CGROUP_0.38;
++
++CGROUP_0.40 {
++ cgroup_templates_cache_set_source_files;
++ cgroup_load_templates_cache_from_files;
++} CGROUP_0.39;
++
++CGROUP_0.41 {
++} CGROUP_0.40;
++
++CGROUP_0.42 {
++ cgroup_add_all_controllers;
++} CGROUP_0.41;
+diff --git a/src/parse.y b/src/parse.y
+index 9adbc0e..98f7699 100644
+--- a/src/parse.y
++++ b/src/parse.y
+@@ -45,9 +45,9 @@ int yywrap(void)
+ int val;
+ struct cgroup_dictionary *values;
+ }
+-%type <name> ID
++%type <name> ID DEFAULT
+ %type <val> mountvalue_conf mount task_namevalue_conf admin_namevalue_conf
+-%type <val> admin_conf task_conf task_or_admin group_conf group start
++%type <val> admin_conf task_conf task_or_admin group_conf group start group_name
+ %type <val> namespace namespace_conf default default_conf
+ %type <values> namevalue_conf
+ %type <val> template template_conf
+@@ -99,7 +99,7 @@ default_conf
+ }
+ ;
+
+-group : GROUP ID '{' group_conf '}'
++group : GROUP group_name '{' group_conf '}'
+ {
+ $$ = $4;
+ if ($$) {
+@@ -119,6 +119,16 @@ group : GROUP ID '{' group_conf '}'
+ }
+ ;
+
++group_name
++ : ID
++ {
++ $$ = $1;
++ }
++ | DEFAULT
++ {
++ $$ = $1;
++ }
++
+ group_conf
+ : ID '{' namevalue_conf '}'
+ {
+diff --git a/src/tools/cgcreate.c b/src/tools/cgcreate.c
+index 73abd91..65b188a 100644
+--- a/src/tools/cgcreate.c
++++ b/src/tools/cgcreate.c
+@@ -54,7 +54,6 @@ static void usage(int status, const char *program_name)
+ printf(" -t <tuid>:<tgid> Owner of the tasks file\n");
+ }
+
+-
+ int main(int argc, char *argv[])
+ {
+ int ret = 0;
+@@ -195,16 +194,29 @@ int main(int argc, char *argv[])
+ /* add controllers to the new cgroup */
+ j = 0;
+ while (cgroup_list[i]->controllers[j]) {
+- cgc = cgroup_add_controller(cgroup,
+- cgroup_list[i]->controllers[j]);
+- if (!cgc) {
+- ret = ECGINVAL;
+- fprintf(stderr, "%s: "
+- "controller %s can't be add\n",
+- argv[0],
++ if (strcmp(cgroup_list[i]->controllers[j], "*") == 0) {
++ /* it is meta character, add all controllers */
++ ret = cgroup_add_all_controllers(cgroup);
++ if (ret != 0) {
++ ret = ECGINVAL;
++ fprintf(stderr, "%s: can't add ",
++ argv[0]);
++ fprintf(stderr, "all controllers\n");
++ cgroup_free(&cgroup);
++ goto err;
++ }
++ } else {
++ cgc = cgroup_add_controller(cgroup,
+ cgroup_list[i]->controllers[j]);
+- cgroup_free(&cgroup);
+- goto err;
++ if (!cgc) {
++ ret = ECGINVAL;
++ fprintf(stderr, "%s: ", argv[0]);
++ fprintf(stderr, "controller %s",
++ cgroup_list[i]->controllers[j]);
++ fprintf(stderr, "can't be add\n");
++ cgroup_free(&cgroup);
++ goto err;
++ }
+ }
+ j++;
+ }
+diff --git a/src/tools/cgdelete.c b/src/tools/cgdelete.c
+index 190310f..43cc47c 100644
+--- a/src/tools/cgdelete.c
++++ b/src/tools/cgdelete.c
+@@ -33,6 +33,13 @@ static struct option const long_options[] =
+ {NULL, 0, NULL, 0}
+ };
+
++struct ext_cgroup_record {
++ char name[FILENAME_MAX]; /* controller name */
++ char controller[FILENAME_MAX]; /* cgroup name */
++ int h_number; /* hierarchy number */
++};
++
++
+ static void usage(int status, const char *program_name)
+ {
+ if (status != 0) {
+@@ -51,6 +58,69 @@ static void usage(int status, const char *program_name)
+ "all subgroups\n");
+ }
+
++/*
++ * Skip adding controller which points to the same cgroup when delete
++ * cgroup with specifying multi controllers. Just skip controller which
++ * cgroup and hierarchy number is same
++ */
++static int skip_add_controller(int counter, int *skip,
++ struct ext_cgroup_record *ecg_list)
++{
++ int k;
++ struct controller_data info;
++ void *handle;
++ int ret = 0;
++
++ /* find out hierarchy number of added cgroup */
++ ecg_list[counter].h_number = 0;
++ ret = cgroup_get_all_controller_begin(&handle, &info);
++ while (ret == 0) {
++ if (!strcmp(info.name, ecg_list[counter].name)) {
++ /* hierarchy number found out, set it */
++ ecg_list[counter].h_number = info.hierarchy;
++ break;
++ }
++ ret = cgroup_get_all_controller_next(&handle, &info);
++ }
++ cgroup_get_all_controller_end(&handle);
++
++ /* deal with cgroup_get_controller_begin/next ret values */
++ if (ret == ECGEOF)
++ ret = 0;
++ if (ret) {
++ fprintf(stderr, "cgroup_get_controller_begin/next failed(%s)\n",
++ cgroup_strerror(ret));
++ return ret;
++ }
++
++ /* found out whether the hierarchy should be skipped */
++ *skip = 0;
++ for (k = 0; k < counter; k++) {
++ if ((!strcmp(ecg_list[k].name, ecg_list[counter].name)) &&
++ (ecg_list[k].h_number == ecg_list[counter].h_number)) {
++ /* we found a control group in the same hierarchy */
++ if (strcmp(ecg_list[k].controller,
++ ecg_list[counter].controller)) {
++ /*
++ * it is a different controller ->
++ * if there is not one cgroup for the same
++ * controller, skip it
++ */
++ *skip = 1;
++ } else {
++ /*
++ * there is the identical group,controller pair
++ * don't skip it
++ */
++ *skip = 0;
++ return ret;
++ }
++ }
++ }
++
++ return ret;
++}
++
+
+ int main(int argc, char *argv[])
+ {
+@@ -60,6 +130,11 @@ int main(int argc, char *argv[])
+ int flags = 0;
+ int final_ret = 0;
+
++ int counter = 0;
++ int max = 0;
++ struct ext_cgroup_record *ecg_list = NULL;
++ int skip;
++
+ struct cgroup_group_spec **cgroup_list = NULL;
+ struct cgroup *cgroup;
+ struct cgroup_controller *cgc;
+@@ -80,6 +155,13 @@ int main(int argc, char *argv[])
+ goto err;
+ }
+
++ ecg_list = calloc(argc, sizeof(struct ext_cgroup_record *));
++ if (cgroup_list == NULL) {
++ fprintf(stderr, "%s: out of memory\n", argv[0]);
++ ret = -1;
++ goto err;
++ }
++
+ /*
+ * Parse arguments
+ */
+@@ -138,6 +220,44 @@ int main(int argc, char *argv[])
+ /* add controllers to the cgroup */
+ j = 0;
+ while (cgroup_list[i]->controllers[j]) {
++ skip = 0;
++ /*
++ * save controller name, cg name and hierarchy number
++ * to determine whether we should skip adding controller
++ */
++ if (counter == max) {
++ /*
++ * there is not enough space to store them,
++ * create it
++ */
++ max = max + argc;
++ ecg_list = (struct ext_cgroup_record *)
++ realloc(ecg_list,
++ max * sizeof(struct ext_cgroup_record));
++ if (!ecg_list) {
++ fprintf(stderr, "%s: ", argv[0]);
++ fprintf(stderr, "not enough memory\n");
++ final_ret = -1;
++ goto err;
++ }
++ }
++
++ strncpy(ecg_list[counter].controller,
++ cgroup_list[i]->controllers[j], FILENAME_MAX);
++ ecg_list[counter].controller[FILENAME_MAX - 1] = '\0';
++ strncpy(ecg_list[counter].name,
++ cgroup_list[i]->path, FILENAME_MAX);
++ ecg_list[counter].name[FILENAME_MAX - 1] = '\0';
++
++ ret = skip_add_controller(counter, &skip, ecg_list);
++ if (ret)
++ goto err;
++
++ if (skip) {
++ /* don't add the controller, goto next one */
++ goto next;
++ }
++
+ cgc = cgroup_add_controller(cgroup,
+ cgroup_list[i]->controllers[j]);
+ if (!cgc) {
+@@ -149,6 +269,8 @@ int main(int argc, char *argv[])
+ cgroup_free(&cgroup);
+ goto err;
+ }
++next:
++ counter++;
+ j++;
+ }
+
+@@ -167,6 +289,9 @@ int main(int argc, char *argv[])
+
+ ret = final_ret;
+ err:
++ if (ecg_list)
++ free(ecg_list);
++
+ if (cgroup_list) {
+ for (i = 0; i < argc; i++) {
+ if (cgroup_list[i])
+diff --git a/src/tools/tools-common.h b/src/tools/tools-common.h
+index e05465f..c723eb4 100644
+--- a/src/tools/tools-common.h
++++ b/src/tools/tools-common.h
+@@ -20,7 +20,7 @@
+
+ #include "config.h"
+ #include <libcgroup.h>
+-#include <libcgroup-internal.h>
++#include "../libcgroup-internal.h"
+
+ #define cgroup_err(x...) cgroup_log(CGROUP_LOG_ERROR, x)
+ #define cgroup_warn(x...) cgroup_log(CGROUP_LOG_WARNING, x)
+diff --git a/src/wrapper.c b/src/wrapper.c
+index c03472a..3a9331f 100644
+--- a/src/wrapper.c
++++ b/src/wrapper.c
+@@ -92,6 +92,56 @@ struct cgroup_controller *cgroup_add_controller(struct cgroup *cgroup,
+ return controller;
+ }
+
++int cgroup_add_all_controllers(struct cgroup *cgroup)
++{
++ int ret;
++ void *handle;
++ struct controller_data info;
++ struct cgroup_controller *cgc;
++
++ /* go through the controller list */
++ ret = cgroup_get_all_controller_begin(&handle, &info);
++ if ((ret != 0) && (ret != ECGEOF)) {
++ fprintf(stderr, "cannot read controller data: %s\n",
++ cgroup_strerror(ret));
++ return ret;
++ }
++
++ while (ret == 0) {
++ if (info.hierarchy == 0) {
++ /* the controller is not attached to any hierarchy
++ skip it */
++ goto next;
++ }
++
++ /* add mounted controller to cgroup structure */
++ cgc = cgroup_add_controller(cgroup, info.name);
++ if (!cgc) {
++ ret = ECGINVAL;
++ fprintf(stderr, "controller %s can't be add\n",
++ info.name);
++ }
++
++next:
++ ret = cgroup_get_all_controller_next(&handle, &info);
++ if (ret && ret != ECGEOF)
++ goto end;
++ }
++
++end:
++ cgroup_get_all_controller_end(&handle);
++
++ if (ret == ECGEOF)
++ ret = 0;
++
++ if (ret)
++ fprintf(stderr,
++ "cgroup_get_controller_begin/next failed (%s)\n",
++ cgroup_strerror(ret));
++
++ return ret;
++}
++
+ void cgroup_free_controllers(struct cgroup *cgroup)
+ {
+ int i, j;
diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild
index f0cc6da4..162b0110 100755
--- a/source/a/pkgtools/pkgtools.SlackBuild
+++ b/source/a/pkgtools/pkgtools.SlackBuild
@@ -30,7 +30,7 @@ PKGNAM=pkgtools
# *** UPDATE THESE WITH EACH BUILD:
VERSION=15.0
ARCH=${ARCH:-noarch}
-BUILD=${BUILD:-16}
+BUILD=${BUILD:-17}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
diff --git a/source/a/pkgtools/scripts/installpkg b/source/a/pkgtools/scripts/installpkg
index 2b87bf36..16e2e47e 100644
--- a/source/a/pkgtools/scripts/installpkg
+++ b/source/a/pkgtools/scripts/installpkg
@@ -188,8 +188,14 @@ else
TERSELENGTH=80
fi
+# Default install mode is standard text mode:
+MODE=install
+# If $TERSE is set to 0 in the environment, then use terse mode:
+if [ "$TERSE" = "0" ]; then
+ MODE=terse
+fi
+
# Parse options:
-MODE=install # standard text-mode
while [ 0 ]; do
if [ "$1" = "-warn" -o "$1" = "--warn" ]; then
MODE=warn
diff --git a/source/installer/sources/efi.i586/EFI/BOOT/message.txt b/source/installer/sources/efi.i586/EFI/BOOT/message.txt
index 7fb5b03c..6153d784 100755
--- a/source/installer/sources/efi.i586/EFI/BOOT/message.txt
+++ b/source/installer/sources/efi.i586/EFI/BOOT/message.txt
@@ -1,5 +1,5 @@
-Welcome to Slackware version 14.2 (Linux kernel 4.1.13)!
+Welcome to Slackware (32-bit) version 14.2 (Linux kernel 4.1.13)!
If you need to pass extra parameters to the kernel, enter them at the prompt
below after the name of the kernel to boot (e.g., hugesmp.s).
diff --git a/source/k/kernel-configs/config-generic-4.14.48 b/source/k/kernel-configs/config-generic-4.14.49
index 45c088c7..523f56bd 100644
--- a/source/k/kernel-configs/config-generic-4.14.48
+++ b/source/k/kernel-configs/config-generic-4.14.49
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.48 Kernel Configuration
+# Linux/x86 4.14.49 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -3943,7 +3943,7 @@ CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers
#
-# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_AMDPT=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
CONFIG_GPIO_GENERIC_PLATFORM=m
@@ -7386,21 +7386,23 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
-# CONFIG_NFS_V4_2 is not set
+CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
@@ -7411,6 +7413,7 @@ CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
diff --git a/source/k/kernel-configs/config-generic-4.14.48.x64 b/source/k/kernel-configs/config-generic-4.14.49.x64
index 1a428e08..9a965237 100644
--- a/source/k/kernel-configs/config-generic-4.14.48.x64
+++ b/source/k/kernel-configs/config-generic-4.14.49.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.48 Kernel Configuration
+# Linux/x86 4.14.49 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -3926,7 +3926,7 @@ CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers
#
-# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_AMDPT=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
CONFIG_GPIO_GENERIC_PLATFORM=m
@@ -7313,21 +7313,23 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
-# CONFIG_NFS_V4_2 is not set
+CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
@@ -7338,6 +7340,7 @@ CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
diff --git a/source/k/kernel-configs/config-generic-smp-4.14.48-smp b/source/k/kernel-configs/config-generic-smp-4.14.49-smp
index c43bb45f..b7110ca9 100644
--- a/source/k/kernel-configs/config-generic-smp-4.14.48-smp
+++ b/source/k/kernel-configs/config-generic-smp-4.14.49-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.48 Kernel Configuration
+# Linux/x86 4.14.49 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -3988,7 +3988,7 @@ CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers
#
-# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_AMDPT=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
CONFIG_GPIO_GENERIC_PLATFORM=m
@@ -7437,21 +7437,23 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
-# CONFIG_NFS_V4_2 is not set
+CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
@@ -7462,6 +7464,7 @@ CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
diff --git a/source/k/kernel-configs/config-huge-4.14.48 b/source/k/kernel-configs/config-huge-4.14.49
index e3f204e4..57ebbbca 100644
--- a/source/k/kernel-configs/config-huge-4.14.48
+++ b/source/k/kernel-configs/config-huge-4.14.49
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.48 Kernel Configuration
+# Linux/x86 4.14.49 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -3943,7 +3943,7 @@ CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers
#
-# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_AMDPT=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
CONFIG_GPIO_GENERIC_PLATFORM=m
@@ -7386,21 +7386,23 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
-# CONFIG_NFS_V4_2 is not set
+CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=y
+CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
@@ -7411,6 +7413,7 @@ CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
diff --git a/source/k/kernel-configs/config-huge-4.14.48.x64 b/source/k/kernel-configs/config-huge-4.14.49.x64
index c5245516..9b175efd 100644
--- a/source/k/kernel-configs/config-huge-4.14.48.x64
+++ b/source/k/kernel-configs/config-huge-4.14.49.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.48 Kernel Configuration
+# Linux/x86 4.14.49 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -3926,7 +3926,7 @@ CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers
#
-# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_AMDPT=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
CONFIG_GPIO_GENERIC_PLATFORM=m
@@ -7313,21 +7313,23 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
-# CONFIG_NFS_V4_2 is not set
+CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=y
+CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
@@ -7338,6 +7340,7 @@ CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
diff --git a/source/k/kernel-configs/config-huge-smp-4.14.48-smp b/source/k/kernel-configs/config-huge-smp-4.14.49-smp
index 7a1f3c14..79cd912d 100644
--- a/source/k/kernel-configs/config-huge-smp-4.14.48-smp
+++ b/source/k/kernel-configs/config-huge-smp-4.14.49-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.48 Kernel Configuration
+# Linux/x86 4.14.49 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -3988,7 +3988,7 @@ CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers
#
-# CONFIG_GPIO_AMDPT is not set
+CONFIG_GPIO_AMDPT=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
CONFIG_GPIO_GENERIC_PLATFORM=m
@@ -7437,21 +7437,23 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
-# CONFIG_NFS_V4_2 is not set
+CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=y
+CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_PNFS=y
CONFIG_NFSD_BLOCKLAYOUT=y
@@ -7462,6 +7464,7 @@ CONFIG_NFSD_FLEXFILELAYOUT=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
diff --git a/source/k/linux-4.14.48.tar.sign b/source/k/linux-4.14.48.tar.sign
deleted file mode 100644
index ba26a3c0..00000000
--- a/source/k/linux-4.14.48.tar.sign
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlsWWvUACgkQONu9yGCS
-aT5ScxAAx6/sNGGqEa26vo/DoKZL5gnsrU3FA9mnUId5eZMA8x2z05h91I8G6BgZ
-vgCIJqXG9aJAgdYPNZHMQpJqKoQezR22u725OezDaxL55qNrbM7V9HMPUGOf5nJV
-Jw5toqvCHo5XynuggvbglHNNj8ZQ79rJXo1vChzwpUzCjdx8SDkq3w530XUV8WKW
-I6N4349N6CzT9Q4di1eUovbWpdHva85AfIrxUdw5usZ7x1X0RprBLKSHjV/O7s5R
-TsZv61Ka2YqbgElADBWVXLDZ0rnhX73lL53E3oP4k4mfgPzqOUbpxmaYbMJaKsta
-Qp8IJSYhT0pwv4wCToJnij/0Zq8/negXOTS6lynDk4vLuXJtIedAaBBw4SGPEI3a
-NlKNjbLkArh4JxO0qkPRIgxk+nf1FZ5x/aYQ++RjshqPcWvKF4i/sjaOs31smscn
-ju5T4GmsoLfFdb1zddWm99V07ucCrMlHzu2m380Xydawt0Gs6GBpLHkDyL+hrrnZ
-JKtUIH6hhoMGi1AJwymeZ9sGZ2pdZqagJzTJbi8zELyuEoQ9w05McqacgQYW3zzF
-jU2pRnoly4kb7X+15/4MyClnLqVsQKKSdzhXMINEANojYNknByHWMfKr+bHkdAkN
-1muWSGJBefSPBQg66DJOKgsZAhNTGPAzs0Epb9UaUeTyj/qFFkE=
-=2kuG
------END PGP SIGNATURE-----
diff --git a/source/k/linux-4.14.49.tar.sign b/source/k/linux-4.14.49.tar.sign
new file mode 100644
index 00000000..72a269b5
--- /dev/null
+++ b/source/k/linux-4.14.49.tar.sign
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlse4GAACgkQONu9yGCS
+aT4BwRAAtGo7eBzb+o4CgK/BIUO91jKa6iSbGIwubk35RVkJGsSokt8yuwMiHe72
+yLUS7k9jNPN6NWU0iH9Wjz3qS6zlvZ7+8EPyn51DO+1dIMXIYEVXGRa7vpwUKm1q
+xAYq0OaR23uajjwuwSZrksncSUru26QRmsa7VhYQj4WJIhFTnr/cLHPaQsp+/jic
+gY69di7MXMTa3vYFBEvsweP7ylwbOhg4vjIO8QpMNlsG8tN7duGtdu6pQcpxnZCV
+uPcQbH+0hprecSc95daOEHt7fP26JL9Sbzvh2rfWxMKkk+yqjzoRu2xCRqBNnL99
+5PC6BRS+vQ/VoAJTjcxx9feKujBVN4Gooy3D4Nd/Gs6VteUcwnHbTBA36DHF4D71
+feGH+8ad1WZUBctiXz3yLBS8wVlvCr0SRct/zWHs1EYIojlprdnL3CjybLV9HCbR
+p3hPJiweU9+EnAy4idgTnECdePThgkZQ0tkYrvzMS359xsp5zCeMJ++HBeLRLbIU
+kooreSu3Er+0i6Y09btPnHyzynkSUghsHyH+P4xA3y7r6/s99GlDgEpyy2m0j2fF
+c7uMqy8aY8LvgpdSEzl4c6EbqaooNTMp6di1/sXmXaH3iES3J7lJ0HchgzdZgtB4
+06ofdsWDMW4XPeSvo22+Ped8FYG+gXfpvEobR9HXx1t1v7hx3YI=
+=wYS0
+-----END PGP SIGNATURE-----
diff --git a/source/l/LibRaw/LibRaw.SlackBuild b/source/l/LibRaw/LibRaw.SlackBuild
index 75019356..1b8aa75a 100755
--- a/source/l/LibRaw/LibRaw.SlackBuild
+++ b/source/l/LibRaw/LibRaw.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=LibRaw
-VERSION=${VERSION:-0.18.10}
+VERSION=${VERSION:-0.18.12}
DEMOSAIC=${DEMOSAIC:-0.18.8}
BUILD=${BUILD:-1}
diff --git a/source/l/dconf-editor/dconf-editor.SlackBuild b/source/l/dconf-editor/dconf-editor.SlackBuild
index f200c39b..4a91ae1c 100755
--- a/source/l/dconf-editor/dconf-editor.SlackBuild
+++ b/source/l/dconf-editor/dconf-editor.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=dconf-editor
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/dconf-editor/doinst.sh b/source/l/dconf-editor/doinst.sh
index 5b77efb0..d62af794 100644
--- a/source/l/dconf-editor/doinst.sh
+++ b/source/l/dconf-editor/doinst.sh
@@ -1,6 +1,6 @@
# Reload messagebus service
if [ -x /etc/rc.d/rc.messagebus ]; then
- sh /etc/rc.d/rc.messagebus reload
+ sh /etc/rc.d/rc.messagebus reload 1> /dev/null 2> /dev/null
fi
# Try to run these. If they fail, no biggie.
diff --git a/source/l/dconf/dconf.SlackBuild b/source/l/dconf/dconf.SlackBuild
index 7696405a..561f6a34 100755
--- a/source/l/dconf/dconf.SlackBuild
+++ b/source/l/dconf/dconf.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=dconf
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/dconf/doinst.sh b/source/l/dconf/doinst.sh
index 5b77efb0..d62af794 100644
--- a/source/l/dconf/doinst.sh
+++ b/source/l/dconf/doinst.sh
@@ -1,6 +1,6 @@
# Reload messagebus service
if [ -x /etc/rc.d/rc.messagebus ]; then
- sh /etc/rc.d/rc.messagebus reload
+ sh /etc/rc.d/rc.messagebus reload 1> /dev/null 2> /dev/null
fi
# Try to run these. If they fail, no biggie.
diff --git a/source/n/iproute2/iproute2-4.16.0.tar.sign b/source/n/iproute2/iproute2-4.16.0.tar.sign
deleted file mode 100644
index de3e5816..00000000
--- a/source/n/iproute2/iproute2-4.16.0.tar.sign
+++ /dev/null
Binary files differ
diff --git a/source/n/iproute2/iproute2-4.17.0.tar.sign b/source/n/iproute2/iproute2-4.17.0.tar.sign
new file mode 100644
index 00000000..324d22f4
--- /dev/null
+++ b/source/n/iproute2/iproute2-4.17.0.tar.sign
Binary files differ
diff --git a/source/n/iproute2/iproute2.SlackBuild b/source/n/iproute2/iproute2.SlackBuild
index bee012c4..525b9472 100755
--- a/source/n/iproute2/iproute2.SlackBuild
+++ b/source/n/iproute2/iproute2.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=iproute2
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
#NUMJOBS=${NUMJOBS:-" -j7 "}
diff --git a/source/x/wqy-zenhei-font-ttf/64-wqy-zenhei.conf b/source/x/wqy-zenhei-font-ttf/64-wqy-zenhei.conf
new file mode 100644
index 00000000..02b78527
--- /dev/null
+++ b/source/x/wqy-zenhei-font-ttf/64-wqy-zenhei.conf
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+ <match>
+ <test name="lang">
+ <string>zh-cn</string>
+ </test>
+ <test name="family">
+ <string>monospace</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei Sharp</string>
+ </edit>
+ </match>
+ <match>
+ <test name="lang">
+ <string>zh-sg</string>
+ </test>
+ <test name="family">
+ <string>monospace</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei Sharp</string>
+ </edit>
+ </match>
+
+ <alias>
+ <family>WenQuanYi Zen Hei Sharp</family>
+ <default>
+ <family>monospace</family>
+ </default>
+ </alias>
+
+ <match>
+ <test name="lang">
+ <string>zh-cn</string>
+ </test>
+ <test name="family">
+ <string>serif</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei Sharp</string>
+ </edit>
+ </match>
+ <match>
+ <test name="lang">
+ <string>zh-sg</string>
+ </test>
+ <test name="family">
+ <string>serif</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei Sharp</string>
+ </edit>
+ </match>
+
+ <alias>
+ <family>WenQuanYi Zen Hei Sharp</family>
+ <default>
+ <family>serif</family>
+ </default>
+ </alias>
+
+ <match>
+ <test name="lang">
+ <string>zh-cn</string>
+ </test>
+ <test name="family">
+ <string>sans-serif</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei Sharp</string>
+ </edit>
+ </match>
+ <match>
+ <test name="lang">
+ <string>zh-sg</string>
+ </test>
+ <test name="family">
+ <string>sans-serif</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei Sharp</string>
+ </edit>
+ </match>
+
+ <alias>
+ <family>WenQuanYi Zen Hei Sharp</family>
+ <default>
+ <family>sans-serif</family>
+ </default>
+ </alias>
+</fontconfig>
diff --git a/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild b/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild
index 9f075e57..4a03f866 100755
--- a/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild
+++ b/source/x/wqy-zenhei-font-ttf/wqy-zenhei-font-ttf.SlackBuild
@@ -39,7 +39,7 @@ SRCNAM=wqy-zenhei
VERSION=${VERSION:-0.8.38}
SUB=${SUB:-1}
ARCH=noarch
-BUILD=${BUILD:-6}
+BUILD=${BUILD:-7}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
@@ -52,7 +52,7 @@ fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-SOURCE="$CWD/${SRCNAM}-${VERSION}-${SUB}.tar.bz2"
+SOURCE="$CWD/${SRCNAM}-${VERSION}-${SUB}.tar.lz"
rm -rf $PKG
mkdir -p $TMP $PKG
@@ -89,22 +89,26 @@ find . \
# fonts, but it is harmless. It's probably safer to leave the cp command the
# way it is in case future versions include any ttf fonts.
# Install font:
-cp -a *.ttf *.ttc $PKG$FONTDIR/
+cp -a *.ttf *.ttc $PKG$FONTDIR/ 2> /dev/null
chmod 644 $PKG$FONTDIR/*
chown root:root $PKG$FONTDIR/*
-# Add the fontconfig file and symlink. Renaming this file to 64- to
-# avoid taking priority over the font list in 60-latin.conf.
+# Add the fontconfig file and symlink.
mkdir -p $PKG/etc/fonts/conf.{d,avail}
-cp -a 44-wqy-zenhei.conf $PKG/etc/fonts/conf.avail/64-wqy-zenhei.conf
+zcat $CWD/64-wqy-zenhei.conf.gz > $PKG/etc/fonts/conf.avail/64-wqy-zenhei.conf
( cd $PKG/etc/fonts/conf.d && \
ln -sf ../conf.avail/64-wqy-zenhei.conf
)
-# Two more fontconfig files which we do not activate by default:
-cp -a 66-wqy-zenhei-sharp.conf 66-wqy-zenhei-sharp-no13px.conf \
+
+# We install the upstream fontconfig files, but do not activate them with
+# symlinks.
+cp -a \
+ 44-wqy-zenhei.conf 66-wqy-zenhei-sharp.conf 66-wqy-zenhei-sharp-no13px.conf \
$PKG/etc/fonts/conf.avail/
chmod 644 $PKG/etc/fonts/conf.avail/*
chown root:root $PKG/etc/fonts/conf.avail/*
+# Rename this one to avoid confusion:
+mv $PKG/etc/fonts/conf.avail/44-wqy-zenhei.conf $PKG/etc/fonts/conf.avail/44-wqy-zenhei-upstream-orig.conf
# Add a shell script that can set the Zen Hei default display styles:
mkdir -p $PKG/usr/sbin
diff --git a/source/x/x11/build/xkbcomp b/source/x/x11/build/xkbcomp
index 0cfbf088..d00491fd 100644
--- a/source/x/x11/build/xkbcomp
+++ b/source/x/x11/build/xkbcomp
@@ -1 +1 @@
-2
+1