mirror of
git://slackware.nl/current.git
synced 2024-12-26 09:58:59 +01:00
Thu Jun 21 22:58:42 UTC 2018
a/pkgtools-15.0-noarch-20.txz: Rebuilt. Move pkgtools database to /var/lib/pkgtools/. Move removed logs to /var/log/pkgtools/. a/sysvinit-2.90-x86_64-1.txz: Upgraded. ap/cups-filters-1.20.3-x86_64-3.txz: Rebuilt. Recompiled against poppler-0.66.0. kde/calligra-2.9.11-x86_64-22.txz: Rebuilt. Recompiled against poppler-0.66.0. l/dbus-python-1.2.8-x86_64-1.txz: Upgraded. l/gc-7.6.6-x86_64-1.txz: Upgraded. l/harfbuzz-1.8.1-x86_64-1.txz: Upgraded. l/poppler-0.66.0-x86_64-1.txz: Upgraded. Shared library .so-version bump. l/pulseaudio-12.0-x86_64-1.txz: Upgraded. n/dhcpcd-7.0.6-x86_64-1.txz: Upgraded. n/php-7.2.7-x86_64-1.txz: Upgraded. Added support for libedit. t/texlive-2017.171108-x86_64-7.txz: Rebuilt. Recompiled against poppler-0.66.0. x/libwacom-0.30-x86_64-1.txz: Upgraded. xfce/exo-0.12.2-x86_64-1.txz: Upgraded. xfce/tumbler-0.2.1-x86_64-4.txz: Rebuilt. Recompiled against poppler-0.66.0. xfce/xfce4-settings-4.12.4-x86_64-1.txz: Upgraded.
This commit is contained in:
parent
b893b1174d
commit
ca85aab953
63 changed files with 4074 additions and 8751 deletions
|
@ -11,9 +11,43 @@
|
|||
<description>Tracking Slackware development in git.</description>
|
||||
<language>en-us</language>
|
||||
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
|
||||
<pubDate>Thu, 21 Jun 2018 05:18:41 GMT</pubDate>
|
||||
<lastBuildDate>Thu, 21 Jun 2018 17:27:45 GMT</lastBuildDate>
|
||||
<pubDate>Thu, 21 Jun 2018 22:58:42 GMT</pubDate>
|
||||
<lastBuildDate>Fri, 22 Jun 2018 07:00:31 GMT</lastBuildDate>
|
||||
<generator>maintain_current_git.sh v 1.10</generator>
|
||||
<item>
|
||||
<title>Thu, 21 Jun 2018 22:58:42 GMT</title>
|
||||
<pubDate>Thu, 21 Jun 2018 22:58:42 GMT</pubDate>
|
||||
<link>https://git.slackware.nl/current/tag/?h=20180621225842</link>
|
||||
<guid isPermaLink="false">20180621225842</guid>
|
||||
<description>
|
||||
<![CDATA[<pre>
|
||||
a/pkgtools-15.0-noarch-20.txz: Rebuilt.
|
||||
Move pkgtools database to /var/lib/pkgtools/.
|
||||
Move removed logs to /var/log/pkgtools/.
|
||||
a/sysvinit-2.90-x86_64-1.txz: Upgraded.
|
||||
ap/cups-filters-1.20.3-x86_64-3.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
kde/calligra-2.9.11-x86_64-22.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
l/dbus-python-1.2.8-x86_64-1.txz: Upgraded.
|
||||
l/gc-7.6.6-x86_64-1.txz: Upgraded.
|
||||
l/harfbuzz-1.8.1-x86_64-1.txz: Upgraded.
|
||||
l/poppler-0.66.0-x86_64-1.txz: Upgraded.
|
||||
Shared library .so-version bump.
|
||||
l/pulseaudio-12.0-x86_64-1.txz: Upgraded.
|
||||
n/dhcpcd-7.0.6-x86_64-1.txz: Upgraded.
|
||||
n/php-7.2.7-x86_64-1.txz: Upgraded.
|
||||
Added support for libedit.
|
||||
t/texlive-2017.171108-x86_64-7.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
x/libwacom-0.30-x86_64-1.txz: Upgraded.
|
||||
xfce/exo-0.12.2-x86_64-1.txz: Upgraded.
|
||||
xfce/tumbler-0.2.1-x86_64-4.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
xfce/xfce4-settings-4.12.4-x86_64-1.txz: Upgraded.
|
||||
</pre>]]>
|
||||
</description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Thu, 21 Jun 2018 05:18:41 GMT</title>
|
||||
<pubDate>Thu, 21 Jun 2018 05:18:41 GMT</pubDate>
|
||||
|
|
|
@ -1,3 +1,29 @@
|
|||
Thu Jun 21 22:58:42 UTC 2018
|
||||
a/pkgtools-15.0-noarch-20.txz: Rebuilt.
|
||||
Move pkgtools database to /var/lib/pkgtools/.
|
||||
Move removed logs to /var/log/pkgtools/.
|
||||
a/sysvinit-2.90-x86_64-1.txz: Upgraded.
|
||||
ap/cups-filters-1.20.3-x86_64-3.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
kde/calligra-2.9.11-x86_64-22.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
l/dbus-python-1.2.8-x86_64-1.txz: Upgraded.
|
||||
l/gc-7.6.6-x86_64-1.txz: Upgraded.
|
||||
l/harfbuzz-1.8.1-x86_64-1.txz: Upgraded.
|
||||
l/poppler-0.66.0-x86_64-1.txz: Upgraded.
|
||||
Shared library .so-version bump.
|
||||
l/pulseaudio-12.0-x86_64-1.txz: Upgraded.
|
||||
n/dhcpcd-7.0.6-x86_64-1.txz: Upgraded.
|
||||
n/php-7.2.7-x86_64-1.txz: Upgraded.
|
||||
Added support for libedit.
|
||||
t/texlive-2017.171108-x86_64-7.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
x/libwacom-0.30-x86_64-1.txz: Upgraded.
|
||||
xfce/exo-0.12.2-x86_64-1.txz: Upgraded.
|
||||
xfce/tumbler-0.2.1-x86_64-4.txz: Rebuilt.
|
||||
Recompiled against poppler-0.66.0.
|
||||
xfce/xfce4-settings-4.12.4-x86_64-1.txz: Upgraded.
|
||||
+--------------------------+
|
||||
Thu Jun 21 05:18:41 UTC 2018
|
||||
a/kernel-generic-4.14.51-x86_64-1.txz: Upgraded.
|
||||
a/kernel-huge-4.14.51-x86_64-1.txz: Upgraded.
|
||||
|
|
325
FILELIST.TXT
325
FILELIST.TXT
|
@ -1,20 +1,20 @@
|
|||
Thu Jun 21 05:29:57 UTC 2018
|
||||
Thu Jun 21 23:10:07 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-21 05:18 .
|
||||
drwxr-xr-x 12 root root 4096 2018-06-21 22:58 .
|
||||
-rw-r--r-- 1 root root 10064 2016-06-30 18:39 ./ANNOUNCE.14_2
|
||||
-rw-r--r-- 1 root root 13424 2018-06-13 05:25 ./CHANGES_AND_HINTS.TXT
|
||||
-rw-r--r-- 1 root root 898212 2018-06-19 23:07 ./CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-19 23:07 ./CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 898055 2018-06-21 22:31 ./CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 22:31 ./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 422773 2018-06-21 05:18 ./ChangeLog.txt
|
||||
-rw-r--r-- 1 root root 423816 2018-06-21 22:58 ./ChangeLog.txt
|
||||
drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 05:18 ./EFI/BOOT
|
||||
-rw-r--r-- 1 root root 1253376 2018-02-24 20:49 ./EFI/BOOT/bootx64.efi
|
||||
|
@ -25,9 +25,9 @@ drwxr-xr-x 2 root root 4096 2018-06-21 05:18 ./EFI/BOOT
|
|||
-rwxr-xr-x 1 root root 2494 2018-02-24 20:49 ./EFI/BOOT/make-grub.sh
|
||||
-rw-r--r-- 1 root root 10722 2013-09-21 19:02 ./EFI/BOOT/osdetect.cfg
|
||||
-rw-r--r-- 1 root root 1273 2013-08-12 21:08 ./EFI/BOOT/tools.cfg
|
||||
-rw-r--r-- 1 root root 1182464 2018-06-19 23:07 ./FILELIST.TXT
|
||||
-rw-r--r-- 1 root root 1182294 2018-06-21 22:30 ./FILELIST.TXT
|
||||
-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY
|
||||
-rw-r--r-- 1 root root 725984 2018-06-21 05:28 ./PACKAGES.TXT
|
||||
-rw-r--r-- 1 root root 726052 2018-06-21 23:08 ./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-21 04:51 ./README.initrd
|
||||
-rw-r--r-- 1 root root 34412 2017-12-01 17:44 ./README_CRYPT.TXT
|
||||
|
@ -748,13 +748,13 @@ drwxr-xr-x 2 root root 4096 2012-09-20 18:06 ./patches
|
|||
-rw-r--r-- 1 root root 575 2012-09-20 18:06 ./patches/FILE_LIST
|
||||
-rw-r--r-- 1 root root 14 2012-09-20 18:06 ./patches/MANIFEST.bz2
|
||||
-rw-r--r-- 1 root root 224 2012-09-20 18:06 ./patches/PACKAGES.TXT
|
||||
drwxr-xr-x 18 root root 4096 2018-06-21 05:28 ./slackware64
|
||||
-rw-r--r-- 1 root root 288390 2018-06-21 05:28 ./slackware64/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 05:28 ./slackware64/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 359305 2018-06-21 05:25 ./slackware64/FILE_LIST
|
||||
-rw-r--r-- 1 root root 3619902 2018-06-21 05:26 ./slackware64/MANIFEST.bz2
|
||||
drwxr-xr-x 18 root root 4096 2018-06-21 23:08 ./slackware64
|
||||
-rw-r--r-- 1 root root 288378 2018-06-21 23:08 ./slackware64/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 23:08 ./slackware64/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 359295 2018-06-21 23:04 ./slackware64/FILE_LIST
|
||||
-rw-r--r-- 1 root root 3610868 2018-06-21 23:05 ./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-21 05:25 ./slackware64/a
|
||||
drwxr-xr-x 2 root root 20480 2018-06-21 22:51 ./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
|
||||
|
@ -999,9 +999,9 @@ drwxr-xr-x 2 root root 20480 2018-06-21 05:25 ./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-14 23:41 ./slackware64/a/pkgtools-15.0-noarch-19.txt
|
||||
-rw-r--r-- 1 root root 193984 2018-06-14 23:41 ./slackware64/a/pkgtools-15.0-noarch-19.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-14 23:41 ./slackware64/a/pkgtools-15.0-noarch-19.txz.asc
|
||||
-rw-r--r-- 1 root root 672 2018-06-19 21:13 ./slackware64/a/pkgtools-15.0-noarch-20.txt
|
||||
-rw-r--r-- 1 root root 195204 2018-06-19 21:13 ./slackware64/a/pkgtools-15.0-noarch-20.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-19 21:13 ./slackware64/a/pkgtools-15.0-noarch-20.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
|
||||
|
@ -1044,9 +1044,9 @@ drwxr-xr-x 2 root root 20480 2018-06-21 05:25 ./slackware64/a
|
|||
-rw-r--r-- 1 root root 517 2018-04-13 13:13 ./slackware64/a/syslinux-4.07-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 904464 2018-04-13 13:13 ./slackware64/a/syslinux-4.07-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:13 ./slackware64/a/syslinux-4.07-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 511 2018-04-13 13:12 ./slackware64/a/sysvinit-2.88dsf-x86_64-5.txt
|
||||
-rw-r--r-- 1 root root 72072 2018-04-13 13:12 ./slackware64/a/sysvinit-2.88dsf-x86_64-5.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:12 ./slackware64/a/sysvinit-2.88dsf-x86_64-5.txz.asc
|
||||
-rw-r--r-- 1 root root 553 2018-06-21 18:41 ./slackware64/a/sysvinit-2.90-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 91540 2018-06-21 18:41 ./slackware64/a/sysvinit-2.90-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 18:41 ./slackware64/a/sysvinit-2.90-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 694 2018-04-13 13:12 ./slackware64/a/sysvinit-functions-8.53-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 36252 2018-04-13 13:12 ./slackware64/a/sysvinit-functions-8.53-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:12 ./slackware64/a/sysvinit-functions-8.53-x86_64-3.txz.asc
|
||||
|
@ -1102,7 +1102,7 @@ drwxr-xr-x 2 root root 20480 2018-06-21 05:25 ./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-18 06:26 ./slackware64/ap
|
||||
drwxr-xr-x 2 root root 20480 2018-06-21 22: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
|
||||
|
@ -1139,9 +1139,9 @@ drwxr-xr-x 2 root root 20480 2018-06-18 06:26 ./slackware64/ap
|
|||
-rw-r--r-- 1 root root 642 2018-06-09 16:43 ./slackware64/ap/cups-2.2.8-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 1425056 2018-06-09 16:43 ./slackware64/ap/cups-2.2.8-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-09 16:43 ./slackware64/ap/cups-2.2.8-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 416 2018-05-22 04:24 ./slackware64/ap/cups-filters-1.20.3-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 748108 2018-05-22 04:24 ./slackware64/ap/cups-filters-1.20.3-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-22 04:24 ./slackware64/ap/cups-filters-1.20.3-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 416 2018-06-21 19:10 ./slackware64/ap/cups-filters-1.20.3-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 748416 2018-06-21 19:10 ./slackware64/ap/cups-filters-1.20.3-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 19:10 ./slackware64/ap/cups-filters-1.20.3-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 576 2018-04-13 13:17 ./slackware64/ap/dash-0.5.9.1-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 84956 2018-04-13 13:17 ./slackware64/ap/dash-0.5.9.1-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 13:17 ./slackware64/ap/dash-0.5.9.1-x86_64-2.txz.asc
|
||||
|
@ -1567,7 +1567,7 @@ drwxr-xr-x 2 root root 4096 2018-06-21 05:25 ./slackware64/k
|
|||
-rw-r--r-- 1 root root 1171 2018-06-21 04:52 ./slackware64/k/maketag
|
||||
-rw-r--r-- 1 root root 1171 2018-06-21 04:52 ./slackware64/k/maketag.ez
|
||||
-rw-r--r-- 1 root root 18 2018-06-21 04:52 ./slackware64/k/tagfile
|
||||
drwxr-xr-x 2 root root 45056 2018-06-18 06:26 ./slackware64/kde
|
||||
drwxr-xr-x 2 root root 45056 2018-06-21 22:26 ./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
|
||||
-rw-r--r-- 1 root root 163 2018-06-02 22:05 ./slackware64/kde/amarok-2.9.0-x86_64-3.txz.asc
|
||||
|
@ -1604,9 +1604,9 @@ drwxr-xr-x 2 root root 45056 2018-06-18 06:26 ./slackware64/kde
|
|||
-rw-r--r-- 1 root root 331 2018-04-17 11:14 ./slackware64/kde/bovo-4.14.3-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 134208 2018-04-17 11:14 ./slackware64/kde/bovo-4.14.3-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-17 11:14 ./slackware64/kde/bovo-4.14.3-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 560 2018-05-22 05:15 ./slackware64/kde/calligra-2.9.11-x86_64-21.txt
|
||||
-rw-r--r-- 1 root root 82397032 2018-05-22 05:15 ./slackware64/kde/calligra-2.9.11-x86_64-21.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-22 05:15 ./slackware64/kde/calligra-2.9.11-x86_64-21.txz.asc
|
||||
-rw-r--r-- 1 root root 560 2018-06-21 20:00 ./slackware64/kde/calligra-2.9.11-x86_64-22.txt
|
||||
-rw-r--r-- 1 root root 82421880 2018-06-21 20:00 ./slackware64/kde/calligra-2.9.11-x86_64-22.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:00 ./slackware64/kde/calligra-2.9.11-x86_64-22.txz.asc
|
||||
-rw-r--r-- 1 root root 340 2018-04-17 11:44 ./slackware64/kde/cantor-4.14.3-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 555856 2018-04-17 11:44 ./slackware64/kde/cantor-4.14.3-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-17 11:44 ./slackware64/kde/cantor-4.14.3-x86_64-3.txz.asc
|
||||
|
@ -2407,7 +2407,7 @@ 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-21 05:25 ./slackware64/l
|
||||
drwxr-xr-x 2 root root 69632 2018-06-21 22: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
|
||||
|
@ -2531,9 +2531,9 @@ drwxr-xr-x 2 root root 69632 2018-06-21 05:25 ./slackware64/l
|
|||
-rw-r--r-- 1 root root 222 2018-04-13 14:28 ./slackware64/l/dbus-glib-0.110-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 147228 2018-04-13 14:28 ./slackware64/l/dbus-glib-0.110-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 14:28 ./slackware64/l/dbus-glib-0.110-x86_64-2.txz.asc
|
||||
-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 246 2018-06-21 20:25 ./slackware64/l/dbus-python-1.2.8-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 152988 2018-06-21 20:25 ./slackware64/l/dbus-python-1.2.8-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:25 ./slackware64/l/dbus-python-1.2.8-x86_64-1.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
|
||||
|
@ -2591,9 +2591,9 @@ drwxr-xr-x 2 root root 69632 2018-06-21 05:25 ./slackware64/l
|
|||
-rw-r--r-- 1 root root 296 2018-04-13 14:33 ./slackware64/l/gamin-0.1.10-x86_64-6.txt
|
||||
-rw-r--r-- 1 root root 107456 2018-04-13 14:33 ./slackware64/l/gamin-0.1.10-x86_64-6.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 14:33 ./slackware64/l/gamin-0.1.10-x86_64-6.txz.asc
|
||||
-rw-r--r-- 1 root root 240 2018-04-17 07:39 ./slackware64/l/gc-7.6.4-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 289920 2018-04-17 07:39 ./slackware64/l/gc-7.6.4-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-17 07:39 ./slackware64/l/gc-7.6.4-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 240 2018-06-21 18:48 ./slackware64/l/gc-7.6.6-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 291696 2018-06-21 18:48 ./slackware64/l/gc-7.6.6-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 18:48 ./slackware64/l/gc-7.6.6-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 343 2018-04-13 14:35 ./slackware64/l/gcr-3.28.0-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 799660 2018-04-13 14:35 ./slackware64/l/gcr-3.28.0-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 14:35 ./slackware64/l/gcr-3.28.0-x86_64-2.txz.asc
|
||||
|
@ -2711,9 +2711,9 @@ drwxr-xr-x 2 root root 69632 2018-06-21 05:25 ./slackware64/l
|
|||
-rw-r--r-- 1 root root 428 2018-05-09 04:17 ./slackware64/l/gvfs-1.36.2-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1060272 2018-05-09 04:17 ./slackware64/l/gvfs-1.36.2-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-09 04:17 ./slackware64/l/gvfs-1.36.2-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 248 2018-06-06 18:45 ./slackware64/l/harfbuzz-1.7.7-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 478244 2018-06-06 18:45 ./slackware64/l/harfbuzz-1.7.7-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-06 18:45 ./slackware64/l/harfbuzz-1.7.7-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 258 2018-06-21 20:30 ./slackware64/l/harfbuzz-1.8.1-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 482604 2018-06-21 20:30 ./slackware64/l/harfbuzz-1.8.1-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:30 ./slackware64/l/harfbuzz-1.8.1-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 506 2018-04-13 14:49 ./slackware64/l/hicolor-icon-theme-0.17-noarch-2.txt
|
||||
-rw-r--r-- 1 root root 14164 2018-04-13 14:49 ./slackware64/l/hicolor-icon-theme-0.17-noarch-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 14:49 ./slackware64/l/hicolor-icon-theme-0.17-noarch-2.txz.asc
|
||||
|
@ -3153,18 +3153,18 @@ drwxr-xr-x 2 root root 69632 2018-06-21 05:25 ./slackware64/l
|
|||
-rw-r--r-- 1 root root 441 2018-04-17 08:07 ./slackware64/l/polkit-qt-1-0.112.0-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 69800 2018-04-17 08:07 ./slackware64/l/polkit-qt-1-0.112.0-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-17 08:07 ./slackware64/l/polkit-qt-1-0.112.0-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 533 2018-05-22 04:23 ./slackware64/l/poppler-0.65.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1462048 2018-05-22 04:23 ./slackware64/l/poppler-0.65.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-22 04:23 ./slackware64/l/poppler-0.65.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 533 2018-06-21 19:09 ./slackware64/l/poppler-0.66.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1465440 2018-06-21 19:09 ./slackware64/l/poppler-0.66.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 19:09 ./slackware64/l/poppler-0.66.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 598 2018-04-25 18:29 ./slackware64/l/poppler-data-0.4.9-noarch-1.txt
|
||||
-rw-r--r-- 1 root root 1474400 2018-04-25 18:29 ./slackware64/l/poppler-data-0.4.9-noarch-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-25 18:29 ./slackware64/l/poppler-data-0.4.9-noarch-1.txz.asc
|
||||
-rw-r--r-- 1 root root 589 2018-04-13 15:13 ./slackware64/l/popt-1.16-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 58744 2018-04-13 15:13 ./slackware64/l/popt-1.16-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 15:13 ./slackware64/l/popt-1.16-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 338 2018-05-08 02:38 ./slackware64/l/pulseaudio-11.1-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 1501996 2018-05-08 02:38 ./slackware64/l/pulseaudio-11.1-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-08 02:38 ./slackware64/l/pulseaudio-11.1-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 338 2018-06-21 20:18 ./slackware64/l/pulseaudio-12.0-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 1519788 2018-06-21 20:18 ./slackware64/l/pulseaudio-12.0-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:18 ./slackware64/l/pulseaudio-12.0-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 294 2018-04-13 15:13 ./slackware64/l/pycairo-1.16.3-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 93752 2018-04-13 15:13 ./slackware64/l/pycairo-1.16.3-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 15:13 ./slackware64/l/pycairo-1.16.3-x86_64-2.txz.asc
|
||||
|
@ -3355,7 +3355,7 @@ drwxr-xr-x 2 root root 69632 2018-06-21 05:25 ./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-19 23:03 ./slackware64/n
|
||||
drwxr-xr-x 2 root root 32768 2018-06-21 22:26 ./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
|
||||
|
@ -3410,9 +3410,9 @@ drwxr-xr-x 2 root root 32768 2018-06-19 23:03 ./slackware64/n
|
|||
-rw-r--r-- 1 root root 641 2018-04-13 15:35 ./slackware64/n/dhcp-4.4.1-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 1787784 2018-04-13 15:35 ./slackware64/n/dhcp-4.4.1-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 15:35 ./slackware64/n/dhcp-4.4.1-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 493 2018-06-05 04:15 ./slackware64/n/dhcpcd-7.0.5b-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 159612 2018-06-05 04:15 ./slackware64/n/dhcpcd-7.0.5b-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-05 04:15 ./slackware64/n/dhcpcd-7.0.5b-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 493 2018-06-21 20:31 ./slackware64/n/dhcpcd-7.0.6-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 159996 2018-06-21 20:31 ./slackware64/n/dhcpcd-7.0.6-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:31 ./slackware64/n/dhcpcd-7.0.6-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 443 2018-04-13 15:33 ./slackware64/n/dnsmasq-2.79-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 329940 2018-04-13 15:33 ./slackware64/n/dnsmasq-2.79-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 15:33 ./slackware64/n/dnsmasq-2.79-x86_64-2.txz.asc
|
||||
|
@ -3690,9 +3690,9 @@ drwxr-xr-x 2 root root 32768 2018-06-19 23:03 ./slackware64/n
|
|||
-rw-r--r-- 1 root root 485 2018-06-02 17:02 ./slackware64/n/p11-kit-0.23.12-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 442196 2018-06-02 17:02 ./slackware64/n/p11-kit-0.23.12-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-02 17:02 ./slackware64/n/p11-kit-0.23.12-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 374 2018-06-18 03:55 ./slackware64/n/php-7.2.6-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 6337252 2018-06-18 03:55 ./slackware64/n/php-7.2.6-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-18 03:55 ./slackware64/n/php-7.2.6-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 374 2018-06-21 20:26 ./slackware64/n/php-7.2.7-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 6347032 2018-06-21 20:26 ./slackware64/n/php-7.2.7-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:26 ./slackware64/n/php-7.2.7-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 576 2018-05-08 04:25 ./slackware64/n/pidentd-3.0.19-x86_64-4.txt
|
||||
-rw-r--r-- 1 root root 43000 2018-05-08 04:25 ./slackware64/n/pidentd-3.0.19-x86_64-4.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-08 04:25 ./slackware64/n/pidentd-3.0.19-x86_64-4.txz.asc
|
||||
|
@ -3796,7 +3796,7 @@ drwxr-xr-x 2 root root 32768 2018-06-19 23:03 ./slackware64/n
|
|||
-rw-r--r-- 1 root root 648 2018-04-13 21:23 ./slackware64/n/zd1211-firmware-1.5-fw-2.txt
|
||||
-rw-r--r-- 1 root root 31872 2018-04-13 21:23 ./slackware64/n/zd1211-firmware-1.5-fw-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 21:23 ./slackware64/n/zd1211-firmware-1.5-fw-2.txz.asc
|
||||
drwxr-xr-x 2 root root 4096 2018-05-23 04:57 ./slackware64/t
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 22:26 ./slackware64/t
|
||||
-rw-r--r-- 1 root root 484 2018-05-09 17:56 ./slackware64/t/fig2dev-3.2.7a-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 283032 2018-05-09 17:56 ./slackware64/t/fig2dev-3.2.7a-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-09 17:56 ./slackware64/t/fig2dev-3.2.7a-x86_64-1.txz.asc
|
||||
|
@ -3805,9 +3805,9 @@ drwxr-xr-x 2 root root 4096 2018-05-23 04:57 ./slackware64/t
|
|||
-rw-r--r-- 1 root root 1102 2018-03-01 07:55 ./slackware64/t/maketag
|
||||
-rw-r--r-- 1 root root 1102 2018-03-01 07:55 ./slackware64/t/maketag.ez
|
||||
-rw-r--r-- 1 root root 33 2018-03-01 07:55 ./slackware64/t/tagfile
|
||||
-rw-r--r-- 1 root root 517 2018-05-22 04:38 ./slackware64/t/texlive-2017.171108-x86_64-6.txt
|
||||
-rw-r--r-- 1 root root 77190828 2018-05-22 04:38 ./slackware64/t/texlive-2017.171108-x86_64-6.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-22 04:38 ./slackware64/t/texlive-2017.171108-x86_64-6.txz.asc
|
||||
-rw-r--r-- 1 root root 517 2018-06-21 19:24 ./slackware64/t/texlive-2017.171108-x86_64-7.txt
|
||||
-rw-r--r-- 1 root root 77211476 2018-06-21 19:24 ./slackware64/t/texlive-2017.171108-x86_64-7.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 19:24 ./slackware64/t/texlive-2017.171108-x86_64-7.txz.asc
|
||||
-rw-r--r-- 1 root root 457 2018-05-09 17:57 ./slackware64/t/xfig-3.2.7a-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 3672812 2018-05-09 17:57 ./slackware64/t/xfig-3.2.7a-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-09 17:57 ./slackware64/t/xfig-3.2.7a-x86_64-1.txz.asc
|
||||
|
@ -3835,7 +3835,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-19 23:03 ./slackware64/x
|
||||
drwxr-xr-x 2 root root 65536 2018-06-21 22:26 ./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
|
||||
|
@ -4165,9 +4165,9 @@ drwxr-xr-x 2 root root 65536 2018-06-19 23:03 ./slackware64/x
|
|||
-rw-r--r-- 1 root root 500 2018-04-13 16:08 ./slackware64/x/libvdpau-1.1.1-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 54984 2018-04-13 16:08 ./slackware64/x/libvdpau-1.1.1-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 16:08 ./slackware64/x/libvdpau-1.1.1-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 390 2018-04-13 16:09 ./slackware64/x/libwacom-0.29-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 51480 2018-04-13 16:09 ./slackware64/x/libwacom-0.29-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 16:09 ./slackware64/x/libwacom-0.29-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 390 2018-06-21 20:22 ./slackware64/x/libwacom-0.30-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 52412 2018-06-21 20:22 ./slackware64/x/libwacom-0.30-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:22 ./slackware64/x/libwacom-0.30-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 443 2018-04-13 05:50 ./slackware64/x/libxcb-1.13-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 928848 2018-04-13 05:50 ./slackware64/x/libxcb-1.13-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 05:50 ./slackware64/x/libxcb-1.13-x86_64-2.txz.asc
|
||||
|
@ -4840,13 +4840,13 @@ drwxr-xr-x 2 root root 12288 2018-06-18 06:26 ./slackware64/xap
|
|||
-rw-r--r-- 1 root root 233 2018-04-13 18:00 ./slackware64/xap/xv-3.10a-x86_64-9.txt
|
||||
-rw-r--r-- 1 root root 953308 2018-04-13 18:00 ./slackware64/xap/xv-3.10a-x86_64-9.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:00 ./slackware64/xap/xv-3.10a-x86_64-9.txz.asc
|
||||
drwxr-xr-x 2 root root 4096 2018-05-23 04:57 ./slackware64/xfce
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 22:26 ./slackware64/xfce
|
||||
-rw-r--r-- 1 root root 460 2018-04-13 18:02 ./slackware64/xfce/Thunar-1.6.15-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 940064 2018-04-13 18:02 ./slackware64/xfce/Thunar-1.6.15-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:02 ./slackware64/xfce/Thunar-1.6.15-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 375 2018-04-13 18:03 ./slackware64/xfce/exo-0.12.0-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 636212 2018-04-13 18:03 ./slackware64/xfce/exo-0.12.0-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:03 ./slackware64/xfce/exo-0.12.0-x86_64-2.txz.asc
|
||||
-rw-r--r-- 1 root root 375 2018-06-21 20:22 ./slackware64/xfce/exo-0.12.2-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 640944 2018-06-21 20:22 ./slackware64/xfce/exo-0.12.2-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:22 ./slackware64/xfce/exo-0.12.2-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 294 2018-04-13 18:03 ./slackware64/xfce/garcon-0.6.1-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 136456 2018-04-13 18:03 ./slackware64/xfce/garcon-0.6.1-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:03 ./slackware64/xfce/garcon-0.6.1-x86_64-2.txz.asc
|
||||
|
@ -4870,9 +4870,9 @@ drwxr-xr-x 2 root root 4096 2018-05-23 04:57 ./slackware64/xfce
|
|||
-rw-r--r-- 1 root root 345 2018-04-13 18:04 ./slackware64/xfce/thunar-volman-0.8.1-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 126140 2018-04-13 18:04 ./slackware64/xfce/thunar-volman-0.8.1-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:04 ./slackware64/xfce/thunar-volman-0.8.1-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 509 2018-05-22 04:24 ./slackware64/xfce/tumbler-0.2.1-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 163656 2018-05-22 04:24 ./slackware64/xfce/tumbler-0.2.1-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-05-22 04:24 ./slackware64/xfce/tumbler-0.2.1-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 509 2018-06-21 19:10 ./slackware64/xfce/tumbler-0.2.1-x86_64-4.txt
|
||||
-rw-r--r-- 1 root root 163408 2018-06-21 19:10 ./slackware64/xfce/tumbler-0.2.1-x86_64-4.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 19:10 ./slackware64/xfce/tumbler-0.2.1-x86_64-4.txz.asc
|
||||
-rw-r--r-- 1 root root 468 2018-04-13 18:04 ./slackware64/xfce/xfce4-appfinder-4.12.0-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 113752 2018-04-13 18:04 ./slackware64/xfce/xfce4-appfinder-4.12.0-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:04 ./slackware64/xfce/xfce4-appfinder-4.12.0-x86_64-3.txz.asc
|
||||
|
@ -4900,9 +4900,9 @@ drwxr-xr-x 2 root root 4096 2018-05-23 04:57 ./slackware64/xfce
|
|||
-rw-r--r-- 1 root root 449 2018-04-13 18:06 ./slackware64/xfce/xfce4-session-4.12.1-x86_64-3.txt
|
||||
-rw-r--r-- 1 root root 624960 2018-04-13 18:06 ./slackware64/xfce/xfce4-session-4.12.1-x86_64-3.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-13 18:06 ./slackware64/xfce/xfce4-session-4.12.1-x86_64-3.txz.asc
|
||||
-rw-r--r-- 1 root root 377 2018-04-21 16:02 ./slackware64/xfce/xfce4-settings-4.12.3-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 486496 2018-04-21 16:02 ./slackware64/xfce/xfce4-settings-4.12.3-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-21 16:02 ./slackware64/xfce/xfce4-settings-4.12.3-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 377 2018-06-21 20:24 ./slackware64/xfce/xfce4-settings-4.12.4-x86_64-1.txt
|
||||
-rw-r--r-- 1 root root 484384 2018-06-21 20:24 ./slackware64/xfce/xfce4-settings-4.12.4-x86_64-1.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 20:24 ./slackware64/xfce/xfce4-settings-4.12.4-x86_64-1.txz.asc
|
||||
-rw-r--r-- 1 root root 402 2018-04-15 21:19 ./slackware64/xfce/xfce4-systemload-plugin-1.2.1-x86_64-2.txt
|
||||
-rw-r--r-- 1 root root 43020 2018-04-15 21:19 ./slackware64/xfce/xfce4-systemload-plugin-1.2.1-x86_64-2.txz
|
||||
-rw-r--r-- 1 root root 163 2018-04-15 21:19 ./slackware64/xfce/xfce4-systemload-plugin-1.2.1-x86_64-2.txz.asc
|
||||
|
@ -4933,13 +4933,13 @@ 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-21 05:29 ./source
|
||||
-rw-r--r-- 1 root root 452639 2018-06-21 05:29 ./source/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 05:29 ./source/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 644957 2018-06-21 05:29 ./source/FILE_LIST
|
||||
-rw-r--r-- 1 root root 14767986 2018-06-21 05:29 ./source/MANIFEST.bz2
|
||||
drwxr-xr-x 19 root root 4096 2018-06-21 23:10 ./source
|
||||
-rw-r--r-- 1 root root 452738 2018-06-21 23:10 ./source/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 23:10 ./source/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 640821 2018-06-21 23:09 ./source/FILE_LIST
|
||||
-rw-r--r-- 1 root root 14783108 2018-06-21 23:09 ./source/MANIFEST.bz2
|
||||
-rw-r--r-- 1 root root 1314 2006-10-02 04:40 ./source/README.TXT
|
||||
drwxr-xr-x 110 root root 4096 2018-06-14 19:02 ./source/a
|
||||
drwxr-xr-x 110 root root 4096 2018-06-21 22:50 ./source/a
|
||||
-rw-r--r-- 1 root root 567 2018-03-13 18:43 ./source/a/FTBFSlog
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/aaa_base
|
||||
-rw-r--r-- 1 root root 11180 2016-05-20 20:17 ./source/a/aaa_base/_aaa_base.tar.gz
|
||||
|
@ -5545,30 +5545,31 @@ drwxr-xr-x 2 root root 4096 2008-09-12 04:35 ./source/a/pcmciautils/config
|
|||
-rw-r--r-- 1 root root 42484 2015-06-07 13:23 ./source/a/pcmciautils/pcmciautils-018.tar.xz
|
||||
-rwxr-xr-x 1 root root 4506 2018-04-23 17:20 ./source/a/pcmciautils/pcmciautils.SlackBuild
|
||||
-rw-r--r-- 1 root root 910 2018-02-27 06:13 ./source/a/pcmciautils/slack-desc
|
||||
drwxr-xr-x 4 root root 4096 2018-04-23 17:20 ./source/a/pkgtools
|
||||
drwxr-xr-x 2 root root 4096 2018-04-11 19:37 ./source/a/pkgtools/manpages
|
||||
drwxr-xr-x 4 root root 4096 2018-06-19 21:12 ./source/a/pkgtools
|
||||
-rw-r--r-- 1 root root 984 2018-06-19 19:28 ./source/a/pkgtools/doinst.sh.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-06-19 19:42 ./source/a/pkgtools/manpages
|
||||
-rw-r--r-- 1 root root 76636 2016-06-15 01:08 ./source/a/pkgtools/manpages-l10n.tar.xz
|
||||
-rw-r--r-- 1 root root 1256 2009-04-11 20:54 ./source/a/pkgtools/manpages/explodepkg.8
|
||||
-rw-r--r-- 1 root root 3545 2018-05-27 20:07 ./source/a/pkgtools/manpages/installpkg.8
|
||||
-rw-r--r-- 1 root root 5405 2018-05-22 00:18 ./source/a/pkgtools/manpages/makepkg.8
|
||||
-rw-r--r-- 1 root root 1265 2018-06-19 19:28 ./source/a/pkgtools/manpages/explodepkg.8
|
||||
-rw-r--r-- 1 root root 3554 2018-06-19 19:28 ./source/a/pkgtools/manpages/installpkg.8
|
||||
-rw-r--r-- 1 root root 5441 2018-06-19 19:28 ./source/a/pkgtools/manpages/makepkg.8
|
||||
-rw-r--r-- 1 root root 1401 2018-04-11 19:48 ./source/a/pkgtools/manpages/pkgdiff.8
|
||||
-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./source/a/pkgtools/manpages/pkgtool.8
|
||||
-rw-r--r-- 1 root root 3189 2018-05-27 20:08 ./source/a/pkgtools/manpages/removepkg.8
|
||||
-rw-r--r-- 1 root root 3251 2018-06-19 19:28 ./source/a/pkgtools/manpages/removepkg.8
|
||||
-rw-r--r-- 1 root root 2962 2018-06-08 19:56 ./source/a/pkgtools/manpages/upgradepkg.8
|
||||
-rwxr-xr-x 1 root root 3451 2018-06-14 23:41 ./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 25885 2018-06-14 23:40 ./source/a/pkgtools/scripts/installpkg
|
||||
-rw-r--r-- 1 root root 13663 2018-06-14 23:40 ./source/a/pkgtools/scripts/makebootdisk
|
||||
-rwxr-xr-x 1 root root 3742 2018-06-19 21:13 ./source/a/pkgtools/pkgtools.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-06-19 19:42 ./source/a/pkgtools/scripts
|
||||
-rw-r--r-- 1 root root 3608 2018-06-19 19:28 ./source/a/pkgtools/scripts/explodepkg
|
||||
-rw-r--r-- 1 root root 27106 2018-06-19 19:31 ./source/a/pkgtools/scripts/installpkg
|
||||
-rw-r--r-- 1 root root 13672 2018-06-19 19:28 ./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
|
||||
-rw-r--r-- 1 root root 21815 2018-04-28 19:14 ./source/a/pkgtools/scripts/pkgtool
|
||||
-rw-r--r-- 1 root root 14813 2018-06-14 23:40 ./source/a/pkgtools/scripts/removepkg
|
||||
-rw-r--r-- 1 root root 21938 2018-06-19 19:28 ./source/a/pkgtools/scripts/pkgtool
|
||||
-rw-r--r-- 1 root root 15611 2018-06-19 19:39 ./source/a/pkgtools/scripts/removepkg
|
||||
-rw-r--r-- 1 root root 170 2003-02-16 00:56 ./source/a/pkgtools/scripts/setup.70.install-kernel
|
||||
-rw-r--r-- 1 root root 9155 2018-04-28 19:11 ./source/a/pkgtools/scripts/setup.80.make-bootdisk
|
||||
-rw-r--r-- 1 root root 9164 2018-06-19 19:28 ./source/a/pkgtools/scripts/setup.80.make-bootdisk
|
||||
-rw-r--r-- 1 root root 1062 2018-04-28 19:12 ./source/a/pkgtools/scripts/setup.htmlview
|
||||
-rw-r--r-- 1 root root 8866 2018-06-13 03:00 ./source/a/pkgtools/scripts/setup.services
|
||||
-rw-r--r-- 1 root root 14008 2018-06-14 23:40 ./source/a/pkgtools/scripts/upgradepkg
|
||||
-rw-r--r-- 1 root root 8875 2018-06-19 19:28 ./source/a/pkgtools/scripts/setup.services
|
||||
-rw-r--r-- 1 root root 14138 2018-06-19 19:41 ./source/a/pkgtools/scripts/upgradepkg
|
||||
-rw-r--r-- 1 root root 1128 2018-04-11 19:51 ./source/a/pkgtools/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/plzip
|
||||
-rw-r--r-- 1 root root 53414 2018-02-10 18:28 ./source/a/plzip/plzip-1.7.tar.lz
|
||||
|
@ -5671,7 +5672,7 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/syslinux
|
|||
-rw-r--r-- 1 root root 836 2013-07-25 09:37 ./source/a/syslinux/syslinux-4.07.tar.sign
|
||||
-rw-r--r-- 1 root root 4580396 2013-07-25 09:37 ./source/a/syslinux/syslinux-4.07.tar.xz
|
||||
-rwxr-xr-x 1 root root 3620 2018-04-23 17:20 ./source/a/syslinux/syslinux.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/sysvinit
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 18:39 ./source/a/sysvinit
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/sysvinit-functions
|
||||
-rw-r--r-- 1 root root 832 2007-04-29 18:51 ./source/a/sysvinit-functions/README.functions
|
||||
-rw-r--r-- 1 root root 226 2007-05-15 02:38 ./source/a/sysvinit-functions/doinst.sh.gz
|
||||
|
@ -5699,12 +5700,13 @@ drwxr-xr-x 2 root root 4096 2017-11-03 00:51 ./source/a/sysvinit-scripts/s
|
|||
-rw-r--r-- 1 root root 645 2012-09-07 17:52 ./source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh.diff
|
||||
-rw-r--r-- 1 root root 842 2018-02-27 06:13 ./source/a/sysvinit-scripts/slack-desc
|
||||
-rwxr-xr-x 1 root root 2558 2018-06-14 23:29 ./source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
|
||||
-rw-r--r-- 1 root root 23 2015-08-06 22:54 ./source/a/sysvinit/CHANGES
|
||||
-rw-r--r-- 1 root root 668 2015-08-06 22:54 ./source/a/sysvinit/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 967 2018-02-27 06:13 ./source/a/sysvinit/slack-desc
|
||||
-rw-r--r-- 1 root root 105184 2010-04-14 07:14 ./source/a/sysvinit/sysvinit-2.88dsf.tar.xz
|
||||
-rwxr-xr-x 1 root root 3936 2018-04-23 17:20 ./source/a/sysvinit/sysvinit.SlackBuild
|
||||
-rw-r--r-- 1 root root 1009 2018-06-21 18:24 ./source/a/sysvinit/slack-desc
|
||||
-rw-r--r-- 1 root root 112840 2018-06-18 23:26 ./source/a/sysvinit/sysvinit-2.90.tar.xz
|
||||
-rw-r--r-- 1 root root 313 2018-06-18 23:26 ./source/a/sysvinit/sysvinit-2.90.tar.xz.sig
|
||||
-rwxr-xr-x 1 root root 4052 2018-06-21 18:39 ./source/a/sysvinit/sysvinit.SlackBuild
|
||||
-rw-r--r-- 1 root root 367 2012-07-31 16:44 ./source/a/sysvinit/sysvinit.paths.diff.gz
|
||||
-rw-r--r-- 1 root root 3516 2018-06-20 00:27 ./source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/a/tar
|
||||
-rw-r--r-- 1 root root 846 2018-05-29 21:31 ./source/a/tar/slack-desc
|
||||
-rw-r--r-- 1 root root 1051 2017-12-22 06:39 ./source/a/tar/tar-1.13.bzip2.diff.gz
|
||||
|
@ -5897,7 +5899,7 @@ drwxr-xr-x 2 root root 4096 2015-11-21 23:21 ./source/ap/cgmanager/confi
|
|||
drwxr-xr-x 2 root root 4096 2018-06-09 16:41 ./source/ap/cups
|
||||
drwxr-xr-x 2 root root 4096 2018-05-22 03:57 ./source/ap/cups-filters
|
||||
-rw-r--r-- 1 root root 1469468 2018-04-12 13:26 ./source/ap/cups-filters/cups-filters-1.20.3.tar.xz
|
||||
-rwxr-xr-x 1 root root 4409 2018-05-22 03:57 ./source/ap/cups-filters/cups-filters.SlackBuild
|
||||
-rwxr-xr-x 1 root root 4409 2018-06-21 19:06 ./source/ap/cups-filters/cups-filters.SlackBuild
|
||||
-rw-r--r-- 1 root root 51 2014-07-21 02:53 ./source/ap/cups-filters/cups-filters.url
|
||||
-rw-r--r-- 1 root root 339 2018-01-08 22:54 ./source/ap/cups-filters/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 908 2018-02-27 06:12 ./source/ap/cups-filters/slack-desc
|
||||
|
@ -6770,14 +6772,14 @@ drwxr-xr-x 2 root root 4096 2018-04-18 04:06 ./source/installer/sources/
|
|||
-rw-r--r-- 1 root root 2260586 2018-04-03 20:08 ./source/installer/sources/busybox/busybox-1.28.3.tar.bz2
|
||||
-rw-r--r-- 1 root root 528 2018-04-03 20:09 ./source/installer/sources/busybox/busybox-1.28.3.tar.bz2.sign
|
||||
-rw-r--r-- 1 root root 27605 2018-04-18 04:06 ./source/installer/sources/busybox/busybox-dot-config
|
||||
drwxr-xr-x 2 3356 users 4096 2018-06-20 21:07 ./source/installer/sources/dropbear
|
||||
drwxr-xr-x 2 root root 4096 2018-06-20 21:07 ./source/installer/sources/dropbear
|
||||
-rw-r--r-- 1 root root 372 2008-03-13 13:43 ./source/installer/sources/dropbear/doinst.sh
|
||||
-rw-r--r-- 1 root root 1407361 2018-01-14 04:51 ./source/installer/sources/dropbear/dropbear-20171018_fa3b0dd3.tar.lz
|
||||
-rwxr-xr-- 1 root root 4351 2018-06-20 21:07 ./source/installer/sources/dropbear/dropbear.Slackbuild
|
||||
-rw-r--r-- 1 root root 783 2018-01-14 05:07 ./source/installer/sources/dropbear/dropbear_emptypass.patch
|
||||
-rw-r--r-- 1 root root 151 2018-06-20 21:07 ./source/installer/sources/dropbear/localoptions.h
|
||||
-rw-r--r-- 1 root root 1912 2018-01-14 05:41 ./source/installer/sources/dropbear/rc.dropbear.new
|
||||
-rw-r--r-- 1 root root 890 2008-03-13 13:43 ./source/installer/sources/dropbear/slack-desc
|
||||
-rw-r--r-- 1 root root 887 2018-06-21 19:41 ./source/installer/sources/dropbear/slack-desc
|
||||
drwxr-xr-x 3 root root 4096 2013-03-11 21:15 ./source/installer/sources/efi.i586
|
||||
drwxr-xr-x 3 root root 4096 2013-03-11 21:15 ./source/installer/sources/efi.i586/EFI
|
||||
drwxr-xr-x 2 root root 4096 2015-11-24 23:20 ./source/installer/sources/efi.i586/EFI/BOOT
|
||||
|
@ -6835,7 +6837,7 @@ drwxr-xr-x 2 root root 4096 2018-04-13 02:43 ./source/kde/build
|
|||
-rw-r--r-- 1 root root 2 2018-04-13 02:43 ./source/kde/build/bluedevil
|
||||
-rw-r--r-- 1 root root 2 2018-04-13 02:43 ./source/kde/build/bomber
|
||||
-rw-r--r-- 1 root root 2 2018-04-13 02:43 ./source/kde/build/bovo
|
||||
-rw-r--r-- 1 root root 3 2018-05-22 03:58 ./source/kde/build/calligra
|
||||
-rw-r--r-- 1 root root 3 2018-06-21 19:07 ./source/kde/build/calligra
|
||||
-rw-r--r-- 1 root root 2 2018-04-13 02:43 ./source/kde/build/cantor
|
||||
-rw-r--r-- 1 root root 2 2018-04-13 02:43 ./source/kde/build/cervisia
|
||||
-rw-r--r-- 1 root root 2 2018-04-13 02:43 ./source/kde/build/dolphin-plugins
|
||||
|
@ -7955,7 +7957,7 @@ drwxr-xr-x 2 root root 4096 2018-02-27 06:35 ./source/kdei/kde-l10n/slac
|
|||
-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-12 19:44 ./source/l
|
||||
drwxr-xr-x 312 root root 12288 2018-06-21 20:09 ./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
|
||||
|
@ -8166,9 +8168,9 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/dbus-glib
|
|||
-rwxr-xr-x 1 root root 4534 2018-04-23 17:20 ./source/l/dbus-glib/dbus-glib.SlackBuild
|
||||
-rw-r--r-- 1 root root 48 2018-01-31 22:19 ./source/l/dbus-glib/dbus-glib.url
|
||||
-rw-r--r-- 1 root root 678 2018-02-27 06:12 ./source/l/dbus-glib/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/dbus-python
|
||||
-rw-r--r-- 1 root root 545760 2018-01-29 19:50 ./source/l/dbus-python/dbus-python-1.2.6.tar.lz
|
||||
-rwxr-xr-x 1 root root 4273 2018-04-23 17:20 ./source/l/dbus-python/dbus-python.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 20:24 ./source/l/dbus-python
|
||||
-rw-r--r-- 1 root root 551278 2018-05-04 16:16 ./source/l/dbus-python/dbus-python-1.2.8.tar.lz
|
||||
-rwxr-xr-x 1 root root 4273 2018-06-21 20:24 ./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-06-10 04:11 ./source/l/dconf
|
||||
|
@ -8277,10 +8279,11 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/gamin
|
|||
-rw-r--r-- 1 root root 497 2011-03-16 01:42 ./source/l/gamin/gaminrc.gz
|
||||
-rw-r--r-- 1 root root 558 2012-09-23 01:40 ./source/l/gamin/no_g_const_return.patch.gz
|
||||
-rw-r--r-- 1 root root 749 2018-02-27 06:12 ./source/l/gamin/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/gc
|
||||
-rw-r--r-- 1 root root 779145 2018-01-29 03:06 ./source/l/gc/gc-7.6.4.tar.lz
|
||||
-rwxr-xr-x 1 root root 5071 2018-04-23 17:20 ./source/l/gc/gc.SlackBuild
|
||||
-rw-r--r-- 1 root root 330558 2018-01-02 05:05 ./source/l/gc/libatomic_ops-7.6.2.tar.lz
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 18:46 ./source/l/gc
|
||||
-rw-r--r-- 1 root root 780389 2018-04-20 18:14 ./source/l/gc/gc-7.6.6.tar.lz
|
||||
-rwxr-xr-x 1 root root 5071 2018-06-21 18:47 ./source/l/gc/gc.SlackBuild
|
||||
-rw-r--r-- 1 root root 72 2018-06-21 18:45 ./source/l/gc/gc.url
|
||||
-rw-r--r-- 1 root root 330948 2018-03-27 09:08 ./source/l/gc/libatomic_ops-7.6.4.tar.lz
|
||||
-rw-r--r-- 1 root root 690 2018-02-27 06:12 ./source/l/gc/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/gcr
|
||||
-rw-r--r-- 1 root root 226 2012-07-18 20:49 ./source/l/gcr/doinst.sh.gz
|
||||
|
@ -8524,10 +8527,10 @@ drwxr-xr-x 2 root root 4096 2018-05-09 04:16 ./source/l/gvfs
|
|||
-rw-r--r-- 1 root root 1250528 2018-05-07 10:18 ./source/l/gvfs/gvfs-1.36.2.tar.xz
|
||||
-rwxr-xr-x 1 root root 4558 2018-05-09 04:16 ./source/l/gvfs/gvfs.SlackBuild
|
||||
-rw-r--r-- 1 root root 882 2018-02-27 06:12 ./source/l/gvfs/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-06-06 18:44 ./source/l/harfbuzz
|
||||
-rw-r--r-- 1 root root 2776129 2018-06-05 22:20 ./source/l/harfbuzz/harfbuzz-1.7.7.tar.lz
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 20:29 ./source/l/harfbuzz
|
||||
-rw-r--r-- 1 root root 2781097 2018-06-12 23:38 ./source/l/harfbuzz/harfbuzz-1.8.1.tar.lz
|
||||
-rwxr-xr-x 1 root root 3849 2018-06-06 18:45 ./source/l/harfbuzz/harfbuzz.SlackBuild
|
||||
-rw-r--r-- 1 root root 736 2018-02-27 06:12 ./source/l/harfbuzz/slack-desc
|
||||
-rw-r--r-- 1 root root 746 2018-06-21 20:28 ./source/l/harfbuzz/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/hicolor-icon-theme
|
||||
-rw-r--r-- 1 root root 580 2012-07-18 19:52 ./source/l/hicolor-icon-theme/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 53016 2017-08-31 06:57 ./source/l/hicolor-icon-theme/hicolor-icon-theme-0.17.tar.xz
|
||||
|
@ -9238,31 +9241,30 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/polkit-qt-1
|
|||
-rw-r--r-- 1 root root 1448865 2015-07-02 17:40 ./source/l/polkit/polkit-0.113.tar.gz
|
||||
-rwxr-xr-x 1 root root 5899 2018-04-23 17:20 ./source/l/polkit/polkit.SlackBuild
|
||||
-rw-r--r-- 1 root root 902 2018-02-27 06:12 ./source/l/polkit/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-05-22 04:21 ./source/l/poppler
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 19:04 ./source/l/poppler
|
||||
drwxr-xr-x 2 root root 4096 2018-04-25 18:28 ./source/l/poppler-data
|
||||
-rw-r--r-- 1 root root 1517002 2018-04-24 17:57 ./source/l/poppler-data/poppler-data-0.4.9.tar.lz
|
||||
-rwxr-xr-x 1 root root 2684 2018-04-25 18:29 ./source/l/poppler-data/poppler-data.SlackBuild
|
||||
-rw-r--r-- 1 root root 1058 2018-02-27 06:12 ./source/l/poppler-data/slack-desc
|
||||
-rw-r--r-- 1 root root 1451720 2018-05-19 15:07 ./source/l/poppler/poppler-0.65.0.tar.xz
|
||||
-rw-r--r-- 1 root root 1457420 2018-06-19 21:19 ./source/l/poppler/poppler-0.66.0.tar.xz
|
||||
-rwxr-xr-x 1 root root 4783 2018-05-22 03:56 ./source/l/poppler/poppler.SlackBuild
|
||||
-rw-r--r-- 1 root root 128040 2017-12-05 01:55 ./source/l/poppler/poppler.remove.qt4.frontend.diff.xz
|
||||
-rw-r--r-- 1 root root 586 2018-03-27 18:21 ./source/l/poppler/poppler.splashpath.h.revert.diff.gz
|
||||
-rw-r--r-- 1 root root 229 2018-06-21 19:04 ./source/l/poppler/poppler.splashpath.h.revert.diff.gz
|
||||
-rw-r--r-- 1 root root 988 2018-02-27 06:12 ./source/l/poppler/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/popt
|
||||
-rw-r--r-- 1 root root 526380 2010-05-07 17:19 ./source/l/popt/popt-1.16.tar.xz
|
||||
-rwxr-xr-x 1 root root 4310 2018-04-23 17:20 ./source/l/popt/popt.SlackBuild
|
||||
-rw-r--r-- 1 root root 1041 2018-02-27 06:12 ./source/l/popt/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-05-06 19:33 ./source/l/pulseaudio
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 20:08 ./source/l/pulseaudio
|
||||
-rw-r--r-- 1 root root 1498 2016-06-22 18:41 ./source/l/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch.gz
|
||||
-rw-r--r-- 1 root root 1243 2018-02-12 01:51 ./source/l/pulseaudio/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch.gz
|
||||
-rw-r--r-- 1 root root 531 2016-01-06 21:40 ./source/l/pulseaudio/0002-allow-autospawn-for-root-default.diff.gz
|
||||
-rw-r--r-- 1 root root 394 2016-01-07 21:06 ./source/l/pulseaudio/0003-no-root-warn.diff.gz
|
||||
-rw-r--r-- 1 root root 326 2015-03-08 01:29 ./source/l/pulseaudio/020_no-parallel-make.diff.gz
|
||||
-rw-r--r-- 1 root root 546 2015-09-19 15:38 ./source/l/pulseaudio/030_posix-completion.diff.gz
|
||||
-rw-r--r-- 1 root root 452 2016-06-22 19:42 ./source/l/pulseaudio/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 1648924 2017-09-18 15:23 ./source/l/pulseaudio/pulseaudio-11.1.tar.xz
|
||||
-rw-r--r-- 1 root root 1657212 2018-06-20 20:33 ./source/l/pulseaudio/pulseaudio-12.0.tar.xz
|
||||
-rw-r--r-- 1 root root 359 2015-12-29 02:46 ./source/l/pulseaudio/pulseaudio-autostart.patch.gz
|
||||
-rwxr-xr-x 1 root root 5323 2018-05-06 19:33 ./source/l/pulseaudio/pulseaudio.SlackBuild
|
||||
-rwxr-xr-x 1 root root 5191 2018-06-21 20:08 ./source/l/pulseaudio/pulseaudio.SlackBuild
|
||||
-rw-r--r-- 1 root root 1171 2016-01-08 03:59 ./source/l/pulseaudio/rc.pulseaudio
|
||||
-rw-r--r-- 1 root root 828 2018-02-27 06:12 ./source/l/pulseaudio/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/l/pycairo
|
||||
|
@ -9775,11 +9777,11 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/n/dhcp
|
|||
-rwxr-xr-x 1 root root 5649 2018-04-23 17:20 ./source/n/dhcp/dhcp.SlackBuild
|
||||
-rw-r--r-- 1 root root 309 2011-03-24 13:39 ./source/n/dhcp/doinst.sh.gz
|
||||
-rw-r--r-- 1 root root 1093 2018-02-27 06:13 ./source/n/dhcp/slack-desc
|
||||
drwxr-xr-x 3 root root 4096 2018-06-05 04:14 ./source/n/dhcpcd
|
||||
drwxr-xr-x 3 root root 4096 2018-06-21 20:31 ./source/n/dhcpcd
|
||||
-rw-r--r-- 1 root root 763 2012-07-08 23:28 ./source/n/dhcpcd/COPYRIGHT.gz
|
||||
-rw-r--r-- 1 root root 210024 2018-06-04 16:32 ./source/n/dhcpcd/dhcpcd-7.0.5b.tar.xz
|
||||
-rw-r--r-- 1 root root 97 2018-06-04 16:32 ./source/n/dhcpcd/dhcpcd-7.0.5b.tar.xz.distinfo
|
||||
-rw-r--r-- 1 root root 670 2018-06-04 16:32 ./source/n/dhcpcd/dhcpcd-7.0.5b.tar.xz.distinfo.asc
|
||||
-rw-r--r-- 1 root root 210392 2018-06-21 11:39 ./source/n/dhcpcd/dhcpcd-7.0.6.tar.xz
|
||||
-rw-r--r-- 1 root root 96 2018-06-21 11:39 ./source/n/dhcpcd/dhcpcd-7.0.6.tar.xz.distinfo
|
||||
-rw-r--r-- 1 root root 669 2018-06-21 11:39 ./source/n/dhcpcd/dhcpcd-7.0.6.tar.xz.distinfo.asc
|
||||
-rwxr-xr-x 1 root root 4785 2018-05-03 12:18 ./source/n/dhcpcd/dhcpcd.SlackBuild
|
||||
-rw-r--r-- 1 root root 34 2018-04-07 20:13 ./source/n/dhcpcd/dhcpcd.url
|
||||
-rw-r--r-- 1 root root 265 2009-07-24 16:30 ./source/n/dhcpcd/doinst.sh.gz
|
||||
|
@ -10354,15 +10356,15 @@ drwxr-xr-x 2 root root 4096 2018-06-02 17:01 ./source/n/p11-kit
|
|||
-rwxr-xr-x 1 root root 3604 2018-05-28 18:07 ./source/n/p11-kit/p11-kit.SlackBuild
|
||||
-rw-r--r-- 1 root root 45 2018-05-28 18:06 ./source/n/p11-kit/p11-kit.url
|
||||
-rw-r--r-- 1 root root 972 2018-02-27 06:13 ./source/n/p11-kit/slack-desc
|
||||
drwxr-xr-x 3 root root 4096 2018-05-25 18:22 ./source/n/php
|
||||
drwxr-xr-x 3 root root 4096 2018-06-21 20:14 ./source/n/php
|
||||
-rw-r--r-- 1 root root 425 2017-12-08 01:53 ./source/n/php/doinst.sh.gz
|
||||
-rwxr-xr-x 1 root root 118 2018-05-25 18:22 ./source/n/php/fetch-php.sh
|
||||
-rwxr-xr-x 1 root root 118 2018-06-21 20:14 ./source/n/php/fetch-php.sh
|
||||
-rw-r--r-- 1 root root 1022 2017-11-28 18:32 ./source/n/php/mod_php.conf.example
|
||||
drwxr-xr-x 2 root root 4096 2008-05-07 05:21 ./source/n/php/pear
|
||||
-rw-r--r-- 1 root root 12113028 2018-05-24 18:10 ./source/n/php/php-7.2.6.tar.xz
|
||||
-rw-r--r-- 1 root root 825 2018-05-24 18:10 ./source/n/php/php-7.2.6.tar.xz.asc
|
||||
-rw-r--r-- 1 root root 12115168 2018-06-21 15:00 ./source/n/php/php-7.2.7.tar.xz
|
||||
-rw-r--r-- 1 root root 825 2018-06-21 15:00 ./source/n/php/php-7.2.7.tar.xz.asc
|
||||
-rw-r--r-- 1 root root 387 2017-11-28 02:08 ./source/n/php/php-fpm.conf.diff.gz
|
||||
-rwxr-xr-x 1 root root 9686 2018-06-18 03:49 ./source/n/php/php.SlackBuild
|
||||
-rwxr-xr-x 1 root root 9728 2018-06-21 20:20 ./source/n/php/php.SlackBuild
|
||||
-rw-r--r-- 1 root root 811 2017-12-02 05:08 ./source/n/php/php.ini-development.diff.gz
|
||||
-rw-r--r-- 1 root root 825 2018-02-27 06:13 ./source/n/php/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-05-07 22:05 ./source/n/pidentd
|
||||
|
@ -10651,7 +10653,7 @@ drwxr-xr-x 2 root root 4096 2018-05-09 17:55 ./source/t/fig2dev
|
|||
-rw-r--r-- 1 root root 507288 2018-05-05 21:50 ./source/t/fig2dev/fig2dev-3.2.7a.tar.xz
|
||||
-rwxr-xr-x 1 root root 4178 2018-04-23 17:20 ./source/t/fig2dev/fig2dev.SlackBuild
|
||||
-rw-r--r-- 1 root root 940 2018-02-27 06:12 ./source/t/fig2dev/slack-desc
|
||||
drwxr-xr-x 4 root root 4096 2018-05-22 03:57 ./source/t/texlive
|
||||
drwxr-xr-x 4 root root 4096 2018-06-21 18:53 ./source/t/texlive
|
||||
-rw-r--r-- 1 root root 773 2017-05-22 17:37 ./source/t/texlive/README.tlpkg
|
||||
-rw-r--r-- 1 root root 151 2017-11-10 08:16 ./source/t/texlive/doinst.sh.gz
|
||||
-rwxr-xr-x 1 root root 732 2017-09-30 21:54 ./source/t/texlive/dump.unused.internal.libraries.from.sources.sh
|
||||
|
@ -10665,7 +10667,7 @@ drwxr-xr-x 2 root root 4096 2017-09-29 05:12 ./source/t/texlive/prep
|
|||
-rw-r--r-- 1 root root 1004 2018-02-27 06:12 ./source/t/texlive/slack-desc
|
||||
-rw-r--r-- 1 root root 24223252 2017-05-19 23:28 ./source/t/texlive/texlive-20170520-source.tar.xz
|
||||
-rw-r--r-- 1 root root 67803816 2017-11-08 20:21 ./source/t/texlive/texlive-base-2017.171108.tar.xz
|
||||
-rwxr-xr-x 1 root root 8012 2018-05-22 03:57 ./source/t/texlive/texlive.SlackBuild
|
||||
-rwxr-xr-x 1 root root 8264 2018-06-21 19:07 ./source/t/texlive/texlive.SlackBuild
|
||||
-rw-r--r-- 1 root root 243 2017-09-29 05:13 ./source/t/texlive/texlive.url
|
||||
drwxr-xr-x 2 root root 4096 2018-05-09 17:56 ./source/t/xfig
|
||||
-rw-r--r-- 1 root root 909 2018-02-27 06:12 ./source/t/xfig/slack-desc
|
||||
|
@ -10802,9 +10804,9 @@ drwxr-xr-x 2 root root 4096 2015-03-14 21:20 ./source/x/libvdpau/profile.
|
|||
-rwxr--r-- 1 root root 526 2015-03-14 21:20 ./source/x/libvdpau/profile.d/vdpau.csh
|
||||
-rwxr--r-- 1 root root 525 2015-03-14 21:20 ./source/x/libvdpau/profile.d/vdpau.sh
|
||||
-rw-r--r-- 1 root root 988 2018-02-27 06:13 ./source/x/libvdpau/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/x/libwacom
|
||||
-rw-r--r-- 1 root root 407877 2018-03-06 01:21 ./source/x/libwacom/libwacom-0.29.tar.lz
|
||||
-rwxr-xr-x 1 root root 3673 2018-04-23 17:20 ./source/x/libwacom/libwacom.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 20:22 ./source/x/libwacom
|
||||
-rw-r--r-- 1 root root 408128 2018-05-18 01:15 ./source/x/libwacom/libwacom-0.30.tar.lz
|
||||
-rwxr-xr-x 1 root root 3673 2018-06-21 20:22 ./source/x/libwacom/libwacom.SlackBuild
|
||||
-rw-r--r-- 1 root root 39 2018-03-23 18:19 ./source/x/libwacom/libwacom.url
|
||||
-rw-r--r-- 1 root root 878 2018-03-23 18:25 ./source/x/libwacom/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/x/m17n-lib
|
||||
|
@ -12432,10 +12434,10 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/Thunar
|
|||
-rwxr-xr-x 1 root root 4674 2018-04-23 17:20 ./source/xfce/Thunar/Thunar.SlackBuild
|
||||
-rw-r--r-- 1 root root 66 2018-04-06 20:05 ./source/xfce/Thunar/Thunar.url
|
||||
-rw-r--r-- 1 root root 914 2018-02-27 06:13 ./source/xfce/Thunar/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/exo
|
||||
-rw-r--r-- 1 root root 976162 2018-02-14 04:00 ./source/xfce/exo/exo-0.12.0.tar.lz
|
||||
-rwxr-xr-x 1 root root 4674 2018-04-23 17:20 ./source/xfce/exo/exo.SlackBuild
|
||||
-rw-r--r-- 1 root root 62 2018-02-17 18:30 ./source/xfce/exo/exo.url
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 20:21 ./source/xfce/exo
|
||||
-rw-r--r-- 1 root root 983586 2018-06-20 22:07 ./source/xfce/exo/exo-0.12.2.tar.lz
|
||||
-rwxr-xr-x 1 root root 4674 2018-06-21 20:21 ./source/xfce/exo/exo.SlackBuild
|
||||
-rw-r--r-- 1 root root 62 2018-06-21 20:21 ./source/xfce/exo/exo.url
|
||||
-rw-r--r-- 1 root root 826 2018-02-27 06:13 ./source/xfce/exo/slack-desc
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/garcon
|
||||
-rw-r--r-- 1 root root 420064 2017-06-11 10:17 ./source/xfce/garcon/garcon-0.6.1.tar.xz
|
||||
|
@ -12467,7 +12469,7 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/thunar-volman
|
|||
drwxr-xr-x 2 root root 4096 2018-05-22 03:57 ./source/xfce/tumbler
|
||||
-rw-r--r-- 1 root root 964 2018-02-27 06:13 ./source/xfce/tumbler/slack-desc
|
||||
-rw-r--r-- 1 root root 456661 2018-03-31 07:34 ./source/xfce/tumbler/tumbler-0.2.1.tar.lz
|
||||
-rwxr-xr-x 1 root root 4747 2018-05-22 03:57 ./source/xfce/tumbler/tumbler.SlackBuild
|
||||
-rwxr-xr-x 1 root root 4747 2018-06-21 19:07 ./source/xfce/tumbler/tumbler.SlackBuild
|
||||
-rw-r--r-- 1 root root 67 2018-03-31 17:33 ./source/xfce/tumbler/tumbler.url
|
||||
-rwxr-xr-x 1 root root 2159 2018-03-11 21:44 ./source/xfce/xfce-build-all.sh
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-appfinder
|
||||
|
@ -12517,12 +12519,12 @@ drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-session
|
|||
-rw-r--r-- 1 root root 910 2018-02-27 06:13 ./source/xfce/xfce4-session/slack-desc
|
||||
-rw-r--r-- 1 root root 1104188 2015-03-16 07:35 ./source/xfce/xfce4-session/xfce4-session-4.12.1.tar.xz
|
||||
-rwxr-xr-x 1 root root 4663 2018-04-23 17:20 ./source/xfce/xfce4-session/xfce4-session.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-settings
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 20:23 ./source/xfce/xfce4-settings
|
||||
-rw-r--r-- 1 root root 839 2018-02-27 06:13 ./source/xfce/xfce4-settings/slack-desc
|
||||
-rw-r--r-- 1 root root 856686 2018-03-18 20:57 ./source/xfce/xfce4-settings/xfce4-settings-4.12.3.tar.lz
|
||||
-rw-r--r-- 1 root root 859854 2018-06-20 22:35 ./source/xfce/xfce4-settings/xfce4-settings-4.12.4.tar.lz
|
||||
-rwxr-xr-x 1 root root 4804 2018-04-23 17:20 ./source/xfce/xfce4-settings/xfce4-settings.SlackBuild
|
||||
-rw-r--r-- 1 root root 347 2015-02-28 09:15 ./source/xfce/xfce4-settings/xfce4-settings.theme.diff.gz
|
||||
-rw-r--r-- 1 root root 83 2018-04-21 16:00 ./source/xfce/xfce4-settings/xfce4-settings.url
|
||||
-rw-r--r-- 1 root root 83 2018-06-21 20:23 ./source/xfce/xfce4-settings/xfce4-settings.url
|
||||
-rw-r--r-- 1 root root 543 2012-07-19 19:32 ./source/xfce/xfce4-settings/xfce4-settings.xft.defaults.diff.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-04-23 17:20 ./source/xfce/xfce4-systemload-plugin
|
||||
-rw-r--r-- 1 root root 873 2018-02-27 06:13 ./source/xfce/xfce4-systemload-plugin/slack-desc
|
||||
|
@ -12583,43 +12585,14 @@ drwxr-xr-x 2 root root 4096 2012-03-02 16:01 ./source/y/bsd-games/fortune-fi
|
|||
-rw-r--r-- 1 root root 364407 2002-03-10 05:09 ./source/y/bsd-games/fortunes-o.tar.gz
|
||||
-rw-r--r-- 1 root root 104848 1993-10-25 00:02 ./source/y/bsd-games/hangman-words.gz
|
||||
-rw-r--r-- 1 root root 1048 2018-02-27 06:13 ./source/y/bsd-games/slack-desc
|
||||
drwxr-xr-x 4 root root 4096 2018-06-19 23:07 ./testing
|
||||
-rw-r--r-- 1 root root 2433 2018-06-19 23:07 ./testing/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-19 23:07 ./testing/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 3132 2018-06-19 23:07 ./testing/FILE_LIST
|
||||
-rw-r--r-- 1 root root 1640 2018-06-19 23:07 ./testing/MANIFEST.bz2
|
||||
-rw-r--r-- 1 root root 1079 2018-06-19 23:07 ./testing/PACKAGES.TXT
|
||||
drwxr-xr-x 2 root root 4096 2018-06-19 23:07 ./testing/packages
|
||||
-rw-r--r-- 1 root root 672 2018-06-19 21:13 ./testing/packages/pkgtools-15.0-noarch-20.txt
|
||||
-rw-r--r-- 1 root root 195204 2018-06-19 21:13 ./testing/packages/pkgtools-15.0-noarch-20.txz
|
||||
-rw-r--r-- 1 root root 163 2018-06-19 21:13 ./testing/packages/pkgtools-15.0-noarch-20.txz.asc
|
||||
drwxr-xr-x 3 root root 4096 2018-06-19 21:12 ./testing/source
|
||||
drwxr-xr-x 4 root root 4096 2018-06-19 21:12 ./testing/source/pkgtools
|
||||
-rw-r--r-- 1 root root 984 2018-06-19 19:28 ./testing/source/pkgtools/doinst.sh.gz
|
||||
drwxr-xr-x 2 root root 4096 2018-06-19 19:42 ./testing/source/pkgtools/manpages
|
||||
-rw-r--r-- 1 root root 76636 2016-06-15 01:08 ./testing/source/pkgtools/manpages-l10n.tar.xz
|
||||
-rw-r--r-- 1 root root 1265 2018-06-19 19:28 ./testing/source/pkgtools/manpages/explodepkg.8
|
||||
-rw-r--r-- 1 root root 3554 2018-06-19 19:28 ./testing/source/pkgtools/manpages/installpkg.8
|
||||
-rw-r--r-- 1 root root 5441 2018-06-19 19:28 ./testing/source/pkgtools/manpages/makepkg.8
|
||||
-rw-r--r-- 1 root root 1401 2018-04-11 19:48 ./testing/source/pkgtools/manpages/pkgdiff.8
|
||||
-rw-r--r-- 1 root root 2518 2009-04-11 21:11 ./testing/source/pkgtools/manpages/pkgtool.8
|
||||
-rw-r--r-- 1 root root 3251 2018-06-19 19:28 ./testing/source/pkgtools/manpages/removepkg.8
|
||||
-rw-r--r-- 1 root root 2962 2018-06-08 19:56 ./testing/source/pkgtools/manpages/upgradepkg.8
|
||||
-rwxr-xr-x 1 root root 3742 2018-06-19 21:13 ./testing/source/pkgtools/pkgtools.SlackBuild
|
||||
drwxr-xr-x 2 root root 4096 2018-06-19 19:42 ./testing/source/pkgtools/scripts
|
||||
-rw-r--r-- 1 root root 3608 2018-06-19 19:28 ./testing/source/pkgtools/scripts/explodepkg
|
||||
-rw-r--r-- 1 root root 27106 2018-06-19 19:31 ./testing/source/pkgtools/scripts/installpkg
|
||||
-rw-r--r-- 1 root root 13672 2018-06-19 19:28 ./testing/source/pkgtools/scripts/makebootdisk
|
||||
-rw-r--r-- 1 root root 15923 2018-05-22 00:23 ./testing/source/pkgtools/scripts/makepkg
|
||||
-rw-r--r-- 1 root root 4712 2018-04-11 20:28 ./testing/source/pkgtools/scripts/pkgdiff
|
||||
-rw-r--r-- 1 root root 21938 2018-06-19 19:28 ./testing/source/pkgtools/scripts/pkgtool
|
||||
-rw-r--r-- 1 root root 15611 2018-06-19 19:39 ./testing/source/pkgtools/scripts/removepkg
|
||||
-rw-r--r-- 1 root root 170 2003-02-16 00:56 ./testing/source/pkgtools/scripts/setup.70.install-kernel
|
||||
-rw-r--r-- 1 root root 9164 2018-06-19 19:28 ./testing/source/pkgtools/scripts/setup.80.make-bootdisk
|
||||
-rw-r--r-- 1 root root 1062 2018-04-28 19:12 ./testing/source/pkgtools/scripts/setup.htmlview
|
||||
-rw-r--r-- 1 root root 8875 2018-06-19 19:28 ./testing/source/pkgtools/scripts/setup.services
|
||||
-rw-r--r-- 1 root root 14138 2018-06-19 19:41 ./testing/source/pkgtools/scripts/upgradepkg
|
||||
-rw-r--r-- 1 root root 1128 2018-04-11 19:51 ./testing/source/pkgtools/slack-desc
|
||||
drwxr-xr-x 4 root root 4096 2018-06-21 23:10 ./testing
|
||||
-rw-r--r-- 1 root root 552 2018-06-21 23:10 ./testing/CHECKSUMS.md5
|
||||
-rw-r--r-- 1 root root 163 2018-06-21 23:10 ./testing/CHECKSUMS.md5.asc
|
||||
-rw-r--r-- 1 root root 685 2018-06-21 23:10 ./testing/FILE_LIST
|
||||
-rw-r--r-- 1 root root 14 2018-06-21 23:10 ./testing/MANIFEST.bz2
|
||||
-rw-r--r-- 1 root root 224 2018-06-21 23:10 ./testing/PACKAGES.TXT
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 22:51 ./testing/packages
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 22:50 ./testing/source
|
||||
drwxr-xr-x 2 root root 4096 2018-06-21 05:17 ./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
|
||||
|
|
|
@ -403,7 +403,6 @@ gzip ./source/l/ebook-tools/epub3_fixed_layout.patch
|
|||
gzip ./source/l/akonadi/doinst.sh
|
||||
gzip ./source/l/akonadi/mysql-global.conf.patch
|
||||
gzip ./source/l/akonadi/akonadi-mariadb-10.2.patch
|
||||
gzip ./source/l/pulseaudio/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch
|
||||
gzip ./source/l/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
|
||||
gzip ./source/l/pulseaudio/doinst.sh
|
||||
gzip ./source/l/pulseaudio/0003-no-root-warn.diff
|
||||
|
@ -885,6 +884,7 @@ gzip ./source/a/upower/patches/linux-Properly-detect-bluetooth-mice-and-keyboard
|
|||
gzip ./source/a/upower/patches/linux-Detect-docked-docking-stations-correctly.patch
|
||||
gzip ./source/a/upower/patches/linux-Clamp-percentage-for-overfull-batteries.patch
|
||||
gzip ./source/a/sysvinit/doinst.sh
|
||||
gzip ./source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff
|
||||
gzip ./source/a/sysvinit/sysvinit.paths.diff
|
||||
gzip ./source/a/haveged/doinst.sh
|
||||
gzip ./source/a/eudev/doinst.sh
|
||||
|
@ -936,6 +936,7 @@ gzip ./source/a/shadow/login.defs
|
|||
gzip ./source/a/elilo/elilo.double.kernel.size.limit.diff
|
||||
gzip ./source/a/mlocate/doinst.sh
|
||||
gzip ./source/a/pcmciautils/doinst.sh
|
||||
gzip ./source/a/pkgtools/doinst.sh
|
||||
gzip ./source/a/bin/scripts/xx
|
||||
gzip ./source/a/bin/scripts/diskcopy
|
||||
gzip ./source/a/sysvinit-functions/doinst.sh
|
||||
|
@ -1066,7 +1067,6 @@ gzip ./source/ap/linuxdoc-tools/doinst.sh
|
|||
gzip ./source/t/texlive/doinst.sh
|
||||
gzip ./source/t/xfig/xfig.fig.ad.diff
|
||||
gzip ./source/t/xfig/xfig.no.pdf.ref.diff
|
||||
gzip ./testing/source/pkgtools/doinst.sh
|
||||
gzip ./pasture/source/php/php-fpm.conf.diff
|
||||
gzip ./pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
|
||||
gzip ./pasture/source/php/doinst.sh
|
||||
|
|
|
@ -25,7 +25,7 @@ uncompresses and untars Slackware *.tgz (or .tbz, .tlz, .txz) packages (or any a
|
|||
that was created by
|
||||
compressing a tarfile with one of the supported compression utilities) in the current directory. It is not usually
|
||||
used to install packages, since it doesn't execute the installation scripts
|
||||
in ./install or ./var/log/setup. The primary use for
|
||||
in ./install or ./var/lib/pkgtools/setup. The primary use for
|
||||
.B explodepkg
|
||||
is in package maintenance - exploding a package in a subdirectory, making fixes
|
||||
to it or upgrading the software, and then building the updated package with
|
||||
|
|
|
@ -61,7 +61,7 @@ not actually install the package. The list is formatted in a suitable fashion t
|
|||
use as a list of files to backup.
|
||||
.TP
|
||||
.B \--md5sum packagename
|
||||
Record the package md5sum in the metadata written in /var/log/packages.
|
||||
Record the package md5sum in the metadata written in /var/lib/pkgtools/packages.
|
||||
.TP
|
||||
.B \--root /otherroot
|
||||
Install using a location other than / (the default) as the root of the
|
||||
|
|
|
@ -110,11 +110,11 @@ or
|
|||
The second type of script is the
|
||||
.B configuration
|
||||
script. This is found in the subdirectory
|
||||
.B ./var/log/setup
|
||||
.B ./var/lib/pkgtools/setup
|
||||
and must have a name that starts with
|
||||
.B setup.
|
||||
in order to be recongnized. An example is the timezone script:
|
||||
.B /var/log/setup/setup.timeconfig.
|
||||
.B /var/lib/pkgtools/setup/setup.timeconfig.
|
||||
These scripts are executed during the
|
||||
.B CONFIGURE
|
||||
phase of
|
||||
|
@ -136,13 +136,13 @@ script. Like the name suggests, these are executed only once after the package
|
|||
is installed, in contrast to the standard
|
||||
.B configuration
|
||||
script. These scripts are also found in the
|
||||
.B ./var/log/setup
|
||||
.B ./var/lib/pkgtools/setup
|
||||
directory and must have a name that starts with
|
||||
.B setup.,
|
||||
but in addition the name must contain the string
|
||||
.B onlyonce.
|
||||
An example might be a script with the name
|
||||
.B /var/log/setup/setup.onlyonce.testscript
|
||||
.B /var/lib/pkgtools/setup/setup.onlyonce.testscript
|
||||
.SH PACKAGE FORMAT
|
||||
.B makepkg
|
||||
uses GNU tar plus GNU gzip to create its packages. A simple way to
|
||||
|
|
|
@ -38,7 +38,7 @@ removepkg \- remove Slackware packages.
|
|||
.B removepkg
|
||||
removes a previously installed Slackware package, while writing a progress
|
||||
report to the standard output. A package may be specified either by the
|
||||
full package name (as you'd see listed in /var/log/packages/), or by the
|
||||
full package name (as you'd see listed in /var/lib/pkgtools/packages/), or by the
|
||||
base package name. For example, the package foo-1.0-i586-1.txz may be removed
|
||||
with any of the following commands:
|
||||
|
||||
|
@ -71,12 +71,12 @@ you do this (and maybe pipe the output to
|
|||
be important.
|
||||
.LP
|
||||
When removing a package, it's original file index will be moved from
|
||||
/var/log/packages to /var/log/removed_packages. Likewise, it's installation
|
||||
script will be moved from /var/log/scripts to /var/log/removed_scripts.
|
||||
/var/lib/pkgtools/packages to /var/log/pkgtools/removed_packages. Likewise, its installation
|
||||
script will be moved from /var/lib/pkgtools/scripts to /var/log/pkgtools/removed_scripts.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \--copy packagename
|
||||
Construct a copy of the package under /var/log/setup/tmp/preserved_packages/packagename,
|
||||
Construct a copy of the package under /var/lib/pkgtools/setup/tmp/preserved_packages/packagename,
|
||||
but don't remove it. (same effect as \-warn \-preserve)
|
||||
.TP
|
||||
.B \--keep
|
||||
|
@ -86,7 +86,7 @@ required_list). Mostly useful for debugging purposes.
|
|||
.TP
|
||||
.B \--preserve packagename
|
||||
If specified, the complete package subtree is reconstructed in
|
||||
/var/log/setup/tmp/preserved_packages/packagename.
|
||||
/var/lib/pkgtools/setup/tmp/preserved_packages/packagename.
|
||||
.TP
|
||||
.B \--terse
|
||||
Remove the package displaying only a single description line to stdout.
|
||||
|
|
|
@ -30,7 +30,7 @@ PKGNAM=pkgtools
|
|||
# *** UPDATE THESE WITH EACH BUILD:
|
||||
VERSION=15.0
|
||||
ARCH=${ARCH:-noarch}
|
||||
BUILD=${BUILD:-19}
|
||||
BUILD=${BUILD:-20}
|
||||
|
||||
# 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
|
||||
|
@ -80,19 +80,24 @@ mkdir -p $PKG
|
|||
chown root:root $PKG/sbin/*
|
||||
chmod 755 $PKG/sbin/*
|
||||
# These scripts are used during the installation:
|
||||
mkdir -p $PKG/var/log/setup/tmp
|
||||
chmod 700 $PKG/var/log/setup/tmp
|
||||
mkdir -p $PKG/var/lib/pkgtools/setup/tmp
|
||||
chmod 700 $PKG/var/lib/pkgtools/setup/tmp
|
||||
for file in setup.* ; do
|
||||
cp -a $file $PKG/var/log/setup
|
||||
cp -a $file $PKG/var/lib/pkgtools/setup
|
||||
done
|
||||
chown root:root $PKG/var/log/setup/setup.*
|
||||
chmod 755 $PKG/var/log/setup/setup.*
|
||||
chown root:root $PKG/var/lib/pkgtools/setup/setup.*
|
||||
chmod 755 $PKG/var/lib/pkgtools/setup/setup.*
|
||||
# Add a link for makebootstick:
|
||||
( cd $PKG/sbin ; ln -sf ../var/log/setup/setup.80.make-bootdisk makebootstick )
|
||||
( cd $PKG/sbin ; ln -sf ../var/lib/pkgtools/setup/setup.80.make-bootdisk makebootstick )
|
||||
)
|
||||
|
||||
# Create the base directories (not really necessary, but doesn't hurt):
|
||||
mkdir -p $PKG/var/lib/pkgtools/{packages,scripts}
|
||||
mkdir -p $PKG/var/log/pkgtools/{removed_packages,removed_scripts}
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
||||
|
||||
# Build the package:
|
||||
cd $PKG
|
||||
|
|
|
@ -33,7 +33,7 @@ Equivalent to (for each package listed):
|
|||
|
||||
Note: This should only be used for debugging or examining packages, not for
|
||||
installing them. It doesn't execute installation scripts or update the package
|
||||
indexes in /var/log/packages and /var/log/scripts.
|
||||
indexes in /var/lib/pkgtools/packages and /var/lib/pkgtools/scripts.
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
|
|
@ -21,6 +21,15 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Mon Jun 4 21:17:58 UTC 2018
|
||||
# Migrate the package database and directories from /var/log to
|
||||
# /var/lib/pkgtools. /var/log was never a good place for this data, as it is
|
||||
# considered by many to be a directory that could be wiped to free up some
|
||||
# space. Originally the package database was in /var/adm, but the FSSTND
|
||||
# (later FHS) group decided that directory should be a symlink to /var/log,
|
||||
# and I went along with that since it was years ago and I was a n00b and didn't
|
||||
# know any better. /var/lib/pkgtools will be a better and safer location.
|
||||
#
|
||||
# Thu May 24 20:23:55 UTC 2018
|
||||
# Added --terselength option to set the line length in --terse mode.
|
||||
# Allow adding NOLOCK in an install script to allow it to run without locking.
|
||||
|
@ -254,14 +263,33 @@ while [ 0 ]; do
|
|||
done
|
||||
|
||||
# Set the prefix for the package database directories (packages, scripts).
|
||||
ADM_DIR="$ROOT/var/log"
|
||||
ADM_DIR="$ROOT/var/lib/pkgtools"
|
||||
|
||||
# Set the prefix for the removed packages/scripts log files:
|
||||
LOG_DIR="$ROOT/var/log/pkgtools"
|
||||
|
||||
# If the directories don't exist, "initialize" the package database:
|
||||
for PKGDBDIR in packages removed_packages removed_scripts scripts setup ; do
|
||||
for PKGDBDIR in packages scripts setup ; do
|
||||
if [ ! -d $ADM_DIR/$PKGDBDIR ]; then
|
||||
mkdir -p $ADM_DIR/$PKGDBDIR
|
||||
chmod 755 $ADM_DIR/$PKGDBDIR
|
||||
fi
|
||||
done
|
||||
for PKGLOGDIR in removed_packages removed_scripts ; do
|
||||
if [ ! -d $LOG_DIR/$PKGLOGDIR ]; then
|
||||
rm -rf $LOG_DIR/$PKGLOGDIR # make sure it's not a symlink or something stupid
|
||||
mkdir -p $LOG_DIR/$PKGLOGDIR
|
||||
chmod 755 $LOG_DIR/$PKGLOGDIR
|
||||
fi
|
||||
done
|
||||
# Likewise, make sure that the symlinks in /var/log exist. We no longer
|
||||
# trust anything to remain in /var/log. Let the admin wipe it if that's
|
||||
# what they like.
|
||||
for symlink in packages scripts setup ; do
|
||||
if [ ! -L $LOG_DIR/../$symlink -a ! -d $LOG_DIR/../$symlink ]; then
|
||||
( cd $LOG_DIR/.. ; ln -sf ../lib/pkgtools/$symlink . )
|
||||
fi
|
||||
done
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=$ADM_DIR/setup/tmp
|
||||
|
|
|
@ -34,7 +34,7 @@ else
|
|||
fi
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=/var/log/setup/tmp
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999 Patrick Volkerding, Moorhead, MN USA
|
||||
# Copyright 2001, 2004 Slackware Linux, Inc., Concord, CA USA
|
||||
# All rights reserved.
|
||||
# Copyright 2007, 2009, 2010, 2011, 2013, 2015, 2016 Patrick Volkerding, Sebeka, MN, USA
|
||||
# Copyright 2007, 2009, 2010, 2011, 2013, 2015, 2016, 2018 Patrick Volkerding, Sebeka, MN, USA
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
|
@ -23,6 +23,9 @@
|
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# Mon Jun 4 21:17:58 UTC 2018
|
||||
# Use /var/lib/pkgtools, not /var/log.
|
||||
#
|
||||
# Sat Apr 25 21:18:53 UTC 2009
|
||||
# Converted to use new pkgbase() function to remove pathname and
|
||||
# valid package extensions.
|
||||
|
@ -67,12 +70,12 @@ pkgbase() {
|
|||
echo $PKGRETURN
|
||||
}
|
||||
|
||||
SOURCE_DIR=/var/log/mount
|
||||
SOURCE_DIR=/var/lib/pkgtools/mount
|
||||
ASK="tagfiles"
|
||||
if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using busybox
|
||||
TARGET_DIR=/mnt
|
||||
rootdevice="$(mount | grep ' on /mnt ' | tail -n 1 | cut -f 1 -d ' ' 2> /dev/null)"
|
||||
TMP=/mnt/var/log/setup/tmp
|
||||
TMP=/mnt/var/lib/pkgtools/setup/tmp
|
||||
if ! mount | grep ' on /mnt ' 1> /dev/null 2> /dev/null ; then
|
||||
echo
|
||||
echo
|
||||
|
@ -94,13 +97,13 @@ if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using bus
|
|||
else
|
||||
TARGET_DIR=/
|
||||
rootdevice="$(mount | grep ' on / ' | tail -n 1 | cut -f 1 -d ' ')"
|
||||
TMP=/var/log/setup/tmp
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
fi
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP
|
||||
fi
|
||||
ADM_DIR=$TARGET_DIR/var/log
|
||||
ADM_DIR=$TARGET_DIR/var/lib/pkgtools
|
||||
LOG=$TMP/PKGTOOL.REMOVED
|
||||
|
||||
# remove whitespace
|
||||
|
@ -200,7 +203,7 @@ if [ $# -gt 0 ]; then # there are arguments to the command
|
|||
SOURCE_DIR=$2 ; shift 2 ;;
|
||||
-target_dir | --target_dir)
|
||||
TARGET_DIR=$2
|
||||
ADM_DIR=$TARGET_DIR/var/log
|
||||
ADM_DIR=$TARGET_DIR/var/lib/pkgtools
|
||||
shift 2 ;;
|
||||
-source_device | --source_device)
|
||||
SOURCE_DEVICE=$2 ; shift 2 ;;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
# Copyright 1994, 1995, 1998 Patrick Volkerding, Moorhead, Minnesota USA
|
||||
# Copyright 2001, Slackware Linux, Inc., Concord, CA USA
|
||||
# Copyright 2009, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
|
||||
# Copyright 2009, 2015, 2016, 2018 Patrick J. Volkerding, Sebeka, MN, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -24,6 +24,11 @@
|
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# Tue Jun 5 20:04:45 UTC 2018
|
||||
# Use /var/lib/pkgtools for the package database, not /var/log.
|
||||
# Logs of the removed packages and scripts will remain in /var/log, but moved
|
||||
# into /var/log/pkgtools.
|
||||
#
|
||||
# Sun May 27 18:02:23 UTC 2018
|
||||
# Added --terse mode to print one line per removed package.
|
||||
#
|
||||
|
@ -133,14 +138,19 @@ pkgbase() {
|
|||
# This makes "sort" run much faster:
|
||||
export LC_ALL=C
|
||||
|
||||
# Set the prefix for the package database directories (packages, scripts).
|
||||
ADM_DIR="$ROOT/var/lib/pkgtools"
|
||||
|
||||
# Set the prefix for the removed packages/scripts log files:
|
||||
LOG_DIR="$ROOT/var/log/pkgtools"
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=$ROOT/var/log/setup/tmp
|
||||
TMP=$ADM_DIR/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP # no need to leave it open
|
||||
fi
|
||||
ADM_DIR=$ROOT/var/log
|
||||
PRES_DIR=$TMP/preserved_packages
|
||||
|
||||
# Lock directory for ldconfig... share it with installpkg so that upgradepkg
|
||||
|
@ -366,10 +376,19 @@ remove_packages() {
|
|||
fi
|
||||
fi
|
||||
if [ ! "$WARN" = "true" ]; then
|
||||
mkdir -p $ADM_DIR/removed_packages $ADM_DIR/removed_scripts
|
||||
mv $ADM_DIR/packages/$PKGNAME $ADM_DIR/removed_packages
|
||||
# We won't assume that anything in /var/log can be trusted to remain there,
|
||||
# so we'll remake the directories and symlinks first:
|
||||
mkdir -p $LOG_DIR/removed_packages $LOG_DIR/removed_scripts
|
||||
for symlink in removed_packages removed_scripts ; do
|
||||
if [ ! -L $LOG_DIR/../$symlink ]; then
|
||||
rm -rf $LOG_DIR/../$symlink
|
||||
( cd $LOG_DIR/.. ; ln -sf pkgtools/$symlink . )
|
||||
fi
|
||||
done
|
||||
# Now that we know we have log directories, move the files:
|
||||
mv $ADM_DIR/packages/$PKGNAME $LOG_DIR/removed_packages
|
||||
if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
|
||||
mv $ADM_DIR/scripts/$PKGNAME $ADM_DIR/removed_scripts
|
||||
mv $ADM_DIR/scripts/$PKGNAME $LOG_DIR/removed_scripts
|
||||
fi
|
||||
fi
|
||||
else
|
||||
|
|
|
@ -5,7 +5,7 @@ if [ -r /usr/lib/setup/setup ]; then
|
|||
else
|
||||
RDIR=/dev/null
|
||||
fi
|
||||
TMP=/var/log/setup/tmp
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#BLURB="Select/deselect system daemons (services)"
|
||||
TMP=/var/log/setup/tmp
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
fi
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Mon Jun 4 21:17:58 UTC 2018
|
||||
# Use /var/lib/pkgtools, not /var/log.
|
||||
#
|
||||
# Thu May 24 20:23:55 UTC 2018
|
||||
# Added --terselength option to set the line length in --terse mode.
|
||||
# Use a lockfile to prevent output collisions in --terse mode.
|
||||
|
@ -83,8 +86,11 @@ For more details see upgradepkg(8).
|
|||
EOF
|
||||
}
|
||||
|
||||
# Set the prefix for the package database directories (packages, scripts).
|
||||
ADM_DIR="$ROOT/var/lib/pkgtools"
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=$ROOT/var/log/setup/tmp
|
||||
TMP=$ADM_DIR/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
|
@ -226,9 +232,9 @@ for ARG; do
|
|||
|
||||
# Check and fix the old package name:
|
||||
SHORT="$(package_name $OLD)"
|
||||
if [ ! -r $ROOT/var/log/packages/$OLD ]; then
|
||||
if ls $ROOT/var/log/packages/$SHORT* 1> /dev/null 2> /dev/null ; then
|
||||
for installed_package in $ROOT/var/log/packages/$SHORT* ; do
|
||||
if [ ! -r $ADM_DIR/packages/$OLD ]; then
|
||||
if ls $ADM_DIR/packages/$SHORT* 1> /dev/null 2> /dev/null ; then
|
||||
for installed_package in $ADM_DIR/packages/$SHORT* ; do
|
||||
if [ "$(package_name $installed_package)" = "$SHORT" ]; then # found one
|
||||
OLD="${installed_package##*/}"
|
||||
break
|
||||
|
@ -240,14 +246,14 @@ for ARG; do
|
|||
# Test to see if both the old and new packages are where we expect them
|
||||
# to be - skip to the next package (or package pair) if anything's wrong:
|
||||
|
||||
if [ ! -r $ROOT/var/log/packages/$OLD ]; then
|
||||
if [ ! -r $ADM_DIR/packages/$OLD ]; then
|
||||
if [ ! "$INSTALL_NEW" = "yes" ]; then
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "$OLD would not be upgraded (no installed package named $SHORT)."
|
||||
else
|
||||
! [ $TERSE ] && echo
|
||||
echo "Error: there is no installed package named $OLD."
|
||||
! [ $TERSE ] && echo " (looking for $ROOT/var/log/packages/$OLD)"
|
||||
! [ $TERSE ] && echo " (looking for $ADM_DIR/packages/$OLD)"
|
||||
! [ $TERSE ] && echo
|
||||
fi
|
||||
ERRCODE=1
|
||||
|
@ -317,7 +323,7 @@ EOF
|
|||
SHORT="$(package_name $OLD)"
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo -n "$NEW would upgrade: "
|
||||
for installed_package in $ROOT/var/log/packages/$SHORT* ; do
|
||||
for installed_package in $ADM_DIR/packages/$SHORT* ; do
|
||||
if [ "$(package_name $installed_package)" = "$SHORT" ]; then
|
||||
echo -n "$(pkgbase $installed_package)"
|
||||
fi
|
||||
|
@ -325,12 +331,12 @@ EOF
|
|||
echo
|
||||
continue
|
||||
fi
|
||||
for installed_package in $ROOT/var/log/packages/$SHORT* ; do
|
||||
for installed_package in $ADM_DIR/packages/$SHORT* ; do
|
||||
if [ "$(package_name $installed_package)" = "$SHORT" ]; then
|
||||
mv $installed_package ${installed_package}-upgraded-$TIMESTAMP
|
||||
fi
|
||||
done
|
||||
for installed_script in $ROOT/var/log/scripts/$SHORT* ; do
|
||||
for installed_script in $ADM_DIR/scripts/$SHORT* ; do
|
||||
if [ "$(package_name $installed_script)" = "$SHORT" ]; then
|
||||
if [ -r $installed_script ]; then
|
||||
mv $installed_script ${installed_script}-upgraded-$TIMESTAMP
|
||||
|
@ -385,7 +391,7 @@ EOF
|
|||
fi
|
||||
# Now, the leftovers from the old package(s) can go. Pretty simple, huh? :)
|
||||
( flock 9 || exit 11
|
||||
for rempkg in "$ROOT/var/log/packages/"*"-$TIMESTAMP"; do
|
||||
for rempkg in "$ADM_DIR/packages/"*"-$TIMESTAMP"; do
|
||||
if [ "$VERBOSE" = "verbose" ]; then
|
||||
/sbin/removepkg "${rempkg##*/}"
|
||||
elif ! [ $TERSE ]; then
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Removed pidof symlink.
|
|
@ -15,5 +15,5 @@ sysvinit: For example, the normal system runlevel is 3, which starts agetty
|
|||
sysvinit: on virtual consoles tty1 - tty6. Runlevel 4 starts xdm.
|
||||
sysvinit: Runlevel 0 shuts the system down.
|
||||
sysvinit:
|
||||
sysvinit:
|
||||
sysvinit: Homepage: http://www.nongnu.org/sysvinit/
|
||||
sysvinit:
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PKGNAM=sysvinit
|
||||
VERSION=${VERSION:-2.88dsf}
|
||||
BUILD=${BUILD:-5}
|
||||
VERSION=${VERSION:-2.90}
|
||||
BUILD=${BUILD:-1}
|
||||
|
||||
# Automatically determine the architecture we're building on:
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -54,20 +54,28 @@ cd $TMP
|
|||
rm -rf sysvinit-$VERSION
|
||||
tar xvf $CWD/sysvinit-$VERSION.tar.xz || exit 1
|
||||
cd sysvinit-$VERSION
|
||||
|
||||
chown -R root:root .
|
||||
find . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||
-exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||
-exec chmod 644 {} \;
|
||||
|
||||
# Fix paths for /etc/forcefsck and /etc/fastboot:
|
||||
zcat $CWD/sysvinit.paths.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1
|
||||
|
||||
cd doc
|
||||
mkdir -p $PKG/usr/doc/sysvinit-$VERSION
|
||||
cp -a Install Propaganda sysvinit-2.86.lsm \
|
||||
../COPYING* ../COPYRIGHT ../README* \
|
||||
$PKG/usr/doc/sysvinit-$VERSION
|
||||
chmod -R 644 $PKG/usr/doc/sysvinit-$VERSION/*
|
||||
chmod 755 $PKG/usr/doc/sysvinit-$VERSION
|
||||
# Use /dev/initctl instead of /run/initctl ; this is a named pipe and probably
|
||||
# should be in /dev anyway, but more importantly, having the upgraded package
|
||||
# expect it in /run breaks shutdown/reboot without manual intervention
|
||||
zcat $CWD/sysvinit.use_dev_initctl_not_run_initctl.diff.gz | patch -p1 --verbose || exit 1
|
||||
|
||||
cd ../src
|
||||
mkdir -p $PKG/usr/doc/sysvinit-$VERSION
|
||||
cp -a COPYING* COPYRIGHT* README* \
|
||||
doc/* \
|
||||
$PKG/usr/doc/sysvinit-$VERSION
|
||||
|
||||
cd src
|
||||
make clobber || exit 1
|
||||
make || exit 1
|
||||
|
||||
|
@ -90,14 +98,6 @@ mv $PKG/sbin/init $PKG/sbin/init.new
|
|||
chmod 755 $PKG/sbin/init.new
|
||||
chown root:root $PKG/sbin/init.new
|
||||
|
||||
# This version is old. We use genpower now.
|
||||
#cat wall > $PKG/usr/bin/wall
|
||||
#strip --strip-unneeded powerd
|
||||
#cat powerd > $PKG/sbin/powerd
|
||||
#chmod 755 $PKG/usr/bin/wall $PKG/sbin/powerd
|
||||
#chown root:root $PKG/usr/bin/wall $PKG/sbin/powerd
|
||||
cp initscript.sample $PKG/sbin/initscript.sample
|
||||
|
||||
cd ../man
|
||||
mkdir -p $PKG/usr/man/man{1,5,8}
|
||||
for page in last.1 ; do
|
||||
|
|
267
source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff
Normal file
267
source/a/sysvinit/sysvinit.use_dev_initctl_not_run_initctl.diff
Normal file
|
@ -0,0 +1,267 @@
|
|||
diff -Nur sysvinit-2.90.orig/doc/Install sysvinit-2.90/doc/Install
|
||||
--- sysvinit-2.90.orig/doc/Install 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/doc/Install 2018-06-19 19:25:46.523082855 -0500
|
||||
@@ -66,7 +66,7 @@
|
||||
manual page on shutdown to find out more about this.
|
||||
|
||||
Running from a read-only file system (CDROM?):
|
||||
-* All communication to init goes through the FIFO /run/initctl.
|
||||
+* All communication to init goes through the FIFO /dev/initctl.
|
||||
There should be no problem using a read-only root file system
|
||||
If you use a Linux kernel > 1.3.66. Older kernels don't allow
|
||||
writing to a FIFO on a read-only file system.
|
||||
diff -Nur sysvinit-2.90.orig/doc/initctl sysvinit-2.90/doc/initctl
|
||||
--- sysvinit-2.90.orig/doc/initctl 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/doc/initctl 2018-06-19 19:26:00.277206540 -0500
|
||||
@@ -1,5 +1,5 @@
|
||||
This document describes the communiction pipe set up by SysV init
|
||||
-at /run/initctl. This named pipe allows programs with the proper
|
||||
+at /dev/initctl. This named pipe allows programs with the proper
|
||||
permissions (typically programs run by root have read+write access to
|
||||
the pipe) to send signals to the init program (PID 1).
|
||||
|
||||
@@ -58,13 +58,13 @@
|
||||
might need to process our request. For example, when setting environment
|
||||
variables.
|
||||
|
||||
-When setting an environment variable through init's /run/initctl pipe,
|
||||
+When setting an environment variable through init's /dev/initctl pipe,
|
||||
the data variable should have the format VARIABLE=VALUE. The string
|
||||
should be terminated with a NULL '\0' character.
|
||||
|
||||
|
||||
The following C code example shows how to send a set environment variable
|
||||
-request to the init process using the /run/initctl pipe. This example
|
||||
+request to the init process using the /dev/initctl pipe. This example
|
||||
is simplified and skips the error checking. A more comlpete example can be
|
||||
found in the shutdown.c program's init_setnv() function.
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
|
||||
|
||||
-Usually the /run/initctl pipe would only be used by low-level programs to
|
||||
+Usually the /dev/initctl pipe would only be used by low-level programs to
|
||||
request a power-related shutdown or change the runlevel, like telinit
|
||||
would do. Most of the time there is no need to talk to init directly, but
|
||||
this gives us an extenable approach so init can be taught how to learn
|
||||
diff -Nur sysvinit-2.90.orig/man/init.8 sysvinit-2.90/man/init.8
|
||||
--- sysvinit-2.90.orig/man/init.8 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/man/init.8 2018-06-19 19:26:15.470343168 -0500
|
||||
@@ -144,7 +144,7 @@
|
||||
the letter \fBF\fP.
|
||||
.PP
|
||||
Usage of \fBSIGPWR\fP and \fB/etc/powerstatus\fP is discouraged. Someone
|
||||
-wanting to interact with \fBinit\fP should use the \fB/run/initctl\fP
|
||||
+wanting to interact with \fBinit\fP should use the \fB/dev/initctl\fP
|
||||
control channel - see the initctl manual page for more documentation
|
||||
about this.
|
||||
.PP
|
||||
@@ -248,7 +248,7 @@
|
||||
the current runlevel.
|
||||
.PP
|
||||
.SH INTERFACE
|
||||
-Init listens on a \fIfifo\fP in /dev, \fI/run/initctl\fP, for messages.
|
||||
+Init listens on a \fIfifo\fP in /dev, \fI/dev/initctl\fP, for messages.
|
||||
\fBTelinit\fP uses this to communicate with init. The interface is not
|
||||
very well documented or finished. Those interested should study the
|
||||
\fIinitreq.h\fP file in the \fIsrc/\fP subdirectory of the \fBinit\fP
|
||||
@@ -262,11 +262,11 @@
|
||||
.TP 0.5i
|
||||
.B SIGUSR1
|
||||
On receipt of this signals, init closes and re-opens its control fifo,
|
||||
-\fB/run/initctl\fP. Useful for bootscripts when /dev is remounted.
|
||||
+\fB/dev/initctl\fP. Useful for bootscripts when /dev is remounted.
|
||||
.TP 0.5i
|
||||
.B SIGUSR2
|
||||
When init receives SIGUSR2, init closes and leaves the control fifo,
|
||||
-\fB/run/initctl\f\P, closed. This may be used to make sure init is not
|
||||
+\fB/dev/initctl\f\P, closed. This may be used to make sure init is not
|
||||
holding open any files. However, it also prevents init from switching
|
||||
runlevels. Which means commands like shutdown no longer work.
|
||||
The fifo can be re-opened by sending init the SIGUSR1 signal.
|
||||
@@ -294,7 +294,7 @@
|
||||
/dev/console
|
||||
/var/run/utmp
|
||||
/var/log/wtmp
|
||||
-/run/initctl
|
||||
+/dev/initctl
|
||||
.fi
|
||||
.\"}}}
|
||||
.\"{{{ Warnings
|
||||
diff -Nur sysvinit-2.90.orig/man/initctl.5 sysvinit-2.90/man/initctl.5
|
||||
--- sysvinit-2.90.orig/man/initctl.5 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/man/initctl.5 2018-06-19 19:26:43.481595070 -0500
|
||||
@@ -16,13 +16,13 @@
|
||||
.\"
|
||||
.TH INITCTL 5 "April 13, 2018" "" "Linux System Administrator's Manual"
|
||||
.SH NAME
|
||||
-initctl \- /run/initctl is a named pipe which passes commands to SysV init.
|
||||
+initctl \- /dev/initctl is a named pipe which passes commands to SysV init.
|
||||
.SH SYNOPSIS
|
||||
-/run/initctl
|
||||
+/dev/initctl
|
||||
.SH DESCRIPTION
|
||||
|
||||
This document describes the communiction pipe set up by SysV init
|
||||
-at /run/initctl. This named pipe allows programs with the proper
|
||||
+at /dev/initctl. This named pipe allows programs with the proper
|
||||
permissions (typically programs run by root have read+write access to
|
||||
the pipe) to send signals to the init program (PID 1).
|
||||
|
||||
@@ -86,14 +86,14 @@
|
||||
might need to process our request. For example, when setting environment
|
||||
variables.
|
||||
|
||||
-When setting an environment variable through init's /run/initctl pipe,
|
||||
+When setting an environment variable through init's /dev/initctl pipe,
|
||||
the data variable should have the format VARIABLE=VALUE. The string
|
||||
should be terminated with a NULL character.
|
||||
|
||||
.SH EXAMPLES
|
||||
|
||||
The following C code example shows how to send a set environment variable
|
||||
-request to the init process using the /run/initctl pipe. This example
|
||||
+request to the init process using the /dev/initctl pipe. This example
|
||||
is simplified and skips the error checking. A more comlpete example can be
|
||||
found in the shutdown.c program's init_setnv() function.
|
||||
|
||||
@@ -118,18 +118,18 @@
|
||||
.sp
|
||||
.RE
|
||||
.SH NOTES
|
||||
-Usually the /run/initctl pipe would only be used by low-level programs to
|
||||
+Usually the /dev/initctl pipe would only be used by low-level programs to
|
||||
request a power-related shutdown or change the runlevel, like telinit
|
||||
would do. Most of the time there is no need to talk to init directly, but
|
||||
this gives us an extenable approach so init can be taught how to learn
|
||||
more commands.
|
||||
.PP
|
||||
-The commands passed through the /run/initctl pipe must be sent in a specific
|
||||
+The commands passed through the /dev/initctl pipe must be sent in a specific
|
||||
binary format and be of a specific length. Larger data structures or ones
|
||||
not using the proper format will be ignored. Typically, only root has the
|
||||
ability to write to the initctl pipe for security reasons.
|
||||
.PP
|
||||
-The /run/initctl pipe can be closed by sending init (PID 1) the SIGUSR2
|
||||
+The /dev/initctl pipe can be closed by sending init (PID 1) the SIGUSR2
|
||||
signal. This closes the pipe and leaves it closed. This may be useful
|
||||
for making sure init is not keeping any files open. However, when the
|
||||
pipe is closed, init no longer receives signals, such as those sent by
|
||||
@@ -137,12 +137,12 @@
|
||||
change its runlevel directly. The pipe may be re-opened by sending init (PID 1)
|
||||
the SIGUSR1 signal.
|
||||
.PP
|
||||
-If the /run/initctl pipe is closed then it may still be possible to bring
|
||||
+If the /dev/initctl pipe is closed then it may still be possible to bring
|
||||
down the system using the shutdown command's -n flag, but this is not
|
||||
always clean and not recommended.
|
||||
.RE
|
||||
.SH FILES
|
||||
-/run/initctl
|
||||
+/dev/initctl
|
||||
/sbin/init
|
||||
.SH AUTHOR
|
||||
Jesse Smith <jsmith@resonatingmedia.com>
|
||||
diff -Nur sysvinit-2.90.orig/src/Makefile sysvinit-2.90/src/Makefile
|
||||
--- sysvinit-2.90.orig/src/Makefile 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/src/Makefile 2018-06-19 19:27:26.501981961 -0500
|
||||
@@ -217,8 +217,8 @@
|
||||
#
|
||||
# This part is skipped on Debian systems, the
|
||||
# debian.preinst script takes care of it.
|
||||
- @if [ ! -p /run/initctl ]; then \
|
||||
- echo "Creating /run/initctl"; \
|
||||
- rm -f /run/initctl; \
|
||||
- mknod -m 600 /run/initctl p; fi
|
||||
+ @if [ ! -p /dev/initctl ]; then \
|
||||
+ echo "Creating /dev/initctl"; \
|
||||
+ rm -f /dev/initctl; \
|
||||
+ mknod -m 600 /dev/initctl p; fi
|
||||
endif
|
||||
diff -Nur sysvinit-2.90.orig/src/init.c sysvinit-2.90/src/init.c
|
||||
--- sysvinit-2.90.orig/src/init.c 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/src/init.c 2018-06-19 19:27:08.688821762 -0500
|
||||
@@ -131,7 +131,7 @@
|
||||
int maxproclen; /* Maximal length of argv[0] with \0 */
|
||||
struct utmp utproto; /* Only used for sizeof(utproto.ut_id) */
|
||||
char *console_dev; /* Console device. */
|
||||
-int pipe_fd = -1; /* /run/initctl */
|
||||
+int pipe_fd = -1; /* /dev/initctl */
|
||||
int did_boot = 0; /* Did we already do BOOT* stuff? */
|
||||
int main(int, char **);
|
||||
|
||||
@@ -2354,13 +2354,13 @@
|
||||
int quit = 0;
|
||||
|
||||
/*
|
||||
- * First, try to create /run/initctl if not present.
|
||||
+ * First, try to create /dev/initctl if not present.
|
||||
*/
|
||||
if (stat(INIT_FIFO, &st2) < 0 && errno == ENOENT)
|
||||
(void)mkfifo(INIT_FIFO, 0600);
|
||||
|
||||
/*
|
||||
- * If /run/initctl is open, stat the file to see if it
|
||||
+ * If /dev/initctl is open, stat the file to see if it
|
||||
* is still the _same_ inode.
|
||||
*/
|
||||
if (pipe_fd >= 0) {
|
||||
@@ -2374,7 +2374,7 @@
|
||||
}
|
||||
|
||||
/*
|
||||
- * Now finally try to open /run/initctl if pipe_fd is -1
|
||||
+ * Now finally try to open /dev/initctl if pipe_fd is -1
|
||||
* if it is -2, then we leave it closed
|
||||
*/
|
||||
if (pipe_fd == -1) {
|
||||
@@ -2681,7 +2681,7 @@
|
||||
}
|
||||
if (ISMEMBER(got_signals, SIGUSR1)) {
|
||||
/*
|
||||
- * SIGUSR1 means close and reopen /run/initctl
|
||||
+ * SIGUSR1 means close and reopen /dev/initctl
|
||||
*/
|
||||
INITDBG(L_VB, "got SIGUSR1");
|
||||
if (pipe_fd)
|
||||
@@ -2929,7 +2929,7 @@
|
||||
strerror(errno));
|
||||
|
||||
/* Open the fifo and write a command. */
|
||||
- /* Make sure we don't hang on opening /run/initctl */
|
||||
+ /* Make sure we don't hang on opening /dev/initctl */
|
||||
SETSIG(sa, SIGALRM, signal_handler, 0);
|
||||
alarm(3);
|
||||
if ((fd = open(INIT_FIFO, O_WRONLY)) >= 0) {
|
||||
diff -Nur sysvinit-2.90.orig/src/initreq.h sysvinit-2.90/src/initreq.h
|
||||
--- sysvinit-2.90.orig/src/initreq.h 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/src/initreq.h 2018-06-19 19:26:51.388666180 -0500
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * initreq.h Interface to talk to init through /run/initctl.
|
||||
+ * initreq.h Interface to talk to init through /dev/initctl.
|
||||
*
|
||||
* Copyright (C) 1995-2004 Miquel van Smoorenburg
|
||||
*
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <sys/param.h>
|
||||
|
||||
#ifndef INIT_FIFO
|
||||
-#define INIT_FIFO "/run/initctl"
|
||||
+#define INIT_FIFO "/dev/initctl"
|
||||
#endif
|
||||
|
||||
#define INIT_MAGIC 0x03091969
|
||||
diff -Nur sysvinit-2.90.orig/src/shutdown.c sysvinit-2.90/src/shutdown.c
|
||||
--- sysvinit-2.90.orig/src/shutdown.c 2018-06-18 18:25:26.000000000 -0500
|
||||
+++ sysvinit-2.90/src/shutdown.c 2018-06-19 19:27:13.214862465 -0500
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
/*
|
||||
* Open the fifo and write the command.
|
||||
- * Make sure we don't hang on opening /run/initctl
|
||||
+ * Make sure we don't hang on opening /dev/initctl
|
||||
*/
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
sa.sa_handler = alrm_handler;
|
|
@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=cups-filters
|
||||
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
|
||||
|
|
|
@ -1 +1 @@
|
|||
21
|
||||
22
|
||||
|
|
|
@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=dbus-python
|
||||
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 "}
|
||||
|
||||
|
|
|
@ -25,9 +25,9 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=gc
|
||||
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||
BUILD=${BUILD:-2}
|
||||
BUILD=${BUILD:-1}
|
||||
|
||||
LAO_VERSION="7.6.2" # libatomic_ops version
|
||||
LAO_VERSION="7.6.4" # libatomic_ops version
|
||||
|
||||
# Automatically determine the architecture we're building on:
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
|
2
source/l/gc/gc.url
Normal file
2
source/l/gc/gc.url
Normal file
|
@ -0,0 +1,2 @@
|
|||
https://github.com/ivmai/bdwgc/
|
||||
https://github.com/ivmai/libatomic_ops/
|
|
@ -10,7 +10,7 @@ harfbuzz: harfbuzz (OpenType text shaping engine)
|
|||
harfbuzz:
|
||||
harfbuzz: HarfBuzz is an OpenType text shaping engine.
|
||||
harfbuzz:
|
||||
harfbuzz: http://www.freedesktop.org/software/harfbuzz/release
|
||||
harfbuzz: Homepage: http://www.freedesktop.org/software/harfbuzz/release
|
||||
harfbuzz:
|
||||
harfbuzz:
|
||||
harfbuzz:
|
||||
|
|
|
@ -1,37 +1,6 @@
|
|||
--- ./splash/SplashPath.h.orig 2018-03-18 13:23:49.000000000 -0500
|
||||
+++ ./splash/SplashPath.h 2017-12-03 13:25:06.000000000 -0600
|
||||
@@ -4,20 +4,6 @@
|
||||
//
|
||||
//========================================================================
|
||||
|
||||
-//========================================================================
|
||||
-//
|
||||
-// Modified under the Poppler project - http://poppler.freedesktop.org
|
||||
-//
|
||||
-// All changes made under the Poppler project to this file are licensed
|
||||
-// under GPL version 2 or later
|
||||
-//
|
||||
-// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
|
||||
-//
|
||||
-// To see a description of the changes please see the Changelog file that
|
||||
-// came with your tarball or type make ChangeLog if you are building from git
|
||||
-//
|
||||
-//========================================================================
|
||||
-
|
||||
#ifndef SPLASHPATH_H
|
||||
#define SPLASHPATH_H
|
||||
|
||||
@@ -76,9 +62,6 @@
|
||||
|
||||
~SplashPath();
|
||||
|
||||
- SplashPath(const SplashPath&) = delete;
|
||||
- SplashPath& operator=(const SplashPath&) = delete;
|
||||
-
|
||||
// Append <path> to <this>.
|
||||
void append(SplashPath *path);
|
||||
|
||||
@@ -133,6 +116,8 @@
|
||||
--- ./splash/SplashPath.h.orig 2018-06-19 16:16:47.000000000 -0500
|
||||
+++ ./splash/SplashPath.h 2018-06-21 14:04:25.679001859 -0500
|
||||
@@ -137,6 +137,8 @@
|
||||
|
||||
friend class SplashXPath;
|
||||
friend class Splash;
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
From 01239c23f57e74ec40c92144d22fe153ee65f4ff Mon Sep 17 00:00:00 2001
|
||||
From: Tanu Kaskinen <tanuk@iki.fi>
|
||||
Date: Wed, 24 Jan 2018 03:51:49 +0200
|
||||
Subject: [PATCH] memfd-wrappers: only define memfd_create() if not already
|
||||
defined
|
||||
|
||||
glibc 2.27 is to be released soon, and it will provide memfd_create().
|
||||
If glibc provides the function, we must not define it ourselves,
|
||||
otherwise building fails due to conflict between the two implementations
|
||||
of the same function.
|
||||
|
||||
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104733
|
||||
---
|
||||
configure.ac | 3 +++
|
||||
src/pulsecore/memfd-wrappers.h | 7 ++++---
|
||||
2 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 013918f1a..1095ae8cb 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -607,6 +607,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
|
||||
[AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
|
||||
*** Use linux v3.17 or higher for such a feature.])])
|
||||
|
||||
+AS_IF([test "x$HAVE_MEMFD" = "x1"],
|
||||
+ AC_CHECK_FUNCS([memfd_create]))
|
||||
+
|
||||
AC_SUBST(HAVE_MEMFD)
|
||||
AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
|
||||
AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
|
||||
diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h
|
||||
index 3bed9b2b1..c7aadfd3c 100644
|
||||
--- a/src/pulsecore/memfd-wrappers.h
|
||||
+++ b/src/pulsecore/memfd-wrappers.h
|
||||
@@ -20,13 +20,14 @@
|
||||
License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
-#ifdef HAVE_MEMFD
|
||||
+#if defined(HAVE_MEMFD) && !defined(HAVE_MEMFD_CREATE)
|
||||
|
||||
#include <sys/syscall.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
/*
|
||||
- * No glibc wrappers exist for memfd_create(2), so provide our own.
|
||||
+ * Before glibc version 2.27 there was no wrapper for memfd_create(2),
|
||||
+ * so we have to provide our own.
|
||||
*
|
||||
* Also define memfd fcntl sealing macros. While they are already
|
||||
* defined in the kernel header file <linux/fcntl.h>, that file as
|
||||
@@ -63,6 +64,6 @@ static inline int memfd_create(const char *name, unsigned int flags) {
|
||||
#define F_SEAL_WRITE 0x0008 /* prevent writes */
|
||||
#endif
|
||||
|
||||
-#endif /* HAVE_MEMFD */
|
||||
+#endif /* HAVE_MEMFD && !HAVE_MEMFD_CREATE */
|
||||
|
||||
#endif
|
||||
--
|
||||
2.15.1
|
||||
|
|
@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=pulseaudio
|
||||
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||
BUILD=${BUILD:-3}
|
||||
BUILD=${BUILD:-1}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
|
@ -84,9 +84,6 @@ zcat $CWD/030_posix-completion.diff.gz | patch -p0 --verbose || exit 1
|
|||
zcat $CWD/0001-client-conf-Add-allow-autospawn-for-root.patch.gz | patch -p1 --verbose || exit 1
|
||||
zcat $CWD/0002-allow-autospawn-for-root-default.diff.gz | patch -p1 --verbose || exit 1
|
||||
|
||||
# Fix for glibc-2.27:
|
||||
zcat $CWD/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch.gz | patch -p1 --verbose || exit 1
|
||||
|
||||
# Do not log a warning every time root uses PulseAudio:
|
||||
zcat $CWD/0003-no-root-warn.diff.gz | patch -p1 --verbose || exit 1
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
SHA256 (dhcpcd-7.0.5b.tar.xz) = 587cdaba99cc8778a6cbe3a52728e37ac0f4dfbc9d5b702d48a505be0162317d
|
1
source/n/dhcpcd/dhcpcd-7.0.6.tar.xz.distinfo
Normal file
1
source/n/dhcpcd/dhcpcd-7.0.6.tar.xz.distinfo
Normal file
|
@ -0,0 +1 @@
|
|||
SHA256 (dhcpcd-7.0.6.tar.xz) = 727aa7ca972ab45ccad9238ae102604cca94ada87989305d04d81196d78ac341
|
|
@ -1,2 +1,2 @@
|
|||
lftpget http://us.php.net/distributions/php-7.2.6.tar.xz.asc
|
||||
lftpget http://us.php.net/distributions/php-7.2.6.tar.xz
|
||||
lftpget http://us.php.net/distributions/php-7.2.7.tar.xz.asc
|
||||
lftpget http://us.php.net/distributions/php-7.2.7.tar.xz
|
||||
|
|
|
@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
PKGNAM=php
|
||||
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||
ALPINE=2.21
|
||||
BUILD=${BUILD:-2}
|
||||
BUILD=${BUILD:-1}
|
||||
|
||||
# Automatically determine the architecture we're building on:
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -241,6 +241,8 @@ CXXFLAGS="$SLKCFLAGS -DU_USING_ICU_NAMESPACE=1" \
|
|||
--with-pic \
|
||||
--enable-phpdbg \
|
||||
--with-sodium \
|
||||
--without-readline \
|
||||
--with-libedit \
|
||||
--build=$ARCH-slackware-linux || exit 1
|
||||
|
||||
# I am told this option is worse than nothing. :-)
|
||||
|
|
|
@ -32,7 +32,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
PKGNAM=texlive
|
||||
SOURCEVERSION=${SOURCEVERSION:-20170520}
|
||||
VERSION=${VERSION:-2017.171108}
|
||||
BUILD=${BUILD:-6}
|
||||
BUILD=${BUILD:-7}
|
||||
|
||||
TMP=${TMP:-/tmp}
|
||||
PKG=$TMP/package-texlive
|
||||
|
@ -245,7 +245,10 @@ rm -f $PKG/usr/info/dir
|
|||
gzip -9 $PKG/usr/info/*
|
||||
|
||||
mkdir -p $PKG/install
|
||||
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
||||
# Don't demand a global lock when running the install script:
|
||||
echo "# This install script should not collide with any other script's activities," > $PKG/install/doinst.sh
|
||||
echo "# so don't demand a lock by installpkg: NOLOCK" >> $PKG/install/doinst.sh
|
||||
zcat $CWD/doinst.sh.gz >> $PKG/install/doinst.sh
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
||||
cd $PKG
|
||||
|
|
|
@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=libwacom
|
||||
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||
BUILD=${BUILD:-2}
|
||||
BUILD=${BUILD:-1}
|
||||
|
||||
# Automatically determine the architecture we're building on:
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
|
|
@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=exo
|
||||
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||
BUILD=${BUILD:-2}
|
||||
BUILD=${BUILD:-1}
|
||||
|
||||
# Automatically determine the architecture we're building on:
|
||||
MARCH=$( uname -m )
|
||||
|
|
|
@ -1 +1 @@
|
|||
http://archive.xfce.org:/src/xfce/exo/0.12/exo-0.12.0.tar.bz2
|
||||
http://archive.xfce.org:/src/xfce/exo/0.12/exo-0.12.2.tar.bz2
|
||||
|
|
|
@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PKGNAM=tumbler
|
||||
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:
|
||||
MARCH=$( uname -m )
|
||||
|
|
|
@ -1 +1 @@
|
|||
http://archive.xfce.org/src/xfce/xfce4-settings/4.12/xfce4-settings-4.12.3.tar.bz2
|
||||
http://archive.xfce.org/src/xfce/xfce4-settings/4.12/xfce4-settings-4.12.4.tar.bz2
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH EXPLODEPKG 8 "21 May 1994" "Slackware Version 2.0.0"
|
||||
.SH NAME
|
||||
explodepkg \- Extract the contents of a tar+compression package (such as a Slackware
|
||||
software package) in the current directory.
|
||||
.SH SYNOPSIS
|
||||
.B explodepkg
|
||||
.BI package
|
||||
.BI [
|
||||
.BI package2,
|
||||
.BI package3,
|
||||
.BI ...
|
||||
.BI ]
|
||||
.SH DESCRIPTION
|
||||
.B explodepkg
|
||||
uncompresses and untars Slackware *.tgz (or .tbz, .tlz, .txz) packages (or any archive
|
||||
that was created by
|
||||
compressing a tarfile with one of the supported compression utilities) in the current directory. It is not usually
|
||||
used to install packages, since it doesn't execute the installation scripts
|
||||
in ./install or ./var/lib/pkgtools/setup. The primary use for
|
||||
.B explodepkg
|
||||
is in package maintenance - exploding a package in a subdirectory, making fixes
|
||||
to it or upgrading the software, and then building the updated package with
|
||||
.B makepkg.
|
||||
.SH AUTHOR
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>
|
||||
.SH "SEE ALSO"
|
||||
.BR tar(1),
|
||||
.BR gzip(1),
|
||||
.BR installpkg(8),
|
||||
.BR makepkg(8),
|
||||
.BR pkgtool(8),
|
||||
.BR upgradepkg(8)
|
|
@ -1,126 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH INSTALLPKG 8 "22 Nov 2001" "Slackware Version 8.1.0"
|
||||
.SH NAME
|
||||
installpkg \- install Slackware packages.
|
||||
.SH SYNOPSIS
|
||||
.B installpkg
|
||||
[
|
||||
.B \--warn
|
||||
]
|
||||
[
|
||||
.B \--md5sum
|
||||
]
|
||||
[
|
||||
.B \--root /otherroot
|
||||
]
|
||||
[
|
||||
.B \--infobox
|
||||
]
|
||||
[
|
||||
.B \--menu
|
||||
]
|
||||
[
|
||||
.B \--terse
|
||||
]
|
||||
[
|
||||
.B \--terselength <length>
|
||||
]
|
||||
[
|
||||
.B \--ask
|
||||
]
|
||||
[
|
||||
.B \--priority ADD|REC|OPT|SKP
|
||||
]
|
||||
[
|
||||
.B \--tagfile /somedir/tagfile
|
||||
]
|
||||
[
|
||||
.B \--threads <number>
|
||||
]
|
||||
.BI packagename
|
||||
[
|
||||
.B packagename2 ...
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.B installpkg
|
||||
installs single or multiple *.txz (or .tbz, .tgz, .tlz) binary packages designed
|
||||
for use with the Slackware Linux distribution onto your system.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \--warn packagename
|
||||
Generate a list of files that would be overwritten to the standard output, but do
|
||||
not actually install the package. The list is formatted in a suitable fashion to
|
||||
use as a list of files to backup.
|
||||
.TP
|
||||
.B \--md5sum packagename
|
||||
Record the package md5sum in the metadata written in /var/lib/pkgtools/packages.
|
||||
.TP
|
||||
.B \--root /otherroot
|
||||
Install using a location other than / (the default) as the root of the
|
||||
filesystem to install on. In the example given, use /otherroot instead. Setting
|
||||
the ROOT environment variable does the same thing.
|
||||
.TP
|
||||
.B \--infobox
|
||||
Use /bin/dialog to display an informational dialog as the package is installed.
|
||||
Primarily used when installpkg is called from other scripts.
|
||||
.TP
|
||||
.B \--menu
|
||||
Use /bin/dialog to display a menu asking the user if they would like to install the
|
||||
package(s) or not. Generally used when installpkg is called from other scripts.
|
||||
.TP
|
||||
.B \--terse
|
||||
Install the package displaying only a single description line to stdout.
|
||||
.TP
|
||||
.B \--terselength <length>
|
||||
Maximum line length of --terse mode output. Default is the number of terminal columns.
|
||||
.TP
|
||||
.B \--ask
|
||||
Used with -menu mode. When selected, always ask if a package should be
|
||||
installed regardless of what the package's priority is.
|
||||
.TP
|
||||
.B \--priority ADD|REC|OPT|SKP
|
||||
When installing with the \-menu option, package priority levels (found in the file
|
||||
"tagfile" in the package directory) are used to automatically install (ADD) or
|
||||
skip (SKP) a package, or to suggest recommended (REC) or optional (OPT) to the user
|
||||
if a menu is displayed. If a priority is set on the command line, it will override
|
||||
the values set in the tagfile for the entire package list.
|
||||
.TP
|
||||
.B \--tagfile /somedir/tagfile
|
||||
Specify a different file to use for package priorities (in this example, /somedir/tagfile
|
||||
will be used). The default is "tagfile" in the package's directory.
|
||||
.TP
|
||||
.B \--threads <number>
|
||||
For xz/plzip compressed packages, set the maximum number of threads to be used for
|
||||
decompression. Only has an effect if a multithreaded compressor was used, and then
|
||||
only on large packages. The default for plzip is the number of CPU threads available.
|
||||
The default for xz is 2.
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
.B Install a font package for X:
|
||||
.P
|
||||
installpkg font-bh-ttf-1.0.3-noarch-1.txz
|
||||
.P
|
||||
Note that if a package is already installed, upgradepkg(8) should be used instead.
|
||||
.TP
|
||||
.B Create a backup of the files that would be overwritten if the package is installed:
|
||||
.P
|
||||
.nf
|
||||
tar czvf /tmp/backup.tar.gz \\
|
||||
$(installpkg --warn font-bh-ttf-1.0.3-noarch-1.txz)
|
||||
.fi
|
||||
.SH AUTHOR
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>
|
||||
.SH "SEE ALSO"
|
||||
.BR makepkg(8),
|
||||
.BR removepkg(8),
|
||||
.BR explodepkg(8),
|
||||
.BR pkgtool(8),
|
||||
.BR upgradepkg(8)
|
|
@ -1,164 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH MAKEPKG 8 "21 May 1994" "Slackware Version 2.0.0"
|
||||
.SH NAME
|
||||
makepkg \- make Slackware packages.
|
||||
.SH SYNOPSIS
|
||||
.B makepkg
|
||||
[
|
||||
.B -l, --linkadd y|n
|
||||
]
|
||||
[
|
||||
.B -c, --chown y|n
|
||||
]
|
||||
[
|
||||
.B --threads <number>
|
||||
]
|
||||
[
|
||||
.B --compress <option>
|
||||
]
|
||||
[
|
||||
.B --acls
|
||||
]
|
||||
[
|
||||
.B --xattrs
|
||||
]
|
||||
.BI packagename
|
||||
.SH DESCRIPTION
|
||||
.B makepkg
|
||||
creates a new Slackware compatible package.
|
||||
The package is constructed using the contents of the current directory and
|
||||
all subdirectories. If symbolic links exist, they will be converted to script
|
||||
code to recreate them when the package is installed. This code will be
|
||||
appended to the primary installation script
|
||||
.B ( install/doinst.sh )
|
||||
, or, if that script does not exist it will be created with those contents.
|
||||
The package will be written out to the file
|
||||
.BI packagename
|
||||
which should be the full name, including the extension. This is usually .txz,
|
||||
but .tgz, .tbz, and .tlz are also accepted. The proper compression utility
|
||||
(xz, gzip, bzip2, or lzip) needs to be installed on the machine.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-l, --linkadd y|n
|
||||
If y, add any symbolic links found to the install script (doinst.sh) and
|
||||
delete them. This is the recommended action. If this option is not used,
|
||||
makepkg will prompt if symbolic links are found.
|
||||
.TP
|
||||
.B \-p, --prepend
|
||||
If this option is given, then any symbolic links added to doinst.sh will be
|
||||
prepended to the existing script. This is useful for packages that contain
|
||||
shared libraries that need to be linked first because programs will use them
|
||||
later in the doinst.sh script.
|
||||
.TP
|
||||
.B \-c, --chown y|n
|
||||
If y, makepkg will reset all directory permissions to 755 and ownership to root:root.
|
||||
In general, you should have the permissions and ownerships worked out yourself, so
|
||||
relying on setting this option to y is somewhat sloppy. It is not the default. If an
|
||||
option is not provided, makepkg will prompt.
|
||||
.TP
|
||||
.B --threads <number>
|
||||
For xz/plzip compressed packages, set the maximum number of threads to be used for
|
||||
compression. Only has an effect on large packages. For plzip, the default is the number
|
||||
of CPU threads available. For xz, the default is 2 (due to commonly occuring memory
|
||||
related failures on 32-bit with too many threads and multithreaded xz compression).
|
||||
.TP
|
||||
.B --compress <option>
|
||||
Supply a custom option to the compressor. This will be used in place of the default, which is: -9
|
||||
.TP
|
||||
.B --acls
|
||||
Support storing POSIX ACLs in the package. The resulting package will not be compatible
|
||||
with pkgtools version < 15.0.
|
||||
.TP
|
||||
.B --xattrs
|
||||
Support storing extended attributes in the package. The resulting package will not be
|
||||
compatible with pkgtools version < 15.0.
|
||||
.SH INSTALLATION SCRIPTS
|
||||
There are 3 types of installation scripts supported in the Slackware package
|
||||
system.
|
||||
.TP
|
||||
The first is the
|
||||
.B primary
|
||||
installation script. This is found in the subdirectory
|
||||
.B ./install
|
||||
and must have the name
|
||||
.B doinst.sh
|
||||
in order to be recognized. This ( and other install scripts ) should be written
|
||||
using the basic Bourne shell syntax recognized by the
|
||||
.B ash
|
||||
shell, since this is the shell that will be used to execute the script when
|
||||
installing from a Slackware install floppy. This is a common trap - beware of
|
||||
using
|
||||
.B bash
|
||||
syntax extensions, because the script will work fine when installed from the
|
||||
hard drive, but will bomb out when installed from floppy. If the package is
|
||||
for personal use, this isn't a problem. Be careful, though, if you plan to
|
||||
share your package with other users. The
|
||||
.B primary installation script
|
||||
is executed immediately after the package is installed with
|
||||
.B installpkg, pkgtool,
|
||||
or
|
||||
.B setup.
|
||||
.TP
|
||||
The second type of script is the
|
||||
.B configuration
|
||||
script. This is found in the subdirectory
|
||||
.B ./var/lib/pkgtools/setup
|
||||
and must have a name that starts with
|
||||
.B setup.
|
||||
in order to be recongnized. An example is the timezone script:
|
||||
.B /var/lib/pkgtools/setup/setup.timeconfig.
|
||||
These scripts are executed during the
|
||||
.B CONFIGURE
|
||||
phase of
|
||||
.B setup,
|
||||
and are re-executed each time the user runs the
|
||||
.B CONFIGURE
|
||||
option from
|
||||
.B setup
|
||||
from then on.
|
||||
Typically, the user will go through this phase of setup following the
|
||||
installation of all the packages. Anything that needs to be interactive
|
||||
should go in one of these scripts to avoid halting the package installation
|
||||
process during
|
||||
.B setup.
|
||||
.TP
|
||||
The third type of script is the
|
||||
.B onlyonce
|
||||
script. Like the name suggests, these are executed only once after the package
|
||||
is installed, in contrast to the standard
|
||||
.B configuration
|
||||
script. These scripts are also found in the
|
||||
.B ./var/lib/pkgtools/setup
|
||||
directory and must have a name that starts with
|
||||
.B setup.,
|
||||
but in addition the name must contain the string
|
||||
.B onlyonce.
|
||||
An example might be a script with the name
|
||||
.B /var/lib/pkgtools/setup/setup.onlyonce.testscript
|
||||
.SH PACKAGE FORMAT
|
||||
.B makepkg
|
||||
uses GNU tar plus GNU gzip to create its packages. A simple way to
|
||||
extract the contents of a package (without executing the installation
|
||||
scripts, of course) is to use a command like this:
|
||||
.TP
|
||||
explodepkg package.tgz
|
||||
.TP
|
||||
Or, something like this:
|
||||
.TP
|
||||
gzip -dc package.tgz | tar xvvf -
|
||||
.SH AUTHOR
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>
|
||||
.SH "SEE ALSO"
|
||||
.BR installpkg(8),
|
||||
.BR explodepkg(8),
|
||||
.BR removepkg(8),
|
||||
.BR pkgtool(8),
|
||||
.BR upgradepkg(8)
|
|
@ -1,57 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH PKGDIFF 8 "11 Apr 2018" "Slackware Version 15.0
|
||||
.SH NAME
|
||||
pkgdiff \- compare the file contents of two packages.
|
||||
.SH SYNOPSIS
|
||||
.B pkgdiff
|
||||
[
|
||||
.B \--help
|
||||
]
|
||||
[
|
||||
.B \-c
|
||||
]
|
||||
[
|
||||
.B \-a
|
||||
]
|
||||
.BI packagename
|
||||
.BI packagename2
|
||||
.SH DESCRIPTION
|
||||
.B pkgdiff
|
||||
Displays the differences in the files contained in two packages. This works with
|
||||
plain .tar, Slackware packages (.tgz, .tbz, .tlz, .txz), .rpm, and .deb. By default,
|
||||
the results will be displayed in a tree-style unified diff format.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \--help
|
||||
Display help for using the pkgdiff utility.
|
||||
.TP
|
||||
.B \-c
|
||||
Colorize the tree-style output a-la DIR_COLORS. If piping to a pager such as
|
||||
less, you'll need to enable displaying raw data. For example:
|
||||
.P
|
||||
pkgdiff -c package-1.0-i586-1.txz package-2.0-i586-1.txz | less -r
|
||||
.TP
|
||||
.B \-a
|
||||
Instead of a tree-style output format, generate a simple unified diff of the
|
||||
package file lists.
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
.B Compare two packages and pipe the result to less:
|
||||
.P
|
||||
pkgdiff package-1.0-i586-1.txz package-2.0-i586-1.txz | less
|
||||
.SH AUTHOR
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>
|
||||
.SH "SEE ALSO"
|
||||
.BR makepkg(8),
|
||||
.BR removepkg(8),
|
||||
.BR explodepkg(8),
|
||||
.BR pkgtool(8),
|
||||
.BR upgradepkg(8)
|
|
@ -1,95 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH PKGTOOL 8 "24 Nov 1995" "Slackware Version 3.1.0"
|
||||
.SH NAME
|
||||
pkgtool \- software package maintenance tool.
|
||||
.SH SYNOPSIS
|
||||
.B pkgtool
|
||||
.LP
|
||||
.B pkgtool
|
||||
[
|
||||
.B --sets #a#b#c#
|
||||
]
|
||||
[
|
||||
.B --source_mounted
|
||||
]
|
||||
[
|
||||
.B --ignore_tagfiles
|
||||
]
|
||||
[
|
||||
.B --tagfile tagfile
|
||||
]
|
||||
[
|
||||
.B --source_dir directory
|
||||
]
|
||||
[
|
||||
.B --target_dir directory
|
||||
]
|
||||
[
|
||||
.B --source_device device
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.B pkgtool
|
||||
is a menu-driven package maintenance tool provided with the Slackware Linux
|
||||
distribution. It allows the user to install, remove, or view
|
||||
software packages through an interactive
|
||||
system. Pkgtool can also be used to re-run the menu-driven scripts normally
|
||||
executed at the end of a Slackware installation. This is useful for doing
|
||||
basic reconfiguration (like changing the mouse type).
|
||||
.SH OPTIONS
|
||||
Most users will not want to use any options when running
|
||||
.B pkgtool.
|
||||
These are generally used only when
|
||||
.B pkgtool
|
||||
is run during the initial system installation.
|
||||
Feel free to try them, but be careful.
|
||||
.TP
|
||||
.B \--sets #A#B#C#
|
||||
Install the disk sets A, B, C. Seperate the disk set names by '#' symbols.
|
||||
.TP
|
||||
.B \--source_mounted
|
||||
When this flag is present,
|
||||
.B pkgtool
|
||||
will not attempt to unmount and remount the source device with each disk.
|
||||
.TP
|
||||
.B \--ignore_tagfiles
|
||||
When this flag is present,
|
||||
.B pkgtool
|
||||
will install every package encountered no matter what the tagfiles say.
|
||||
.TP
|
||||
.B \--tagfile tagfile
|
||||
This flag is used to specify from the command line which tagfile should be
|
||||
used for the installation.
|
||||
.TP
|
||||
.B \--source_dir directory
|
||||
Used when installing multiple packages from disk sets. This is the directory
|
||||
in which the subdirectories for each disk are found. This isn't used when
|
||||
installing from floppy.
|
||||
.TP
|
||||
.B \--target_dir directory
|
||||
The directory where the target root directory is located. This is '/' when
|
||||
installing on the hard drive, or typically '/mnt' when installing from an
|
||||
install disk.
|
||||
.TP
|
||||
.B \--source_device device
|
||||
The source device to install from. This is not used if you've provided the
|
||||
.B \--source_mounted
|
||||
flag. It's usually used when installing from floppy, as in:
|
||||
\--source_device /dev/fd0u1440
|
||||
or
|
||||
\--source_device /dev/fd1h1200.
|
||||
.SH AUTHOR
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>
|
||||
.SH "SEE ALSO"
|
||||
.BR makepkg(8),
|
||||
.BR explodepkg(8),
|
||||
.BR installpkg(8),
|
||||
.BR removepkg(8),
|
||||
.BR upgradepkg(8)
|
|
@ -1,114 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH REMOVEPKG 8 "23 Nov 2001" "Slackware Version 8.1.0"
|
||||
.SH NAME
|
||||
removepkg \- remove Slackware packages.
|
||||
.SH SYNOPSIS
|
||||
.B removepkg
|
||||
.BI packagename
|
||||
.LP
|
||||
[
|
||||
.B ROOT=/mnt
|
||||
]
|
||||
.B removepkg
|
||||
[
|
||||
.B \--copy
|
||||
]
|
||||
[
|
||||
.B \--keep
|
||||
]
|
||||
[
|
||||
.B \--preserve
|
||||
]
|
||||
[
|
||||
.B \--terse
|
||||
]
|
||||
[
|
||||
.B \--warn
|
||||
]
|
||||
.BI packagename
|
||||
.SH DESCRIPTION
|
||||
.B removepkg
|
||||
removes a previously installed Slackware package, while writing a progress
|
||||
report to the standard output. A package may be specified either by the
|
||||
full package name (as you'd see listed in /var/lib/pkgtools/packages/), or by the
|
||||
base package name. For example, the package foo-1.0-i586-1.txz may be removed
|
||||
with any of the following commands:
|
||||
|
||||
removepkg foo-1.0-i586-1.txz (also recognized: .tgz, .tbz, .tlz)
|
||||
|
||||
removepkg foo-1.0-i586-1
|
||||
|
||||
removepkg foo.txz
|
||||
|
||||
removepkg foo
|
||||
|
||||
When deleting files,
|
||||
.B removepkg
|
||||
will analyze the contents of the other packages installed on your system, and
|
||||
will only delete the files that are unique to the package being removed.
|
||||
Similarly, the installation scripts for all the other packages will be
|
||||
considered when deciding whether or not to delete symbolic links from the
|
||||
package.
|
||||
.LP
|
||||
Removing a package (as well as installing one) can be a dangerous undertaking.
|
||||
For this reason, there is the
|
||||
.B \-warn
|
||||
option available. When you use this,
|
||||
.B removepkg
|
||||
will not actually remove any files or links, but will output a detailed report
|
||||
of what it would do if you actually did remove the package. It's suggested that
|
||||
you do this (and maybe pipe the output to
|
||||
.B less
|
||||
) before removing packages to make sure you've backed up anything that might
|
||||
be important.
|
||||
.LP
|
||||
When removing a package, it's original file index will be moved from
|
||||
/var/lib/pkgtools/packages to /var/log/pkgtools/removed_packages. Likewise, its installation
|
||||
script will be moved from /var/lib/pkgtools/scripts to /var/log/pkgtools/removed_scripts.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \--copy packagename
|
||||
Construct a copy of the package under /var/lib/pkgtools/setup/tmp/preserved_packages/packagename,
|
||||
but don't remove it. (same effect as \-warn \-preserve)
|
||||
.TP
|
||||
.B \--keep
|
||||
Save the intermediate files created by removepkg (delete_list,
|
||||
required_files, uniq_list, del_link_list, required_links,
|
||||
required_list). Mostly useful for debugging purposes.
|
||||
.TP
|
||||
.B \--preserve packagename
|
||||
If specified, the complete package subtree is reconstructed in
|
||||
/var/lib/pkgtools/setup/tmp/preserved_packages/packagename.
|
||||
.TP
|
||||
.B \--terse
|
||||
Remove the package displaying only a single description line to stdout.
|
||||
.TP
|
||||
.B \--warn packagename
|
||||
Generate a report to the standard output about which files and directories
|
||||
would be removed, but does not actually remove the package.
|
||||
.SH " "
|
||||
It's possible to remove a package from a filesystem
|
||||
other than / by supplying
|
||||
.B removepkg
|
||||
with a
|
||||
.B ROOT
|
||||
environment variable:
|
||||
.TP
|
||||
.B ROOT=/mnt removepkg package
|
||||
|
||||
.SH AUTHORS
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>,
|
||||
with enhancements by Christian Franke <c.franke@acm.org>
|
||||
.SH "SEE ALSO"
|
||||
.BR installpkg(8),
|
||||
.BR makepkg(8),
|
||||
.BR pkgtool(8),
|
||||
.BR upgradepkg(8)
|
|
@ -1,116 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.ds g \" empty
|
||||
.ds G \" empty
|
||||
.\" Like TP, but if specified indent is more than half
|
||||
.\" the current line-length - indent, use the default indent.
|
||||
.de Tp
|
||||
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
|
||||
.el .TP "\\$1"
|
||||
..
|
||||
.TH UPGRADEPKG 8 "31 May 2002" "Slackware Version 8.1.0"
|
||||
.SH NAME
|
||||
upgradepkg \- upgrade Slackware packages.
|
||||
.SH SYNOPSIS
|
||||
.B upgradepkg
|
||||
[
|
||||
.B --dry-run
|
||||
]
|
||||
[
|
||||
.B --install-new
|
||||
]
|
||||
[
|
||||
.B --reinstall
|
||||
]
|
||||
[
|
||||
.B \--terse
|
||||
]
|
||||
[
|
||||
.B \--terselength <length>
|
||||
]
|
||||
[
|
||||
.B --verbose
|
||||
]
|
||||
.BI newpackagename
|
||||
.BI [ newpackagename2 ]
|
||||
.LP
|
||||
.B upgradepkg
|
||||
[
|
||||
.B --dry-run
|
||||
]
|
||||
[
|
||||
.B --install-new
|
||||
]
|
||||
[
|
||||
.B --reinstall
|
||||
]
|
||||
[
|
||||
.B \--terse
|
||||
]
|
||||
[
|
||||
.B \--terselength <length>
|
||||
]
|
||||
[
|
||||
.B --verbose
|
||||
]
|
||||
.BI oldpackagename%newpackagename
|
||||
.BI [ old2%new2 ]
|
||||
.SH DESCRIPTION
|
||||
.B upgradepkg
|
||||
upgrades a Slackware package from an older version to a
|
||||
newer one. It does this by
|
||||
.B INSTALLING
|
||||
the new package onto the system, and then
|
||||
.B REMOVING
|
||||
any files from the old package that aren't in the new package.
|
||||
If the old and new packages have the same name, a single argument is all that
|
||||
is required. If the packages have different names, supply the name of the
|
||||
old package followed by a percent symbol (%), then the name of the new package.
|
||||
Do not add any extra whitespace between pairs of old/new package names.
|
||||
.P
|
||||
Before upgrading a package, save any configuration files (such as in /etc)
|
||||
that you wish to keep. Sometimes these will be preserved, but it depends on
|
||||
the package structure. If you want to force new versions of the config files
|
||||
to be installed, remove the old ones manually prior to running upgradepkg.
|
||||
.P
|
||||
If upgradepkg finds more than one installed package matching the old package's
|
||||
name, it will remove them all.
|
||||
.TP
|
||||
To upgrade in a directory other than / (such as /mnt):
|
||||
.TP
|
||||
ROOT=/mnt upgradepkg package.txz (or .tbz, .tgz, .tlz)
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \--dry-run
|
||||
Output a report about which packages would be installed or upgraded
|
||||
but don't actually perform the upgrades.
|
||||
.TP
|
||||
.B \--install-new
|
||||
Normally upgradepkg only upgrades packages that are already installed on the system, and
|
||||
will skip any packages that do not already have a version installed.
|
||||
If
|
||||
.B --install-new
|
||||
is specified, the behavior is modified to install new packages in addition to upgrading
|
||||
existing ones.
|
||||
.TP
|
||||
.B \--reinstall
|
||||
Upgradepkg usually skips packages if the exact same package
|
||||
(matching name, version, arch, and build number) is already installed on the system.
|
||||
Use the --reinstall option if you want to upgrade all packages even if the same
|
||||
version is already installed.
|
||||
.TP
|
||||
.B \--terse
|
||||
Upgrade the package displaying only a single description line to stdout.
|
||||
.TP
|
||||
.B \--terselength <length>
|
||||
Maximum line length of --terse mode output. Default is the number of terminal columns.
|
||||
.TP
|
||||
.B \--verbose
|
||||
Show all the gory details of the upgrade.
|
||||
.SH AUTHOR
|
||||
Patrick J. Volkerding <volkerdi@slackware.com>
|
||||
.SH "SEE ALSO"
|
||||
.BR makepkg(8),
|
||||
.BR installpkg(8),
|
||||
.BR removepkg(8),
|
||||
.BR explodepkg(8),
|
||||
.BR pkgtool(8)
|
|
@ -1,109 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2018 Patrick J. Volkerding, Sebeka, MN, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# Set initial variables:
|
||||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
if [ "$TMP" = "" ]; then
|
||||
TMP=/tmp
|
||||
fi
|
||||
PKG=$TMP/package-pkgtools
|
||||
|
||||
PKGNAM=pkgtools
|
||||
# *** UPDATE THESE WITH EACH BUILD:
|
||||
VERSION=15.0
|
||||
ARCH=${ARCH:-noarch}
|
||||
BUILD=${BUILD:-20}
|
||||
|
||||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||
# the name of the created package would be, and then exit. This information
|
||||
# could be useful to other scripts.
|
||||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP # location to build the source
|
||||
fi
|
||||
rm -rf $PKG
|
||||
mkdir -p $PKG
|
||||
|
||||
# Install Slackware script manpages:
|
||||
( cd $CWD/manpages
|
||||
mkdir -p $PKG/usr/man/man8
|
||||
for page in explodepkg.8 installpkg.8 makepkg.8 upgradepkg.8 pkgdiff.8 \
|
||||
pkgtool.8 removepkg.8 ; do
|
||||
cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
|
||||
done
|
||||
)
|
||||
|
||||
# Install internationalized manpages from
|
||||
# http://slint.fr/forSlackware/man_l10n/pkgtools/
|
||||
( cd $PKG/usr/man
|
||||
tar xf $CWD/manpages-l10n.tar.xz
|
||||
for page in manpages-l10n/* ; do
|
||||
manpage=$(basename $page)
|
||||
mkdir -p ${manpage%%.*}/man8
|
||||
mv $page ${manpage%%.*}/man8/${page#*.}.8
|
||||
done
|
||||
gzip -9 */man8/*.8
|
||||
rmdir manpages-l10n
|
||||
)
|
||||
|
||||
# Install Slackware scripts:
|
||||
( cd $CWD/scripts
|
||||
# Install the core Slackware package tools:
|
||||
mkdir -p $PKG/sbin
|
||||
# Don't include makebootdisk... it's useless since a kernel won't fit on a
|
||||
# floppy disk, and nobody uses floppies any more anyway.
|
||||
for file in explodepkg installpkg makepkg pkgdiff pkgtool removepkg upgradepkg ; do
|
||||
cp -a $CWD/scripts/$file $PKG/sbin
|
||||
done
|
||||
chown root:root $PKG/sbin/*
|
||||
chmod 755 $PKG/sbin/*
|
||||
# These scripts are used during the installation:
|
||||
mkdir -p $PKG/var/lib/pkgtools/setup/tmp
|
||||
chmod 700 $PKG/var/lib/pkgtools/setup/tmp
|
||||
for file in setup.* ; do
|
||||
cp -a $file $PKG/var/lib/pkgtools/setup
|
||||
done
|
||||
chown root:root $PKG/var/lib/pkgtools/setup/setup.*
|
||||
chmod 755 $PKG/var/lib/pkgtools/setup/setup.*
|
||||
# Add a link for makebootstick:
|
||||
( cd $PKG/sbin ; ln -sf ../var/lib/pkgtools/setup/setup.80.make-bootdisk makebootstick )
|
||||
)
|
||||
|
||||
# Create the base directories (not really necessary, but doesn't hurt):
|
||||
mkdir -p $PKG/var/lib/pkgtools/{packages,scripts}
|
||||
mkdir -p $PKG/var/log/pkgtools/{removed_packages,removed_scripts}
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
||||
|
||||
# Build the package:
|
||||
cd $PKG
|
||||
makepkg -l y -c n $TMP/pkgtools-$VERSION-$ARCH-$BUILD.txz
|
||||
|
||||
echo
|
||||
echo "HEY -- did you remember to update the version numbers in the setup scripts?"
|
||||
echo
|
||||
|
|
@ -1,109 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA
|
||||
# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA
|
||||
# Copyright 2007, 2009, 2017, 2018 Patrick Volkerding, Sebeka, MN, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
if [ $# = 0 ]; then
|
||||
cat << EOF
|
||||
Usage: explodepkg package_name [package_name2, ...]
|
||||
|
||||
Explodes a Slackware compatible software package
|
||||
(or any tar+{gzip,bzip2,lz,xz archive) in the current directory.
|
||||
Equivalent to (for each package listed):
|
||||
|
||||
( umask 000 ; cat package_name | COMPRESSOR -dc | tar xpvf package_name )
|
||||
|
||||
Note: This should only be used for debugging or examining packages, not for
|
||||
installing them. It doesn't execute installation scripts or update the package
|
||||
indexes in /var/lib/pkgtools/packages and /var/lib/pkgtools/scripts.
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Set maximum number of threads to use. By default, this will be the number
|
||||
# of CPU threads:
|
||||
THREADS="$(nproc)"
|
||||
|
||||
# Main loop:
|
||||
for PKG in $* ; do
|
||||
echo "Exploding package $PKG in current directory:"
|
||||
# Determine extension:
|
||||
packageext="$( echo $PKG | rev | cut -f 1 -d . | rev)"
|
||||
# Determine compression utility:
|
||||
case $packageext in
|
||||
'tgz' )
|
||||
packagecompression=gzip
|
||||
;;
|
||||
'gz' )
|
||||
packagecompression=gzip
|
||||
;;
|
||||
'tbz' )
|
||||
if which lbzip2 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lbzip2
|
||||
else
|
||||
packagecompression=bzip2
|
||||
fi
|
||||
;;
|
||||
'bz2' )
|
||||
if which lbzip2 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lbzip2
|
||||
else
|
||||
packagecompression=bzip2
|
||||
fi
|
||||
;;
|
||||
'tlz' )
|
||||
if which plzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression="plzip --threads=${THREADS}"
|
||||
elif which lzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lzip
|
||||
else
|
||||
echo "ERROR: lzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
'lz' )
|
||||
if which plzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression="plzip --threads=${THREADS}"
|
||||
elif which lzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lzip
|
||||
else
|
||||
echo "ERROR: lzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
'lzma' )
|
||||
packagecompression=lzma
|
||||
;;
|
||||
'txz' )
|
||||
packagecompression="xz --threads=${THREADS}"
|
||||
;;
|
||||
'xz' )
|
||||
packagecompression="xz --threads=${THREADS}"
|
||||
;;
|
||||
esac
|
||||
( umask 000 ; cat $PKG | $packagecompression -dc | tar --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - 2> /dev/null )
|
||||
if [ -r install/doinst.sh ]; then
|
||||
echo
|
||||
echo "An installation script was detected in ./install/doinst.sh, but"
|
||||
echo "was not executed."
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,713 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA
|
||||
# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA
|
||||
# Copyright 2007, 2009, 2011, 2017, 2018 Patrick Volkerding, Sebeka, MN, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Mon Jun 4 21:17:58 UTC 2018
|
||||
# Migrate the package database and directories from /var/log to
|
||||
# /var/lib/pkgtools. /var/log was never a good place for this data, as it is
|
||||
# considered by many to be a directory that could be wiped to free up some
|
||||
# space. Originally the package database was in /var/adm, but the FSSTND
|
||||
# (later FHS) group decided that directory should be a symlink to /var/log,
|
||||
# and I went along with that since it was years ago and I was a n00b and didn't
|
||||
# know any better. /var/lib/pkgtools will be a better and safer location.
|
||||
#
|
||||
# Thu May 24 20:23:55 UTC 2018
|
||||
# Added --terselength option to set the line length in --terse mode.
|
||||
# Allow adding NOLOCK in an install script to allow it to run without locking.
|
||||
#
|
||||
# Sat May 19 22:42:03 UTC 2018
|
||||
# Implement locking to prevent screen output or install script collisions if
|
||||
# multiple copies of installpkg are running simultaneously.
|
||||
# Use ${MCOOKIE} instead of $$ (might as well, since we already generated it).
|
||||
#
|
||||
# Tue Apr 17 17:26:44 UTC 2018
|
||||
# Quit with the funny business in /install. Note however that /install still
|
||||
# isn't a safe directory to use in a package for anything other than package
|
||||
# metadata. Other files placed there are going to be left on the system in
|
||||
# /installpkg-$(mcookie). That could be worked around, but we'll wait until
|
||||
# someone reports there is a need. The main reason to do this is that /install
|
||||
# was a collision point if more than one copy of installpkg was running at
|
||||
# once. With this change, the pkgtools are (more or less) thread-safe.
|
||||
#
|
||||
# Tue Feb 13 01:19:46 UTC 2018
|
||||
# Use recent tar, and support restoring POSIX ACLs and extended attributes.
|
||||
#
|
||||
# Tue Dec 12 21:49:48 UTC 2017
|
||||
# If possible, use multiple decompression threads.
|
||||
#
|
||||
# Thu Dec 7 04:09:17 UTC 2017
|
||||
# Change meaning of .tlz to tar.lz (lzip)
|
||||
#
|
||||
# Sun Sep 6 21:58:36 BST 2009
|
||||
# Replaced usage of "cat" with STDIN redirection or file name parameters
|
||||
# to speed up execution on ARM.
|
||||
# Replaced pkgbase & package_name code with 'sed' script by Jim Hawkins.
|
||||
#
|
||||
# Sat Apr 25 21:18:53 UTC 2009
|
||||
# Converted to use new pkgbase() function to remove pathname and
|
||||
# valid package extensions.
|
||||
#
|
||||
# Sat Apr 4 22:58:06 CDT 2009
|
||||
# Support additional compression formats if the supporting utilities exist:
|
||||
# .tbz - bzip2
|
||||
# .tlz - lzma
|
||||
# .txz - xz (also LZMA)
|
||||
# And of course, .tgz (gzip) is not going anywhere. :-) <volkerdi>
|
||||
# Add command switches to determine the uncompressed package size even if
|
||||
# that will slow things down, and to add the package's md5sum to the
|
||||
# metadata stored in /var/log/packages/.
|
||||
#
|
||||
# Fri Dec 21 17:21:35 CST 2007
|
||||
# Added a patch from Johnny Morano to work around package removal issues
|
||||
# caused by packages that do not comply with FHS combined with a grep
|
||||
# regex error in installpkg. Any package with a single-letter top-
|
||||
# level directory could not be removed.
|
||||
#
|
||||
# Shortened some of the top-line dialog output to avoid overflowing the
|
||||
# textbox (needed as some of the packages, especially in X, have very
|
||||
# long base package names now). <pjv>
|
||||
#
|
||||
# Sun Nov 26 12:38:25 CST 1995
|
||||
# Added patch from Glenn Moloney <glenn@physics.unimelb.edu.au> to allow
|
||||
# packages to be installed to directories other than /.
|
||||
#
|
||||
# Wed Mar 18 15:15:51 CST 1998
|
||||
# Changed $TMP directory to /var/log/setup/tmp, and chmod'ed it 700 to close
|
||||
# some security holes.
|
||||
|
||||
# Return a package name that has been stripped of the dirname portion
|
||||
# and any of the valid extensions (only):
|
||||
pkgbase() {
|
||||
# basename + strip extensions .tbz, .tgz, .tlz and .txz
|
||||
echo "$1" | sed 's?.*/??;s/\.t[bglx]z$//'
|
||||
}
|
||||
|
||||
# If installpkg encounters a problem, it will return a non-zero error code.
|
||||
# If it finds more than one problem (i.e. with a list of packages) you'll only
|
||||
# hear about the most recent one. :)
|
||||
# 1 = tar returned error code
|
||||
# 2 = corrupt compression envelope
|
||||
# 3 = does not end in .tgz
|
||||
# 4 = no such file
|
||||
# 5 = external compression utility missing
|
||||
# 99 = user abort from menu mode
|
||||
EXITSTATUS=0
|
||||
|
||||
# Do not store md5sums by default:
|
||||
MD5SUM=0
|
||||
|
||||
# So that we know what to expect...
|
||||
umask 022
|
||||
|
||||
# If we have mcookie and a tar that is recent enough to support --transform,
|
||||
# then we can stop needlessly erasing files in the /install directory while
|
||||
# also making installpkg thread-safe. Don't check for recent tar - we'll
|
||||
# already break from --attrs and --xattrs anyway if the wrong tar is used.
|
||||
if which mcookie 1> /dev/null 2> /dev/null ; then
|
||||
MCOOKIE=$(mcookie)
|
||||
INSTDIR=installpkg-${MCOOKIE}
|
||||
else
|
||||
# Well, we will make due with this:
|
||||
MCOOKIE=$$
|
||||
INSTDIR=installpkg-${MCOOKIE}
|
||||
fi
|
||||
|
||||
# Create a lockfile directory if it doesn't exist. We can use it to prevent
|
||||
# screen corruption (from multiple dialogs) and install script collisions
|
||||
# (from multiple scripts trying to work on the same files) in the case of
|
||||
# parallel instances of installpkg.
|
||||
INSTLOCKDIR=${INSTLOCKDIR:-/run/lock/pkgtools}
|
||||
if [ ! -d $INSTLOCKDIR ]; then
|
||||
mkdir -p $INSTLOCKDIR
|
||||
fi
|
||||
|
||||
usage() {
|
||||
cat << EOF
|
||||
Usage: installpkg [options] <package_filename>
|
||||
|
||||
Installpkg is used to install a .t{gz,bz,lz,xz} package like this:
|
||||
installpkg slackware-package-1.0.0-i486-1.tgz (or .tbz, .tlz, .txz)
|
||||
|
||||
options: --warn (warn if files will be overwritten, but do not install)
|
||||
--root /mnt (install someplace else, like /mnt)
|
||||
--infobox (use dialog to draw an info box)
|
||||
--terse (display a one-line short description for install)
|
||||
--terselength <length> (line length in terse mode - default is
|
||||
the number of columns available)
|
||||
--menu (confirm package installation with a menu, unless
|
||||
the priority is [required] or ADD)
|
||||
--ask (used with menu mode: always ask if a package should be
|
||||
installed regardless of what the package's priority is)
|
||||
--priority ADD|REC|OPT|SKP (provide a priority for the entire
|
||||
package list to use instead of the priority in the
|
||||
tagfile)
|
||||
--tagfile /somedir/tagfile (specify a different file to use
|
||||
for package priorities. The default is "tagfile" in
|
||||
the package's directory)
|
||||
--threads <number> For xz/plzip compressed packages, set the max
|
||||
number of threads to be used for decompression. Only has
|
||||
an effect if a multithreaded compressor was used, and then
|
||||
only on large packages. For plzip, the default is equal to
|
||||
the number of CPU threads available on the machine. For xz,
|
||||
the default is equal to 2.
|
||||
--md5sum (record the package's md5sum in the metadata file)
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# Eliminate whitespace function:
|
||||
crunch() {
|
||||
while read FOO ; do
|
||||
echo $FOO
|
||||
done
|
||||
}
|
||||
|
||||
# Strip version, architecture and build from the end of the name
|
||||
package_name() {
|
||||
pkgbase $1 | sed 's?-[^-]*-[^-]*-[^-]*$??'
|
||||
}
|
||||
|
||||
# Set maximum number of threads to use. By default, this will be the number
|
||||
# of CPU threads:
|
||||
THREADS="$(nproc)"
|
||||
|
||||
# Set default line length for terse mode:
|
||||
if tty -s && which tput 1> /dev/null 2> /dev/null ; then
|
||||
TERSELENGTH=$(tput cols)
|
||||
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:
|
||||
while [ 0 ]; do
|
||||
if [ "$1" = "-warn" -o "$1" = "--warn" ]; then
|
||||
MODE=warn
|
||||
shift 1
|
||||
elif [ "$1" = "-md5sum" -o "$1" = "--md5sum" ]; then
|
||||
MD5SUM=1
|
||||
shift 1
|
||||
elif [ "$1" = "-infobox" -o "$1" = "--infobox" ]; then
|
||||
MODE=infobox
|
||||
shift 1
|
||||
elif [ "$1" = "-terse" -o "$1" = "--terse" ]; then
|
||||
MODE=terse
|
||||
shift 1
|
||||
elif [ "$1" = "-terselength" -o "$1" = "--terselength" ]; then
|
||||
TERSELENGTH=$2
|
||||
shift 2
|
||||
elif [ "$1" = "-menu" -o "$1" = "--menu" ]; then
|
||||
MODE=menu
|
||||
shift 1
|
||||
elif [ "$1" = "-ask" -o "$1" = "--ask" ]; then
|
||||
ALWAYSASK="yes"
|
||||
shift 1
|
||||
elif [ "$1" = "-tagfile" -o "$1" = "--tagfile" ]; then
|
||||
if [ -r "$2" ]; then
|
||||
USERTAGFILE="$2"
|
||||
elif [ -r "$(pwd)/$2" ]; then
|
||||
USERTAGFILE="$(pwd)/$2"
|
||||
else
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
shift 2
|
||||
elif [ "$1" = "-threads" -o "$1" = "--threads" ]; then
|
||||
THREADS="$2"
|
||||
shift 2
|
||||
# xz has not yet implemented multi-threaded decompression.
|
||||
# Who knows if or how well it will work...
|
||||
XZ_THREADS_FORCED=yes
|
||||
elif [ "$1" = "-priority" -o "$1" = "--priority" ]; then
|
||||
if [ "$2" = "" ]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
USERPRIORITY="$2"
|
||||
shift 2
|
||||
elif [ "$1" = "-root" -o "$1" = "--root" ]; then
|
||||
if [ "$2" = "" ]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
ROOT="$2"
|
||||
shift 2
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Set the prefix for the package database directories (packages, scripts).
|
||||
ADM_DIR="$ROOT/var/lib/pkgtools"
|
||||
|
||||
# Set the prefix for the removed packages/scripts log files:
|
||||
LOG_DIR="$ROOT/var/log/pkgtools"
|
||||
|
||||
# If the directories don't exist, "initialize" the package database:
|
||||
for PKGDBDIR in packages scripts setup ; do
|
||||
if [ ! -d $ADM_DIR/$PKGDBDIR ]; then
|
||||
mkdir -p $ADM_DIR/$PKGDBDIR
|
||||
chmod 755 $ADM_DIR/$PKGDBDIR
|
||||
fi
|
||||
done
|
||||
for PKGLOGDIR in removed_packages removed_scripts ; do
|
||||
if [ ! -d $LOG_DIR/$PKGLOGDIR ]; then
|
||||
rm -rf $LOG_DIR/$PKGLOGDIR # make sure it's not a symlink or something stupid
|
||||
mkdir -p $LOG_DIR/$PKGLOGDIR
|
||||
chmod 755 $LOG_DIR/$PKGLOGDIR
|
||||
fi
|
||||
done
|
||||
# Likewise, make sure that the symlinks in /var/log exist. We no longer
|
||||
# trust anything to remain in /var/log. Let the admin wipe it if that's
|
||||
# what they like.
|
||||
for symlink in packages scripts setup ; do
|
||||
if [ ! -L $LOG_DIR/../$symlink -a ! -d $LOG_DIR/../$symlink ]; then
|
||||
( cd $LOG_DIR/.. ; ln -sf ../lib/pkgtools/$symlink . )
|
||||
fi
|
||||
done
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=$ADM_DIR/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP # no need to leave it open
|
||||
fi
|
||||
|
||||
# usage(), exit if called with no arguments:
|
||||
if [ $# = 0 ]; then
|
||||
usage;
|
||||
exit
|
||||
fi
|
||||
|
||||
# If -warn mode was requested, produce the output and then exit:
|
||||
if [ "$MODE" = "warn" ]; then
|
||||
while [ -f "$1" ]; do
|
||||
mkdir -p $TMP/scan${MCOOKIE}
|
||||
# Determine extension:
|
||||
packageext="$( echo $1 | rev | cut -f 1 -d . | rev)"
|
||||
# Determine decompressor utility:
|
||||
case $packageext in
|
||||
'tgz' )
|
||||
packagecompression=gzip
|
||||
;;
|
||||
'tbz' )
|
||||
if which lbzip2 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lbzip2
|
||||
else
|
||||
packagecompression=bzip2
|
||||
fi
|
||||
;;
|
||||
'tlz' )
|
||||
if which plzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression="plzip --threads=${THREADS}"
|
||||
elif which lzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lzip
|
||||
else
|
||||
echo "ERROR: lzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
'txz' )
|
||||
if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then
|
||||
packagecompression="xz --threads=${THREADS}"
|
||||
else
|
||||
packagecompression="xz --threads=2"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
( cd $TMP/scan${MCOOKIE} ; $packagecompression -dc | tar xf - install ) < $1 2> /dev/null
|
||||
if [ -r $TMP/scan${MCOOKIE}/install/doinst.sh ]; then
|
||||
if grep ' rm -rf ' $TMP/scan${MCOOKIE}/install/doinst.sh 1>/dev/null 2>/dev/null ; then
|
||||
grep ' rm -rf ' $TMP/scan${MCOOKIE}/install/doinst.sh > $TMP/scan${MCOOKIE}/install/delete
|
||||
for f in `cat $TMP/scan${MCOOKIE}/install/delete | cut -f 3,7 -d ' ' | tr ' ' '/'`; do
|
||||
f="/$f"
|
||||
if [ -f "$f" -o -L "$f" ]; then
|
||||
echo "$f"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -d $TMP/scan${MCOOKIE} ]; then
|
||||
( cd $TMP/scan${MCOOKIE} ; rm -rf install ) 2> /dev/null
|
||||
( cd $TMP ; rmdir scan${MCOOKIE} ) 2> /dev/null
|
||||
fi
|
||||
fi
|
||||
for f in `( $packagecompression -dc | tar tf - ) < $1 | grep -v 'drwx'`; do
|
||||
f="/$f"
|
||||
if [ -f "$f" -o -L "$f" ]; then
|
||||
echo "$f"
|
||||
fi
|
||||
done
|
||||
shift 1
|
||||
done
|
||||
exit
|
||||
fi
|
||||
|
||||
# Main loop:
|
||||
for package in $* ; do
|
||||
|
||||
# Simple package integrity check:
|
||||
if [ ! -f $package ]; then
|
||||
EXITSTATUS=4
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Cannot install $package: file not found"
|
||||
fi
|
||||
continue;
|
||||
fi
|
||||
|
||||
# "shortname" isn't really THAT short...
|
||||
# it's just the full name without ".t{gz,bz,lz,xz}"
|
||||
shortname="$(pkgbase $package)"
|
||||
packagedir="$(dirname $package)"
|
||||
# This is the base package name, used for grepping tagfiles and descriptions:
|
||||
packagebase="$(package_name $shortname)"
|
||||
|
||||
# Reject package if it does not end in '.t{gz,bz,lz,xz}':
|
||||
if [ "$shortname" = "$(basename $package)" ]; then
|
||||
EXITSTATUS=3
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Cannot install $package: file does not end in .tgz, .tbz, .tlz, or .txz"
|
||||
fi
|
||||
continue;
|
||||
fi
|
||||
|
||||
# Determine extension:
|
||||
packageext="$(echo $package | rev | cut -f 1 -d . | rev)"
|
||||
|
||||
# Determine compressor utility:
|
||||
case $packageext in
|
||||
'tgz' )
|
||||
packagecompression=gzip
|
||||
;;
|
||||
'tbz' )
|
||||
if which lbzip2 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lbzip2
|
||||
else
|
||||
packagecompression=bzip2
|
||||
fi
|
||||
;;
|
||||
'tlz' )
|
||||
if which plzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression="plzip --threads=${THREADS}"
|
||||
elif which lzip 1> /dev/null 2> /dev/null ; then
|
||||
packagecompression=lzip
|
||||
else
|
||||
echo "ERROR: lzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
'txz' )
|
||||
if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then
|
||||
packagecompression="xz --threads=${THREADS}"
|
||||
else
|
||||
packagecompression="xz --threads=2"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# Test presence of external compression utility:
|
||||
if ! $(echo $packagecompression | cut -f 1 -d ' ') --help 1> /dev/null 2> /dev/null ; then
|
||||
EXITSTATUS=5
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Cannot install $package: external compression utility $packagecompression missing"
|
||||
fi
|
||||
continue;
|
||||
fi
|
||||
|
||||
# Determine package's priority:
|
||||
unset PRIORITY
|
||||
if [ "$USERTAGFILE" = "" ]; then
|
||||
TAGFILE="$packagedir/tagfile"
|
||||
else
|
||||
TAGFILE="$USERTAGFILE"
|
||||
fi
|
||||
if [ ! -r "$TAGFILE" ]; then
|
||||
TAGFILE=/dev/null
|
||||
fi
|
||||
if grep "^$packagebase:" "$TAGFILE" | grep ADD > /dev/null 2> /dev/null ; then
|
||||
PRIORITY="ADD"
|
||||
elif grep "^$packagebase:" "$TAGFILE" | grep REC > /dev/null 2> /dev/null ; then
|
||||
PRIORITY="REC"
|
||||
elif grep "^$packagebase:" "$TAGFILE" | grep OPT > /dev/null 2> /dev/null ; then
|
||||
PRIORITY="OPT"
|
||||
elif grep "^$packagebase:" "$TAGFILE" | grep SKP > /dev/null 2> /dev/null ; then
|
||||
PRIORITY="SKP"
|
||||
fi
|
||||
if [ "$PRIORITY" = "ADD" ]; then
|
||||
PMSG="[ADD]"
|
||||
elif [ "$PRIORITY" = "REC" ]; then
|
||||
PMSG="[REC]"
|
||||
elif [ "$PRIORITY" = "OPT" ]; then
|
||||
PMSG="[OPT]"
|
||||
elif [ "$PRIORITY" = "SKP" ]; then
|
||||
PMSG="[SKP]"
|
||||
else
|
||||
PMSG=""
|
||||
fi
|
||||
|
||||
# If a tagfile wants this package to be skipped, do that now before
|
||||
# wasting any more CPU on it:
|
||||
if [ "$PRIORITY" = "SKP" -a ! "$ALWAYSASK" = "yes" ]; then
|
||||
continue # next package
|
||||
fi
|
||||
|
||||
# Figure out some package information, like the compressed and uncompressed
|
||||
# sizes, and where to find the package description:
|
||||
COMPRESSED="$(/bin/du -sh "$(readlink -f $package)" | cut -f 1)"
|
||||
DESCRIPTION=""
|
||||
# First check for .txt file next to the package, since this is faster:
|
||||
if grep "^$packagebase:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then
|
||||
DESCRIPTION="$packagedir/$shortname.txt"
|
||||
elif grep "^$shortname:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then
|
||||
DESCRIPTION="$packagedir/$shortname.txt"
|
||||
fi
|
||||
|
||||
# Test tarball integrity and get uncompressed package size:
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Verifying package $(basename $package)."
|
||||
fi
|
||||
# The stray cat reduces the frequency of the lack of reported size.
|
||||
# If it still fails, we hit it with a bigger hammer down below.
|
||||
cat $package | $packagecompression -dc | LC_ALL=C dd 2> $TMP/tmpsize${MCOOKIE} | cat | tar tf - 2> /dev/null 1> $TMP/tmplist${MCOOKIE}
|
||||
TARERROR=$?
|
||||
if [ ! "$TARERROR" = "0" ]; then
|
||||
EXITSTATUS=1 # tar file corrupt
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Unable to install $package: tar archive is corrupt (tar returned error code $TARERROR)"
|
||||
fi
|
||||
rm -f $TMP/tmplist${MCOOKIE} $TMP/tmpsize${MCOOKIE}
|
||||
continue
|
||||
fi
|
||||
UNCOMPRESSED="$(cat $TMP/tmpsize${MCOOKIE} | tail -n 1 | cut -f 1 -d ' ' | numfmt --to=iec)"
|
||||
# Weird bug "fix". Sometimes we get no uncompressed size (this started when we
|
||||
# moved away from tar-1.13, but I don't see what that could have to do with
|
||||
# it). So, if we have no uncompressed size here, demand it in this loop.
|
||||
# Hopefully the bug is not weird enough to make this an infinite loop. :/
|
||||
while [ "$UNCOMPRESSED" = "" ]; do
|
||||
cat $package | $packagecompression -dc | LC_ALL=C dd 1> /dev/null 2> $TMP/tmpsize${MCOOKIE}
|
||||
UNCOMPRESSED="$(cat $TMP/tmpsize${MCOOKIE} | tail -n 1 | cut -f 1 -d ' ' | numfmt --to=iec)"
|
||||
done
|
||||
rm -f $TMP/tmpsize${MCOOKIE}
|
||||
|
||||
# If we still don't have a package description, look inside the package.
|
||||
# This requires a costly untar.
|
||||
if [ "$DESCRIPTION" = "" ]; then
|
||||
mkdir -p $TMP/scan${MCOOKIE}
|
||||
( cd $TMP/scan${MCOOKIE} ; $packagecompression -dc | tar xf - install ) < $package 2> /dev/null
|
||||
if grep "^$packagebase:" "$TMP/scan${MCOOKIE}/install/slack-desc" 1> /dev/null 2> /dev/null ; then
|
||||
DESCRIPTION="$TMP/scan${MCOOKIE}/install/slack-desc"
|
||||
elif grep "^$shortname:" "$TMP/scan${MCOOKIE}/install/slack-desc" 1> /dev/null 2> /dev/null ; then
|
||||
DESCRIPTION="$TMP/scan${MCOOKIE}/install/slack-desc"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$DESCRIPTION" = "" ]; then
|
||||
#echo "WARNING NO SLACK-DESC"
|
||||
DESCRIPTION="/dev/null"
|
||||
fi
|
||||
|
||||
# Gather package infomation into a temporary file:
|
||||
grep "^$packagebase:" $DESCRIPTION | cut -f 2- -d : | cut -b2- 1> $TMP/tmpmsg${MCOOKIE} 2> /dev/null
|
||||
if [ "$shortname" != "$packagebase" ]; then
|
||||
grep "^$shortname:" $DESCRIPTION | cut -f 2- -d : | cut -b2- 1>> $TMP/tmpmsg${MCOOKIE} 2> /dev/null
|
||||
fi
|
||||
# Adjust the length here. This allows a slack-desc to be any size up to 13 lines instead of fixed at 11.
|
||||
LENGTH=$(wc -l < $TMP/tmpmsg${MCOOKIE} )
|
||||
while [ $LENGTH -lt 12 ]; do
|
||||
echo >> $TMP/tmpmsg${MCOOKIE}
|
||||
LENGTH=$(expr $LENGTH + 1)
|
||||
done
|
||||
echo "Size: Compressed: ${COMPRESSED}, uncompressed: ${UNCOMPRESSED}." >> $TMP/tmpmsg${MCOOKIE}
|
||||
# For recent versions of dialog it is necessary to add \n to the end of each line
|
||||
# or it will remove repeating spaces and mess up our careful formatting:
|
||||
cat << EOF > $TMP/controlns${MCOOKIE}
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
\n
|
||||
EOF
|
||||
paste -d "" $TMP/tmpmsg${MCOOKIE} $TMP/controlns${MCOOKIE} > $TMP/pasted${MCOOKIE}
|
||||
rm -f $TMP/controlns${MCOOKIE}
|
||||
mv $TMP/pasted${MCOOKIE} $TMP/tmpmsg${MCOOKIE}
|
||||
# Emit information to the console:
|
||||
if [ "$MODE" = "install" ]; then
|
||||
if [ "$PMSG" = "" ]; then
|
||||
echo "Installing package $(basename $package):"
|
||||
else
|
||||
echo "Installing package $(basename $package) $PMSG:"
|
||||
fi
|
||||
echo "PACKAGE DESCRIPTION:"
|
||||
grep "^$packagebase:" $DESCRIPTION | uniq | sed "s/^$packagebase:/#/g"
|
||||
if [ "$shortname" != "$packagebase" ]; then
|
||||
grep "^$shortname:" $DESCRIPTION | uniq | sed "s/^$shortname:/#/g"
|
||||
fi
|
||||
elif [ "$MODE" = "terse" ]; then # emit a single description line
|
||||
( flock 9 || exit 11
|
||||
printf "%-$(expr $TERSELENGTH - 7)s %-6s\n" "$(echo $shortname: $(echo $(cat $DESCRIPTION | grep "^$packagebase:" | sed "s/^$packagebase: //g" | head -n 1 | tr -d '()' | sed "s/^$packagebase //g" ) $(echo " $(printf '.%.0s' {1..256})")) | cut -b1-$(expr $TERSELENGTH - 7))" "$(printf "[%4s]" $UNCOMPRESSED)" | cut -b 1-${TERSELENGTH}
|
||||
) 9> $INSTLOCKDIR/dialog.lock
|
||||
elif [ "$MODE" = "infobox" ]; then # install infobox package
|
||||
( flock 9 || exit 11
|
||||
dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0
|
||||
) 9> $INSTLOCKDIR/dialog.lock
|
||||
elif [ "$MODE" = "menu" -a "$PRIORITY" = "ADD" -a ! "$ALWAYSASK" = "yes" ]; then # ADD overrides menu mode unless -ask was used
|
||||
( flock 9 || exit 11
|
||||
dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0
|
||||
) 9> $INSTLOCKDIR/dialog.lock
|
||||
elif [ "$MODE" = "menu" -a "$USERPRIORITY" = "ADD" ]; then # install no matter what $PRIORITY
|
||||
( flock 9 || exit 11
|
||||
dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0
|
||||
) 9> $INSTLOCKDIR/dialog.lock
|
||||
else # we must need a full menu:
|
||||
( flock 9 || exit 11
|
||||
dialog --title "Package Name: $shortname $PMSG" --menu "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0 3 \
|
||||
"Yes" "Install package $shortname" \
|
||||
"No" "Do not install package $shortname" \
|
||||
"Quit" "Abort software installation completely" 2> $TMP/reply${MCOOKIE}
|
||||
if [ ! $? = 0 ]; then
|
||||
echo "No" > $TMP/reply${MCOOKIE}
|
||||
fi
|
||||
) 9> $INSTLOCKDIR/dialog.lock
|
||||
REPLY="$(cat $TMP/reply${MCOOKIE})"
|
||||
rm -f $TMP/reply${MCOOKIE} $TMP/tmpmsg${MCOOKIE}
|
||||
if [ "$REPLY" = "Quit" ]; then
|
||||
exit 99 # EXIT STATUS 99 = ABORT!
|
||||
elif [ "$REPLY" = "No" ]; then
|
||||
continue # skip the package
|
||||
fi
|
||||
fi
|
||||
|
||||
# Make sure there are no symbolic links sitting in the way of
|
||||
# incoming package files:
|
||||
grep -v "/$" $TMP/tmplist${MCOOKIE} | while read file ; do
|
||||
if [ -L "$ROOT/$file" ]; then
|
||||
rm -f "$ROOT/$file"
|
||||
fi
|
||||
done
|
||||
rm -f $TMP/tmplist${MCOOKIE}
|
||||
|
||||
# Write the package file database entry and install the package:
|
||||
echo "PACKAGE NAME: $shortname" > $ADM_DIR/packages/$shortname
|
||||
echo "COMPRESSED PACKAGE SIZE: $COMPRESSED" >> $ADM_DIR/packages/$shortname
|
||||
echo "UNCOMPRESSED PACKAGE SIZE: $UNCOMPRESSED" >> $ADM_DIR/packages/$shortname
|
||||
echo "PACKAGE LOCATION: $package" >> $ADM_DIR/packages/$shortname
|
||||
# Record the md5sum if that's a selected option:
|
||||
if [ $MD5SUM = 1 ]; then
|
||||
echo "PACKAGE MD5SUM: $(md5sum $package | cut -f 1 -d ' ')" >> $ADM_DIR/packages/$shortname
|
||||
fi
|
||||
echo "PACKAGE DESCRIPTION:" >> $ADM_DIR/packages/$shortname
|
||||
grep "^$packagebase:" $DESCRIPTION >> $ADM_DIR/packages/$shortname 2> /dev/null
|
||||
if [ "$shortname" != "$packagebase" ]; then
|
||||
grep "^$shortname:" $DESCRIPTION >> $ADM_DIR/packages/$shortname 2> /dev/null
|
||||
fi
|
||||
echo "FILE LIST:" >> $ADM_DIR/packages/$shortname
|
||||
if [ "$INSTDIR" = "install" ]; then
|
||||
( cd $ROOT/ ; $packagecompression -dc | tar --acls --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - | LC_ALL=C sort ) < $package >> $TMP/$shortname 2> /dev/null
|
||||
else
|
||||
( cd $ROOT/ ; $packagecompression -dc | tar --transform "s,^install$,$INSTDIR," --transform "s,^install/,$INSTDIR/," --acls --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - | LC_ALL=C sort ) < $package >> $TMP/$shortname 2> /dev/null
|
||||
fi
|
||||
if [ "$( grep '^\./' $TMP/$shortname | wc -l | tr -d ' ')" = "1" ]; then
|
||||
# Good. We have a package that meets the Slackware spec.
|
||||
cat $TMP/$shortname >> $ADM_DIR/packages/$shortname
|
||||
else
|
||||
# Some dumb bunny built a package with something other than makepkg. Bad!
|
||||
# Oh well. Bound to happen. Par for the course. Fix it and move on...
|
||||
# We'll assume it's just a recent tar with an unfiltered filelist with all
|
||||
# files prefixed with "./". No guarantees, but this will usually work.
|
||||
cat $TMP/$shortname | sed '2,$s,^\./,,' >> $ADM_DIR/packages/$shortname
|
||||
fi
|
||||
rm -f $TMP/$shortname
|
||||
|
||||
# It's a good idea to make sure those newly installed libraries are properly
|
||||
# activated for use, unless ROOT is pointing somewhere else in which case
|
||||
# running ldconfig on the host system won't make any difference:
|
||||
if [ "$ROOT" = "" ] && [ -x /sbin/ldconfig ]; then
|
||||
( flock 9 || exit 11
|
||||
/sbin/ldconfig 2> /dev/null
|
||||
) 9> $INSTLOCKDIR/ldconfig.lock
|
||||
fi
|
||||
|
||||
if [ -f $ROOT/$INSTDIR/doinst.sh ]; then
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Executing install script for $(basename $package)."
|
||||
fi
|
||||
# Don't use locking if the script contains "NOLOCK":
|
||||
if grep -q NOLOCK $ROOT/$INSTDIR/doinst.sh ; then
|
||||
# If bash is available, use sed to convert the install script to use pushd/popd
|
||||
# rather than spawning subshells which is slow on ARM. This will also speed up
|
||||
# install script processing on any platform.
|
||||
if [ -x /bin/bash ]; then
|
||||
cd $ROOT/ ; sed -e's?^( cd \([^;]*\);\(.*\) )$?pushd \1 \&\> /dev/null ; \2 ; popd \&\> /dev/null?g ' $INSTDIR/doinst.sh | /bin/bash
|
||||
else
|
||||
cd $ROOT/ ; sh $INSTDIR/doinst.sh
|
||||
fi
|
||||
else # use locking
|
||||
# If bash is available, use sed to convert the install script to use pushd/popd
|
||||
# rather than spawning subshells which is slow on ARM. This will also speed up
|
||||
# install script processing on any platform.
|
||||
if [ -x /bin/bash ]; then
|
||||
( flock 9 || exit 11
|
||||
cd $ROOT/ ; sed -e's?^( cd \([^;]*\);\(.*\) )$?pushd \1 \&\> /dev/null ; \2 ; popd \&\> /dev/null?g ' $INSTDIR/doinst.sh | /bin/bash
|
||||
) 9> $INSTLOCKDIR/doinst.sh.lock
|
||||
else
|
||||
( flock 9 || exit 11
|
||||
cd $ROOT/ ; sh $INSTDIR/doinst.sh
|
||||
) 9> $INSTLOCKDIR/doinst.sh.lock
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Clean up the mess...
|
||||
if [ -d $ROOT/$INSTDIR ]; then
|
||||
if [ -r $ROOT/$INSTDIR/doinst.sh ]; then
|
||||
cp $ROOT/$INSTDIR/doinst.sh $ADM_DIR/scripts/$shortname
|
||||
chmod 755 $ADM_DIR/scripts/$shortname
|
||||
fi
|
||||
# /install/doinst.sh and /install/slack-* are reserved locations for the package system.
|
||||
# Heh, not any more with a recent tar :-)
|
||||
( cd $ROOT/$INSTDIR ; rm -f doinst.sh slack-* 1> /dev/null 2>&1 )
|
||||
rmdir $ROOT/$INSTDIR 1> /dev/null 2>&1
|
||||
fi
|
||||
# If we used a scan directory, get rid of it:
|
||||
if [ -d "$TMP/scan${MCOOKIE}" ]; then
|
||||
rm -rf "$TMP/scan${MCOOKIE}"
|
||||
fi
|
||||
rm -f $TMP/tmpmsg${MCOOKIE} $TMP/reply${MCOOKIE}
|
||||
if [ "$MODE" = "install" ]; then
|
||||
echo "Package $(basename $package) installed."
|
||||
fi
|
||||
done
|
||||
|
||||
exit $EXITSTATUS
|
|
@ -1,443 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright 1995, 1998, 2002, 2005 Patrick Volkerding, Moorhead, Minnesota USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
if [ ! "$UID" = "0" ]; then
|
||||
echo "You need to be root to run this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Was a kernel specified on the command line?
|
||||
if [ -r "$1" ]; then
|
||||
KERNEL=$1
|
||||
KMSG="Using kernel $KERNEL"
|
||||
else
|
||||
KMSG="No kernel selected yet"
|
||||
fi
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP # no need to leave it open
|
||||
fi
|
||||
|
||||
ROOT_DEVICE="`mount | grep ' on / ' | cut -f 1 -d ' '`"
|
||||
|
||||
if mount | grep ' on / ' | grep umsdos 1> /dev/null 2> /dev/null ; then
|
||||
MOUNT="read-write"
|
||||
else
|
||||
MOUNT="read-only"
|
||||
fi
|
||||
|
||||
make_root_device() {
|
||||
# Make a device:
|
||||
makedev() {
|
||||
if [ ! -b $1 ]; then
|
||||
mknod $1 b $2 $3
|
||||
chown root.disk $1
|
||||
chmod 640 $1
|
||||
fi
|
||||
}
|
||||
|
||||
# Make ide device
|
||||
# make ide major minor hd1 hd2 (2 base devs for major)
|
||||
make_ide() {
|
||||
# Handle base devices:
|
||||
if [ "$2" = "0" ]; then
|
||||
makedev $TMP/lilo/dev/$3 $1 $2
|
||||
return 0
|
||||
elif [ "$2" = "64" ]; then
|
||||
makedev $TMP/lilo/dev/$4 $1 $2
|
||||
return 0
|
||||
fi
|
||||
# Must be a partition:
|
||||
if [ "`expr $2 / 64`" = "0" ]; then
|
||||
DEV=$3
|
||||
NUM=$2
|
||||
else
|
||||
DEV=$4
|
||||
NUM=`expr $2 - 64`
|
||||
fi
|
||||
makedev $TMP/lilo/dev/$DEV$NUM $1 $2
|
||||
}
|
||||
|
||||
# Make SCSI device
|
||||
make_scsi() {
|
||||
# find drive # 0 - 15
|
||||
DRV=`expr $1 / 16`
|
||||
NUM=`expr $1 % 16`
|
||||
if [ "$NUM" = "0" ]; then
|
||||
NUM=""
|
||||
fi
|
||||
if [ "$DRV" = "0" ]; then
|
||||
makedev $TMP/lilo/dev/sda$NUM 8 $1
|
||||
elif [ "$DRV" = "1" ]; then
|
||||
makedev $TMP/lilo/dev/sdb$NUM 8 $1
|
||||
elif [ "$DRV" = "2" ]; then
|
||||
makedev $TMP/lilo/dev/sdc$NUM 8 $1
|
||||
elif [ "$DRV" = "3" ]; then
|
||||
makedev $TMP/lilo/dev/sdd$NUM 8 $1
|
||||
elif [ "$DRV" = "4" ]; then
|
||||
makedev $TMP/lilo/dev/sde$NUM 8 $1
|
||||
elif [ "$DRV" = "5" ]; then
|
||||
makedev $TMP/lilo/dev/sdf$NUM 8 $1
|
||||
elif [ "$DRV" = "6" ]; then
|
||||
makedev $TMP/lilo/dev/sdg$NUM 8 $1
|
||||
elif [ "$DRV" = "7" ]; then
|
||||
makedev $TMP/lilo/dev/sdh$NUM 8 $1
|
||||
elif [ "$DRV" = "8" ]; then
|
||||
makedev $TMP/lilo/dev/sdi$NUM 8 $1
|
||||
elif [ "$DRV" = "9" ]; then
|
||||
makedev $TMP/lilo/dev/sdj$NUM 8 $1
|
||||
elif [ "$DRV" = "10" ]; then
|
||||
makedev $TMP/lilo/dev/sdk$NUM 8 $1
|
||||
elif [ "$DRV" = "11" ]; then
|
||||
makedev $TMP/lilo/dev/sdl$NUM 8 $1
|
||||
elif [ "$DRV" = "12" ]; then
|
||||
makedev $TMP/lilo/dev/sdm$NUM 8 $1
|
||||
elif [ "$DRV" = "13" ]; then
|
||||
makedev $TMP/lilo/dev/sdn$NUM 8 $1
|
||||
elif [ "$DRV" = "14" ]; then
|
||||
makedev $TMP/lilo/dev/sdo$NUM 8 $1
|
||||
elif [ "$DRV" = "15" ]; then
|
||||
makedev $TMP/lilo/dev/sdp$NUM 8 $1
|
||||
fi
|
||||
}
|
||||
|
||||
if cat /proc/partitions | grep / 1> /dev/null 2> /dev/null ; then # new
|
||||
cat /proc/partitions | grep / | while read line ; do
|
||||
SMASHED_LINE=$line
|
||||
MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
|
||||
MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
|
||||
if [ "$MAJOR" = "3" ]; then
|
||||
make_ide $MAJOR $MINOR hda hdb
|
||||
elif [ "$MAJOR" = "8" ]; then
|
||||
make_scsi $MINOR
|
||||
elif [ "$MAJOR" = "22" ]; then
|
||||
make_ide $MAJOR $MINOR hdc hdd
|
||||
elif [ "$MAJOR" = "33" ]; then
|
||||
make_ide $MAJOR $MINOR hde hdf
|
||||
elif [ "$MAJOR" = "34" ]; then
|
||||
make_ide $MAJOR $MINOR hdg hdh
|
||||
elif [ "$MAJOR" = "56" ]; then
|
||||
make_ide $MAJOR $MINOR hdi hdj
|
||||
fi
|
||||
done
|
||||
else # old format
|
||||
cat /proc/partitions | grep d | while read line ; do
|
||||
SMASHED_LINE=$line
|
||||
MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
|
||||
MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
|
||||
DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '`
|
||||
makedev $TMP/lilo/dev/$DEVNAME $MAJOR $MINOR
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
choose_kernel() {
|
||||
while [ 0 ]; do # input loop
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
Some possible paths to kernels are these:
|
||||
|
||||
/boot/vmlinuz
|
||||
/usr/src/linux/arch/i386/boot/bzImage
|
||||
/usr/src/linux/arch/i386/boot/zImage
|
||||
/vmlinuz
|
||||
|
||||
Put the path to the kernel you want to use in the box below.
|
||||
|
||||
EOF
|
||||
|
||||
dialog --title "CHOOSE KERNEL" --inputbox "`cat $TMP/tmpmsg`" \
|
||||
16 72 "/boot/vmlinuz" 2> $TMP/return
|
||||
if [ ! $? = 0 ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
KERNEL="`cat $TMP/return`"
|
||||
|
||||
if [ ! -r "$KERNEL" ]; then
|
||||
dialog --title "NOT FOUND!" --msgbox "$KERNEL" 5 60
|
||||
continue
|
||||
fi
|
||||
KMSG="Using kernel $KERNEL"
|
||||
break
|
||||
done
|
||||
}
|
||||
|
||||
format_disk() {
|
||||
# If anyone still uses 1.2 MB, you'll have to uncomment this.
|
||||
# It's no longer a default option.
|
||||
#FDEV=/dev/fd0h1200
|
||||
#FDEV=/dev/fd0u1400
|
||||
FDEV=/dev/fd0u1680
|
||||
if [ "$FDEV" = "/dev/fd0u1680" ]; then
|
||||
dialog --title "Formatting /dev/fd0u1680" --infobox \
|
||||
"Formatting /dev/fd0, 1.68 megabytes." 3 42
|
||||
elif [ "$FDEV" = "/dev/fd0u1400" ]; then
|
||||
dialog --title "Formatting /dev/fd0u1440" --infobox \
|
||||
"Formatting /dev/fd0, 1.44 megabytes." 3 42
|
||||
elif [ "$FDEV" = "/dev/fd0h1200" ]; then
|
||||
dialog --title "Formatting /dev/fd0h1200" --infobox \
|
||||
"Formatting /dev/fd0, 1.2 megabytes." 3 42
|
||||
fi
|
||||
fdformat $FDEV 1> /dev/null 2> /dev/null
|
||||
if [ ! $? = 0 ]; then
|
||||
dialog --title "ERROR: FLOPPY FORMAT FAILED" --msgbox "The attempt to format the floppy \
|
||||
disk in /dev/fd0 has failed, probably due to bad media. Please try again with a \
|
||||
different disk. If that doesn't work, perhaps the drive needs cleaning." 0 0
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
DEFAULT_ITEM="syslinux"
|
||||
|
||||
while [ 0 ]; do # menu loop
|
||||
dialog --title "MAKE BOOT FLOPPY FROM KERNEL" \
|
||||
--default-item $DEFAULT_ITEM \
|
||||
--backtitle "$KMSG" --menu "This menu allows you to make a SYSLINUX bootdisk \
|
||||
from a compiled kernel. The SYSLINUX bootloader has the advantage of \
|
||||
using a FAT filesystem making it easy to replace the kernel later. \
|
||||
Which option would you like?" 12 67 2 \
|
||||
"syslinux" "Make a SYSLINUX bootdisk" \
|
||||
"exit" "Exit this program" 2> $TMP/return
|
||||
if [ ! $? = 0 ]; then
|
||||
break;
|
||||
fi
|
||||
REPLY=`cat $TMP/return`
|
||||
rm -f $TMP/return
|
||||
if [ "$REPLY" = "simple" ]; then # make simple bootdisk
|
||||
if [ "$KERNEL" = "" ]; then
|
||||
choose_kernel
|
||||
fi
|
||||
kernel_size=`du -Lk $KERNEL | cut -f1`
|
||||
if [ "$kernel_size" -gt "1023" ]; then
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
The kernel $KERNEL is $kernel_size K (which is
|
||||
more than 1023 Kb in size), so it probably won't
|
||||
boot standalone on the floppy. Use the 'syslinux'
|
||||
method instead.
|
||||
|
||||
EOF
|
||||
dialog --title "KERNEL TOO BIG!" --msgbox "`cat $TMP/tmpmsg`" 10 60
|
||||
continue
|
||||
fi
|
||||
dialog --title "BOOT DISK CREATION" --backtitle "$KMSG" --yesno \
|
||||
"\n\
|
||||
Now put a formatted floppy in your boot drive. \n\
|
||||
This will be made into your Linux boot disk. Use this to\n\
|
||||
boot Linux until LILO has been configured to boot from\n\
|
||||
the hard drive.\n\n\
|
||||
Any data on the target disk will be destroyed.\n\n\
|
||||
YES creates the disk, NO aborts.\n" 14 62
|
||||
if [ $? = 0 ]; then
|
||||
format_disk
|
||||
dialog --title "CREATING DISK" --infobox "Creating boot disk from $KERNEL..." 5 72
|
||||
dd if=$KERNEL of=/dev/fd0 2> /dev/null
|
||||
rdev /dev/fd0 $ROOT_DEVICE
|
||||
rdev -v /dev/fd0 -1
|
||||
if [ "$MOUNT" = "read-only" ]; then
|
||||
rdev -R /dev/fd0 1
|
||||
else
|
||||
rdev -R /dev/fd0 0
|
||||
fi
|
||||
fi
|
||||
elif [ "$REPLY" = "syslinux" ]; then # make syslinux bootdisk
|
||||
DEFAULT_ITEM="exit"
|
||||
if [ "$KERNEL" = "" ]; then
|
||||
choose_kernel
|
||||
fi
|
||||
dialog --title "CREATING SYSLINUX BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \
|
||||
floppy in your boot drive. This will be made into a SYSLINUX \
|
||||
bootdisk that you can use to start your Linux system. Any data on the \
|
||||
target disk will be destroyed. YES creates the disk, NO aborts." 8 62
|
||||
if [ $? = 0 ]; then # make the disk
|
||||
format_disk
|
||||
if [ ! $? = 0 ]; then
|
||||
continue
|
||||
fi
|
||||
dialog --title "CREATING BOOT FLOPPY" --infobox "Creating SYSLINUX bootdisk for \
|
||||
$ROOT_DEVICE in /dev/fd0." 3 64
|
||||
mkdosfs -F 12 /dev/fd0u1680 1680 1> /dev/null 2> /dev/null
|
||||
if [ ! -d $TMP/bootdisk ]; then
|
||||
mkdir $TMP/bootdisk
|
||||
fi
|
||||
mount -t vfat /dev/fd0 $TMP/bootdisk 1> /dev/null 2> /dev/null
|
||||
cp $KERNEL $TMP/bootdisk/vmlinuz
|
||||
## This avoids a syslinux-1.72 bug, and doesn't seem to hurt anything:
|
||||
#dd if=/dev/zero bs=1k count=1 >> $TMP/bootdisk/vmlinuz 2> /dev/null
|
||||
if [ ! "$?" = "0" ]; then
|
||||
dialog --title "ERROR COPYING KERNEL TO FLOPPY" \
|
||||
--msgbox "Sorry, but there was an error copying the kernel to the \
|
||||
floppy disk. Possibly the kernel is too large to fit the disk. \
|
||||
This program will now exit." 0 0
|
||||
umount /dev/fd0
|
||||
rm -rf $TMP/bootdisk
|
||||
exit 1
|
||||
fi
|
||||
cat << EOF > $TMP/bootdisk/message.txt
|
||||
|
||||
Welcome to the 09Slackware07 Linux custom bootdisk!
|
||||
|
||||
By default, this disk boots a root Linux partition on $ROOT_DEVICE when you
|
||||
hit ENTER. If you'd like to boot some other partition, use a command like
|
||||
this on the prompt below:
|
||||
|
||||
mount root=/dev/sda1 ro
|
||||
|
||||
Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
|
||||
the partition should be initially mounted as read-only. If you wish to mount
|
||||
the partition read-write, use "rw" instead. To set the video console mode,
|
||||
use the vga= parameter (press F1 to see a table). You may also add any other
|
||||
kernel parameters you might need depending on your hardware, and which
|
||||
drivers are included in your kernel.
|
||||
|
||||
EOF
|
||||
cat << EOF > $TMP/bootdisk/syslinux.cfg
|
||||
default vmlinuz ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro
|
||||
prompt 1
|
||||
timeout 6000
|
||||
display message.txt
|
||||
F1 f1.txt
|
||||
F2 message.txt
|
||||
#F3 f3.txt
|
||||
#F4 f4.txt
|
||||
#F5 f5.txt
|
||||
#F6 f6.txt
|
||||
#F7 f7.txt
|
||||
label mount
|
||||
kernel vmlinuz
|
||||
append ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro
|
||||
label ramdisk
|
||||
kernel vmlinuz
|
||||
append vmlinuz ramdisk_size=7000 root=/dev/fd0u1440 vga=normal rw
|
||||
EOF
|
||||
cat << EOF > $TMP/bootdisk/f1.txt
|
||||
STANDARD MODES:
|
||||
To make the kernel prompt for standard video modes use: vga=ask
|
||||
|
||||
FRAMEBUFFER MODES:
|
||||
To get the kernel to start in VESA framebuffer mode, you need to pass it
|
||||
a vga= init string on the "boot:" prompt. Here's a table:
|
||||
|
||||
Colors 640x480 800x600 1024x768 1280x1024 1600x1200
|
||||
--------+---------------------------------------------
|
||||
256 | 769 771 773 775 796
|
||||
32,768 | 784 787 790 793 797
|
||||
65,536 | 785 788 791 794 798
|
||||
16.8M | 786 789 792 795 799
|
||||
|
||||
...such as this for 1024x768x64k:
|
||||
vga=791
|
||||
|
||||
F2 returns to the previous page.
|
||||
|
||||
EOF
|
||||
umount /dev/fd0
|
||||
syslinux-nomtools -s /dev/fd0
|
||||
rm -r $TMP/bootdisk
|
||||
fi
|
||||
elif [ "$REPLY" = "lilo" ]; then # make lilo bootdisk
|
||||
DEFAULT_ITEM="exit"
|
||||
if [ ! -x "`type -path lilo`" ]; then
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
You don't have 'lilo' installed on the system.
|
||||
I guess you didn't install the lilo package.
|
||||
|
||||
EOF
|
||||
dialog --title "LILO NOT FOUND" --msgbox "`cat $TMP/tmpmsg`" 8 60
|
||||
continue
|
||||
fi
|
||||
if [ "$KERNEL" = "" ]; then
|
||||
choose_kernel
|
||||
fi
|
||||
dialog --title "CREATING LILO BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \
|
||||
floppy in your boot drive. This will be made into a LILO \
|
||||
bootdisk that you can use to start your Linux system. Any data on the \
|
||||
target disk will be destroyed. YES creates the disk, NO aborts." 8 62
|
||||
if [ $? = 0 ]; then # make the disk
|
||||
format_disk
|
||||
DEV=/dev/fd0u1680
|
||||
mknod_fd="-m 0640 $TMP/lilo$DEV b 2 44"
|
||||
dialog --infobox "Creating LILO bootdisk from $KERNEL for $ROOT_DEVICE..." 4 60
|
||||
mke2fs -q -m 0 -i 4096 $DEV 1> /dev/null 2> /dev/null || exit 1
|
||||
if [ ! -d $TMP/lilo ]; then
|
||||
mkdir -p $TMP/lilo
|
||||
fi
|
||||
mount -t ext2 $DEV $TMP/lilo 1> /dev/null || exit 1
|
||||
rmdir $TMP/lilo/lost+found
|
||||
cp $KERNEL $TMP/lilo/vmlinuz || exit 1
|
||||
mkdir $TMP/lilo/dev
|
||||
make_root_device
|
||||
mknod -m 0640 $TMP/lilo/dev/fd0 b 2 0
|
||||
mknod -m 0640 $TMP/lilo/dev/fd1 b 2 1
|
||||
mknod $mknod_fd
|
||||
mknod -m 0666 $TMP/lilo/dev/null c 1 3
|
||||
mkdir $TMP/lilo/etc
|
||||
cat << EOF > $TMP/lilo/etc/lilo.conf
|
||||
boot = $DEV
|
||||
message=/boot/message
|
||||
backup=/dev/null
|
||||
prompt
|
||||
image = /vmlinuz
|
||||
label = mount
|
||||
ramdisk = 0
|
||||
root = $ROOT_DEVICE
|
||||
vga = normal
|
||||
$MOUNT
|
||||
EOF
|
||||
mkdir $TMP/lilo/boot
|
||||
cp -a /boot/chain.b $TMP/lilo/boot
|
||||
if [ -f /boot/boot-text.b ]; then
|
||||
cp -a /boot/boot-text.b $TMP/lilo/boot/boot.b
|
||||
else
|
||||
cp -a /boot/boot.b $TMP/lilo/boot
|
||||
fi
|
||||
cat << EOF > $TMP/lilo/boot/message
|
||||
|
||||
Welcome to the Slackware Linux custom LILO bootdisk!
|
||||
|
||||
By default, this disk boots a root Linux partition on $ROOT_DEVICE when
|
||||
you hit ENTER. If you'd like to boot some other partition, use a command
|
||||
like this on the LILO prompt below:
|
||||
|
||||
mount root=/dev/sda1 ro
|
||||
|
||||
Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
|
||||
the partition should be initially mounted as read-only. If you which to mount
|
||||
the partition read-write, use "rw" instead. You may also add any other kernel
|
||||
parameters you might need depending on your hardware, and which drivers are
|
||||
included in your kernel.
|
||||
|
||||
EOF
|
||||
lilo -r $TMP/lilo > /dev/null
|
||||
umount $TMP/lilo
|
||||
rm -rf $TMP/lilo
|
||||
fi
|
||||
elif [ "$REPLY" = "exit" ]; then
|
||||
break;
|
||||
fi
|
||||
done
|
|
@ -1,452 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright 1994, 1998, 2008 Patrick Volkerding, Moorhead, Minnesota USA
|
||||
# Copyright 2003 Slackware Linux, Inc. Concord, CA USA
|
||||
# Copyright 2009, 2015, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Mon May 21 18:31:20 UTC 2018
|
||||
# Add --compress option, usually used to change the preset compression level
|
||||
# or block size.
|
||||
#
|
||||
# Tue Feb 13 00:46:12 UTC 2018
|
||||
# Use recent tar, and support storing POSIX ACLs and extended attributes.
|
||||
#
|
||||
# Tue Dec 12 21:55:59 UTC 2017
|
||||
# If possible, use multiple compression threads.
|
||||
#
|
||||
# Wed Sep 23 18:36:43 UTC 2015
|
||||
# Support spaces in file/directory names. <alphageek>
|
||||
#
|
||||
# Sun Apr 5 21:23:26 CDT 2009
|
||||
# Support .tgz, .tbz, .tlz, and .txz packages. <volkerdi>
|
||||
#
|
||||
# Fri Nov 26 13:53:36 GMT 2004
|
||||
# Patched to chmod 755 the package's root directory if needed, then restore
|
||||
# previous permissions after the package has been created. <sw>
|
||||
#
|
||||
# Wed Mar 18 15:32:33 CST 1998
|
||||
# Patched to avoid possible symlink attacks in /tmp.
|
||||
|
||||
CWD=$(pwd)
|
||||
|
||||
umask 022
|
||||
|
||||
make_install_script() {
|
||||
TAB="$(echo -e "\t")"
|
||||
COUNT=1
|
||||
while :; do
|
||||
LINE="$(sed -n "$COUNT p" $1)"
|
||||
if [ "$LINE" = "" ]; then
|
||||
break
|
||||
fi
|
||||
LINKGOESIN="$(echo "$LINE" | cut -f 1 -d "$TAB")"
|
||||
LINKGOESIN="$(dirname "$LINKGOESIN")"
|
||||
LINKNAMEIS="$(echo "$LINE" | cut -f 1 -d "$TAB")"
|
||||
LINKNAMEIS="$(basename "$LINKNAMEIS")"
|
||||
LINKPOINTSTO="$(echo "$LINE" | cut -f 2 -d "$TAB")"
|
||||
echo "( cd $LINKGOESIN ; rm -rf $LINKNAMEIS )"
|
||||
echo "( cd $LINKGOESIN ; ln -sf $LINKPOINTSTO $LINKNAMEIS )"
|
||||
COUNT=$(expr $COUNT + 1)
|
||||
done
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat << EOF
|
||||
|
||||
Usage: makepkg package_name.tgz
|
||||
(or: package_name.tbz, package_name.tlz, package_name.txz)
|
||||
|
||||
Makes a Slackware compatible package containing the contents of the current
|
||||
and all subdirectories. If symbolic links exist, they will be removed and
|
||||
an installation script will be made to recreate them later. This script will
|
||||
be called "install/doinst.sh". You may add any of your own ash-compatible
|
||||
shell scripts to this file and rebuild the package if you wish.
|
||||
|
||||
options: -l, --linkadd y|n (moves symlinks into doinst.sh: recommended)
|
||||
-p, --prepend (prepend rather than append symlinks to an existing
|
||||
doinst.sh. Useful to link libraries needed by programs in
|
||||
the doinst.sh script)
|
||||
-c, --chown y|n (resets all permissions to root:root 755 - not
|
||||
generally recommended)
|
||||
--threads <number> For xz/plzip compressed packages, set the max
|
||||
number of threads to be used for compression. Only has an
|
||||
effect on large packages. For plzip, the default is equal to
|
||||
the number of CPU threads available on the machine. For xz,
|
||||
the default is equal to 2 (due to commonly occuring memory
|
||||
related failures when using many threads with multi-threaded
|
||||
xz compression).
|
||||
--compress <option> Supply a custom option to the compressor.
|
||||
This will be used in place of the default, which is: -9
|
||||
--acls Support storing POSIX ACLs in the package. The resulting
|
||||
package will not be compatible with pkgtools version < 15.0.
|
||||
--xattrs Support storing extended attributes in the package. The
|
||||
resulting package will not be compatible with pkgtools
|
||||
version < 15.0.
|
||||
|
||||
If these options are not set, makepkg will prompt if appropriate.
|
||||
EOF
|
||||
}
|
||||
|
||||
TMP=/tmp # This can be a hole, but I'm going to be careful about file
|
||||
# creation in there, so don't panic. :^)
|
||||
|
||||
# Set maximum number of threads to use. By default, this will be the number
|
||||
# of CPU threads:
|
||||
THREADS="$(nproc)"
|
||||
|
||||
# Set default compression option.
|
||||
COMPRESS_OPTION="-9"
|
||||
|
||||
# Parse options
|
||||
unset ACLS XATTRS
|
||||
while [ 0 ]; do
|
||||
if [ "$1" = "--linkadd" -o "$1" = "-l" ]; then
|
||||
if [ "$2" = "y" ]; then
|
||||
LINKADD=y
|
||||
elif [ "$2" = "n" ]; then
|
||||
LINKADD=n
|
||||
else
|
||||
usage
|
||||
exit 2
|
||||
fi
|
||||
shift 2
|
||||
elif [ "$1" = "--chown" -o "$1" = "-c" ]; then
|
||||
if [ "$2" = "y" ]; then
|
||||
CHOWN=y
|
||||
elif [ "$2" = "n" ]; then
|
||||
CHOWN=n
|
||||
else
|
||||
usage
|
||||
exit 2
|
||||
fi
|
||||
shift 2
|
||||
elif [ "$1" = "-p" -o "$1" = "--prepend" ]; then
|
||||
PREPEND=y
|
||||
shift 1
|
||||
elif [ "$1" = "-threads" -o "$1" = "--threads" ]; then
|
||||
THREADS="$2"
|
||||
shift 2
|
||||
# xz has memory issues with threads it seems, so we'll use two threads by
|
||||
# default unless we see that something else was user-selected:
|
||||
XZ_THREADS_FORCED=yes
|
||||
elif [ "$1" = "-compress" -o "$1" = "--compress" ]; then
|
||||
COMPRESS_OPTION="$2"
|
||||
shift 2
|
||||
elif [ "$1" = "--acls" ]; then
|
||||
ACLS="--acls"
|
||||
shift 1
|
||||
elif [ "$1" = "--xattrs" ]; then
|
||||
XATTRS="--xattrs"
|
||||
shift 1
|
||||
elif [ "$1" = "-h" -o "$1" = "-H" -o "$1" = "--help" -o $# = 0 ]; then
|
||||
usage
|
||||
exit 0
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
PACKAGE_NAME="$1"
|
||||
TARGET_NAME="$(dirname $PACKAGE_NAME)"
|
||||
PACKAGE_NAME="$(basename $PACKAGE_NAME)"
|
||||
|
||||
# Identify package extension and compression type to use:
|
||||
if [ ! "$(basename $PACKAGE_NAME .tgz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tgz"
|
||||
COMPEXT="gz"
|
||||
COMPRESSOR="gzip ${COMPRESS_OPTION} -c"
|
||||
if ! which gzip 1> /dev/null 2> /dev/null ; then
|
||||
echo "ERROR: gzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tar.gz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tar.gz"
|
||||
COMPRESSOR="gzip ${COMPRESS_OPTION} -c"
|
||||
if ! which gzip 1> /dev/null 2> /dev/null ; then
|
||||
echo "ERROR: gzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tbz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tbz"
|
||||
if which lbzip2 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="lbzip2 ${COMPRESS_OPTION} -c"
|
||||
else
|
||||
if which bzip2 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="bzip2 ${COMPRESS_OPTION} -c"
|
||||
else
|
||||
echo "ERROR: bzip2 compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tar.bz2)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tar.bz2"
|
||||
if which lbzip2 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="lbzip2 ${COMPRESS_OPTION} -c"
|
||||
else
|
||||
if which bzip2 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="bzip2 ${COMPRESS_OPTION} -c"
|
||||
else
|
||||
echo "ERROR: bzip2 compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tlz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tlz"
|
||||
if which plzip 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="plzip ${COMPRESS_OPTION} --threads=${THREADS} -c"
|
||||
else
|
||||
echo "WARNING: plzip compression utility not found in \$PATH."
|
||||
echo "WARNING: package will not support multithreaded decompression."
|
||||
if which lzip 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="lzip ${COMPRESS_OPTION} -c"
|
||||
else
|
||||
echo "ERROR: lzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tar.lz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tar.lz"
|
||||
if which plzip 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="plzip ${COMPRESS_OPTION} --threads=${THREADS} -c"
|
||||
else
|
||||
echo "WARNING: plzip compression utility not found in \$PATH."
|
||||
echo "WARNING: package will not support multithreaded decompression."
|
||||
if which lzip 1> /dev/null 2> /dev/null ; then
|
||||
COMPRESSOR="lzip ${COMPRESS_OPTION} -c"
|
||||
else
|
||||
echo "ERROR: lzip compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tar.lzma)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tar.lzma"
|
||||
COMPRESSOR="lzma ${COMPRESS_OPTION} -c"
|
||||
if ! which lzma 1> /dev/null 2> /dev/null ; then
|
||||
echo "ERROR: lzma compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .txz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="txz"
|
||||
if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then
|
||||
# Two threads by default with xz due to memory failures on 32-bit. Not that
|
||||
# it matters much... if upstream ever gets around to implementing multi-
|
||||
# threaded decompression we'll revisit this default. :-D
|
||||
COMPRESSOR="xz ${COMPRESS_OPTION} --threads=2 -c"
|
||||
else
|
||||
COMPRESSOR="xz ${COMPRESS_OPTION} --threads=${THREADS} -c"
|
||||
fi
|
||||
if ! which xz 1> /dev/null 2> /dev/null ; then
|
||||
echo "ERROR: xz compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
elif [ ! "$(basename $PACKAGE_NAME .tar.xz)" = "$PACKAGE_NAME" ]; then
|
||||
EXTENSION="tar.xz"
|
||||
if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then
|
||||
# Two threads by default with xz due to memory failures on 32-bit. Not that
|
||||
# it matters much... if upstream ever gets around to implementing multi-
|
||||
# threaded decompression we'll revisit this default. :-D
|
||||
COMPRESSOR="xz ${COMPRESS_OPTION} --threads=2 -c"
|
||||
else
|
||||
COMPRESSOR="xz ${COMPRESS_OPTION} --threads=${THREADS} -c"
|
||||
fi
|
||||
if ! which xz 1> /dev/null 2> /dev/null ; then
|
||||
echo "ERROR: xz compression utility not found in \$PATH."
|
||||
exit 3
|
||||
fi
|
||||
else
|
||||
EXTENSION="$(echo $PACKAGE_NAME | rev | cut -f 1 -d . | rev)"
|
||||
echo "ERROR: Package extension .$EXTENSION is not supported."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TAR_NAME="$(basename $PACKAGE_NAME .$EXTENSION)"
|
||||
|
||||
# Sanity check -- we can't make the package in the current directory:
|
||||
if [ "$CWD" = "$TARGET_NAME" -o "." = "$TARGET_NAME" ]; then
|
||||
echo "ERROR: Can't make output package in current directory."
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Slackware package maker, version 3.14159265."
|
||||
echo
|
||||
echo "Searching for symbolic links:"
|
||||
# Get rid of possible pre-existing trouble:
|
||||
INST=$(mktemp $TMP/makepkg.XXXXXX)
|
||||
find . -type l -printf "%p\t%l\n" | sed 's,^\./,, ; s, ,\\ ,g' | tee $INST
|
||||
if [ ! "$(cat $INST)" = "" ]; then
|
||||
echo
|
||||
echo "Making symbolic link creation script:"
|
||||
make_install_script $INST | tee doinst.sh
|
||||
fi
|
||||
echo
|
||||
if [ ! "$(cat $INST)" = "" ]; then
|
||||
if [ -r install/doinst.sh ]; then
|
||||
echo "Unless your existing installation script already contains the code"
|
||||
echo "to create these links, you should append these lines to your existing"
|
||||
echo "install script. Now's your chance. :^)"
|
||||
echo
|
||||
echo "Would you like to add this stuff to the existing install script and"
|
||||
echo -n "remove the symbolic links ([y]es, [n]o)? "
|
||||
else
|
||||
echo "It is recommended that you make these lines your new installation script."
|
||||
echo
|
||||
echo "Would you like to make this stuff the install script for this package"
|
||||
echo -n "and remove the symbolic links ([y]es, [n]o)? "
|
||||
fi
|
||||
if [ ! "$LINKADD" ]; then
|
||||
read LINKADD;
|
||||
echo
|
||||
else
|
||||
echo $LINKADD
|
||||
echo
|
||||
fi
|
||||
if [ "$LINKADD" = "y" ]; then
|
||||
if [ -r install/doinst.sh ]; then
|
||||
UPDATE="t"
|
||||
if [ "$PREPEND" = "y" ]; then
|
||||
touch install/doinst.sh
|
||||
mv install/doinst.sh install/doinst.sh.shipped
|
||||
cat doinst.sh > install/doinst.sh
|
||||
echo "" >> install/doinst.sh
|
||||
cat install/doinst.sh.shipped >> install/doinst.sh
|
||||
rm -f install/doinst.sh.shipped
|
||||
else
|
||||
cat doinst.sh >> install/doinst.sh
|
||||
fi
|
||||
else
|
||||
mkdir -p install
|
||||
cat doinst.sh > install/doinst.sh
|
||||
fi
|
||||
echo
|
||||
echo "Removing symbolic links:"
|
||||
find . -type l -exec rm -v {} \;
|
||||
echo
|
||||
if [ "$UPDATE" = "t" ]; then
|
||||
if [ "$PREPEND" = "y" ]; then
|
||||
echo "Updating your ./install/doinst.sh (prepending symlinks)..."
|
||||
else
|
||||
echo "Updating your ./install/doinst.sh..."
|
||||
fi
|
||||
else
|
||||
echo "Creating your new ./install/doinst.sh..."
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "No symbolic links were found, so we won't make an installation script."
|
||||
echo "You can make your own later in ./install/doinst.sh and rebuild the"
|
||||
echo "package if you like."
|
||||
fi
|
||||
rm -f doinst.sh $INST
|
||||
echo
|
||||
echo "This next step is optional - you can set the directories in your package"
|
||||
echo "to some sane permissions. If any of the directories in your package have"
|
||||
echo "special permissions, then DO NOT reset them here!"
|
||||
echo
|
||||
echo "Would you like to reset all directory permissions to 755 (drwxr-xr-x) and"
|
||||
echo -n "directory ownerships to root.root ([y]es, [n]o)? "
|
||||
if [ ! "$CHOWN" ]; then
|
||||
read CHOWN;
|
||||
echo
|
||||
else
|
||||
echo $CHOWN
|
||||
echo
|
||||
fi
|
||||
if [ "$CHOWN" = "y" ]; then
|
||||
find . -type d -exec chmod -v 755 {} \;
|
||||
find . -type d -exec chown -v root.root {} \;
|
||||
fi
|
||||
|
||||
# Ensure that the 'root' of the package is chmod 755 because
|
||||
# the / of your filesystem will inherit these permissions.
|
||||
# If it's anything tighter than 755 then bad things happen such as users
|
||||
# not being able to login, users already logged in can no longer run commands
|
||||
# and so on.
|
||||
OLDROOTPERMS="$(find -name . -printf "%m\n")"
|
||||
if [ $OLDROOTPERMS -ne 755 ]; then
|
||||
echo "WARNING: $PWD is chmod $OLDROOTPERMS"
|
||||
echo " temporarily changing to chmod 755"
|
||||
chmod 755 .
|
||||
fi
|
||||
|
||||
echo "Creating Slackware package: ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}"
|
||||
echo
|
||||
rm -f ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
|
||||
|
||||
# HISTORICAL NOTE 2/2018:
|
||||
# In the interest of maximizing portability of this script, we'll use find
|
||||
# and sed to create a filelist compatible with tar-1.13, and then use a
|
||||
# more modern tar version to create the archive.
|
||||
#
|
||||
# Other (but possibly less portable) ways to achieve the same result:
|
||||
#
|
||||
# Use the tar --transform and --show-transformed-names options:
|
||||
# tar --transform "s,^\./\(.\),\1," --show-transformed-names $ACLS $XATTRS -cvf - . | $COMPRESSOR > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
|
||||
#
|
||||
# Use cpio:
|
||||
# find ./ | sed '2,$s,^\./,,' | cpio --quiet -ovHustar > ${TARGET_NAME}/${TAR_NAME}.tar
|
||||
|
||||
# Create the package:
|
||||
find ./ | sed '2,$s,^\./,,' | tar --no-recursion $ACLS $XATTRS -T - -cvf - | $COMPRESSOR > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
|
||||
ERRCODE=$?
|
||||
if [ ! $ERRCODE = 0 ]; then
|
||||
echo "ERROR: $COMPRESSOR returned error code $ERRCODE -- makepkg failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Warn of zero-length files:
|
||||
find . -type f -size 0c | while read file ; do
|
||||
echo "WARNING: zero length file $(echo $file | cut -b3-)"
|
||||
done
|
||||
|
||||
# Warn of corrupt or empty gzip files:
|
||||
find . -type f -name '*.gz' | while read file ; do
|
||||
if ! gzip -t $file 1> /dev/null 2> /dev/null ; then
|
||||
echo "WARNING: gzip test failed on $(echo $file | cut -b3-)"
|
||||
else
|
||||
if [ "$(gzip -l $file | tail -n 1 | tr -s ' ' | cut -f 3 -d ' ')" -eq 0 ]; then
|
||||
echo "WARNING: $(echo $file | cut -b3-) is an empty gzipped file"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Some more handy warnings:
|
||||
if [ -d usr/share/man ]; then
|
||||
echo "WARNING: /usr/share/man (with possibly not gzipped man pages) detected"
|
||||
fi
|
||||
|
||||
if [ -d usr/share/info ]; then
|
||||
echo "WARNING: /usr/share/info (with possibly not gzipped info pages) detected"
|
||||
fi
|
||||
|
||||
if find . | grep site_perl 1> /dev/null ; then
|
||||
echo "WARNING: site_perl directory detected (this is fine for a local package build)"
|
||||
fi
|
||||
|
||||
# Restore the old permissions if they previously weren't chmod 755
|
||||
if [ $OLDROOTPERMS -ne 755 ]; then
|
||||
echo
|
||||
echo "Restoring permissions of $PWD to chmod $OLDROOTPERMS"
|
||||
chmod $OLDROOTPERMS .
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created."
|
||||
echo
|
|
@ -1,164 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright 2002 Patrick J. Volkerding, Concord, CA, USA
|
||||
# Copyright 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
CWD=$(pwd)
|
||||
|
||||
# Display usage for basic usage errors:
|
||||
usage() {
|
||||
cat << EOF
|
||||
pkgdiff: missing file arguments
|
||||
Try 'pkgdiff --help' for more information.
|
||||
EOF
|
||||
}
|
||||
|
||||
# Display full --help if requested:
|
||||
helpme() {
|
||||
cat << EOF
|
||||
Usage: pkgdiff [OPTION] FILE1 FILE2
|
||||
Show which files are new and which are removed between two tar archives.
|
||||
The tar archives may be uncompressed, or compressed with gzip, bzip2,
|
||||
xz, or lzip. Also works with .rpm and .deb.
|
||||
|
||||
--help display this help and exit
|
||||
-c use ANSI color with default tree mode
|
||||
-a show simple text (ASCII) diff of package file lists
|
||||
|
||||
By default, the trees are drawn with in crude ASCII with no color. For
|
||||
the full-color effect, try something like this:
|
||||
|
||||
pkgdiff -c package1 package2 | less -r
|
||||
|
||||
EOF
|
||||
# --help doesn't return
|
||||
exit 22
|
||||
}
|
||||
|
||||
# How the heck do I open this?
|
||||
explode() {
|
||||
tar xf $1 1> /dev/null 2> /dev/null
|
||||
# Check for common extensions and do additional magic:
|
||||
if [ ! "$(basename $1)" = "$(basename $1 .zip)" ]; then
|
||||
unzip $1 1> /dev/null 2> /dev/null
|
||||
fi
|
||||
if [ ! "$(basename $1)" = "$(basename $1 .rpm)" ]; then
|
||||
cp $1 .
|
||||
rpm2tgz $(basename $1) 1> /dev/null 2> /dev/null
|
||||
rm -f $(basename $1)
|
||||
tar xzf $(basename $1 .rpm).tgz 1> /dev/null 2> /dev/null
|
||||
rm -f $(basename $1 .rpm).tgz
|
||||
fi
|
||||
if [ ! "$(basename $1)" = "$(basename $1 .deb)" ]; then
|
||||
cp $1 .
|
||||
ar x $(basename $1) 1> /dev/null 2> /dev/null
|
||||
tar xf data.tar.xz 1> /dev/null 2> /dev/null
|
||||
rm -f * 2> /dev/null
|
||||
fi
|
||||
# Diffs for other archive formats are welcome.
|
||||
}
|
||||
|
||||
# Parse options.
|
||||
# -c turns on colorization ala dircolors:
|
||||
unset COLOR
|
||||
if [ "$1" = "-c" ]; then
|
||||
COLOR="-C"
|
||||
shift 1
|
||||
fi
|
||||
if [ "$1" = "-a" ]; then
|
||||
ASCII=true
|
||||
shift 1
|
||||
fi
|
||||
if [ "$1" = "--help" ]; then
|
||||
helpme
|
||||
fi
|
||||
|
||||
TMPDIR=$(mktemp -d)
|
||||
cd $TMPDIR
|
||||
|
||||
if [ ! -r "$1" ]; then
|
||||
if [ -d "$CWD/$1" ]; then
|
||||
usage
|
||||
exit 99
|
||||
else
|
||||
PKG1="$CWD/$1"
|
||||
fi
|
||||
else
|
||||
PKG1="$1"
|
||||
fi
|
||||
|
||||
if [ ! -r "$2" ]; then
|
||||
if [ -d "$CWD/$2" ]; then
|
||||
usage
|
||||
#echo "pkgdiff -- find the difference between two tar archives"
|
||||
#echo "usage: pkgdiff [ -C ] pkg1 pkg2"
|
||||
exit 99
|
||||
else
|
||||
PKG2="$CWD/$2"
|
||||
fi
|
||||
else
|
||||
PKG2="$2"
|
||||
fi
|
||||
|
||||
# We have to account for the possibility that the packages have the
|
||||
# same name, but different contents...
|
||||
if [ "$(basename $PKG1)" = "$(basename $PKG2)" ]; then
|
||||
PKG1=${PKG1}.orig
|
||||
fi
|
||||
|
||||
# This will be mighty safe even if we ended up in /tmp.
|
||||
PKG=.pkgdiff.$(mcookie)
|
||||
|
||||
( mkdir -p $TMPDIR/$PKG/1
|
||||
cd $TMPDIR/$PKG/1
|
||||
if [ -r $PKG1 ]; then
|
||||
explode $PKG1
|
||||
elif [ -r $(dirname $PKG1)/$(basename $PKG1 .orig) ]; then
|
||||
explode $(dirname $PKG1)/$(basename $PKG1 .orig)
|
||||
fi
|
||||
if [ ! "$ASCII" = "true" ]; then
|
||||
tree $COLOR -a --noreport > ../$(basename $PKG1)
|
||||
else
|
||||
find ./ | sed '2,$s,^\./,,' | tar --no-recursion -T - -cf - | tar tf - | sort > ../$(basename $PKG1)
|
||||
fi
|
||||
)
|
||||
( mkdir -p $TMPDIR/$PKG/2
|
||||
cd $TMPDIR/$PKG/2
|
||||
explode $PKG2
|
||||
if [ ! "$ASCII" = "true" ]; then
|
||||
tree $COLOR -a --noreport > ../$(basename $PKG2)
|
||||
else
|
||||
find ./ | sed '2,$s,^\./,,' | tar --no-recursion -T - -cf - | tar tf - | sort > ../$(basename $PKG2)
|
||||
fi
|
||||
)
|
||||
|
||||
# Always going that extra mile... ;)
|
||||
if [ -r $PKG1 ]; then
|
||||
touch -r $PKG1 $TMPDIR/$PKG/$(basename $PKG1)
|
||||
elif [ -r $(dirname $PKG1)/$(basename $PKG1 .orig) ]; then
|
||||
touch -r $(dirname $PKG1)/$(basename $PKG1 .orig) $TMPDIR/$PKG/$(basename $PKG1)
|
||||
fi
|
||||
touch -r $PKG2 $TMPDIR/$PKG/$(basename $PKG2)
|
||||
|
||||
rm -rf $TMPDIR/$PKG/{1,2}
|
||||
( cd $TMPDIR/$PKG ; diff -d -u $(basename $PKG1) $(basename $PKG2) )
|
||||
|
||||
# cleanup:
|
||||
rm -rf $PKG $TMPDIR
|
|
@ -1,723 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999 Patrick Volkerding, Moorhead, MN USA
|
||||
# Copyright 2001, 2004 Slackware Linux, Inc., Concord, CA USA
|
||||
# All rights reserved.
|
||||
# Copyright 2007, 2009, 2010, 2011, 2013, 2015, 2016, 2018 Patrick Volkerding, Sebeka, MN, USA
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# Mon Jun 4 21:17:58 UTC 2018
|
||||
# Use /var/lib/pkgtools, not /var/log.
|
||||
#
|
||||
# Sat Apr 25 21:18:53 UTC 2009
|
||||
# Converted to use new pkgbase() function to remove pathname and
|
||||
# valid package extensions.
|
||||
#
|
||||
# Wed Oct 31 16:28:46 CDT 2007
|
||||
# * Thanks to Gabriele Inghirami for a patch allowing this script to work
|
||||
# with much larger numbers of installed packages.
|
||||
# Wed, 27 Apr 1994 00:06:50 -0700 (PDT)
|
||||
# * Optimization by David Hinds.
|
||||
# Sun Oct 24 23:11:40 BST 2004
|
||||
# * Further optimisations by Jim Hawkins <jawkins@armedslack.org>
|
||||
# - dramatically improved the speed of the "View" option
|
||||
# Thu Nov 04 12:19:56 BST 2004
|
||||
# * More optimisations by Jim Hawkins
|
||||
# - improved "Remove" speed in a similar manner to "View"
|
||||
# Wed Jan 12 16:53:48 GMT 2005
|
||||
# * Fixed quoting bug thanks to Lasse Collin
|
||||
# Wed Jan 26 23:06:22 GMT 2005
|
||||
# * Fix for non-standard package descriptions by Jim Hawkins
|
||||
|
||||
# Return a package name that has been stripped of the dirname portion
|
||||
# and any of the valid extensions (only):
|
||||
pkgbase() {
|
||||
PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
|
||||
case $PKGEXT in
|
||||
'tgz' )
|
||||
PKGRETURN=$(basename $1 .tgz)
|
||||
;;
|
||||
'tbz' )
|
||||
PKGRETURN=$(basename $1 .tbz)
|
||||
;;
|
||||
'tlz' )
|
||||
PKGRETURN=$(basename $1 .tlz)
|
||||
;;
|
||||
'txz' )
|
||||
PKGRETURN=$(basename $1 .txz)
|
||||
;;
|
||||
*)
|
||||
PKGRETURN=$(basename $1)
|
||||
;;
|
||||
esac
|
||||
echo $PKGRETURN
|
||||
}
|
||||
|
||||
SOURCE_DIR=/var/lib/pkgtools/mount
|
||||
ASK="tagfiles"
|
||||
if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using busybox
|
||||
TARGET_DIR=/mnt
|
||||
rootdevice="$(mount | grep ' on /mnt ' | tail -n 1 | cut -f 1 -d ' ' 2> /dev/null)"
|
||||
TMP=/mnt/var/lib/pkgtools/setup/tmp
|
||||
if ! mount | grep ' on /mnt ' 1> /dev/null 2> /dev/null ; then
|
||||
echo
|
||||
echo
|
||||
echo "You can't run pkgtool from the rootdisk until you've mounted your Linux"
|
||||
echo "partitions beneath /mnt. Here are some examples:"
|
||||
echo
|
||||
echo "If your root partition is /dev/sda1 you would type:"
|
||||
echo "mount /dev/sda1 /mnt"
|
||||
echo
|
||||
echo "Now you can find a list of all your partitions in /mnt/etc/fstab."
|
||||
echo
|
||||
echo "Then, supposing your /usr partition is /dev/sda2, you must do this:"
|
||||
echo "mount /dev/sda2 /mnt/usr"
|
||||
echo
|
||||
echo "Please mount your Linux partitions and then run pkgtool again."
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
else
|
||||
TARGET_DIR=/
|
||||
rootdevice="$(mount | grep ' on / ' | tail -n 1 | cut -f 1 -d ' ')"
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
fi
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP
|
||||
fi
|
||||
ADM_DIR=$TARGET_DIR/var/lib/pkgtools
|
||||
LOG=$TMP/PKGTOOL.REMOVED
|
||||
|
||||
# remove whitespace
|
||||
crunch() {
|
||||
while read FOO ; do
|
||||
echo $FOO
|
||||
done
|
||||
}
|
||||
|
||||
package_name() {
|
||||
STRING=$(pkgbase $1)
|
||||
# Check for old style package name with one segment:
|
||||
if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then
|
||||
echo $STRING
|
||||
else # has more than one dash delimited segment
|
||||
# Count number of segments:
|
||||
INDEX=1
|
||||
while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do
|
||||
INDEX=$(expr $INDEX + 1)
|
||||
done
|
||||
INDEX=$(expr $INDEX - 1) # don't include the null value
|
||||
# If we don't have four segments, return the old-style (or out of spec) package name:
|
||||
if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then
|
||||
echo $STRING
|
||||
else # we have four or more segments, so we'll consider this a new-style name:
|
||||
NAME=$(expr $INDEX - 3)
|
||||
NAME="$(echo $STRING | cut -f 1-$NAME -d -)"
|
||||
echo $NAME
|
||||
# cruft for later ;)
|
||||
#VER=$(expr $INDEX - 2)
|
||||
#VER="$(echo $STRING | cut -f $VER -d -)"
|
||||
#ARCH=$(expr $INDEX - 1)
|
||||
#ARCH="$(echo $STRING | cut -f $ARCH -d -)"
|
||||
#BUILD="$(echo $STRING | cut -f $INDEX -d -)"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
remove_packages() {
|
||||
for pkg_name in $(cat $TMP/return | tr -d "\042")
|
||||
do
|
||||
if [ -r $ADM_DIR/packages/$pkg_name ]; then
|
||||
dialog --title "PACKAGE REMOVAL IN PROGRESS" --cr-wrap --infobox \
|
||||
"\nRemoving package $pkg_name.\n\
|
||||
\n\
|
||||
Since each file must be checked \
|
||||
against the contents of every other installed package to avoid wiping out \
|
||||
areas of overlap, this process can take quite some time. If you'd like to \
|
||||
watch the progress, flip over to another virtual console and type:\n\
|
||||
\n\
|
||||
tail -f $TMP/PKGTOOL.REMOVED\n" 13 60
|
||||
export ROOT=$TARGET_DIR
|
||||
removepkg $pkg_name >> $LOG 2> /dev/null
|
||||
else
|
||||
echo "No such package: $pkg_name. Can't remove." >> $LOG
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
create_list_of_installed_packages()
|
||||
{
|
||||
FILES=$(ls $ADM_DIR/packages)
|
||||
if [ -n "$FILES" ]; then
|
||||
cd $ADM_DIR/packages
|
||||
{ grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \
|
||||
| sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g
|
||||
s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" "View information about package \1" \\/;p' > $TMP/list_of_installed_packages \
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
create_list_of_files_to_remove ()
|
||||
{
|
||||
FILES=$(ls $ADM_DIR/packages)
|
||||
if [ -n "$FILES" ]; then
|
||||
cd $ADM_DIR/packages
|
||||
{ grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \
|
||||
| sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g
|
||||
s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p' > $TMP/temporary_list \
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
# Here, we read the list of arguments passed to the pkgtool script.
|
||||
if [ $# -gt 0 ]; then # there are arguments to the command
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-sets | --sets)
|
||||
DISK_SETS=$(echo $2 | tr "[A-Z]" "[a-z]") ; shift 2 ;;
|
||||
-source_mounted | --source-mounted)
|
||||
SOURCE_MOUNTED="always" ; shift 1 ;;
|
||||
-ignore_tagfiles | --ignore-tagfiles)
|
||||
ASK="never" ; shift 1 ;;
|
||||
-tagfile | --tagfile)
|
||||
USETAG=$2 ; shift 2 ;;
|
||||
-source_dir | --source_dir)
|
||||
SOURCE_DIR=$2 ; shift 2 ;;
|
||||
-target_dir | --target_dir)
|
||||
TARGET_DIR=$2
|
||||
ADM_DIR=$TARGET_DIR/var/lib/pkgtools
|
||||
shift 2 ;;
|
||||
-source_device | --source_device)
|
||||
SOURCE_DEVICE=$2 ; shift 2 ;;
|
||||
esac
|
||||
done
|
||||
else # there were no arguments, so we'll get the needed information from the
|
||||
# user and then go on.
|
||||
CMD_START="true"
|
||||
rm -f $TMP/SeT*
|
||||
while [ 0 ]; do
|
||||
dialog --title "Slackware Package Tool (pkgtool version 15.0)" \
|
||||
--menu "\nWelcome to the Slackware package tool.\n\
|
||||
\nWhich option would you like?\n" 16 75 6 \
|
||||
"Current" "Install packages from the current directory" \
|
||||
"Other" "Install packages from some other directory" \
|
||||
"Remove" "Remove packages that are currently installed" \
|
||||
"View" "View the list of files contained in a package" \
|
||||
"Setup" "Choose Slackware installation scripts to run again" \
|
||||
"Exit" "Exit Pkgtool" 2> $TMP/reply
|
||||
if [ ! $? = 0 ]; then
|
||||
rm -f $TMP/reply
|
||||
dialog --clear
|
||||
exit
|
||||
fi
|
||||
REPLY="$(cat $TMP/reply)"
|
||||
rm -f $TMP/reply
|
||||
if [ "$REPLY" = "Exit" ]; then
|
||||
dialog --clear
|
||||
exit
|
||||
fi
|
||||
if [ "$REPLY" = "Setup" ]; then
|
||||
echo 'dialog --title "SELECT SYSTEM SETUP SCRIPTS" --item-help --checklist \
|
||||
"Please use the spacebar to select the setup scripts to run. Hit enter when you \
|
||||
are done selecting to run the scripts." 17 70 9 \' > $TMP/setupscr
|
||||
for script in $ADM_DIR/setup/setup.* ; do
|
||||
BLURB=$(grep '#BLURB' $script | cut -b8-)
|
||||
if [ "$BLURB" = "" ]; then
|
||||
BLURB="\"\""
|
||||
fi
|
||||
echo " \"$(basename $script | cut -f2- -d .)\" $BLURB \"no\" $BLURB \\" >> $TMP/setupscr
|
||||
done
|
||||
echo "2> $TMP/return" >> $TMP/setupscr
|
||||
. $TMP/setupscr
|
||||
if [ ! "$(cat $TMP/return)" = "" ]; then
|
||||
# Run each script:
|
||||
for script in $(cat $TMP/return) ; do
|
||||
scrpath=$ADM_DIR/setup/setup.$(echo $script | tr -d \")
|
||||
( COLOR=on ; cd $TARGET_DIR ; . $scrpath $TARGET_DIR $rootdevice )
|
||||
done
|
||||
fi
|
||||
rm -f $TMP/return $TMP/setupscr
|
||||
continue
|
||||
fi # end Setup
|
||||
|
||||
if [ "$REPLY" = "View" ]; then
|
||||
create_list_of_installed_packages
|
||||
DEFITEM=""
|
||||
export DEFITEM
|
||||
#dialog --title "SCANNING" --infobox "Please wait while \
|
||||
#Pkgtool scans your system to determine which packages you have \
|
||||
#installed and prepares a list for you." 0 0
|
||||
(
|
||||
echo 'dialog $DEFITEM --item-help --menu "Please select the package you wish to view." 17 68 10 \'
|
||||
) > $TMP/viewscr
|
||||
cat $TMP/list_of_installed_packages >> $TMP/viewscr
|
||||
echo "2> $TMP/return" >> $TMP/viewscr
|
||||
while [ 0 ]; do
|
||||
. $TMP/viewscr
|
||||
if [ ! "$(cat $TMP/return)" = "" ]; then
|
||||
DEFITEM="--default-item $(cat $TMP/return)"
|
||||
dialog --title "CONTENTS OF PACKAGE: $(cat $TMP/return)" --no-shadow --textbox "$ADM_DIR/packages/$(cat $TMP/return)" \
|
||||
0 0 2> /dev/null
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f $TMP/return $TMP/viewscr $TMP/tmpmsg $TMP/list_of_installed_packages
|
||||
# This will clean up after most defective packages:
|
||||
chmod 755 /
|
||||
chmod 1777 /tmp
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$REPLY" = "Remove" ]; then
|
||||
#dialog --title "SCANNING" --infobox "Please wait while Pkgtool scans \
|
||||
#your system to determine which packages you have installed and prepares \
|
||||
#a list for you." 0 0
|
||||
# end section
|
||||
(
|
||||
create_list_of_files_to_remove #call the function to create a list of installed packages
|
||||
cat << EOF
|
||||
dialog --title "SELECT PACKAGES TO REMOVE" --item-help --checklist \
|
||||
"Please select the \
|
||||
packages you wish to Remove. Use the \
|
||||
spacebar to select packages to delete, and the UP/DOWN arrow keys to \
|
||||
scroll up and down through the entire list." 20 75 11 \\
|
||||
EOF
|
||||
) > $TMP/rmscript
|
||||
cat $TMP/temporary_list >> $TMP/rmscript
|
||||
echo "2> $TMP/return" >> $TMP/rmscript
|
||||
if [ -L $LOG -o -r $LOG ]; then
|
||||
rm -f $LOG
|
||||
fi
|
||||
cat /dev/null > $LOG
|
||||
chmod 600 $LOG
|
||||
chmod 700 $TMP/rmscript
|
||||
export ADM_DIR;
|
||||
$TMP/rmscript
|
||||
remove_packages
|
||||
if [ "$(cat $TMP/PKGTOOL.REMOVED)" = "" ]; then
|
||||
rm -f $TMP/PKGTOOL.REMOVED
|
||||
dialog --title "NO PACKAGES REMOVED" --msgbox "Hit OK to return \
|
||||
to the main menu." 5 40
|
||||
else
|
||||
dialog --title "PACKAGE REMOVAL COMPLETE" --msgbox "The packages have \
|
||||
been removed. A complete log of the files that were removed has been created \
|
||||
in $TMP: PKGTOOL.REMOVED." 0 0
|
||||
fi
|
||||
rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT* $TMP/temporary_list
|
||||
chmod 755 /
|
||||
chmod 1777 /tmp
|
||||
# No, return to the main menu:
|
||||
# exit
|
||||
elif [ "$REPLY" = "Other" ]; then
|
||||
dialog --title "SELECT SOURCE DIRECTORY" --inputbox "Please enter the name of the directory that you wish to \
|
||||
install packages from:" 10 50 2> $TMP/pkgdir
|
||||
if [ $? = 1 ]; then
|
||||
rm -f $TMP/pkgdir $TMP/SeT*
|
||||
dialog --clear
|
||||
exit
|
||||
fi
|
||||
SOURCE_DIR="$(cat $TMP/pkgdir)"
|
||||
SOURCE_MOUNTED="always"
|
||||
DISK_SETS="disk"
|
||||
chmod 755 $TARGET_DIR
|
||||
chmod 1777 $TARGET_DIR/tmp
|
||||
rm -f $TMP/pkgdir
|
||||
if [ ! -d $SOURCE_DIR ]; then
|
||||
dialog --title "DIRECTORY NOT FOUND" --msgbox "The directory you want to \
|
||||
install from ($SOURCE_DIR) \
|
||||
does not seem to exist. Please check the directory and then try again." \
|
||||
10 50
|
||||
dialog --clear
|
||||
exit
|
||||
fi
|
||||
break;
|
||||
else # installing from current directory
|
||||
SOURCE_MOUNTED="always"
|
||||
SOURCE_DIR="$PWD"
|
||||
DISK_SETS="disk"
|
||||
chmod 755 $TARGET_DIR
|
||||
chmod 1777 $TARGET_DIR/tmp
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ "$DISK_SETS" = "disk" ]; then
|
||||
ASK="always"
|
||||
fi
|
||||
|
||||
mount_the_source() {
|
||||
# is the source supposed to be mounted already?
|
||||
if [ "$SOURCE_MOUNTED" = "always" ]; then
|
||||
# The source should already be mounted, so we test it
|
||||
if [ ! -d $SOURCE_DIR ]; then # the directory is missing
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
Your source device cannot be accessed properly.
|
||||
|
||||
Please be sure that it is mounted on $SOURCE_DIR,
|
||||
and that the Slackware disks are found in subdirectories
|
||||
of $SOURCE_DIR like specified.
|
||||
|
||||
EOF
|
||||
dialog --title "MOUNT ERROR" --msgbox "$(cat $TMP/tmpmsg)" 11 67
|
||||
rm -f $TMP/tmpmsg
|
||||
exit 1;
|
||||
fi
|
||||
return 0;
|
||||
fi
|
||||
dialog --title "INSERT DISK" --menu "Please insert disk $1 and \
|
||||
press ENTER to continue." \
|
||||
11 50 3 \
|
||||
"Continue" "Continue with the installation" \
|
||||
"Skip" "Skip the current disk series" \
|
||||
"Quit" "Abort the installation process" 2> $TMP/reply
|
||||
if [ ! $? = 0 ]; then
|
||||
REPLY="Quit"
|
||||
else
|
||||
REPLY="$(cat $TMP/reply)"
|
||||
fi
|
||||
rm -f $TMP/reply
|
||||
if [ "$REPLY" = "Skip" ]; then
|
||||
return 1;
|
||||
fi
|
||||
if [ "$REPLY" = "Quit" ]; then
|
||||
dialog --title "ABORTING" --msgbox "Aborting software installation." 5 50
|
||||
chmod 755 $TARGET_DIR
|
||||
chmod 1777 $TARGET_DIR/tmp
|
||||
exit 1;
|
||||
fi;
|
||||
# Old line:
|
||||
# mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR
|
||||
# New ones: (thanks to Andy Schwierskott!)
|
||||
go_on=y
|
||||
not_successfull_mounted=1
|
||||
while [ "$go_on" = y -a "$not_successfull_mounted" = 1 ]; do
|
||||
mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR
|
||||
not_successfull_mounted=$?
|
||||
if [ "$not_successfull_mounted" = 1 ]; then
|
||||
mount_answer=x
|
||||
while [ "$mount_answer" != "y" -a "$mount_answer" != "q" ] ; do
|
||||
dialog --title "MOUNT PROBLEM" --menu "Media was not successfully \
|
||||
mounted! Do you want to \
|
||||
retry, or quit?" 10 60 2 \
|
||||
"Yes" "Try to mount the disk again" \
|
||||
"No" "No, abort." 2> $TMP/mntans
|
||||
mount_answer="$(cat $TMP/mntans)"
|
||||
rm -f $TMP/mntans
|
||||
if [ "$mount_answer" = "Yes" ]; then
|
||||
mount_answer="y"
|
||||
else
|
||||
mount_answer="q"
|
||||
fi
|
||||
done
|
||||
go_on=$mount_answer
|
||||
fi
|
||||
done
|
||||
test $not_successfull_mounted = 0
|
||||
}
|
||||
|
||||
umount_the_source() {
|
||||
if [ ! "$SOURCE_MOUNTED" = "always" ]; then
|
||||
umount $SOURCE_DEVICE 1> /dev/null 2> /dev/null
|
||||
fi;
|
||||
}
|
||||
|
||||
install_disk() {
|
||||
mount_the_source $1
|
||||
if [ $? = 1 ]; then
|
||||
umount_the_source;
|
||||
return 1;
|
||||
fi
|
||||
CURRENT_DISK_NAME="$1"
|
||||
PACKAGE_DIR=$SOURCE_DIR
|
||||
if [ "$SOURCE_MOUNTED" = "always" -a ! "$DISK_SETS" = "disk" ]; then
|
||||
PACKAGE_DIR=$PACKAGE_DIR/$1
|
||||
fi
|
||||
|
||||
# If this directory is missing or contains no *.t?z files, bail.
|
||||
if [ ! -d $PACKAGE_DIR ]; then
|
||||
return 1
|
||||
fi
|
||||
if ! ls $PACKAGE_DIR/*.t?z 1> /dev/null 2> /dev/null ; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
#
|
||||
# look for tagfile for this series and copy into $TMP/tagfile
|
||||
#
|
||||
touch $TMP/tagfile
|
||||
if [ ! "$DISK_SETS" = "disk" ]; then
|
||||
if [ -r $TMP/SeTtagext ]; then
|
||||
if [ -r $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) ]; then
|
||||
cat $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) >> $TMP/tagfile
|
||||
else
|
||||
if [ -r $PACKAGE_DIR/tagfile ]; then
|
||||
cat $PACKAGE_DIR/tagfile >> $TMP/tagfile
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Do we need to follow a custom path to the tagfiles?
|
||||
#
|
||||
elif [ -r $TMP/SeTtagpath ]; then
|
||||
custom_path=$(cat $TMP/SeTtagpath)
|
||||
short_path=$(basename $PACKAGE_DIR)
|
||||
|
||||
# If tagfile exists at the specified custom path, copy it over.
|
||||
if [ -r $custom_path/$short_path/tagfile ]; then
|
||||
cat $custom_path/$short_path/tagfile >> $TMP/tagfile
|
||||
|
||||
else # well, I guess we'll use the default one then.
|
||||
if [ -r $PACKAGE_DIR/tagfile ]; then
|
||||
cat $PACKAGE_DIR/tagfile >> $TMP/tagfile
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# We seem to be testing for this too often... maybe this code should
|
||||
# be optimized a little...
|
||||
#
|
||||
elif [ -r $PACKAGE_DIR/tagfile ]; then
|
||||
cat $PACKAGE_DIR/tagfile >> $TMP/tagfile
|
||||
fi
|
||||
|
||||
#
|
||||
# Execute menus if in QUICK mode:
|
||||
#
|
||||
if [ -r $TMP/SeTQUICK -a -r $PACKAGE_DIR/maketag ]; then
|
||||
if [ ! "$MAKETAG" = "" -a -r $PACKAGE_DIR/$MAKETAG ]; then # use alternate maketag
|
||||
sh $PACKAGE_DIR/$MAKETAG
|
||||
else
|
||||
sh $PACKAGE_DIR/maketag
|
||||
fi
|
||||
if [ -r $TMP/SeTnewtag ]; then
|
||||
mv $TMP/SeTnewtag $TMP/tagfile
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Protect tagfile from hacker attack:
|
||||
#
|
||||
if [ -r $TMP/tagfile ]; then
|
||||
chmod 600 $TMP/tagfile
|
||||
fi
|
||||
|
||||
fi # ! "$DISK_SETS" = "disk"
|
||||
|
||||
# It's possible that the tagfile was specified on the command line. If that's
|
||||
# the case, then we'll just override whatever we figured out up above.
|
||||
if [ ! "$USETAG" = "" ]; then
|
||||
cat $USETAG > $TMP/tagfile
|
||||
fi
|
||||
|
||||
# If there's a catalog file present, use it to check for missing files.
|
||||
# If not, forget about that and install whatever's there.
|
||||
if [ "$1" = "single_disk" -o -r $PACKAGE_DIR/disk$1 -o -r $PACKAGE_DIR/package-list.txt ]; then
|
||||
if [ -r $PACKAGE_DIR/package-list.txt ]; then
|
||||
CATALOG_FILE=$PACKAGE_DIR/package-list.txt
|
||||
else
|
||||
CATALOG_FILE=$(basename $PACKAGE_DIR/disk*);
|
||||
fi
|
||||
if [ -r $PACKAGE_DIR/$CATALOG_FILE -a ! -d $PACKAGE_DIR/$CATALOG_FILE ]; then
|
||||
if grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE 1> /dev/null 2> /dev/null ; then
|
||||
# First we check for missing packages...
|
||||
for PKGTEST in $(grep "^CONTENTS:" $PACKAGE_DIR/$CATALOG_FILE | cut -f2- -d : 2> /dev/null) ; do
|
||||
# This is not a perfect test. (say emacs is missing but emacs-nox is not)
|
||||
if ls $PACKAGE_DIR/$PKGTEST*.t?z 1> /dev/null 2> /dev/null ; then # found something like it
|
||||
true
|
||||
else
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
WARNING!!!
|
||||
|
||||
While looking through your index file ($CATALOG_FILE),
|
||||
I noticed that you might be missing a package:
|
||||
|
||||
$PKGTEST-\*-\*-\*.t?z
|
||||
|
||||
that is supposed to be on this disk (disk $1). You may go
|
||||
on with the installation if you wish, but if this is a
|
||||
crucial file I'm making no promises that your machine will
|
||||
boot.
|
||||
|
||||
EOF
|
||||
dialog --title "FILE MISSING FROM YOUR DISK" --msgbox \
|
||||
"$(cat $TMP/tmpmsg)" 17 67
|
||||
fi
|
||||
done # checking for missing packages
|
||||
# Now we test for extra packages:
|
||||
ALLOWED="$(grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE | cut -b10- 2> /dev/null)"
|
||||
for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do
|
||||
BASE=$(pkgbase $PACKAGE_FILENAME)
|
||||
BASE="$(package_name $BASE)"
|
||||
if echo $ALLOWED | grep $BASE 1> /dev/null 2> /dev/null ; then
|
||||
true
|
||||
else
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
WARNING!!!
|
||||
|
||||
While looking through your index file ($CATALOG_FILE),
|
||||
I noticed that you have this extra package:
|
||||
|
||||
($BASE.t?z)
|
||||
|
||||
that I don't recognize. Please be sure this package is
|
||||
really supposed to be here, and is not left over from an
|
||||
old version of Slackware. Sometimes this can happen at the
|
||||
archive sites.
|
||||
|
||||
EOF
|
||||
dialog --title "EXTRA FILE FOUND ON YOUR DISK" \
|
||||
--msgbox "$(cat $TMP/tmpmsg)" 17 67
|
||||
rm -f $TMP/tmpmsg
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi # check for missing/extra packages
|
||||
|
||||
# Install the packages:
|
||||
for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do
|
||||
if [ "$PACKAGE_FILENAME" = "$PACKAGE_DIR/*.t?z" ]; then
|
||||
continue;
|
||||
fi
|
||||
if [ "$ASK" = "never" ]; then # install the package
|
||||
installpkg -root $TARGET_DIR -infobox -tagfile $TMP/tagfile $PACKAGE_FILENAME
|
||||
ERROR=$?
|
||||
elif [ "$ASK" = "tagfiles" ]; then
|
||||
installpkg -root $TARGET_DIR -menu -tagfile $TMP/tagfile $PACKAGE_FILENAME
|
||||
ERROR=$?
|
||||
else # ASK should be = always here, and that's how we'll treat it
|
||||
installpkg -root $TARGET_DIR -menu -ask -tagfile $TMP/tagfile $PACKAGE_FILENAME
|
||||
ERROR=$?
|
||||
fi
|
||||
# Check for abort:
|
||||
if [ "$ERROR" = "99" ]; then
|
||||
umount_the_source;
|
||||
chmod 755 $TARGET_DIR
|
||||
chmod 1777 $TARGET_DIR/tmp
|
||||
exit 1;
|
||||
fi
|
||||
done
|
||||
OUTTAHERE="false"
|
||||
if [ -r $PACKAGE_DIR/install.end ]; then
|
||||
OUTTAHERE="true"
|
||||
fi
|
||||
umount_the_source;
|
||||
if [ "$OUTTAHERE" = "true" ]; then
|
||||
return 1;
|
||||
fi
|
||||
}
|
||||
|
||||
install_disk_set() { # accepts one argument: the series name in lowercase.
|
||||
SERIES_NAME=$1
|
||||
CURRENT_DISK_NUMBER="1";
|
||||
while [ 0 ]; do
|
||||
# Don't start numbering the directories until 2:
|
||||
if [ $CURRENT_DISK_NUMBER = 1 ]; then
|
||||
DISKTOINSTALL=$SERIES_NAME
|
||||
else
|
||||
DISKTOINSTALL=$SERIES_NAME$CURRENT_DISK_NUMBER
|
||||
fi
|
||||
install_disk $DISKTOINSTALL
|
||||
if [ ! $? = 0 ]; then # install.end was found, or the user chose
|
||||
# to quit installing packages.
|
||||
return 0;
|
||||
fi
|
||||
CURRENT_DISK_NUMBER=$(expr $CURRENT_DISK_NUMBER + 1)
|
||||
done;
|
||||
}
|
||||
|
||||
# /* main() */ ;)
|
||||
if [ "$DISK_SETS" = "disk" ]; then
|
||||
install_disk single_disk;
|
||||
ASK="always"
|
||||
else
|
||||
touch $TMP/tagfile
|
||||
chmod 600 $TMP/tagfile
|
||||
if echo $DISK_SETS | grep "#a#" 1> /dev/null 2> /dev/null ; then
|
||||
A_IS_NEEDED="true"
|
||||
else
|
||||
A_IS_NEEDED="false"
|
||||
fi
|
||||
while [ 0 ];
|
||||
do
|
||||
while [ 0 ]; # strip leading '#'s
|
||||
do
|
||||
if [ "$(echo $DISK_SETS | cut -b1)" = "#" ]; then
|
||||
DISK_SETS="$(echo $DISK_SETS | cut -b2-)"
|
||||
else
|
||||
break;
|
||||
fi
|
||||
done
|
||||
if [ "$A_IS_NEEDED" = "true" ]; then
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
--- Installing package series ==>a<==
|
||||
|
||||
EOF
|
||||
dialog --infobox "$(cat $TMP/tmpmsg)" 5 45
|
||||
sleep 1
|
||||
rm -f $TMP/tmpmsg
|
||||
install_disk_set a;
|
||||
A_IS_NEEDED="false"
|
||||
fi
|
||||
count="1"
|
||||
if [ "$(echo $DISK_SETS | cut -b$count)" = "" ]; then
|
||||
break; # we be done here :^)
|
||||
else
|
||||
count="2"
|
||||
while [ 0 ]; do
|
||||
if [ "$(echo $DISK_SETS | cut -b$count)" = "" -o "$(echo $DISK_SETS | cut -b$count)" = "#" ]; then
|
||||
count="$(expr $count - 1)"
|
||||
break;
|
||||
else
|
||||
count="$(expr $count + 1)"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
diskset="$(echo $DISK_SETS | cut -b1-$count)"
|
||||
count="$(expr $count + 1)"
|
||||
DISK_SETS="$(echo $DISK_SETS | cut -b$count-)"
|
||||
if [ "$diskset" = "a" ]; then
|
||||
continue; # we expect this to be done elsewhere
|
||||
fi
|
||||
cat << EOF > $TMP/tmpmsg
|
||||
|
||||
Installing package series ==>$diskset<==
|
||||
|
||||
EOF
|
||||
dialog --infobox "$(cat $TMP/tmpmsg)" 5 45
|
||||
sleep 1
|
||||
rm -f $TMP/tmpmsg
|
||||
install_disk_set $diskset;
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$DISK_SETS" = "disk" -o "$CMD_START" = "true" ]; then
|
||||
if [ -r $TMP/tagfile ]; then
|
||||
rm $TMP/tagfile
|
||||
fi
|
||||
dialog --clear
|
||||
fi
|
||||
chmod 755 $TARGET_DIR $TARGET_DIR/var $TARGET_DIR/usr
|
||||
chmod 1777 $TARGET_DIR/tmp
|
|
@ -1,438 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Slackware remove package script
|
||||
#
|
||||
# Copyright 1994, 1995, 1998 Patrick Volkerding, Moorhead, Minnesota USA
|
||||
# Copyright 2001, Slackware Linux, Inc., Concord, CA USA
|
||||
# Copyright 2009, 2015, 2016, 2018 Patrick J. Volkerding, Sebeka, MN, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
# Tue Jun 5 20:04:45 UTC 2018
|
||||
# Use /var/lib/pkgtools for the package database, not /var/log.
|
||||
# Logs of the removed packages and scripts will remain in /var/log, but moved
|
||||
# into /var/log/pkgtools.
|
||||
#
|
||||
# Sun May 27 18:02:23 UTC 2018
|
||||
# Added --terse mode to print one line per removed package.
|
||||
#
|
||||
# Wed May 23 17:31:23 UTC 2018
|
||||
# Use file locking to prevent more than one copy of ldconfig from running at
|
||||
# a time.
|
||||
#
|
||||
# Thu Sep 15 17:46:28 UTC 2016 <volkerdi>
|
||||
# If removepkg is called with a short package name (no -$VERSION-$ARCH-$BUILD),
|
||||
# remove the most recently installed matching package, not the oldest one.
|
||||
#
|
||||
# Thu Sep 15 08:09:01 BST 2016 <mozes>
|
||||
# - Handle finding >1 match for a package. Thanks to SeB on LQ for the feedback.
|
||||
#
|
||||
# Wed Sep 14 20:44:00 BST 2016 <mozes>
|
||||
# - Modify package_name function to cater for package file names that contain
|
||||
# >=4 hyphens.
|
||||
# Thanks to coralfang on LQ for the report and to Jim Hawkins for the patch.
|
||||
# - Modified to handle packages that contain file names with backslashes
|
||||
# Thanks to aaazen on LQ for the report and the patch.
|
||||
#
|
||||
# Thu Sep 24 03:31:58 UTC 2015 <alphageek>
|
||||
# extract_links() sed adjusted to handle symlinks with spaces.
|
||||
#
|
||||
# Sun Sep 6 21:58:36 BST 2009
|
||||
# Replaced pkgbase & package_name code with 'sed' script by Jim Hawkins.
|
||||
#
|
||||
# Sat Apr 25 21:18:53 UTC 2009 (12.34567890b)
|
||||
# Converted to use new pkgbase() function to remove pathname and
|
||||
# valid package extensions.
|
||||
#
|
||||
# Revision 12.34567890 Sun Apr 5 20:59:32 CDT 2009 <volkerdi>
|
||||
# - Support packages with the extensions: .tgz, .tbz, .tlz, .txz
|
||||
#
|
||||
# Revision 1.9 Wed Oct 31 14:04:28 CDT 2007 volkerding
|
||||
# - Fix problem removing packages with a large number of fields.
|
||||
# Thanks to Niki Kovacs for noticing this, and to Piter Punk
|
||||
# for the patch.
|
||||
# - Use LC_ALL=C locale, which is much faster with "sort".
|
||||
# Thanks to Tsomi.
|
||||
# - Don't try to remove any package that starts with '-'. This
|
||||
# is not a proper package name (usually a typo), and results
|
||||
# in the package database being broken. Thanks to Jef Oliver.
|
||||
# - Patched cat_except() to allow the last Slackware package on
|
||||
# a partition to be removed (using ROOT=, of course)
|
||||
# Thanks to Selkfoster for the patch, and to everyone else who
|
||||
# proposed solutions before. This issue really wasn't given
|
||||
# the highest priority before, but I figured while I'm in here...
|
||||
#
|
||||
# Revision 1.8 Thu Nov 22 14:00:13 PST 2001 volkerding Rel $
|
||||
# - Move $TMP underneath $ROOT
|
||||
# - Understand the idea of a base package name, so that packages
|
||||
# can be removed with any of these notations:
|
||||
# removepkg foo-1.0-i386-1.tgz
|
||||
# removepkg foo-1.0-i386-1
|
||||
# removepkg foo.tgz
|
||||
# removepkg foo
|
||||
#
|
||||
# Revision 1.7 2001/03/30 12:36:28 volkerding
|
||||
# - Strip extra ".tgz" from input names.
|
||||
#
|
||||
# Revision 1.6 1999/03/25 18:26:41 volkerding
|
||||
# - Use external $ROOT variable, like installpkg.
|
||||
#
|
||||
# Revision 1.5.1 1998/03/18 15:37:28 volkerding
|
||||
# - Since removepkg is always run by root, the temp directory has been
|
||||
# moved from /tmp to a private directory to avoid symlink attacks from
|
||||
# malicious users.
|
||||
#
|
||||
# Revision 1.5 1997/06/26 12:09:53 franke
|
||||
# - Fixed old bug in TRIGGER regex setting
|
||||
# - -preserve/-copy options now preserve non-unique files
|
||||
# and empty directories also
|
||||
#
|
||||
# Revision 1.4 1997/06/09 13:21:36 franke
|
||||
# - Package file preserve (-preserve, -copy) added.
|
||||
# - Don't execute "rm -rf" lines from doinst.sh, removing links explicit.
|
||||
# - Warning on no longer existing files added.
|
||||
# - Warning on files changed after package installation added.
|
||||
# - Intermediate file preserve (-keep) added.
|
||||
# - Check for required files/links now done on a combined list.
|
||||
# - Write access to /var/log/{packages,scripts} no longer necessary for -warn.
|
||||
#
|
||||
# Revision 1.3 1997/06/08 13:03:05 franke
|
||||
# Merged with revision 1.1.1.1
|
||||
#
|
||||
# Revision 1.2 1996/06/01 20:04:26 franke
|
||||
# Delete empty directories & formated manual pages added
|
||||
#
|
||||
# Revision 1.1.1.1 1995/12/18 21:20:42 volkerding
|
||||
# Original Version from Slackware 3.1
|
||||
#
|
||||
# Revision 1.1 1995/06/05 22:49:11 volkerding
|
||||
# Original Version from Slackware 3.0
|
||||
#
|
||||
|
||||
# Needed to find package names within the 'remove_packages' function:
|
||||
shopt -s extglob
|
||||
|
||||
# Return a package name that has been stripped of the dirname portion
|
||||
# and any of the valid extensions (only):
|
||||
pkgbase() {
|
||||
# basename + strip extensions .tbz, .tgz, .tlz and .txz
|
||||
echo "$1" | sed 's?.*/??;s/\.t[bglx]z$//'
|
||||
}
|
||||
|
||||
# This makes "sort" run much faster:
|
||||
export LC_ALL=C
|
||||
|
||||
# Set the prefix for the package database directories (packages, scripts).
|
||||
ADM_DIR="$ROOT/var/lib/pkgtools"
|
||||
|
||||
# Set the prefix for the removed packages/scripts log files:
|
||||
LOG_DIR="$ROOT/var/log/pkgtools"
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=$ADM_DIR/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP # no need to leave it open
|
||||
fi
|
||||
PRES_DIR=$TMP/preserved_packages
|
||||
|
||||
# Lock directory for ldconfig... share it with installpkg so that upgradepkg
|
||||
# becomes properly ldconfig-locked, too.
|
||||
INSTLOCKDIR=${INSTLOCKDIR:-/run/lock/pkgtools}
|
||||
if [ ! -d $INSTLOCKDIR ]; then
|
||||
mkdir -p $INSTLOCKDIR
|
||||
fi
|
||||
|
||||
# This simple cat_except() should be used on the installer,
|
||||
# since the busybox "find" can't handle the complex find
|
||||
# syntax:
|
||||
#cat_except() {
|
||||
# ( cd "$1" && cat $(ls * | sed "/^$2\$/d"))
|
||||
#}
|
||||
|
||||
# This version of cat_except() allows the last package to be
|
||||
# removed when ROOT= is used:
|
||||
cat_except() {
|
||||
( cd "$1" && \
|
||||
if [ $(find . -type f -maxdepth 1 2> /dev/null | wc -l) -ne 1 ]; then
|
||||
cat $(find . -type f -maxdepth 1 2> /dev/null | grep -v "$2") 2> /dev/null
|
||||
fi
|
||||
)
|
||||
}
|
||||
|
||||
extract_links() {
|
||||
sed -n 's,^[ ]*( [ ]*cd[ ]* \(.*\) [ ]*; [ ]*rm [ ]*-rf[ ]* \(.*\) [ ]*)[ ]*$,\1/\2,p'
|
||||
}
|
||||
|
||||
preserve_file() {
|
||||
if [ "$PRESERVE" = "true" ]; then
|
||||
F="$(basename "$1")"
|
||||
D="$(dirname "$1")"
|
||||
if [ ! -d "$PRES_DIR/$PKGNAME/$D" ]; then
|
||||
mkdir -p "$PRES_DIR/$PKGNAME/$D" || return 1
|
||||
fi
|
||||
cp -p "$ROOT/$D/$F" "$PRES_DIR/$PKGNAME/$D" || return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
preserve_dir() {
|
||||
if [ "$PRESERVE" = "true" ]; then
|
||||
if [ ! -d "$PRES_DIR/$PKGNAME/$1" ]; then
|
||||
mkdir -p "$PRES_DIR/$PKGNAME/$1" || return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
keep_files() {
|
||||
while read FILE ; do
|
||||
if [ ! -d "$ROOT/$FILE" ]; then
|
||||
if [ -r "$ROOT/$FILE" ]; then
|
||||
! [ $TERSE ] && echo " --> $ROOT/$FILE was found in another package. Skipping."
|
||||
preserve_file "$FILE"
|
||||
else
|
||||
if [ "$(echo $FILE | cut -b1-8)" != "install/" ]; then
|
||||
! [ $TERSE ] && echo "WARNING: Nonexistent $ROOT/$FILE was found in another package. Skipping."
|
||||
fi
|
||||
fi
|
||||
else
|
||||
preserve_dir "$FILE"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
keep_links() {
|
||||
while read LINK ; do
|
||||
if [ -L "$ROOT/$LINK" ]; then
|
||||
! [ $TERSE ] && echo " --> $ROOT/$LINK (symlink) was found in another package. Skipping."
|
||||
else
|
||||
! [ $TERSE ] && echo "WARNING: Nonexistent $ROOT/$LINK (symlink) was found in another package. Skipping."
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
delete_files() {
|
||||
local unset LC_ALL # Locally (within this delete_files function) allow handling of backslashes
|
||||
while read -r AFILE ; do # do not expand backslashes on read
|
||||
FILE=$(printf "%b" "$AFILE") # unescape octal characters
|
||||
if [ ! -d "$ROOT/$FILE" ]; then
|
||||
if [ -r "$ROOT/$FILE" ]; then
|
||||
if [ "$ROOT/$FILE" -nt "$ADM_DIR/packages/$PKGNAME" ]; then
|
||||
! [ $TERSE ] && echo "WARNING: $ROOT/$FILE changed after package installation."
|
||||
fi
|
||||
if [ ! "$WARN" = "true" ]; then
|
||||
! [ $TERSE ] && echo " --> Deleting $ROOT/$FILE"
|
||||
preserve_file "$FILE" && rm -f "$ROOT/$FILE"
|
||||
else
|
||||
! [ $TERSE ] && echo " --> $ROOT/$FILE would be deleted"
|
||||
preserve_file "$FILE"
|
||||
fi
|
||||
else
|
||||
! [ $TERSE ] && echo " --> $ROOT/$FILE no longer exists. Skipping."
|
||||
fi
|
||||
else
|
||||
preserve_dir "$FILE"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
delete_links() {
|
||||
while read LINK ; do
|
||||
if [ -L "$ROOT/$LINK" ]; then
|
||||
if [ ! "$WARN" = "true" ]; then
|
||||
! [ $TERSE ] && echo " --> Deleting symlink $ROOT/$LINK"
|
||||
rm -f "$ROOT/$LINK"
|
||||
else
|
||||
! [ $TERSE ] && echo " --> $ROOT/$LINK (symlink) would be deleted"
|
||||
fi
|
||||
else
|
||||
! [ $TERSE ] && echo " --> $ROOT/$LINK (symlink) no longer exists. Skipping."
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
delete_dirs() {
|
||||
sort -r | \
|
||||
while read DIR ; do
|
||||
if [ -d "$ROOT/$DIR" ]; then
|
||||
if [ ! "$WARN" = "true" ]; then
|
||||
if [ $(ls -a "$ROOT/$DIR" | wc -l) -eq 2 ]; then
|
||||
! [ $TERSE ] && echo " --> Deleting empty directory $ROOT/$DIR"
|
||||
rmdir "$ROOT/$DIR"
|
||||
else
|
||||
! [ $TERSE ] && echo "WARNING: Unique directory $ROOT/$DIR contains new files"
|
||||
fi
|
||||
else
|
||||
! [ $TERSE ] && echo " --> $ROOT/$DIR (dir) would be deleted if empty"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
delete_cats() {
|
||||
sed -n 's,/man\(./[^/]*$\),/cat\1,p' | \
|
||||
while read FILE ; do
|
||||
if [ -f "$ROOT/$FILE" ]; then
|
||||
if [ ! "$WARN" = "true" ]; then
|
||||
! [ $TERSE ] && echo " --> Deleting $ROOT/$FILE (fmt man page)"
|
||||
rm -f $ROOT/$FILE
|
||||
else
|
||||
! [ $TERSE ] && echo " --> $ROOT/$FILE (fmt man page) would be deleted"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Conversion to 'comm' utility by Mark Wisdom.
|
||||
# is pretty nifty! :^)
|
||||
remove_packages() {
|
||||
for PKGLIST in $*
|
||||
do
|
||||
PKGNAME=$(pkgbase $PKGLIST)
|
||||
# If we don't have a package match here, then we will attempt to find
|
||||
# a package using the long name format (name-version-arch-build) for
|
||||
# which the base package name was given. On a properly-managed machine,
|
||||
# there should only be one package installed with a given basename, but
|
||||
# we don't enforce this policy. If there's more than one, only one will
|
||||
# be removed. If you want to remove them all, you'll need to run
|
||||
# removepkg again until it removes all the same-named packages.
|
||||
if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then
|
||||
# Short name not found - finally try looking for full name - e.g. foo-1.0-arm-1
|
||||
pushd $ADM_DIR/packages > /dev/null
|
||||
# Don't set PKGNAME if there are no matches:
|
||||
if [ ! "$( ls -1 $PKGNAME-+([^-])-+([^-])-+([^-]) 2>/dev/null | wc -l )" = "0" ]; then
|
||||
# If there is more than one package with the same name, set PKGNAME to the
|
||||
# most recently installed version. This does not affect the behavior of
|
||||
# upgradepkg, which always removes all other existing versions of the
|
||||
# same package.
|
||||
PKGNAME=$( ls -1t $PKGNAME-+([^-])-+([^-])-+([^-]) 2> /dev/null | head -n1 )
|
||||
fi
|
||||
popd > /dev/null
|
||||
fi
|
||||
|
||||
if [ -r $ADM_DIR/packages/$PKGNAME ]; then
|
||||
if [ ! "$WARN" = true ]; then
|
||||
echo "Removing package: $(basename $ADM_DIR/packages/$PKGNAME)"
|
||||
fi
|
||||
if fgrep "./" $ADM_DIR/packages/$PKGNAME 1> /dev/null 2>&1; then
|
||||
TRIGGER="^\.\/"
|
||||
else
|
||||
TRIGGER="FILE LIST:"
|
||||
fi
|
||||
if [ ! "$WARN" = true ]; then
|
||||
! [ $TERSE ] && echo "Removing files:"
|
||||
fi
|
||||
sed -n "/$TRIGGER/,/^$/p" < $ADM_DIR/packages/$PKGNAME | \
|
||||
fgrep -v "FILE LIST:" | sort -u > $TMP/delete_list$$
|
||||
# Pat's new-new && improved pre-removal routine.
|
||||
cat_except $ADM_DIR/packages $PKGNAME | sort -u > $TMP/required_list$$
|
||||
if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
|
||||
extract_links < $ADM_DIR/scripts/$PKGNAME | sort -u > $TMP/del_link_list$$
|
||||
cat_except $ADM_DIR/scripts $PKGNAME | extract_links | \
|
||||
sort -u > $TMP/required_links$$
|
||||
mv $TMP/required_list$$ $TMP/required_files$$
|
||||
sort -u $TMP/required_links$$ $TMP/required_files$$ > $TMP/required_list$$
|
||||
comm -12 $TMP/del_link_list$$ $TMP/required_list$$ | keep_links
|
||||
comm -23 $TMP/del_link_list$$ $TMP/required_list$$ | delete_links
|
||||
else
|
||||
cat $ADM_DIR/scripts/* 2> /dev/null | extract_links | \
|
||||
sort -u > $TMP/required_links$$
|
||||
mv $TMP/required_list$$ $TMP/required_files$$
|
||||
sort -u $TMP/required_links$$ $TMP/required_files$$ >$TMP/required_list$$
|
||||
fi
|
||||
comm -12 $TMP/delete_list$$ $TMP/required_list$$ | keep_files
|
||||
comm -23 $TMP/delete_list$$ $TMP/required_list$$ > $TMP/uniq_list$$
|
||||
delete_files < $TMP/uniq_list$$
|
||||
delete_dirs < $TMP/uniq_list$$
|
||||
delete_cats < $TMP/uniq_list$$
|
||||
if [ ! "$KEEP" = "true" ]; then
|
||||
rm -f $TMP/delete_list$$ $TMP/required_files$$ $TMP/uniq_list$$
|
||||
rm -f $TMP/del_link_list$$ $TMP/required_links$$ $TMP/required_list$$
|
||||
fi
|
||||
if [ "$PRESERVE" = "true" ]; then
|
||||
if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
|
||||
if [ ! -d "$PRES_DIR/$PKGNAME/install" ]; then
|
||||
mkdir -p "$PRES_DIR/$PKGNAME/install"
|
||||
fi
|
||||
cp -p $ADM_DIR/scripts/$PKGNAME $PRES_DIR/$PKGNAME/install/doinst.sh
|
||||
fi
|
||||
fi
|
||||
if [ ! "$WARN" = "true" ]; then
|
||||
# We won't assume that anything in /var/log can be trusted to remain there,
|
||||
# so we'll remake the directories and symlinks first:
|
||||
mkdir -p $LOG_DIR/removed_packages $LOG_DIR/removed_scripts
|
||||
for symlink in removed_packages removed_scripts ; do
|
||||
if [ ! -L $LOG_DIR/../$symlink ]; then
|
||||
rm -rf $LOG_DIR/../$symlink
|
||||
( cd $LOG_DIR/.. ; ln -sf pkgtools/$symlink . )
|
||||
fi
|
||||
done
|
||||
# Now that we know we have log directories, move the files:
|
||||
mv $ADM_DIR/packages/$PKGNAME $LOG_DIR/removed_packages
|
||||
if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
|
||||
mv $ADM_DIR/scripts/$PKGNAME $LOG_DIR/removed_scripts
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "No such package: $(basename $ADM_DIR/packages/$PKGNAME). Can't remove."
|
||||
fi
|
||||
# In the case where a library and symlink are removed but an earlier version
|
||||
# remains on the machine, this will link it up and save potential problems:
|
||||
if [ "$ROOT" = "" ] && [ -x /sbin/ldconfig ]; then
|
||||
( flock 9 || exit 11
|
||||
/sbin/ldconfig 2> /dev/null
|
||||
) 9> $INSTLOCKDIR/ldconfig.lock
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if [ "$#" = "0" ]; then
|
||||
echo "Usage: $(basename $0) [--copy] [--keep] [--preserve] [--terse] [--warn] packagename ..."; exit 1
|
||||
fi
|
||||
|
||||
while : ; do
|
||||
case "$1" in
|
||||
-copy | --copy) WARN=true; PRESERVE=true; shift;;
|
||||
-keep | --keep) KEEP=true; shift;;
|
||||
-preserve | --preserve) PRESERVE=true; shift;;
|
||||
-terse | --terse) TERSE=0; shift;;
|
||||
-warn | --warn) WARN=true; shift;;
|
||||
-* | --*) echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1;;
|
||||
*) break
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$WARN" = "true" ]; then
|
||||
unset TERSE
|
||||
echo "Only warning... not actually removing any files."
|
||||
if [ "$PRESERVE" = "true" ]; then
|
||||
echo "Package contents is copied to $PRES_DIR."
|
||||
fi
|
||||
echo "Here's what would be removed (and left behind) if you"
|
||||
echo "removed the package(s):"
|
||||
echo
|
||||
else
|
||||
if [ "$PRESERVE" = "true" ]; then
|
||||
echo "Package contents is copied to $PRES_DIR."
|
||||
fi
|
||||
fi
|
||||
|
||||
remove_packages $*
|
|
@ -1,5 +0,0 @@
|
|||
# Install the bootdisk or CD-ROM's Linux kernel:
|
||||
#BLURB="Install a Linux kernel from a bootdisk"
|
||||
if [ -x /usr/lib/setup/SeTkernel ]; then
|
||||
. /usr/lib/setup/SeTkernel
|
||||
fi
|
|
@ -1,267 +0,0 @@
|
|||
#!/bin/sh
|
||||
#BLURB="Create a USB Linux boot stick"
|
||||
if [ -r /usr/lib/setup/setup ]; then
|
||||
RDIR=/dev/tty4
|
||||
else
|
||||
RDIR=/dev/null
|
||||
fi
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
fi
|
||||
if [ -z "$1" ]; then
|
||||
T_PX=/
|
||||
else
|
||||
T_PX="$1"
|
||||
fi
|
||||
if [ -z "$2" ]; then
|
||||
ROOT_DEVICE=$(mount | head -n 1 | cut -f 1 -d ' ')
|
||||
else
|
||||
ROOT_DEVICE="$2"
|
||||
fi
|
||||
|
||||
if [ -r $T_PX/usr/share/syslinux/mbr.bin ]; then
|
||||
MBR_BIN=$T_PX/usr/share/syslinux/mbr.bin
|
||||
elif [ -r /usr/share/syslinux/mbr.bin ]; then
|
||||
MBR_BIN=/usr/share/syslinux/mbr.bin
|
||||
else
|
||||
dialog --title "ERROR: USB BOOT STICK NOT CREATED" --msgbox \
|
||||
"Master Boot Record file mbr.bin not found. This script requires that the syslinux package is installed." 6 60
|
||||
exit
|
||||
fi
|
||||
|
||||
while [ 0 ]; do # the bootdisk menu loop
|
||||
# Run "rescan-scsi-bus -l" to get an up to date overview of devices:
|
||||
/sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR
|
||||
# Get a list of removable block devices before the USB stick is inserted:
|
||||
echo "" > $TMP/remov_prior
|
||||
for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do
|
||||
[ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \
|
||||
&& echo $BDEV >> $TMP/remov_prior
|
||||
done
|
||||
if [ "$T_PX" = "/" ]; then
|
||||
DEFAULTITEM="Create"
|
||||
else
|
||||
DEFAULTITEM="Skip"
|
||||
fi
|
||||
dialog --title "MAKE USB FLASH BOOT" --default-item "$DEFAULTITEM" --menu \
|
||||
"If your computer supports booting from a USB device, it is recommended that you make \
|
||||
a USB boot stick for your system at this time. It will boot your computer straight \
|
||||
into the root filesystem on $ROOT_DEVICE. \n\
|
||||
\n\
|
||||
Please insert a USB flash memory stick and then press ENTER to create a boot stick. \n\
|
||||
\n\
|
||||
WARNING! The existing contents of the USB stick will be erased. \n\
|
||||
" 18 70 2 \
|
||||
"Create" "Make a USB Linux boot stick" \
|
||||
"Skip" "Skip making a USB boot stick" \
|
||||
2> $TMP/return
|
||||
REPLY=`cat $TMP/return`
|
||||
rm -f $TMP/return
|
||||
if [ "$REPLY" = "Create" ]; then
|
||||
# Run "rescan-scsi-bus -l" to discover our USB stick if needed:
|
||||
/sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR
|
||||
# Get a list of removable block devices after the USB stick is inserted:
|
||||
echo "" > $TMP/remov_after
|
||||
for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do
|
||||
[ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \
|
||||
&& echo $BDEV >> $TMP/remov_after
|
||||
done
|
||||
ADDED=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+')
|
||||
REMVD=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+')
|
||||
if [ -n "$ADDED" ] ; then STICK=$ADDED ; else STICK="" ; fi
|
||||
rm $TMP/remov_prior $TMP/remov_after
|
||||
if [ ! -n "$STICK" ]; then
|
||||
dialog --title "NO NEW DEVICE DETECTED" --ok-label Restart --msgbox \
|
||||
"No new USB device was detected.
|
||||
If you had already inserted your USB stick, please remove it now. \
|
||||
Then select 'Restart'." 7 70
|
||||
continue
|
||||
else
|
||||
VENDOR="Vendor : $(cat /sys/block/$STICK/device/vendor)"
|
||||
MODEL="Model : $(cat /sys/block/$STICK/device/model)"
|
||||
SIZE="Size : $(( $(cat /sys/block/$STICK/size) / 2048)) MB"
|
||||
dialog --title "NEW DEVICE DETECTED" --yesno \
|
||||
"A new USB device '/dev/$STICK' was detected with specifications:
|
||||
|
||||
-- $VENDOR
|
||||
-- $MODEL
|
||||
-- $SIZE
|
||||
|
||||
If this is the USB stick to use, select 'Yes',
|
||||
otherwise select 'No'." 12 70
|
||||
if [ $? -eq 1 ]; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
dialog --title "CREATING USB BOOT STICK" --infobox "Creating SYSLINUX bootdisk for \
|
||||
$ROOT_DEVICE on /dev/$STICK." 3 64
|
||||
# Create a 16M partition with FAT16. This should be large enough for any kernel (for now).
|
||||
PARTSIZE="+16384K"
|
||||
# Zero out master boot record and then initialize it with one bootable dos partition
|
||||
dd if=/dev/zero of=/dev/$STICK bs=512 count=1 1> $RDIR 2> $RDIR
|
||||
echo "PARTSIZE=$PARTSIZE" 1> $RDIR
|
||||
fdisk /dev/$STICK << EOF 1> $RDIR 2> $RDIR
|
||||
n
|
||||
p
|
||||
1
|
||||
2048
|
||||
$PARTSIZE
|
||||
t 1
|
||||
6
|
||||
a
|
||||
w
|
||||
EOF
|
||||
if [ -x /sbin/mkdosfs ]; then
|
||||
/sbin/mkdosfs -I -n USBSLACK -F 16 /dev/${STICK}1 1> $RDIR 2> $RDIR
|
||||
else
|
||||
chroot $T_PX /sbin/mkdosfs -I -n USBSLACK -F 16 /dev/${STICK}1 1> $RDIR 2> $RDIR
|
||||
fi
|
||||
sync
|
||||
# install syslinux
|
||||
if which syslinux-nomtools 1> $RDIR 2> $RDIR ; then
|
||||
syslinux-nomtools -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR
|
||||
elif which strace 1> $RDIR 2> $RDIR ; then
|
||||
# There is a race condition between udev >= 214 and mtools which causes
|
||||
# the regular version of syslinux to fail when installing to USB, but
|
||||
# strace changes the timing just enough that it usually works:
|
||||
strace syslinux -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR
|
||||
else
|
||||
# This might work when the issues with mtools and udev are addressed,
|
||||
# or if syslinux is eventually able to work around them.
|
||||
syslinux -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR
|
||||
fi
|
||||
# make the device bootable:
|
||||
echo "dd if=$MBR_BIN of=/dev/$STICK" 1> $RDIR 2> $RDIR
|
||||
dd if=$MBR_BIN of=/dev/$STICK 1> $RDIR 2> $RDIR
|
||||
sync
|
||||
# mount the device and write some configuration files
|
||||
if [ ! -d $TMP/bootdisk ]; then
|
||||
mkdir $TMP/bootdisk 2> $RDIR
|
||||
fi
|
||||
mount -t vfat /dev/${STICK}1 $TMP/bootdisk 1> $RDIR 2> $RDIR
|
||||
if [ -r $T_PX/boot/vmlinuz ]; then
|
||||
cp $T_PX/boot/vmlinuz $TMP/bootdisk/vmlinuz 1> $RDIR 2> $RDIR
|
||||
elif [ -r $T_PX/vmlinuz ]; then
|
||||
cp $T_PX/vmlinuz $TMP/bootdisk/vmlinuz 1> $RDIR 2> $RDIR
|
||||
fi
|
||||
cat << EOF > $TMP/bootdisk/message.txt 2> $RDIR
|
||||
|
||||
Welcome to the 09Slackware07 Linux custom USB boot stick!
|
||||
|
||||
By default, this stick boots a root Linux partition on $ROOT_DEVICE when you
|
||||
hit ENTER. If you'd like to boot some other partition, use a command like
|
||||
this on the prompt below:
|
||||
|
||||
mount root=/dev/sda1 ro
|
||||
|
||||
Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
|
||||
the partition should be initially mounted as read-only. If you wish to mount
|
||||
the partition read-write, use "rw" instead. To set the video console mode,
|
||||
use the vga= parameter (press F1 to see a table). You may also add any other
|
||||
kernel parameters you might need depending on your hardware, and which
|
||||
drivers are included in your kernel.
|
||||
|
||||
EOF
|
||||
cat << EOF > $TMP/bootdisk/syslinux.cfg 2> $RDIR
|
||||
default vmlinuz root=$ROOT_DEVICE vga=normal ro
|
||||
prompt 1
|
||||
timeout 6000
|
||||
display message.txt
|
||||
F1 f1.txt
|
||||
F2 message.txt
|
||||
#F3 f3.txt
|
||||
#F4 f4.txt
|
||||
#F5 f5.txt
|
||||
#F6 f6.txt
|
||||
#F7 f7.txt
|
||||
label mount
|
||||
kernel vmlinuz
|
||||
append root=$ROOT_DEVICE vga=normal ro
|
||||
EOF
|
||||
cat << EOF > $TMP/bootdisk/f1.txt 2> $RDIR
|
||||
STANDARD MODES:
|
||||
To make the kernel prompt for standard video modes use: vga=ask
|
||||
|
||||
FRAMEBUFFER MODES:
|
||||
To get the kernel to start in VESA framebuffer mode, you need to pass it
|
||||
a vga= init string on the "boot:" prompt. Here's a table:
|
||||
|
||||
Colors 640x480 800x600 1024x768 1280x1024 1600x1200
|
||||
--------+---------------------------------------------
|
||||
256 | 769 771 773 775 796
|
||||
32,768 | 784 787 790 793 797
|
||||
65,536 | 785 788 791 794 798
|
||||
16.8M | 786 789 792 795 799
|
||||
|
||||
...such as this for 1024x768x64k:
|
||||
vga=791
|
||||
|
||||
F2 returns to the previous page.
|
||||
|
||||
EOF
|
||||
if [ "$(uname -m)" == "x86_64" ]; then # also install an EFI bootloader
|
||||
mkdir -p $TMP/bootdisk/EFI/BOOT 1> $RDIR 2> $RDIR
|
||||
cp $T_PX/boot/elilo-x86_64.efi $TMP/bootdisk/EFI/BOOT/BOOTX64.EFI 1> $RDIR 2> $RDIR
|
||||
cat << EOF > $TMP/bootdisk/EFI/BOOT/message.txt 2> $RDIR
|
||||
|
||||
Welcome to the Slackware Linux custom USB boot stick!
|
||||
|
||||
By default, this stick boots a root Linux partition on $ROOT_DEVICE when you
|
||||
hit ENTER. If you'd like to boot some other partition, use a command like
|
||||
this on the prompt below:
|
||||
|
||||
huge.s root=/dev/sda1 ro
|
||||
|
||||
Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
|
||||
the partition should be initially mounted as read-only. If you wish to mount
|
||||
the partition read-write, use "rw" instead. You may also add any other
|
||||
kernel parameters you might need depending on your hardware, and which
|
||||
drivers are included in your kernel.
|
||||
|
||||
Hit ENTER to boot:
|
||||
|
||||
EOF
|
||||
cat << EOF > $TMP/bootdisk/EFI/BOOT/elilo.conf 2> $RDIR
|
||||
chooser=simple
|
||||
message=message.txt
|
||||
delay=300
|
||||
timeout=300
|
||||
#
|
||||
image=/vmlinuz
|
||||
label=huge.s
|
||||
read-only
|
||||
append="root=$ROOT_DEVICE vga=normal ro"
|
||||
EOF
|
||||
fi # end EFI installation
|
||||
sync
|
||||
umount /dev/${STICK}1
|
||||
rm -r $TMP/bootdisk
|
||||
# Sometimes the nomtools version of syslinux will leave the volume mounted,
|
||||
# so umount again:
|
||||
umount /dev/${STICK}1 2> $RDIR
|
||||
if [ "$T_PX" = "/" ]; then
|
||||
dialog --title "USB BOOT STICK CREATED" --msgbox \
|
||||
"The USB boot stick has been successfully created on device /dev/$STICK." 6 60
|
||||
exit
|
||||
fi
|
||||
dialog --title "USB BOOT STICK CREATED" --ok-label Continue --cancel-label Create --menu \
|
||||
"The USB boot stick has been successfully created on device /dev/$STICK. If you would like to \
|
||||
create an additional boot stick, please select 'Create' and we'll go back and make another \
|
||||
one, otherwise select 'Continue' to continue configuring your system." 12 71 2 \
|
||||
"Continue" "Continue the configuration (done making boot sticks)" \
|
||||
"Create" "Make a spare Linux boot stick in /dev/$STICK" \
|
||||
2> $TMP/return
|
||||
REPLY=`cat $TMP/return`
|
||||
rm -f $TMP/return
|
||||
if [ "$REPLY" = "Create" ]; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
else # ! Create
|
||||
break
|
||||
fi
|
||||
done
|
|
@ -1,33 +0,0 @@
|
|||
#!/bin/sh
|
||||
#BLURB="Set a default browser link."
|
||||
# Sorry, this is not a full menu, and may not ever be.
|
||||
# It is trivial to find the htmllink symbolic link and
|
||||
# point it at the browser that you like. Besides,
|
||||
# this is not a Linux standard that could be locating
|
||||
# in any official document. It seems to have been
|
||||
# started without any consultation with other
|
||||
# distributions by <take a wild guess>, and now things
|
||||
# expect it to be there.
|
||||
#
|
||||
#
|
||||
# Note 1. Listing a browser doesn't mean we ship it.
|
||||
# Note 2. Complaints about our preferences or missing
|
||||
# browsers in the list will be considered.
|
||||
# Yell at Pat about it. ;-)
|
||||
|
||||
# There must be no link, or we assume the admin set it and
|
||||
# do nothing. Can you tell this Q+D script was written for
|
||||
# the initial installation?
|
||||
|
||||
for browser in firefox seamonkey konqueror galeon epiphany links lynx ; do
|
||||
if [ ! -e usr/bin/htmlview -a -x usr/bin/$browser ]; then
|
||||
cat << EOF > usr/bin/htmlview
|
||||
#!/bin/sh
|
||||
exec $browser "\$@"
|
||||
EOF
|
||||
fi
|
||||
done
|
||||
if [ -e usr/bin/htmlview ]; then
|
||||
chmod 755 usr/bin/htmlview
|
||||
fi
|
||||
|
|
@ -1,342 +0,0 @@
|
|||
#!/bin/sh
|
||||
#BLURB="Select/deselect system daemons (services)"
|
||||
TMP=/var/lib/pkgtools/setup/tmp
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
fi
|
||||
T_PX="$1"
|
||||
cd $T_PX
|
||||
rm -f $TMP/tmpscript
|
||||
|
||||
cat << EOF > $TMP/tmpscript
|
||||
dialog --title "CONFIRM STARTUP SERVICES TO RUN" --item-help --checklist \\
|
||||
"The selected services will be started at boot time. If you \\
|
||||
don't need them, you may unselect them to turn them off (which may improve \\
|
||||
overall system security). You may also choose to start services that are \\
|
||||
not run by default, but be aware that more services means less security. \\
|
||||
Use the spacebar to select or unselect the services you wish to run. \\
|
||||
Recommended choices have been preselected. \\
|
||||
Press the ENTER key when you are finished." \\
|
||||
20 75 7 \\
|
||||
EOF
|
||||
|
||||
if [ -r etc/rc.d/rc.atalk ]; then
|
||||
if [ -x etc/rc.d/rc.atalk ]; then
|
||||
RC_ATALK=on
|
||||
else
|
||||
RC_ATALK=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.atalk" "Netatalk Appletalk file/print server" $RC_ATALK "The Netatalk server is a file and print server for Macintosh networks." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.atd ]; then
|
||||
if [ -x etc/rc.d/rc.atd ]; then
|
||||
RC_ATD=on
|
||||
else
|
||||
RC_ATD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.atd" "Schedules jobs for later" $RC_ATD "The at daemon schedules jobs to be run at a specified time." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.bind ]; then
|
||||
if [ -x etc/rc.d/rc.bind ]; then
|
||||
RC_BIND=on
|
||||
else
|
||||
RC_BIND=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.bind" "BIND (Domain Name System) server" $RC_BIND "BIND (Berkeley Internet Name Domain) is a Domain Name System (DNS) server." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.crond ]; then
|
||||
if [ -x etc/rc.d/rc.crond ]; then
|
||||
RC_CROND=on
|
||||
else
|
||||
RC_CROND=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.crond" "Time based job scheduler" $RC_CROND "The cron daemon schedules jobs to run at fixed times, dates, or intervals." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.cups ]; then
|
||||
if [ -x etc/rc.d/rc.cups ]; then
|
||||
RC_CUPS=on
|
||||
else
|
||||
RC_CUPS=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.cups" "CUPS print server" $RC_CUPS "The Common UNIX Printing system (print spooler choice #1)." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.dnsmasq ]; then
|
||||
if [ -x etc/rc.d/rc.dnsmasq ]; then
|
||||
RC_DNSMASQ=on
|
||||
else
|
||||
RC_DNSMASQ=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.dnsmasq" "dnsmasq DHCP/DNS server" $RC_DNSMASQ "dnsmasq provides DNS and DHCP service to a LAN." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.dovecot ]; then
|
||||
if [ -x etc/rc.d/rc.dovecot ]; then
|
||||
RC_DOVECOT=on
|
||||
else
|
||||
RC_DOVECOT=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.dovecot" "Dovecot IMAP/POP3 server" $RC_DOVECOT "Dovecot provides remote mailbox access for email clients." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.fuse ]; then
|
||||
if [ -x etc/rc.d/rc.fuse ]; then
|
||||
RC_FUSE=on
|
||||
else
|
||||
RC_FUSE=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.fuse" "Filesystem in Userspace library" $RC_FUSE "FUSE is an interface to allow userspace programs to use filesystems." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.hald ]; then
|
||||
if [ -x etc/rc.d/rc.hald ]; then
|
||||
RC_HALD=on
|
||||
else
|
||||
RC_HALD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.hald" "Hardware Abstraction Layer" $RC_HALD "HAL makes access to CD/DVD drives and USB devices easier." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.hplip ]; then
|
||||
if [ -x etc/rc.d/rc.hplip ]; then
|
||||
RC_HPLIP=on
|
||||
else
|
||||
RC_HPLIP=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.hplip" "HP printer/scanner daemons" $RC_HPLIP "Programs used to run printers and scanners from Hewlett Packard." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.httpd ]; then
|
||||
if [ -x etc/rc.d/rc.httpd ]; then
|
||||
RC_HTTPD=on
|
||||
else
|
||||
RC_HTTPD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.httpd" "The Apache web server" $RC_HTTPD "Apache, the most widely used web server on the net." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.inetd ]; then
|
||||
if [ -x etc/rc.d/rc.inetd ]; then
|
||||
RC_INETD=on
|
||||
else
|
||||
RC_INETD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.inetd" "The BSD Inetd daemon" $RC_INETD "Inetd daemon (this allows: time, ftp, comsat, talk, finger, and auth)." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.ip_forward ]; then
|
||||
if [ -x etc/rc.d/rc.ip_forward ]; then
|
||||
RC_IP_FORWARD=on
|
||||
else
|
||||
RC_IP_FORWARD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.ip_forward" "Activate IP packet forwarding" $RC_IP_FORWARD "Packet forwarding allows your Linux machine to act as a router." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.lprng ]; then
|
||||
if [ -x etc/rc.d/rc.lprng ]; then
|
||||
RC_LPRNG=on
|
||||
else
|
||||
RC_LPRNG=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.lprng" "LPRng print server" $RC_LPRNG "The LPRng printing system (print spooler choice #2)." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.messagebus ]; then
|
||||
if [ -x etc/rc.d/rc.messagebus ]; then
|
||||
RC_MESSAGEBUS=on
|
||||
else
|
||||
RC_MESSAGEBUS=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.messagebus" "D-Bus system message bus" $RC_MESSAGEBUS "Used for interprocess communication and coordination." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.mysqld ]; then
|
||||
if [ -x etc/rc.d/rc.mysqld ]; then
|
||||
RC_MYSQLD=on
|
||||
else
|
||||
RC_MYSQLD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.mysqld" "The MySQL database server" $RC_MYSQLD "MySQL, an SQL-based relational database daemon." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.ntpd ]; then
|
||||
if [ -x etc/rc.d/rc.ntpd ]; then
|
||||
RC_NTPD=on
|
||||
else
|
||||
RC_NTPD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.ntpd" "The network time server" $RC_NTPD "NTP synchronizes your time to/from other NTP servers." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.pcmcia ]; then
|
||||
if [ -x etc/rc.d/rc.pcmcia ]; then
|
||||
RC_PCMCIA=on
|
||||
else
|
||||
RC_PCMCIA=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.pcmcia" "PCMCIA/Cardbus card services" $RC_PCMCIA "This supports PCMCIA or Cardbus cards used with laptops." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.postfix ]; then
|
||||
if [ -x etc/rc.d/rc.postfix ]; then
|
||||
RC_POSTFIX=on
|
||||
else
|
||||
RC_POSTFIX=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.postfix" "The Postfix mail server" $RC_POSTFIX "The Postfix server allows your machine to send and receive mail." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.rpc ]; then
|
||||
if [ -x etc/rc.d/rc.rpc ]; then
|
||||
RC_RPC=on
|
||||
else
|
||||
RC_RPC=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.rpc" "RPC (NFS) daemons" $RC_RPC "Needed to serve or mount NFS (Network File System) partitions." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.samba ]; then
|
||||
if [ -x etc/rc.d/rc.samba ]; then
|
||||
RC_SAMBA=on
|
||||
else
|
||||
RC_SAMBA=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.samba" "The Samba file/print server" $RC_SAMBA "Samba is a file and print server for Windows networks." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.saslauthd ]; then
|
||||
if [ -x etc/rc.d/rc.saslauthd ]; then
|
||||
RC_SASLAUTHD=on
|
||||
else
|
||||
RC_SASLAUTHD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.saslauthd" "The SASL authentication server" $RC_SASLAUTHD "SASL is an authentication method often used by mail servers." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.sendmail ]; then
|
||||
if [ -x etc/rc.d/rc.sendmail ]; then
|
||||
RC_SENDMAIL=on
|
||||
else
|
||||
RC_SENDMAIL=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.sendmail" "The Sendmail mail server" $RC_SENDMAIL "The Sendmail server allows your machine to send and receive mail." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.smartd ]; then
|
||||
if [ -x etc/rc.d/rc.smartd ]; then
|
||||
RC_SMARTD=on
|
||||
else
|
||||
RC_SMARTD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.smartd" "SMART monitoring daemon" $RC_SMARTD "The SMART daemon monitors your hard drives to help predict failures." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.snmpd ]; then
|
||||
if [ -x etc/rc.d/rc.snmpd ]; then
|
||||
RC_SNMPD=on
|
||||
else
|
||||
RC_SNMPD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.snmpd" "Net-SNMP daemon" $RC_SNMPD "SNMP daemon that receives and logs SNMP TRAP and INFORM messages." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.syslog ]; then
|
||||
if [ -x etc/rc.d/rc.syslog ]; then
|
||||
RC_SYSLOGD=on
|
||||
else
|
||||
RC_SYSLOGD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.syslog" "The Linux system logging utilities" $RC_SYSLOGD "The syslogd and klogd daemons log important messages under /var/log." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -r etc/rc.d/rc.sshd ]; then
|
||||
if [ -x etc/rc.d/rc.sshd ]; then
|
||||
RC_SSHD=on
|
||||
else
|
||||
RC_SSHD=off
|
||||
fi
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
"rc.sshd" "The SSHD (secure shell) daemon" $RC_SSHD "SSHD allows secure encrypted logins to your machine." \\
|
||||
EOF
|
||||
fi
|
||||
|
||||
cat << EOF >> $TMP/tmpscript
|
||||
2> $TMP/reply
|
||||
EOF
|
||||
|
||||
. $TMP/tmpscript
|
||||
|
||||
if [ ! $? = 0 ]; then
|
||||
rm -f $TMP/reply $TMP/tmpscript
|
||||
exit
|
||||
fi
|
||||
|
||||
for service in rc.atalk rc.atd rc.bind rc.crond rc.cups rc.dovecot rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.ntpd rc.pcmcia rc.postfix rc.rpc rc.samba rc.saslauthd rc.smartd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do
|
||||
if [ -f etc/rc.d/$service ]; then
|
||||
if grep -w $service $TMP/reply 1> /dev/null ; then
|
||||
chmod 755 etc/rc.d/$service
|
||||
else
|
||||
chmod 644 etc/rc.d/$service
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
rm -f $TMP/reply $TMP/tmpscript
|
||||
|
|
@ -1,417 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Copyright 1999 Patrick Volkerding, Moorhead, Minnesota, USA
|
||||
# Copyright 2001, 2002, 2003 Slackware Linux, Inc., Concord, California, USA
|
||||
# Copyright 2009, 2015 Patrick J. Volkerding, Sebeka, MN, USA
|
||||
# Copyright 2015 Michal Nazarewicz <mina86@mina86.com>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Mon Jun 4 21:17:58 UTC 2018
|
||||
# Use /var/lib/pkgtools, not /var/log.
|
||||
#
|
||||
# Thu May 24 20:23:55 UTC 2018
|
||||
# Added --terselength option to set the line length in --terse mode.
|
||||
# Use a lockfile to prevent output collisions in --terse mode.
|
||||
#
|
||||
# Wed May 23 03:35:28 UTC 2018
|
||||
# Added --terse, which limits screen output to one line per package.
|
||||
#
|
||||
# Sat 17 Jan 16:21:32 UTC 2015 mina86
|
||||
# Various optimisation mostly resolving around avoiding having to fork
|
||||
# and call cut, basename and other helper commands. Slight
|
||||
# refactoring of code calling removepkg.
|
||||
#
|
||||
# Sat Apr 25 21:18:53 UTC 2009
|
||||
# Support new compression types and package extensions.
|
||||
# Converted to use new pkgbase() function to remove pathname and
|
||||
# valid package extensions.
|
||||
#
|
||||
# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003
|
||||
#
|
||||
# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 volkerdi
|
||||
#
|
||||
# Rewritten to clean out _all_ old packages of a given basename, not just
|
||||
# the first one found, Thu Apr 4 01:01:05 PST 2002 volkerdi
|
||||
#
|
||||
# Modified to handle either old 8.3 or new package-version-arch-build.tgz
|
||||
# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi
|
||||
|
||||
# Return a package name that has been stripped of the dirname portion
|
||||
# and any of the valid extensions (only):
|
||||
pkgbase() {
|
||||
PKGRETURN=${1##*/}
|
||||
case "$PKGRETURN" in *.t[gblx]z)
|
||||
PKGRETURN=${PKGRETURN%.*}
|
||||
esac
|
||||
echo "$PKGRETURN"
|
||||
}
|
||||
|
||||
usage() {
|
||||
cat << EOF
|
||||
|
||||
Usage: upgradepkg [options] <newpackage> ...
|
||||
upgradepkg [options] <oldpackage%newpackage> ...
|
||||
|
||||
Upgrade, install, or reinstall Slackware packages (.tgz, .tbz, .tlz, .txz).
|
||||
|
||||
To operate on an alternate directory, such as /mnt:
|
||||
ROOT=/mnt upgradepkg package.txz
|
||||
|
||||
Options:
|
||||
--dry-run only display what would be done
|
||||
--install-new install new packages also
|
||||
--reinstall upgrade packages of the same version
|
||||
--terse display a single line for each package operation
|
||||
--terselength <length> maximum line length of terse output
|
||||
--verbose display all the gory details of the upgrade
|
||||
--help display this help
|
||||
|
||||
For more details see upgradepkg(8).
|
||||
EOF
|
||||
}
|
||||
|
||||
# Set the prefix for the package database directories (packages, scripts).
|
||||
ADM_DIR="$ROOT/var/lib/pkgtools"
|
||||
|
||||
# Make sure there's a proper temp directory:
|
||||
TMP=$ADM_DIR/setup/tmp
|
||||
# If the $TMP directory doesn't exist, create it:
|
||||
if [ ! -d $TMP ]; then
|
||||
mkdir -p $TMP
|
||||
chmod 700 $TMP # no need to leave it open
|
||||
fi
|
||||
|
||||
# This script expects an 022 umask:
|
||||
umask 022
|
||||
|
||||
# $ROOT defined?
|
||||
if [ -d "$ROOT" ]; then
|
||||
export ROOT
|
||||
else
|
||||
unset ROOT
|
||||
fi
|
||||
|
||||
# --help or no args?
|
||||
if [ "$1" = "" -o "$1" = "-help" -o "$1" = "--help" -o "$1" = "-?" ]; then
|
||||
usage;
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# Create a lockfile directory if it doesn't exist. We can use it to prevent
|
||||
# output line collisions in --terse mode.
|
||||
INSTLOCKDIR=${INSTLOCKDIR:-/run/lock/pkgtools}
|
||||
if [ ! -d $INSTLOCKDIR ]; then
|
||||
mkdir -p $INSTLOCKDIR
|
||||
fi
|
||||
|
||||
# Set default line length for terse mode:
|
||||
if tty -s && which tput 1> /dev/null 2> /dev/null ; then
|
||||
TERSELENGTH=$(tput cols)
|
||||
else
|
||||
TERSELENGTH=80
|
||||
fi
|
||||
|
||||
# Arg processing loop. These must come before any packages are listed.
|
||||
while [ 0 ]; do
|
||||
if [ "$1" = "-no-paranoia" -o "$1" = "--no-paranoia" ]; then
|
||||
# Enable --no-paranoia mode. This is so not-recommended that we're
|
||||
# not even going to document it. ;) If a file used to be directly
|
||||
# managed and now is moved into place, using --no-paranoia will cause
|
||||
# it to improperly disappear. It does slightly speed things up, though.
|
||||
# Don't use it.
|
||||
NOT_PARANOID="true"
|
||||
shift 1
|
||||
elif [ "$1" = "-install-new" -o "$1" = "--install-new" ]; then
|
||||
# Install packages that do not already have an installed version.
|
||||
# The usual default is to skip them.
|
||||
INSTALL_NEW="yes"
|
||||
shift 1
|
||||
elif [ "$1" = "-reinstall" -o "$1" = "--reinstall" ]; then
|
||||
# Reinstall packages even if the installed one is the same version.
|
||||
REINSTALL="true"
|
||||
shift 1
|
||||
elif [ "$1" = "-verbose" -o "$1" = "--verbose" -o "$1" = "-v" ]; then
|
||||
# We're adding a --verbose mode that doesn't filter removepkg as much
|
||||
VERBOSE="verbose"
|
||||
shift 1
|
||||
elif [ "$1" = "-dry-run" -o "$1" = "--dry-run" ]; then
|
||||
# Output a report about which packages would be installed or upgraded
|
||||
# but don't actually perform the upgrades.
|
||||
DRY_RUN="true"
|
||||
shift 1
|
||||
elif [ "$1" = "-terse" -o "$1" = "--terse" ]; then
|
||||
# Output one line per installed/upgraded package by calling installpkg
|
||||
# with --terse. Use TERSE=0 for true, so we can check with test.
|
||||
TERSE=0
|
||||
shift 1
|
||||
elif [ "$1" = "-terselength" -o "$1" = "--terselength" ]; then
|
||||
# Set line length in --terse mode:
|
||||
TERSELENGTH=$2
|
||||
shift 2
|
||||
else # no more args
|
||||
break;
|
||||
fi
|
||||
done # processing args
|
||||
|
||||
# A couple not-really-documented features to adjust the behavior of --terse
|
||||
# mode. These need to be used in addition to --terse, and passed in as
|
||||
# environment variables.
|
||||
# PLAINTERSE=0 (This outputs the standard terse line from installpkg, rather
|
||||
# than prefixing it with "Upgrading:" or "Installing:")
|
||||
# INFOBOX=0 (This outputs the installpkg --infobox instead of a terse line)
|
||||
|
||||
# Here's a function to figure out the package name from one of those
|
||||
# new long filenames. We'll need this to double check the name of the
|
||||
# old package.
|
||||
|
||||
package_name() {
|
||||
STRING=$(pkgbase "$1")
|
||||
case "$STRING" in
|
||||
*-*-*-*)
|
||||
# At least four segments, strip version arch and build and return name:
|
||||
echo "${STRING%-*-*-*}"
|
||||
# cruft for later ;)
|
||||
# BUILD=${STRING##*-}
|
||||
# STRING=${STRING%*-}
|
||||
# ARCH=${STRING##*-}
|
||||
# STRING=${STRING%*-}
|
||||
# VER=${STRING%*-}
|
||||
;;
|
||||
*)
|
||||
# Old style package name with one segment or we don't have four
|
||||
# segments: return the old-style (or out of spec) package name.
|
||||
echo $STRING
|
||||
esac
|
||||
}
|
||||
|
||||
ERRCODE=0
|
||||
|
||||
# Main processing loop:
|
||||
for ARG; do
|
||||
OLD=${ARG%'%'*} # first segment, = $ARG if no %
|
||||
NEW=${ARG#*'%'} # second segment, = $ARG if no %
|
||||
|
||||
# Simple package integrity check:
|
||||
if ! [ -f "$NEW" ]; then
|
||||
ERRCODE=4
|
||||
echo "Cannot install $NEW: file not found"
|
||||
continue;
|
||||
fi
|
||||
|
||||
# Figure out the names of the old and new packages:
|
||||
INCOMINGDIR=$(dirname $NEW)
|
||||
# These are the package names with the extension:
|
||||
NNAME=${NEW##*/}
|
||||
ONAME=${OLD##*/}
|
||||
# These are the package names without the extension:
|
||||
OLD=$(pkgbase $OLD)
|
||||
NEW=$(pkgbase $NEW)
|
||||
|
||||
# Make sure the extension is valid:
|
||||
if [ "$NNAME" = "$NEW" ]; then
|
||||
# We won't throw an ERRCODE for this, but the package is skipped:
|
||||
echo "Cannot install $OLD: invalid package extension"
|
||||
continue;
|
||||
fi
|
||||
|
||||
# Check and fix the old package name:
|
||||
SHORT="$(package_name $OLD)"
|
||||
if [ ! -r $ADM_DIR/packages/$OLD ]; then
|
||||
if ls $ADM_DIR/packages/$SHORT* 1> /dev/null 2> /dev/null ; then
|
||||
for installed_package in $ADM_DIR/packages/$SHORT* ; do
|
||||
if [ "$(package_name $installed_package)" = "$SHORT" ]; then # found one
|
||||
OLD="${installed_package##*/}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Test to see if both the old and new packages are where we expect them
|
||||
# to be - skip to the next package (or package pair) if anything's wrong:
|
||||
|
||||
if [ ! -r $ADM_DIR/packages/$OLD ]; then
|
||||
if [ ! "$INSTALL_NEW" = "yes" ]; then
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "$OLD would not be upgraded (no installed package named $SHORT)."
|
||||
else
|
||||
! [ $TERSE ] && echo
|
||||
echo "Error: there is no installed package named $OLD."
|
||||
! [ $TERSE ] && echo " (looking for $ADM_DIR/packages/$OLD)"
|
||||
! [ $TERSE ] && echo
|
||||
fi
|
||||
ERRCODE=1
|
||||
else # --install-new was given, so install the new package:
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "$NEW would be installed (new package)."
|
||||
else
|
||||
if [ $PLAINTERSE ]; then
|
||||
/sbin/installpkg --terse --terselength $TERSELENGTH $INCOMINGDIR/$NNAME
|
||||
elif [ $INFOBOX ]; then
|
||||
/sbin/installpkg --infobox $INCOMINGDIR/$NNAME
|
||||
elif [ $TERSE ]; then
|
||||
OUTPUTLINE="$(/sbin/installpkg --terse --terselength $(expr $TERSELENGTH - 12) $INCOMINGDIR/$NNAME)"
|
||||
( flock 9 || exit 11
|
||||
echo "Installing: ${OUTPUTLINE}"
|
||||
) 9> $INSTLOCKDIR/outputline.lock
|
||||
else
|
||||
cat << EOF
|
||||
|
||||
+==============================================================================
|
||||
| Installing new package $INCOMINGDIR/$NNAME
|
||||
+==============================================================================
|
||||
|
||||
EOF
|
||||
/sbin/installpkg $INCOMINGDIR/$NNAME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
continue;
|
||||
elif [ ! -r "$INCOMINGDIR/$NNAME" ]; then
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "$NEW incoming package not found (command line)."
|
||||
else
|
||||
! [ $TERSE ] && echo
|
||||
echo "Error: incoming package $INCOMINGDIR/$NNAME not found."
|
||||
! [ $TERSE ] && echo
|
||||
fi
|
||||
ERRCODE=1
|
||||
continue;
|
||||
fi
|
||||
|
||||
# Unless --reinstall was given, compare the package names
|
||||
# and skip any exact matches:
|
||||
if [ ! "$REINSTALL" = "true" ]; then
|
||||
if [ "$OLD" = "$NEW" ]; then
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo "$NEW would be skipped (already installed)."
|
||||
else
|
||||
if ! [ $TERSE ]; then
|
||||
cat << EOF
|
||||
|
||||
+==============================================================================
|
||||
| Skipping package $NEW (already installed)
|
||||
+==============================================================================
|
||||
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
continue;
|
||||
fi
|
||||
fi
|
||||
|
||||
# Showtime. Let's do the upgrade. First, we will rename all the
|
||||
# installed packages with this basename to make them easy to remove later:
|
||||
|
||||
TIMESTAMP=$(date +%Y-%m-%d,%T)
|
||||
SHORT="$(package_name $OLD)"
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
echo -n "$NEW would upgrade: "
|
||||
for installed_package in $ADM_DIR/packages/$SHORT* ; do
|
||||
if [ "$(package_name $installed_package)" = "$SHORT" ]; then
|
||||
echo -n "$(pkgbase $installed_package)"
|
||||
fi
|
||||
done
|
||||
echo
|
||||
continue
|
||||
fi
|
||||
for installed_package in $ADM_DIR/packages/$SHORT* ; do
|
||||
if [ "$(package_name $installed_package)" = "$SHORT" ]; then
|
||||
mv $installed_package ${installed_package}-upgraded-$TIMESTAMP
|
||||
fi
|
||||
done
|
||||
for installed_script in $ADM_DIR/scripts/$SHORT* ; do
|
||||
if [ "$(package_name $installed_script)" = "$SHORT" ]; then
|
||||
if [ -r $installed_script ]; then
|
||||
mv $installed_script ${installed_script}-upgraded-$TIMESTAMP
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Print a banner for the current upgrade:
|
||||
if ! [ $TERSE ]; then
|
||||
cat << EOF
|
||||
|
||||
+==============================================================================
|
||||
| Upgrading $OLD package using $INCOMINGDIR/$NNAME
|
||||
+==============================================================================
|
||||
EOF
|
||||
fi
|
||||
# Next, the new package is pre-installed:
|
||||
if [ "$VERBOSE" = "verbose" ]; then
|
||||
if ! [ $TERSE ]; then
|
||||
/sbin/installpkg $INCOMINGDIR/$NNAME
|
||||
RETCODE=$?
|
||||
else
|
||||
/sbin/installpkg $INCOMINGDIR/$NNAME 1> /dev/null
|
||||
RETCODE=$?
|
||||
fi
|
||||
else
|
||||
if [ $PLAINTERSE ]; then
|
||||
/sbin/installpkg --terse --terselength $TERSELENGTH $INCOMINGDIR/$NNAME
|
||||
elif [ $INFOBOX ]; then
|
||||
/sbin/installpkg --infobox $INCOMINGDIR/$NNAME
|
||||
elif [ $TERSE ]; then
|
||||
OUTPUTLINE="$(/sbin/installpkg --terse --terselength $(expr $TERSELENGTH - 12) $INCOMINGDIR/$NNAME)"
|
||||
RETCODE=$?
|
||||
( flock 9 || exit 11
|
||||
echo "Upgrading: ${OUTPUTLINE}"
|
||||
) 9> $INSTLOCKDIR/outputline.lock
|
||||
else
|
||||
echo "Pre-installing package $NEW..."
|
||||
/sbin/installpkg $INCOMINGDIR/$NNAME 1> /dev/null
|
||||
RETCODE=$?
|
||||
fi
|
||||
fi
|
||||
# Make sure that worked:
|
||||
if [ ! $RETCODE = 0 ]; then
|
||||
echo "ERROR: Package $INCOMINGDIR/$NNAME did not install"
|
||||
echo "correctly. You may need to reinstall your old package"
|
||||
echo "to avoid problems. Make sure the new package is not"
|
||||
echo "corrupted."
|
||||
sleep 15
|
||||
# Skip this package, but still try to proceed. Good luck...
|
||||
continue;
|
||||
fi
|
||||
# Now, the leftovers from the old package(s) can go. Pretty simple, huh? :)
|
||||
( flock 9 || exit 11
|
||||
for rempkg in "$ADM_DIR/packages/"*"-$TIMESTAMP"; do
|
||||
if [ "$VERBOSE" = "verbose" ]; then
|
||||
/sbin/removepkg "${rempkg##*/}"
|
||||
elif ! [ $TERSE ]; then
|
||||
/sbin/removepkg "${rempkg##*/}" | grep -v 'Skipping\.\|Removing files:'
|
||||
else
|
||||
/sbin/removepkg "${rempkg##*/}" > /dev/null
|
||||
fi
|
||||
done
|
||||
) 9> $INSTLOCKDIR/removepkg.lock
|
||||
# Again! Again!
|
||||
# Seriously, the reinstalling of a package can be crucial if any files
|
||||
# shift location, so we should always reinstall as the final step:
|
||||
if [ ! "$NOT_PARANOID" = "true" ]; then
|
||||
if ! [ $TERSE ]; then
|
||||
/sbin/installpkg $INCOMINGDIR/$NNAME
|
||||
else
|
||||
/sbin/installpkg $INCOMINGDIR/$NNAME 1> /dev/null
|
||||
fi
|
||||
fi
|
||||
! [ $TERSE ] && echo "Package $OLD upgraded with new package $INCOMINGDIR/$NNAME."
|
||||
ERRCODE=0
|
||||
done
|
||||
exit $ERRCODE
|
|
@ -1,19 +0,0 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||
# up the first '|' above the ':' following the base package name, and the '|' on
|
||||
# the right side marks the last column you can put a character in. You must make
|
||||
# exactly 11 lines for the formatting to be correct. It's also customary to
|
||||
# leave one space after the ':'.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
pkgtools: pkgtools (The Slackware package maintenance system)
|
||||
pkgtools:
|
||||
pkgtools: This package contains utilities for handling Slackware packages.
|
||||
pkgtools: Included are the command line utilities 'installpkg', 'removepkg',
|
||||
pkgtools: 'makepkg', 'explodepkg', and 'upgradepkg' that install, remove,
|
||||
pkgtools: build, examine, and upgrade software packages. Also included are
|
||||
pkgtools: 'pkgtool', a menu based program for installing packages, removing
|
||||
pkgtools: packages, or viewing the packages that are installed on the system,
|
||||
pkgtools: 'pkgdiff', a utility for comparing two packages, documentation (man
|
||||
pkgtools: pages), and a few other system admin scripts.
|
||||
pkgtools:
|
Loading…
Reference in a new issue