Version-1.8	04 December 2007
	- Lots of *big* changes this time! I usually try to avoid this as it
	  reduces the chances of introducing bugs. Hopefully I've tested this
	  release enough to make sure no serious defects have gotten through.
	
	- Some of the main functions have been split out from the FUNCTIONS file
	  into smaller files. The code bas has grown to over 3,000 lines and
	  it was getting more difficult to scroll through the code to find
	  the section I want to work with. This may make it a little harder to
	  understand the execution order for some people, but it makes my work
	  a little easier. I'll probably split the code up even more in another
	  version.
	  
	- I've finally introduced a later version of the installwatch library
	  which src2pkg uses to track the files which are created during package
	  making. I spent several weeks on this and added quite a few patches
	  from other distros and individuals. This new version is based on the
	  last official version (0.7.0beta5) but fixes some of the bugs which
	  were never addressed by the maintainer. 
	  Some nagging problems were addressed which usually only show up
	  when using the library with later versions of coreutils (>=6.9)
	  and glibc >=2.5 along with the Linux kernel >=2.6.16. These problems
	  revolve around some new functions called the 'openat' functions. It
	  was these functions that have caused problems when using installwatch
	  or checkinstall with any modern Linux distribution. The suggested
	  fix was to disable file system translation which was one of the best
	  new features introduced in installwatch-0.7.0beta1 in 2002. When
	  working, this feature allows you to install files into a what might
	  be called a 'virtual root'. That is files are not written to your main
	  file system. Instead they are written into a subdirectory (the PKG_DIR).
	  This allows for a much less intrusive way of running 'make install'
	  or other installation command. By now the translation feature is more
	  dependable and accurate than the old way of using the backup feature
	  of installwatch to protect your system. I am still, however, working
	  on improving the functionality of the backup feature so that it will
	  work just as well as the translation feature -it already works much
	  better than before.
	  
	- The above fixes still make it possible to build packages the old way, by
	  doing a real installation of the software, copying the files into the
	  PKG_DIR and then restoring any original files which were overwritten.
	  But, you can now use the 'virtual root' feature to create packages in
	  a safer, less intrusive way. This option is called JAIL_ROOT. We've also
	  brought back the possibility to run 'make install' using the DESTDIR,
	  although it is probably the least reliable of the three methods. The
	  JAIL_ROOT method is basically the same, but it works even with sources
	  which don't support the use of DESTDIR or which use one of the similar
	  variants like INTSALLROOT or PREFIX. src2pkg now uses the JAIL_ROOT
	  installation method by default, but you can override this in your src2pkg
	  scripts or from the command-line by using the '-DESTDIR' option for
	  installation using the DESTDIR variable, or the '-REAL' option for
	  installation using the old method of really installing and backing up
	  overwritten files. The default JAIL_ROOT method uses the '-JAIL' option.
	  If you try using the DESTDIR option and it is not supported by the
	  source Makefiles, src2pkg will switch and use the JAIL_ROOT method 
	  instead. The DESTDIR method doesn't use the installwatch library to
	  track file creation. Instead files are installed directly into the
	  PKG_DIR. This is a more traditional way of creating package content
	  and is preferred and trusted by many people. 
	  
	- Using the newer version of installwatch required some changes to the
	  src2pkg functions to accomodate the new features and environmental
	  variables. These changes are mostly transparent to the user except
	  for the new options they present.
	  
	- Now on to other major changes:
	- src2pkg can now retreive and use more information from rpm spec files
	  or debian 'control' and 'rules' files if they are included in the 
	  sources: 
	  
	- src2pkg can now read the package description information
	  from a spec or control file and use that to create better slack-desc
	  files without the user having to edit them manually or enter text
	  in interactive mode.
	  
	- The interactive routine which allows the user to input text for the
	  slack-desc file was also improved. Instead of limiting the user to
	  inputing a small one line description, the user can now type in lots
	  of text which will be wrapped into the appropriate line length and
	  then inserted into the description file.
	  
	- src2pkg also now adds dependency information to the description files
	  and also generates a slack-required file which is used for compatibilty
	  with the slapt-get package management program. This file is also
	  required for packages which are submitted to linuxpackages.net, so this
	  feature should make it easier for users to have their packages accepted
	  for inclusion on that website.
	  
	- src2pkg can also retreive options to pass to the configure script
	  from a spec file or debian rules file. The options are translated
	  into Slackware-conformant options and may help to ensure successful
	  configuration and compilation of sources in some cases.
	  
	- Regular users can now use src2pkg to create packages. src2pkg checks to
	  make sure that the user has permission to write to all the directories
	  it needs to work in. And it checks to make sure that the '-REAL' installation
	  option is not being requested. Proper permissions for the package are
	  achieved by using the '--owner' and '--group' options for tar. When the
	  final compressed package is created all file ownerships are set to root
	  just as when you run src2pkg as user 'root'. Several people had asked for
	  this feature -it turned out to be fairly easy to implement it.
	  
	- The src2pkg program wrapper now installs to /usr/bin instead of /usr/sbin
	  so that it is in the normal path for regular users. Same for trackinstall.
	  
	- re-wrote the tracklist utility to use the new installwatch
	
	- added more thorough check for documents when none were installed by the 
	  Makefile -checks for SRC_DIR/doc and SRC_DIR/docs directories.
	  
	- If no man-pages were installed by the Makefile, check for man-pages in
	  the SRC_DIR and in SRC_DIR/debian (if it exists) and copy to the PKG_DIR 
	  
	- added setup.py to the list of valid keyfiles. If src2pkg finds a setup.py
	  script in the sources during configure_source, it sets the INSTALL_LINE to
	  './setup.py build install' so that python modules get built automatically.
	  Thanks to LQ member bassmadrigal for bringing up this change when he tried
	  to build mutagen, hoping that src2pkg just knew what to do. Now it does.
	  src2pkg will generate a description file for python modules from a PKG-INFO
	  file, if present.
	  
	- added support for using a BASE_URL for downloading sources and extra source
	  files. This means that instead of giving the full URL for each item to download,
	  a BASE_URL can be specified and other items to be downloaded can be given
	  as a relative path to the BASE_URL.
	  
	- added 'ls' to the busybox static commands
	
	- added kernel version signiature to the src2pkg source build script. This allows
	  me to easily create two versions with the same build number, but with a different
	  signiature. This is needed because the static busybox binary cannot be used with
	  both kernel versions. When built with kernel-2.6.xx and glibc>=2.5 the
	  installwatch library contains extra features. And busybox compiled statically
	  under kernel 2.6.xx will not run on systems with a 2.4 kernel.
	Note: If you download a pre-built package of src2pkg, be sure to get the proper
	  version for your kernel. If you are running Slack-12.0 or greater, you should
	  get the src2pkg package with the '_K26' signiature in the package name. If
	  you are running src2pkg with an older version of Slackware and are using a
	  kernel from the 2.4 series, then use the src2pkg package with _K24 in the name.
	
Version-1.7	16 November 2007
	- fixed some code in examine_source which distinguished tarballs
	  converted with rpm2tgz, but failed when unpacking other, more common
	  tarballs which contain other compressed archives.
	- added support for rpm archives which contain a plain tar archive.
	- fixed missing 'cd $CONFIG_DIR' in autoreconf routines
	- added an interactive mode which prompts the user for input in
	  2-3 places where applicable. The options can be activated as the
	  default behaviour in /etc/src2pkg/src2pkg.conf (either individually
	  or all of them) or all can be activated with the '-Q' option when using
	  src2pkg or trackinstall. The option QUERY_FOR _EXTRA_CONFIGS runs
	  '$CONFIG_COMMAND --help' in the CONIFG_DIR to show the options available
	  which can be passed to the configure script. It then waits for user input
	  before continuing. The option CONFIRM_BUILD pauses after a successful
	  configuration of sources and prompts the user to continue or quit.
	  The option QUERY_FOR_PKG_DESC pauses during creation of the default
	  slack-desc (or other PKG_DESC file) and prompts for a one-line
	  description of the package, which is written to the third line of the
	  description file. For those who miss being interrupted by checkinstall...
	  Thanks to LinuxQuestions user Jim(LocoMojo) for the suggestion
	  and patch demonstrating the desired behaviour.
	  This also adds the extra options to the src2pkg.conf file, so if you
	  want to use the new options you'll need to update your src2pkg.conf
	  file manually with the new one (src2pkg.conf.new).
	- added support for builds using 'cmake'. It took a while to figure out
	  how to pass the desired PRE_FIX/PREFIX non-interactively without
	  hosing the other envronmental variables.
	- fixed automatic correction of PRE_FIX/PREFIX in Makefiles so that
	  all are done, instead of only the top level.
	- suppressed display of the whole contents of rpm .spec files or
	  debian/control files when using the '-R' (REPLAY_ERRORS) option.
	- added (again) removal the file $PKG_DIR/usr/info/dir to avoid
	  whacking the much (and rightly) maligned functionality of 'info'.
	-  rewrote condtional code for stripping libraries
	- changed the installation directory for pkgconfig *.pc files for
	  LFH standard conformance (using /usr/lib/pkgconfig as these are
	  architecture dependent files).
	- updated man-pages and their version numbers
	- changed to use our own hacked version of the installwatch libraries
	  (0.63.a1) which still works fine, thank you, as opposed to the latest
	  official versions (all of the 0.7.x versions are broken and may
	  cause serious problems with your system). I say 'hacked' -the only
	  difference between this version and the standard installwatch-0.6.3
	  is the inclusion of one useful patch backported from 0.7.x and a
	  fix to the installwatch test program.
	- re-instated the 'tracklist' wrapper. Edited to remove unused code
 	  and paths are adjusted to use the installwatch wrapper which we
	  now install to /usr/bin. Since Slackware no longer includes checkinstall
	  we 'take over' the normal path for the installwatch wrapper. For those
	  who really dislike or mistrust what src2pkg and trackinstall do,
	  the tracklist program is completely non-intrusive and just produces
	  a list of files and directories created by whatever command it is
	  called with, without altering any content. In other words, it's just
	  like using the plain 'installwatch' command, except that it parses
	  the installwatch log to produce a FILELIST in the current directory.
	- src2pkg has been reviewed by LinuxQuestions user lufbery (Drew Ames)
	  for the online magazine Linux.com. Article is due to be published
	  on Thanksgiving Day 2007. A hearty thanks to Drew for his efforts
	  and helpful criticism
	  
Version-1.6
	- strip leading '/' characters from PRE_FIX inetrnally. This means
	  that scripts which have $PKG_DIR$PRE_FIX will need to use
	  $PKG_DIR/$PRE_FIX instead. This is more intuitive in scripts,
	  I think, and is consistent with other usage. You can still
	  give the PRE_FIX with a slash but it will be removed internally.
	- give each line in the PKG_DESC(slack-desc) file a variable name
	  which can be specified or generated. These are named BLURB_1 to
	  BLURB_13. By default BLURB_1 is set to show the name of the program,
	  BLURB_3 is "No description was given for this package." and BLURB_11
	  is set to 'Packaged by src2pkg'.
	  This can be used to add group-related info or dependencies.
	- Check for patches in the CWD before checking for a ./patches directory
	  If there are patches in the CWD, patches in the patches directory are ignored.
	  This allows you to have a directory named 'patches' in your build
	  directory(CWD) with unused patches.
	- When patches are applied a list of the files patched is created inside
	  the SRC_DIR. This list is examined to see if any *.ac, *.in or *.am
	  files were modified. If so autoreconf -if is run in the sources -otherwise
	  autoreconf is _not_ run as it takes a long time and may undo changes
	  performed by the patching -this is especially true for crude patches
	  which wrongly patch the 'configure' script without patching the corresponding
	  configure.ac or configure.in files. Same goes for directly-patched Makefiles.
	  DEBUG_FILELISTS will create a copy of the list of patched files in the CWD.
	- Remove extra whitespaces from CONFIG_ARGS
	- Use less code to correct Makefile prefix
	- Show a prompt and be verbose when running 'make clean' in verbose mode.
	- Fixed a reference to unused $INSTW_LOGFILE (installwatch-0.7).
	- added support for s390x ARCH
	- added SRC_DIR/source to CONFIG_SUBDIR search list. Thanks to "browser" on
	  the LinuxQuestions Slackware forum for trying to compile samba with src2pkg
	  which pointed out a useful, if obscure, case which might apply elsewhere.
	- fixed error if using src2pkg -X and there are multiple src2pkg scripts present
	- fixed substitution of PRE_FIX in automatically-corrected Makefiles.
	- added a FAQ (more like a short tutorial and made a few additions/changes
	  to html documentation.

Version-1.5
	- fixed a missing case statement that caused the internal static
	  tar program to fail when unpacking archives in verbose
	  mode. Thanks to James Mueller for quickly reporting this.
	- more POSIX fixes: 'head -1' changed to 'head -n 1' in several
	  places in src2pkg, trackinstall and FUNCTIONS
	- stopped using 'source' internally and in src2pkg or TrackBuild
	  scripts. We used to use '.' but prefer using 'source' as being
	  more readable. But it is not supported under ash, dash and sh.
	- Changed code which required awk to generate the 'Handy Ruler'
	  in new slack-desc files. If awk is not present this will now
	  still succeed.
	- eliminated the only usage of 'touch' in the same routine as above.
	- eliminated a call to sed when counting valid lines in slack-desc
	- Allow description files (slack-desc) with 9-13 lines.
	- Add BLURB_1 and BLURB_2. src2pkg usually writes a desc file with
	  11 lines. Using BLURB_1 and/or BLURB_2 will add extra lines to
	  these 11 which can be used for whatever
	- fixed src2pkg build script to insure that src2pkg builds correctly
	  under other architectures, such as _x86_64, ppc or s390. Thanks
	  to Piete Sartain for testing this on _x86_64. This is a little
	  tricker now that we include both statically compiled binaries
	  and shared libraries in the package.

Version-1.4
	- use internal statically-linked binaries of tar and other
	  programs which are used for critical operations, such as
	  when restoring overwritten files just after 'make install'
	  and before /sbin/ldconfig is run. This makes it possible
	  and safe to normally compile and package tar itself without
	  problems. It also means that if you've whacked your glibc
	  somehow, your system should still get restored. I'm working
	  toward a smooth way to use src2pkg during a complete system
	  rebuild or bootstrap build, so other internal binaries may
	  be included later. Currently we use a separate binary of
	  tar and the rest of the programs are supplied by busybox.
	  These programs are run mostly in the fake_install function:
	  cat, cp, cut, egrep, grep, mkdir, rm, sort, tar and uniq
	  The statically linked tar is used throughout src2pkg, so
	  no external tar is needed by src2pkg.
	- integrated code for mini_installpkg using our static tar.
	  This means that src2pkg no longer needs the Slackware
	  pktools package to be installed either, since it already
	  included the mini_makepkg routine. installpkg or other install
	  program can still be used, if needed. The internal installer
	  is enabled by default by setting INSTALLPKG="internal" in
	  the DEFINES file.
	- added the ADM_DIR_NAME variable to DEFINES. mini_installpkg
	  uses this to allow flexibility of usage with other distros
	  which install database files somewhere besides /var/log/packages
	- better handling of non-standard files in the /install directory.
	- moved code to generate database files into a separate function
	  so it can be used by mini_installpkg as well as during post_process.
	- src2pkg -N uses get_patch_list to check for patches
	- if patches have been applied and there is a Makefile.am, run
	  autoreconf -if in the sources. Correctly patched configuration
	  files need this to take effect. Badly patched config files may
	  get whacked, though, so you can disable this behaviour for the
	  package by using AUTORECONF=NO in your src2pkg script.
	- use uname -m to get arch info instead of uname -i
	- added some more comments to FUNCTIONS

Version 1.3
	- downgraded to installwatch-0.6.3 again. After about 2 weeks of testing
	  I found a serious bug in installwatch which causes your compiler and
	  compiler libs to be removed from your system when creating some packages.
	  I discovered it while compiling libbonobo-2.14.0.
	- included new html docs -I really hope that these are useful as I would much
	  rather write code than documents. They still need some work...
	- changes to src2pkg command-line options (-V is now DEBUG) (-R is REPLAY_ERRORS)
	- fixed a problem with USE_OBJ_DIR not working sometimes.
	- src2pkg program can now download a raw src2pkg script and then execute it.
	
Version 1.2
	- added URL handling for src2pkg scripts
	- upgraded to installwatch-0.7.0beta5
	- improved auto-patching lets you specify the '-p ?' option
	  for a patch by putting the option in the patch name:
	  some-fixes.p0.diff would be applied with '-p 0'
	  patching order can be controlled by specifying PATCHLIST
	- added handling of extra sources. For now these must
	  be written into a script with EXTRA_SOURCES='URL-list'
	These changes make bootstrapping very easy by allowing
	src2pkg to download a script which then can download
	other needed sources for a build.
	- tracklist has been moved to pasture for now. It needs
	to be re-written for the new installwatch.
	

Version 1.1
	-updated the build script to detect and compile for x86_64 ARCH
	-added support for x86_64 and s390 to FLAGS, etc
	-added auto-patching feature
	-added handling of URL and downloading of sources
	-updated code for comatibility with BASH-3.2
	-code cleanups
	-updated man-pages and README
	-added updating and execution of scripts
	-added routine to check for SRC_DIR/doc if no docs were installed
	 and allow build to continue if no docs are present.
	-fixed a 'gotcha' in the source unpack routines where the
	 unpacked archive has no version number and contains a
	 binary with the same name
