diff options
Diffstat (limited to 'mail-mta/exim/files')
-rw-r--r-- | mail-mta/exim/files/exim-4.43-r2-localscan_dlopen.patch | 259 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.74-makefile-command-envs.patch | 59 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.74-makefile-posix.patch | 86 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.74-pcre.patch | 29 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.75-CVE-2011-1764.patch | 33 | ||||
-rw-r--r-- | mail-mta/exim/files/exim-4.76-crosscompile.patch | 15 | ||||
-rw-r--r-- | mail-mta/exim/files/exim.rc7 | 30 |
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 $? +} |