##############################################################################
# Document: ChangeLog.altertrack
# Purpose : Document the changes that have occurred in 'altertrack'
##############################################################################

29-Jun-2007 - v1.26(1.32-slacktrack)
     * Fixed a bug where if --stripallexec was used, it wasn't stripping
       all ELFs (.so, bins & .a files).


05-May-2006 - v1.25(1.31-slacktrack)
     * Fixed a bug in the --touch-filesystem-first code where file names with
       spaces in would be touched in the $PWD rather than the filesystem.

31-Mar-2007 - v1.24(1.31-slacktrack)
     * When gzipping man & info pages, force compression (gzip -f)
     * Updated FAQ to discuss handling of symlinks with altertrack.

19-Feb-2007 - v1.23(1.30-slacktrack)
     * Added new option --touch-filesystem-first
       Patrick Volkerding's idea - not mine; blame him ;-)

       This option touches all files this pre-set location on the host's 
       filesystem:
       /opt /bin /boot /dev /etc /install /lib /sbin /usr /var 

       It *excludes* by default '/lib/udev/devices' since this contains
       live device data that doesn't take kindly to being touched.
       You may see errors from 'touch' about certain binaries, including
       /sbin/vol_id because this is a symlink into /lib/udev/devices.

       This will touch every file within those directories, destoying all the
       timestamp information.
       This is intended to be used on a throwaway development installation
       that's reinstalled daily or more often.  Builds will often leave
       residue strewn about, so don't use this on your "good" machine and
       think you're managing it properly.  :-)

       The reason behind this is that if you run altertrack and your build
       partially fails, then it will leave some data on the filesystem.
       You then fix the problem and re-try: this time the build may succeed.
       However, if the original data on the filesystem from the first
       part-failed build has *not* changed (ie if it was some static data that
       was copied with cp -a (preserved time stamp & ownership)) between
       the first part-failed build and second successful build, altertrack
       will miss this data from the final .tgz package.

       This option updates the file stamps contained within standard package
       directories, therefore allowing altertrack to detect changes
       (even if the data contains an *old* time stamp from 1982, it will still
       detect the difference).

*****  This is an expert option: Please don't use this option unless you do
       not care about your operating system installation *****
       

04-Apr-2006 - v1.22(1.29-slacktrack)
     * Added new option, -m|--chown-bins-root-root
       Set ownerships of files and directories in the standard Slackware
       binary directories to 'root:root'.
       This change is for Slackware v11 - binary directories are no longer
       chown root:bin.
     * The -Q option now sets -m rather than chowning root:bin.
       If you want root:bin, specify the -f and -e options.  The command would
       look something like this:

         # altertrack -Q -fe -p moose-1.0-i486-1.tgz ./moose.build

     * Added /media,/srv and /selinux to the 'watch' patch exclusion list
       (any changes to these paths will be excluded from the package).

14-Nov-2005 - v1.21(1.28-slacktrack)
     * Fixed a bug where any man page symlinks broken by gzipping were not
       being repaired.
       Thanks to Andrei Levin for the bug report.

22-Sep-2005 - v1.20(1.27-slacktrack)
     * Added /var/lib/rpm to list of excluded paths.  This allows you to
       do some seriously kludgey stuff like build from a source RPM and
       install the binary RPM as part of the build script.
       Very useful sometimes - docbook is an example :-)
     * Fixed a bug where the internal altertrack temporary directory was not
       being excluded from the list of 'changed files', so there was the 
       potential that its contents would be placed into the resulting package.
     * Added /var/yp to list of excluded paths.
     * Now return error code 6 and abort if it finds the
       temporary directory (either chosen automatically or selected via the
       -T|--tempdir option) already exists.  This is to prevent altertrack
       from wiping user data without any warning.
       altertrack does not create a sub directory within the specified area;
       it was never designed to do so, so this is the best option.
       Thanks to Gufo for suggesting this change.

22-Jul-2005 - v1.19(1.26-slacktrack)
     * Added /opt/kde/man to the list of man page directories.
     * Added /etc/mtab to the changed-files exclusion list.

08-May-2005 - v1.18(1.25-slacktrack)
     * 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.

30-Mar-2004 - v1.17(1.23-slacktrack)
     * chmod 755 any installation script placed into /var/log/scripts by
       altertrack.
     * Fixed bug with chowning files that was introduced in v1.11.
       Files with brackets in the name would get interpreted by bash.  Now
       these names are enclosed within '' to prevent this.
     * Added /dev/vc to the list of excluded paths for Slackware 10.1 
       (thanks to Roberto Neri for the report).
     * Added /sys to the list of excluded paths
     * Trimmed down --help text a little - it's too wordy.

09-Dec-2004 - v1.16(1.23-slacktrack)
     * 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.
     * Added an entry to the FAQ, discussing why some packages will contain
       files & dirs that were not put there by the build process and how
       to prevent this.

16-Nov-2004 - v1.15(1.22-slacktrack)
     * 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.
     * 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.

26-Aug-2004 - v1.14(1.21-slacktrack)
     * Added /initrd to default exclude list & changed the --help text for 
       the -x operator.  Thanks to Roberto Neri for the idea.

19-Jun-2004 - v1.13(1.21-slacktrack)
     * 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.
     * 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.12(1.20-slacktrack)
     * Changed chown uid.gid to uid:gid

25-Mar-2004 - v1.11(1.19-slacktrack)
     * 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.10(1.18-slacktrack)
     * 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.

09-Feb-2004 - v1.09(1.17-slacktrack)
     * Check 'dir.list' file (which contains empty dirs) exists before
       using it to restore root file system's permissions. This avoids
       an error message from cat if the file does not exist.
     * Delete /install even if we specify --notidy
     * Populate the /var/log/packages/$package entry with the file system
       differences rather than the .tgz contents post Slackware-isation.
     * Added --rootdir option so that I can use altertrack to build packages
       for my Slackware ARM port using ScratchBox (http://www.scratchbox.org)
       This option is of limited (or no) use on a real x86/SPARC/ARM Slackware
       sytstem.
     * Added --with-scratchbox option to clean up your root target directory
       after the build script completes.  This avoids getting an empty /dev
       and /home directories included within your package.  These directories
       are required as mount points on the ARM server.
     * Added --froot option.  This launches the fakeroot utility from the current
       $PATH prior to setting the Slackware standards (chown root.bin and so on).
       The purpose of this is so that our .tgz packages will get the required
       root.bin and other root permissions rather than 'build.users' when
       running under Scratchbox.  Of course, this is of little use if the build
       scripts set their own ownerships, but for a generic run of the mill package
       it can be very handy.
       -- Note: For obvious reasons, this option is utterly useless for non-root
                users on a normal x86 Slackware system.  It only makes sense
                to consider this option's use within a simulated environment.
                Because the only simulated environment that this has been tested
                under is Scratchbox, note that the path to libfakeroot is not the
                same as that in slacktrack. --

12-Dec-2003 - v1.08(1.16-slacktrack)
     * Reworded a few messages to make more sense.

04-Dec-2003 - v1.08(1.15-slacktrack)
     * Fixed bug where permissions & ownerships on some dirs were
       not preserved.  This was due to altertrack only storing *empty* dirs
       and therefore, tar had no way of knowing what the permissions should be
       when extracting non-empty dirs into the fake root directory.

24-Nov-2003 - v1.07(1.15-slacktrack)
     * Added /dev/console to the excluded file/dir list

10-Nov-2003 - v1.06(1.15-slacktrack)
     * Delete /install directory after package build.  If this directory
       remains, it may cause problems for other builds as it will contain
       data for another package.

02-Nov-2003 - v1.05(1.15-slacktrack)
     * Fixed bug where empty directories such as placeholders would be
       removed from the package contents.

31-Oct-2003 - v1.04(1.15-slacktrack)
     * Added new -x, --exclude option to allow the user to specify their own
       egrep pattern for file/directory exclusion.  Note that this does not
       affect altertrack's use of 'find'; this exclusion list is only used
       once the differences between the file system have been established.
       The default egrep pattern is:
       /dev/pts$|/dev/pts/|/dev/ptmx|/dev/tty|/var/log|/etc/ld.so.cache|
       /tmp|/root|/proc|/var/tmp|/var/run/utmp
     * altertrack is no more dangerous than protopkg, therefore
       it's now included within the slacktrack binary .tgz archive.

29-Oct-2003 - v1.03(1.15-slacktrack)
     * Included another example ('dvd_libs') in the 'examples-altertrack'
       directory within the main slacktrack source archive.  You can now see
       how I build my DVD libraries using altertrack.  This example build 
       script is cleaner and easier to follow than the cpan_modules example.
     * 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.02(1.15-slacktrack)
     * 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).
     * Bomb out if /var/log/packages or /var/log/scripts is missing.

19-Oct-2003 - v1.01(1.14-slacktrack)
     * Tidied up code and removed some slacktrack-only code
     * find now prunes the paths to remove /mnt, /tmp, /home and /proc
       as this will speed up the find (especially if you have mounted
       NFS shares or others in /mnt, and anything in /mnt isn't realistically
       going to be in your final package anyway).

16-Oct-2003 - v1.00(1.14-slacktrack)
     * Forked from slacktrack
     * Basic working version.            
