Your IP : 3.14.249.33


Current Path : /var/lib/dpkg/info/
Upload File :
Current File : /var/lib/dpkg/info/dovecot-core.postinst

#!/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 \
    conf.d/auth-vpopmail.conf.ext"

  OLD_CONFFILES="dovecot-ldap.conf \
    dovecot-db.conf.ext \
    dovecot-sql.conf \
    protocols.conf \
    dovecot-ldap.conf.ext \
    conf.d/20-imap.conf \
    conf.d/20-lmtp.conf \
    conf.d/20-managesieve.conf \
    conf.d/20-pop3.conf \
    conf.d/90-sieve.conf \
    conf.d/auth-ldap.conf.ext"

    OLD_DPKG_CONFFILES="/etc/cron.daily/dovecot \
      /etc/dovecot/dovecot-dict-sql-example.conf \
      /etc/dovecot/dovecot-db-example.conf"

    # purge old dpkg handled conffiles (we can't use dpkg-maintscript-helper because package rename)
    for conffile in $OLD_DPKG_CONFFILES ; do
      [ -e "$conffile" ] || continue
      confmd5="$(md5sum $conffile | awk '{print $1}')"
      dpkgmd5="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e "\' $conffile ' { s/ obsolete$//; s/.* //; p }")"
      if [ "$confmd5" != "$dpkgmd5" ]; then
        echo "Obsolete conffile $conffile has been modified by you."
        echo "Saving as $conffile.dpkg-bak ..."
        mv -f "$conffile" "$conffile".dpkg-bak
      else
        echo "Removing obsolete conffile $conffile ..."
        rm -f "$conffile"
      fi
    done

  # purge old ucf handled conffiles
  for conffile in $OLD_CONFFILES ; do
    if ucfq "/etc/dovecot/${conffile}" --with-colons | grep -q "^/etc/dovecot/${conffile}:dovecot-common:"; then
      if ucfq --with-colons "/etc/dovecot/${conffile}" | grep -q ":Yes:No"; then
        rm -f "/etc/dovecot/${conffile}"
      fi
      ucf --purge /etc/dovecot/$conffile
      ucfr --purge dovecot-common /etc/dovecot/$conffile
      for ext in '~' '%' .bak .dpkg-tmp .dpkg-new .dpkg-old .dpkg-dist .ucf-new .ucf-old .ucf-dist;  do
        rm -f /etc/dovecot/$conffile$ext
      done
    fi
  done

  # if we are upgrading from dovecot-common take the ownership of configuration files
  for conffile in $(ucfq dovecot-common --with-colons | cut -f 1 -d :); do
    ucfr --force dovecot-core $conffile
    if [ "$conffile" = "/etc/dovecot/dovecot.conf" ]; then
      # avoid ucf question if the only difference is at the "protocols" line
      confmd5=$(sed 's/^protocols.*/protocols = none/' "$conffile" | md5sum | awk '{print $1}')
      ucfmd5=$(cat /var/lib/ucf/hashfile | grep "$conffile" | awk '{print $1}')
      if [ "$confmd5" = "$ucfmd5" ]; then
        sed -i 's/^protocols.*/protocols = none/' "$conffile"
      fi
      # remove old configuration bakup generated by postinst
      rm -f $conffile.bak
    fi
  done

  ## Users
  #

  if [ -z "`id -u dovecot 2> /dev/null`" ]; then
    adduser --system --group --home /usr/lib/dovecot --gecos "Dovecot mail server" \
            --no-create-home --disabled-password --quiet dovecot || true
  fi

  if [ -z "`id -u dovenull 2> /dev/null`" ]; then
    adduser --system --group --home /nonexistent --no-create-home --gecos "Dovecot login user" \
            --disabled-password --quiet dovenull || true
  fi

  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.

    # Special handling for 10-ssl.conf.
    # Copy the file if it does not exist, do nothing otherwise.
    if [ "$conffile" = 'conf.d/10-ssl.conf' ]; then
        if [ ! -f /etc/dovecot/$conffile ]; then
            cp /usr/share/dovecot/$conffile /etc/dovecot/$conffile
            chmod 0644 /etc/dovecot/$conffile
        fi
        # Unregister 10-ssl.conf from ucf if it's there.
        ucfr --purge dovecot-core /etc/dovecot/$conffile
        continue
    fi

    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

  if [ -n "`id -u imapd 2> /dev/null`" ]; then
    deluser imapd || true
    delgroup imapd || true
  fi

fi

if [ "$1" = "triggered" ]; then
    if [ -x "/etc/init.d/dovecot" ]; then
        invoke-rc.d dovecot restart
    fi
fi

# Stop and disable the systemd socket on upgrade if dovecot.service is enabled as well
# (see #803915 and #814999). This will be attempted only once, to allow admins
# to re-enable dovecot.socket if they wish.
if [ "$1" = "configure" ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt "1:2.2.21-1~"; then
    if deb-systemd-helper --quiet was-enabled dovecot.service; then
        deb-systemd-helper disable dovecot.socket
    fi
fi

# Automatically added by dh_systemd_enable
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask dovecot.service >/dev/null || true

# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled dovecot.service; then
	# Enables the unit on first installation, creates new
	# symlinks on upgrades if the unit file has changed.
	deb-systemd-helper enable dovecot.service >/dev/null || true
else
	# Update the statefile to add new symlinks (if any), which need to be
	# cleaned up on purge. Also remove old symlinks.
	deb-systemd-helper update-state dovecot.service >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_systemd_enable
if deb-systemd-helper debian-installed dovecot.socket; then
	# This will only remove masks created by d-s-h on package removal.
	deb-systemd-helper unmask dovecot.socket >/dev/null || true

	if deb-systemd-helper --quiet was-enabled dovecot.socket; then
		# Create new symlinks, if any.
		deb-systemd-helper enable dovecot.socket >/dev/null || true
	fi
fi

# Update the statefile to add new symlinks (if any), which need to be cleaned
# up on purge. Also remove old symlinks.
deb-systemd-helper update-state dovecot.socket >/dev/null || true
# End automatically added section
# Automatically added by dh_installinit
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
	if [ -x "/etc/init.d/dovecot" ]; then
		update-rc.d dovecot defaults 20 >/dev/null
		invoke-rc.d dovecot start || exit $?
	fi
fi
# End automatically added section
# Automatically added by dh_installdeb
dpkg-maintscript-helper rm_conffile /etc/dovecot/README 1:2.2.27-3~ -- "$@"
# End automatically added section