File: postinst

package info (click to toggle)
privoxy 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,488 kB
  • sloc: ansic: 33,393; perl: 4,813; sh: 3,940; makefile: 146; awk: 18; xml: 14
file content (132 lines) | stat: -rw-r--r-- 4,061 bytes parent folder | download
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
125
126
127
128
129
130
131
132
#! /bin/sh
# postinst script for privoxy
#
# see: dh_installdeb(1)

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
#
# quoting from the policy:
#     Any necessary prompting should almost always be confined to the
#     post-installation script, and should be protected with a conditional
#     so that unnecessary prompting doesn't happen if a package's
#     installation fails and the `postinst' is called with `abort-upgrade',
#     `abort-remove' or `abort-deconfigure'.

CONFDIR=/etc/privoxy
CONFIG=$CONFDIR/config
EXAMPLE_CONFIG=/usr/share/privoxy/config

. /usr/share/debconf/confmodule

case "$1" in
    configure)
        adduser --quiet --system --home $CONFDIR --no-create-home \
	    --ingroup nogroup --disabled-password privoxy
        chown privoxy:adm /var/log/privoxy
	[ -f /var/log/privoxy/logfile ] \
	    && chown privoxy:adm /var/log/privoxy/logfile
        chmod 750 /var/log/privoxy
	chown privoxy $CONFDIR/user.action $CONFDIR/trust
	[ -f $CONFDIR/match-all.action ] \
	    && chown privoxy $CONFDIR/match-all.action
	chown privoxy:adm /var/lib/privoxy/certs
	chmod 700 /var/lib/privoxy/certs

	db_get privoxy/listen-address || true
	perl -le '
                $done = 0;
                while (<STDIN>) {
                    chomp;
                    if ($_ =~ m/^\s*listen-address\s+.*/) {
                        if (!$done) {
                            foreach (@ARGV) {
                                print "listen-address  $_";
                            }
                        }
                        $done = 1;
                    } else {
                        print;
                    }
                }' \
	     $RET \
	     < $EXAMPLE_CONFIG > $CONFIG.ucftmp
	ucf --three-way --debconf-ok $CONFIG.ucftmp $CONFIG
	ucfr privoxy $CONFIG
	rm -f $CONFIG.ucftmp
	db_stop

	if [ "x$2" != "x" ] && dpkg --compare-versions "$2" lt "3.0.4"
	then
	    # Upgrading from a 3.0.3* version
	    chown root $CONFDIR/default.action
	fi

	if [ "x$2" != "x" ] && dpkg --compare-versions "$2" lt "3.0.7" \
	    && grep -q '^actionsfile [a-z]*[[:space:]]*#.*$' $CONFIG
	then
	    # Upgrading from version before 3.0.7 where the user kept his old
	    # (modified) config file:
	    # Try to change   "actionsfile foo"  to  "actionsfile foo.action"
	    # as needed in 3.0.7:
	    sed 's/^actionsfile \([a-z]*\)\([ 	]*\#\)/actionsfile \1.action\2/' \
		-i.bak $CONFIG
	fi

	if [ "x$2" != "x" ] && dpkg --compare-versions "$2" lt "3.0.11"
	then
	    # Upgrading from a version before 3.0.11
	    # Try to work around problems with missing action files
	    if grep -q '^actionsfile.*global.action' $CONFIG
	    then
		if [ -e $CONFDIR/global.action ]
		then
		    mv $CONFDIR/global.action $CONFDIR/global.action.dpkg-old
		fi
		(cd $CONFDIR; ln -s match-all.action global.action)
	    fi
	    if grep -q '^actionsfile.*standard.action' $CONFIG
	    then
		if [ -e $CONFDIR/standard.action ]
		then
		    if ! grep -q migration $CONFDIR/standard.action
		    then
			mv $CONFDIR/standard.action \
			    $CONFDIR/standard.action.dpkg-old
			echo "# migration file. Not used in 3.0.11 and newer" \
			    > $CONFDIR/standard.action
		    fi
		else
		    echo "# migration file. Not used in 3.0.11 and newer" \
			> $CONFDIR/standard.action
		fi
	    fi
	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