diff options
Diffstat (limited to 'debian/sendmail-base.prerm')
-rw-r--r-- | debian/sendmail-base.prerm | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/debian/sendmail-base.prerm b/debian/sendmail-base.prerm new file mode 100644 index 0000000..09a09cf --- /dev/null +++ b/debian/sendmail-base.prerm @@ -0,0 +1,138 @@ +#!/bin/sh -e +# +# Debian pre removal script +# +# Install of already installed package: +# 1) old-prerm upgrade new-version +# *) new-prerm failed-upgrade old-version +# *) old-postinst abort-upgrade new-version +# +# If a `conflicting' package is being removed at the same time: +# 1) forall packages depending on conflicting package and --auto-deconfigure +# deconfigured's-prerm deconfigure \ +# in-favour package-being-installed version \ +# removing conflicting-package version +# *) deconfigured's-postinst abort-deconfigure \ +# in-favour package-being-installed-but-failed version \ +# removing conflicting-package version +# 2) To prepare for removal of the conflicting package +# conflictor's-prerm remove \ +# in-favour package new-version +# *) conflictor's-postinst abort-remove \ +# in-favour package new-version +# +# Removal of a package: +# 1) prerm remove +# 2) The package's files are removed (except conffiles). +# 3) postrm remove +# 4) All the maintainer scripts except the postrm are removed. +# +set -e; + +PACKAGE=sendmail-base; + +case "$1" in + remove) + if [ ! -z "$2" ]; then + echo "Removing $PACKAGE $2 $3($4)"; + fi; + + if [ -x /usr/sbin/update-inetd ]; then + update-inetd --group MAIL --disable smtp,smtps,submission; + fi; + + # Make sure /etc/aliases is left (move it from /etc/mail if needed) + if [ -L /etc/mail/aliases ]; then + rm -f /etc/mail/aliases; + elif [ -f /etc/mail/aliases ] \ + && [ -L /etc/aliases ]; then + mv /etc/mail/aliases /etc/aliases; + fi; + + # Remove psuedo conffiles (managed by sendmail) + rm -f /etc/cron.d/sendmail; + + # Remove files scattered across the system that + # happened to be created by sendmail + rm -f /usr/lib/sasl/Sendmail.conf; + + # Remove those files created by sendmail + rm -rf /var/lib/sendmail; + rm -rf /var/run/sendmail; + # Note: syslog really owns these files + #rm -f /var/log/mail/*; + #rm -f /var/log/mail.log; + # Note: these can lead to a loss of mail!!!! + if [ -x /etc/init.d/sendmail ]; then + /etc/init.d/sendmail clean; + fi; + if [ -L /var/spool/mqueue ]; then + rmdir --ignore-fail-on-non-empty \ + `readlink -fn /var/spool/mqueue`; + elif [ -d /var/spool/mqueue ]; then + rmdir --ignore-fail-on-non-empty \ + /var/spool/mqueue; + fi; + if [ -L /var/spool/mqueue-client ]; then + rmdir --ignore-fail-on-non-empty \ + `readlink -fn /var/spool/mqueue-client`; + elif [ -d /var/spool/mqueue-client ]; then + rmdir --ignore-fail-on-non-empty \ + /var/spool/mqueue-client; + fi; + + # Remove sendmail built configuration files + rm -f /etc/mail/*.db \ + /etc/mail/*.dir \ + /etc/mail/*.pag; + rm -f /etc/mail/sendmail.cf \ + /etc/mail/sendmail.cf.old \ + /etc/mail/sendmail.cf.errors \ + /etc/mail/sendmail.mc.old \ + /etc/mail/submit.cf \ + /etc/mail/submit.cf.errors \ + /etc/mail/submit.mc.old \ + /etc/mail/databases \ + /etc/mail/Makefile \ + ; + rm -rf /etc/mail/smrsh \ + /etc/mail/sasl \ + /etc/mail/tls; + + # Remove empty files (probably touched databases) + find /etc/mail -maxdepth 1 -size 0 | xargs -r rm; + ;; + + upgrade) + # Potentially move the old configuration file to the new name - + # before it gets deleted (for not existing in the new package) + mv -f /etc/default/sendmail \ + /etc/mail/sendmail.conf 2>/dev/null || true; + + # Prevent cronjob from running during upgrade... + if [ -f /etc/cron.d/sendmail ]; then + echo "#prerm" > /etc/cron.d/sendmail; + fi; + ;; + + failed-upgrade) + ;; + + deconfigure) + echo "Deconfigure of $PACKAGE $2 $3($4) $5 $6($7) "; + ;; + + *) + echo "$PACKAGE prerm called with unknown argument \`$1'" >&2; + exit 1; + ;; + esac; + +# The @DEBHELPER@ stuff causes problems with upgrades because of the +# length of time that Sendmail is stopped... + +# +# Included for sanity checks +# +#DEBHELPER# +exit 0; |