CHANGES file for the src2pkg and trackinstall programs by Gilbert Ashley This file is meant to briefly summarize the changes to src2pkg from one version to the next -concentrating on changes which are visible to the average user or that affect the usability in some way. For a more complete and detailed listing of changes between versions, see the ChangeLog file. == Version 1.9.6 == This version has been a long time in the making, so it includes many changes: * Several routines have been added which make it easier to include extra files in your package, such as *.desktop files and PNG or XPM pixmaps. These are searched for in several places -first in the CWD (current working directory), then in a subdirectory of the CWD named 'Resources', 'patches' or NAME-patches. * Added routines which automate the handling of various configuration and init files which should be installed under the /etc, /etc/X11/xinit or /etc/rc.d. These files are searched for in the same directories as above for other extra files. If a file name $NAME.conf is found, it will be installed under the /etc directory in the package. Window managers usually are installed with an xinitrc.$NAME file. If such a file is found in one of tha above-named search directories, it will be copied to the /etc/X11/xinit directory of the package. And programs which are meant to run as 'services' which can be started at boot-time are usually installed with a file called rc.$NAME in the /etc/rc.d directory. Now you can easily include such files in your package simply by creating such a file and placing it in the CWD, Resources, patches or $NAME-patches directory. All of these files will be handled with a so-called '*.new files' routine which is automatically added to the doinst.sh file created by src2pkg. This means that all these files have their name changed to add the '.new' suffix. Then the routine in the doinst.sh file handles them when the package is installed so that the new configuration files do not overwrite any existing config files for the package. The handling of files which install to /etc/rc.d also includes writing a routine into the doinst.sh file which itself writes a routine into your /etc/rc.d/rc.local file when the package is first installed. This makes it possible to create such packages so they can be easily installed and enabled just by making the 'rc' file in /etc/rc.d executable and editing the /etc/$NAME.conf file, if needed. * The directories named above for extra files can be present as tarred archives and will be automatically decompressed when the main sources are decompressed. This makes it possible to place (nearly) all extra files needed for a package inside a single tarball and have them available when the package is built. This includes *.patch or *.diff files, *.xpm or *.png files, *.desktop files, rc.* files, *.conf files and xinitrc.* files. The tar archive can be either a *.tar.gz or *.tar.bz2 tarball and can be named Resources.*, patches.* or $NAME-patches.* * Support is also now included for so-called 'package-framework' archives named _$NAME.tar.gz -these are archives which contain a pre-formatted directory skeleton for the package as are commonly used with official Slackware packages. Again, these are automatically de-compressed along with the sources and the contents are copied into the new PKG_DIR. * Added support for creation of md5 checksums for finished packages * Better support for 64bit systems using /usr/lib64 directory * Support was added for personal src2pkg.conf files in a users $HOME directory. These are read in before the main configuration file /etc/src2pkg/src2pkg.conf, so system administrators can still override any unwanted or dangerous settings a user requests. * Improved handling of DESTDIR and other similar variables which are used to override the normal installation paths in some Makefiles. * Improved handling of sources with incomplete configuration files by also using 'bootstrap' or 'bootstrap.sh' files when no 'autogen.sh' file is present. * I've re-designed and re-written the setup routine which src2pkg uses when you first install or upgrade src2pkg itself. In the past, users had to run 'src2pkg --setup' when upgrading to a newer src2pkg version. This has been changed so that it won't have to be done every time. However, it is necessary to run this command when upgrading to this version. But it shouldn't be necessary every time now. To explain this a little: src2pkg uses a small shared library and a few binaries as 'helpers' for creating packages. Originally these were supplied pre-compiled with the src2pkg package. But this method was very limited because users of older versions of Slackware, thode running 'current' versions and those who were using src2pkg on other systems like Slackintosh or Slamd64 could not always use the same binaries and libraries as included. So, I began to package src2pkg in such a way that it would compile the libs and programs right on your system -this is the best way to insure compatibility for everyone, no matter which system is being used. As a side result, it also provides a sort of system 'checkup' to make sure you have everything installed which will be needed for creating most packages. So, now src2pkg installs as a 'noarch' package which includes the sources for the libraries and binaries it needs. After installing the src2pkg package, running 'src2pkg --setup' will compile the libs and binaries, create a package of them and install this package, called src2pkg-helpers-0.1-ARCH-1.tgz Since this package is installed separately, removing or upgrading the package for src2pkg will not remove these libs and programs from your system. this emans they are still available for use with the next version of src2pkg. In the future, if it becomes necessary to upgrade the src2pkg-helpers package, I'll mention that in the CHANGES file for that version, as well as in the full ChangeLog. * Related to the above, the list of programs included as src2pkg 'helpers' has been expanded again. We used to include several programs provided by the busybox program. Occasional problems with these minimal versions caused me to stop including them. They have been replaced with full versions from an earlier release of the coreutils package. This solves two problems: it makes sure we have programs available for use during package creation -even if you are re-compiling versions of these programs which are installed on your system. And, it solves the problems associated with glibc compatibility when using the latest versions of these programs in conjunction with the installwatch (actually libsentry) libraries. These libraries are sometimes used to keep track of which files are created or altered when compiling and installing software on your system. The problem is that not all such commands can be accurately tracked -depending on which version of glibc and coreutils are used by your system. So, srcpkg installs and uses versions of these programs which are known to work. During package creation, the normal PATH is changed so that these programs get used instead of the normal system binaries. The programs in question are the ones which are usually involved in creating or altering files, such as 'install, 'cp', 'mv', 'chmod' and others. The PATH is only altered temporarily while the package is being built, so these programs are only used by src2pkg and won't otherwise interfere with your system as they are installed in a provate PATH used by src2pkg. tar-1.13 is also included as one of these programs as it is essential to creating 'normal' Slackware packages. * Improved support for packages which use the 'scons' or 'cmake' programs configuration and compiling. * removed special compiler flags for AMD athlon processors. Using special flags caused problems for some users and would make packages created using them incompatible with other x86 machines. * improved parsing of information from rpm *.spec files and debian 'rules' files. * Add support for debian *.dpatch files -these are a special patches sometimes found in 'debianzed' sources. Before, they had to be edited and renamed to use them with src2pkg. Now they 'just work'. * Support has been added for creating packages of perl CPAN modules * A wrapper script called src2pkg-dnd has been added to the examples. This script adds drag-and-drop functionality to src2pkg