summaryrefslogtreecommitdiffstats
path: root/source/d/slacktrack/slacktrack-project/man/slacktrack.pod
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/slacktrack/slacktrack-project/man/slacktrack.pod')
-rw-r--r--source/d/slacktrack/slacktrack-project/man/slacktrack.pod949
1 files changed, 949 insertions, 0 deletions
diff --git a/source/d/slacktrack/slacktrack-project/man/slacktrack.pod b/source/d/slacktrack/slacktrack-project/man/slacktrack.pod
new file mode 100644
index 000000000..07eac6a4d
--- /dev/null
+++ b/source/d/slacktrack/slacktrack-project/man/slacktrack.pod
@@ -0,0 +1,949 @@
+=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
+
+