diff options
Diffstat (limited to 'debian/dovecot-core.postinst')
-rw-r--r-- | debian/dovecot-core.postinst | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/debian/dovecot-core.postinst b/debian/dovecot-core.postinst new file mode 100644 index 0000000..cb90f03 --- /dev/null +++ b/debian/dovecot-core.postinst @@ -0,0 +1,87 @@ +#!/bin/sh +set -e + +if [ "$1" = "configure" ]; then + CONFFILES="dovecot.conf \ + dovecot-dict-auth.conf.ext \ + dovecot-dict-sql.conf.ext \ + dovecot-sql.conf.ext \ + conf.d/10-auth.conf \ + conf.d/10-director.conf \ + conf.d/10-logging.conf \ + conf.d/10-mail.conf \ + conf.d/10-master.conf \ + conf.d/10-ssl.conf \ + conf.d/10-tcpwrapper.conf \ + conf.d/15-lda.conf \ + conf.d/15-mailboxes.conf \ + conf.d/90-acl.conf \ + conf.d/90-plugin.conf \ + conf.d/90-quota.conf \ + conf.d/auth-checkpassword.conf.ext \ + conf.d/auth-deny.conf.ext \ + conf.d/auth-dict.conf.ext \ + conf.d/auth-master.conf.ext \ + conf.d/auth-passwdfile.conf.ext \ + conf.d/auth-sql.conf.ext \ + conf.d/auth-static.conf.ext \ + conf.d/auth-system.conf.ext" + + OLD_CONFFILES="conf.d/auth-vpopmail.conf.ext" + + ## Users + # + + adduser --system --group --home /usr/lib/dovecot --gecos "Dovecot mail server" \ + --no-create-home --disabled-password --quiet dovecot || true + + adduser --system --group --home /nonexistent --no-create-home --gecos "Dovecot login user" \ + --disabled-password --quiet dovenull || true + + for conffile in $CONFFILES ; do + # Tell ucf that the file in /usr/share/dovecot is the latest + # maintainer version, and let it handle how to manage the real + # configuration file in /etc/dovecot. + ucf --three-way "/usr/share/dovecot/$conffile" "/etc/dovecot/$conffile" + ucfr dovecot-core "/etc/dovecot/$conffile" + if [ "$conffile" != "dovecot.conf" ] && [ -f "/etc/dovecot/$conffile" ] && + [ "$(echo "$conffile" | cut -b -7)" != "conf.d/" ]; then + chmod 0640 "/etc/dovecot/$conffile" + chgrp dovecot "/etc/dovecot/$conffile" + fi + done + + for oldconffile in $OLD_CONFFILES ; do + if [ -e "/etc/dovecot/$oldconffile" ]; then + echo "Configuration file '/etc/dovecot/$oldconffile' is obsolete. Please remove." + ucf --purge "/etc/dovecot/$conffile" + ucfr --purge dovecot-core "/etc/dovecot/$conffile" + fi + done + + + if ! dpkg-statoverride --list /etc/dovecot/private >/dev/null; then + dpkg-statoverride --quiet --update --add root root 0700 /etc/dovecot/private + fi + + # SSL configuration + # Use the ssl-cert-snakeoil certificate in the following cases: + # - On new installations + if [ -z "$2" ]; then + if [ ! -e /etc/dovecot/private/dovecot.key ] && \ + [ ! -e /etc/dovecot/private/dovecot.pem ] && \ + [ -e /etc/ssl/certs/ssl-cert-snakeoil.pem ] && \ + [ -e /etc/ssl/private/ssl-cert-snakeoil.key ]; then + ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/dovecot/private/dovecot.pem + ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/dovecot/private/dovecot.key + fi + fi +fi + +if [ "$1" = "triggered" ]; then + if [ -x "/etc/init.d/dovecot" ]; then + invoke-rc.d dovecot restart + fi +fi + +#DEBHELPER# |