summaryrefslogtreecommitdiff
path: root/debian/apt.postinst
blob: 8d1cdb1b30a7a6e2b8e98f80bcbea65978fc8a8b (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
#! /bin/sh

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

case "$1" in
    configure)
	if dpkg --compare-versions "$2" lt 1.1~exp4; then
	    # apt-key before 0.9.10 could leave empty keyrings around
	    find /etc/apt/trusted.gpg.d/ -name '*.gpg' | while read keyring; do
		if ! test -s "$keyring"; then
		    rm -f "$keyring"
		fi
	    done
	    # apt-key before 0.9.8.2 could create 0600 trusted.gpg file
	    if test -e /etc/apt/trusted.gpg ; then
	        chmod -f 0644 /etc/apt/trusted.gpg || true
	    fi
	fi

	if dpkg --compare-versions "$2" lt-nl 0.9.9.5; then
	    # we are using tmpfiles for both
	    rm -f /etc/apt/trustdb.gpg
	    # this removal was done unconditional since 0.8.15.3
	    SECRING='/etc/apt/secring.gpg'
	    # test if secring is an empty normal file
	    if test -f $SECRING -a ! -s $SECRING; then
	        rm -f $SECRING
	    fi
	fi

	# add unprivileged user for the apt methods
	adduser --force-badname --system --home /nonexistent  \
	    --no-create-home --quiet _apt || true

	# Fixup any mistake in the home directory of the _apt user
	if dpkg --compare-versions "$2" lt-nl 1.1~exp10~; then
	    usermod --home /nonexistent _apt
	fi

	# deal with upgrades from experimental
	if dpkg --compare-versions "$2" 'eq' '1.1~exp3'; then
	    # libapt will setup partial/ at runtime
	    chown -R root:root /var/lib/apt/lists /var/cache/apt/archives || true
	fi

        # ensure tighter permissions on the logs, see LP: #975199
        if dpkg --compare-versions "$2" lt-nl 0.9.7.7; then
            # ensure permissions are right
            chmod -f 0640 /var/log/apt/term.log* || true
        fi

        # create kernel autoremoval blacklist on update
        if dpkg --compare-versions "$2" lt 0.9.9.3; then
            /etc/kernel/postinst.d/apt-auto-removal
        fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)

    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0