Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package postfix

This upload fixes two significant bugs and makes it possible for a user to
recover from a third without hand editing configuration files:

1.  Postfix-cdb will no longer fail to work after upgrade from jessie due to
    upgrade ordering issues.

2.  Postfix should wait to start until the network and DNS are actually
    available, so it won't fail to start on boot.

3.  If an upgrade is performed from a not fully updated system and the
    dynamic maps locations are incorred in dynamicmaps.cf, dpkg-reconfigure
    postfix (and whatever postfix map types are installed) will fix it.

Note: The last one will be followed by a bug to release-notes to mention this
(it seems way better than a release note explaining how to hand edit files).

unblock postfix/3.1.4-5
diff -Nru postfix-3.1.4/debian/changelog postfix-3.1.4/debian/changelog
--- postfix-3.1.4/debian/changelog	2017-01-25 10:03:04.000000000 -0500
+++ postfix-3.1.4/debian/changelog	2017-05-15 16:03:38.000000000 -0400
@@ -1,3 +1,15 @@
+postfix (3.1.4-5) unstable; urgency=medium
+
+  * Add postfix-cdb Breaks: postfix << 3.1.3-7~ so that the incorrect addmap
+    function will not be used when postfix-cdb is configured.  Closes: #861593
+  * Make sure to call delmap on upgrade as well as remove and purge so
+    dpkg-reconfigure will fix broken upgrades.  Closes: #859805
+  * Drop ineffective service override generated in postinst and use correct
+    service file dependencies in postfix@.service instead.  Closes: #854475
+  * Clean up left-over /etc/systemd/system/postfix.service.d directory
+
+ -- Scott Kitterman <sc...@kitterman.com>  Mon, 15 May 2017 16:03:17 -0400
+
 postfix (3.1.4-4) unstable; urgency=medium
 
     [Scott Kitterman]
diff -Nru postfix-3.1.4/debian/control postfix-3.1.4/debian/control
--- postfix-3.1.4/debian/control	2017-01-06 13:04:11.000000000 -0500
+++ postfix-3.1.4/debian/control	2017-05-15 08:01:31.000000000 -0400
@@ -46,6 +46,7 @@
 Package: postfix-cdb
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, postfix (= ${binary:Version})
+Breaks: postfix (<< 3.1.3-7~)
 Description: CDB map support for Postfix
  ${Description}
  .
diff -Nru postfix-3.1.4/debian/postfix-cdb.prerm postfix-3.1.4/debian/postfix-cdb.prerm
--- postfix-3.1.4/debian/postfix-cdb.prerm	2016-12-06 17:04:03.000000000 -0500
+++ postfix-3.1.4/debian/postfix-cdb.prerm	2017-05-15 09:43:57.000000000 -0400
@@ -18,11 +18,11 @@
 . /usr/share/postfix/postinst.functions
 
 case "$1" in
-    remove|purge)
+    remove|purge|upgrade)
         delmap cdb
 #       install-info --quiet --remove /usr/info/#PACKAGE#.info.gz
         ;;
-    upgrade|deconfigure|failed-upgrade)
+    deconfigure|failed-upgrade)
         ;;
     *)
         echo "prerm called with unknown argument \`$1'" >&2
diff -Nru postfix-3.1.4/debian/postfix-ldap.prerm postfix-3.1.4/debian/postfix-ldap.prerm
--- postfix-3.1.4/debian/postfix-ldap.prerm	2016-12-06 16:59:58.000000000 -0500
+++ postfix-3.1.4/debian/postfix-ldap.prerm	2017-05-15 09:44:25.000000000 -0400
@@ -18,11 +18,11 @@
 . /usr/share/postfix/postinst.functions
 
 case "$1" in
-    remove|purge)
+    remove|purge|upgrade)
         delmap ldap
 #       install-info --quiet --remove /usr/info/#PACKAGE#.info.gz
         ;;
-    upgrade|deconfigure|failed-upgrade)
+    deconfigure|failed-upgrade)
         ;;
     *)
         echo "prerm called with unknown argument \`$1'" >&2
diff -Nru postfix-3.1.4/debian/postfix-lmdb.prerm postfix-3.1.4/debian/postfix-lmdb.prerm
--- postfix-3.1.4/debian/postfix-lmdb.prerm	2016-12-06 16:56:01.000000000 -0500
+++ postfix-3.1.4/debian/postfix-lmdb.prerm	2017-05-15 09:44:54.000000000 -0400
@@ -18,11 +18,11 @@
 . /usr/share/postfix/postinst.functions
 
 case "$1" in
-    remove|purge)
+    remove|purge|upgrade)
         delmap lmdb
 #       install-info --quiet --remove /usr/info/#PACKAGE#.info.gz
         ;;
-    upgrade|deconfigure|failed-upgrade)
+    deconfigure|failed-upgrade)
         ;;
     *)
         echo "prerm called with unknown argument \`$1'" >&2
diff -Nru postfix-3.1.4/debian/postfix-mysql.prerm postfix-3.1.4/debian/postfix-mysql.prerm
--- postfix-3.1.4/debian/postfix-mysql.prerm	2016-12-06 17:00:26.000000000 -0500
+++ postfix-3.1.4/debian/postfix-mysql.prerm	2017-05-15 09:45:22.000000000 -0400
@@ -18,11 +18,11 @@
 . /usr/share/postfix/postinst.functions
 
 case "$1" in
-    remove|purge)
+    remove|purge|upgrade)
         delmap mysql
 #       install-info --quiet --remove /usr/info/#PACKAGE#.info.gz
         ;;
-    upgrade|deconfigure|failed-upgrade)
+    deconfigure|failed-upgrade)
         ;;
     *)
         echo "prerm called with unknown argument \`$1'" >&2
diff -Nru postfix-3.1.4/debian/postfix-pcre.prerm postfix-3.1.4/debian/postfix-pcre.prerm
--- postfix-3.1.4/debian/postfix-pcre.prerm	2016-12-06 17:00:56.000000000 -0500
+++ postfix-3.1.4/debian/postfix-pcre.prerm	2017-05-15 09:45:47.000000000 -0400
@@ -18,11 +18,11 @@
 . /usr/share/postfix/postinst.functions
 
 case "$1" in
-    remove|purge)
+    remove|purge|upgrade)
         delmap pcre
 #       install-info --quiet --remove /usr/info/#PACKAGE#.info.gz
         ;;
-    upgrade|deconfigure|failed-upgrade)
+    deconfigure|failed-upgrade)
         ;;
     *)
         echo "prerm called with unknown argument \`$1'" >&2
diff -Nru postfix-3.1.4/debian/postfix-pgsql.prerm postfix-3.1.4/debian/postfix-pgsql.prerm
--- postfix-3.1.4/debian/postfix-pgsql.prerm	2016-12-06 17:01:24.000000000 -0500
+++ postfix-3.1.4/debian/postfix-pgsql.prerm	2017-05-15 09:46:08.000000000 -0400
@@ -18,11 +18,11 @@
 . /usr/share/postfix/postinst.functions
 
 case "$1" in
-    remove|purge)
+    remove|purge|upgrade)
         delmap pgsql
 #       install-info --quiet --remove /usr/info/#PACKAGE#.info.gz
         ;;
-    upgrade|deconfigure|failed-upgrade)
+    deconfigure|failed-upgrade)
         ;;
     *)
         echo "prerm called with unknown argument \`$1'" >&2
diff -Nru postfix-3.1.4/debian/postfix.postinst postfix-3.1.4/debian/postfix.postinst
--- postfix-3.1.4/debian/postfix.postinst	2017-01-20 23:32:04.000000000 -0500
+++ postfix-3.1.4/debian/postfix.postinst	2017-05-15 15:49:12.000000000 -0400
@@ -10,6 +10,8 @@
 CHROOT=/var/spool/postfix
 config_directory="/etc/postfix"		# make variable expansion easier...
 
+new=$2                  # get new version
+
 . /usr/share/postfix/postinst.functions
 
 set_maildrop_perms() {
@@ -182,17 +184,6 @@
     fi
 }
 
-add_service_override() {
-    NAME=postfix
-    # Generate service override file
-    SERVICE=$(mktemp $NAME.service.XXXXXXXXXX)
-    echo "[Unit]" >> $SERVICE
-    echo "After=network-online.target" >> $SERVICE
-    echo "After=systemd-resolved.service" >> $SERVICE
-    mkdir -p /etc/systemd/system/$NAME.service.d
-    install -m 644 $SERVICE /etc/systemd/system/$NAME.service.d/override.conf
-    rm -f $SERVICE
-}
 umask 022
 
 # postinst processing
@@ -297,7 +288,10 @@
 
 # Remove from postfix postinst after stretch and uncomment in postfix-sqlite.postinst
 addmap sqlite
-
+if dpkg --compare-versions $new lt 3.1.4-5~; then
+    # This turned out to be the wrong way to solve the problem.
+    rm -rf /etc/systemd/system/postfix.service.d
+fi
 db_get postfix/main_mailer_type && mailer="$RET"
 
 [ -f master.cf ] || cp /usr/share/postfix/master.cf.dist master.cf
@@ -647,18 +641,6 @@
 	fi
     fi
 
-    # If we are not Local only and using systemd, then make sure we wait until
-    # the network is actually there and we have DNS: #844277 and LP #1649453
-    # for starters. If using systemd without systemd-resolved, you're on your
-    #  own.
-    if [ -f /lib/systemd/systemd-resolved ] && \
-        [ ! -f /etc/systemd/system/postfix.service.d/override.conf ] ; then
-        if [ "$mailer" != "No configuration" ] && [ "$mailer" != "Local only" ]; then
-            echo "Adding systemd overrides to ensure network and name services available."
-            add_service_override
-        fi
-    fi
-
     [ -x /usr/sbin/invoke-rc.d ] && \
 	    INIT="invoke-rc.d postfix" || \
 	    INIT="/etc/init.d/postfix"
diff -Nru postfix-3.1.4/debian/postfix.prerm postfix-3.1.4/debian/postfix.prerm
--- postfix-3.1.4/debian/postfix.prerm	2016-10-30 08:17:46.000000000 -0400
+++ postfix-3.1.4/debian/postfix.prerm	2017-05-15 14:46:43.000000000 -0400
@@ -3,6 +3,8 @@
 # Debian Postfix prerm
 # LaMont Jones <lam...@debian.org>
 
+. /usr/share/postfix/postinst.functions
+
 case "$1" in
     upgrade)
 	new=$2			# get new version
@@ -19,6 +21,8 @@
 		mv ${MASTER}.$$ ${MASTER}
 	    fi
 	fi
+	delmap sqlite #remove after stretch
+	delmap tcp # remove after stretch
 	;;
 
     deconfigure)
diff -Nru postfix-3.1.4/debian/postfix.service postfix-3.1.4/debian/postfix.service
--- postfix-3.1.4/debian/postfix.service	2016-10-30 08:17:46.000000000 -0400
+++ postfix-3.1.4/debian/postfix.service	2017-05-15 10:01:48.000000000 -0400
@@ -1,6 +1,5 @@
 [Unit]
 Description=Postfix Mail Transport Agent
-After=network.target
 Conflicts=sendmail.service exim4.service
 ConditionPathExists=/etc/postfix/main.cf
 
diff -Nru postfix-3.1.4/debian/postfix@.service postfix-3.1.4/debian/postfix@.service
--- postfix-3.1.4/debian/postfix@.service	2016-10-30 08:17:46.000000000 -0400
+++ postfix-3.1.4/debian/postfix@.service	2017-05-15 10:02:59.000000000 -0400
@@ -2,7 +2,10 @@
 Description=Postfix Mail Transport Agent (instance %i)
 Documentation=man:postfix(1)
 PartOf=postfix.service
+Before=postfix.service
 ReloadPropagatedFrom=postfix.service
+After=network-online.target nss-lookup.target
+Wants=network-online.target
 
 [Service]
 Type=forking
diff -Nru postfix-3.1.4/debian/postfix-sqlite.prerm postfix-3.1.4/debian/postfix-sqlite.prerm
--- postfix-3.1.4/debian/postfix-sqlite.prerm	2017-01-06 13:04:11.000000000 -0500
+++ postfix-3.1.4/debian/postfix-sqlite.prerm	2017-05-15 09:47:25.000000000 -0400
@@ -23,7 +23,7 @@
 fi
 
 case "$1" in
-    remove|upgrade|deconfigure)
+    remove|purge|upgrade|deconfigure)
 	[ n = "$HAVE_FUNC" ] || delmap sqlite
         ;;
     failed-upgrade)

Reply via email to