X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=debian%2Fpostinst;h=a841de788669faebf8eb6b3382baf388d0b07aea;hp=ccf2a17b1fd27b65d582aad6e666ae27e673eb0c;hb=0a526a417995ebee0a25ead648978c94bfcbb6cd;hpb=3445ac73d9a18f4df13df1f40682a884ccebd572 diff --git a/debian/postinst b/debian/postinst index ccf2a17b..a841de78 100644 --- a/debian/postinst +++ b/debian/postinst @@ -23,28 +23,94 @@ set -e # 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) - if ! adduser --quiet --system --home /etc/privoxy --no-create-home \ - --ingroup nogroup --disabled-password privoxy - then - # user privoxy seems to exist - # -> remove him before newly adding him. - deluser --quiet privoxy - adduser --quiet --system --home /etc/privoxy --no-create-home \ - --ingroup nogroup --disabled-password privoxy - fi - chown -R privoxy.adm /var/log/privoxy + 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 /etc/privoxy/user.action /etc/privoxy/trust - [ -f /etc/privoxy/global.action ] \ - && chown privoxy /etc/privoxy/global.action + 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 () { + 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 /etc/privoxy/standard.action \ - /etc/privoxy/default.action + 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 ;;