summaryrefslogtreecommitdiff
path: root/source/ap/linuxdoc-tools/postbuildfixes.sh
blob: c7cb28783700a0653dd752893e37dfeb05fff7ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/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.