This file is indexed.

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