postinst is in dpkg 1.17.5ubuntu5.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | #!/bin/sh
# This script can be called in the following ways:
#
# After the package was installed:
# <postinst> configure <old-version>
#
#
# If prerm fails during upgrade or fails on failed upgrade:
# <old-postinst> abort-upgrade <new-version>
#
# If prerm fails during removal:
# <old-postinst> abort-remove
#
# If prerm fails during deconfiguration of a package:
# <postinst> abort-deconfigure in-favour <new-package> <version>
# removing <old-package> <version>
#
# If prerm fails during replacement due to conflict:
# <postinst> abort-remove in-favour <new-package> <version>
set -e
# Create the database files if they don't already exist
create_database() {
admindir=${DPKG_ADMINDIR:-/var/lib/dpkg}
for file in diversions statoverride status; do
if [ ! -f "$admindir/$file" ]; then
touch "$admindir/$file"
fi
done
}
# Move the info directory from /usr/info to /usr/share/info
move_info_directory() {
if [ -d /usr/info ] && [ ! -L /usr/info ] \
&& [ -f /usr/info/dir ] && [ ! -L /usr/info/dir ]
then
echo "Moving /usr/info/dir to /usr/share/info/dir ..."
mv /usr/info/dir /usr/share/info/dir
if [ -f /usr/info/dir.old ]; then
mv /usr/info/dir.old /usr/share/info/dir.old
fi
fi
}
# Remove the /usr/info symlinks we used to generate
remove_info_symlink() {
if [ -L /usr/info ]; then
echo "Removing /usr/info symlink ..."
rm /usr/info
elif [ -L /usr/info/dir ]; then
echo "Removing /usr/info/dir symlink ..."
rm /usr/info/dir
fi
}
# Create log file and set default permissions if possible
create_logfile() {
logfile=/var/log/dpkg.log
touch $logfile
chmod 644 $logfile
chown root:root $logfile 2>/dev/null || chown 0:0 $logfile
}
new_installs_multiarch()
{
if [ "$DPKG_MAINTSCRIPT_ARCH" = "amd64" ]; then
dpkg --add-architecture i386
fi
}
migrate_multiarch_conffile()
{
ADD_ARCHES=""
for i in /etc/dpkg/dpkg.cfg $(run-parts --list /etc/dpkg/dpkg.cfg.d); do
ADD_ARCHES="$ADD_ARCHES $(awk '/^foreign-architecture/ {print $2}' $i)"
sed -i -e 's/^foreign-architecture/# foreign-architecture/' $i
done
if [ -f /etc/dpkg/dpkg.cfg.d/multiarch.dpkg-remove ]; then
ADD_ARCHES="$ADD_ARCHES $(awk '/^foreign-architecture/ {print $2}' \
/etc/dpkg/dpkg.cfg.d/multiarch.dpkg-remove)"
rm -f /etc/dpkg/dpkg.cfg.d/multiarch.dpkg-remove
elif [ -f /etc/dpkg/dpkg.cfg.d/multiarch.dpkg-backup ]; then
ADD_ARCHES="$ADD_ARCHES $(awk '/^foreign-architecture/ {print $2}' \
/etc/dpkg/dpkg.cfg.d/multiarch.dpkg-backup)"
mv /etc/dpkg/dpkg.cfg.d/multiarch.dpkg-backup \
/etc/dpkg/dpkg.cfg.d/multiarch.dpkg-bak
fi
for i in $ADD_ARCHES; do
dpkg --add-architecture $i
done
}
case "$1" in
configure)
create_database
create_logfile
move_info_directory
remove_info_symlink
if dpkg --compare-versions "$2" lt 1.16.0.3ubuntu4; then
new_installs_multiarch
fi
if dpkg --compare-versions "$2" lt 1.16.3; then
migrate_multiarch_conffile
fi
;;
abort-upgrade|abort-deconfigure|abort-remove)
;;
*)
echo "$0 called with unknown argument \`$1'" 1>&2
exit 1
;;
esac
exit 0
|