diff options
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 |
commit | 05538a2b6dae06b52a4533f94999286b4c89a916 (patch) | |
tree | 3d459fe6cf48cbda01f31597eaf1ccd8a8ca4678 /source/d/slacktrack/slacktrack-project/man/slacktrack.pod | |
parent | d2c74e4a2e54d27d10eded3c422abf233dafdab8 (diff) | |
download | current-05538a2b6dae06b52a4533f94999286b4c89a916.tar.gz |
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/slacktrack-project/man/slacktrack.pod')
-rw-r--r-- | source/d/slacktrack/slacktrack-project/man/slacktrack.pod | 949 |
1 files changed, 0 insertions, 949 deletions
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 07eac6a4..00000000 --- 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 - - |