summaryrefslogtreecommitdiffstats
path: root/source/d/slacktrack
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2019-02-06 00:29:25 +0000
committer Eric Hameleers <alien@slackware.com>2019-02-06 08:59:42 +0100
commit05538a2b6dae06b52a4533f94999286b4c89a916 (patch)
tree3d459fe6cf48cbda01f31597eaf1ccd8a8ca4678 /source/d/slacktrack
parentd2c74e4a2e54d27d10eded3c422abf233dafdab8 (diff)
downloadcurrent-05538a2b6dae06b52a4533f94999286b4c89a916.tar.gz
current-05538a2b6dae06b52a4533f94999286b4c89a916.tar.xz
Wed Feb 6 00:29:25 UTC 201920190206002925
ap/linuxdoc-tools-0.9.73-x86_64-1.txz: Upgraded. Upgraded to gtk-doc-1.29. Upgraded to asciidoc-8.6.10. Upgraded to perl-XML-SAX-1.00. Thanks to Stuart Winter. d/meson-0.49.2-x86_64-1.txz: Upgraded. d/python-setuptools-40.8.0-x86_64-1.txz: Upgraded. d/slacktrack-2.19-x86_64-1.txz: Upgraded. Thanks to Stuart Winter. l/imagemagick-6.9.10_26-x86_64-1.txz: Upgraded. n/dovecot-2.3.4.1-x86_64-1.txz: Upgraded. This update addresses security issues: CVE-2019-3814: If imap/pop3/managesieve/submission client has trusted certificate with missing username field (ssl_cert_username_field), under some configurations Dovecot mistakenly trusts the username provided via authentication instead of failing. ssl_cert_username_field setting was ignored with external SMTP AUTH, because none of the MTAs (Postfix, Exim) currently send the cert_username field. This may have allowed users with trusted certificate to specify any username in the authentication. This bug didn't affect Dovecot's Submission service. For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-3814 (* Security fix *)
Diffstat (limited to 'source/d/slacktrack')
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/ChangeLog.slacktrack705
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/FAQ234
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/INSTALL9
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/OVERVIEW595
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_CHECKLIST244
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_URLS38
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/RELEASE_NOTES137
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/SLACKDTXT.examples103
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/SLACKTRACK.examples34
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/TODO65
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/USAGE8
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/WARNINGS38
-rw-r--r--source/d/slacktrack/slacktrack-project/docs/buildscript-examples/README19
-rw-r--r--source/d/slacktrack/slacktrack-project/ln-wrapper.c19
-rwxr-xr-xsource/d/slacktrack/slacktrack-project/man/man.build51
-rw-r--r--source/d/slacktrack/slacktrack-project/man/slackdtxt.pod205
-rw-r--r--source/d/slacktrack/slacktrack-project/man/slacktrack.pod949
-rwxr-xr-xsource/d/slacktrack/slacktrack-project/old_stuff/findy17
-rwxr-xr-xsource/d/slacktrack/slacktrack-project/scripts/slackdtxt312
-rwxr-xr-xsource/d/slacktrack/slacktrack-project/scripts/slacktrack1305
-rw-r--r--source/d/slacktrack/slacktrack-project/slack-desc21
-rwxr-xr-xsource/d/slacktrack/slacktrack-project/slacktrack.SlackBuild107
-rwxr-xr-xsource/d/slacktrack/slacktrack-project/tests/test-exclusion12
-rwxr-xr-xsource/d/slacktrack/slacktrack.SlackBuild4
24 files changed, 2 insertions, 5229 deletions
diff --git a/source/d/slacktrack/slacktrack-project/docs/ChangeLog.slacktrack b/source/d/slacktrack/slacktrack-project/docs/ChangeLog.slacktrack
deleted file mode 100644
index 1d656d175..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/ChangeLog.slacktrack
+++ /dev/null
@@ -1,705 +0,0 @@
-##############################################################################
-# Document: ChangeLog.slacktrack
-# Purpose : Document the changes that have occurred in 'slacktrack'
-##############################################################################
-
-07-Jun-2017 - v2.18
- * Added option --run-after-withlog
- This option is the same as -R, --run-after, with the only difference
- being that any output from that script is logged to the slacktrack build
- log.
-
-25-Apr-2015 - v2.17
- * Cleaned up superfluous white space.
- * Added operator -o, --no-fs-search
- Prior to beginning a build, and post build, slacktrack uses the 'find'
- command to scan the OS' file system, and stores these records. The
- difference between the two records are used to determine the package's
- contents.
-
- This default set is ideal for a default Slackware installation, but some
- users have data in other directories which should never be included in a
- package. Scanning these additional directories takes extra time and serves
- no purpose.
-
- While the -x,--exclude operator is applied to the final package
- contents list, -o, --no-fs-search is applied before and can be used to
- significantly speed up the searches that build the before/after file lists.
-
- Thanks to Andrew Lyon for the patch.
-
-10-Jan-2014 - v2.16
- * Added the following paths to the default exclude list:
- /usr/man/whatis
- /usr/local/man/whatis
- /var/lib/pgsql/
- /var/lib/mysql/
- Thanks to Eduard Rozenberg.
- * Updated the 'OVERVIEW' doc to correct a couple of small details.
- * Updated man pages to conform with stricter pod2man syntax.
- * Updated FAQ to explain why after using one of the 'touch file system'
- options, root is notified about having new mail.
-
-23-May-2013 - v2.15
- * Added the $PWD from which slacktrack was invoked in to the default exclude
- list. This allows a package's source directory to be in a non-default
- excluded path and receive updates (such as log files) and avoid slacktrack
- including them in the newly created package file.
- Thanks to Eduard Rozenberg.
-
-10-May-2013 - v2.14
- * Removed '-i, --install' flag from the man page and the slacktrack script,
- as this has been a no-op since slacktrack stopped using 'installwatch'.
- Thanks to Michael Stewart.
- * Added /etc/ntp/drift to the default exclude list.
- Thanks to Eduard Rozenberg.
-
-05-Apr-2013 - v2.13
- * Use '-c' operator to 'touch' when touching the file system. This avoids
- creating empty files that were referenced from a dangling symlink, and
- avoids creating empty files when using the (not recommended) 'faster'
- file system touch option.
- * Moved slacktrack's 'ln' wrapper from /usr/share/slacktrack to
- /usr/libexec/slacktrack, since /usr/share is for architecture independent
- files.
- Thanks to Darren Austin for the suggestion.
- * Added '/usr/libexec' to the default list of library locations that will
- have their ELF objects stripped.
- * Capture the output of touching the file system into the slacktrack log
- file, as this can be useful for recording any issues resulting from touching
- files on the file system (such as dangling symlinks in existing installed
- packages).
- * Support supplying the full path name using the -p operator. Previously,
- to store the resulting .t?z package in a location other than the default
- ('/tmp'), you had to supply -b <dir name> in addition to -p <package name>
- This was a somewhat wooly distinction between package *name* and package
- *file name*.
- The package name can now be supplied using:
- # slacktrack [options] -p /somedir/foo-1.01-arm-2.tgz
- The -b operator is still effective, so previous 'trackbuild' scripts will
- continue to work as before.
- Thanks to Eduard Rozenberg for the suggestion.
-
-18-Sep-2012 - v2.12
- * Added /run to the list of default path exclusions.
-
-27-May-2012 - v2.11
- * Added /var/lib/NetworkManager to the list of default path exclusions.
- Thanks to Patrick Volkerding for the suggestion.
-
-05-Nov-2011 - v2.10
- * Added --allow-overlapping option to permit the package to contain files
- that overlap with existing packages installed on the system.
- The default is to permit this behaviour, but if you're using the -Q option
- as I do to build my packages, you'll find that there's no way to switch
- the behaviour off whilst building an otherwise Slackware standards
- compliant package.
- To use this option you will need to supply it on the command line
- after '-Q'.
- * Fixed bug where --delete-overlapping was expecting an input.
- * To the default path exclusion list, the following paths have been added:
- /var/spool/cron/cron
- /dev/bus/
- /dev/char/
- /dev/rfkill
-
-25-Sep-2011 - v2.09
- * Fixed formatting issues with the man pages exposed by a newer version
- of "pod2man". Thanks to Branko Grubic for the report and the patches.
- * The /var/log/{packages,scripts}/$PACKAGE entries of the unprocessed
- package contents (just after slacktrack completes execution of the
- supplied package build script) were incorrect due to slacktrack not
- handling symlinks when creating these entries - any symlinks were treated
- treated as files which caused "removepkg" to emit messages such as
- ".. no longer exists"
- slacktrack now uses "makepkg" and "installpkg" to correctly create and
- handle the /var/log/{packages,scripts} entries.
- Thanks to Roberto for the report and a good detailed explaination.
- * Removed /usr/bin/altertrack symlink to /usr/bin/slacktrack. It's
- been years since altertrack was a separate tool. If you have any
- scripts still calling "altertrack" -- change them :-)
- * When deleting perllocal.pod files, look in /usr/lib & /usr/lib64
- * Warn if any files in the newly built package overlap with other packages
- that are already installed on the system.
- * Added -X, --delete-overlapping option.
- This option deletes any of the overlapping files from the new package.
- The -Q option now includes the erasing of any overlapping files.
- * Do not emit the name of the newly built package when displaying the
- list of package dependencies.
-
-08-Nov-2010 - v2.08
- * Exclude /var/lib/dhcpcd from being included in the package contents.
-
-18-Dec-2009 - v2.07
- * Rewrote package_name() function to cater for "old style" package names.
- Thanks to Jim Hawkins for the bit of sed script.
- * Prevent /etc/dhcpc, /var/run and /etc/resolv.conf from appearing in
- the package contents. This is especially useful when your build
- machine is using dhcpcd to manage its network address.
-
-16-July-2009 - v2.06
- * Added /lib/udev/devices to the default path exclusion list.
- Files in here are generated and maintained by udev and should not
- be included in packages.
-
-02-June-2009 - v2.05
- * If after removing orphaned *.pyc files, their previous & parent
- directories become empty, delete the directories.
-
-29-May-2009 - v2.04
- * Added -Y, --delete-orphaned-pyc option.
- Within the package contents, if slacktrack finds *.pyc files without a
- matching *.py file, the *.pyc files will be removed from the package
- contents.
- Thanks to Patrick Volkerding for the suggestion.
- Updated slacktrack(8).
-
-15-May-2009 - v2.03
- slackdtxt:
- * Updated to handle .tgz, .tbz, .tlz, .txz file extensions
- Thanks to Patrick Volkerding.
- * Renamed --nodeletetgz option in to --nodelete.
- * Updated slackdtxt(8)
- slacktrack:
- * Added /usr/lib64 and /lib64 to the list of known library directories.
- Thanks to Eric Hameleers for reminding me.
-
-12-May-2009 - v2.02
-
- This is an interim release to allow slacktrack to work with the
- additional package compression formats introduced in Slackware v13.
- The documentation & the 'slackdtxt' utility will be updated at a
- later date.
-
- * Renamed --md5sumtgz option to --md5sum because starting at
- Slackware v13, the package format has been expanded to several
- other compression types; updated slacktrack(8).
- * No longer suffix ".tgz" to a package name if the ".tgz" extension
- wasn't specified. This allows you to specify one of the new alternate
- package file extensions: .tgz, .tbz, .tlz and .txz
- * Added /usr/share/slacktrack/ln which is an ln wrapper.
- This calls /bin/ln with the -f (force) option which allows the
- time stamp to get updated on symlinks.
- Thanks to Jim Hawkins for writing this wrapper.
-
-19-Nov-2008 - v2.01
- * Added /var/cache/ to the default exclude list.
- This excludes SAMBA's 'browse.dat'.
- Thanks to Eduard Rozenberg for the suggestion.
- * Updated 'dvd_libs' example build scripts to use libdvdcss-1.2.10
- and verified the source URLs for the other components.
- (You must still download the source yourself).
-
-17-Sep-2008 - v2.00
- * The 'slacktrack' tool is now what used to be shipped as 'altertrack'.
- This tool tracks installations directly within a live root file system
- rather than a pseudo root file system.
-
- ** Important: This means that you *MUST* now run slacktrack on a
- devbox only **
-
- Please read /usr/doc/slacktrack*/RELEASE_NOTES for
- important details about migrating from the previous version of
- slacktrack.
-
-
- * Changed to BSD licence for 'slacktrack' and 'slackdtxt' tools.
- The only reason it was previously GPL was because this was the licence
- installwatch used.
- * Updated documentation & man pages.
- * A GPG signing key must be specified when using the -G,--gpg-sign option;
- it will not fall back on the default. This is because the code
- to parse the command line operators doesn't work. I checked
- the supplied examples for getopt and even they don't work!
- (Perhaps it used to work with older versions of bash?)
- * Added -P, --delete-perllocalpod option.
- This deletes any 'perllocal.pod' found within the package's /usr/lib.
- perllocal.pod files should only be included with the Slackware 'perl'
- package.
- * The -Q (set options to build a Slackware compliant package) option now
- sets the -P, --delete-perllocalpod options.
- * Removed --froot operator. This used to run the 'fakeroot' daemon
- and LD_PRELOAD the fakeroot library to make your user environment
- appear as if were root, with the intention of allowing package utilities
- to set ownerships of files/dirs -- an ability allowed only for root.
- However, since slacktrack needs to be run as root to make a useful
- package (it's unlikely you'd use slacktrack to track files in a
- non-root location, eg /mypackages/), then this option is defunct.
- * Removed --with-scratchbox. This deleted the /dev and /home
- directories that used to find their way into early ARMedslack packages.
- ARMedslack has not used scratchbox in years, and I can't imagine
- anybody else ever used this option!
- * Build script examples are now bundled with the package rather than
- being on a separate web site (since there's no cholestrol
- from installwatch)
- * Added "/dev/input$|/dev/input/|/dev/.udev/|/dev/.udev$" to the default
- exclude list because udev is now keeping some live data in there.
-
-08-Feb-2008 - v1.33 - build 1 [ Not released ]
- * Replaced installwatch with 'libsentry' - a fork of installwatch
- by Gilbert Ashley.
-
-29-Jun-2007 - v1.32 - build 1, Slackware 12.0 special version.
- * Fixed a bug where if --stripallexec was used, it wasn't stripping
- all ELFs (.so, bins & .a files).
- * Replaced slacktrack script with a dummy for the release of
- Slackware 12.0. The new *at-style functions that coreutils 6.7+
- are not tracked by installwatch, so chown, chmod et al do not work.
- The real slacktrack script (if you wanted to use it) is named
- /usr/bin/slacktrack-real
-
-05-May-2007 - v1.31 - build 2
- * Fixed a bug in altertrack's --touch-filesystem-first code.
- See docs/ChangeLog.altertrack.
- * Updated slacktrack(8): -Q option now states that files in binary
- directories are chown root:root not root:bin.
- Thanks to Eduard Rozenberg for noticing that.
-
-31-Mar-2007 - v1.31 - build 1
- * When gzipping man & info pages, force compression (gzip -f)
- * Applied Fred Emmott's portable patch to installwatch to make it
- work on 64bit machines.
-
-19-Feb-2007 - v1.30 - build 1
- * Move installwatch library from /usr/lib/installwatch.so
- /usr/lib/installwatch-slacktrack.so
- This prevents an installation conflict with checkinstall.
- Thanks to Henrik Carlqvist for the suggestion.
-
-04-Apr-2006 - v1.29 - build 1
- * Added new option, -m|--chown-bins-root-root
- This sets ownerships of files and directories in the standard Slackware
- binary directories to 'root:root'.
- This change is for Slackware v11 - binary directories are no longer
- chown root:bin.
- * The -Q option now sets -m rather than chowning root:bin.
- If you want root:bin, specify the -f and -e options. The command would
- look something like this:
-
- # slacktrack -Q -fe -p moose-1.0-i486-1.tgz ./moose.build
-
- * Added /media,/srv and /selinux to the 'watch' patch exclusion list
- (any changes to these paths will be excluded from the package).
- Updated slacktrack(1) with the new paths.
-
-14-Nov-2005 - v1.28 - build 1
- * Fixed a bug where any man page symlinks broken by gzipping were not
- being repaired.
- Thanks to Andrei Levin for the bug report.
-
-22-Sep-2005 - v1.27 build 1
- * Rewrote the slack-desc file to explain what slacktrack actually does
- in simple words :-)
- * Added /var/lib/rpm to list of excluded paths. This allows you to
- do some seriously kludgey stuff like build from a source RPM and
- install the binary RPM as part of the build script.
- Very useful sometimes - docbook is an example :-)
- * Fixed bug where if a temporary directory was manually specified with -T,
- its contents were tracked by installwatch. Manually set temporary
- directories are now in installwatch's exclude list.
- Thanks to Gufo for reporting this.
- * slacktrack will now return error code 6 and abort if it finds the
- temporary directory (either chosen automatically or selected via the
- -T|--tempdir option) already exists. This is to prevent slacktrack
- from wiping user data without any warning.
- slacktrack does not create a sub directory within the specified area;
- it was never designed to do so, so this is the best option.
- * Modified man page to reflect the above change, and added error code 6
- to the error code section.
- Thanks to Gufo for suggesting this change.
-
-22-Jul-2005 - v1.26 build 1
- * Added /opt/kde/man to the list of man page directories.
-
-08-May-2005 - v1.25 build 1
- * Renamed internal string 'VERSION' to 'SLACKTRACKVERSION' as it's
- too much of a generic name and can cause confusion as it's exported
- to the build script/environment.
-
-21-Mar-2004 - v1.24 build 1
- * Added /sys to the list of excluded paths
- * Fixed bug with chowning files that was introduced in v1.19.
- Files with brackets in the name would get interpreted by bash. Now
- these names are enclosed within '' to prevent this.
- * Trimmed down --help text a little - it's too wordy.
- * Added a patch to installwatch which was posted by Alexander Kern on the
- checkinstall mailing list:
- It adds simply "utimes" and "setxattr" to the list of
- intercepted functions.
- - Please note, however, that I am aware that there seems to be a problem
- with installwatch on Slackware-10.1, although it does not show up when
- building all software. I am looking to replace installwatch with
- something specifically for slacktrack.
-
-09-Dec-2004 - v1.23 build 1
- * Upgraded to installwatch-0.7.0beta4 from checkinstall-1.6.0beta4
- * Fixed bug where you were informed that there were "orphaned" libraries
- and dependencies upon installed packages, but the list was blank.
- This was because the file contained spaces and therefore passed the
- if [ -s ] check.
-
-16-Nov-2004 - v1.22 build 1
- * Fixed a bug where if --notidy was specified and slacktrack/altertrack
- failed to track any changes, the temporary workspace would be deleted.
- This became a bug when I introduced $SLACKTRACKSCRATCHDIR; if a build
- fails then the developer will be interested in looking at the source
- tree which should always be preserved by --notidy.
- * /usr/local/bin, /usr/local/sbin and /usr/X11R? directories & files
- contained within will now:
- - be chown root:bin
- - be stripped (with the same strip option as the major bin directories)
- * man pages in /usr/X11R?/man will now be compressed.
- * Updated slacktrack(8) to reflect the above two changes.
- * Fixed a typo in --help and added a suggested usage line.
- * If an incorrect parameter is specified then --help is directed to STDERR.
- * If no parameters are specified (or there has been no package name
- specified) then the usage message is directed to STDERR.
- * Updated the TODO list.
- * Updated the OVERVIEW document (last update was 09-Dec-2003)
- - Added a couple of new architectures (official & unofficial ports)
- and made a note about i586 binary packages
- - A couple of other minor edits.
-
-26-Aug-2004 - v1.21 build 2
- * Tidied up slacktrack.SlackBuild
- * Updates to altertrack
-
-19-Jun-2004 - v1.21 build 1
- * Only strip debugging symbols (strip -g) from object files in .a archives
- because --strip-unneeded tends to render many object files unusable.
- If you're sure you know what you're doing and want to use strip
- options other than -g, then I suggest doing this inside your build
- script or (if using altertrack) in your post build script.
- Updated slacktrack(8) to reflect this.
- * Use strip -p to preserve dates/time stamps.
- * Fixed a typo in the package info display prior to building the package.
-
-31-May-2004 - v1.20 build 1
- * Changed chown uid.gid to uid:gid
-
-25-Mar-2004 - v1.19 build 1
- * With the recent version of the coreutils package in Slackware-current
- (coreutils-5.2.1), chmod no longer preserves setuid bits. This means
- that if you elect to chown root.bin the binaries, you lose setuid.
- I have implemented a work-around which works with both the new and old
- coreutils chown.
-
-03-Mar-2004 - v1.18 build 1
- * Strip archive files (.a) with --strip-unneeded, as using strip without
- this option causes the contents of some archive files to be unusable.
- Thanks to longname@sezampro for reporting it.
-
-12-Feb-2004 - v1.17 build 1
- * Added --froot option to start the fakeroot server prior to setting
- ownerships and so on. This may be helpful if you are not root on
- the machine where the packages are being prepared. However, if the
- build script or 'make install' sets its own ownerships, these will
- be lost because the fakeroot server is not started until *after* the
- build script finishes. The reason for this is that fakeroot can make
- some configure scripts fail. If you know that the configure script
- you are using does *not* fail under fakeroot, I suggest that you still
- use fakeroot ./trackbuild.xxx
- -- Please note that due to the path to the fakeroot libraries, slacktrack
- only works with fakeroot-0.8.3 and up
- You can download the latest version of a fakeroot Slackware package
- builder from http://www.slackware.com/~mozes --
- * Upgraded to installwatch-0.7.0beta3 from CheckInstall 1.6.0beta3
-
-12-Dec-2003 - v1.16 build 1
- * Updated docs/OVERVIEW
- * Updated docs/TODO
- * Bumped up version number for release.
-
-10-Dec-2003 - v1.15 build 5
- * Tidied up slacktrack.SlackBuild
- Most of the recent changes have been in altertrack (bug fixes) which
- is why the version of slacktrack itself hasn't been updated.
- The usr/doc/slacktrack-version directory is now
- usr/doc/slacktrack-version_build
- because (at present) the build number is important to this project
- because it changes more than the major slacktrack version number.
- * Mentioned installwatch segfaulting in the FAQ.
-
-01-Nov-2003 - v1.15(release)
- * altertrack is now included within the binary .tgz package because
- I'm satisfied that it is just as safe as protopkg, and it enables you
- to build packages from .build scripts that do not work with
- slacktrack/installwatch.
-
-29-Oct-2003 - v1.15rc1
- * If running under fakeroot then remove fakeroot from the list of
- dependencies (it's included because it's LD_PRELOADed)
- (suggested by Emanuele Vicentini).
- Patch from Emanuele Vicentini:
- * Redirect file descriptor 2 to 1 so that the slacktrack log file
- contains anything sent to STDOUT.
-
-22-Oct-2003 - v1.15
- * Added --showdeps option to log to screen and a log file what
- _installed_ Slackware packages your new package relies upon.
- The purpose of this for interest only but I find it useful to ensure
- I haven't just built a package on a box that Xfree86 installed
- and I intend to install and use the package on a box that does not,
- when the package has linked against X's libraries.
- Using this option will also flag up 'orphaned' libraries (ones that
- do not belong to an installed package, which is especially handy
- if you're going to be distributing a package).
- * Added another question to FAQ.
- * Bomb out if /var/log/packages or /var/log/scripts is missing.
-
-20-Oct-2003 - v1.14 [beta only]
- * When stripping shared objects (.so files), look for 'shared' rather
- than 'shared objects' (in the output from 'file') as this was causing
- some files not to be stripped (PHP is an example).
- * Added --mpopts option to allow the inclusion of additional options
- (e.g. --prepend) to Slackware's 'makepkg' program.
- * Fixed bug where by the .txt description file wouldn't be created if
- you had specified a seperate build store directory that didn't end
- with a /
- * No longer create the /install directory because if your build script
- fails to create any files then you don't see the warning slacktrack
- gives you. I could code around this but I think it's cleaner this way.
- * Added /root to the list of directories that will not be included within
- the package. This should help with using ccache when compiling as root.
- You should still see docs/FAQ for help with non-root users.
- It also helps with building CPAN modules.
- * Updated the FAQ with information about using perl -MCPAN -eshell
- (turn off logging and the CPAN interface console will work)
- * Fixed bug where by gzipping info pages wouldn't gunzip .bz files first
- * Forked slacktrack into another script named 'altertrack'. This works
- in a similar fashion to Pat's 'bp' and David Cantrell's 'protopkg' in
- that it compares the differences between the file system before and
- after 'make install', rather than using installwatch.
- This script is available only in the source distribution and is
- totally unsupported (but it works for me). There is an example
- build script contained within the source in the 'examples-altertrack'
- directory.
- * Moved fakeroot's build script (and source) out of slacktrack's source
- and on to http://www.slackware.com/~mozes because it's
- more useful there.
-
-01-Oct-2003 - v1.13
- * Warn if /install/slack-desc not found or 0 bytes
- * The package's /install directory is now created by slacktrack
- _before_ it executes your .build script. This saves you a line
- in your .build script, plus it's required in order
- to meet Slackware package standards (because 'slack-desc' lives
- within /install). However, if you do not wish to have a /install
- directory within your final package, you may delete it within
- your .build script ( rm -rf ${SLACKTRACKFAKEROOT}/install )
- * Updated dependency checking code so that it can handle packages
- that begin with the same name (e.g. 'glib' 'glib2').
- * Updated the fakeroot build scripts for version 0.7.8
- Patches from Emanuele Vicentini:
- * Added -Q, --standard options that specifies all command line switches
- required to create a .tgz file that complies with the Slackware standard.
- * Added -G, --gpg-sign option that will sign the resulting .tgz
- package file with the default user's GnuPG key and placed the
- detached, armored signature (.asc file) in the package store
- directory.
- * Fixed the value of GZINFO (which should be "No" according to the
- man page but was "Yes")
- * Updated man pages, typos fixed and so on.
-
- The easiest way to build a package is now:
- # slacktrack -Qp foo-1.13-i486-1.tgz ./foo.build
-
-11-Jul-2003 - v1.12
- * Added -D, --md5sumtgz option that will create an MD5sum of
- the resulting .tgz package file.
- * Fixed problem with checking the exit code from getopt
- (reported by Emanuele Vicentini).
- * Added a preemptive FAQ
- * Merged Patrick's changes of slacktrack.SlackBuild into mine
- slacktrack.SlackBuild now also creates its own slacktrack-*.txt file
-
-22-Jun-2003 - v1.11r2
- * I'd missed single quotes from a few find commands - fixed.
-
-02-Jun-2003 - v1.11
- * -S, --stripallexec will now strip .a (archive) files.
- * -A, --striparchives option added. This option strips .a archives.
- Suggested by Patrick Volkerding.
- * slacktrack.SlackBuild no longer includes the large collection of
- example scripts into the resulting package .tgz; they're now
- maintained in a separate archive (slacktrack-examples-v??.tar.gz)
- available from http://www.slackware.com/~mozes
-
-28-May-2003 - v1.10r2
- * If deleting 'usr/info/dir' then append this info to the log.
-
-22-May-2003 - v1.10
- * Before gzipping man or info pages we now find any bzip2 (.bz2) files
- and unpack them. I have found that BitchX installs BitchX(1) as
- a bzip2 file. There is no slacktrack option to turn this feature off
- because if we gzip the bzip2'd man page, the man program won't
- work with the file.
- * Added -K, --delete-usrinfodir option. If this option is specified
- then slacktrack will delete the file 'usr/info/dir' if it is
- found in the package.
- This file is a special file used by the 'info' program. To quote
- texinfo's 'dir' file:
- "This (the Directory node) gives a menu of major topics."
- Many programs create their own 'info' file. However, using slacktrack
- (or even a clean SlackBuild script), any such attempts to create
- an up to date 'info' file result in the file only containing
- information about the particular program (or set of programs)
- you have just compiled.
- Therefore you will usually want to delete this file from your
- package so as to avoid overwriting the system version when you
- install your new package.
- The default is not to delete usr/info/dir.
- * As an example, I typically invoke slacktrack as:
- # slacktrack -gfenzKSUIp package-1.00-i386-1.tgz ./package.build
-
-
-16-May-2003 - v1.09
- * Added exported variable: SLACKTRACKSCRATCHDIR
- This variable points to a 'scratch' dir inside slacktrack's temporary
- path. Should they wish to do so, the authors of the build scripts
- can use this directory to save them 'managing' their own temporary
- directories where they unpack the source archives and so on.
- This directory is subject to the same conditions as the rest of the
- slacktrack temporary path -- it will remain if --notidy is specified.
- * Added paragraph in slacktrack(8) that talks about the exported environment
- variables.
- * Now use date +%s to create more randomly named temp directory for installwatch
- This reduces the possibility of conflicting with another user who is
- running slacktrack on the same system.
- * Modified afio.build to demonstrate using ${SLACKTRACKSCRATCHDIR}
- * Modified tf.build to use ${SLACKTRACKSCRATCHDIR} & to prevent it from
- confirming the compile-time settings with the user.
- * Tidy up of the build scripts in the docs dir.
- * slacktrack(8) & slackdtxt(8) release dates now always in sync with
- their respective scripts.
-
-07-May-2003 - v1.08r3
- * Updated a few docs
- * Fixed a comment typo in the slacktrack script
- * Tidy up of 'SlackBuild' script
- * Other misc tidying.
-
-03-May-2003 - v1.08r2
- * If the command line/script provided exits with an error code we now
- display the error code as well as a warning message.
- * Moved slacktrack and slackdtxt to /usr/bin rather than being in
- /usr/sbin. This is because we can use slacktrack with 'fakeroot'
- from the Debian distribution. fakeroot fakes root privileges, thereby
- allowing slacktrack to chown correctly. Therefore we can sensibly
- use slacktrack as user other than root.
-
- To use slacktrack with fakeroot you could do this
- # fakeroot ./trackbuild.fetchmail
-
- less through the resulting package .tgz to verify that the permissions
- are what they ought to be. Obviously there will be some issues with
- using fakeroot but it should be pretty useful for users without root
- access.
- I have packaged up fakeroot and you may download it at
- http://www.slackware.com/~mozes
- I have included by fakeroot build script within slacktrack's source
- ball - slacktrack/misc/fakeroot/
-
-28-Apr-2003 - v1.08
- * Added -N, --strip-prog to allow the user to specify the location
- of the strip binary. This allows me to start cross compiling
- stuff with slacktrack stripping the binaries.
- * Renamed my wrapper scripts from 'SlackBuild' to 'trackbuild' to
- avoid any confusion & updated docs to match.
- * If specifying an alternate package store dir, now suffix the path
- with a /
- * Now reports size of .tgz if a .tgz is built
- * No options are 'Advanced' - they are now just options
- * Added -R, --run-after facility to make slacktrack execute a given
- command prior to running makepkg. The purpose of this is to allow
- the user to specify a program such as mc (Midnight Commander) to
- inspect the package directory contents and possibly make changes
- before slacktrack creates the .tgz
- [] Note: The CWD is changed to the package's root directory before
- the external command is executed. This allows you to specify
- -Rmc and have Midnight Commander load and automatically
- display the root dir of the package.
- * -T wasn't accepting the specified path. Fixed.
- * -g,--chmod644docs also now does chown -R root.root /usr/doc. I am finding
- I need to do this in build scripts a lot so I figured since I'm already
- chmod 644ing I may as well just chown them to root since they always
- are in Slackware packages anyway !
-
-16-Apr-2003 - v1.07
- * Added the facility to gzip info pages & updated slacktrack(8) to match.
- -I, --gzinfo
- -W, --extra-infodir <path>
- -F, --gzinfo-no-symfix
- * Switched @uksolutions email addresses in example build scripts with
- @polplex.co.uk
- * Added two build scripts for GNU VCD Imager into the docs/examples/non-slackware
- directory. There are two scripts:
- vcdimager.build -- this is for use with slacktrack
- vcdimager.SlackBuild -- this is a 'clean' SlackBuild script
- that installs the package into a clean
- dir by doing make DESTDIR
- The purpose of having these two scripts is for anybody who is
- interested in building their own packages; it enables you to
- compare and contrast the differences... or something :)
-
-01-Apr-2003 - v1.06
- * --extra-libdir, --extra-bindir, --extra-mandir added to allow
- the user to specify additional directories that slacktrack should
- consider when stripping binaries and gzipping man pages.
- Note that any binary directories specified by --extra-bindir
- will NOT be chown root.bin
- Suggested by Darren Austin
- * No longer chown root.bin in /usr/local/{sbin,bin}/
- as it's not the Slackware standard to chown root.bin in any dirs other
- than /sbin, /bin, /usr/bin & /usr/sbin
-
-26-Mar-2003 - v1.05
- * Now considers usr/local for man page, binary and .so files after
- Darren Austin gave a convincing argument as to why one may wish to
- use /usr/local
-
-22-Mar-2003 - v1.04-build-2
- * Moved Change Log details into separate file - 'ChangeLog.slacktrack'
- to save cluttering the slacktrack script.
- * Added zlib build script to the list of Slackware example build scripts
- This script downloaded the Slackware bits and also patches in the
- security patch from OpenPKG.
- * Added NVIDIA_GLX-1.0-4191 and tinyfuge example slacktrack build scripts
- * Fixed a few typos and grammar problems in the docs
- * Tidied up a few comments & code in the slacktrack script
- - No new features added.
-
-10-Mar-2003 - v1.04
- * Added --stripallexec option to strip any unstripped ELF executable files
- in the entire package directory. This means that slacktrack will find all
- files in non-standard Slackware directories such as /opt.
- * Added 'short' command flags for the advanced options.
-
-02-Mar-2003 - v1.03
- * Make sure we have specified a package name before proceeding
- * Bomb out & tidy up if no files or dirs are found in /var/tmp/slacktrack/TRANSL/
- this saves makepkg building a package of the current directory & it also
- indicates that installwatch failed to track any activity, thus has no files
- to package.
- * Fixed problem with the location of installwatch's log file.
- * Lots of error checks
- * Exit codes now have meaning; read slacktrack(8) man page.
- * If build store dir doesn't exist then change it to /tmp rather than
- creating it without warning.
-
-01-Mar-2003 - v1.02
- * Added --chmod644docs option
- * Renamed SLACKTRACKPSEUDODIR to SLACKTRACKFAKEROOT because it makes more
- sense.
-
-28-Feb-2003 - v1.01
- * Stopped dumping all output to /dev/null when gzipping man pages
- as this doesn't always work
- * Added code to fix broken symlinks caused by gzipping man pages
- Added --gzman-no-symfix command line option to prevent this behaviour
- * Added --chown-bdirs-root-bin & chown-bfiles-root-bin (-e,-f) options
- to chown root.bin the system binaries installed into /usr/bin and so on
- This behaviour is specified in Pat's 'slack-tools' README file.
-
-22-Jan-2002 - v1.00
- * Created
diff --git a/source/d/slacktrack/slacktrack-project/docs/FAQ b/source/d/slacktrack/slacktrack-project/docs/FAQ
deleted file mode 100644
index 98ea7d7cd..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/FAQ
+++ /dev/null
@@ -1,234 +0,0 @@
-################################################################
-# Document: FAQ
-# Purpose : Frequently asked questions
-# Author..: Stuart Winter <mozes@slackware.com>
-################################################################
-# It's small at the moment but if I get any repeated
-# or potentially repeated questions then they'll be added
-# here.
-################################################################
-
-
-Questions
----------
-
-1. My build script places files into /home, but these are not
- included in the package created by slacktrack. Why?
-
-2. Do I really have to remove the existing package before
- building a new version with slacktrack ?
-
-3. I want to build a package of DVD libraries and players
- but the players depend on the libraries being installed
- first. How can I build such a package with slacktrack?
-
-4. I find that when building packages with slacktrack, a number of
- files are appearing in the package that do not belong there. Why?
-
-5. What does slacktrack's --touch-filesystem-first option do?
- why would I need it?
-
-6. I can't compile Perl CPAN modules via perl -MCPAN -eshell
- Why ?
-
-7. I'm using Slackware v13 (or greater) and I want to create
- package files using one of the other compression methods.
- How can I do that?
-
-8. After completing a build using slacktrack, I see
- "You have mail in /var/mail/root"
- but I have no new email.
-
-Answers
--------
-
-Q1. My build script places files into /home, but these are not
- included in the package created by slacktrack. Why?
-
-A1. slacktrack (by design and thus default) excludes /home
- from being included within the package. The reason for this
- that typically no package shipped should ever contain
- data within /home.
-
-Q2. Do I really have to remove the existing package before
- building a new version with slacktrack ?
-
-A. No (see my zlib example), but in the majority of cases,
- I'd advise that you do.
-
- The reason that my example trackbuild scripts remove the
- existing package first (or bomb out) is because some
- package installations (makefiles) will not install a
- new file onto the filesystem if it's identical to the
- one in the source archive. This means that slacktrack
- will not notice any change in the before and after picture
- of the filesystem; thus your resulting package may
- be missing some files.
-
- The way to work around this is:
- 1. removepkg the package prior to building;
- 2. Use the --touch-filesystem-first option;
- But this option is not recommended since it destroys the
- time stamp information on your system.
- This option should only be used by experts using a disposable
- OS installation.
- Please see FAQ question 5.
-
- It's worth noting that Slackware's 'removepkg' program
- won't always remove all files (especially config files
- which are packaged as /etc/file.new and are renamed to
- /etc/file by install/doinst.sh).
-
- It shouldn't be too much of an issue though. If it's a
- brand new piece of software that you are building from
- scratch then installwatch will pick up all new files.
- If you're rebuilding a Slackware package using a
- .build script from the source tree then it's worth
- browsing the package's contents ( # cat /var/log/packages/lftp-*
- for example ), then running 'removepkg' and looking at its
- output. If there are any remaining config files then either
- move them to a safe place or delete them before
- building your package with slacktrack.
-
- In general though you shouldn't have any problems.
-
-
-Q3. I want to build a package of DVD libraries and players
- but the players depend on the libraries being installed
- first. How can I build such a package with slacktrack?
-
-A. There are two ways.
- 1. You either write build scripts for each individual
- library and create packages for each. Once the packages
- have been built, you install them prior to building
- the player.
- You then unarchive all packages into a temporary
- directory and run makepkg over it.
- 2. Use slacktrack and build them all one after another as
- you no doubt have originally attempted.
-
- I have included example build scripts for a DVD library
- package within slacktrack's source archive.
-
-
-Q4. I find that when building packages with slacktrack, a number of
- files are appearing in the package that do not belong there. Why?
-
-A. The way that slacktrack works is that it:
- [a] takes a snapshot of the files and directories on the file system;
- [b] runs the build script
- [c] makes another snapshot of the files & dirs on the file system;
- [d] compares the two snapshots and determines the differences
- [e] the differences between the two snapshots constitute the package
- contents
-
- The problem with this approach is that other running programs can
- make modifications to files & dirs on the file system during the
- build/compilation process. slacktrack will consider these modifications
- to be part of the package -- slacktrack does not directly track what the
- build process does: it *only* compares the differences between the
- file system snapshots.
-
- Major culprits for this are:
- cups
- crond (running cron jobs)
- Window Managers and X
-
- When using slacktrack you are advised to reduce the number of
- processes to the minimum, and try to ensure that there are no processes
- running which will modify the file system during the build process.
-
- If you cannot do this then you there are a number of work arounds:
- [a] Using the -x (--exclude) operator.
- With this operator you can specify a list of
- paths to exclude from the file system snapshots, thus excluding them
- from the resulting package.
- [b] Use the -R (--run-after) operator.
- With this operator you can specify a command that will be run after
- slacktrack has compiled the package contents.
- You may wish to run 'mc' (Midnight Commander) or perhaps just a 'bash'
- shell; this will enable you to inspect and modify the contents of the
- package prior to it being turned into a package file.
-
-Q5. What does slacktrack's --touch-filesystem-first option do?
- why would I need it?
-
- This option touches all files this pre-set location on the host's
- filesystem:
- /opt /bin /boot /dev /etc /install /lib /sbin /usr /var
-
- It *excludes* by default '/lib/udev/devices' since this contains
- live device data that doesn't take kindly to being touched.
- You may see errors from 'touch' about certain binaries, including
- /sbin/vol_id because this is a symlink into /lib/udev/devices.
-
- This will touch every file within those directories, destoying all the
- timestamp information.
- This is intended to be used on a throwaway development installation
- that's reinstalled daily or more often. Builds will often leave
- residue strewn about, so don't use this on your "good" machine and
- think you're managing it properly. :-)
-
- The reason behind this is that if you run slacktrack and your build
- partially fails, then it will leave some data on the filesystem.
- You then fix the problem and re-try: this time the build may succeed.
- However, if the original data on the filesystem from the first
- part-failed build has *not* changed (ie if it was some static data that
- was copied with cp -a (preserved time stamp & ownership)) between
- the first part-failed build and second successful build, slacktrack
- will miss this data from the final package.
-
- This option updates the file stamps contained within standard package
- directories, therefore allowing slacktrack to detect changes
- (even if the data contains an *old* time stamp from 1982, it will still
- detect the difference).
-
-***** This is an expert option: Please don't use this option unless you do
- not care about your operating system installation *****
-
-
-Q6. I can't compile Perl CPAN modules via perl -MCPAN -eshell
- Why ?
-
-A. If you get this message:
- Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work.
- The COLUMNS and LINES environment variables didn't work.
- The resize program didn't work.
-
- the answer is to tell slacktrack to turn off logging.
- eg:
- # slacktrack -Qnp foo-1.0-i486-2.tgz ./foo.build
-
-Q7. I'm using Slackware v13 (or greater) and I want to create
- package files using one of the other compression methods.
- How can I do that?
-
-A. It is 'makepkg' from the 'pkgtools' package which handles
- the compression, based upon the extension of the package
- file name supplied to it.
-
- The compression methods & file names are:
-
- .tgz - Gzip
- .tbz - Bzip2
- .tlz - LZMA
- .txz - XZ
-
-
- Examples:
-
- # slacktrack -Qp foo-1.0-i486-1.tgz ./foo.build
- # slacktrack -Qp foo-1.0-i486-1.tbz ./foo.build
- # slacktrack -Qp foo-1.0-i486-1.tlz ./foo.build
- # slacktrack -Qp foo-1.0-i486-1.txz ./foo.build
-
-
-Q8. After completing a build using slacktrack, I see
- "You have mail in /var/mail/root"
- but I have no new email.
-
-A. This is because you used the '--touch-filesystem-first' or
- '--touch-filesystem-faster' option at build time.
- This option has touched all of the files on the file system, which
- refreshes their date stamp. The mail notification system works only on
- the date stamp of the mail spools, hence it triggers the message.
diff --git a/source/d/slacktrack/slacktrack-project/docs/INSTALL b/source/d/slacktrack/slacktrack-project/docs/INSTALL
deleted file mode 100644
index 8b74c9f18..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/INSTALL
+++ /dev/null
@@ -1,9 +0,0 @@
-
-In order to build slacktrack:
-
- # ./slacktrack.SlackBuild -i
-
-This will create a Slackware package of slacktrack
-and install it.
-
-The resulting package will reside in /tmp.
diff --git a/source/d/slacktrack/slacktrack-project/docs/OVERVIEW b/source/d/slacktrack/slacktrack-project/docs/OVERVIEW
deleted file mode 100644
index fb99b247d..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/OVERVIEW
+++ /dev/null
@@ -1,595 +0,0 @@
-##############################################################################
-# Document: OVERVIEW
-# Purpose : Provide an overview of the Slackware package system incorporating
-# the use of 'slacktrack'
-# Please note that this is *not* a guide to the use of slacktrack;
-# the man page and SlackBuild scripts in the 'examples' directory
-# aim to fulfill that requirement.
-# Date....: 15-May-2009
-# Author..: Stuart Winter <mozes@slackware.com>
-# Homepage: http://www.slackware.com/~mozes
-##############################################################################
-
-
-CONTENTS:
----------
-1.0 Preamble
-2.0 Slackware packages
- 2.0.1 Format of official Slackware packages
- 2.0.1.1 Package names
- 2.0.1.2 Version numbers
- 2.0.1.3 Architectures
- 2.0.1.4 Build numbers
- 2.1 An overview of the creation of official Slackware packages
- 2.1.1 'Clean' and 'dirty' builds
- 2.1.1.1 Clean builds
- 2.1.1.2 Dirty builds
- 2.1.1 SlackBuild and .build scripts
- 2.1.1.2 SlackBuild scripts
- 2.1.1.3 .build scripts
- 2.2 slacktrack in the scheme of things
- 2.2.1 Using slacktrack with official .build scripts
- 2.2.2 Writing your own .build scripts for slacktrack
- 2.2.2.1 Making use of slacktrack's environment variables
-3.0 slacktrack in operation
- 3.1 How slacktrack finds which files have been installed
-4.0 Example scripts
- 4.0.1 non-slackware example build scripts
- 4.0.2 slackware example wrapper build scripts
-5.0 Known problems/features of slacktrack
-6.0 New features
-7.0 Licence
-
-
-
-1.0 Preamble
- ---------
-
-I used to work for a company that provided web hosting and shell accounts.
-When I started there were a number of shell servers all running various
-releases of RedHat Linux, in various states of repair. I managed to convince
-the management to let me try Slackware on there instead because I have a much
-stronger understanding of how to maintain and build server using the
-Slackware distribution. This trial went well and within a few months all
-servers were converted to Slackware version 8.1.
-
-In order to ease the speed of installation (and to prevent against
-forgetting to install or configure something critical), I wrote a
-set of post installation scripts that upgraded Slackware packages,
-configured numerous config files and copied pre-compiled software
-(such as courier IMAP) onto the new system.
-For other software that I could not simply copy, I'd compile it on the
-new server.
-
-However, it soon became clear that due to security updates and so on,
-it became incredibly time consuming (not to mention seriously boring)
-to compile PHP, Apache and so on on every server.
-
-At this point, I began to investigate how to create packages for Slackware.
-
-
-2.0 Slackware packages
- ------------------
-
- The Slackware Linux distribution consists of a variety of 'packages'
- that make up the distribution.
-
- Traditionally, all packages are in '.tgz' format (a gzipped tar archive).
- Starting with Slackware v13, new compression formats are supported which
- are represented by three additional file extensions:
-
- .tgz - Gzip
- .tbz - Bzip2
- .tlz - LZMA
- .txz - XZ
-
- In this document, we use the file extension '.t?z' to represent
- one of the above file formats.
-
- Once you have initially installed Slackware from the installer screen,
- you have the facilities to install, remove or upgrade new or existing
- packages using the package management tools:
-
- installpkg <package.t?z> - install 'package.t?z'
-
- upgradepkg <package.t?z> - upgrade existing 'package' with the
- new version specified at the command line.
-
- removepkg <package> - remove specified package
-
-
- Whilst the Slackware package system is not especially feature rich,
- Slackware's user base (including me) like it because it is simple.
- If we want to write our own package utilities then we can easily do so
- by examining the existing package tools and querying and amending the
- package database (text files).
-
- 2.0.1 Format of official Slackware packages
- -------------------------------------
-
- In Slackware 8.1 and up, each package file is named as follows:
-
- packagename-version-architecture-buildnumber.t?z
-
- 2.0.1.1 Package names
- -------------
-
- The package name is either the name of the single program
- or the name of a collection of utilities that fall under
- a single umbrella.
- For example:
- autoconf-2.54-noarch-1.tgz
-
- That is the name of the autoconf package I have on my
- Slackware 8.1 box.
- 'autoconf' is the name of the the entire collection of
- binaries and associated documents that are extracted from
- the autoconf source distribution archive.
-
- However, if we consider another example:
- tcpip-0.17-i386-15.tgz
-
- There is no single piece of software called 'tcpip'.
- This package contains a number of associated utilities
- written by different authors but bundled into one single
- 'package'.
-
- 2.0.1.2 Version numbers
- ---------------
-
- If the package is the name of a particular piece of software
- such as 'autoconf' from the example above, then the version
- number represents the version number that its authors distribute.
-
- If the package is a 'bundle' such as 'tcpip' then the version
- number increases as and when you add a new piece of software to
- the package, or upgrade a particular piece of major software
- contained within the package.
- For example, with 'tcpip' above, the 0.17 refers to the version of
- Linux Netkit. However, there are other programs included within
- the Slackware tcpip package that are not part of 'Linux netkit'.
-
- 2.0.1.3 Architectures
- -------------
-
- The architecture is just that -- it tells you which architecture
- the package is for.
-
- The current values in use are:
-
- ----- [ Official Slackware architecures ]
-
- noarch - Architecture independent files such as config files
- i386 - packages for the x86 (Slackware v8.1 & 9)
- i486 - packages for the x86 (Slackware 9.1+)
- i586 - packages for the x86
- i686 - packages for the x86
- s390 - packages for the IBM s/390 mainframe
- arm - packages for the ARM architecture
-
- Note: Whilst Slackware v10 is primarily built for i486, you may
- find that there are some packages whose architecture versions
- are higher than i486. This is for two reasons:
-
- [a] There is no source for the package - it is a repackaged
- binary distribution (SUN's j2sdk is an example).
-
- [b] The package is not required or otherwise not suitable for
- earlier revisions of the architecture (this is especially
- the true with ARM and SPARC).
-
- ----- [ Unofficial ports of Slackware ]
-
- sparc - packages for the SUN Sparc architecture
- powerpc - packages for the PowerPC architecture
-
- 2.0.1.4 Build numbers
- -------------
-
- A build number suplements the version number and is changed
- when the *package maintainer* makes a change to the package but
- the original source code and version number remains the same.
-
- For example, I build a package of 'foo' version 0.14 for the
- sparc. I have never built this package before, thus it becomes
- foo-0.14-sparc-1.tgz
- However, I realise that I haven't configured
- the 'bar' parameter correctly in /etc/foo.conf. I fix it
- and re-build the package. The package is now named
- foo-0.14-sparc-2.tgz
-
-
- 2.1 An overview of the creation of official Slackware packages
- -----------------------------------------------------------
-
- This section gives a brief introduction of the two methods of
- used when building the official Slackware packages.
-
-
- 2.1.1 'Clean' and 'dirty' builds
- --------------------------
-
- I am assuming the reader has some experience with Makefiles
- and has compiled and installed a number of software packages.
-
- 2.1.1.1 Clean builds
- ------------
-
- I term a 'clean' package one where you can specify a variable
- to the 'make install' which contains the directory you wish to install
- the package in, rather than installing it properly over the root file system.
- For example:
- # ./configure --prefix=/usr --sysconfdir=/etc
- # make
- # make install DESTDIR=/tmp/package-foo
-
- With a 'Makefile' that honours the DESTDIR variable, this will
- install the whole package into /tmp/package-foo. This directory
- effectively is the 'root' directory '/' as far as the Makefile
- is concerned.
-
- From here you can use the Slackware 'makepkg' program and build
- a package.
-
- This is by far the safest and most preferred method by all
- users that make packages.
-
- You will find that DESTDIR is called prefix, TOPDIR and other names;
- you need to examine the Makefile scripts in order to determine whether
- it contains this functionality and if it does, then discover what
- the variable name is.
-
- 2.1.1.2 Dirty builds
- ------------
-
- A 'dirty' build is the name I give to source distribution archives
- whose Makefile scripts do not have any provisioning to install
- in an alternate directory other than root.
-
- For these type of builds, you will typically do:
- # ./configure --prefix=/usr --sysconfdir=/etc
- # make
- # make install
-
- The package will then be installed on the root filesystem.
-
- So how do you know what files were installed where and
- even if you did, how do you pull all these files together in order
- to run makepkg over them ?
- That's the purpose of slacktrack! :-)
-
-
- 2.1.1 SlackBuild and .build scripts
- -----------------------------
-
- Slackware has a number of packages by a great number of authors.
- Some of the packages's source Makefiles honour a DESTDIR type
- variable but others do not.
-
- 2.1.1.2 SlackBuild scripts
- ------------------
-
- SlackBuild scripts can be 'interesting'. They are
- scripts that install into a 'clean' environment (usually /tmp).
-
- Some of the scripts follow the make install DESTDIR=
- style, if the Makefile permits.
-
- Others have a 'framework' or 'controller tarball' which is
- a _packagename.t?z (note the prefixing underscore).
-
- The SlackBuild script uses the Slackware 'explodepkg' script
- to untar the contents of the _.t?z into the /tmp-package<name>
- directory.
- Slackbuild then runs 'make' to compile the binaries
- and libraries, but then uses the 'cat' program such as:
- # cat foobar > /tmp/package-foobar/usr/bin/foobar
-
- By using 'cat', the *new* version of 'foobar' retains
- the original permissions and ownerships that are in the
- controller tar ball.
-
- However, you may be wondering how, if the package does not
- have a facility to install into somewhere other than root,
- do we get the file names and permissions for the
- controller _.t?z in the first place.
- The answer is simple:
- [a] find all files on the file system and dump to a file.
- [b] compile and install the software
- [c] find all files on the file system and compare the file
- produced by the first 'find'. After a little pruning, you
- have the list of files for the controller tar ball.
-
-
- 2.1.1.3 .build scripts
- ---------------
-
- For those software distributions whose Makefile does not hounour
- the DESTDIR type system, there are Slackware's .build scripts.
-
- These scripts literally ./configure ; make ; make install
- and copy docs and other goodies into the root file system.
-
- One of the problems with these scripts is that they are
- often incomplete -- they build and install the package but
- do not gzip the man pages or strip the binaries and libraries;
- this is done manually afterwards.
-
- *These* are the scripts that slacktrack and altertrack were
- written for.
-
- * Note: Whilst some software's Makefiles may appear to honour
- the DESTDIR variable, the Makefile *may* be broken which can
- result in files missing or corrupt within your new package.
- For example: I built Apache v2.0.48 and built a package using
- make install DESTDIR. However, a problem exists in that some of
- the Perl scripts it installs have *temporary build paths*
- hard coded into the resulting scripts.
- This is why you *may* find a .build instead of a SlackBuild
- script within Slackware's source tree.
-
- However, the primary reason is because the build script just
- hasn't been updated to make use of DESTDIR. *
-
-
- 2.2 slacktrack in the scheme of things
- ----------------------------------
-
- I follow Slackware-current quite closly. Often I want to
- 'back port' a -current package to an earlier release of Slackware .
- I can't simply upgrade with -current's package because it was
- compiled for a newer GLIBC than Slackware 8.1's, for example.
- For packages that use a 'clean' 'SlackBuild' script, this is
- an easy job -- I simply run 'SlackBuild' on an 8.1 box.
-
- However, for .build scripts, I needed a way of building packages
- using Slackware's .build scripts.
-
- I found a great program called 'CheckInstall' which fulfilled most of my
- requirements. However, as time went on and I started building
- more of Slackware's packages and writing my own build scripts, I found
- that checkinstall was lacking some features that I required.
- At this time I was also considering porting Slackware to run on
- the ARM architecture and helping with the Splack (Slackware on SPARC project),
- and therefore wanted a robust program that can deal with every .build script
- I threw at it, and if it can't handle it, I needed to be able to make modifications.
- The easiest way of doing this was to write my own script; thus
- 'slacktrack' was born.
-
- slacktrack is based on the *idea* behind 'CheckInstall', but uses
- only my own code (and contributions from other users), and only contains
- Slackware-specific facilities -- it can not build Debian or RedHat packages
- and never will.
-
- slacktrack does not have all of the facilities of CheckInstall either,
- but then these are not required for building Slackware packages
- from .build scripts.
-
- Also, slacktrack only works with 'official' Slackware directory locations
- and /usr/local.
- For example, if your make install installs binaries in /opt/packagename/bin
- and the man pages in anywhere other than /usr/man or /usr/local/man, then
- slacktrack's relevant options (eg stripping libs, bins, gzman) will
- not detect them.
-
-
- 2.2.1 Using slacktrack with official .build scripts
- ---------------------------------------------
-
- Building a replicar Slackware package from a .build script is
- typically fairly trivial with slacktrack.
-
- If we wanted to build slackware-9.1's elvis, we could do
- # cd slackware/slackware-9.1/source/a/elvis
- # chmod 755 elvis.build
- # slacktrack -jefkzp "elvis-2.1-i386-2.tgz" ./elvis.build
-
- The resulting package (by default) be stored in
- /tmp/built-slackwarepackages/
-
- As already mentioned, some of the Slackware .build scripts
- are incomplete with regard to gzipping man pages, stripping binaries
- and so on -- fetchmail.build is one of them.
- Therefore you can specify various options to slacktrack that
- will take care of this for you.
- The options in the example above :
- j - compress libraries
- e - chown root:bin /bin,/sbin,/usr/bin,/usr/sbin directories
- f - chown root:bin files in the binary dirs listed above
- k - strip binaries found in the binary dirs listed above
- z - gzip man pages
- p - the resulting Slackware package .t?z name
-
- The way I re-create the packages is to build a 'trackbuild' script that
- launches slacktrack with the required options and the name
- of the Slackware .build script. You can find examples of such
- scripts within the docs directory after installing slacktrack:
-
- /usr/doc/slacktrack*/buildscript-examples/
-
- You will also find that in Slackware versions 12.0 and upwards,
- the .build scripts are accompanied by 'trackbuild' scripts because
- slacktrack is used by the Slackware team to produce the packages.
-
- 2.2.2 Writing your own .build scripts for slacktrack
- ----------------------------------------------
-
- There isn't any specific that you have to do to write a build
- script for use with slacktrack -- the script name specified to
- slacktrack doesn't even have to be a script - it can be a binary -
- as long as it is executable, it is acceptable.
-
- You can see some of my own build scripts that I have written
- for use with slacktrack by looking in the documents directory
- after installing slacktrack:
-
- /usr/doc/slacktrack*/buildscript-examples/
-
- 2.2.2.1 Making use of slacktrack's environment variables
- -------------------------------------------------
-
- slacktrack exports two environment variables:
- SLACKTRACKFAKEROOT and SLACKTRACKSCRATCHDIR
-
- SLACKTRACKFAKEROOT:
- ````````````````````
-
- The purpose of this to allow your .build script to access the
- 'root' directory of the resulting package.
- There are two scenarios where you may want to use this
- variable:
-
- 1. During the build:
-
- The reason you may wish to do this is to pre-populate
- the package with files that you may not wish to place directly
- onto the root filesystem.
- The package contents will only appear inside this directory
- once your build script has finished, and slacktrack has determined
- what to put into this directory.
-
- In previous slacktrack versions which used a pseudo-root filesystem
- (where the package contents were populated *during* the build), this
- made sense, but in slacktrack v2.00, it is unlikely that you'd want
- to use this vairable from the build script.
-
- 2. Post-build -- cleanups after the build:
-
- The most likely use of this script is to perform package cleanup
- tasks after the build. This is mainly to perform tasks that slacktrack
- does not handle itself - such as deleting known files/directories that
- creep into packages (due to a system daemon such as CUPS), or setting
- some file and directory permissions.
-
- An example post build script is below.
- A post build script can be specified by slacktrack's -R option:
-
- # Incase you had CUPS running:
- rm -rf etc/cups etc/printcap
- # crond:
- rm -rf var/spool/cron
- rmdir var/spool
-
- # perllocal.pod files don't belong in packages.
- # SGMLSPL creates this:
- find . -name perllocal.pod -print0 | xargs -0 rm -f
-
- # Some doc dirs have attracted setuid.
- # We don't need setuid for anything in this package:
- chmod -R a-s .
-
-
- SLACKTRACKSCRATCHDIR:
- `````````````````````
-
- The purpose of this variable is to provide some temporary
- space to untar your source archives and so on. slacktrack
- will manage the creation and deletion of this directory.
-
- For example:
- # cd ${SLACKTRACKSCRATCHDIR}
- # tar zxvvf ${ORIGPATH}/source/foobar.tar.gz
-
- You can see in some of the example 'non-slackware' scripts
- how I have used these variables
-
-
-3.0 slacktrack in operation
- -----------------------
-
- The basic event flow is as follows:
-
- [1] Parse command line arguments
- -> Check they are OK, if not bomb out
- [2] Launch the supplied build script
- [3] Run any specified functions (eg gzman, strip bins, chowns) over the
- package 'root' directory and contents
- [4] Run Slackware's 'makepkg' program over the package contents
- [5] Move the .t?z to the specified build store path
- [6] Scan for any hard links that may be in the package
- -> If any found, alert the user on screen and also
- log to a packagename.hardlinks.log file in the build store path
-
- The slacktrack shell script is fairly simple and well commented; it should be
- relatively easy for anybody who understands bash to quickly comprehend what
- is happening and why.
-
- 3.1 How slacktrack finds which files have been installed
- ----------------------------------------------------
-
- In order to track the files and directories that have been installed
- or changed, slacktrack follows this ordered process:
-
- [1] Scans a pre-set list of directories on the filesystem and
- logs the contents.
- [2] Launches build script which installs the package onto the
- filesystem
- [3] Scans the filesystem once again
- [4] Compares the differences in the before and after snapshots
- [5] Copies the differences into a 'package root directory' and
- runs makepkg over them.
-
- In slacktrack version 1, we used 'installwatch' which overloaded
- some of glibc's filesystem calls, creating new files and directories
- into a pseudo-root filesystem, avoiding the need to install onto
- the host's filesystem (and also allowing to build as a non-root user).
- However, this library is ill maintained and even in the early days
- when it worked well, it still had problems and workarounds were required.
-
-4.0 Example scripts
- ---------------
-
- Included with the slacktrack binary distribution are a number of example
- scripts that hopefully should provide you with a basis of how to use slacktrack
- to build from 'dirty' source distributions.
-
- The examples are bundled in the documentation directory available
- after installing slacktrack:
-
- /usr/doc/slacktrack*/buildscript-examples/
-
-
-5.0 Known problems/features of slacktrack
- -------------------------------------
-
- Current problems:
-
- [1] slacktrack doesn't have sufficient error checking.
-
- I'm in two minds about *where* to put error checking, you see.
- Do I go no further if the supplied build script exits with a non-zero
- value?
- No, that's a bad idea because what if you didn't write the build script?
- it might be one of these qmail type binary installer programs that
- you can't (easily without hacking the source) fix. The author may
- have their own systems, and the program exits with a value that their
- own controller script recognises as non-failure.
-
- What should I do if makepkg has failed? You see it on screen
- and in the logs anyway, plus makepkg is one of the last things
- that slacktrack calls -- how can you recover?
-
- That said, version 1.03 now has some error handling. There's still
- not enough though, imo.
-
- [2] No support for a default config file
-
- I don't see the point. Each .build script is different
- and although I typically use the same options to slacktrack
- for most of my build scripts, I don't see why I'd need a
- config file just to save 4 bytes or so in a trackbuild wrapper :-)
-
-
-6.0 New features
- -------------
-
- See the TODO file in the docs directory.
-
- If you have any specific features you would like to see
- included, or have found any bugs, please
- email me <mozes@slackware.com>
-
-7.0 Licence
- -------
-
- slacktrack is distributed under BSD Licence.
diff --git a/source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_CHECKLIST b/source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_CHECKLIST
deleted file mode 100644
index 12817bebc..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_CHECKLIST
+++ /dev/null
@@ -1,244 +0,0 @@
-##########################################################################
-# Document: PACKAGE_BUILDING_CHECKLIST
-# Purpose : Check list for creation of Slackware packages
-# via .build scripts
-# Author..: Stuart Winter <mozes@slackware.com>
-# Date....: 04-Apr-2006
-# Version : 1.01
-##########################################################################
-# This document belongs to my 'slacktrack' program
-# http://www.slackware.com/~mozes
-##########################################################################
-# Changelog
-###########
-# v1.01 - 04-Apr-2006
-# * Added note about Slackware version 11 using root:root ownerships
-# for binary directories.
-# v1.00 - 01-Mar-2003
-# * Created
-###########################################################################
-Building the package via slacktrack
------------------------------------
-
-Let's assuming you're rebuilding the 'fetchmail' utilities package
-from Slackware-current.
-
- # cd slackware/slackware-current/source/n
- # slacktrack -jefkzcnp "fetchmail-6.2.0-sparc-2.tgz" "/bin/sh fetchmail.build"
-
-
-If you wanted to make slacktrack save the package into a different directory
-you would use the -b option, eg
- # slacktrack -b "/data/sparc-packages/n/" \
- -Qnp "fetchmail-6.2.0-sparc-2.tgz" "/bin/sh fetchmail.build"
-
-slacktrack now moves the package and its .txt description file into my
-Sparc port's 'n' series package directory.
-
-Your package compiles successfully and is now stored in
-/tmp/built-slackwarepackages/
-as fetchmail-6.2.0-sparc-2.tgz
-
-Testing the package
--------------------
-
-We must now manually check the integrity of the resulting package.
-
-The easiest way of examining the package is to run it through less.
- # less fetchmail-6.2.0-sparc-2.tgz
-
-[a] The 'install/slack-desc' file
- -----------------------------
-
- This is a text file in the standard 'slack-desc' format.
- It gives a brief description of the package and any relevant
- information.
-
- For examples you should look in the source directory
- of any slackware package.
-
-[b] The 'install/doinst.sh' file
- ----------------------------
-
- Unless you know what you are doing, your installation scripts should
- only refer to relative path names.
- For example:
-
- if [ ! -f etc/foo.conf ]; then
- mv -f etc/foo.conf.new etc/foo.conf
- fi
-
- This is because the user can specify a different root directory
- when installing the package. If your script uses absolute path names
- (path names begin with a /) then this script will not work as expected because
- installpkg only changes into the specified root directory and runs the script;
- it does not perform a chroot or anything similar.
-
-[c] Check permissions
- -----------------
-
- Ensure that there are no globally writeable files and directories
- that should not be there.
- PHP 4.3.0 is an all time classic example of why you should check
- your packages; it had globally writeable files in /usr/lib/php !
-
- You can feed slacktrack the --chmod-og-w option to help you
- deal with globally writeable files. However, it's best if you
- do it yourself from your script, and using this option is no
- excuse to not check !
-
-[d] Check file & directory ownerships
- -----------------------------------
-
- Unless specifically required, the files and directories should
- be owned by 'root' in the group 'root'.
- You may find that some source distributions install their files
- with different UIDs because they've simply copied them from the
- source ball -- so the files end up being owned by 'bob.users'
- or similar.
-
- However, also see the next check regarding binaries.
-
-[e] Check binary file & binary directory ownerships
- -----------------------------------------------
-
- Prior to Slackware version 11, the standard was to have binaries
- installed in
- /bin,/sbin,/usr/bin,/usr/sbin
- as owned by root:bin
-
- The directories (above) themselves should also have these ownerships.
-
- You can feed slacktrack the following options to help here:
- -e, --chown-bdirs-root-bin
- This runs chown root.bin over the binary directories listed above
- -f, -chown-bfiles-root-bin
- This runs chown root.bin over the FILES inside the binary directories
- listed above.
-
- Again, you should check the package incase there has been a problem.
-
- The -e and -f options are provided because *Slackware*'s .build scripts
- do not do chown them for you -- it is done manually by Pat.
-
- With Slackware version 11, those binary directories are owned by root:root.
- For slacktrack you can use the -m operator to have this set for you.
-
-[f] Ensure man pages are gzipped & any broken symlinks are fixed
- ------------------------------------------------------------
-
- Slackware's packages all (or at least should) have gzipped man pages.
- The man pages reside in numbered directories ('sections') within
- /usr/man
- eg man pages in section 1 reside in /usr/man/man1
-
- man pages that are *not* gzipped will not have a .gz extension.
- For example, the mkdir man page that is not gzipped would be:
- /usr/man/man1/mkdir.1
- The gzipped version is
- /usr/man/man1/mkdir.1.gz
-
- Some binaries behave differently when called with different names, or
- have different names for historical purposes.
- Such an example are packages from the 'floppy' Slackware package.
- /usr/bin/xdfformat is a symlink to /usr/bin/xdfcopy
- The man page is no different:
- xdfformat.1 -> xdfcopy.1
- By default, the Slackware 'floppy.build' script does not gzip man pages.
- It's easy to gzip man pages - slacktrack does this
- find usr/man -type f -print0 | xargs -0 gzip -9
- However, if you do an ls -l on the man1 directory, you will see
- that we have broken the xdffformat.1 symlink to xdfcopy.1
- because xdfcopy.1 is now named xdfcopy.1.gz
- The way to fix this would be to
- # rm -f xdffformat.1 ; ln -s xdfcopy.1 xdfformat.1
-
- The easiest way to ensure your man pages are gzipped and all symlinks
- are restored is to feed slacktrack the -z or --gzman option
- slacktrack will take care of your symlinks for you.
-
- Again, there is no excuse not to check manually !
-
-[g] strip binaries and shared objects
- ---------------------------------
-
- In order to reduce the size of the binary once installed and package,
- Slackware strips the libraries and binaries.
-
- For example, if we wanted to strip the grep program we would do
- # strip --strip-unneeded /bin/grep
-
- Stripping binaries from .build scripts called via slacktrack
- is fairly easy. There are two ways of doing it:
- [1] Let slacktrack take care of it
- -j or --striplib will cause slacktrack to strip
- any executable .so files it finds in /lib and /usr/lib
-
- -k or --stripbin will cause slacktrack to strip
- any executable binaries it finds in /bin,/sbin,/usr/bin,/usr/sbin
-
- [2] Do it yourself in the your build script - this is the preferred way.
- slacktrack exports an environment variable named
- SLACKTRACKFAKEROOT
- This enables you to do something like this
- # find ${SLACKTRACKFAKEROOT}/usr/lib -type f -name *.so -print0 | xargs -0 strip
- Using the environement variable prevents you from having to know
- all of the library & binary file names, as you will only find
- files that your build script has created in the fake root directory.
-
- * Note: You may find that some binaries or libraries break when they
- are stripped. This is because they require symbols that strip
- removes. This is why it's best to do your own binary and
- library stripping and individually strip the required files rather
- than letting slacktrack do it for you *
-
-[h] Check zero length files
- -----------------------
-
- slacktrack uses Slackware's makepkg program which should identify any
- zero length files for you. However, it's worth checking *why* any files
- are of zero length -- you will find that some of them are meant to be;
- the etc-*-noarch-*.tgz package's /etc/mtab file is an example of this.
-
- There should be no occasion for a binary or .so to be of zero bytes.
-
- If you're unsure of any zero length files, check out the next point.
-
-[i] Compare your package with the official package
- -----------------------------------------------
-
- If you are rebuilding/porting a Slackware package from -8.1 or -current
- (or any other version for that matter), then one of the easiest ways
- to give you some confidence that your package is official-looking is to
- simply examine the official package.
-
- This will allow you to see whether the file & dir permissions are the
- same as your own package, verify any zero length files and so on.
-
- Please note that if you DO find any zero length files or anything
- that you can easily PROVE is broken then *DO* submit a report
- to Slackware so that it can be fixed.
-
- If you're porting Slackware packages to a different architecture then
- obviously don't be overly concerned about file size differences -- although
- it's worth making sure you've stripped your binaries. You may actually
- find that some of the Slackware official packages aren't stripped.
-
-[j] Ensure your package root directory is chmod 755
- -----------------------------------------------
-
- prisere [packages] # tar ztvvf foo.tgz
- drwx------ root/root 0 2003-03-01 18:46:17 ./
-
- If you see this, your package IS BROKEN.
-
- Installing this package will render your system seriously
- broken because it will chmod 700 the root directory !
-
- By default slacktrack will chmod 755 the root directory, but
- as with everything else, you should check !
-
-
-
-That's about it. If you can think of any other checks then please
-email <mozes@slackware.com>
diff --git a/source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_URLS b/source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_URLS
deleted file mode 100644
index 801b8aa0a..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/PACKAGE_BUILDING_URLS
+++ /dev/null
@@ -1,38 +0,0 @@
-These are a few URLs that provide information about
-how to build packages for Slackware Linux:
-
- Slackware Linux Essentials book
- -------------------------------
-
- http://www.slackware.com/book/index.php?source=x4132.html
-
-
- Linux packages
- --------------
-
- This web site has a great number of pre-built packages for
- Slackware.
-
- It also has a HOWTO about building packages:
-
- http://www.linuxpackages.net/howto/howto.php?page=package
-
-
- Slackbuilds.org
- ------------------
-
- This site has a huge repository of build scripts for Slackware.
- They are all 'SlackBuild' type -- eg the 'clean' builds
- (the preferred method -- i.e. these do not need slacktrack)
-
- http://www.slackbuilds.org
-
-
- Slackware's official build scripts
- ----------------------------------
-
- I also recommend that you look at the official Slackware build
- scripts that can be found on the FTP site in the 'source'
- directory of the distribution
- (e.g. slackware/slackware-9.1/source)
-
diff --git a/source/d/slacktrack/slacktrack-project/docs/RELEASE_NOTES b/source/d/slacktrack/slacktrack-project/docs/RELEASE_NOTES
deleted file mode 100644
index 02876d898..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/RELEASE_NOTES
+++ /dev/null
@@ -1,137 +0,0 @@
-slacktrack version 2.00
-Release notes: 17th September 2008
-===================================
-
-Highlights:
------------
-
-slacktrack no longer uses 'installwatch' to track the installation
-process -- what was previously called 'altertrack' has been turned
-into 'slacktrack'.
-
-slacktrack's method of tracking package installations is to
-have the package installed directly onto the host's filesystem.
-
-This is for a number of reasons:
-
- 1. installwatch is ill maintained and was failing to work correctly
- with new versions of glibc and GNU 'coreutils'.
-
- 2. installwatch could not track statically compiled binaries,
- meaning that if a statically compiled binary was used to
- manipulate the filesystem in any way, these manipulations would
- not be reflected in your package contents.
-
- 3. With virtualisation -- QEMU, VMWare, SUN's VirtualBox -- being so
- readily available, and allowing filesystem 'snapshots', it's
- easier and easier to spin up a development operating system and
- build and install directly onto the root filesystem, thus getting
- a complete package.
-
-Upgrading your build scripts from slacktrack version 1.x
---------------------------------------------------------
-
-1. slacktrack internal variables
- -----------------------------
-
- $SLACKTRACKFAKEROOT
-
- This variable points to the location of the package's
- root filesystem (usually /var/tmp/<someplace>).
- Using slacktrack 1.x, you could perform operations on the
- package contents from your build script *during* the build
- process.
-
- In slacktrack 2.x, the package root directory is only populated
- after the build script has finished.
-
- However, the variable can still be used from a post-build
- script.
- You can use slacktrack's '-R' operator to specify a post-build
- script. In the example below, the post build script is
- called 'postbuildfixes.sh' and resides in the same directory
- as the 'trackbuild' script.
-
- ** Note: Ensure that your post-build script is chmod 755. **
-
-# Launch the build script:
-altertrack \
- --notidy \
- --showdeps \
- -T $TMP \
- -l $CWD/build.$ARCH.log \
- -R $CWD/postbuildfixes.sh \
- -b $PKGSTORE \
- -zIKASmg \
- -Ocp $PKGNAM-$PKGVERSION-$ARCH-$BUILD.tgz ./linuxdoc-tools.build
-
- The contents of this post build script can be something such as:
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-#!/bin/bash
-
-# Once altertrack has determined what the contents of the package
-# should be, it copies them into $SLACKTRACKFAKEROOT
-# From here we can make modifications to the package's contents
-# immediately prior to the invocation of makepkg: altertrack will
-# do nothing else with the contents of the package after the execution
-# of this script.
-
-# If you modify anything here, be careful *not* to include the full
-# path name - only use relative paths (ie rm usr/bin/foo *not* rm /usr/bin/foo).
-
-# Enter the package's contents:
-cd $SLACKTRACKFAKEROOT
-
-# OpenSP creates this symlink; we delete it.
-if [ -L usr/share/doc ]; then
- rm -f usr/share/doc
-fi
-
-# Incase you had CUPS running:
-rm -rf etc/cups etc/printcap
-# crond:
-rm -rf var/spool/cron
-rmdir var/spool
-
-# perllocal.pod files don't belong in packages.
-# SGMLSPL creates this:
-find . -name perllocal.pod -print0 | xargs -0 rm -f
-
-# Some doc dirs have attracted setuid.
-# We don't need setuid for anything in this package:
-chmod -R a-s .
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-
-2. Build script changes
- --------------------
-
- If your build scripts were more sophisticated and took advantage of
- the way installwatch used a pseudo root filesystem, please be acutely
- aware that your build script now runs on the host's live operating system;
- so you need to be more careful. However, as suggested -- run only on development
- installations.
-
-3. Additional files creeping into the packages
- -------------------------------------------
-
- Due to some daemons making changes to their config files whilst your build
- is in flight, you may find some additional files have crept into your package
- which you were not expecting.
-
- You may wish to turn off the following daemons before starting a build:
- CUPS
- crond
- sendmail
- ypbind (NIS)
- ypserv (NIS)
-
- If you look at the example post build script above, you can see that it
- removes some CUPS and crond residue.
- Whilst it would be possible to remove these paths from slacktrack's scan
- locations, some users may wish their package to place data in those directories;
- so you need to make your own adjustments and checks for this.
-
-
-END.
diff --git a/source/d/slacktrack/slacktrack-project/docs/SLACKDTXT.examples b/source/d/slacktrack/slacktrack-project/docs/SLACKDTXT.examples
deleted file mode 100644
index 9a57620a7..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/SLACKDTXT.examples
+++ /dev/null
@@ -1,103 +0,0 @@
-##########################################################################
-# Document: SLACKDTXT.examples
-# Purpose : Provide examples of how one may use slackdtxt
-# Author..: Stuart Winter <mozes@slackware.com>
-# Version : 1.00
-# Date....: 02-Mar-2003
-###########################################################################
-
-1.0 Building ProFTPD from Slackware's source directory
- --------------------------------------------------
-
-In this example, I have my slackware-current source tree
-stored in the directory ' /data2 '
-
-I want to compile ProFTPD using Slackware's SlackBuild script, but I want
-to move the package from /tmp (where SlackBuild stores it)
-into my Slackware binary directory
- /data2/slackware-current/slackware/n/
-and I also want to create a .txt description file in the same binary directory.
-
- 1. Enter the slackware-current source directory
- --------------------------------------------
-
- meths [proftpd] # pwd
- /data2/slackware-current/source/n/proftpd
- meths [proftpd] # ls
- _proftpd.tar.gz etc proftpd-1.2.7.tar.bz2 proftpd-1.2.7.tar.bz2.asc proftpd.SlackBuild slack-desc
-
-
- 2. Compile ProFTPd using the supplied SlackBuild script.
- -----------------------------------------------------
-
- meths [proftpd] # ./proftpd.SlackBuild
-
- [ .. snip lots of text as the package is compiled and built .. ]
-
- Our proftpd package is built in /tmp as this is where SlackBuild stores it.
-
- meths [proftpd] # ls -l /tmp/proftpd-1.2.7-i386-1.tgz
- -rw-r--r-- 1 root root 503169 Mar 3 00:43 /tmp/proftpd-1.2.7-i386-1.tgz
- meths [proftpd] #
-
-
- 3. Create the .txt file and move the package into the binary distribution directory
- ---------------------------------------------------------------------------------
- meths [proftpd] # slackdtxt -d /data2/slackware-current/slackware/n/ /tmp/proftpd-1.2.7-i386-1.tgz
- slackdtxt: Copying package to destination directory ....done
- slackdtxt: Verifying the version of the package in the destination directory ....done
- slackdtxt: Attempting to extract install/slack-desc from the package ....done
- slackdtxt: proftpd-1.2.7-i386-1.txt created
- slackdtxt: Deleting the original package ....done
- meths [proftpd] #
-
- In this instance I have extracted the slack-desc file from the /tmp/proftpd-1.2.7-i386-1.tgz
- package. Because I was in the source directory, I could have used the local slack-desc
- file and saved the overhead of having to untar. In order to do this I could have done:
-
- # slackdtxt -d /data2/slackware-current/slackware/n/ -s slack-desc /tmp/proftpd-1.2.7-i386-1.tgz
-
-
-Example 2: Creating .txt files from a bunch of packages
- --------------------------------------------
-
-In this example, I have built a number of packages already. They are
-stored in my binary distribution directory (/data2/slackware-current/slackware)
-but the packages do not have corresponding .txt files.
-
-I will use slackdtxt to create .txt files in the same directory as the package files.
-
-
- 1. Enter the slackware-current binary distribution directory
- ==========================================================
-
- meths [n] # pwd
- /data2/slackware-current/slackware/n
-
- These are the packages I have built previously.
-
- meths [n] # ls
- htdig-3.1.6-i386-2.tgz mod_ssl-2.8.12_1.3.27-i386-1.tgz mutt-1.4i-i386-1.tgz wget-1.8.2-i386-2.tgz
- meths [n] #
-
- 2. Create .txt files for all corresponding package files
- =====================================================
-
- meths [n] # slackdtxt *.tgz
- slackdtxt: Attempting to extract install/slack-desc from the package ....done
- slackdtxt: htdig-3.1.6-i386-2.txt created
- slackdtxt: Attempting to extract install/slack-desc from the package ....done
- slackdtxt: mod_ssl-2.8.12_1.3.27-i386-1.txt created
- slackdtxt: Attempting to extract install/slack-desc from the package ....done
- slackdtxt: mutt-1.4i-i386-1.txt created
- slackdtxt: Attempting to extract install/slack-desc from the package ....done
- slackdtxt: wget-1.8.2-i386-2.txt created
-
- meths [n] # ls
- htdig-3.1.6-i386-2.tgz mod_ssl-2.8.12_1.3.27-i386-1.tgz mutt-1.4i-i386-1.tgz wget-1.8.2-i386-2.tgz
- htdig-3.1.6-i386-2.txt mod_ssl-2.8.12_1.3.27-i386-1.txt mutt-1.4i-i386-1.txt wget-1.8.2-i386-2.txt
- meths [n] #
-
- All .txt files are now created.
-
-
diff --git a/source/d/slacktrack/slacktrack-project/docs/SLACKTRACK.examples b/source/d/slacktrack/slacktrack-project/docs/SLACKTRACK.examples
deleted file mode 100644
index 924f932f7..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/SLACKTRACK.examples
+++ /dev/null
@@ -1,34 +0,0 @@
-
-If you are looking for example scripts to help you use
-slacktrack please look in the documentation directory:
-
- /usr/doc/slacktrack*/buildscript-examples/
-
-Quick example:
---------------
-
-I will build the elvis editor that you can find in Slackware's
-'a' series. This is looking at an older version of the Slackware
-source tree (v 9.1) -- the build script has since been replaced
-by a 'SlackBuild', but this example still serves as a good example
-reference:
-
-bourbon [root] # cd slackware-9.1/source/a
-bourbon [elvis] # slacktrack -gfenzKSUIp elvis-2.41-i486-1.tgz ./elvis.build
-bourbon [elvis] # tar ztvvf /tmp/elvis-2.41-i486-1.tgz | head -n9
-drwxr-xr-x root/root 0 2003-07-11 09:26:05 ./
-drwxr-xr-x root/root 0 2003-07-11 09:26:04 usr/
-drwxr-xr-x root/bin 0 2003-07-11 09:26:05 usr/bin/
--rwxr-xr-x root/bin 301280 2003-07-11 09:26:05 usr/bin/elvis
--rwxr-xr-x root/bin 19956 2003-07-11 09:26:05 usr/bin/ref
--rwxr-xr-x root/bin 15160 2003-07-11 09:26:05 usr/bin/elvtags
--rwxr-xr-x root/bin 936180 2002-06-08 00:15:29 usr/bin/vim
-drwxr-xr-x root/root 0 2003-07-11 09:26:01 usr/share/
-drwxr-xr-x root/root 0 2003-07-11 09:26:04 usr/share/elvis-2.1_4/
-bourbon [elvis] #
-
-As you can see, we now have an elvis package with the
-correct ownerships set on the binary files and so on and
-so forth.
-
-Stuart.
diff --git a/source/d/slacktrack/slacktrack-project/docs/TODO b/source/d/slacktrack/slacktrack-project/docs/TODO
deleted file mode 100644
index 28c22b04a..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/TODO
+++ /dev/null
@@ -1,65 +0,0 @@
-To do list
-----------
-
-Likely to be done:
-==================
-
-This list represents changes that I am likely to implement myself:
-
-Thinking about it:
-==================
-
-1. Modify slacktrack to do a couple of scans of the filesystem prior to
- launching the build script.
- It'd compare the scans and add any differences to an exclude list -- since
- any such differences were not generated by the build script, thus should not
- be in the package.
- The purpose of this is to reduce the possibility of non package material making
- its way into the final .tgz.
- *However*, there's nothing to say that some arbitary cron job won't launch and
- modify the filesystem anyway -- so this sort of feature would only lead to
- confusion in the long run.
-
-2. Allow addition of exclude/additional scan dirs without having to replace
- the existing list.
- Suggested by: Eduard Rozenberg
-
-3. Compare contents of new package and warn about any overlapping files.
- This is harder to do that it sounds because the user may not be removing
- the previous package (although it's suggested that you do) because it's
- an integral system library or binary and they simply want to upgrade
- it and produce a package. This would always talk about overlap.
- We could get the 'base package name' of the supplied package
- and then remove it from any found ovelap results, but it seems
- a bit slow.
-
-Unlikely to be done:
-====================
-
-This list represents future additions that (for one reason or another) I am
-unlikely to implement. However, feel free to submit a patch (but ask me first -
-I don't like receiving unsolicited attachments!).
-
-2. Add an option to rename/move .conf files to conf.new
- Suggested by Geoffrey Sanders, based on an option protopkg supports.
-
- [..]
- > altertrack to (during it's file scan of new files for the package) to
- > move any newly created .conf (or any other type of config files) to a
- > *.new extension. Don't know how much work this would be...but thought
- > that it might be nice to add for those of us who may forget to 'backup'
- > any config's that may get stepped on.
- [..]
-
- I must admit that I'm not overly keen on this idea - it sounds too much
- like checkinstall -- add a feature that mainly works but breaks when you
- least expect it.
-
- Just moving the .conf to .conf.new is okay in theory but it may:
- a) catch people out who rely on the feature but where the config
- file isn't called '*.conf'
-
- b) if it updates the doinst.sh script, the shell script which changes
- the file name may need to be before or after the symlink creation
- code (if there is any).
-
diff --git a/source/d/slacktrack/slacktrack-project/docs/USAGE b/source/d/slacktrack/slacktrack-project/docs/USAGE
deleted file mode 100644
index 46ec1f1cc..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/USAGE
+++ /dev/null
@@ -1,8 +0,0 @@
-
-slacktrack and slackdtxt have full section 8 man pages. Please do
-
- # man slacktrack
- # man slackdtxt
-
-
-Stuart Winter <mozes@slackware.com>
diff --git a/source/d/slacktrack/slacktrack-project/docs/WARNINGS b/source/d/slacktrack/slacktrack-project/docs/WARNINGS
deleted file mode 100644
index 0ba7e31cb..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/WARNINGS
+++ /dev/null
@@ -1,38 +0,0 @@
-1. Do not Use on production servers
- ---------------------------------
-
- Do NOT run slacktrack on production servers.
-
- It should only be run on a development box.
-
- This is because slacktrack version 2.0 and upwards install onto
- the filesystem of the server, rather than into a pseudo root.
-
-2. Slackware versions
- ------------------
-
- slacktrack has been tested on:
- - Slackware 12.0, 12.1, 12.2, 13.0
- - ARMedslack, all versions.
-
- It may works on previous releases of Slackware, it may not.
-
-3. slacktrack default working space
- --------------------------------
-
- By default, slacktrack puts its work space in
- /var/tmp/<randomnumber>slacktrack
-
- It is essential that you have enough disk space on the
- partition on which /var/tmp resides - particularly if you use
- ${SLACKTRACKSCRATCHDIR}
-
- If you do not have enough space in /var/tmp then you can
- pass --tempdir to slacktrack to change the base temporary directory.
-
- eg you may do
- # slacktrack --tempdir /tmp/slacktrack -Qp "foobar-4.1-sparc-2.tgz" "/bin/sh foobar.build"
-
-
-Stuart Winter <mozes@slackware.com>
-
diff --git a/source/d/slacktrack/slacktrack-project/docs/buildscript-examples/README b/source/d/slacktrack/slacktrack-project/docs/buildscript-examples/README
deleted file mode 100644
index 5182cc992..000000000
--- a/source/d/slacktrack/slacktrack-project/docs/buildscript-examples/README
+++ /dev/null
@@ -1,19 +0,0 @@
-This directory contains example scripts on which you may
-base your own build scripts.
-
-Note that the packages and versions are not current, but their
-purpose is to serve as examples.
-
-Slackware's packaging standard is that documents in /usr/doc are
-chmod 644, so these examples are archived to retain the execute
-permissions on the build scripts.
-
-Please extract the archive to /tmp to begin:
-Example:
-
-mkdir -pm /tmp/slacktrack
-tar xf examples.tar.bz2 -C /tmp/slacktrack
-
---
-Stuart Winter <mozes@slackware.com>
-17th Sept 2008
diff --git a/source/d/slacktrack/slacktrack-project/ln-wrapper.c b/source/d/slacktrack/slacktrack-project/ln-wrapper.c
deleted file mode 100644
index 225c75767..000000000
--- a/source/d/slacktrack/slacktrack-project/ln-wrapper.c
+++ /dev/null
@@ -1,19 +0,0 @@
-// ln-wrapper.c by Jim Hawkins <jawkins@armedslack.org>
-// Call /bin/ln with the -f operator.
-// This file lives in /usr/libexec/slacktrack & is called by having this
-// directory as the first dir in your $PATH
-//
-
-#include <string.h>
-#include <unistd.h>
-
-#define LN_PATH "/bin/ln"
-
-int main(int argc, char *argv[])
-{
- char *argv2[argc + 2];
- memcpy(&argv2[2], &argv[1], sizeof(*argv) * argc);
- argv2[0] = LN_PATH;
- argv2[1] = "-f";
- return execv(LN_PATH, argv2);
-}
diff --git a/source/d/slacktrack/slacktrack-project/man/man.build b/source/d/slacktrack/slacktrack-project/man/man.build
deleted file mode 100755
index 12fb2fe2c..000000000
--- a/source/d/slacktrack/slacktrack-project/man/man.build
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-###########################################################################
-# Program: man.build
-# Purpose: Create an nroff format file from slacktrack's Perl POD
-# format manpage
-# Author : Stuart Winter <mozes@slackware.com>
-###########################################################################
-# Information about man pages:
-# http://www.fnal.gov/docs/products/ups/ReferenceManual/html/manpages.html
-# which describes creating man pages in nroff format.
-# However, it's easier (IMO) to create them in POD format.
-###########################################################################
-
-# Get version from the scripts
-SLACKTRACKVERSION="$( grep VERSION= ../scripts/slacktrack | tr -d =,\",[:alpha:] | awk '{print $2}' )"
-SLACKDTXTVERSION="$( grep VERSION= ../scripts/slackdtxt | tr -d =,\",[:alpha:] | awk '{print $2}' )"
-
-# Turn /usr/doc/slacktrack-@VERSION@ into usr/doc/slacktrack-1.02
-# You can't pipe sed into pod2man because pod2man then creates
-# the man page's name as 'STANDARD INPUT(8)' rather than 'SLACKTRACK(8)'
-sed s/@VERSION@/${SLACKTRACKVERSION}/g slacktrack.pod > SLACKTRACK.pod
-sed s/@VERSION@/${SLACKTRACKVERSION}/g slackdtxt.pod > SLACKDTXT.pod
-
-# Use pod2man to create an nroff compatible man page
-pod2man \
- --section=8 \
- --release="$(grep "^# Date" ../scripts/slacktrack | rev | awk '{print $1}' | rev)" \
- --center=' ' \
- --date="slacktrack Version ${SLACKTRACKVERSION}" \
- SLACKTRACK.pod 2>&1 > slacktrack.8
-
-pod2man \
- --section=8 \
- --release="$(grep "^# Date" ../scripts/slackdtxt | rev | awk '{print $1}' | rev)" \
- --center=' ' \
- --date="slackdtxt Version ${SLACKDTXTVERSION}" \
- SLACKDTXT.pod > slackdtxt.8
-
-# If we specified -t at the command line then display the man page & exit
-if [ "${1}" = "-t" ]; then
- man ./slacktrack.8
- man ./slackdtxt.8
- rm -f slacktrack.8 slackdtxt.8
-fi
-
-# Delete the butchered .pod files
-rm -f SLACKTRACK.pod SLACKDTXT.pod
-
-# EOF
-
diff --git a/source/d/slacktrack/slacktrack-project/man/slackdtxt.pod b/source/d/slacktrack/slacktrack-project/man/slackdtxt.pod
deleted file mode 100644
index a8b4f6210..000000000
--- a/source/d/slacktrack/slacktrack-project/man/slackdtxt.pod
+++ /dev/null
@@ -1,205 +0,0 @@
-=pod
-
-=head1 NAME
-
-slackdtxt - Create package description files for Slackware packages
-
-=head1 SYNOPSIS
-
-B<slackdtxt> B<[>optionsB<]> B<E<lt>tgz file or list of filesE<gt>>
-
-
-=head1 DESCRIPTION
-
-B<slackdtxt> is tool for creating the package description (packagename.txt)
-files that can be see in the Slackware package series directories. It can
-also optionally sign the Slackware package with your GnuPG secret key.
-
-All Slackware packages have an 'install/slack-desc' file contained within the
-package file. This file gives a brief description of the package and is displayed
-by the B<installpkg> program when the package is installed, or by B<upgradepkg>
-when the package is upgraded.
-
-Within the Slackware binary distribution package 'series' directories
-are the '.t?z' files and an accompanying .txt file. However, the slack-desc files
-contained within the .t?z often have comments and 'the handy ruler' which
-should B<not> appear the .txt version. B<slackdtxt> removes this and generates
-a 'standard' .txt version from the slack-desc file.
-
-B<slackdtxt> can either take an existing B<slack-desc> file and convert it, or
-extract the slack-desc from the specified .t?z package file.
-
-The basic purpose of B<slackdtxt> is to build .txt files after you have run
-Slackware's official B<SlackBuild> scripts. Slackware's SlackBuild scripts
-leave the packages in /tmp, and it is presumed that you would like to move
-them into a safe place and create a .txt file at the same time. Therefore slackdtxt
-enables you to specify a B<destination directory> in which to copy or move the .t?z
-and to create the .txt file.
-
-slackdtxt was written with porting Slackware to other architectures in mind.
-
-=head1 Slackware Package file extensions
-
-Starting with Slackware version 13, four types of package compression formats
-are suported.
-
-=over 4
-
-=item B<.tgz> - Gzip
-
-=item B<.tbz> - Bzip2
-
-=item B<.tlz> - LZMA
-
-=item B<.txz> - XZ
-
-=back
-
-Where this document mentions '.t?z', it refers to one of the above formats.
-
-
-
-=head1 OPTIONS - GENERAL
-
-=over 4
-
-=item B<-h>, B<--help>
-
-Show the available options and exit
-
-=item B<-v>, B<--version>
-
-Show the version information and exit
-
-=back
-
-=head1 OPTIONS - MAIN
-
-=over 4
-
-=item B<-s>, B<--slackdescfile> <path to slack-desc file>
-
-Specify the name of/path to the 'slack-desc' file.
-
-You would typically want to use this option if you are in the package
-build directory that contains the B<slack-desc> file.
-
-B<Note:> You cannot use this option when specifying more than
-one .t?z package file; all slack-desc files will be extracted
-from the .t?z file.
-
-This option is not mandatory.
-
-=item B<-d>, B<--destdir> <directory>
-
-If this option is specified, slackdtxt will move (or copy, see
-B<--nodelete>) the .t?z file into this directory. The .txt and .asc
-files will also be created in this directory.
-
-See the examples document for the purpose of this option.
-
-This option is not mandatory.
-
-B<Note:> Omitting this flag implies B<--nodelete>
-
-=item B<-n>, B<--nodelete>
-
-This option is used in conjunction with B<--destdir>
-
-With this option, when slackdtxt has created the .txt file and copied the .t?z file
-into the destination directory, it will not delete the original version.
-
-For example, if your file is F</tmp/foobar-2.0-i386-4.tgz>
-and you feed slackdtxt B<--destdir> F</data/slackware/> then
-the F</tmp/foobar-2.0-i386-4.tgz> will remain.
-
-By default, the original will be deleted B<unless> there is no
-destination directory specified by B<--destdir>
-
-=item B<-G>, B<--gpg-sign> <id>
-
-Sign the original .t?z package file with specified GnuPG key. The
-GnuPG signature file will have the same name as the .t?z file but with an
-extra B<.asc> suffixed (e.g. foobar-1.0-i486-5.tgz.asc).
-
-=back
-
-
-=head1 EXAMPLES
-
-=over 4
-
-=item # B<slackdtxt> foo-1.00-i486-1.tgz
-
-This will create a single file named foo-1.00-i486-1.txt
-within the current working directory. To specify a different
-directory, see options B<-d>, B<--destdir>
-
-=item # B<slackdtxt> *.t?z
-
-This will make slackdtxt create '.txt' files for every
-'.t?z' package file within the current working directory.
-
-=back
-
-=head1 RETURN VALUES
-
-These are the exit codes that slackdtxt will produce when it encounters
-certain problems. You may wish to use these return codes to indicate
-success or failure when slackdtxt is called from unattended auto builder
-scripts.
-
-=over 4
-
-=item B<0>
-Clean exit
-
-slackdtxt exited without encountering any errors.
-This is the default exit code.
-
-=item B<1>
-Reserved
-
-This error code is not currently used.
-
-=item B<6>
-Missing destination directory
-
-The destination directory specified by the B<--destdir> switch does not exist.
-
-=item B<7>
-Missing user specified file
-
-A file specified by the user does not exist. Typically this will
-be the .t?z package file.
-
-=item B<8>
-Error moving data or moved data is corrupt
-
-slackdtxt failed to copy or move a data file correctly, or the file
-was moved correctly (B<mv> or B<cp> did not exit with a non-zero value)
-but a further verify failed.
-
-=back
-
-
-=head1 FILES
-
-F</usr/bin/slackdtxt> the slackdtxt script
-
-F</usr/doc/slacktrack-@VERSION@/SLACKDTXT.examples> slackdtxt usage examples
-
-=head1 AUTHOR
-
-Stuart Winter <mozes@slackware.com>
-
-=head1 SEE ALSO
-
-=over 4
-
-B<slacktrack>(8), B<makepkg>(8), B<installpkg>(8), B<explodepkg>(8), B<removepkg>(8), B<pkgtool>(8), B<upgradepkg>(8)
-
-=cut
-=back
-
-
diff --git a/source/d/slacktrack/slacktrack-project/man/slacktrack.pod b/source/d/slacktrack/slacktrack-project/man/slacktrack.pod
deleted file mode 100644
index 07eac6a4d..000000000
--- a/source/d/slacktrack/slacktrack-project/man/slacktrack.pod
+++ /dev/null
@@ -1,949 +0,0 @@
-=pod
-
-=head1 NAME
-
-slacktrack - build Slackware packages from B<.build> scripts
-
-=head1 SYNOPSIS
-
-B<slacktrack> B<[>optionsB<]> -p B<">packagefilenameB<"> B<">buildscriptB<">
-
-
-=head1 DESCRIPTION
-
-B<slacktrack> is a packaging tool to build Slackware packages
-from simple B<.build> scripts, some of which can be found in the distribution
-source tree. B<slacktrack> has many features available to eliminate the
-majority of the manual element involved with producing packages from
-these scripts. B<slacktrack> uses the standard Slackware B<makepkg> program
-to produce the resulting packages.
-
-
-=head1 OPTIONS - GENERAL
-
-=over 4
-
-=item B<-h>, B<--help>
-
-Show the available options and exit
-
-=item B<-v>, B<--version>
-
-Show the version information and exit
-
-=back
-
-=head1 OPTIONS - SLACKWARE 'makepkg' PACKAGE MAKER
-
-The values from these options are passed to the Slackware
-B<makepkg> tool.
-
-=over 4
-
-=item B<-p>, B<--package> <package_name>
-
-Resulting tar file name of the package. This will be in the format
-of B<name>-B<version>-B<arch>-B<build>.tgz
-
-For example: B<slacktrack>-B<@VERSION@>-B<i386>-B<1>.B<tgz>
-
-=item B<-s>, B<--nosymlinks>
-
-Tell B<makepkg> not to search for symlinks in the package directory
-
-=item B<-r>, B<--setrootowner>
-
-Tell B<makepkg> to set permissions on directories to 755 and owners to root.root
-
-See also B<--chown-bdirs-root-bin>
-
-=item B<--mpopts>
-
-Supply additional options to B<makepkg>.
-
-Example: # B<slacktrack> --mpopts "--prepend" -Qnp foo-1.0-i486-1.tgz ./foo.build
-
-B<Note:> You B<must> include the additional options in either
-quotes (as shown in the example above) or single quotes otherwise slacktrack will take them
-as options to itself.
-
-=back
-
-=head1 OPTIONS - SPECIFIC SLACKTRACK OPTIONS
-
-=over 4
-
-=item B<-t>, B<--notidy>
-
-Do not delete temporary package directory when slacktrack has finished.
-slacktrack uses a temporary work space directory in /var/tmp (by default).
-This directory contains the package.tgz contents. This option can be
-useful when you are having difficulties with building the package, or
-for debugging slacktrack.
-slacktrack will inform you of the (randomly named) temporary directory
-when it has finished.
-
-=item B<-b>, B<--buildstore> <directory>
-
-Specify the location in which to store the built .tgz packages.
-By default this is B</tmp/built-slackwarepackages>, but you may wish
-to change it to another location. If this directory does not exist
-then slacktrack will default to using B</tmp>
-
-This directory also will contain any logs and the package description
-file (if specified).
-
-
-=item B<-l>, B<--logfile> <filename>
-
-slacktrack logs every element of the compilation and build process
-that the B<build script> outputs along with slacktrack's own on-screen
-output. The log file is especially useful for debugging a failed build.
-The default log path is B<E<lt>buildstore_pathE<gt>/E<lt>package_nameE<gt>.log>
-
-This option permits the user to specify a different directory for the
-logs rather than storing the .log in the same directory as the .tgz.
-
-=item B<-n>, B<--nologging>
-
-Do not save the log file when slacktrack has finished.
-See B<--logfile> above for a description of the contents of the log file.
-
-The default is to log.
-
-=item B<-D>, B<--md5sum>
-
-Create an MD5sum of the resulting package file in the package
-store directory (where the resulting package will be built; usually
-this is F</tmp>). The MD5sum file will be the same name as the resulting
-package file but with B<.md5> suffixed (e.g. foobar-1.0-i486-5.tgz.md5).
-
-This option does nothing if the B<--nocreatetgz> option has been
-specified.
-
-=item B<-G>, B<--gpg-sign> <key id>
-
-Sign the resulting package file with specified GnuPG key and
-placed the detached, armored signature in the package store directory (where
-the resulting package will be stored; usually this is F</tmp>). The GnuPG
-signature file will have the same name as the resulting package file but with
-an extra B<.asc> suffixed (e.g. foobar-1.0-i486-5.tgz.asc).
-
-This option does nothing if the B<--nocreatetgz> option has been specified.
-
-
-=item B<-z>, B<--gzman>
-
-Slackware's standard is that all man pages should be gzipped.
-This option makes slacktrack gzip any man pages that exist within the
-directories F</usr/man>, F</usr/local/man> and F</usr/X11R?/man>.
-
-The default is not to gzip man pages.
-
-Also see the B<--gzman-no-symfix>, B<--gzinfo> and B<--gzinfo-no-symfix> options.
-
-=item B<-I>, B<--gzinfo>
-
-Slackware's standard is that all GNU info pages should be gzipped.
-This option makes slacktrack gzip any info pages that exist within the
-directories F</usr/info> and F</usr/local/info>
-
-The default is not to gzip info pages.
-
-Also see the B<--gzinfo-no-symfix>, B<--gzman> and B<--gzman-no-symfix> options.
-
-=item B<-P>, B<--delete-perllocalpod>
-
-Delete any B<perllocal.pod> files found in the package's /usr/lib directory.
-
-These files contain information about a system's Perl packages installed
-in addition to the vendor's Perl distribution. Typically these files are
-created by the installation script of the additional Perl add-on package.
-
-However, they are snapshots of the particular system on which the Slackware
-package is made - and most likely will not reflect the target system's
-environment (the target is unlikely to have an identical set of additional
-Perl modules installed); thus these files should not be present in Slackware packages.
-
-The default is not to delete these files.
-
-=item B<-K>, B<--delete-usrinfodir>
-
-Delete the package's /usr/info/dir file if it exists. This file is
-a special file used by the GNU 'info' program to provide the user
-with a list of the info pages present on the system.
-Some software's Makefile will create a new 'dir' page that only contains
-information pertaining to the newly compiled software itself, rather than
-appending to the existing list of software.
-
-In the main you will want to use this option to avoid replacing the original
-/usr/info/dir file.
-
-However, the default is not to delete this file.
-
-
-=item B<-x>, B<--exclude> B<pattern for egrep>
-
-slacktrack traverses the filesystem using the UNIX 'find' utility and generates
-a 'snapshot' of the contents. grep -E (or B<'egrep'>) is then used to remove
-a number of paths and specific files from this snapshot; this is because
-these paths/directories either are locations that should never be installation
-destinations for software, or are system files that are subject to change
-moment to moment.
-
-This option allows you to replace the entire default pattern.
-
-By default, slacktrack excludes the following:
-
-EXCLUDE_LIST="${PWD}$|${PWD}|/etc/ntp/drift|/var/run/|/var/run$|/var/lib/dhcpcd|/var/lib/dhcpcd$|/etc/dhcpc/|/etc/dhcpc$|/var/cache/|/var/cache$|/run$|/run/|/media$|/media/|/srv$|/srv/|/selinux$|/selinux/|/var/lib/rpm|/var/lib/rpm$|/var/yp$|/var/yp/|/sys$|/sys/|/initrd$|/initrd/|/dev/bus$|/dev/bus/|/dev/char$|/dev/char/|/dev/rfkill|/dev/input$|/dev/input/|/dev/.udev/|/dev/.udev$|/dev/vc$|/dev/vc/|/dev/console|/dev/pts$|/dev/pts/|/dev/ptmx|/dev/tty|/var/log|/etc/mtab|/etc/resolv.conf|/etc/ld.so.cache|/tmp|/root|/proc|/var/tmp|/var/run/utmp|/var/spool/cron/cron|/var/lib/NetworkManager|/var/lib/NetworkManager$|/usr/man/whatis|/usr/local/man/whatis|/var/lib/pgsql$|/var/lib/pgsql|/var/lib/mysql$|/var/lib/mysql"
-
-This is a pattern for grep -E. Please familiarise yourself with the grep man page
-if you wish to make changes.
-
-It is recommended that these defaults are unchanged.
-
-In addition, slacktrack excludes the PWD (present working directory) from which slacktrack
-was invoked. This allows a package's source directory to be in a non-default excluded
-path and receive updates (such as log files) and avoid slacktrack including them in the
-newly created package file.
-
-=item B<-o>, B<--no-fs-search> B<pattern for find -regex (pre and post file system scans)>
-
-Prior to beginning a build, and post build, slacktrack uses the 'find' command to scan
-the OS' file system, and stores these records. The difference between the two records are used to
-determine the package's contents.
-
-There are some directory paths that should never be included within packages. By default
-this list is:
-
-SEARCH_EXCLUDE_LIST='mnt\|sys\|proc\|tmp\|home\|lib/udev/devices'
-
-B<Note:> The list uses escaped pipes and does not have a leading forward slash. The regex is
-applied to the --rootdir argument, so the excluded paths should be relative to that.
-
-This is a good set for a default Slackware installation, but some users have data
-in other directories which should never be included in a package. Scanning these additional
-directories takes extra time and serves no purpose.
-
-While the B<-x,--exclude> operator is applied to the final package contents list, B<-o, --no-fs-search> is applied
-before and can be used to significantly speed up the searches that build the before/after file lists.
-
-=item B<-d>, B<--depend> B<'>package1,package2B<'>
-
-Ensure the given Slackware packages are installed before executing
-the build script.
-
-This is a primative method of build-time dependency checking.
-It simply prevents the build from failing, or a certain feature from
-being compiled out because (at build time) you had not got a certain
-library installed.
-
-The packages are wildcarded by slacktrack, thus you do not have to specify
-version information. To depend on 'oggutils' being installed, you would
-specify B<-d "oggutils"> and slacktrack would find any installed version of the
-Slackware oggutils package.
-
-No depdendencies are checked by default.
-
-=item B<-j>, B<--striplib>
-
-The Slackware standard is to run B<strip --strip-unneeded> over any
-shared objects. This option causes slacktrack to strip any .so objects in
-/usr/lib, /usr/lib64, /lib64, /lib, /usr/local/lib and /usr/libexec
-
-Also see option -S, --stripallexec
-
-The default is not to strip.
-
-
-=item B<-A>, B<--striparchives>
-
-This option causes slacktrack to run the B<strip> program against any
-.a (archive) files that it finds in the package's directory.
-
-Only debugging symbols are stripped (B<strip -g>).
-
-For information about such files you should read ar(1) and ranlib(1).
-
-B<Note:> This option strips any .a files it finds within the package's directory
-rather than limiting itself to a pre-set list of directories (as with
-the other strip options that slacktrack provides).
-
-Also see option -S, --stripallexec
-
-The default is not to strip.
-
-
-=item B<-k>, B<--stripbin>
-
-The Slackware standard is to run B<strip --strip-unneeded> over any
-binary files. This option causes slacktrack to strip any binaries found
-in /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin and
-/usr/X11R?/bin.
-
-Also see option -S, --stripallexec
-
-The default is not to strip.
-
-
-=item B<-S>, B<--stripallexec>
-
-This option performs B<--striplib>, B<--stripbin> and B<--striparchives> but rather than
-limiting itself to a pre-set list of directories, it strips any files (with execute permissions)
-that the B<file> program reports as being unstripped ELF binaries. This includes
-B<.a archives>.
-
-The purpose of this command is to strip binaires and shared object files
-that are B<not> in the normal locations. An example of a known deviations is B</opt>
-
-Using this option is slower (especially when used with packages containing many
-files in deep directory structures) than using B<--striplib>, B<--stripbin> or B<--striparchives>
-options individually.
-
-If this option is also specified with B<--striplib>, B<--stripbin> or B<--striparchives> then
-those options are dropped in favour of the B<--stripallexec> mode of operation.
-
-The default is not to strip objects of any type.
-
-=item B<-c>, B<--createdescription>
-
-From Slackware 8.1 and upwards, the package series directories contain
-a B<name>-B<version>-B<arch>-B<build.txt> along with the package.
-
-Using this option causes slacktrack to create such a file in the
-build store directory (see the B<--buildstore> option)
-
-The default is not to create a description file.
-
-=item B<-e>, B<--chown-bdirs-root-bin>
-
-Prior to Slackware v11, the standard was to have the /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/sbin, /usr/local/bin and /usr/X11R?/bin directories owned by root:bin.
-
-Slackware v11 changed binary directory ownerships to 'root:root'.
-B<If you are building packages for a version of Slackware prior to version 11,
-you should use this operator>.
-
-B<Note:> If you use the B<--setrootowner> option then B<makepkg> will
-reset the directory permissions to root.root
-
-The default is not to set these ownerships.
-
-=item B<-f>, B<--chown-bfiles-root-bin>
-
-Prior to Slackware v11, the standard was to have binaries contained within
-the /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/sbin, /usr/local/bin
-and /usr/X11R?/bin directories owned by root:bin.
-
-B<If you are building packages for a version of Slackware prior to version 11,
-you should use this operator>.
-
-The default is not to set these ownerships.
-
-=item B<-m>, B<--chown-bins-root-root>
-
-The Slackware standard is to have the /bin, /sbin, /usr/bin, /usr/sbin,
-/usr/local/sbin, /usr/local/bin and /usr/X11R?/bin directories owned by root:root.
-
-If you are intending on building Slackware compliant packages, please use this
-operator.
-
-B<If you are building packages for Slackware versions prior to 11,
-please see the two operators listed above>.
-
-The default is not to set these ownerships.
-
-=item B<-g>, B<--chmod644docs>
-
-Often when installing documents, the permissions vary wildly.
-It is preferable if documents are chmod 644 and owned by
-the user 'root' and group 'root'.
-
-Using this option causes slacktrack to set all files contained
-within F</usr/doc> to chmod 644 and runs chmod -R root.root on the package's
-F</usr/doc> directory.
-
-The default is not to set these permissions.
-
-=item B<-U>, B<--nousrtmp>
-
-When compiling some programs (such as Apache), slacktrack sometimes picks up
-the /usr/tmp symlink. This symlink is part of another Slackware package
-and therefore should not be present in other packages.
-
-Using this option causes slacktrack to prevent this symlink from appearing
-in the resulting package.
-
-This behaviour is not the default.
-
-=item B<-Q>, B<--standard>
-
-This option is the combination of the following slacktrack's options:
-B<--gzman> (B<-z>), B<--gzinfo> (B<-I>), B<--delete-usrinfodir> (B<-K>),
-B<--stripallexec> (B<-S>), B<--createdescription> (B<-c>),
-B<--chown-bdirs-root-bin> (B<-m>), B<--chown-bins-root-root> (B<-f>),
-B<--chmod644docs> (B<-g>), B<--delete-perllocalpod> (B<-P>) and B<--nousrtmp> (B<-U>).
-
-It can be considered the quick way to build a package which follows
-the Slackware standard without specifying each
-individual command line switch.
-
-You would use this option as follows:
-
-# B<slacktrack> -Qp foo-2.0-i486-1.tgz ./foo.build
-
-
-=item B<-T>, B<--tempdir> B<'><path>B<'>
-
-slacktrack uses a temporary work space to store the package contents.
-By default, slacktrack will choose one in /var/tmp. However, you may wish
-to change it to another location should there not be enough space in
-/var/tmp to hold the temporary files.
-
-Please note that if the temporary directory (either automatically chosen by
-slacktrack or specified using this operator) already exists, slacktrack
-will exit with error code B<6>; the directory should be deleted prior
-to invoking slacktrack.
-
-=item B<-C>, B<--nocreatetgz>
-
-Do not execute the Slackware B<makepkg> program when the build script
-finishes. You may wish to use this option if you want to run makepkg
-by hand.
-
-Using this option implies B<--notidy>
-
-The default is to execute B<makepkg>
-
-=item B<-L>, B<--nologhardlinks>
-
-Some software distribution archive build scripts will use ln (hard link)
-instead of ln -s (soft link). Hard links which should not be
-allowed to make their way into a package that is to be distributed.
-
-By default, hard links are logged to screen and an additional
-.hardlinks.log file will be created in the build store directory.
-
-=item B<-O>, B<--chmod-og-w>
-
-Run 'chmod -R og-w' over the package directory.
-
-Some packages (such as PHP 4.3.0) install globally writeable files
-when it should not. This option runs chmod -R og-w over the entire
-package directory.
-
-This behaviour is not the default.
-
-=item B<-Z>, B<--gzman-no-symfix>
-
-Do not repair broken man page symlinks caused by the B<--gzman> option
-
-Some man pages are symlinks to other man pages. When the
-original file is gzipped, its name changes to name.x.gz
-and thus the symlink is broken.
-
-This option repairs such broken symlinks by renaming the
-symlink to name.x.gz and pointing it to the new .gz man page file.
-The symlink also has to be named .gz otherwise the B<man> program
-fails because it doesn't know that it is expecting a gzipped file.
-
-The default behaviour is to repair any broken symlinks.
-
-=item B<-F>, B<--gzinfo-no-symfix>
-
-Do not repair broken info page symlinks caused by the B<--gzinfo> option
-
-Some info pages are symlinks to other info pages. When the
-original file is gzipped, its name changes to name.gz
-and thus the symlink is broken.
-
-This option repairs such broken symlinks by renaming the
-symlink to name.gz and pointing it to the new .gz info page file.
-
-The GNU B<info> program is capable of working with broken symlinks
-but it is desirable to have the symlink corrected.
-
-The default behaviour is to repair any broken symlinks.
-
-
-=item B<-M>, B<--extra-mandir> <path>
-
-Append additional man page directories to the default list (F</usr/man>, F</usr/local/man>, F</usr/X11R?/man>).
-
-You would want to use this option if you are storing man pages in non-system
-locations such as /opt/kde/man and wish to gzip them using slacktrack's B<--gzman> option.
-
-Extra paths can be comma separated as shown below:
- B<# slacktrack --extra-mandir /opt/kde/man,/opt/prog/man>
-
-B<Warning:> Do B<not> specify paths other than directories that will
-contain man pages, otherwise normal files will become gzipped !
-
-
-=item B<-W>, B<--extra-infodir> <path>
-
-Append additional info page directories to the default list (F</usr/info>, F</usr/local/info>).
-
-You would want to use this option if you are storing info pages in non-system
-locations such as /opt/kde/info and wish to gzip them using slacktrack's B<--gzinfo> option.
-
-Extra paths can be comma separated as shown below:
- B<# slacktrack --extra-infodir /opt/kde/info,/opt/prog/info>
-
-B<Warning:> Do B<not> specify paths other than directories that will
-contain info pages, otherwise normal files will become gzipped !
-
-
-=item B<-E>, B<--extra-libdir> <path>
-
-Append additional shared object (library) directories to the default list (/lib, /usr/lib, /usr/local/lib).
-
-You would want to use this option if you are storing shared objects in non-standard locations
-and wish slacktrack to strip them using the B<--striplib> option.
-
-Multiple paths may be supplied by comma separating them.
-
-=item B<-B>, B<--extra-bindir> <path>
-
-Append additional binary directories to the default list
-(/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/X11R?/bin).
-
-You would want to use this option if you are storing binaries in non-standard locations
-and wish slacktrack to strip them using the B<--stripbin> option.
-
-Multiple paths may be supplied by comma separating them.
-
-=item B<-N>, B<--strip-prog> <path>
-
-Specify a different binary name for the B<strip> program. You may need
-to use this option if you are cross compiling and wanting to strip
-the resulting binaries.
-
-Example:
-# B<slacktrack> --strip-prog /usr/local/arm/2.95.3/bin/arm-linux-strip -mnzSIP foo-2.0-arm-1.tgz
-
-By default slacktrack will use the version of strip that it finds
-in the $PATH.
-
-
-=item B<-R>, B<--run-after> <command>
-
-Run the specified command/script after the specified build script has finished
-and prior to creating the package.
-
-The purpose of this is to allow the user to inspect and if required, modify
-the contents of the package before the package file is created.
-
-B<Note:> The CWD (working directory) is changed to the package's root
-directory before the specified command is executed. This allows you to
-specify (for example) /usr/bin/mc (Midnight Commander) and have
-it automatically display the contents of the package.
-
-Example:
-
-The following slacktrack command would run the Midnight Commander program
-F<mc> prior to creating the package B<foo-2.0-arm-1.tgz>.
-
-# B<slacktrack> -Rmc -mnzSIP foo-2.0-arm-1.tgz
-
-By default slacktrack does not execute any commands prior to creating
-the package.
-
-=item B<--run-after-withlog> <command>
-
-This option is the same as B<-R>, B<--run-after>, with the only difference being that
-any output from that script is logged to the slacktrack build log.
-
-If any of your post build scripts perform any checks that should be inspected
-manually after the package build completes, you'd be best choosing this option; but
-note that logging may not work properly for any scripts that require keyboard
-input or use curses based applications (such as 'dialog').
-
-=item B<--showdeps>
-
-This option lists the B<installed> Slackware packages (those that appear in
-F</var/log/packages>) that contain shared libraries upon which your new
-package depends.
-
-The purpose of this option for interest only but you may
-find it useful to ensure that you haven't built a package on a box that
-Xfree86 (for example) installed but intend to install and use the package
-on a box that does not, when the package has become linked against X's
-libraries.
-
-Using this option will also flag up 'orphaned' libraries (ones that
-do not belong to an installed package, which is especially handy
-if you're going to be distributing a package).
-
-The package dependencies (and orphans, if any) will be logged (regardless
-of whether logging is turned off) in text files that will be stored
-in the package build store (usually /tmp) under the following names:
-
-packagename.orphaned_ld_deps.log
-
-packagename.ld_deps.log
-
-B<Note:> Slackware does not have any form of dependency checking and
-as such any file you produce will not be considered by
-pkgtools. However, third parties have developed a standard that uses
-a single file to assist with the handling of automated dependency checking
-(when the package is installed via 3rd party package managers such as
-swaret, slapt-get et al). This file resides within the package as
-F</install/slack-required>. You may like to use this feature of
-slacktrack to help you generate such a file.
-
-The default behaviour is not to display dependencies.
-
-=item B<-X>, B<--delete-overlapping>
-
-After the filesystem comparison has been completed, slacktrack determines whether there
-are any files that overlap between the new package and those already installed on the
-running system. Normally there should be no overlapping files; however, some packages
-that provide additional Python or Perl libraries often re-process or re-compile some parts
-of the vendor-supplied package contents, causing slacktrack to correctly identify that
-the files have changed after the package build process has finished.
-
-It is undesirable for packages to have overlapping files because it is not
-possible to identify which is the master package. One of the side effects may be that
-the end user has problems with the installation order of the packages.
-
-slacktrack will identify any overlapping files and match them with the package(s) to which the file also belongs.
-Using this operator, slacktrack will erase any overlapping files from the content of the newly
-created package.
-
-The best practice is to review the package build log and investigate any overlapping files.
-It is the responsibility of the package builder (you) to determine why the file is overlapping
-and decide what to do with them.
-
-=item B<--allow-overlapping>
-
-Allow the package to contain files that overlap with packages that are already installed
-on the system. This is the default behaviour, if if you like to use slacktrack's -Q option to build
-an otherwise Slackware standards compliant package, you will need to supply this option afterwards
-to permit files to overlap.
-
-=item B<--touch-filesystem-first>
-
-Use the UNIX touch(1) tool to touch (set the objects' time stamps to the current system time)
-a pre-defined list of directories and their contents prior to generating the
-snapshot of the filesystem.
-
-The pre-defined paths are:
- /opt /bin /boot /dev /etc /install /lib /sbin /usr /var
-
-It B<excludes> by default '/lib/udev/devices' since this contains
-live device data that doesn't take kindly to being touched.
-You may see errors from 'touch' about certain binaries, including
-/sbin/vol_id because this is a symlink into /lib/udev/devices.
-
-This is intended to be used on a throwaway development installation
-that's reinstalled daily or more often.
-
-The reason behind this is that if you run slacktrack and your build
-partially fails, then it will leave some data on the filesystem.
-You then fix the problem and re-try: this time the build may succeed.
-However, if the original data on the filesystem from the first
-part-failed build has *not* changed (for example, if it was some static data that
-was copied with cp -a (preserved time stamp & ownership)) between
-the first part-failed build and second successful build, slacktrack
-will miss this data from the final package file.
-
-This option updates the file stamps contained within standard package
-directories, therefore allowing slacktrack to detect changes
-(even if the data contains an *old* time stamp from 1982, it will still
-detect the difference).
-
-B<Note:> This is an expert option and is not recommended for use unless
-you are working on a throw-away development installation.
-
-=item B<--touch-filesystem-faster>
-
-This operator performs the same function as B<--touch-filesystem-first> except
-that it uses a faster method; except that potentially speed comes at a price.
-
-If this method finds files or directories with spaces in the name, it
-may create empty files in your package's source build directory.
-
-For example:
-
-B</usr/doc/prog-2.0/FILE WITH A SPACE IN IT>
-
-You may find that you have six new files, "FILE", "WITH", "A", "SPACE," "IN", and "IT" existing
-in your package's build source directory.
-
-However, if you know that there are no files or directories with spaces in their names,
-feel free to use this option in preference to B<--touch-filesystem-first>.
-
-B<Note:> This is an expert option and is not recommended for use unless
-you are working on a throw-away development installation.
-
-
-=item B<-Y>, B<--delete-orphaned-pyc>
-
-After the build has completed, this option scans the contents of the new package,
-and if it finds any '*.pyc' files without a matching '*.py' file, the *.pyc file
-will be removed from the package contents (but not from the filesystem).
-
-This scan only checks the content of the B<package> not the filesystem. There may be
-a corresponding '*.py' file on the filesystem, but it wasn't created or modified
-during the build process of this particular package.
-
-When building Slackware's 'ap/linuxdoc-tools' package, we found that 'gnome doc-tools'
-was causing some Python '*.py' system files from the Python package to be recompiled
-(generating '*.pyc' files) but was not modifying the original '*.py' files.
-This meant that slacktrack was correctly detecting the changed '*.pyc' files and including
-them in the 'linuxdoc-tools' package; but this meant that we had file overlap
-with the 'd/python' package. Since the original '*.py' files were not modified,
-and the '*.pyc' files already existed in the Slackware Python package, they didn't
-need to be included in the 'linuxdoc-tools' package - and the overlapping files
-would have caused problems with package upgrades.
-
-This option is not on by default because it's quite conceivable that the user
-may wish to include '*.pyc' files without '*.py' files.
-
-If the directories and parent directories containing the *.pyc files become
-empty after this operation, then these directories are removed from the package.
-
-=back
-
-=head1 SPECIAL SLACKTRACK ENVIRONMENT VARIABLES
-
-slacktrack makes a small number of environment variables available to the
-build script(s). The variables allow build scripts to gain access to
-various inner-workings of slacktrack.
-
-=over 4
-
-=item B<SLACKTRACKFAKEROOT>
-
-This directory is the 'root' directory of the package. You may wish
-to access this directory during build or post-build time so that you can perform
-special operations that slacktrack itself cannot perfom.
-
-However, the to-be-packaged contents won't exist in this directory until
-B<after> the build script finishes and the package has installed itself
-to the filesystem; but you can still pre-populate it with content if you wish,
-although typically you'd perform these actions directly onto the filesystem
-and let slacktrack take care of packaging it.
-
-For example, whilst slacktrack is able to strip all ELF objects, it may
-be that a small number of the objects will not function when stripped, yet
-the rest will. Therefore you cannot use slacktrack's stripping options
-to accomplish this task; instead you can access the package's directory
-directly.
-
-You could do this using the following script, called from slacktrack
-using the B<-R, --run-after> operator:
-
-=item # B<slacktrack> -R $CWD/postbuildfixes.sh -Qp foo-1.0-i486-2.tgz ./foo.build
-
-
-B<Example post build script 1:>
-
-
-Where the 'postbuildfixes.sh' script contains:
-
-B<( cd ${SLACKTRACKFAKEROOT}
- strip usr/bin/foo
- strip bin/bar ) >
-
-
-B<Example post build script 2:>
-
-Another example would be to remove known files that were detected by slacktrack
-as being changed/added/updated during the build process, but that we do not want
-to be packaged. This is an easier method than using the B<-x,--exclude> operator.
-
-B<# Incase you had CUPS running:
- rm -rf etc/cups etc/printcap
- # crond:
- rm -rf var/spool/cron
- rmdir var/spool
- # perllocal.pod files don't belong in packages.
- # SGMLSPL creates this:
- find . -name perllocal.pod -print0 | xargs -0 rm -f
- # Some doc dirs have attracted setuid.
- # We don't need setuid for anything in this package:
- chmod -R a-s .
->
-
-B<Note:> You may use any shell commands once inside the package's root directory
-but be careful never to specify any paths within the B<real> root directory (for example
-F</usr> rather than F<usr>) in any of your commands.
-
-=back
-
-
-=over 4
-
-
-=item B<SLACKTRACKSCRATCHDIR>
-
-This directory provides a temporary 'scratch' directory for use by the
-build scripts. Its purpose is to allow the author to simplify the build scripts
-by removing the need to create and manage temporary directories where
-the source archives will be unpacked.
-
-Example usage:
-
-B< cd ${SLACKTRACKSCRATCHDIR}
- tar jxf /path/to/source/ball.bz2
- cd ball-2.3
- ./configure && make install >
-
-This directory is subject to the same command line options as the
-rest of the slacktrack temporary build tree; if --notidy is specified
-then this directory will remain, otherwise it is deleted.
-
-=back
-
-
-=head1 EXAMPLES
-
-=over 4
-
-=item # B<slacktrack> -p foo-0.10-i386-1.tgz '/bin/sh -x foo.build'
-
-This is the minimum selection of options you must pass to slacktrack.
-You are simply telling slacktrack the name of the resulting package file
-and specifying that slacktrack should launch "foo.build" via "/bin/sh"
-
-=item # B<slacktrack> -jmkznp bar-3.20-sparc-5.tgz ./bar.build
-
-We are telling slacktrack to strip libraries, chown root:root /bin
-/sbin, /usr/bin, /usr/sbin, /usr/local/sbin, /usr/local/bin and /usr/X11R?/bin directories,
-chown root:root files in the binary dirs, strip binaries found in the binary dirs listed above
-and gzip man pages.
-
-The resulting Slackware package name is 'bar-3.20-sparc-5.tgz'
-
-Note that I have compounded the various options; the above option list could
-also be specified as B<-j -m -k -z -n -p bar-3.20-sparc-5.tgz>
-
-=back
-
-There are various example scripts in F</usr/doc/slacktrack-@VERSION@/examples>
-
-=head1 WARNINGS
-
-=over 4
-
-
-=item B<Do not use slacktrack on production machines>
-
-Please do not run slacktrack on a production machine. Infact, it is advisable
-not build B<any> packages (either B<SlackBuild> or B<.build>) on production machines.
-
-Always use a development box.
-
-
-=item B<Slackware versions>
-
-slacktrack has only been tested on Slackware 8.1 & Slackware-9 and Splack (Slackware on SPARC,
-using Slackware 9's pkgtools & tar-1.13).
-
-It may works on previous releases of Slackware, it may not.
-
-=item B<slacktrack default working space>
-
-By default, slacktrack puts its work space in B</var/tmp/>
-
-It is essential that you have enough disk space on the
-partition on which /var/tmp resides. If you do not then you
-can pass B<--tempdir> to slacktrack to change the base temporary directory:
-
-# B<slacktrack> --tempdir /tmp/slacktrack -jefknzp "foobar-4.1-sparc-2.tgz" "/bin/sh foobar.build">
-
-=back
-
-=head1 RETURN VALUES
-
-These are the exit codes that slacktrack will produce when it encounters
-certain problems. You may wish to use these return codes to indicate
-success or failure when slacktrack is called from unattended auto builder
-scripts.
-
-=over 4
-
-=item B<0>
-Clean exit
-
-slacktrack exited without encountering any errors.
-This is the default exit code.
-
-=item B<1>
-Reserved
-
-This error code is not currently used.
-
-=item B<2>
-Missing command line parameters
-
-slacktrack was called with insufficient parameters or a parameter
-that requires a value was specified but no value was given.
-
-=item B<3>
-Slackware package dependencies failed
-
-slacktrack was asked to check that certain Slackware packages were installed.
-It didn't find at least one of the specified packages.
-
-=item B<4>
-Missing external helper
-
-slacktrack failed to find a required external helper. Currently the external helpers
-is the Slackware 'makepkg' utility.
-
-=item B<5>
-Zero files found in slacktrack's package-content-tracking working directory
-
-slacktrack failed to find any files installed as part of the build process.
-
-This error may be due to any of the following reasons:
-
-B<1.> The build script or command line specified did not exist or could not be executed.
-
-B<2.> The build script/command line exists but failed to be executed or executed and died with an error
-
-B<3.> The build script/command worked as expected but slacktrack failed to detect any activity.
-
-It is suggested that you run B<slacktrack> with the --notidy option and inspect
-the working space directory in /var/tmp/ to discover what the problem is.
-
-=item B<6>
-Possibly unsafe to continue operation.
-
-slacktrack determined that it was possibly unsafe to continue. This may be
-because it found the temporary directory to already exist (slacktrack needs
-to wipe the temporary directory), or it may get to a point where it needs to
-overwrite an existing file which would require manual intervention.
-
-Since slacktrack is designed to be scriptable, it will never prompt for human
-interaction - just fail with pre-set error codes which can be collected by
-caller scripts.
-
-=back
-
-=head1 FILES
-
-F</usr/bin/slacktrack> the slacktrack script
-
-F</usr/doc/slacktrack-@VERSION@/LICENCE> a copy of the GPLv2 licence
-
-F</usr/doc/slacktrack-@VERSION@/OVERVIEW> an overview of the Slackware package system & build scripts
-
-F</usr/doc/slacktrack-@VERSION@/PACKAGE_BUILDING_CHECKLIST> a checklist for package builders
-
-=head1 AUTHOR
-
-Stuart Winter <mozes@slackware.com>
-
-=head1 SEE ALSO
-
-=over 4
-
-B<makepkg>(8), B<installpkg>(8), B<explodepkg>(8), B<removepkg>(8), B<pkgtool>(8), B<upgradepkg>(8), B<slackdtxt>(8)
-
-=back
-=cut
-
-
diff --git a/source/d/slacktrack/slacktrack-project/old_stuff/findy b/source/d/slacktrack/slacktrack-project/old_stuff/findy
deleted file mode 100755
index 382eea481..000000000
--- a/source/d/slacktrack/slacktrack-project/old_stuff/findy
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash -x
-function package_name () {
- local PACKAGENAME="$( echo $1 | rev | cut -d- -f4- | rev )"
- echo ${PACKAGENAME}
-}
-
-
-PACKAGE=linuxdoc-tools-2.0-arm-1.txz
-
-# need to get the find op right.
-find . -path './install' -prune -o -type f -printf "%P\n" | egrep -v "^$" > /tmp/log # | \
-( cd /var/log/packages
- cat /tmp/log | while read file ; do
- grep -H "${file}" *
- done ) | sort | uniq | egrep -v "^$( package_name ${PACKAGE}).*:" > /tmp/log2 2>&1
-
-cat /tmp/log2
diff --git a/source/d/slacktrack/slacktrack-project/scripts/slackdtxt b/source/d/slacktrack/slacktrack-project/scripts/slackdtxt
deleted file mode 100755
index a32bf690f..000000000
--- a/source/d/slacktrack/slacktrack-project/scripts/slackdtxt
+++ /dev/null
@@ -1,312 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2002, 2009 Stuart Winter, Surrey, England, United Kingdom.
-# 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.
-#
-##################################################################################
-# Program: slackdtxt
-# Purpose: Create package-ver-arch-build.txt files from slack-desc files.
-# For use after running a SlackBuild script - you do not need to
-# use this program for a package produced by slacktrack -- use its
-# -c switch instead.
-# Author : Stuart Winter <mozes@slackware.com>
-# Date...: 24-Sep-2011
-# Version: 1.05
-#################################################################################
-# History
-##########
-# 24-Sep-2011 - v1.05
-# * Look for 'install/slack-desc' and './install/slack-desc'
-# in the packages. This provides support for malformed packages
-# that have not been created with the Slackware 'makepkg' command.
-# Thanks to Helmut Hullen for the suggestion.
-# 15-May-2009 - v1.04
-# * Adjust to handle .tgz, .tbz, .tlz, .txz file extensions/
-# compression formats.
-# 04-Sep-2008 - v1.03
-# * Display the filename of the .tgz being processed.
-# * .txt files now use the time stamp of the corresponding .tgz
-# * New default: only create a .txt or sign a package if there
-# isn't an existing .txt or .asc *or* the .txt's time stamp
-# isn't the same as the .tgz's.
-# * Fixed bug where the gpg signing key wasn't being picked up
-# at the command line.
-# * Always wipe temp file when exiting
-# * A GPG signing key must be specified -- it will not fall back
-# on the default. This is because the code to check check the
-# command line operators doesn't work. I checked the supplied
-# examples for getopt and even they don't work!
-# 28-Sep-2003 - v1.02
-# * Added option -G, --gpg-sign to sign the .tgz package
-# (Patch from Emanuele Vicentini)
-# * Removed -t option. You may now do specify the file after
-# as before (but without -t) or specify more than one package
-# at once: eg slackdtxt *.tgz
-# 11-Jul-2003 - v1.01
-# * Fixed problem with checking the exit code from getopt.
-# (reported by Emanuele Vicentini).
-# 02-Mar-2003 - v1.00
-# * Created
-##################################################################################
-
-# Program name
-PROGNAME=slackdtxt
-
-# Version
-VERSION="${PROGNAME} v1.03 by Stuart Winter <mozes@slackware.com>"
-
-# Temporary store for the slack-desc file
-DESCTMPFILE="/var/tmp/$$.slackdtxt.desc.$$"
-
-trap "rm -f $DESCTMPFILE" EXIT
-
-############################## Functions###################################
-function display_usage () {
-printf "Usage: ${PROGNAME} [options] <package file/list of package files>\n"
-if [ ! -z "$1" ]; then
- echo "Use $( basename $0 ) --help for a list of options"
-fi
-}
-
-function display_help () {
-printf "${VERSION}\n\n$(display_usage)
-
-Startup:
- -h, --help Display this help
- -v, --version Display version information
-
-Main options:
- -s, --slackdescfile <file> 'slack-desc' file (cannot be used when
- specifying more than one package file)
- -d, --destdir <directory> The directory in which to store the package
- file & create the .txt description file within
- Omitting this flag implies --nodelete
- -n, --nodelete Do not delete the original package file.
- once moved into destination directory
- -G, --gpg-sign <key id> Sign the package with GnuPG
- -f, --force Force creation of a .txt and GPG signing.
- By default, .txt files are only created and
- packages signed if there is no existing .txt
- or .asc file, or the .txt time stamps aren't
- the same as the package's.
-"
-}
-
-###############################################################################
-
-############################## Configuration variables #########################
-# These can be changed via the command line switches
-#
-DELETEPKG="Yes"
-# By default, don't force signing nor creation of .txt files
-FORCE=No
-################################################################################
-
-PARAMS="$( getopt -qn "$( basename $0 )" -o s:d:fnhvG: -l slackdescfile:,destdir:,nodelete,force,help,version,gpg-sign: -- "$@" )"
-# If params are incorrect then
-if [ $? -gt 0 ]; then display_help ; exit 2 ; fi
-eval set -- "${PARAMS}"
-for param in $*; do
- case "$param" in
- -s|--slackdescfile) SLACKDESCFILE="$2"
- shift 2;;
-
- -d|--destdir) DESTDIR="$2"
- shift 2;;
-
- -n|--nodelete) DELETEPKG="No"
- shift 1;;
-
- -f|--force) FORCE="Yes"
- shift 1;;
-
- -G|--gpg-sign) SIGNPACKAGE="Yes"
- SIGNINGKEY="$2"
- shift 2 ;;
-
- -h|--help) display_help ; exit ;;
-
- -v|--version) printf "${VERSION}\n" ; exit;;
-
- --) shift; break;;
- esac
-done
-
-# Do we have the relevant information to proceed?
-if [ -z "${1}" ]; then
- display_usage help
- exit 2
-fi
-
-# Do we have too *much* information to proceed?
-if [ $# -gt 1 -a ! -z "${SLACKDESCFILE}" ]; then
- echo "Error: You cannot specify a slack-desc file when"
- echo " specifying more than one package file"
- display_usage help
- exit 2
-fi
-
-# Let's check if user really has gpg.
-if [ "${SIGNPACKAGE}" = "Yes" ]; then
- which gpg >/dev/null 2>&1 || { echo "${PROGNAME}: Warning: Cannot find gpg; disabling signature creation"; unset SIGNPACKAGE; }
-fi
-
-# Main loop, handle any number (well, not really but you know..)
-# of package files specified at the command line.
-for PKGFILE in $*; do
-
-# If we were given a destination dir then check whether it exists
-# Now giving a dest dir allows us to do
-# # for i in *.t?z ; do slackdtxt -t $i ; done
-# and create .txt files for all the package files in a dir.
-if [ ! -z "${DESTDIR}" ]; then
- DESTDIR="${DESTDIR}/" # otherwise when we tar without specifying a dest dir, it becomes /package-blah.tgz
- if [ ! -d "${DESTDIR}" ]; then
- echo "${PROGNAME}: ERROR: The destination directory does not exist"
- exit 6
- fi
- else
- DELETEPKG="No" # otherwise we'd delete our only copy
-fi
-
-# Does the specified package exist?
-if [ ! -s "${PKGFILE}" ]; then
- echo "${PROGNAME}: ERROR: The specified package "${PKGFILE}" does not exist"
- exit 7
-fi
-
-# Does the specified slack-desc file exist ?
-if [ ! -z "${SLACKDESCFILE}" ]; then
- if [ ! -s "${SLACKDESCFILE}" ]; then
- echo "${PROGNAME}: Warning: The specified slack-desc file ${SLACKDESCFILE} does not exist;"
- echo " will try and extract from the package."
- unset SLACKDESCFILE
- else
- # .. the file is fine.
- # copy the slack-desc file to the temp location so I don't have
- # to code around having the user specify one and having to take one
- # from the package then delete it.
- cp -f "${SLACKDESCFILE}" "${DESCTMPFILE}"
- # .. but if copying it fails then we'll take it from the package anyway.
- if [ $? -gt 0 ]; then
- unset SLACKDESCFILE
- else
- SLACKDESCFILE="${DESCTMPFILE}" # we'll use the /var/tmp version now
- fi
- fi
-fi
-############################## Main program###################################
-
-# Move the pakage file to the dest dir if we were given one
-if [ ! -z "${DESTDIR}" ]; then
- echo -n "${PROGNAME}: Copying package to destination directory"
- cp -fa "${PKGFILE}" "${DESTDIR}"
- if [ $? -gt 0 ]; then
- printf "\n${PROGNAME}: ERROR: Failed to copy the package\n"
- exit 8
- else
- echo " ... done"
- fi
-fi
-
-# Test the copied package -- it probably isn't corrupt (eg no disk space on $DESTDIR)
-# as the cp would have errored, but I'd like to check anyway
-if [ ! -z "${DESTDIR}" ]; then
- echo -n "${PROGNAME}: Verifying the version of the package in the destination directory"
- tar ftz "${DESTDIR}$( basename ${PKGFILE} )" >/dev/null 2>&1
- if [ $? -gt 0 ]; then
- printf "\n${PROGNAME}: ERROR: The package in ${DESTDIR} is corrupt\n"
- exit 8
- else
- echo " ... done"
- fi
-fi
-
-# If we weren't given a slack-desc file then try and pull one from the
-# package
-if [ -z "${SLACKDESCFILE}" ]; then
- SLACKDESCFILE="${DESCTMPFILE}"
- echo "${PROGNAME}: Processing $( basename ${PKGFILE} ) ..."
- echo -n "${PROGNAME}: Attempting to extract install/slack-desc from the package"
- # In case somebody's not used 'makepkg' (which uses tar-1.13) to create the package,
- # and tar has created the archive index with absolute path names.
- # (it's a malformed package in this case, but we may as well support it)
- tar fOx "${PKGFILE}" install/slack-desc ./install/slack-desc > "${SLACKDESCFILE}" 2>/dev/null
- if [ ! -s "${SLACKDESCFILE}" ]; then
- printf "\n${PROGNAME}: ERROR: Failed to extract the slack-desc file from the package\n"
- rm -f "${SLACKDESCFILE}" # it may be zero bytes/empty
- exit 8
- else
- echo " ... done"
- fi
-fi
-
-# Turn the slack-desc file into a .txt file;
-# only if there isn't an existing .txt or the .txt is older than the package
-# unless -f,--force is specified.
-SLACKTXTFILE="${DESTDIR}$( echo $( basename $PKGFILE ) | rev | cut -d. -f2- | rev ).txt"
-if [ $SLACKTXTFILE -ot $PKGFILE -o $SLACKTXTFILE -nt $PKGFILE -o "$FORCE" = "Yes" ]; then
- egrep -v '^($|#| *\|)' "${SLACKDESCFILE}" > $SLACKTXTFILE
- rm -f "${SLACKDESCFILE}"
- # Set the time stamp to that of the package:
- touch -r $PKGFILE $SLACKTXTFILE
- echo "${PROGNAME}: $SLACKTXTFILE created"
- else
- echo "${PROGNAME}: Not created .txt - is same age as package (use -f to override)"
-fi
-
-# Let's sign the original package with user's gpg key
-if [ ! -z "${SIGNPACKAGE}" ]; then
-# If the .asc is the same time stamp as the package, don't sign unless
-# forced.
- if [ ${DESTDIR}${PKGFILE}.asc -ot $PKGFILE -o ${DESTDIR}${PKGFILE}.asc -nt $PKGFILE -o "$FORCE" = "Yes" ]; then
- echo -n "${PROGNAME}: signing ${PKGFILE} with ${SIGNINGKEY:-your default} key"
- GPG_OPTIONS="--detach-sign --armor --yes"
- if [ "${SIGNINGKEY}" ]; then
- GPG_OPTIONS="${GPG_OPTIONS} --local-user $SIGNINGKEY"
- fi
- gpg ${GPG_OPTIONS} --output ${DESTDIR}${PKGFILE}.asc ${PKGFILE}
- if [ $? -ne 0 ]; then
- echo "${PROGNAME}: ERROR: Signature has not been correctly generated"
- else
- echo " ... done"
- # Set time stamp to that of the package:
- touch -r $PKGFILE ${DESTDIR}${PKGFILE}.asc
- fi
- else
- echo "${PROGNAME}: Not signed package - is same age as package (use -f to override)"
- fi
-fi
-
-# Delete the package ?
-if [ "${DELETEPKG}" = "Yes" ]; then
- echo -n "${PROGNAME}: Deleting the original package"
- rm -f "${PKGFILE}"
- if [ $? -gt 0 ]; then
- printf "\n${PROGNAME}: Warning: unable to delete package\n"
- else
- echo " ... done"
- fi
-fi
-
-unset SLACKDESCFILE
-
-# Exit from main loop
-done
diff --git a/source/d/slacktrack/slacktrack-project/scripts/slacktrack b/source/d/slacktrack/slacktrack-project/scripts/slacktrack
deleted file mode 100755
index 27ab2be81..000000000
--- a/source/d/slacktrack/slacktrack-project/scripts/slacktrack
+++ /dev/null
@@ -1,1305 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2002-2017 Stuart Winter, Surrey, England, United Kingdom.
-# 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.
-#
-######################################################################################
-# Program: slacktrack
-# Purpose: Tracking & building packages for Slackware v9.1+
-# Inspired by Patrick Volkerding's 'bp' script
-#
-# This DOES NOT USE libsentry nor installwatch!
-# This WILL INSTALL THE PACKAGE ON THE SYSTEM (and updates the
-# /var/log/packages database so that you may remove the newly built package).
-#
-# * DO NOT USE THIS ON ANYTHING BUT A PACKAGE BUILDING DEVELOPMENT MACHINE *
-#
-# You MUST consult the FAQ before using this script so that you avoid
-# including unrelated files in your packages.
-#
-# Author : Stuart Winter <mozes@slackware.com>
-# Date...: 07-Jun-2017
-# Version: 2.18
-######################################################################################
-
-# Program name
-PROGNAME="slacktrack"
-
-# Version
-SLACKTRACKVERSION="${PROGNAME} v2.18 by Stuart Winter <mozes@slackware.com>"
-
-# Path to Slackware's makepkg
-MAKEPKG=/sbin/makepkg
-
-# Set defaults. These may be modified via the command line switches
-unset SLACKWAREPACKAGE PACKAGEDEPEND
-CREATESYMLINKS=Yes
-SETROOTOWNER=No
-CHOWNBINDIRSROOTBIN=No
-CHOWNBINFILESROOTBIN=No
-CHOWNBINSROOTROOT=No
-TIDYONFINISH=Yes
-GZMAN=No
-GZINFO=No
-GZMANFIXSYMLINKS=Yes
-GZINFOFIXSYMLINKS=Yes
-DELETEUSRINFODIR=No
-DELETEPERLLOCALPOD=No
-DELETEORPHANEDPYC=No
-STRIPPROG="$( which strip )"
-STRIPLIB=No
-STRIPBIN=No
-STRIPALLEXEC=No
-STRIPARCHIVES=No
-CREATEDESCRIPTION=No
-CHMODNOGLOBALWRITE=No
-CHMOD644DOCS=No
-BUILDSTORE=/tmp/built-slackwarepackages/ # if that dir doesn't exist it'll use /tmp
-LOGGING=Yes
-CREATEMD5SUM=No
-SIGNPACKAGE=No
-SIGNINGKEY=
-NOUSRTMP=No
-ALLOWOVERLAPPINGFILES=Yes
-LOGHARDLINKS=Yes
-SLACKTRACKLOGFILE="/var/tmp/$$.$(date +%s).${RANDOM}.slacktrack.log"
-MANDIR_LIST="/usr/man /usr/local/man /usr/X11R?/man /opt/kde/man"
-INFODIR_LIST="/usr/info /usr/local/info"
-LIBDIR_LIST="/usr/lib /usr/lib64 /lib64 /lib /usr/local/lib /usr/libexec"
-BINDIR_LIST="/bin /sbin /usr/sbin /usr/bin /usr/local/bin /usr/local/sbin /usr/X11R?/bin"
-ROOTDIR=/
-RUNCMDAFTER=
-RUNCMDAFTER_WITHLOG=No
-MAKEPKGOPTS=
-SHOWDEPS=No
-# Below is the list of files and directories that should be excluded from the list
-# of files that have changed since before and after the build.
-# It's in egrep's pattern format. Note that when this string is used in altertrack
-# (as it used to be called), we prefix everything with ^ meaning to only remove the
-# listed value if it is at the start of a line. Eg, /var/log/monkey.log would be removed
-# from the list (because /var/log is listed below), but /usr/monkey/var/log/monkey.log
-# would not.
-EXCLUDE_LIST="${PWD}$|${PWD}|/etc/ntp/drift|/var/run/|/var/run$|/var/lib/dhcpcd|/var/lib/dhcpcd$|/etc/dhcpc/|/etc/dhcpc$|/var/cache/|/var/cache$|/run$|/run/|/media$|/media/|/srv$|/srv/|/selinux$|/selinux/|/var/lib/rpm|/var/lib/rpm$|/var/yp$|/var/yp/|/sys$|/sys/|/initrd$|/initrd/|/dev/bus$|/dev/bus/|/dev/char$|/dev/char/|/dev/rfkill|/dev/input$|/dev/input/|/dev/.udev/|/dev/.udev$|/dev/vc$|/dev/vc/|/dev/console|/dev/pts$|/dev/pts/|/dev/ptmx|/dev/tty|/var/log|/etc/mtab|/etc/resolv.conf|/etc/ld.so.cache|/tmp|/root|/proc|/var/tmp|/var/run/utmp|/var/spool/cron/cron|/var/lib/NetworkManager|/var/lib/NetworkManager$|/usr/man/whatis|/usr/local/man/whatis|/var/lib/pgsql$|/var/lib/pgsql|/var/lib/mysql$|/var/lib/mysql"
-
-# The list of files/directories to exclude from the pre and post-file system scan.
-# Note that this is applied to the search itself, unlike EXCLUDE_LIST, which
-# means a) if you know what to exclude can make the install a lot faster and
-# b) it uses find's -regex syntax.
-# Paths are relative to ROOTDIR - if you amend these using the --no-fs-search operator
-# you will need to omit the '/' prefix as you can see below:
-SEARCH_EXCLUDE_LIST='mnt\|sys\|proc\|tmp\|home\|lib/udev/devices'
-
-# Default touch list:
-# (ideally there shouldn't be any directories called /install as these are part of the
-# package that are used during installation, and wiped afterwards; but occasionally
-# there is some residue due to a problematic package or a failed build):
-FSTOUCHLIST="/opt /bin /boot /etc /install /lib /usr/lib64 /lib64 /sbin /usr /var"
-
-# Basic sanity checks
-if [ ! -f "${MAKEPKG}" ]; then
- echo "ERROR: Unable to locate the Slackware 'makepkg' program"
- echo " Your system is broken. makepkg is part of the pkgtools"
- echo " package; you must install it to continue."
- exit 4
-fi
-if [ ! -d /var/log/packages -o ! -d /var/log/scripts ]; then
- echo "ERROR: Unable to find at least one of the package"
- echo " information repositories. Your system is broken!"
- exit 4
-fi
-
-
-############################################### Functions###################################
-function display_usage () {
-printf "Usage: ${PROGNAME} [options] -p <package_file_name> <command_line>\n"
-if [ ! -z "$1" ]; then
- echo "Use $( basename $0 ) --help for a list of options"
-fi
-}
-
-function display_help () {
-printf "${SLACKTRACKVERSION}\n\n$(display_usage)
-
-Startup:
- -h, --help Display this help
- -v, --version Display version information
-
-Options to Slackware's 'makepkg':
- -p, --package <package_name> Resulting tar file name of the package
- -s, --nosymlinks Do not create symlinks via install/doinst.sh script
- -r, --setrootowner Set permissions on directories to 755 and owners to root.root
- --mpopts \"<options>\" Specify additional options to 'makepkg'
-
-Specific slacktrack options:
- -t, --notidy Do not delete temporary package directory
- -b, --buildstore <directory> Location to store built packages
- [ default: ${BUILDSTORE} ]
- -l, --logfile <filename> Path of slacktrack's logfile
- [ default: (buildstore_path)/<package_name>.log ]
- -n, --nologging Delete log file upon slacktrack completing successfully
- -D, --md5sum Create an MD5sum file of the resulting package
- -G, --gpg-sign <key id> Sign the resulting package with GnuPG
- -z, --gzman gzip any man pages found in known locations
- -I, --gzinfo gzip any info pages found in known locations
- -Z, --gzman-no-symfix Do not repair broken symlinks caused by the --gzman option
- [ default is to fix broken symlinks ]
- -F, --gzinfo-no-symfix Do not repair broken symlinks caused by the --gzinfo option
- [ default is to fix broken symlinks ]
- -K, --delete-usrinfodir Delete package's /usr/info/dir file [default is no]
- -P, --delete-perllocalpod Delete perllocal.pod files found in /usr/lib & /usr/lib64 [default is no]
- -d, --depend \"package1,pack2\" Ensure Slackware packages are installed before continuing
- -j, --striplib Strip executable ELF .so objects in the library directories
- -A, --striparchives Strip .a (archive) files found anywhere within the package
- -k, --stripbin Strip executable ELF files in the binary directories
- -S, --stripallexec Strip all executable ELF objects found within the package
- -c, --createdescription Create a slack-desc file named <package-name>.txt in
- the build store path
- -e, --chown-bdirs-root-bin Set ownerships of the standard Slackware binary directories to
- 'root:bin'. If you use the --setrootowner option then it will
- reset the directory permissions to root:root
- -f, --chown-bfiles-root-bin Set ownerships of files contained within the standard Slackware
- binary directories to 'root:bin'
- -m, --chown-bins-root-root Set ownerships of files and directories in the standard Slackware
- binary directories to 'root:root'
- -g, --chmod644docs Run chmod 644 & chown root:root on files in package's /usr/doc/
- -U, --nousrtmp If /usr/tmp is a symlink, delete it and its contents
- -T, --tempdir <path> Specify a temporary path for the package building
- By default, slacktrack will choose one in /var/tmp
- -L, --nologhardlinks Do not log the existence of hard links
- -O, --chmod-og-w Run 'chmod -R og-w' over the package directory
- -x, --exclude '/foo|/bar' Supply replacement egrep pattern for dir/file exclusion
- -o, --no-fs-search 'foo\|bar' Supply replacement find regex pattern for pre and post-build file
- system scans. If you know where the package will install, this can
- significantly reduce the processing time. Paths are relative to --rootdir
- [default: mnt\|sys\|proc\|tmp\|home\|lib/udev/devices]
- -M, --extra-mandir <path> Append path to the man directory list
- -W, --extra-infodir <path> Append path to the info directory list
- -E, --extra-libdir <path> Append path to the lib directory list
- -B, --extra-bindir <path> Append path to the bin directory list
- -N, --strip-prog <path> Specify the location of the 'strip' binary
- -R, --run-after <cmd> Run command/script after build script finishes, without appending
- its output to the slacktrack log file.
- Use this for any post build processing scripts that require manual
- intervention or use a curses interface (for example a 'dialog' script).
- --run-after-withlog <cmd> Run command/script after build script finishes, appending any output
- to the slacktrack log file.
- -X, --delete-overlapping Remove any files from the resulting package's contents that overlap
- with any of the system's existing installed packages
- --allow-overlapping Permit the package to contain any files that overlap with existing
- installed packages [this is the default]
- -Q, --standard Select options required to build a compliant Slackware package
- --showdeps List the installed packages on which this new package depend
- --rootdir Change the directory that slacktrack considers to be the root
- [default: /]
- --touch-filesystem-first Touch files on the filesystem before scanning filesystem
- contents
- --touch-filesystem-faster Touch files on the filesystem before scanning filesystem
- contents, using a faster but less safe method
- than --touch-filesystem-first
- This option is _not_ recommended.
- -Y, --delete-orphaned-pyc Delete orphaned Python compiled *.pyc files from the package.
-
-Suggested usage: ${PROGNAME} -Qp foo-1.0-i486-1.txz ./foo.build
-"
-}
-
-# basename + strip extensions .tbz, .tgz, .tlz and .txz
-pkgbase() {
- echo "$1" | sed 's?.*/??;s/\.t[bglx]z$//'
-}
-# Function to retrieve the package name.
-# glibc-solibs-2.2-i386-1.tgz = glibc-solibs
-package_name() {
- # Strip version, architecture and build from the end of the name
- pkgbase $1 | sed 's?-[^-]*-[^-]*-[^-]*$??'
-}
-
-# Function to determine whether a supplied package name is already installed
-# Returns 0 if not installed, 1 if installed.
-# This function allows us to specify 'autoconf' for example, without having
-# to worry about the version number installed (unless you specifically want to,
-# in which case specify the version number as well - e.g. autoconf-2.54)
-function is_package_installed () {
- local PACKAGENAME="$1"
- local installed_package
-
- # We have to go through each package like this (rather than just do if -f foobar-*
- # because otherwise packges such as glibc, glibc-solibs and so on get wildcarded
- # and things get confused.
- for installed_package in $( find /var/log/packages/${PACKAGENAME}-* -type f -printf "%f\n" 2>/dev/null ) ; do
- installed_package="$( package_name ${installed_package} )"
- if [ "${installed_package}" = "${PACKAGENAME}" ]; then
- return 1 # the package 'short' name is installed
- break
- fi
- done
-return 0
-}
-
-# Check if we have any package dependencies. This is a lame way of doing it and
-# possibly proves nothing, but it saves me writing it in a few build scripts that
-# would otherwise fail when they haven't got package X installed.
-function check_package_dep () {
-local error pack
-# Change comma separated input into spaces and consider them one by one
-for pack in $( echo ${1} | sed s/,/\ /g ); do
- is_package_installed "${pack}"
- if [ $? -eq 0 ]; then
- echo "${PROGNAME}: dependency Slackware package '${pack}' not installed"
- error=y
- else
- echo "${PROGNAME}: dependency Slackware package '${pack}' is installed. OK!"
- fi
-done
-
-if [ ! -z "${error}" ]; then
- echo "Error: Package dependencies failed"
- return 1
-fi
-}
-
-
-# Function to move the temporary log file into the correct place & with the correct name.
-function move_log () {
-if [ "${LOGGING}" = "Yes" ]; then
- if [ -z "${USER_SLACKTRACKLOGFILE}" ]; then
- # Move /var/tmp/slacklog to /tmp/built-slackwarepackages/packagename.log
- mv -f ${SLACKTRACKLOGFILE} "${BUILDSTORE}/$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ).log" > /dev/null 2>&1
- else
- # The user specified their own log path; rename our /var/tmp/slacklog to their's
- mv -f ${SLACKTRACKLOGFILE} ${USER_SLACKTRACKLOGFILE} > /dev/null 2>&1
- fi
- else
- # We don't want a log, so we'll just delete the /var/tmp version
- rm -f ${SLACKTRACKLOGFILE}
-fi
-}
-
-# Tidy up the temporary directory (source extraction dir and pseudo root):
-function tidy_workspace () {
-( if [ "${TIDYONFINISH}" = "Yes" ]; then
- echo -n "${PROGNAME}: Deleting temporary directory"
- rm -rf /install/* /install > /dev/null 2>&1 # otherwise this may cause trouble for other builds
- rm -rf "${SLACKTRACKTMPPATH}"
- if [ $? -gt 0 ]; then
- echo " ... error removing"
- else
- echo " ... done"
- fi
- else
- rm -rf /install/* /install > /dev/null 2>&1
- echo "${PROGNAME}: Temporary workspace '${SLACKTRACKTMPPATH}' will remain"
-fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-}
-
-#############################################################################################
-PARAMS="$( getopt -qn "$( basename $0 )" -o p:b:l:d:M:N:W:E:x:o:B:R:T:DG:mnefgcsrthvzPAISjkKULOZQXY -l exclude:,no-fs-search:,mpopts:,tempdir:,package:,buildstore:,logfile:,depend:,delete-overlapping,allow-overlapping,extra-mandir:,extra-infodir:,run-after:,run-after-withlog:,extra-libdir:,extra-bindir:,strip-prog:,nologging,createdescription,gzman,gzinfo,gzman-no-symfix,gzinfo-no-symfix,striplib,striparchives,stripbin,stripallexec,nosymlinks,nousrtmp,chmod644docs,setrootowner,chown-bdirs-root-bin,chown-bfiles-root-bin,notidy,help,version,delete-usrinfodir,nologhardlinks,md5sum,gpg-sign:,chmod-og-w,standard,showdeps,rootdir:,chown-bins-root-root,touch-filesystem-first,touch-filesystem-faster,delete-perllocalpod,delete-orphaned-pyc -- "$@" )"
-
-# If params are incorrect then
-if [ $? -gt 0 ]; then display_help >&2 ; exit 2 ; fi
-eval set -- "${PARAMS}"
-for param in $* ; do
- case "$param" in
-
- -p|--package) SLACKWAREPACKAGE="$2"
- shift 2;;
-
- -b|--buildstore) BUILDSTORE="$2/"
- shift 2;;
-
- -l|--logfile) USER_SLACKTRACKLOGFILE="$2"
- shift 2;;
-
- -n|--nologging) LOGGING=No
- shift 1;;
-
- -D|--md5sum) CREATEMD5SUM="Yes"
- shift 1;;
-
- -G|--gpg-sign) SIGNPACKAGE="Yes"
- SIGNINGKEY="$2"
- shift 2;;
-
- -s|--nosymlinks) CREATESYMLINKS="No"
- shift 1;;
-
- -U|--nousrtmp) NOUSRTMP="Yes"
- shift 1;;
-
- -L|--nologhardlinks) LOGHARDLINKS="No"
- shift 1;;
-
- -O|--chmod-og-w) CHMODNOGLOBALWRITE="Yes"
- shift 1;;
-
- -T|--tempdir) SLACKTRACKTMPPATH="$2"
- shift 2;;
-
- -r|--setrootowner) SETROOTOWNER="Yes"
- shift 1;;
-
- --mpopts) MAKEPKGOPTS="$2"
- shift 2;;
-
- -e|--chown-bdirs-root-bin) CHOWNBINDIRSROOTBIN="Yes"
- CHOWNBINSROOTROOT="No"
- shift 1;;
-
- -f|--chown-bfiles-root-bin) CHOWNBINFILESROOTBIN="Yes"
- CHOWNBINSROOTROOT="No"
- shift 1;;
-
- -m|--chown-bins-root-root) CHOWNBINSROOTROOT="Yes"
- shift 1;;
-
- -g|--chmod644docs) CHMOD644DOCS="Yes"
- shift 1;;
-
- -t|--notidy) TIDYONFINISH="No"
- shift 1;;
-
- -c|--createdescription) CREATEDESCRIPTION="Yes"
- shift 1;;
-
- -j|--striplib) STRIPLIB="Yes"
- shift 1;;
-
- -k|--stripbin) STRIPBIN="Yes"
- shift 1;;
-
- -S|--stripallexec) STRIPALLEXEC="Yes"
- shift 1;;
-
- -A|--striparchives) STRIPARCHIVES="Yes"
- shift 1;;
-
- -N|--strip-prog) STRIPPROG="$2"
- shift 2;;
-
- -z|--gzman) GZMAN="Yes"
- shift 1;;
-
- -I|--gzinfo) GZINFO="Yes"
- shift 1;;
-
- -Z|--gzman-no-symfix) GZMANFIXSYMLINKS="No"
- shift 1;;
-
- -F|--gzinfo-no-symfix) GZINFOFIXSYMLINKS="No"
- shift 1;;
-
- -K|--delete-usrinfodir) DELETEUSRINFODIR="Yes"
- shift 1;;
-
- -P|--delete-perllocalpod) DELETEPERLLOCALPOD="Yes"
- shift 1;;
-
- -d|--depend) PACKAGEDEPEND="$2"
- shift 2;;
-
- -Y|--delete-orphaned-pyc) DELETEORPHANEDPYC="Yes"
- shift 1;;
-
- -x|--exclude) EXCLUDE_LIST="$2"
- shift 2;;
-
- -o|--no-fs-search) SEARCH_EXCLUDE_LIST="$2"
- shift 2;;
-
- -M|--extra-mandir) MANDIR_LIST="${MANDIR_LIST} $( echo ${2} | sed s/,/\ / )" # replace commas with spaces for 'for' loops
- shift 2;;
-
- -W|--extra-infodir) INFODIR_LIST="${INFODIR_LIST} $( echo ${2} | sed s/,/\ / )"
- shift 2;;
-
- -E|--extra-libdir) LIBDIR_LIST="${LIBDIR_LIST} $( echo ${2} | sed s/,/\ / )"
- shift 2;;
-
- -B|--extra-bindir) BINDIR_LIST="${BINDIR_LIST} $( echo ${2} | sed s/,/\ / )"
- shift 2;;
-
- -R|--run-after) RUNCMDAFTER="$2"
- shift 2;;
-
- --run-after-withlog) RUNCMDAFTER="$2"
- RUNCMDAFTER_WITHLOG="Yes"
- shift 2;;
-
- -v|--version) printf "${SLACKTRACKVERSION}\n" ; exit 0 ;;
-
- -h|--help) display_help ; exit 0 ;;
-
- -X|--delete-overlapping) ALLOWOVERLAPPINGFILES="No"
- shift ;;
-
- --allow-overlapping) ALLOWOVERLAPPINGFILES="Yes"
- shift ;;
-
- -Q|--standard) GZMAN="Yes"
- GZINFO="Yes"
- DELETEUSRINFODIR="Yes"
- STRIPALLEXEC="Yes"
- CREATEDESCRIPTION="Yes"
- CHMOD644DOCS="Yes"
- CHOWNBINSROOTROOT="Yes"
- NOUSRTMP="Yes"
- DELETEPERLLOCALPOD="Yes"
- ALLOWOVERLAPPINGFILES="No"
- shift ;;
-
- --showdeps) SHOWDEPS="Yes"
- shift ;;
-
- --rootdir) ROOTDIR="$2"
- shift 2;;
-
- --touch-filesystem-first) TOUCHFILESYSTEMFIRST=Yes
- shift ;;
- --touch-filesystem-faster) TOUCHFILESYSTEMFIRST=Yes
- TOUCHFILESYSTEMFASTER=Yes
- shift ;;
-
-
- --) shift; break;;
-esac done
-
-# The package name is the final argument in the list
-COMMANDLINESCRIPT="$@"
-
-#
-# Sanity checks:
-#
-# Support the user supplying the full path of the package name - e.g. slacktrack -p /tmp/foo-1.0-arm-1.tgz
-# rather than specifying slacktrack -b /tmp -p foo-1.0-arm-1.tgz
-if [ "$( dirname "$SLACKWAREPACKAGE" )" != "." ]; then
- BUILDSTORE="$( dirname "$SLACKWAREPACKAGE" )"
- SLACKWAREPACKAGE="$( basename "$SLACKWAREPACKAGE" )"
-fi
-
-# Do we have a package name & a build script ? If not, bomb out.
-if [ -z "${SLACKWAREPACKAGE}" -o -z "${COMMANDLINESCRIPT}" ]; then
- display_usage help >&2
- exit 2
-fi
-
-# Why don't we check to see if the build script exists?
-# Well, if I do "/bin/sh foo.build" -- how can I check whether it exists?
-# Just don't pass slacktrack duff stuff ;)
-
-# Check package dependencies
-if [ ! -z "${PACKAGEDEPEND}" ]; then
- check_package_dep "${PACKAGEDEPEND}" || exit 3
-fi
-
-# If we didn't specify a temporary directory then we need make a random one
-if [ -z "${SLACKTRACKTMPPATH}" ]; then
- SLACKTRACKTMPPATH="/var/tmp/$$.$(date +%s).${RANDOM}.slacktrack.FAKEROOT" # Temporary path for file translation
- else
- # Remove duplicate / otherwise it breaks further down when we egrep it out of the 'changed files'
- # list.
- SLACKTRACKTMPPATH="$( echo $SLACKTRACKTMPPATH | tr -s '/' )"
-fi
-
-# If we elected to strip everything in the entire package directory then
-# set the other two strip options to something sensible to display to the
-# user/log file.
-if [ "${STRIPALLEXEC}" = "Yes" ]; then
- STRIPLIB="Yes"
- STRIPBIN="Yes"
- STRIPARCHIVES="Yes"
-fi
-
-# Let's check if user really has gpg.
-if [ "${SIGNPACKAGE}" = "Yes" ]; then
- which gpg >/dev/null 2>&1 || { echo "${PROGNAME}: Warning: Cannot find gpg; disabling signature creation"; SIGNPACKAGE="No"; }
-fi
-
-# Display some info about the new package we're going to build
-(
-printf "
-Package information
---------------------------------------------------
-Slackware package name...........................: ${SLACKWAREPACKAGE}
-Build script/command line........................: ${COMMANDLINESCRIPT}
-Build package store..............................: ${BUILDSTORE}
-slacktrack log file..............................: ${SLACKTRACKLOGFILE}
-slacktrack temporary dir.........................: ${SLACKTRACKTMPPATH}
-Logging..........................................: ${LOGGING}
-Create an MD5sum of the resulting package........: ${CREATEMD5SUM}
-Sign the resulting package with GnuPG............: $( if [ "${SIGNPACKAGE}" = "Yes" ]; then echo "with ${SIGNINGKEY:-your default} key" ; else echo "No" ; fi )
-Create description file..........................: ${CREATEDESCRIPTION}
-Log hard links...................................: ${LOGHARDLINKS}
-chmod -R og-w....................................: ${CHMODNOGLOBALWRITE}
-chown root:bin binary directories................: ${CHOWNBINDIRSROOTBIN}
-chown root:bin binaries in bin dirs..............: ${CHOWNBINFILESROOTBIN}
-chown root:root binary dirs & files..............: ${CHOWNBINSROOTROOT}
-chmod 644 & chown root:root /usr/doc/*...........: ${CHMOD644DOCS}
-Additional options to 'makepkg'..................: $( if [ -z "${MAKEPKGOPTS}" ]; then echo "[ None ]" ; else echo "${MAKEPKGOPTS}" ; fi )
-Tell 'makepkg' to create symlinks................: ${CREATESYMLINKS}
-Call 'makepkg' with --setrootowner...............: ${SETROOTOWNER}
-Tidy on finish...................................: ${TIDYONFINISH}
-gzip man pages...................................: ${GZMAN}
-gzip info pages..................................: ${GZINFO}
-Fix broken gz man page symlinks..................: ${GZMANFIXSYMLINKS}
-Fix broken gz info page symlinks.................: ${GZINFOFIXSYMLINKS}
-Delete package's /usr/info/dir page..............: ${DELETEUSRINFODIR}
-Delete perllocal.pod files in /usr/lib{,64}......: ${DELETEPERLLOCALPOD}
-Strip executable ELF binaries....................: ${STRIPBIN}
-Strip executable ELF shared objects..............: ${STRIPLIB}
-Strip .a (archive) files.........................: ${STRIPARCHIVES}
-Strip all executable ELF files...................: ${STRIPALLEXEC}
-Path to strip utility............................: ${STRIPPROG}
-Shared objects (libraries) dirs..................: ${LIBDIR_LIST}
-Binary objects dirs..............................: ${BINDIR_LIST}
-Man page dirs....................................: ${MANDIR_LIST}
-Info page dirs...................................: ${INFODIR_LIST}
-Delete /usr/tmp symlink..........................: ${NOUSRTMP}
-Show dependencies to other packages..............: ${SHOWDEPS}
-egrep pattern for dir/file/path exclusion........: ${EXCLUDE_LIST}
-File system pre & post scan path exclusion regex : ${SEARCH_EXCLUDE_LIST}
-Command/script to run after build script.........: $( if [ -z "${RUNCMDAFTER}" ]; then echo "None" ; else echo ${RUNCMDAFTER} ; fi )
-Directory slacktrack considers is root...........: ${ROOTDIR}
-Allow files to overlap with other packages.......: ${ALLOWOVERLAPPINGFILES}
-Delete orphaned Python *.pyc files...............: ${DELETEORPHANEDPYC}
-Touch filesystem contents first..................: $( if [ -z "${TOUCHFILESYSTEMFIRST}" ]; then echo "No" ; else echo "in $FSTOUCHLIST" ; fi )
---------------------------------------------------\n"
-) 2>&1 | tee ${SLACKTRACKLOGFILE}
-
-# Ensure that the temporary directory (either one chosen by slacktrack or set manually
-# with --tempdir) does not exist.
-# A user may expect slacktrack to choose its own directory within a sub directory
-# which it deliberately does not do.
-# It's safest to abort if the directory exists to avoid destroying user data.
-if [ -d "${SLACKTRACKTMPPATH}" ]; then
- echo "${PROGNAME}: ERROR: Temporary directory ${SLACKTRACKTMPPATH} already exists"
- echo " Please delete this directory before trying again."
- exit 6 # error code=unsafe to continue
- else
- # We're safe to create the directory:
- mkdir -pm700 "${SLACKTRACKTMPPATH}"
-fi
-
-# Create a temporary 'scratch' directory inside the slacktrack
-# temporary dir. This is to save build scripts managing their own
-# temporary directories should the author be too lazy ;)
-export SLACKTRACKSCRATCHDIR="${SLACKTRACKTMPPATH}/SCRATCHDIR"
-mkdir -pm700 "${SLACKTRACKSCRATCHDIR}"
-
-export SLACKTRACKFAKEROOT="${SLACKTRACKTMPPATH}/TRANSL"
-mkdir -pm755 "${SLACKTRACKFAKEROOT}"
-
-# Touch the contents of the filesystem.
-( if [ "${TOUCHFILESYSTEMFIRST}" = "Yes" ]; then
- echo -n "${PROGNAME}: Touching contents of"
- for touching in $FSTOUCHLIST ; do
- if [ -d "$touching" ]; then
- echo -n " $touching"
- # Also, exclude /lib/udev/devices:
- if [ "${TOUCHFILESYSTEMFASTER}" = "Yes" ]; then
- find $touching -path '/lib/udev/devices' -prune -o -print | xargs touch -c
- else
- # Do it the slower but safer, preferred way:
- # This method handles files/dirs with spaces in the names - the above, faster method
- # may fail to touch some files that have spaces in their file names - therefore you cannot
- # be certain that a full 'state of the system' has been captured, which may lead to
- # some new/modified files being excluded from the resulting .t?z package upon build completion.
- find $touching -path '/lib/udev/devices' -prune -o -print | xargs -I '{}' touch -c '{}'
- fi
- # Update symlink time stamps on the symlink targets:
- # There's not really any point in doing this actually since the build script
- # or makefile would have to use ln -fs as well, in which case slacktrack
- # would find the change with just the regular touching.
- # To do this reliably, you could patch 'ln' to always force overwriting of the
- # target.
- # But if we wanted to, here's how we'd do it:
- # find $touching -path '/lib/udev/devices' -prune -o -type l -printf "ln -nfs "%l" "%p"\n" | bash
- fi
- done
- echo
-fi ) 2>&1 | tee ${SLACKTRACKLOGFILE}
-
-# Generate list of files on the system prior to executing the build script
-#
-# I remove /mnt, /proc, /tmp and /home here to make the find
-# execute more quickly. I have a box NFS mounted on /mnt
-# so it's highly undesirable to scan another OS installation
-# in addition to our own ;-)
-BEFOREFILESLIST="${SLACKTRACKTMPPATH}/before_files.list"
-AFTERFILESLIST="${SLACKTRACKTMPPATH}/after_files.list"
-NEWFILESLIST="${SLACKTRACKTMPPATH}/new_files.list"
-DIRLIST="${SLACKTRACKTMPPATH}/dir.list"
-
-echo -n "${PROGNAME}: Finding files on the system, please wait"
-( cd ${ROOTDIR}
- find . \( -regex "./\(${SEARCH_EXCLUDE_LIST}\)" -prune \) -o -not -name . -printf "%p %T@ %s\n" | cut -d. -f2- > ${BEFOREFILESLIST} ) >/dev/null 2>&1
-echo " ... done"
-
-# Launch build script with logging
-if [ "${LOGGING}" = "Yes" ]; then
- [ -x /usr/libexec/slacktrack/ln ] && export PATH=/usr/libexec/slacktrack:$PATH
- ( printf "\n\n\n[$( date "+%D %r" )] ${PROGNAME}: Executing command line '${COMMANDLINESCRIPT}'\n\n"
- ${COMMANDLINESCRIPT}
- EXIT_CODE=$?
- if [ ${EXIT_CODE} -gt 0 ]; then
- printf "\n\n[$( date "+%D %r" )] ${PROGNAME}: * WARNING: ${COMMANDLINESCRIPT} returned exit code ${EXIT_CODE} *\n\n"
- fi
- printf "[$( date "+%D %r" )] ${PROGNAME}: Command line '${COMMANDLINESCRIPT}' finished\n\n"
- ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
- else
- # Launch build script without logging (allows perl's CPAN interface to work)
- ( printf "\n\n\n[$( date "+%D %r" )] ${PROGNAME}: Executing command line '${COMMANDLINESCRIPT}'\n\n"
- [ -x /usr/libexec/slacktrack/ln ] && export PATH=/usr/libexec/slacktrack:$PATH
- ${COMMANDLINESCRIPT}
- EXIT_CODE=$?
- if [ ${EXIT_CODE} -gt 0 ]; then
- printf "\n\n[$( date "+%D %r" )] ${PROGNAME}: * WARNING: ${COMMANDLINESCRIPT} returned exit code ${EXIT_CODE} *\n\n"
- fi
- printf "[$( date "+%D %r" )] ${PROGNAME}: Command line '${COMMANDLINESCRIPT}' finished\n\n"
- )
-fi
-
-
-# Generate list of files post installation
-# Again we miss out /mnt et al to speed up the process.
-echo -n "${PROGNAME}: Finding files on the system, please wait"
-( cd ${ROOTDIR}
- find . \( -regex "./\(${SEARCH_EXCLUDE_LIST}\)" -prune \) -o -not -name . -printf "%p %T@ %s\n" | cut -d. -f2- > ${AFTERFILESLIST} ) >/dev/null 2>&1
-echo " ... done"
-
-# Generate new list of files on the system (compare before and after file list)
-# and delete the list of files/dirs that match the egrep pattern exclude list.
-echo -n "${PROGNAME}: Comparing file lists"
-diff -Bbu ${BEFOREFILESLIST} ${AFTERFILESLIST} | grep "^+" | awk '{print $1}' | cut -d+ -f2- | \
-egrep -v "^(/$|\+\+$|${EXCLUDE_LIST}|${SLACKTRACKTMPPATH}$|${SLACKTRACKTMPPATH}/)" > ${NEWFILESLIST}
-echo " ... done"
-
-# Remove all non-empty directories from our package contents list
-# If we don't and we have any non-empty directories that have
-# changed (or been accessed) then the tar (below) ends up
-# including the directory & contents in its entirety into our new package!
-cd ${SLACKTRACKFAKEROOT}
-echo -n "${PROGNAME}: Removing non-empty directories from package contents list"
-( cd ${ROOTDIR}
- cat ${NEWFILESLIST} | while read fileline ; do
- if [ -d "./${fileline}" ]; then
- # We only retain the *empty* directories otherwise any directories
- # created by our build scripts (such as place holders) will be
- # removed. Everything contained within the non-empty directories will
- # be picked up by tar.
- if [ "$( find "./${fileline}" | wc -l )" -ne 1 ]; then
- echo "${fileline}" >> "${DIRLIST}"
- fi
- fi
- done ) > /dev/null 2>&1
-( cat ${NEWFILESLIST} ${DIRLIST} | sort | uniq -u > ${NEWFILESLIST}.new ) > /dev/null 2>&1
-mv -f ${NEWFILESLIST}.new ${NEWFILESLIST}
-echo " ... done"
-
-# Copy the changed files into our temporary package directory
-echo -n "${PROGNAME}: Copying the new/changed files into temporary directory"
-( cd ${ROOTDIR} ; cut -d/ -f2- ${NEWFILESLIST} | tar pvvcf - -T- | tar -C${SLACKTRACKFAKEROOT} -pxf - ) >/dev/null 2>&1
-echo " ... done"
-
-# Do we have any files in the temporary directory ?
-if [ "$( find ${SLACKTRACKTMPPATH}/TRANSL -print | wc -l )" -le 1 ]; then
- ( printf "slacktrack: failed to track any activity\n"
- printf " Perhaps the build script doesn't exist or is broken\n\n"
- printf " ERROR: Cannot build a package\n\n"
- ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
- move_log # we will want to log this error incase we're using slacktrack through an unattended auto builder
- tidy_workspace # clean up workspace
- exit 5
-fi
-
-# Get back inside the package's root directory
-# (we shouldn't have left it because all cding is done inside subshells
-# but it doesn't hurt)
-cd ${SLACKTRACKFAKEROOT}
-
-# Determine whether there are any files that overlap with other packages on the filesystem.
-# These should be avoided since they may cause problems when upgrading packages (how would we know
-# which package 'really' owns the file?)
-# Output a list of all files *not* owned by the name of the package you're building
-# (this caters for situations when the package you're building cannot be removed from the
-# filesystem of a running system ("zlib" is an example)).
-shopt -s extglob # needed to find package names
-cd /var/log/packages # we need to enter a directory that doesn't contain the archive (*.t?z) filename of the package
-find . -type f -not -name $( package_name ${SLACKWAREPACKAGE} )-+([^-])-+([^-])-+([^-]) | xargs sed -s -e '1,/FILE LIST:/d' | egrep -v '\/\.\/|^install/' > ${SLACKTRACKTMPPATH}/packaged_and_owned_files.list
-shopt -u extglob # return to previous behaviour
-cd ${SLACKTRACKFAKEROOT}
-
-# Find the unique entries in the packaged/owned files (there are lots of duplicate entries for /bin and so on)
-# then merge it in with the list of new files we've found when creating this package, and finally
-# identify the overlapping (duplicated) entries:
-# Remove the absolute path name from the list of new files detected, so that we can compare them with the
-# list in /var/log/packages:
-sed 's?^/??g' ${SLACKTRACKTMPPATH}/new_files.list > ${SLACKTRACKTMPPATH}/new_files_noabsolutepath.list
-sort -u ${SLACKTRACKTMPPATH}/packaged_and_owned_files.list | sort -m ${SLACKTRACKTMPPATH}/new_files_noabsolutepath.list - | uniq -d > ${SLACKTRACKTMPPATH}/overlapping_files.list
-# Match an overlapping file to its package name and print out the list:
-# This flapping between subshells and the parent is due to 'shopt' not working properly inside subshells
-# and the need to direct the output of slacktrack to the log file.
-# It's messy and horribly inefficient -- if you know of a better way, let me know!
-if [ -s ${SLACKTRACKTMPPATH}/overlapping_files.list ]; then
- ( echo "${PROGNAME}: Warning - found file overlap with existing packages:" ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
- pushd /var/log/packages > /dev/null
- shopt -s extglob # needed to find package names
- cat ${SLACKTRACKTMPPATH}/overlapping_files.list | while read ofile ; do
- # Identify the package(s!) that contains the overlapping file, but exclude the package name
- # that we're currently building (it could be the case that an older version of the package
- # we're currently building is already installed that also contains overlapping files. I assume
- # that you're going to replace this older package, so it's not worth identifying the overlapping
- # file as belonging to this other version).
- # The following only works with 'new' (Slackware 8.1+) style package names: "foo-1.0-arm-1.t?z"
- foundpkg="$( grep "$( echo "$ofile" )" * | awk -F: '{print $1}' | egrep -v "^$( package_name ${SLACKWAREPACKAGE} )-[^-]*-[^-]*-[^-]*$" | sed '2,$s/^/\t\ \ \ \ /' )"
- if [ ! -z "$foundpkg" ]; then
- ( # We found it in a package:
- echo "File: $ofile"
- echo "Package(s): $foundpkg" ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
- fi
- done
- popd > /dev/null
- shopt -u extglob # return to previous behaviour
- if [ "${ALLOWOVERLAPPINGFILES}" = "No" ]; then
- ( echo -n "${PROGNAME}: Deleting overlapping files from the package contents"
- cat ${SLACKTRACKTMPPATH}/overlapping_files.list | while read ovlpfile ; do
- rm -f "${SLACKTRACKFAKEROOT}/${ovlpfile}"
- done
- echo " ... done" ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
- fi
- fi
-
-# Restore original directory permissions from root filesytem.
-# Why? Because we only store (in our file list), EMPTY directories. Example:
-# I chmod 700 /etc/rc.d (which contains many startup scripts)
-# My new file rc script is called 'rc.foo' and this is the only thing that's changed
-# within /etc/rc.d. Therefore slacktrack only preserves the file name
-# '/etc/rc.d/rc.foo', so tar has to create etc/rc.d for itself -- it has no
-# information about its permissions/ownerships.
-# Why don't I just tar up the directory? read the comments above the code that does the tar.
-( if [ -s ${DIRLIST} ]; then
- echo -n "${PROGNAME}: Restoring directory permissions & ownerships"
- cat ${DIRLIST} | while read line ; do
- find "${ROOTDIR}/${line}" -mindepth 0 -maxdepth 0 -printf "%U:%G" | xargs -0i chown {} "./${line}"
- find "${ROOTDIR}/${line}" -mindepth 0 -maxdepth 0 -printf "%m" | xargs -0i chmod {} "./${line}"
- done
- echo " ... done"
-fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# Get back inside the package's root directory
-# (we shouldn't have left it because all cding is done inside subshells
-# but it doesn't hurt)
-cd ${SLACKTRACKFAKEROOT}
-
-# Create a temporary package using "makepkg" to contain everything that
-# we have detected should be in the new package.
-# This will be used to populate the /var/log/packages/$package entry - the only thing we're doing
-# in this block of code is to generate the package entry for the build box, so that the build "mess" can be
-# removed cleanly. The reason we do this here rather than use the contents of the $package (the final .t?z) is
-# because post-build, we modify some files (such as gzipping man pages), and as such when we removepkg $package,
-# removepkg won't delete /usr/man/man1/bash.1 because the entry would contain /usr/man/man1/bash1.gz
-# First copy the contents to another temporary location so that makepkg can slice and dice it.
-( echo -n "${PROGNAME}: Creating entries for $( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ) in /var/log/{packages,scripts}"
- cp -fa ${SLACKTRACKFAKEROOT} ${SLACKTRACKTMPPATH}/makepkg.tmppkg
- cd ${SLACKTRACKTMPPATH}/makepkg.tmppkg
- # Create a slack-desc that identifies this as a slacktrack special.
- mkdir -pm755 install
- NOEXTPKGNAM=$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev )
-cat << EOF > install/slack-desc
- |-----handy-ruler------------------------------------------------------|
-${NOEXTPKGNAM}: $NOEXTPKGNAM
-${NOEXTPKGNAM}:
-${NOEXTPKGNAM}: This package entry represents the filesystem as it was when slacktrack
-${NOEXTPKGNAM}: finished executing your build script.
-${NOEXTPKGNAM}:
-${NOEXTPKGNAM}: There has been no post processing on the contents of the package
-${NOEXTPKGNAM}: (for example, no compression of man pages).
-${NOEXTPKGNAM}:
-${NOEXTPKGNAM}: The primary purpose of this entry is to allow easy removal of the
-${NOEXTPKGNAM}: package contents with the Slackware removepkg tool.
-${NOEXTPKGNAM}:
-EOF
-
- ${MAKEPKG} -l y -c n ${SLACKTRACKTMPPATH}/${SLACKWAREPACKAGE} >/dev/null 2>&1
- # We don't need to install it on to the root filesystem since we already have the contents,
- # all that we need is the /var/log/{packages,scripts} entries to allow manipulation by pkgtools.
- mkdir -pm755 ${SLACKTRACKTMPPATH}/fakeinstalldir
- installpkg --root ${SLACKTRACKTMPPATH}/fakeinstalldir ${SLACKTRACKTMPPATH}/${SLACKWAREPACKAGE} >/dev/null 2>&1
- cp -fa ${SLACKTRACKTMPPATH}/fakeinstalldir/var/log/scripts/$NOEXTPKGNAM /var/log/scripts/ >/dev/null 2>&1
- cp -fa ${SLACKTRACKTMPPATH}/fakeinstalldir/var/log/packages/$NOEXTPKGNAM /var/log/packages/ >/dev/null 2>&1
-echo " ... done" ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# gzip man pages ?
-# Note that we prefix the dir name with ./ - this is so that if users specify
-# additional directories with --extra-xxxdir and include / , then it doesn't actually
-# *look* in the root dir.
-( if [ "${GZMAN}" = "Yes" ]; then
- echo -n "${PROGNAME}: gzipping man pages"
- for man_dir in ${MANDIR_LIST}; do
- if [ -d "./${man_dir}" ]; then
- ( find ./${man_dir} -type f -name '*.bz2' -print0 | xargs -0 bzip2 -df ) >/dev/null 2>&1
- ( find ./${man_dir} -type f -print0 | xargs -0 gzip -9f ) >/dev/null 2>&1
- ( find ./${man_dir} -type f -print0 | xargs -0 chmod 644 ) >/dev/null 2>&1
- fi
- done
- echo " ... done"
-
- if [ "${GZMANFIXSYMLINKS}" = "Yes" ]; then
- echo -n "${PROGNAME}: Fixing any broken symlinks in man page directories"
- # Fix up symlinks unless instructed not to
- for man_dir in ${MANDIR_LIST}; do
- if [ -d "./${man_dir}" ]; then
- ( cd ./${man_dir}
- # Enter each man page directory (man1,man2..) and whittle them down one by one
- for i in $( find . -type d -maxdepth 1 -printf "%P\n" | grep -v "^$" ); do
- # We cd into the man dir then use find to construct some shell commands & pipe into
- # bash for execution. Neat huh? ;)
- cd ${i} && ( find . -type l -printf "rm -f %P ; ln -s %l.gz %p.gz\n" ) | /bin/bash && cd ..
- done
- )
- fi
- done
- echo " ... done"
- fi
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# Delete any perllocal.pod files found in /usr/lib:
-( if [ "${DELETEPERLLOCALPOD}" = "Yes" ]; then
- echo -n "${PROGNAME}: Deleting perllocal.pod files in /usr/lib and /usr/lib64"
- ( find usr/lib{,64} -name perllocal.pod -print0 | xargs -0 rm -f ) >/dev/null 2>&1
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# Delete package's /usr/info/dir ?
-# You're more than likely going to want to do this.
-( if [ "${DELETEUSRINFODIR}" = "Yes" -a -f usr/info/dir ]; then
- echo -n "${PROGNAME}: Deleting /usr/info/dir"
- rm -f usr/info/dir
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# gzip info pages ?
-( if [ "${GZINFO}" = "Yes" ]; then
- echo -n "${PROGNAME}: gzipping info pages"
- for info_dir in ${INFODIR_LIST}; do
- if [ -d "./${info_dir}" ]; then
- ( find ./${info_dir} -type f -name '*.bz2' -print0 | xargs -0 bzip2 -df ) >/dev/null 2>&1
- ( find ./${info_dir} -type f -print0 | xargs -0 gzip -9f ) >/dev/null 2>&1
- ( find ./${info_dir} -type f -print0 | xargs -0 chmod 644 ) >/dev/null 2>&1
- fi
- done
- echo " ... done"
-
- if [ "${GZINFOFIXSYMLINKS}" = "Yes" ]; then
- echo -n "${PROGNAME}: Fixing any broken symlinks in info page directories"
- # Fix up symlinks unless instructed not to
- for info_dir in ${INFODIR_LIST}; do
- if [ -d "./${info_dir}" ]; then
- ( cd ./${info_dir} && ( find . -type l -printf "rm -f %P ; ln -s %l.gz %p.gz\n" ) | /bin/bash )
- fi
- done
- echo " ... done"
- fi
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Strip shared objects ?
-( if [ "${STRIPLIB}" = "Yes" ]; then
- echo -n "${PROGNAME}: Stripping unstripped ELF shared objects"
- for i in ${LIBDIR_LIST}; do
- ( cd ./${i} && find . -name '*.so*' -type f \( -perm -100 -o -perm -010 -o -perm -001 \) -print0 | xargs -0 file | egrep '(ELF.*shared.*not stripped)' | awk -F: '{print $1}' | xargs ${STRIPPROG} -p --strip-unneeded ) > /dev/null 2>&1
- done
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Strip .a (archive) files ?
-( if [ "${STRIPARCHIVES}" = "Yes" ]; then
- echo -n "${PROGNAME}: Stripping .a (archive) files"
- ( find . -name '*.a' -type f -print0 | xargs -0 ${STRIPPROG} -p -g ) > /dev/null 2>&1
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Strip binaries?
-( if [ "${STRIPBIN}" = "Yes" ]; then
- echo -n "${PROGNAME}: Stripping unstripped ELF binaries"
- for i in ${BINDIR_LIST}; do
- ( cd ./${i} && find . -type f \( -perm -100 -o -perm -010 -o -perm -001 \) -print0 | xargs -0 file | egrep '(ELF.*not stripped)' | awk -F: '{print $1}' | xargs ${STRIPPROG} -p --strip-unneeded ) >/dev/null 2>&1
- done
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Strip everything? This does the same as the above but instead it does it across
-# the entire package directory -- therefore it finds stuff in /opt and anywhere else
-# that files have been created. You may prefer to use this option if you already use -jkA
-# but it's worth noting that it will take longer (especially on a package with many files
-# in a deep directory structure)
-( if [ "${STRIPALLEXEC}" = "Yes" ]; then
- echo -n "${PROGNAME}: Stripping all unstripped executable ELF files"
- ( find . -type f \( -perm -100 -o -perm -010 -o -perm -001 \) -print0 | xargs -0 file | egrep '(ELF.*not stripped)' | awk -F: '{print $1}' | xargs ${STRIPPROG} -p --strip-unneeded ) >/dev/null 2>&1
- # Strip the .a archives
- ( find . -name '*.a' -type f -print0 | xargs -0 ${STRIPPROG} -p -g ) > /dev/null 2>&1
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# If we find <package_builddir>/usr/tmp is a symlink then delete it.
-# Some programs such as Apache seem to put stuff in here. /usr/tmp is a symlink and is
-# created by Slackware's 'aaa_base' package.
-( if [ "${NOUSRTMP}" = "Yes" -a -h "usr/tmp" ]; then
- echo "${PROGNAME}: Deleting /usr/tmp symlink from package build directory"
- rm -rf "${SLACKTRACKTMPPATH}/TRANSL/usr/tmp"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Run chmod -R og-w over the package directory ?
-# In general you won't want to do this because you should take care of your
-# own permissions on a per-build-script basis. However, some software such
-# as PHP leaves files globally writeable (even a recent Slackware PHP package
-# had files og+w).
-( if [ "${CHMODNOGLOBALWRITE}" = "Yes" ]; then
- echo -n "${PROGNAME}: Running chmod -R og-w on package contents"
- chmod -R og-w .
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Fix up ownerships in the package. According to the 'README' that comes with
-# Pat's 'slack-tools' scripts say:
-# "non-setuid binaries in /bin, /sbin, /usr/bin, and /usr/sbin are
-# all chown root:bin (and the directories are, too)"
-# However, I spot traceroute as being setuid and owned by root.bin
-# So we'll just set everything in & including those dirs to be root.bin
-# You WON'T want to always use this facility -- some build scripts such as
-# 'floppy' set their own permissions correctly. Again, you need to check over
-# the package afterwards and make changes to your build script accordingly.
-( if [ "${CHOWNBINDIRSROOTBIN}" = "Yes" ]; then
- echo -n "${PROGNAME}: chowning root:bin the directories ${BINDIR_LIST}"
- for i in ${BINDIR_LIST}; do
- # Yes, we're assuming we may have dirs inside our bins. I've yet to see
- # one but there may be in the future.
- ( cd ./$i && find . -type d -print0 | xargs -0 chown root:bin ) >/dev/null 2>&1
- done
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# chown root:bin files
-# Please note that any additional paths specified using --extra-bindir
-# will NOT be considered here. The Slackware standard is to only chown root:bin on
-# /usr dirs -- if you look at /opt/kde/bin you'll see the files are owned by root.root
-( if [ "${CHOWNBINFILESROOTBIN}" = "Yes" ]; then
- echo -n "${PROGNAME}: chowning root:bin the files inside ${BINDIR_LIST}"
- for i in ${BINDIR_LIST}; do
- ( cd ./$i && find . -type f -printf "chown root:bin '%p' && chmod %m '%p'\n" | /bin/bash ) > /dev/null 2>&1
- done
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# chown root:root files.
-# This was introduced in Slackware v11.
-# Please note that any additional paths specified using --extra-bindir
-# will NOT be considered here. The Slackware standard is to only chown root:root on
-# /usr dirs -- if you look at /opt/kde/bin you'll see the files are owned by root:root
-( if [ "${CHOWNBINSROOTROOT}" = "Yes" ]; then
- echo -n "${PROGNAME}: chowning root:root on files inside ${BINDIR_LIST}"
- for i in ${BINDIR_LIST}; do
- ( cd ./$i && find . -type f -printf "chown root:root '%p' && chmod %m '%p'\n" | /bin/bash ) > /dev/null 2>&1
- done
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# chmod 644 & chown root:root docs in usr/doc ?
-# This is my own 'thing'. I don't like having any executable files in
-# my docs directory.
-( if [ "${CHMOD644DOCS}" = "Yes" -a -d "usr/doc" ]; then
- echo -n "${PROGNAME}: Running chmod 644 over documents in usr/doc/"
- ( find usr/doc/ -type f -print0 | xargs -0 chmod 644 ) >/dev/null 2>&1
- ( chown -R root:root usr/doc/ ) >/dev/null 2>&1
- echo " ... done"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# If the user has specified both --setrootowner and --chown-bdirs-root-bin then warn
-# them that their dirs permissions will be changed
-# These options aren't mutually exclusive because --chown-bdirs-root-bin
-# ONLY chowns /bin,/sbin,/usr/bin & /usr/sbin
-( if [ "${CHOWNBINDIRSROOTBIN}" = "Yes" -a "${SETROOTOWNER}" = "Yes" ]; then
- echo "${PROGNAME}: * WARNING *"
- echo " You have specified both --setrootowner AND --chown-bdirs-root-bin"
- echo " options, but Slackware's makepkg script will change the"
- echo " directory permissions to 'root.root'."
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Ensure the 'root' directory of the tarchive is globally readable
-# else it breaks your root dir thus your system when you install the package ;)
-chmod 755 ${SLACKTRACKTMPPATH}/TRANSL
-chown root:root ${SLACKTRACKTMPPATH}/TRANSL
-
-# Delete any orpahaned *.pyc files - these do not have a matching *.py file
-# that was detected by slacktrack. It doesn't mean that there isn't a file
-# on the *filesystem*, just that if there was, it was not modified during the
-# build, and so probably doesn't belong in the package, and infact may be
-# conflicting with an existing file in another package.
-( if [ "${DELETEORPHANEDPYC}" = "Yes" ]; then
- echo "${PROGNAME}: Deleting any orphaned *.pyc files within the package"
- find . -name '*.pyc' -type f | sed 's/\(.*\)\..*/\1/' | while read pycfile ; do
- # We searched for .pyc files and chopped off the file extension; if
- # we dont find a matching .py file for the .pyc, then we wipe it:
- if [ ! -f "${pycfile}.py" ]; then
- # Wipe the *.pyc file, and if that was successful then try and rmdir the directory
- # and its parents. This will fail if there were more than just *.pyc files.
- # We redirect to a temporary log file because rmdir displays its progress
- # as it goes, rather than doing its business then reporting -- so
- # we'd see "Removing directory /usr/foo", next line "Failed removing /usr/foo"
- # This way we only display the log file if rmdir successfully removed the dir.
- # Note however, that if it's a directory such as /usr/lib, then rmdir will try
- # and remove that on every invocation, which will fail - so we'll never see
- # the output; this isn't what I'd like but I don't see a way around it
- # and it's not a big deal.
- { rm -fv "${pycfile}.pyc" ; } && { rmdir -vp "$( dirname ${pycfile}.pyc )" > ${SLACKTRACKTMPPATH}/rmdir.out 2>&1 && cat ${SLACKTRACKTMPPATH}/rmdir.out ; }
- fi
- done
- # Remove that temp file
- rm -f ${SLACKTRACKTMPPATH}/rmdir.out
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# If the buildstore doesn't exist then we'll use /tmp instead
-# We don't check this earlier because *my* scripts mkdir /tmp/built-slackwarepackages
-# and Slackware's SlackBuild scripts leave the package in /tmp -- and /tmp must always exist
-# We won't try and create the dir because if you made a typo in the dir name, you
-# make find your package (that may contain sensitive files) ends up in a globally readable
-# area.
-if [ ! -d "${BUILDSTORE}" ]; then
- printf "${PROGNAME}: WARNING: The build store directory ${BUILDSTORE}\n"
- printf " does not exist; using /tmp instead\n\n"
- BUILDSTORE="/tmp/"
-fi
-
-
-# Show dependencies to the INSTALLED packages ?
-( if [ "${SHOWDEPS}" = "Yes" ]; then
- LDDEPSFILE="${SLACKTRACKTMPPATH}/ld_list"
- LDDEPSUNRESOLVED="${SLACKTRACKTMPPATH}/ld_unresolved"
- LDDEPSFOUNDPACKAGES="${SLACKTRACKTMPPATH}/ld_found_packages"
-
- echo -n "${PROGNAME}: Generating list of shared library dependencies"
- # I grep out 'not found' from the list because if this package CONTAINS the
- # 'not found' library then we're not going to find it in /var/log/packages
- # This isn't the same as having what I call an 'orphaned' library.
- ( find . -type f \( -perm -100 -o -perm -010 -o -perm -001 \) -print0 | xargs -0 file | egrep '(ELF.*shared)' | \
- awk -F: '{print $1}' | xargs ldd 2>/dev/null | grep '=>' | grep -vi 'not found' | \
- awk '{print $3}' | grep -v "^$" > "${LDDEPSFILE}" ) > /dev/null 2>&1
-
- if [ ! -s "${LDDEPSFILE}" ]; then
- printf "\n Failed to find any shared object dependencies\n"
- else
-
- # Remove dupes from the list
- sort "${LDDEPSFILE}" | uniq > "${LDDEPSFILE}.sorted"
- mv -f "${LDDEPSFILE}.sorted" "${LDDEPSFILE}"
-
- # Look in /var/log/packages and /var/log/scripts (because our library
- # may be linked against a symlink) and find our packages.
- # Now, a problem that we have is that some of
- # Slackware's packages have an 'incoming' directory (eg glibc)
- # to avoid trampling over the running system without doing
- # some pokery first.
- # This is why I am *only* keeping the .so name rather than the
- # full path leading to it.
- cat "${LDDEPSFILE}" | rev | cut -d/ -f1 | rev | while read library_name ; do
- ( ( cd /var/log/packages && grep -l ${library_name} * ) || ( cd /var/log/scripts && grep -l ${library_name} * ) ) >> "${LDDEPSFOUNDPACKAGES}"
- # If we couldn't find it in a package (most likely because
- # it's linked against something that was compiled 'locally' rather than
- # being brewed into a package, or because you've broken your packages list)
- if [ $? -gt 0 ]; then
- # This way it shows the full path to the library rather than just its file name.
- egrep "${library_name}$" "${LDDEPSFILE}" >/dev/null 2>&1 && \
- echo "$( egrep "${library_name}$" "${LDDEPSFILE}" )" >> "${LDDEPSUNRESOLVED}"
- fi
- done
-
- # Before you think "Hold on a second old cheese, but some libraries
- # exist in more than one package (glibc/glibc-solibs is an example)
- # so what you going to do about that?"
- # Absolutely nothing! :-) That'd mean having some sort of database
- # to know that you'd only need one of the packages listed.
- # *Also*, if you think about it, then who's to tell you whether you
- # should have glibc OR glibc-solibs? *I* only install 'glibc' because
- # I compile stuff (you don't need -solibs if you have the
- # developer/full package) .. then if I compiled this package on a box
- # that only had 'openssl' (rather than openssl-solibs *AND* openssl)
- # then... oh it's too complicated. It's like a paradox or something.
-
- # Remove any dupes from the package list
- sort "${LDDEPSFOUNDPACKAGES}" | uniq > "${LDDEPSFOUNDPACKAGES}.sorted"
- mv -f "${LDDEPSFOUNDPACKAGES}.sorted" "${LDDEPSFOUNDPACKAGES}"
-
- # From 'generating list of dependencies' above.
- echo " ... done"
-
- # Dump the list of package dependencies to screen
- if [ -s "${LDDEPSFOUNDPACKAGES}" ]; then
- echo "${PROGNAME}: This package depends on libraries within the following installed packages:"
- egrep -v "$( package_name ${SLACKWAREPACKAGE} )" "${LDDEPSFOUNDPACKAGES}" | while read line ; do
- printf "\t ${line}\n"
- done
- fi
-
- # Now dump the list of dependencies into a log file.
- # We could store it somewhere in the package I suppose, any suggestions?
- install -m644 "${LDDEPSFOUNDPACKAGES}" "${BUILDSTORE}/$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ).ld_deps.log"
-
- # And if we found any libraries that aren't part of installed packages, dump
- # those too.
- if [ -s "${LDDEPSUNRESOLVED}" ]; then
- echo "${PROGNAME}: The following libraries were not found in any installed package:"
- cat "${LDDEPSUNRESOLVED}" | while read line ; do
- printf "\t ${line}\n"
- done
- # Not much point in listing libraries in the package if we can't
- # tell the user how to get a package containing that library, so
- # we'll just log it and let the developer fix it afterwards.
- install -m644 "${LDDEPSUNRESOLVED}" "${BUILDSTORE}/$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ).orphaned_ld_deps.log"
- fi
- fi
-
-fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Launch an external command/script before running makepkg ?
-# This may be useful to inspect the package contents with a file manager such as
-# Midnight Commander or xtc.
-# This is extremly useful for slacktrack as you can fix up symlinks and stuff
-# that you couldn't do inside the root file system.
-if [ ! -z "${RUNCMDAFTER}" ]; then
- echo "${PROGNAME}: Launching external command '${RUNCMDAFTER}'" >> ${SLACKTRACKLOGFILE}
- # Enter the package's root directory and run the command, appending any output to
- # slacktrack's log:
- if [ "${RUNCMDAFTER_WITHLOG}" = "Yes" ]; then
- ( cd ${SLACKTRACKTMPPATH}/TRANSL ; ${RUNCMDAFTER} ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
- else
- # No logging - best for manual intervention or a curses type program, since this would
- # potentially cause an unclean log file:
- ( cd ${SLACKTRACKTMPPATH}/TRANSL ; ${RUNCMDAFTER} )
- fi
- echo "${PROGNAME}: External command finished" >> ${SLACKTRACKLOGFILE}
-fi
-
-
-# Execute the Slackware package making utility & append its output to the package logfile
-( ${MAKEPKG} ${MAKEPKGOPTS} \
- --linkadd $( echo ${CREATESYMLINKS} | cut -b1 | tr A-Z a-z ) \
- --chown $( echo ${SETROOTOWNER} | cut -b1 | tr A-Z a-z ) \
- ${BUILDSTORE}/${SLACKWAREPACKAGE}
-
- # Warn if no slack-desc file found. You don't need a doinst.sh script
- # though, so we won't bother with that one.
- # Why do this *after* running makepkg? makepkg makes lots of noise
- # and unless you specifically scroll up or look at logs, you'll miss this warning.
- if [ ! -s "install/slack-desc" ]; then
- echo "${PROGNAME}: WARNING - /install/slack-desc not found or is 0 bytes"
- fi
-
- # Display the size of the package:
- if [ -f "${BUILDSTORE}/${SLACKWAREPACKAGE}" ]; then
- printf "${PROGNAME}: ${SLACKWAREPACKAGE}'s size is $( ls -lah ${BUILDSTORE}/${SLACKWAREPACKAGE} | awk '{print $5}' )\n"
- fi
-
- # Create an MD5sum of the package if requested
- if [ "${CREATEMD5SUM}" = "Yes" ]; then
- echo -n "${PROGNAME}: Creating an MD5 sum of ${SLACKWAREPACKAGE}"
- ( cd "${BUILDSTORE}"
- md5sum "${SLACKWAREPACKAGE}" > "${SLACKWAREPACKAGE}.md5" )
- echo " ... done"
- fi
-
- # Sign the package if requested to do so.
- if [ "${SIGNPACKAGE}" = "Yes" ]; then
- echo -n "${PROGNAME}: Signing ${SLACKWAREPACKAGE} with ${SIGNINGKEY:-your default} key"
- ( cd "${BUILDSTORE}"
- GPG_OPTIONS="--detach-sign --yes --armor"
- if [ "${SIGNINGKEY}" ]; then
- GPG_OPTIONS="${GPG_OPTIONS} --local-user $SIGNINGKEY"
- fi
-
- gpg ${GPG_OPTIONS} --output ${SLACKWAREPACKAGE}.asc ${SLACKWAREPACKAGE}
- if [ $? -ne 0 ]; then
- printf "\n${PROGNAME}: ERROR: Signature has not been correctly generated\n"
- else
- echo " ... done"
- fi )
-
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Copy the slack-desc file into the build store path ?
-( if [ "${CREATEDESCRIPTION}" = "Yes" -a -f "${SLACKTRACKTMPPATH}/TRANSL/install/slack-desc" ]; then
- echo "${PROGNAME}: Installing package description file into build store"
- # Cut the handy ruler, comments and empty lines out of the file.
- egrep -v '^($|#| *\|)' ${SLACKTRACKTMPPATH}/TRANSL/install/slack-desc > "${BUILDSTORE}/$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ).txt"
- chmod 644 "${BUILDSTORE}/$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ).txt"
- fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-
-# Log hard links
-# Some packages (such as Python) use ln to create hard links rather than soft links.
-# It is impossible to determine the original file name of a hard link, and thus
-# must be weeded out manually.
-( if [ "${LOGHARDLINKS}" = "Yes" ]; then
- echo -n "${PROGNAME}: Scanning for hard links"
- printf "$( find ${SLACKTRACKTMPPATH}/TRANSL -type f -links +1 -printf "Hard link: %P\n" )\n" > ${SLACKTRACKLOGFILE}.hardlinks
- if [ ! -z "$( grep "Hard link:" ${SLACKTRACKLOGFILE}.hardlinks )" ]; then
- printf "\nWARNING: The following hard links were detected\n"
- cat ${SLACKTRACKLOGFILE}.hardlinks
- echo
- # We will ALWAYS create a log file for hardlinks regardless of whether logging is disabled.
- # The packager HAS to know about them !
- mv ${SLACKTRACKLOGFILE}.hardlinks "${BUILDSTORE}/$( echo $SLACKWAREPACKAGE | rev | cut -d. -f2- | rev ).hardlinks.log"
- else
- echo " ... none found"
- rm -f "${SLACKTRACKLOGFILE}.hardlinks"
- fi
-fi ) 2>&1 | tee -a ${SLACKTRACKLOGFILE}
-
-# Tidy up workspace:
-tidy_workspace
-
-# Report that slacktrack has finished, but to the log only.
-printf "\n\n[$( date "+%D %r" )] ${PROGNAME} finished.\n" >> ${SLACKTRACKLOGFILE}
-
-
-# Unless the user has specified their own logfile, we'll use packagename-ver-arch-build.log
-# If they've disabled logging with --nologging then simply delete the log file.
-# You could say this was sloppy, that we're logging in the first place if we're told not to
-# but given that most make scripts scroll tens of pages off the screen, I think a log file
-# is *Always* handy to have, even if you don't retain it.
-move_log
-
-
-# Report that slacktrack has finished (to screen only).
-printf "\n\n[$( date "+%D %r" )] ${PROGNAME} finished.\n"
-
-exit 0
-#EOF
diff --git a/source/d/slacktrack/slacktrack-project/slack-desc b/source/d/slacktrack/slacktrack-project/slack-desc
deleted file mode 100644
index 167f8e099..000000000
--- a/source/d/slacktrack/slacktrack-project/slack-desc
+++ /dev/null
@@ -1,21 +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 ':'.
-#
-# I've broken the 11 line rule here but installpkg can handle up to 13.
-#
- |-----handy-ruler------------------------------------------------------|
-slacktrack: slacktrack (Slackware package building utilities)
-slacktrack:
-slacktrack: slacktrack tracks the installation of a 'make install' (or similar)
-slacktrack: and produces a Slackware compliant package from the results.
-slacktrack:
-slacktrack: slacktrack can be used to build packages from Slackware's '.build'
-slacktrack: scripts or your own.
-slacktrack:
-slacktrack: slacktrack tracks installations directly on the host's filesystem.
-slacktrack:
-slacktrack:
diff --git a/source/d/slacktrack/slacktrack-project/slacktrack.SlackBuild b/source/d/slacktrack/slacktrack-project/slacktrack.SlackBuild
deleted file mode 100755
index 244d92ede..000000000
--- a/source/d/slacktrack/slacktrack-project/slacktrack.SlackBuild
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-
-#################################################################
-# Program: slacktrack.SlackBuild
-# Purpose: Build a Slackware Package of slacktrack
-# Author : Stuart Winter <mozes@slackware.com>
-# Version: 1.06
-# Date...: 05-Apr-2013
-#################################################################
-
-PKGNAM=slacktrack
-VERSION=${VERSION:-2.18}
-BUILD=${BUILD:-1}
-
-# Automatically determine the architecture we're building on:
-case "$( uname -m )" in
- i?86) export ARCH=i586
- PKGEXT=txz ;;
- arm*) export ARCH=arm
- PKGEXT=txz ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m )
- PKGEXT=txz ;;
-esac
-
-SLACKPACKAGE=$PKGNAM-$VERSION-$ARCH-$BUILD.$PKGEXT
-
-# Resting place for the package .t?z:
-PKGSTORE=${PKGSTORE:=/tmp}
-
-# Temporary unarchive, compile & package-root directory:
-TMP=/tmp/build-slacktrack
-PKG=/tmp/package-slacktrack
-
-# Work out where we are now so we can untar our source ball from it:
-CWD=$PWD
-
-# Delete previous build dirs
-rm -rf $PKG $TMP
-mkdir -pm755 $PKG $TMP
-
-# Create package framework:
-mkdir -pm755 $PKG/{install,usr/{libexec/slacktrack,bin,doc/$PKGNAM-${VERSION},man/man8}}
-
-# slacktrack's docs:
-cp -fav $CWD/docs/* $PKG/usr/doc/$PKGNAM-${VERSION}
-rm -fv $PKG/usr/doc/$PKGNAM-${VERSION}/INSTALL
-
-# Fix any wonky permissions the docs may have attracted:
-find $PKG/usr/doc -type f -print0 | xargs -0 chmod 644
-find $PKG/usr/doc -type f -print0 | xargs -0 chown root:root
-
-# Install man pages:
-( cd $CWD/man
- ./man.build
- gzip -9c slacktrack.8 > $PKG/usr/man/man8/slacktrack.8.gz
- gzip -9c slackdtxt.8 > $PKG/usr/man/man8/slackdtxt.8.gz
- rm -f *.8 )
-
-# Install slacktrack & friends:
-install -oroot -groot -vpm755 $CWD/scripts/{slacktrack,slackdtxt} \
- $PKG/usr/bin
-
-# Build the ln wrapper:
-gcc -O3 $CWD/ln-wrapper.c -o $PKG/usr/libexec/slacktrack/ln || exit 1
-strip --strip-unneeded $PKG/usr/libexec/slacktrack/ln
-
-# Install package description:
-install -vpm644 $CWD/slack-desc $PKG/install
-
-# Build package:
-cd $PKG
-chown -R root:root .
-chmod -R og-w .
-makepkg -l y -c n $PKGSTORE/$SLACKPACKAGE
-
-# Create the corresponding .txt description file:
-( cd $PKGSTORE && $CWD/scripts/slackdtxt $SLACKPACKAGE )
-
-# Package maintainer stuff:
-PARAMS="$( getopt -qn "$( basename $0 )" -o iz -- "$@" )"
-if [ $? -eq 0 ]; then
- eval set -- "$PARAMS"
- for option in $* ; do
- case "${option}" in
- -i)
- removepkg slacktrack
- installpkg $PKGSTORE/$SLACKPACKAGE
- shift ;;
-
- -z)
- echo -n "Making a distributable source archive"
- ( cd $CWD/..
- # Don't worry, you're not missing much!
- chown -R root:root .
- tar --exclude slacktrack/2bourbon \
- --exclude slacktrack/old_stuff \
- -Ixz -cf $CWD/../slackware-package-dir/slacktrack/$PKGNAM-${VERSION}-source.tar.xz slacktrack-project )
- echo " ... done"
- shift ;;
- esac done
-fi
-
-# Delete temporary build dir and package-root.
-# I don't like doing this anymore - I prefer to be able to refer back to
-# the compiled source tree after the build.
-#rm -rf $TMP $PKG
diff --git a/source/d/slacktrack/slacktrack-project/tests/test-exclusion b/source/d/slacktrack/slacktrack-project/tests/test-exclusion
deleted file mode 100755
index cbb2d32c2..000000000
--- a/source/d/slacktrack/slacktrack-project/tests/test-exclusion
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-eval $( grep ^EXCLUDE_LIST ../scripts/slacktrack )
-
-cat << EOF | egrep "$EXCLUDE_LIST"
-/var/lib/NetworkManager/dir
-/usr/bin/wn
-/usr/man/whatis.gz
-/usr/local/man/whatis.gz
-/var/lib/pgsql/foop
-/var/lib/mysql
-EOF
-
diff --git a/source/d/slacktrack/slacktrack.SlackBuild b/source/d/slacktrack/slacktrack.SlackBuild
index 6e5ff906d..efde7f9e2 100755
--- a/source/d/slacktrack/slacktrack.SlackBuild
+++ b/source/d/slacktrack/slacktrack.SlackBuild
@@ -6,7 +6,7 @@ if [ "$TMP" = "" ]; then
fi
PKGNAM=slacktrack
-export VERSION=2.18
+export VERSION=2.19
# Automatically determine the architecture we're building on:
case "$( uname -m )" in
i?86) export ARCH=i586
@@ -17,7 +17,7 @@ case "$( uname -m )" in
*) export ARCH=$( uname -m )
PKGEXT=txz ;;
esac
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
export BUILD
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what