brisanje starih conffileova
[amavisd-cn.git] / debian / postinst
index 4ce2de2..b7fba03 100755 (executable)
@@ -1,8 +1,22 @@
 #!/bin/sh
-# last update: zoran.dzelajlija@carnet.hr  Fri, 19 Oct 2007 00:34:32 +0200
+# postinst script for amavisd-cn
+#
+# 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
+#
+
 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
 
 case "$1" in
@@ -28,14 +42,6 @@ export PATH
 . /usr/share/amavisd-cn/variables.sh
 . /usr/share/amavisd-cn/functions.sh
 
-# Place configuration tweaks done on upgrades into this function
-update_conf() {
-  [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
-  # placeholder.
-  # remember to set changed_config=1 and restart_daemon=1 if necessary
-  :
-}
-
 mta=postfix
 . /usr/share/amavisd-cn/postfix.sh
 
@@ -43,23 +49,19 @@ mta=postfix
 cp_get_mx_domain
 domain=$RET
 
-update_postfix
+update_postfix $*
 
 # amavisd.conf
 if [ -f "$ACONFOLD" ]; then
   cp_echo "CN: Amavisd configuration is now in $ACONF."
-  cp_echo "    Previous location was $ACONFOLD."
-  cp_backup_conffile "$ACONFOLD"
+  noisy_backup "$ACONFOLD"
   rm -f "$ACONFOLD"
-  cp_echo "    Old file renamed to $ACONFMOVED."
-  fi
   cp_echo ""
   cp_echo "CN: Please read /usr/share/doc/amavisd-cn/README.CARNet."
 elif [ -f "$ACONFOLD.disabled" ]; then
-  cp_backup_conffile "$ACONFOLD.disabled" "$(basename $ACONFOLD)"
+  noisy_backup "$ACONFOLD.disabled" "$(basename $ACONFOLD)"
   rm -f "$ACONFOLD.disabled"
-  cp_echo "CN: Removed $ACONFOLD.disabled."
-  cp_echo "    Please read /usr/share/doc/amavisd-cn/README.CARNet."
+  cp_echo "CN: Please read /usr/share/doc/amavisd-cn/README.CARNet."
 fi
 
 if [ -f $ACONF ]; then
@@ -70,45 +72,39 @@ fi
 if [ ! -f $ACONF -o ! -s $ACONF ]; then
   # Create fresh config from template
   conf_from_template
+  restart_daemon=1
 fi
 
-# check for SAVI:
-# if not there, comment it out, if there, uncomment and restart
-if ! dpkg -l libsavi-perl 2> /dev/null | egrep -q '^.i' || ! [ -f /usr/lib/libsavi.so ]; then
-  if cp_check_and_sed "^\['Sophos SAVI'" \
-     "s/^\(\['Sophos SAVI', ..sophos_savi \]\)/#\1/" $ACONF; then
-    cp_echo "CN: Disabled SAVI::Perl usage in ${ACONF}."
-    cp_echo "    To enable it, run sophos-sweep-update, uncomment and restart amavis."
-  fi
-else
-  if cp_check_and_sed "^#\['Sophos SAVI'" \
-     "s/^#\(\['Sophos SAVI', ..sophos_savi \]\)/\1/" $ACONF; then
-    cp_echo "CN: Enabled SAVI::Perl usage in ${ACONF}."
-    restart_daemon=1
-  fi
+# disable SAVI as proven problematic
+if cp_check_and_sed "^[[:blank:]]*\['Sophos SAVI'" \
+ "s/^[[:blank:]]*\(\['Sophos SAVI', ..sophos_savi \]\)/#\1/" $ACONF; then
+  cp_echo "CN: Disabled SAVI::Perl usage in ${ACONF}."
+  restart_daemon=1
 fi
 
 check_and_add_alias virusalert root
 check_and_add_alias spamalert root
 
-if [ ! -f $AHOME/.spamassassin/user_prefs ] ; then
-  [ -d $AHOME/.spamassassin ] || mkdir -p $AHOME/.spamassassin
-  cat > $AHOME/.spamassassin/user_prefs <<-EEND
+# ovo je rijeseno u spamassassin-cn, i ovdje nije potrebno, stoga brisemo
+if [ -f $AHOME/.spamassassin/user_prefs ] ; then
+  user_prefs_temp=$(mktemp /tmp/user_prefs.XXXXXX)
+  cat > $user_prefs_temp <<-EEND
        bayes_path              $AHOME/.spamassassin/bayes
        bayes_auto_expire       0
        auto_whitelist_path     $AHOME/.spamassassin/auto-whitelist
        EEND
-  chown_ahome=1
-fi
-
-if [ ! -f $AHOME/.spamassassin/auto-whitelist ] ; then
-  touch $AHOME/.spamassassin/auto-whitelist
-  chown_ahome=1
+  if cmp -s $user_prefs_temp $AHOME/.spamassassin/user_prefs; then
+    rm -f $AHOME/.spamassassin/user_prefs
+  fi
+  rm -f $user_prefs_temp
 fi
 
 # No sysvinit order fixes
 :
 
+# Fix missing redirection in cron files for amavisd-new-cronjob
+add_redirection /etc/cron.d/amavisd-new /etc/cron.daily/amavisd-new
+
 # Cleanup and finalization
 if dpkg --compare-versions "$2" lt 2:20030616p10-4; then
   update-rc.d -f amavisd remove > /dev/null
@@ -129,26 +125,60 @@ fi
 
 # kill naughty pyzor descendants -- XXX needed for 2.4 or not?
 if dpkg --compare-versions "$2" lt 2:20030616p10-7 && \
-    pgrep -u amavis -f '/usr/bin/pyzor check' > /dev/null; then
-  /etc/init.d/amavisd-cn stop
+  pgrep -u amavis -f '/usr/bin/pyzor check' > /dev/null; then
+  if [ -x "/etc/init.d/amavisd-cn" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavisd-cn stop
+    else
+      /etc/init.d/amavisd-cn stop
+    fi
+  fi
   pkill -9 -u amavis -f '/usr/bin/pyzor check' > /dev/null || true
-  /etc/init.d/amavisd-cn start
+  if [ -x "/etc/init.d/amavisd-cn" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavisd-cn start
+    else
+      /etc/init.d/amavisd-cn start
+    fi
+  fi
   restart_daemon=
   restart_mta=
 fi
 
+# register for automatic start
+update-rc.d -f amavis remove >/dev/null || true
+update-rc.d amavisd-cn defaults 19 21 >/dev/null
+
 # START AMAVISD
 # about a half of amavisd-cn script is here
 if [ "$restart_daemon" -a -x /etc/init.d/amavis.amavisd-new ]; then
-  /etc/init.d/amavis.amavisd-new restart
+  if [ -x "/etc/init.d/amavis.amavisd-new" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavis.amavisd-new restart
+    else
+      /etc/init.d/amavis.amavisd-new restart
+    fi
+  fi
 fi
 # always check that the daemons are running
 if ! wait_for_fds amavis; then
-  /etc/init.d/amavis.amavisd-new start
+  if [ -x "/etc/init.d/amavis.amavisd-new" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d amavis.amavisd-new start
+    else
+      /etc/init.d/amavis.amavisd-new start
+    fi
+  fi
   wait_for_fds amavis
 fi
 if [ "$restart_mta" ]; then
-  /etc/init.d/$mta restart
+  if [ -x "/etc/init.d/$mta" ]; then
+    if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+      invoke-rc.d $mta restart
+    else
+      /etc/init.d/$mta restart
+    fi
+  fi
 fi
 
 # this needs to be updated when $CRONTAB file changes
@@ -185,4 +215,15 @@ if [ -n "$2" -a -z "$changed_config" ] && \
   cp_echo "    perl -pi -e 's/_CN_DOMAIN_/$domain/g' $ACONF"
 fi
 
+# Delete old conffiles...
+for conffile in /etc/logcheck/violations.ignore.d/amavisd-new \
+         /etc/logcheck/ignore.d.server/amavisd-new \
+         /etc/logcheck/ignore.d.workstation/amavisd-new \
+         /etc/cron.daily/amavisd-new; do
+  cp_echo "CN: Deleting old conffile ${conffile}..."
+  rm -f ${conffile}
+done
+
 cp_mail $PKG $VERSION
+
+exit 0