Bug#990919: unblock: exim4/4.94.2-6

Adrian Bunk bunk at debian.org
Sun Jul 11 04:41:02 BST 2021


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

Please unblock package exim4

  * Cherrypick
    78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch from
    upstream GIT master. This allows one to disable creation of a
    daemon notifier socket by either setting notifier_socket to a empty value
    or specifying -oY commandline option.
  * Init script: For QUEUERUNNER='separate' start daemons with -oY commandline
    option to disable daemon notifier socket. Enforce lockstep ugrade of -base
    and *daemon* by temporarily adding a versioned Breaks to exim4-base on
    older *daemon*. Closes: #988844
(change by Andreas Metzler)

This fixes a regression from buster.

Maintainer and bug submitter are in Cc, ack/nak would be appreciated.

unblock exim4/4.94.2-6
-------------- next part --------------
diff -Nru exim4-4.94.2/debian/changelog exim4-4.94.2/debian/changelog
--- exim4-4.94.2/debian/changelog	2021-05-17 18:45:00.000000000 +0300
+++ exim4-4.94.2/debian/changelog	2021-05-26 19:49:44.000000000 +0300
@@ -1,3 +1,17 @@
+exim4 (4.94.2-6) unstable; urgency=medium
+
+  * Cherrypick
+    78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch from
+    upstream GIT master. This allows one to disable creation of a
+    daemon notifier socket by either setting notifier_socket to a empty value
+    or specifying -oY commandline option.
+  * Init script: For QUEUERUNNER='separate' start daemons with -oY commandline
+    option to disable daemon notifier socket. Enforce lockstep ugrade of -base
+    and *daemon* by temporarily adding a versioned Breaks to exim4-base on
+    older *daemon*. Closes: #988844
+
+ -- Andreas Metzler <ametzler at debian.org>  Wed, 26 May 2021 18:49:44 +0200
+
 exim4 (4.94.2-5) unstable; urgency=high
 
   * 73_04-Fix-host_name_lookup-Close-2747.patch from exim-4.94.2+fixes.
diff -Nru exim4-4.94.2/debian/control exim4-4.94.2/debian/control
--- exim4-4.94.2/debian/control	2021-05-04 19:23:02.000000000 +0300
+++ exim4-4.94.2/debian/control	2021-05-26 19:49:44.000000000 +0300
@@ -1,3 +1,6 @@
+# * -base and daemon of the same upstream version enforced by a Breaks
+#   in -base and a versioned Depends of the daemon-packages on -base
+# * -base depends on -config, without automatic versioning.
 Source: exim4
 Section: mail
 Priority: standard
@@ -42,7 +45,10 @@
 Breaks:
  exim4-daemon-custom (<<${Upstream-Version}),
  exim4-daemon-heavy (<<${Upstream-Version}),
- exim4-daemon-light (<<${Upstream-Version})
+ exim4-daemon-light (<<${Upstream-Version}),
+ exim4-daemon-custom (<< 4.94.2-6~),
+ exim4-daemon-heavy (<< 4.94.2-6~),
+ exim4-daemon-light (<< 4.94.2-6~)
 Conflicts: exim, exim-tls
 Replaces:
  exim,
diff -Nru exim4-4.94.2/debian/exim4-base.exim4.init exim4-4.94.2/debian/exim4-base.exim4.init
--- exim4-4.94.2/debian/exim4-base.exim4.init	2020-05-23 19:20:09.000000000 +0300
+++ exim4-4.94.2/debian/exim4-base.exim4.init	2021-05-23 12:46:53.000000000 +0300
@@ -95,13 +95,13 @@
     separate)
       start_daemon -p "$PIDFILE" \
         "$DAEMON" -bd \
-        ${COMMONOPTIONS} \
+        ${COMMONOPTIONS} -oY \
         ${SMTPLISTENEROPTIONS}
       log_progress_msg "exim4_listener"
       start_daemon -p "$QRPIDFILE" \
         "$DAEMON" -oP $QRPIDFILE \
         "-q${QFLAGS}${QUEUEINTERVAL}" \
-        ${COMMONOPTIONS} \
+        ${COMMONOPTIONS} -oY \
         ${QUEUERUNNEROPTIONS}
       log_progress_msg "exim4_queuerunner"
       ;;
diff -Nru exim4-4.94.2/debian/patches/78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch exim4-4.94.2/debian/patches/78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch
--- exim4-4.94.2/debian/patches/78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch	1970-01-01 02:00:00.000000000 +0200
+++ exim4-4.94.2/debian/patches/78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch	2021-05-22 14:50:52.000000000 +0300
@@ -0,0 +1,198 @@
+From 99ea5f6faeaf714e34bbcd75fdc50cc94dc7a1c8 Mon Sep 17 00:00:00 2001
+From: Jeremy Harris <jgh146exb at wizmail.org>
+Date: Fri, 10 Jul 2020 13:55:25 +0100
+Subject: [PATCH] Command-line option for no notifier socket.  Bug 2616
+
+---
+ doc/doc-docbook/spec.xfpt             | 33 +++++++++++++++++++++++++--
+ doc/NewStuff                  |  2 ++
+ src/daemon.c                      |  5 ++++
+ src/exim.c                        |  9 +++++++-
+ test/scripts/0999-EXP-Queue-Ramp/0999 |  2 +-
+ 5 files changed, 47 insertions(+), 4 deletions(-)
+
+--- a/doc/NewStuff
++++ b/doc/NewStuff
+@@ -2,14 +2,20 @@ New Features in Exim
+ --------------------
+ 
+ This file contains descriptions of new features that have been added to Exim.
+ Before a formal release, there may be quite a lot of detail so that people can
+ test from the snapshots or the Git before the documentation is updated. Once
+ the documentation is updated, this file is reduced to a short list.
+ 
++Cherrypicked from GIT master:
++------------
++
++10. A command-line option to have a daemon not create a notifier socket.
++
++
+ Version 4.95
+ ------------
+ 
+  1. The fast-ramp two phase queue run support, previously experimental, is
+     now supported by default.
+ 
+  2. The native SRS support, previously experimental, is now supported. It is
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -1140,14 +1140,19 @@ static void
+ daemon_notifier_socket(void)
+ {
+ int fd;
+ const uschar * where;
+ struct sockaddr_un sa_un = {.sun_family = AF_UNIX};
+ int len;
+ 
++if (!notifier_socket || !*notifier_socket)
++  {
++  DEBUG(D_any) debug_printf("-oY used so not creating notifier socket\n");
++  return;
++  }
+ if (override_local_interfaces && !override_pid_file_path)
+   {
+   DEBUG(D_any)
+     debug_printf("-oX used without -oP so not creating notifier socket\n");
+   return;
+   }
+ 
+--- a/src/exim.c
++++ b/src/exim.c
+@@ -3231,14 +3231,21 @@ on the second character (the one after '
+       /* Limits: Is there a real limit we want here?  1024 is very arbitrary. */
+ 
+       case 'X':
+ 	if (*argrest) badarg = TRUE;
+ 	else override_local_interfaces = string_copy_taint(exim_str_fail_toolong(argv[++i], 1024, "-oX"), TRUE);
+ 	break;
+ 
++      /* -oY: Override creation of daemon notifier socket */
++
++      case 'Y':
++	if (*argrest) badarg = TRUE;
++	else notifier_socket = NULL;
++	break;
++
+       /* Unknown -o argument */
+ 
+       default:
+ 	badarg = TRUE;
+       }
+     break;
+ 
+@@ -4818,15 +4825,15 @@ if (originator_login == NULL || f.runnin
+     log_write(0, LOG_MAIN|LOG_PANIC_DIE, "Failed to get user name for uid %d",
+       (int)real_uid);
+   }
+ 
+ /* Ensure that the user name is in a suitable form for use as a "phrase" in an
+ RFC822 address.*/
+ 
+-originator_name = parse_fix_phrase(originator_name, Ustrlen(originator_name));
++originator_name = US parse_fix_phrase(originator_name, Ustrlen(originator_name));
+ 
+ /* If a message is created by this call of Exim, the uid/gid of its originator
+ are those of the caller. These values are overridden if an existing message is
+ read in from the spool. */
+ 
+ originator_uid = real_uid;
+ originator_gid = real_gid;
+--- a/doc/spec.txt
++++ b/doc/spec.txt
+@@ -4189,14 +4189,27 @@ brief message about itself and exits.
+ 
+     This option is relevant only when the -bd (start listening daemon) option
+     is also given. It controls which ports and interfaces the daemon uses.
+     Details of the syntax, and how it interacts with configuration file
+     options, are given in chapter 13. When -oX is used to start a daemon, no
+     pid file is written unless -oP is also present to specify a pid filename.
+ 
++-oY
++
++    This option controls the creation of an inter-process communications
++    endpoint by the Exim daemon.  It is only relevant when the -bd
++    (start listening daemon) option is also given.  Normally the daemon
++    creates this socket, unless a oX and no -oP option is also
++    present.  If this option is given then the socket will not be created.
++    This could be required if the system is running multiple daemons.
++    
++    The socket is currently used for
++      * fast ramp-up of queue runner processes
++      * obtaining a current queue size
++
+ -pd
+ 
+     This option applies when an embedded Perl interpreter is linked with Exim
+     (see chapter 12). It overrides the setting of the perl_at_start option,
+     forcing the starting of the interpreter to be delayed until it is needed.
+ 
+ -ps
+@@ -11733,14 +11746,16 @@ $queue_name
+ 
+     The name of the spool queue in use; empty for the default queue.
+ 
+ $queue_size
+ 
+     This variable contains the number of messages queued. It is evaluated on
+     demand, but no more often than once every minute.
++    If there is no daemon notifier socket open, the value will be
++    an empty string.
+ 
+ $r_...
+ 
+     Values can be placed in these variables by the set option of a router. They
+     can be given any name that starts with $r_. The values persist for the
+     address being handled through subsequent routers and the eventual
+     transport.
+@@ -15227,18 +15242,20 @@ driver.
+ +-----------------------------------------------------------------------------+
+ 
+ This option gives the name for a unix-domain socket on which the daemon listens
+ for work and information-requests. Only installations running multiple daemons
+ sharing a spool directory should need to modify the default.
+ 
+ The option is expanded before use. If the platform supports Linux-style
+-abstract socket names, the result is used with a nul byte prefixed. Otherwise,
+-it should be a full path name and use a directory accessible to Exim.
++abstract socket names, the result is used with a nul byte prefixed.
++Otherwise, if nonempty, it should be a full path name and use a directory
++accessible to Exim.
+ 
+-If the Exim command line uses a -oX option and does not use -oP then a notifier
++If this option is set as empty, or the command line -oY option is used, or
++the command line uses a -oX option and does not use -oP, then a notifier
+ socket is not created.
+ 
+ +-----------------------------------------------------------------------------+
+ |               |Use:  |  Type:   |Default: +no_sslv2 +no_sslv3 +single_dh_use|
+ |openssl_options| main |  string  |               +no_ticket +no_renegotiation|
+ |               |      |   list   |                                           |
+ +-----------------------------------------------------------------------------+
+--- a/doc/exim.8
++++ b/doc/exim.8
+@@ -1445,14 +1445,25 @@ the \fBsmtp_receive_timeout\fP option; i
+ This option has exactly the same effect as \fB\-v\fP.
+ .TP 10
+ \fB\-oX\fP <\fInumber or string\fP>
+ This option is relevant only when the \fB\-bd\fP (start listening daemon) option
+ is also given. It controls which ports and interfaces the daemon uses. When \fB\-oX\fP is used to start a daemon, no pid
+ file is written unless \fB\-oP\fP is also present to specify a pid filename.
+ .TP 10
++\fB\-oY\fP
++This option controls the creation of an inter-process communications endpoint
++by the Exim daemon. It is only relevant when the \fB\-bd\fP (start listening
++daemon) option is also given.
++Normally the daemon creates this socket, unless a \fB\-oX\fP and no \fB\-oP\fP
++option is also present.
++If this option is given then the socket will not be created.  This could be
++required if the system is running multiple daemons.
++The socket is currently used for fast ramp-up of queue runner processes and
++obtaining a current queue size.
++.TP 10
+ \fB\-pd\fP
+ This option applies when an embedded Perl interpreter is linked with Exim. It overrides the setting of the \fBperl_at_start\fP
+ option, forcing the starting of the interpreter to be delayed until it is
+ needed.
+ .TP 10
+ \fB\-ps\fP
+ This option applies when an embedded Perl interpreter is linked with Exim. It overrides the setting of the \fBperl_at_start\fP
diff -Nru exim4-4.94.2/debian/patches/series exim4-4.94.2/debian/patches/series
--- exim4-4.94.2/debian/patches/series	2021-05-17 14:05:54.000000000 +0300
+++ exim4-4.94.2/debian/patches/series	2021-05-22 14:27:33.000000000 +0300
@@ -36,4 +36,5 @@
 75_26-Disable-taintchecks-for-mkdir-this-isn-t-part-of-4.9.patch
 75_27_Fix-logging-with-empty-element-in-log_file_path-Bug-.patch
 75_28_Fix-logging-with-build-time-config-and-empty-element.patch
+78_01-Command-line-option-for-no-notifier-socket.-Bug-2616.patch
 90_localscan_dlopen.dpatch


More information about the Pkg-exim4-maintainers mailing list