blob: c7cb28783700a0653dd752893e37dfeb05fff7ea (
plain) (
tree)
|
|
#!/bin/bash
# Once slacktrack has determined what the contents of the package
# should be, it copies them into $SLACKTRACKFAKEROOT and creates
# an entry in /var/log/packages.
# Subsequently, within $SLACKTRACKFAKEROOT, it performs the requested
# packaging operations (gzipping man pages, setting permissions and ownerships,
# etc.) and then runs _this_ script.
#
# From here we can make modifications to the package's contents
# immediately prior to the invocation of makepkg: slacktrack will
# perform no other operations upon the contents of the package after
# the execution of _this_ script.
# It also means that when we rename the conf files to ".new", it does not
# affect the ability to ''removepkg linuxdoc-tools'' on the build box,
# as the entry in /var/log/packages still matches what was installed
# into /etc by the 'linuxdoc-tools.build' 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 || exit 1
# Remove .la files:
echo "Deleting .la files..."
find . -type f -name '*.la' -print | while read lafile ; do
# Remove it from the build box itself to prevent other packages potentially referencing it.
# This wouldn't be a problem if you removepkg linuxdoc-tools (the version created by slacktrack
# that contains everything prior to _this_ post build script running) before building any other
# packages; but in case you don't, let's remove it from the OS file system:
rm "/${lafile}"
# Remove it from the distributable package t?z file:
rm -fv "${lafile}"
done
# 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 & mail (just incase you got a delivery!)
rm -rf var/spool/{cron,mail}
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 .
# Remove dangling symlinks from /usr/doc. asciidoc-8.6.7 was a culprit.
find usr/doc -xtype l -print0 | xargs -0 rm -fv
# Ensure some permissions.
# I don't know why but these dirs are installed chmod 1755:
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ljfour/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ljfour/jknappen/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/pk/ljfour/jknappen/ec/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/source/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/source/jknappen/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/source/jknappen/ec/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/tfm/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/tfm/jknappen/
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/tfm/jknappen/ec/
#find var/lib/texmf -type d -print0 | xargs -0 chmod 755
# This directory needs these permissions to permit pleb accounts to make
# fonts:
#chmod 1777 var/lib/texmf
#
# Never mind: I think this stuff is surplus to requirements:
rm -rf var/lib/texmf
# Now to prevent deletion of anything else that lives in the package's '/var'
rmdir var/lib
rmdir var
# There's no reason to include huge redundant documentation:
pushd usr/doc
find . -name "*.txt" | while read docfile ; do
basedocname=$(echo $docfile | rev | cut -f 2- -d . | rev)
rm -fv ${basedocname}.{html,pdf,xml}
rm -fv docbook-xsl*/reference.pdf.gz
done
popd
# Allow preservation of conf files for ascii-doc. Some of the other bundled
# packages may benefit from this treatment, but nobody's asked for anything
# other than asciidoc in over 10 years!
echo "Renaming configuration files to '.conf.new'.."
find etc/asciidoc -type f -name '*.conf' -print0 | xargs -0i mv -fv '{}' '{}.new'
# Search for any dangling symlinks created by renaming the files:
if [ ! -z "$( find -L etc/asciidoc -type l -print )" ]; then
echo "WARNING: Dangling symlinks in etc/asciidoc -- you need to fix them!"
find -L etc/asciidoc -type l -print
fi
# Populate the doinst.sh script
find etc/asciidoc -type f -name '*.conf.new' | while read cfile ; do
echo "config $cfile" >> install/doinst.sh
done
# Now you should manually extract the .t?z
# - check through the install/doinst.sh script;
# - check the contents, permissions and ownerships in the package archive.
|