summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mail-mta/exim/files')
-rw-r--r--mail-mta/exim/files/exim-4.43-r2-localscan_dlopen.patch259
-rw-r--r--mail-mta/exim/files/exim-4.74-makefile-command-envs.patch59
-rw-r--r--mail-mta/exim/files/exim-4.74-makefile-posix.patch86
-rw-r--r--mail-mta/exim/files/exim-4.74-pcre.patch29
-rw-r--r--mail-mta/exim/files/exim-4.75-CVE-2011-1764.patch33
-rw-r--r--mail-mta/exim/files/exim-4.76-crosscompile.patch15
-rw-r--r--mail-mta/exim/files/exim.rc730
7 files changed, 45 insertions, 466 deletions
diff --git a/mail-mta/exim/files/exim-4.43-r2-localscan_dlopen.patch b/mail-mta/exim/files/exim-4.43-r2-localscan_dlopen.patch
deleted file mode 100644
index 146606a1fd0c..000000000000
--- a/mail-mta/exim/files/exim-4.43-r2-localscan_dlopen.patch
+++ /dev/null
@@ -1,259 +0,0 @@
-diff -Naur exim-4.32/src/EDITME exim-4.32-dlopen/src/EDITME
---- src/EDITME 2004-04-15 08:27:01.000000000 +0000
-+++ src/EDITME 2004-05-06 16:15:47.000000000 +0000
-@@ -505,6 +505,21 @@
-
-
- #------------------------------------------------------------------------------
-+# On systems which support dynamic loading of shared libraries, Exim can
-+# load a local_scan function specified in its config file instead of having
-+# to be recompiled with the desired local_scan function. For a full
-+# description of the API to this function, see the Exim specification.
-+
-+DLOPEN_LOCAL_SCAN=yes
-+
-+# If you set DLOPEN_LOCAL_SCAN, then you need to include -rdynamic in the
-+# linker flags. Without it, the loaded .so won't be able to access any
-+# functions from exim.
-+
-+LFLAGS=-rdynamic -ldl
-+
-+
-+#------------------------------------------------------------------------------
- # The default distribution of Exim contains only the plain text form of the
- # documentation. Other forms are available separately. If you want to install
- # the documentation in "info" format, first fetch the Texinfo documentation
-diff -Naur exim-4.32/src/config.h.defaults exim-4.32-dlopen/src/config.h.defaults
---- src/config.h.defaults 2004-04-15 08:27:01.000000000 +0000
-+++ src/config.h.defaults 2004-05-06 16:16:30.000000000 +0000
-@@ -20,6 +20,8 @@
- #define AUTH_PLAINTEXT
- #define AUTH_SPA
-
-+#define DLOPEN_LOCAL_SCAN
-+
- #define BIN_DIRECTORY
-
- #define CONFIGURE_FILE
-diff -Naur exim-4.32/src/globals.c exim-4.32-dlopen/src/globals.c
---- src/globals.c 2004-04-15 08:27:01.000000000 +0000
-+++ src/globals.c 2004-05-06 16:17:07.000000000 +0000
-@@ -109,6 +109,10 @@
- uschar *tls_verify_hosts = NULL;
- #endif
-
-+#ifdef DLOPEN_LOCAL_SCAN
-+uschar *local_scan_path = NULL;
-+#endif
-+
-
- /* Input-reading functions for messages, so we can use special ones for
- incoming TCP/IP. The defaults use stdin. We never need these for any
-diff -Naur exim-4.32/src/globals.h exim-4.32-dlopen/src/globals.h
---- src/globals.h 2004-04-15 08:27:01.000000000 +0000
-+++ src/globals.h 2004-05-06 16:17:50.000000000 +0000
-@@ -73,6 +73,9 @@
- extern uschar *tls_verify_hosts; /* Mandatory client verification */
- #endif
-
-+#ifdef DLOPEN_LOCAL_SCAN
-+extern uschar *local_scan_path; /* Path to local_scan() library */
-+#endif
-
- /* Input-reading functions for messages, so we can use special ones for
- incoming TCP/IP. */
-diff -Naur exim-4.32/src/local_scan.c exim-4.32-dlopen/src/local_scan.c
---- src/local_scan.c 2004-04-15 08:27:01.000000000 +0000
-+++ src/local_scan.c 2004-05-06 16:21:57.000000000 +0000
-@@ -5,60 +5,131 @@
- /* Copyright (c) University of Cambridge 1995 - 2004 */
- /* See the file NOTICE for conditions of use and distribution. */
-
-+#include "exim.h"
-
--/******************************************************************************
--This file contains a template local_scan() function that just returns ACCEPT.
--If you want to implement your own version, you should copy this file to, say
--Local/local_scan.c, and edit the copy. To use your version instead of the
--default, you must set
--
--LOCAL_SCAN_SOURCE=Local/local_scan.c
--
--in your Local/Makefile. This makes it easy to copy your version for use with
--subsequent Exim releases.
--
--For a full description of the API to this function, see the Exim specification.
--******************************************************************************/
--
--
--/* This is the only Exim header that you should include. The effect of
--including any other Exim header is not defined, and may change from release to
--release. Use only the documented interface! */
--
--#include "local_scan.h"
--
--
--/* This is a "do-nothing" version of a local_scan() function. The arguments
--are:
--
-- fd The file descriptor of the open -D file, which contains the
-- body of the message. The file is open for reading and
-- writing, but modifying it is dangerous and not recommended.
--
-- return_text A pointer to an unsigned char* variable which you can set in
-- order to return a text string. It is initialized to NULL.
--
--The return values of this function are:
--
-- LOCAL_SCAN_ACCEPT
-- The message is to be accepted. The return_text argument is
-- saved in $local_scan_data.
--
-- LOCAL_SCAN_REJECT
-- The message is to be rejected. The returned text is used
-- in the rejection message.
--
-- LOCAL_SCAN_TEMPREJECT
-- This specifies a temporary rejection. The returned text
-- is used in the rejection message.
--*/
-+#ifdef DLOPEN_LOCAL_SCAN
-+#include <dlfcn.h>
-+static int (*local_scan_fn)(int fd, uschar **return_text) = NULL;
-+static int load_local_scan_library(void);
-+#endif
-
- int
- local_scan(int fd, uschar **return_text)
- {
- fd = fd; /* Keep picky compilers happy */
- return_text = return_text;
--return LOCAL_SCAN_ACCEPT;
-+#ifdef DLOPEN_LOCAL_SCAN
-+/* local_scan_path is defined AND not the empty string */
-+if (local_scan_path && *local_scan_path)
-+ {
-+ if (!local_scan_fn)
-+ {
-+ if (!load_local_scan_library())
-+ {
-+ char *base_msg , *error_msg , *final_msg ;
-+ int final_length = -1 ;
-+
-+ base_msg=US"Local configuration error - local_scan() library failure\n";
-+ error_msg = dlerror() ;
-+
-+ final_length = strlen(base_msg) + strlen(error_msg) + 1 ;
-+ final_msg = (char*)malloc( final_length*sizeof(char) ) ;
-+ *final_msg = '\0' ;
-+
-+ strcat( final_msg , base_msg ) ;
-+ strcat( final_msg , error_msg ) ;
-+
-+ *return_text = final_msg ;
-+ return LOCAL_SCAN_TEMPREJECT;
-+ }
-+ }
-+ return local_scan_fn(fd, return_text);
-+ }
-+else
-+#endif
-+ return LOCAL_SCAN_ACCEPT;
-+}
-+
-+#ifdef DLOPEN_LOCAL_SCAN
-+
-+static int load_local_scan_library(void)
-+{
-+/* No point in keeping local_scan_lib since we'll never dlclose() anyway */
-+void *local_scan_lib = NULL;
-+int (*local_scan_version_fn)(void);
-+int vers_maj;
-+int vers_min;
-+
-+local_scan_lib = dlopen(local_scan_path, RTLD_NOW);
-+if (!local_scan_lib)
-+ {
-+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library open failed - "
-+ "message temporarily rejected");
-+ return FALSE;
-+ }
-+
-+local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_major");
-+if (!local_scan_version_fn)
-+ {
-+ dlclose(local_scan_lib);
-+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
-+ "local_scan_version_major() function - message temporarily rejected");
-+ return FALSE;
-+ }
-+
-+/* The major number is increased when the ABI is changed in a non
-+ backward compatible way. */
-+vers_maj = local_scan_version_fn();
-+
-+local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_minor");
-+if (!local_scan_version_fn)
-+ {
-+ dlclose(local_scan_lib);
-+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
-+ "local_scan_version_minor() function - message temporarily rejected");
-+ return FALSE;
-+ }
-+
-+/* The minor number is increased each time a new feature is added (in a
-+ way that doesn't break backward compatibility) -- Marc */
-+vers_min = local_scan_version_fn();
-+
-+
-+if (vers_maj != LOCAL_SCAN_ABI_VERSION_MAJOR)
-+ {
-+ dlclose(local_scan_lib);
-+ local_scan_lib = NULL;
-+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible major"
-+ "version number, you need to recompile your module for this version"
-+ "of exim (The module was compiled for version %d.%d and this exim provides"
-+ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR,
-+ LOCAL_SCAN_ABI_VERSION_MINOR);
-+ return FALSE;
-+ }
-+else if (vers_min > LOCAL_SCAN_ABI_VERSION_MINOR)
-+ {
-+ dlclose(local_scan_lib);
-+ local_scan_lib = NULL;
-+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible minor"
-+ "version number, you need to recompile your module for this version"
-+ "of exim (The module was compiled for version %d.%d and this exim provides"
-+ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR,
-+ LOCAL_SCAN_ABI_VERSION_MINOR);
-+ return FALSE;
-+ }
-+
-+local_scan_fn = dlsym(local_scan_lib, "local_scan");
-+if (!local_scan_fn)
-+ {
-+ dlclose(local_scan_lib);
-+ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain "
-+ "local_scan() function - message temporarily rejected");
-+ return FALSE;
-+ }
-+
-+return TRUE;
- }
-
-+#endif /* DLOPEN_LOCAL_SCAN */
-+
- /* End of local_scan.c */
-diff -Naur exim-4.32/src/readconf.c exim-4.32-dlopen/src/readconf.c
---- src/readconf.c 2004-04-15 08:27:01.000000000 +0000
-+++ src/readconf.c 2004-05-06 16:23:12.000000000 +0000
-@@ -223,6 +223,9 @@
- { "local_from_prefix", opt_stringptr, &local_from_prefix },
- { "local_from_suffix", opt_stringptr, &local_from_suffix },
- { "local_interfaces", opt_stringptr, &local_interfaces },
-+#ifdef DLOPEN_LOCAL_SCAN
-+ { "local_scan_path", opt_stringptr, &local_scan_path },
-+#endif
- { "local_scan_timeout", opt_time, &local_scan_timeout },
- { "local_sender_retain", opt_bool, &local_sender_retain },
- { "localhost_number", opt_stringptr, &host_number_string },
diff --git a/mail-mta/exim/files/exim-4.74-makefile-command-envs.patch b/mail-mta/exim/files/exim-4.74-makefile-command-envs.patch
deleted file mode 100644
index 30a1091f9f60..000000000000
--- a/mail-mta/exim/files/exim-4.74-makefile-command-envs.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From: Phil Pennock <pdp@exim.org>
-Date: Fri, 28 Jan 2011 00:07:05 +0000 (-0500)
-Subject: Permit make values to be indented or in env.
-X-Git-Url: http://git.exim.org/exim.git/commitdiff_plain/0cc9542ab26b35cba3a5523acb8991eb18ce0656
-
-Permit make values to be indented or in env.
-
-It appears some make(1)s are not complaining about variables defined
-with leading whitespace on the line. Permit that where we can, for the
-lookups, but it's not tenable for CFLAGS_DYNAMIC.
-
-Some people are specifying knobs on the make command-line, so we get
-them via the environment.
-
-Tested: indented LOOKUP_CDB and commented out LOOKUP_DNSDB, supplying it
-via { make LOOKUP_DNSDB=yes }. { exim -d --version } shows both are
-built-in, no results from { fgrep DNSDB build-*/Makefile }.
----
-
-diff --git a/src/scripts/lookups-Makefile b/src/scripts/lookups-Makefile
-index dd0472b..d5c450e 100755
---- a/src/scripts/lookups-Makefile
-+++ b/src/scripts/lookups-Makefile
-@@ -21,6 +21,9 @@ tab=' '
- # We always do something now, since there should always be a lookup,
- # and now we need to run in order to put the OBJ=$(OBJ)+ rules in.
-
-+# nb: do not permit leading whitespace for this, as CFLAGS_DYNAMIC is exported
-+# to the lookups subdir via a line with leading whitespace which otherwise
-+# matches
- if grep -q "^CFLAGS_DYNAMIC[ $tab]*=" "$defs_source"
- then
- # we have a definition, we're good to go
-@@ -32,14 +35,23 @@ fi
-
- tmp="$target.t"
-
-+# For the want_ checks, we need to let the user override values from the make
-+# command-line, not just check the Makefile.
-+
- want_dynamic() {
- local dyn_name="$1"
-- grep -q "^LOOKUP_${dyn_name}[ $tab]*=[ $tab]*2" "$defs_source"
-+ local re="LOOKUP_${dyn_name}[ $tab]*=[ $tab]*2"
-+ env | grep -q "^$re"
-+ if [ $? -eq 0 ]; then return 0; fi
-+ grep -q "^[ $tab]*$re" "$defs_source"
- }
-
- want_at_all() {
- local want_name="$1"
-- grep -q "^LOOKUP_${want_name}[ $tab]*=[ $tab]*." "$defs_source"
-+ local re="LOOKUP_${want_name}[ $tab]*=[ $tab]*."
-+ env | grep -q "^$re"
-+ if [ $? -eq 0 ]; then return 0; fi
-+ grep -q "^[ $tab]*$re" "$defs_source"
- }
-
- # The values of these variables will be emitted into the Makefile.
diff --git a/mail-mta/exim/files/exim-4.74-makefile-posix.patch b/mail-mta/exim/files/exim-4.74-makefile-posix.patch
deleted file mode 100644
index 54cf0388a2f7..000000000000
--- a/mail-mta/exim/files/exim-4.74-makefile-posix.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From: Tony Finch <dot@dotat.at>
-Date: Thu, 27 Jan 2011 16:26:36 +0000 (+0000)
-Subject: Fix portability of Makefiles to HP-UX and other non-extended makes.
-X-Git-Url: http://git.exim.org/exim.git/commitdiff_plain/159f52d231c010cbc4e149502b7f906293233f94
-
-Fix portability of Makefiles to HP-UX and other non-extended makes.
----
-
-diff --git a/src/scripts/lookups-Makefile b/src/scripts/lookups-Makefile
-index 2c4dc96..dd0472b 100755
---- a/src/scripts/lookups-Makefile
-+++ b/src/scripts/lookups-Makefile
-@@ -19,7 +19,7 @@ tag_marker='MAGIC-TAG-MODS-OBJ-RULES-GO-HERE'
- tab=' '
-
- # We always do something now, since there should always be a lookup,
--# and now we need to run in order to put the OBJ+= rules in.
-+# and now we need to run in order to put the OBJ=$(OBJ)+ rules in.
-
- if grep -q "^CFLAGS_DYNAMIC[ $tab]*=" "$defs_source"
- then
-@@ -42,6 +42,11 @@ want_at_all() {
- grep -q "^LOOKUP_${want_name}[ $tab]*=[ $tab]*." "$defs_source"
- }
-
-+# The values of these variables will be emitted into the Makefile.
-+
-+MODS=""
-+OBJ=""
-+
- emit_module_rule() {
- local lookup_name="$1"
- local mod_name
-@@ -59,13 +64,13 @@ emit_module_rule() {
- echo >&2 "Inhibited dynamic modules prevents building dynamic $lookup_name"
- exit 1
- fi
-- echo "MODS += ${mod_name}.so"
-+ MODS="${MODS} ${mod_name}.so"
- grep "^LOOKUP_${lookup_name}_" "$defs_source"
- echo "LOOKUP_${mod_name}_INCLUDE = \$(LOOKUP_${lookup_name}_INCLUDE)"
- echo "LOOKUP_${mod_name}_LIBS = \$(LOOKUP_${lookup_name}_LIBS)"
- elif want_at_all "$lookup_name"
- then
-- echo "OBJ += ${mod_name}.o"
-+ OBJ="${OBJ} ${mod_name}.o"
- fi
- }
-
-@@ -83,9 +88,18 @@ done
-
- if want_at_all LDAP
- then
-- echo "OBJ += ldap.o"
-+ OBJ="${OBJ} ldap.o"
- fi
-
-+# Because the variable is EXPERIMENTAL_SPF and not LOOKUP_SPF we
-+# always include spf.o and compile a dummy if EXPERIMENTAL_SPF is not
-+# defined.
-+
-+OBJ="${OBJ} spf.o"
-+
-+echo "MODS = $MODS"
-+echo "OBJ = $OBJ"
-+
- sed -n "/$tag_marker/,\$p" < "$input"
-
- exec >&5
-diff --git a/src/src/lookups/Makefile b/src/src/lookups/Makefile
-index 623f24f..2495348 100644
---- a/src/src/lookups/Makefile
-+++ b/src/src/lookups/Makefile
-@@ -8,12 +8,6 @@
- # This is called from the main make file, after cd'ing
- # to the lookups subdirectory.
-
--# because the variable is EXPERIMENTAL_SPF and not LOOKUP_SPF
--# we put this one here by default and compile a dummy if
--# EXPERIMENTAL_SPF is not defined
--OBJ=spf.o
--MODS=
--
- # MAGIC-TAG-MODS-OBJ-RULES-GO-HERE
-
-
diff --git a/mail-mta/exim/files/exim-4.74-pcre.patch b/mail-mta/exim/files/exim-4.74-pcre.patch
deleted file mode 100644
index 361b03e75290..000000000000
--- a/mail-mta/exim/files/exim-4.74-pcre.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Nigel Metheringham <nigel@exim.org>
-Date: Wed, 26 Jan 2011 11:04:32 +0000 (+0000)
-Subject: Workround compile error with old PCRE versions
-X-Git-Url: http://git.exim.org/exim.git/commitdiff_plain/aa097c4c00f62487128d74f65c521f9e877b184f
-
-Workround compile error with old PCRE versions
-
-Fixes bug #1073
----
-
-diff --git a/src/src/exim.c b/src/src/exim.c
-index e236975..b3035ca 100644
---- a/src/src/exim.c
-+++ b/src/src/exim.c
-@@ -931,8 +931,13 @@ DEBUG(D_any) do {
- " Runtime: %s\n",
- PCRE_MAJOR, PCRE_MINOR,
- /* PRE_PRERELEASE is either defined and empty or a string.
-- * This should work: */
-+ * unless its an ancient version of PCRE in which case it
-+ * is not defined */
-+#ifdef PCRE_PRERELEASE
- PCRE_PRERELEASE "",
-+#else
-+ "",
-+#endif
- pcre_version());
-
- init_lookup_list();
diff --git a/mail-mta/exim/files/exim-4.75-CVE-2011-1764.patch b/mail-mta/exim/files/exim-4.75-CVE-2011-1764.patch
deleted file mode 100644
index 2ce6ec039852..000000000000
--- a/mail-mta/exim/files/exim-4.75-CVE-2011-1764.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-http://bugs.gentoo.org/show_bug.cgi?id=366369
-
-From: Tom Kistner <tom@tahini.csx.cam.ac.uk>
-Date: Sat, 30 Apr 2011 12:20:17 +0000 (+0100)
-Subject: Bugzilla #1106: Don't pass DKIM compound log line as format string
-X-Git-Tag: exim-4_76_RC1~2
-X-Git-Url: http://git.exim.org/exim.git/commitdiff_plain/337e3505b0e6cd4309db6bf6062b33fa56e06cf8
-
-Bugzilla #1106: Don't pass DKIM compound log line as format string
----
-
-diff --git a/src/src/dkim.c b/src/src/dkim.c
-index e25ff8c..2318cc3 100644
---- a/src/src/dkim.c
-+++ b/src/src/dkim.c
-@@ -108,7 +108,7 @@ void dkim_exim_verify_finish(void) {
- /* Log a line for each signature */
- uschar *logmsg = string_append(NULL, &size, &ptr, 5,
-
-- string_sprintf( "DKIM: d=%s s=%s c=%s/%s a=%s ",
-+ string_sprintf( "d=%s s=%s c=%s/%s a=%s ",
- sig->domain,
- sig->selector,
- (sig->canon_headers == PDKIM_CANON_SIMPLE)?"simple":"relaxed",
-@@ -176,7 +176,7 @@ void dkim_exim_verify_finish(void) {
- }
-
- logmsg[ptr] = '\0';
-- log_write(0, LOG_MAIN, (char *)logmsg);
-+ log_write(0, LOG_MAIN, "DKIM: %s", logmsg);
-
- /* Build a colon-separated list of signing domains (and identities, if present) in dkim_signers */
- dkim_signers = string_append(dkim_signers,
diff --git a/mail-mta/exim/files/exim-4.76-crosscompile.patch b/mail-mta/exim/files/exim-4.76-crosscompile.patch
new file mode 100644
index 000000000000..cf47adee6265
--- /dev/null
+++ b/mail-mta/exim/files/exim-4.76-crosscompile.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/show_bug.cgi?id=266591
+
+--- OS/Makefile-Base
++++ OS/Makefile-Base
+@@ -114,8 +114,8 @@
+
+ # Targets for special-purpose configuration header builders
+ buildconfig: buildconfig.c
+- @echo "$(CC) buildconfig.c"
+- $(FE)$(CC) $(CFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
++ @echo "$(HOSTCC) buildconfig.c"
++ $(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
+
+
+ # Target for the exicyclog utility script
diff --git a/mail-mta/exim/files/exim.rc7 b/mail-mta/exim/files/exim.rc7
new file mode 100644
index 000000000000..e594c954a30d
--- /dev/null
+++ b/mail-mta/exim/files/exim.rc7
@@ -0,0 +1,30 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-mta/exim/files/exim.rc7,v 1.1 2011/08/03 19:19:12 grobian Exp $
+
+opts="${opts} reload"
+
+depend() {
+ need logger
+ use antivirus net
+ provide mta
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --quiet --exec /usr/sbin/exim --pidfile /var/run/${SVCNAME}.pid -- -C /etc/exim/${SVCNAME}.conf ${EXIM_OPTS:--bd -q15m}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --quiet --pidfile /var/run/${SVCNAME}.pid --name exim
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading ${SVCNAME}"
+ start-stop-daemon --stop --signal HUP --oknodo --quiet --pidfile /var/run/${SVCNAME}.pid --name exim
+ eend $?
+}