Version-1.7 16 November 2007 - fixed some code in examine_source which distinuished 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