summaryrefslogblamecommitdiffstats
path: root/source/ap/linuxdoc-tools/postbuildfixes.sh
blob: c7cb28783700a0653dd752893e37dfeb05fff7ea (plain) (tree)
1
2
3
4
5
6
7
8
9

           
                                                                 





                                                                               
                                                               
                                                                 






                                                                         



                                                                                












                                                                                                 







                                            

                                                









                                                    


                                                                        
                          















                                                                                        
 






                                                                             
             




                                                           















                                                                                 
 
                                          

                                                                          
#!/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.