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
|