mirror of
git://slackware.nl/current.git
synced 2025-01-17 18:12:36 +01:00
138 lines
4.6 KiB
Text
138 lines
4.6 KiB
Text
|
slacktrack version 2.00
|
||
|
Release notes: 17th September 2008
|
||
|
===================================
|
||
|
|
||
|
Highlights:
|
||
|
-----------
|
||
|
|
||
|
slacktrack no longer uses 'installwatch' to track the installation
|
||
|
process -- what was previously called 'altertrack' has been turned
|
||
|
into 'slacktrack'.
|
||
|
|
||
|
slacktrack's method of tracking package installations is to
|
||
|
have the package installed directly onto the host's filesystem.
|
||
|
|
||
|
This is for a number of reasons:
|
||
|
|
||
|
1. installwatch is ill maintained and was failing to work correctly
|
||
|
with new versions of glibc and GNU 'coreutils'.
|
||
|
|
||
|
2. installwatch could not track statically compiled binaries,
|
||
|
meaning that if a statically compiled binary was used to
|
||
|
manipulate the filesystem in any way, these manipulations would
|
||
|
not be reflected in your package contents.
|
||
|
|
||
|
3. With virtualisation -- QEMU, VMWare, SUN's VirtualBox -- being so
|
||
|
readily available, and allowing filesystem 'snapshots', it's
|
||
|
easier and easier to spin up a development operating system and
|
||
|
build and install directly onto the root filesystem, thus getting
|
||
|
a complete package.
|
||
|
|
||
|
Upgrading your build scripts from slacktrack version 1.x
|
||
|
--------------------------------------------------------
|
||
|
|
||
|
1. slacktrack internal variables
|
||
|
-----------------------------
|
||
|
|
||
|
$SLACKTRACKFAKEROOT
|
||
|
|
||
|
This variable points to the location of the package's
|
||
|
root filesystem (usually /var/tmp/<someplace>).
|
||
|
Using slacktrack 1.x, you could perform operations on the
|
||
|
package contents from your build script *during* the build
|
||
|
process.
|
||
|
|
||
|
In slacktrack 2.x, the package root directory is only populated
|
||
|
after the build script has finished.
|
||
|
|
||
|
However, the variable can still be used from a post-build
|
||
|
script.
|
||
|
You can use slacktrack's '-R' operator to specify a post-build
|
||
|
script. In the example below, the post build script is
|
||
|
called 'postbuildfixes.sh' and resides in the same directory
|
||
|
as the 'trackbuild' script.
|
||
|
|
||
|
** Note: Ensure that your post-build script is chmod 755. **
|
||
|
|
||
|
# Launch the build script:
|
||
|
altertrack \
|
||
|
--notidy \
|
||
|
--showdeps \
|
||
|
-T $TMP \
|
||
|
-l $CWD/build.$ARCH.log \
|
||
|
-R $CWD/postbuildfixes.sh \
|
||
|
-b $PKGSTORE \
|
||
|
-zIKASmg \
|
||
|
-Ocp $PKGNAM-$PKGVERSION-$ARCH-$BUILD.tgz ./linuxdoc-tools.build
|
||
|
|
||
|
The contents of this post build script can be something such as:
|
||
|
|
||
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||
|
#!/bin/bash
|
||
|
|
||
|
# Once altertrack has determined what the contents of the package
|
||
|
# should be, it copies them into $SLACKTRACKFAKEROOT
|
||
|
# From here we can make modifications to the package's contents
|
||
|
# immediately prior to the invocation of makepkg: altertrack will
|
||
|
# do nothing else with the contents of the package after the execution
|
||
|
# of this script.
|
||
|
|
||
|
# If you modify anything here, be careful *not* to include the full
|
||
|
# path name - only use relative paths (ie rm usr/bin/foo *not* rm /usr/bin/foo).
|
||
|
|
||
|
# Enter the package's contents:
|
||
|
cd $SLACKTRACKFAKEROOT
|
||
|
|
||
|
# OpenSP creates this symlink; we delete it.
|
||
|
if [ -L usr/share/doc ]; then
|
||
|
rm -f usr/share/doc
|
||
|
fi
|
||
|
|
||
|
# Incase you had CUPS running:
|
||
|
rm -rf etc/cups etc/printcap
|
||
|
# crond:
|
||
|
rm -rf var/spool/cron
|
||
|
rmdir var/spool
|
||
|
|
||
|
# perllocal.pod files don't belong in packages.
|
||
|
# SGMLSPL creates this:
|
||
|
find . -name perllocal.pod -print0 | xargs -0 rm -f
|
||
|
|
||
|
# Some doc dirs have attracted setuid.
|
||
|
# We don't need setuid for anything in this package:
|
||
|
chmod -R a-s .
|
||
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||
|
|
||
|
|
||
|
2. Build script changes
|
||
|
--------------------
|
||
|
|
||
|
If your build scripts were more sophisticated and took advantage of
|
||
|
the way installwatch used a pseudo root filesystem, please be acutely
|
||
|
aware that your build script now runs on the host's live operating system;
|
||
|
so you need to be more careful. However, as suggested -- run only on development
|
||
|
installations.
|
||
|
|
||
|
3. Additional files creeping into the packages
|
||
|
-------------------------------------------
|
||
|
|
||
|
Due to some daemons making changes to their config files whilst your build
|
||
|
is in flight, you may find some additional files have crept into your package
|
||
|
which you were not expecting.
|
||
|
|
||
|
You may wish to turn off the following daemons before starting a build:
|
||
|
CUPS
|
||
|
crond
|
||
|
sendmail
|
||
|
ypbind (NIS)
|
||
|
ypserv (NIS)
|
||
|
|
||
|
If you look at the example post build script above, you can see that it
|
||
|
removes some CUPS and crond residue.
|
||
|
Whilst it would be possible to remove these paths from slacktrack's scan
|
||
|
locations, some users may wish their package to place data in those directories;
|
||
|
so you need to make your own adjustments and checks for this.
|
||
|
|
||
|
|
||
|
END.
|