############################################################################ # Document: ChangeLog.slacktrack # Purpose : Document the changes that have occurred in 'slacktrack' ############################################################################ 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.interlude.org.uk/unix/slackware -- * 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.interlude.org.uk/unix/slackware 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.interlude.org.uk/unix/slackware/ 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.interlude.org.uk/unix/slackware/ 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 -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