Package: release.debian.org
Severity: normal
Tags: stretch
User: release.debian....@packages.debian.org
Usertags: pu

While doing some QA testing on sendmail to verify the start-stop-daemon
fixes for buster, I noticed that sendmail does not stop itself properly
while being removed. This has been fixed in sid, and has a buster-pu
request open, but I'd like to fix this in stretch, too.
Along this, I've cherry-picked all the bugfixes that have been applied
to the package during the buster release cycle and are relevant for
stretch, too.

Thanks for considering.


Andreas
diff --git a/debian/Makefile.in b/debian/Makefile.in
index 3c89f52..0f6e3f3 100644
--- a/debian/Makefile.in
+++ b/debian/Makefile.in
@@ -117,6 +117,7 @@ CONFIG_CLEAN_FILES = build/autoconf.mk build/autoconf.pl \
        cf/ostype/debian.m4 \
        examples/dhcp/dhclient-exit-hooks.d/sendmail \
        examples/network/if-down.d/sendmail \
+       examples/network/if-post-down.d/sendmail \
        examples/network/if-up.d/sendmail \
        examples/ppp/ip-down.d/sendmail examples/ppp/ip-up.d/sendmail \
        examples/resolvconf/update-libc.d/sendmail \
@@ -211,6 +212,7 @@ am__DIST_COMMON = $(srcdir)/Makefile.in 
$(srcdir)/bug-control.in \
        $(top_srcdir)/cf/ostype/debian.m4.in \
        $(top_srcdir)/examples/dhcp/dhclient-exit-hooks.d/sendmail.in \
        $(top_srcdir)/examples/network/if-down.d/sendmail.in \
+       $(top_srcdir)/examples/network/if-post-down.d/sendmail.in \
        $(top_srcdir)/examples/network/if-up.d/sendmail.in \
        $(top_srcdir)/examples/ppp/ip-down.d/sendmail.in \
        $(top_srcdir)/examples/ppp/ip-up.d/sendmail.in \
@@ -591,6 +593,8 @@ examples/dhcp/dhclient-exit-hooks.d/sendmail: 
$(top_builddir)/config.status $(to
        cd $(top_builddir) && $(SHELL) ./config.status $@
 examples/network/if-down.d/sendmail: $(top_builddir)/config.status 
$(top_srcdir)/examples/network/if-down.d/sendmail.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
+examples/network/if-post-down.d/sendmail: $(top_builddir)/config.status 
$(top_srcdir)/examples/network/if-post-down.d/sendmail.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
 examples/network/if-up.d/sendmail: $(top_builddir)/config.status 
$(top_srcdir)/examples/network/if-up.d/sendmail.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
 examples/ppp/ip-down.d/sendmail: $(top_builddir)/config.status 
$(top_srcdir)/examples/ppp/ip-down.d/sendmail.in
diff --git a/debian/changelog b/debian/changelog
index 267dcce..c3fe5ca 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,26 @@
+sendmail (8.15.2-8+deb9u1) stretch; urgency=medium
+
+  * QA upload.
+  * rmail: Add exim4 to the list of conflicting MTAs.  (Closes: #863567)
+  * Skip hook execution if /usr/share/sendmail/dynamic does not exist.
+    (Closes: #873978)
+  * debian/examples/network/if-post-down.d/sendmail: Generate during build.
+  * connect-from-null.patch: New, fix "NOQUEUE: connect from (null)", thanks
+    to Michael Grant and Claus Assmann.
+  * Fix finding the queue runner control process in "split daemon" mode,
+    thanks to Marc Andre Selig.  (Closes: #887064)
+  * Fix prerm failure on btrfs.  (Closes: #893424)
+  * Switch Vcs-* URLs to salsa.debian.org.
+  * Fix typos in descriptions.  (Closes: #894535)
+  * sendmail-bin.prerm: Stop sendmail before removing the alternatives.
+
+ -- Andreas Beckmann <a...@debian.org>  Sun, 25 Aug 2019 20:07:11 +0200
+
 sendmail (8.15.2-8) unstable; urgency=medium
 
   * QA upload.
   * Use lockfile-create (from lockfile-progs) instead of touch to manage the
-    cronjob lockfiles.
+    cronjob lockfiles.  (Closes: #847498)
   * Switch to debhelper compat level 10.
 
  -- Andreas Beckmann <a...@debian.org>  Thu, 08 Dec 2016 18:43:49 +0100
diff --git a/debian/configure b/debian/configure
index 3ed645a..c0bd6b0 100755
--- a/debian/configure
+++ b/debian/configure
@@ -7588,6 +7588,8 @@ ac_config_files="$ac_config_files 
examples/dhcp/dhclient-exit-hooks.d/sendmail"
 
 ac_config_files="$ac_config_files examples/network/if-down.d/sendmail"
 
+ac_config_files="$ac_config_files examples/network/if-post-down.d/sendmail"
+
 ac_config_files="$ac_config_files examples/network/if-up.d/sendmail"
 
 ac_config_files="$ac_config_files examples/ppp/ip-down.d/sendmail"
@@ -8442,6 +8444,7 @@ do
     "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
     "examples/dhcp/dhclient-exit-hooks.d/sendmail") 
CONFIG_FILES="$CONFIG_FILES examples/dhcp/dhclient-exit-hooks.d/sendmail" ;;
     "examples/network/if-down.d/sendmail") CONFIG_FILES="$CONFIG_FILES 
examples/network/if-down.d/sendmail" ;;
+    "examples/network/if-post-down.d/sendmail") CONFIG_FILES="$CONFIG_FILES 
examples/network/if-post-down.d/sendmail" ;;
     "examples/network/if-up.d/sendmail") CONFIG_FILES="$CONFIG_FILES 
examples/network/if-up.d/sendmail" ;;
     "examples/ppp/ip-down.d/sendmail") CONFIG_FILES="$CONFIG_FILES 
examples/ppp/ip-down.d/sendmail" ;;
     "examples/ppp/ip-up.d/sendmail") CONFIG_FILES="$CONFIG_FILES 
examples/ppp/ip-up.d/sendmail" ;;
@@ -9006,6 +9009,7 @@ $as_echo X"$file" |
                 ;;
     "examples/dhcp/dhclient-exit-hooks.d/sendmail":F) chmod a+x 
./examples/dhcp/dhclient-exit-hooks.d/sendmail ;;
     "examples/network/if-down.d/sendmail":F) chmod a+x 
./examples/network/if-down.d/sendmail ;;
+    "examples/network/if-post-down.d/sendmail":F) chmod a+x 
./examples/network/if-post-down.d/sendmail ;;
     "examples/network/if-up.d/sendmail":F) chmod a+x 
./examples/network/if-up.d/sendmail ;;
     "examples/ppp/ip-down.d/sendmail":F) chmod a+x 
./examples/ppp/ip-down.d/sendmail ;;
     "examples/ppp/ip-up.d/sendmail":F) chmod a+x 
./examples/ppp/ip-up.d/sendmail ;;
diff --git a/debian/configure.ac b/debian/configure.ac
index 3c16c82..343aa1e 100644
--- a/debian/configure.ac
+++ b/debian/configure.ac
@@ -1746,6 +1746,8 @@ 
AC_CONFIG_FILES([examples/dhcp/dhclient-exit-hooks.d/sendmail],
        [chmod a+x ./examples/dhcp/dhclient-exit-hooks.d/sendmail])
 AC_CONFIG_FILES([examples/network/if-down.d/sendmail],
        [chmod a+x ./examples/network/if-down.d/sendmail])
+AC_CONFIG_FILES([examples/network/if-post-down.d/sendmail],
+       [chmod a+x ./examples/network/if-post-down.d/sendmail])
 AC_CONFIG_FILES([examples/network/if-up.d/sendmail],
        [chmod a+x ./examples/network/if-up.d/sendmail])
 AC_CONFIG_FILES([examples/ppp/ip-down.d/sendmail],
diff --git a/debian/control b/debian/control
index 3fb1646..9045be2 100644
--- a/debian/control
+++ b/debian/control
@@ -19,8 +19,8 @@ Build-Conflicts:
  bind-dev,
  fakeroot (<< 0.4.5),
 Homepage: http://www.sendmail.org
-Vcs-Git: https://anonscm.debian.org/git/collab-maint/sendmail.git
-Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/sendmail.git
+Vcs-Browser: https://salsa.debian.org/debian/sendmail
+Vcs-Git: https://salsa.debian.org/debian/sendmail.git
 
 Package: sendmail-bin
 Architecture: any
@@ -48,7 +48,7 @@ Description: powerful, efficient, and scalable Mail Transport 
Agent
  It is suitable for handling sophisticated mail configurations,
  although this means that its configuration can also be complex.
  .
- Fortunately, simple thing can be done easily, and complex things
+ Fortunately, simple things can be done easily, and complex things
  are possible, even if not easily understood ;)  Sendmail is the *ONLY*
  MTA with a Turing complete language to control *ALL* aspects of delivery!
  .
@@ -66,6 +66,7 @@ Conflicts:
  postfix,
  exim,
  exim-tls,
+ exim4,
  exim4-daemon-custom,
  exim4-daemon-heavy,
  exim4-daemon-light,
@@ -173,7 +174,7 @@ Description: powerful, efficient, and scalable Mail 
Transport Agent (metapackage
  It is suitable for handling sophisticated mail configurations,
  although this means that its configuration can also be complex.
  .
- Fortunately, simple thing can be done easily, and complex things
+ Fortunately, simple things can be done easily, and complex things
  are possible, even if not easily understood ;)  Sendmail is the *ONLY*
  MTA with a Turing complete language to control *ALL* aspects of delivery!
  .
diff --git a/debian/control.in b/debian/control.in
index 6930cc9..c4c7fe8 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -19,8 +19,8 @@ Build-Conflicts:
  bind-dev,
  fakeroot (<< 0.4.5),
 Homepage: http://www.sendmail.org
-Vcs-Git: https://anonscm.debian.org/git/collab-maint/sendmail.git
-Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/sendmail.git
+Vcs-Browser: https://salsa.debian.org/debian/sendmail
+Vcs-Git: https://salsa.debian.org/debian/sendmail.git
 
 Package: sendmail-bin
 Architecture: any
@@ -48,7 +48,7 @@ Description: powerful, efficient, and scalable Mail Transport 
Agent
  It is suitable for handling sophisticated mail configurations,
  although this means that its configuration can also be complex.
  .
- Fortunately, simple thing can be done easily, and complex things
+ Fortunately, simple things can be done easily, and complex things
  are possible, even if not easily understood ;)  Sendmail is the *ONLY*
  MTA with a Turing complete language to control *ALL* aspects of delivery!
  .
@@ -66,6 +66,7 @@ Conflicts:
  postfix,
  exim,
  exim-tls,
+ exim4,
  exim4-daemon-custom,
  exim4-daemon-heavy,
  exim4-daemon-light,
@@ -173,7 +174,7 @@ Description: powerful, efficient, and scalable Mail 
Transport Agent (metapackage
  It is suitable for handling sophisticated mail configurations,
  although this means that its configuration can also be complex.
  .
- Fortunately, simple thing can be done easily, and complex things
+ Fortunately, simple things can be done easily, and complex things
  are possible, even if not easily understood ;)  Sendmail is the *ONLY*
  MTA with a Turing complete language to control *ALL* aspects of delivery!
  .
diff --git a/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail.in 
b/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail.in
index c517033..256b05b 100644
--- a/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail.in
+++ b/debian/examples/dhcp/dhclient-exit-hooks.d/sendmail.in
@@ -25,6 +25,7 @@ case "$reason" in
        esac;
 
 # Bring in some script functions to handle dynamic configuration
+test -r @datadir@/sendmail/dynamic || exit 0
 . @datadir@/sendmail/dynamic;
 
 # Note the interface that just changed
diff --git a/debian/examples/network/if-down.d/sendmail.in 
b/debian/examples/network/if-down.d/sendmail.in
index 254445b..ae5d24a 100644
--- a/debian/examples/network/if-down.d/sendmail.in
+++ b/debian/examples/network/if-down.d/sendmail.in
@@ -31,6 +31,7 @@ if [ -z "$provider" ]; then
        fi;
 
 # Bring in some script functions to handle dynamic configuration
+test -r @datadir@/sendmail/dynamic || exit 0
 . @datadir@/sendmail/dynamic;
 
 # Note the interface that just changed
diff --git a/debian/examples/network/if-post-down.d/sendmail 
b/debian/examples/network/if-post-down.d/sendmail
deleted file mode 100644
index 5cb9322..0000000
--- a/debian/examples/network/if-post-down.d/sendmail
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-#
-# This script is called when a network device goes down.
-#               
-# Here is where we'll stop sendmail if needed
-#
-# Written By Richard Nelson <cow...@debian.org>
-#
-# NOTE: The following lines (without the #) must be in /etc/mail/sendmail.mc:
-# include(`/etc/mail/dialup.m4')dnl
-# include(`/etc/mail/provider.m4')dnl
-#
-
-# These variables are for the use of the scripts run by run-parts
-#IFACE=;
-#IF_ADDRESS=;
-#IF_PROVIDER=;
-
-if [ ! -z "$IFACE" ]; then
-       addr=$IF_ADDRESS;
-       provider=$IF_PROVIDER;
-       iface=$IFACE;
-else
-       addr=$1;
-       provider=$2;
-       iface=$3;
-       fi;
-
-if [ -z "$provider" ]; then
-       exit 0;
-       fi;
-
-# Bring in some script functions to handle dynamic configuration
-. /usr/share/sendmail/dynamic;
-
-# Note the interface that just changed
-update_interface "$iface" "STOP";
-
-# If anything has been changed, update sendmail.cf and reload
-update_sendmail "ifupdown";
-
-exit 0;
diff --git a/debian/examples/network/if-post-down.d/sendmail.in 
b/debian/examples/network/if-post-down.d/sendmail.in
index 254445b..ae5d24a 100644
--- a/debian/examples/network/if-post-down.d/sendmail.in
+++ b/debian/examples/network/if-post-down.d/sendmail.in
@@ -31,6 +31,7 @@ if [ -z "$provider" ]; then
        fi;
 
 # Bring in some script functions to handle dynamic configuration
+test -r @datadir@/sendmail/dynamic || exit 0
 . @datadir@/sendmail/dynamic;
 
 # Note the interface that just changed
diff --git a/debian/examples/network/if-up.d/sendmail.in 
b/debian/examples/network/if-up.d/sendmail.in
index f0d58d1..1226b58 100644
--- a/debian/examples/network/if-up.d/sendmail.in
+++ b/debian/examples/network/if-up.d/sendmail.in
@@ -41,6 +41,7 @@ else
        fi;
 
 # Bring in some script functions to handle dynamic configuration
+test -r @datadir@/sendmail/dynamic || exit 0
 . @datadir@/sendmail/dynamic;
 
 # Note the interface that just changed
diff --git a/debian/examples/ppp/ip-down.d/sendmail.in 
b/debian/examples/ppp/ip-down.d/sendmail.in
index 71f42b6..0ac5215 100644
--- a/debian/examples/ppp/ip-down.d/sendmail.in
+++ b/debian/examples/ppp/ip-down.d/sendmail.in
@@ -34,6 +34,7 @@ if [ -z "$provider" ]; then
        fi;
 
 # Bring in some script functions to handle dynamic configuration
+test -r @datadir@/sendmail/dynamic || exit 0
 . @datadir@/sendmail/dynamic;
 
 # Note the interface that just changed
diff --git a/debian/examples/ppp/ip-up.d/sendmail.in 
b/debian/examples/ppp/ip-up.d/sendmail.in
index 191b9a8..9d41548 100644
--- a/debian/examples/ppp/ip-up.d/sendmail.in
+++ b/debian/examples/ppp/ip-up.d/sendmail.in
@@ -39,6 +39,7 @@ if [ -z "$provider" ]; then
        fi;
 
 # Bring in some script functions to handle dynamic configuration
+test -r @datadir@/sendmail/dynamic || exit 0
 . @datadir@/sendmail/dynamic;
 
 # Note the interface that just changed
diff --git a/debian/examples/resolvconf/update-libc.d/sendmail.in 
b/debian/examples/resolvconf/update-libc.d/sendmail.in
index 31a1638..eba62b3 100644
--- a/debian/examples/resolvconf/update-libc.d/sendmail.in
+++ b/debian/examples/resolvconf/update-libc.d/sendmail.in
@@ -4,7 +4,8 @@
 # so that we can reset the statistics for unresolvable hostnames
 
 # Bring in some script functions to handle dynamic configuration
-. /usr/share/sendmail/dynamic;
+test -r @datadir@/sendmail/dynamic || exit 0
+. @datadir@/sendmail/dynamic
 
 # Note the interface that just changed - unfortunately, we know not how :(
 update_resolv;
diff --git a/debian/local/sendmail.in b/debian/local/sendmail.in
index 885ad24..b629852 100644
--- a/debian/local/sendmail.in
+++ b/debian/local/sendmail.in
@@ -248,7 +248,7 @@ start_mta () {
                if [ -z "$qp" ]; then
                        chmod 0664 $MTAQ_PIDFILE;
                else
-                       qc=`ps --no-headers -fCsendmail \
+                       qc=`ps --no-headers -fCsendmail-mta \
                                | egrep -e 'Queue control' \
                                | awk '{print $2}'`;
                        if [ -z "$qc" ]; then
diff --git a/debian/patches/connect-from-null.patch 
b/debian/patches/connect-from-null.patch
new file mode 100644
index 0000000..b7c2acc
--- /dev/null
+++ b/debian/patches/connect-from-null.patch
@@ -0,0 +1,26 @@
+Author: Claus Assmann <sendmail-bugs-2...@support.sendmail.org>
+Description: fix NOQUEUE: connect from (null)
+
+--- a/sendmail/main.c
++++ b/sendmail/main.c
+@@ -2623,8 +2623,19 @@ main(argc, argv, envp)
+ 
+       if (LogLevel > 9)
+       {
++              p = authinfo;
++              if (NULL == p)
++              {
++                      if (NULL != RealHostName)
++                              p = RealHostName;
++                      else
++                              p = anynet_ntoa(&RealHostAddr);
++                      if (NULL == p)
++                              p = "unknown";
++              }
++
+               /* log connection information */
+-              sm_syslog(LOG_INFO, NULL, "connect from %s", authinfo);
++              sm_syslog(LOG_INFO, NULL, "connect from %s", p);
+       }
+ 
+       /*
diff --git a/debian/patches/openssl-1.1.0.patch 
b/debian/patches/openssl-1.1.0.patch
index bbca045..4507621 100644
--- a/debian/patches/openssl-1.1.0.patch
+++ b/debian/patches/openssl-1.1.0.patch
@@ -240,3 +240,14 @@ Signed-off-by: Sebastian Andrzej Siewior 
<sebast...@breakpoint.cc>
                        return 1;       /* override it */
                }
        }
+--- a/doc/op/op.me
++++ b/doc/op/op.me
+@@ -10898,7 +10898,7 @@ C=FileName_of_CA_Certificate
+ ln -s $C `openssl x509 -noout -hash < $C`.0
+ .)b
+ A better way to do this is to use the
+-.b c_rehash
++.b "openssl rehash"
+ command that is part of the OpenSSL distribution
+ because it handles subject hash collisions
+ by incrementing the number in the suffix of the filename of the symbolic link,
diff --git a/debian/patches/series b/debian/patches/series
index c3e3966..1042264 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -22,3 +22,4 @@ fhs.patch
 typos.patch
 format-security.patch
 openssl-1.1.0.patch
+connect-from-null.patch
diff --git a/debian/sendmail-base.prerm.in b/debian/sendmail-base.prerm.in
index 7cbba77..a9e5bb3 100644
--- a/debian/sendmail-base.prerm.in
+++ b/debian/sendmail-base.prerm.in
@@ -67,7 +67,7 @@ if [ "$1" = "remove" ]; then
                        @sysconfdir@/mail/tls;
 
                # Remove empty files (probably touched databases)
-               find @sysconfdir@/mail -maxdepth 1 -size 0 | xargs -r rm;
+               find @sysconfdir@/mail -maxdepth 1 -type f -size 0 -delete
 fi
 
 if [ "$1" = "upgrade" ]; then
diff --git a/debian/sendmail-bin.postinst.in b/debian/sendmail-bin.postinst.in
index ed633f4..357a528 100644
--- a/debian/sendmail-bin.postinst.in
+++ b/debian/sendmail-bin.postinst.in
@@ -6,6 +6,9 @@ PACKAGE=sendmail-bin;
 #-----------------------------------------------------------
 #stop(): stop sendmail
 stop_mta () {
+       if [ -x @sysconfdir@/init.d/sendmail ]; then
+               invoke-rc.d --quiet --force sendmail stop
+       fi
        # Account for varying PIDfile locations of older sendmail packages
        if [ -f /var/run/sendmail/mta/sendmail.pid ]; then
                start-stop-daemon --stop --oknodo --quiet \
@@ -26,9 +29,6 @@ stop_mta () {
                fi;
        start-stop-daemon --stop --oknodo --quiet \
                --name sendmail > /dev/null;
-       if [ -x @sysconfdir@/init.d/sendmail ]; then
-               invoke-rc.d --quiet --force sendmail stop
-               fi;
        };
 
 #-----------------------------------------------------------
diff --git a/debian/sendmail-bin.prerm.in b/debian/sendmail-bin.prerm.in
index 43c6385..dca7f3d 100644
--- a/debian/sendmail-bin.prerm.in
+++ b/debian/sendmail-bin.prerm.in
@@ -1,32 +1,26 @@
 #!/bin/sh
-set -e;
-
-PACKAGE=sendmail-bin;
+set -e
 
 if [ "$1" = "remove" ]; then
-               # Remove alternatives for MTA, MSP
-               update-alternatives --remove sendmail-mta @libexecdir@/sendmail;
-               update-alternatives --remove sendmail-msp @libexecdir@/sendmail;
-               if [ -x @sysconfdir@/init.d/sendmail ] && \
-                       [ -x @datadir@/sendmail/sendmail ]; then
-                       invoke-rc.d --quiet --force sendmail stop
-                       fi;
-               # Prevent cronjob from running during upgrade...
-               if [ -f /etc/cron.d/sendmail ]; then
-                       rm -f @sysconfdir@/cron.d/sendmail;
-                       fi;
+       # Prevent cronjob from running during removal...
+       if [ -f @sysconfdir@/cron.d/sendmail ]; then
+               rm -f @sysconfdir@/cron.d/sendmail
+       fi
 fi
 
 if [ "$1" = "upgrade" ]; then
-               # Prevent cronjob from running during upgrade...
-               if [ -f /etc/cron.d/sendmail ]; then
-                       echo "#prerm" > @sysconfdir@/cron.d/sendmail;
-                       fi;
-
-               # NOTE  NOTE  NOTE  NOTE  NOTE
-               # If we fall through to DEBHELPER, sendmail will be stopped
-               # much earlier than necessary !!!
-               exit 0;
+       # Prevent cronjob from running during upgrade...
+       if [ -f @sysconfdir@/cron.d/sendmail ]; then
+               echo "#prerm" > @sysconfdir@/cron.d/sendmail
+               # The cronjob is regenerated by the postinst
+       fi
 fi
 
 #DEBHELPER#
+
+if [ "$1" = "remove" ]; then
+       # Remove alternatives for MTA, MSP
+       # Note: removes paths needed by the initscript
+       update-alternatives --remove sendmail-mta @libexecdir@/sendmail
+       update-alternatives --remove sendmail-msp @libexecdir@/sendmail
+fi

Reply via email to