This commit is contained in:
David Woodhouse 2009-12-24 20:11:03 +00:00
parent 5754bb15fd
commit b1c3dc2df5
8 changed files with 443 additions and 685 deletions

View File

@ -1,2 +1,2 @@
sa-exim-4.2.tar.gz
exim-4.69.tar.bz2
exim-4.71.tar.bz2

View File

@ -1,18 +1,5 @@
diff -uNr exim-4.69.orig/scripts/Configure-Makefile exim-4.69/scripts/Configure-Makefile
--- exim-4.69.orig/scripts/Configure-Makefile 2005-09-19 15:42:31.000000000 +0100
+++ exim-4.69/scripts/Configure-Makefile 2008-08-13 14:44:59.000000000 +0100
@@ -131,7 +131,7 @@
mv $mft $mftt
echo "PERL_CC=`$PERL_COMMAND -MConfig -e 'print $Config{cc}'`" >>$mft
- echo "PERL_CCOPTS=`$PERL_COMMAND -MExtUtils::Embed -e ccopts`" >>$mft
+ echo "PERL_CCOPTS=`$PERL_COMMAND -MExtUtils::Embed -e ccopts` \$(CFLAGS)" >>$mft
echo "PERL_LIBS=`$PERL_COMMAND -MExtUtils::Embed -e ldopts`" >>$mft
echo "" >>$mft
cat $mftt >> $mft
diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
--- exim-4.69.orig/src/EDITME 2007-01-22 16:29:54.000000000 +0000
+++ exim-4.69/src/EDITME 2008-08-13 14:44:59.000000000 +0100
--- exim-4.71/src/EDITME.config 2009-11-20 12:18:19.000000000 +0000
+++ exim-4.71/src/EDITME 2009-12-24 19:02:19.000000000 +0000
@@ -100,7 +100,7 @@
# /usr/local/sbin. The installation script will try to create this directory,
# and any superior directories, if they do not exist.
@ -22,7 +9,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -116,7 +116,7 @@
@@ -116,7 +116,7 @@ BIN_DIRECTORY=/usr/exim/bin
# don't exist. It will also install a default runtime configuration if this
# file does not exist.
@ -31,7 +18,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# It is possible to specify a colon-separated list of files for CONFIGURE_FILE.
# In this case, Exim will use the first of them that exists when it is run.
@@ -134,7 +134,7 @@
@@ -134,7 +134,7 @@ CONFIGURE_FILE=/usr/exim/configure
# owner of a local mailbox.) Specifying these values as root is very strongly
# discouraged.
@ -40,7 +27,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# If you specify EXIM_USER as a name, this is looked up at build time, and the
# uid number is built into the binary. However, you can specify that this
@@ -155,7 +155,7 @@
@@ -155,7 +155,7 @@ EXIM_USER=
# for EXIM_USER (e.g. EXIM_USER=exim), you don't need to set EXIM_GROUP unless
# you want to use a group other than the default group for the given user.
@ -49,7 +36,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# Many sites define a user called "exim", with an appropriate default group,
# and use
@@ -235,7 +235,7 @@
@@ -235,7 +235,7 @@ TRANSPORT_SMTP=yes
# This one is special-purpose, and commonly not required, so it is not
# included by default.
@ -58,7 +45,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -244,9 +244,9 @@
@@ -244,9 +244,9 @@ TRANSPORT_SMTP=yes
# MBX, is included only when requested. If you do not know what this is about,
# leave these settings commented out.
@ -71,15 +58,13 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -261,25 +261,28 @@
LOOKUP_DBM=yes
@@ -262,17 +262,20 @@ LOOKUP_DBM=yes
LOOKUP_LSEARCH=yes
LOOKUP_DNSDB=yes
-# LOOKUP_CDB=yes
-# LOOKUP_DNSDB=yes
-# LOOKUP_DSEARCH=yes
+LOOKUP_CDB=yes
+LOOKUP_DNSDB=yes
+LOOKUP_DSEARCH=yes
# LOOKUP_IBASE=yes
-# LOOKUP_LDAP=yes
@ -103,15 +88,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# LOOKUP_WHOSON=yes
# These two settings are obsolete; all three lookups are compiled when
# LOOKUP_LSEARCH is enabled. However, we retain these for backward
# compatibility. Setting one forces LOOKUP_LSEARCH if it is not set.
-# LOOKUP_WILDLSEARCH=yes
+LOOKUP_WILDLSEARCH=yes
# LOOKUP_NWILDLSEARCH=yes
@@ -330,14 +333,14 @@
@@ -343,14 +346,14 @@ EXIM_MONITOR=eximon.bin
# and the MIME ACL. Please read the documentation to learn more about these
# features.
@ -128,7 +105,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
# Compiling Exim with experimental features. These are documented in
@@ -473,11 +476,11 @@
@@ -486,11 +489,11 @@ FIXED_NEVER_USERS=root
# included in the Exim binary. You will then need to set up the run time
# configuration to make use of the mechanism(s) selected.
@ -145,7 +122,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -494,7 +497,7 @@
@@ -507,7 +510,7 @@ FIXED_NEVER_USERS=root
# one that is set in the headers_charset option. The default setting is
# defined by this setting:
@ -154,7 +131,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# If you are going to make use of $header_xxx expansions in your configuration
# file, or if your users are going to use them in filter files, and the normal
@@ -514,7 +517,7 @@
@@ -527,7 +530,7 @@ HEADERS_CHARSET="ISO-8859-1"
# the Sieve filter support. For those OS where iconv() is known to be installed
# as standard, the file in OS/Makefile-xxxx contains
#
@ -163,7 +140,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#
# If you are not using one of those systems, but have installed iconv(), you
# need to uncomment that line above. In some cases, you may find that iconv()
@@ -576,10 +579,11 @@
@@ -589,10 +592,11 @@ HEADERS_CHARSET="ISO-8859-1"
# leave these settings commented out.
# This setting is required for any TLS support (either OpenSSL or GnuTLS)
@ -177,7 +154,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# Uncomment these settings if you are using GnuTLS
# USE_GNUTLS=yes
@@ -630,7 +634,7 @@
@@ -643,7 +647,7 @@ HEADERS_CHARSET="ISO-8859-1"
# Once you have done this, "make install" will build the info files and
# install them in the directory you have defined.
@ -186,7 +163,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -643,7 +647,7 @@
@@ -656,7 +660,7 @@ HEADERS_CHARSET="ISO-8859-1"
# %s. This will be replaced by one of the strings "main", "panic", or "reject"
# to form the final file names. Some installations may want something like this:
@ -195,7 +172,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# which results in files with names /var/log/exim_mainlog, etc. The directory
# in which the log files are placed must exist; Exim does not try to create
@@ -692,7 +696,7 @@
@@ -705,7 +709,7 @@ EXICYCLOG_MAX=10
# files. Both the name of the command and the suffix that it adds to files
# need to be defined here. See also the EXICYCLOG_MAX configuration.
@ -204,7 +181,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
COMPRESS_SUFFIX=gz
@@ -700,7 +704,7 @@
@@ -713,7 +717,7 @@ COMPRESS_SUFFIX=gz
# If the exigrep utility is fed compressed log files, it tries to uncompress
# them using this command.
@ -213,7 +190,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -709,7 +713,7 @@
@@ -722,7 +726,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# (version 5.004 or later) installed, set EXIM_PERL to perl.o. Using embedded
# Perl costs quite a lot of resources. Only do this if you really need it.
@ -222,7 +199,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -719,7 +723,7 @@
@@ -732,7 +736,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# that the local_scan API is made available by the linker. You may also need
# to add -ldl to EXTRALIBS so that dlopen() is available to Exim.
@ -231,7 +208,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -729,7 +733,7 @@
@@ -742,7 +746,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# support, which is intended for use in conjunction with the SMTP AUTH
# facilities, is included only when requested by the following setting:
@ -240,7 +217,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# You probably need to add -lpam to EXTRALIBS, and in some releases of
# GNU/Linux -ldl is also needed.
@@ -797,7 +801,7 @@
@@ -810,7 +814,7 @@ ZCAT_COMMAND=/usr/bin/zcat
# group. Once you have installed saslauthd, you should arrange for it to be
# started by root at boot time.
@ -249,7 +226,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#------------------------------------------------------------------------------
@@ -810,9 +814,9 @@
@@ -823,9 +827,9 @@ ZCAT_COMMAND=/usr/bin/zcat
# You may well also have to specify a local "include" file and an additional
# library for TCP wrappers, so you probably need something like this:
#
@ -262,7 +239,7 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
#
# but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM
# as well.
@@ -857,13 +861,13 @@
@@ -870,13 +874,13 @@ SYSTEM_ALIASES_FILE=/etc/aliases
# is "yes", as well as supporting line editing, a history of input lines in the
# current run is maintained.
@ -278,25 +255,28 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
###############################################################################
# THINGS YOU ALMOST NEVER NEED TO MENTION #
@@ -884,11 +888,12 @@
@@ -897,13 +901,13 @@ SYSTEM_ALIASES_FILE=/etc/aliases
# haven't got Perl, Exim will still build and run; you just won't be able to
# use those utilities.
-# CHOWN_COMMAND=/usr/bin/chown
-# CHGRP_COMMAND=/usr/bin/chgrp
-# CHMOD_COMMAND=/usr/bin/chmod
-# MV_COMMAND=/bin/mv
-# RM_COMMAND=/bin/rm
-# TOUCH_COMMAND=/usr/bin/touch
-# PERL_COMMAND=/usr/bin/perl
+CHOWN_COMMAND=/bin/chown
+CHGRP_COMMAND=/bin/chgrp
+
+MV_COMAND=/bin/mv
+CHMOD_COMMAND=/bin/chmod
+MV_COMMAND=/bin/mv
+RM_COMMAND=/bin/rm
+TOUCH_COMMAND=/bin/touch
+PERL_COMMAND=/usr/bin/perl
#------------------------------------------------------------------------------
@@ -1082,7 +1087,7 @@
@@ -1097,7 +1101,7 @@ TMPDIR="/tmp"
# (process id) to a file so that it can easily be identified. The path of the
# file can be specified here. Some installations may want something like this:
@ -305,3 +285,14 @@ diff -uNr exim-4.69.orig/src/EDITME exim-4.69/src/EDITME
# If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
# using the name "exim-daemon.pid".
--- exim-4.71/scripts/Configure-Makefile.config 2009-11-20 21:22:20.000000000 +0000
+++ exim-4.71/scripts/Configure-Makefile 2009-12-24 18:59:48.000000000 +0000
@@ -137,7 +137,7 @@ if [ "${EXIM_PERL}" != "" ] ; then
mv $mft $mftt
echo "PERL_CC=`$PERL_COMMAND -MConfig -e 'print $Config{cc}'`" >>$mft
- echo "PERL_CCOPTS=`$PERL_COMMAND -MExtUtils::Embed -e ccopts`" >>$mft
+ echo "PERL_CCOPTS=`$PERL_COMMAND -MExtUtils::Embed -e ccopts` \$(CFLAGS)" >>$mft
echo "PERL_LIBS=`$PERL_COMMAND -MExtUtils::Embed -e ldopts`" >>$mft
echo "" >>$mft
cat $mftt >> $mft

View File

@ -1,79 +0,0 @@
diff -uNr exim-4.69-old/exim_monitor/em_hdr.h exim-4.69/exim_monitor/em_hdr.h
--- exim-4.69-old/exim_monitor/em_hdr.h 2007-01-08 10:50:17.000000000 +0000
+++ exim-4.69/exim_monitor/em_hdr.h 2008-08-13 15:22:37.000000000 +0100
@@ -87,7 +87,7 @@
/* Regular expression include */
-#include "pcre/pcre.h"
+#include <pcre.h>
/* Includes from the main source of Exim. We need to have MAXPACKET defined for
the benefit of structs.h. One of these days I should tidy up this interface so
diff -uNr exim-4.69-old/OS/Makefile-Base exim-4.69/OS/Makefile-Base
--- exim-4.69-old/OS/Makefile-Base 2007-11-12 13:02:19.000000000 +0000
+++ exim-4.69/OS/Makefile-Base 2008-08-13 15:22:37.000000000 +0100
@@ -96,14 +96,14 @@
# therefore always be run, even if the files exist. This shouldn't in fact be a
# problem, but it does no harm. Other make programs will just ignore this.
-.PHONY: all allexim buildauths buildlookups buildpcre buildrouters \
+.PHONY: all allexim buildauths buildlookups buildrouters \
buildtransports checklocalmake clean
# This is the real default target for all the various exim binaries and
# scripts, once the configuring stuff is done.
-allexim: config.h buildpcre $(EXIM_MONITOR) exicyclog exinext exiwhat \
+allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
exigrep eximstats exipick exiqgrep exiqsumm \
transport-filter.pl convert4r3 convert4r4 \
exim_checkaccess \
@@ -314,7 +314,7 @@
local_scan.o $(EXIM_PERL) $(OBJ_WITH_CONTENT_SCAN) \
$(OBJ_WITH_OLD_DEMIME) $(OBJ_EXPERIMENTAL)
-exim: pcre/libpcre.a lookups/lookups.a auths/auths.a \
+exim: lookups/lookups.a auths/auths.a \
routers/routers.a transports/transports.a \
$(OBJ_EXIM) version.c
@echo " "
@@ -325,7 +325,7 @@
rm -f exim
@echo "$(LNCC) -o exim"
$(FE)$(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \
- pcre/libpcre.a \
+ -lpcre \
routers/routers.a transports/transports.a lookups/lookups.a \
auths/auths.a \
$(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \
@@ -429,14 +429,14 @@
OBJ_MONBIN = util-spool_in.o util-store.o util-string.o tod.o tree.o $(MONBIN)
-eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) pcre/libpcre.a \
+eximon.bin: $(EXIMON_EDITME) eximon $(OBJ_MONBIN) \
../exim_monitor/em_version.c
@echo "$(CC) exim_monitor/em_version.c"
$(FE)$(CC) -o em_version.o -c \
$(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c
@echo "$(LNCC) -o eximon.bin"
$(FE)$(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \
- $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 pcre/libpcre.a \
+ $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 -lpcre \
$(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc
@if [ x"$(STRIP_COMMAND)" != x"" ]; then \
echo $(STRIP_COMMAND) eximon.bin; \
diff -uNr exim-4.69-old/src/exim.h exim-4.69/src/exim.h
--- exim-4.69-old/src/exim.h 2007-09-28 13:21:57.000000000 +0100
+++ exim-4.69/src/exim.h 2008-08-13 15:22:37.000000000 +0100
@@ -422,7 +422,7 @@
/* The header from the PCRE regex package */
-#include "pcre/pcre.h"
+#include <pcre.h>
/* Exim includes are in several files. Note that local_scan.h #includes
config.h, mytypes.h, and store.h, so we don't need to mention them explicitly.

View File

@ -1,77 +0,0 @@
diff --git a/src/spam.c b/src/spam.c
index bf2470c..aab96c6 100644
--- a/src/spam.c
+++ b/src/spam.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/spam.c,v 1.14 2007/05/14 18:56:25 magnus Exp $ */
+/* $Cambridge: exim/exim-src/src/spam.c,v 1.16 2008/01/28 13:14:48 tom Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -46,6 +46,7 @@ int spam(uschar **listptr) {
struct timeval select_tv; /* and applied by PH */
fd_set select_fd;
#endif
+ uschar *spamd_address_work;
/* stop compiler warning */
result = 0;
@@ -89,14 +90,26 @@ int spam(uschar **listptr) {
};
start = time(NULL);
+
+ if (*spamd_address == '$') {
+ spamd_address_work = expand_string(spamd_address);
+ if (spamd_address_work == NULL) {
+ log_write(0, LOG_MAIN|LOG_PANIC,
+ "spamassassin acl condition: spamd_address starts with $, but expansion failed: %s", expand_string_message);
+ return DEFER;
+ }
+ }
+ else
+ spamd_address_work = spamd_address;
+
/* socket does not start with '/' -> network socket */
- if (*spamd_address != '/') {
+ if (*spamd_address_work != '/') {
time_t now = time(NULL);
int num_servers = 0;
int current_server = 0;
int start_server = 0;
uschar *address = NULL;
- uschar *spamd_address_list_ptr = spamd_address;
+ uschar *spamd_address_list_ptr = spamd_address_work;
uschar address_buffer[256];
spamd_address_container * spamd_address_vector[32];
@@ -184,12 +197,12 @@ int spam(uschar **listptr) {
}
server.sun_family = AF_UNIX;
- Ustrcpy(server.sun_path, spamd_address);
+ Ustrcpy(server.sun_path, spamd_address_work);
if (connect(spamd_sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) {
log_write(0, LOG_MAIN|LOG_PANIC,
"malware acl condition: spamd: unable to connect to UNIX socket %s (%s)",
- spamd_address, strerror(errno) );
+ spamd_address_work, strerror(errno) );
(void)fclose(mbox_file);
(void)close(spamd_sock);
return DEFER;
@@ -395,9 +408,11 @@ again:
spam_rc = FAIL;
};
- /* remember user name and "been here" for it */
- Ustrcpy(prev_user_name, user_name);
- spam_ok = 1;
+ /* remember user name and "been here" for it unless spamd_socket was expanded */
+ if (spamd_address_work == spamd_address) {
+ Ustrcpy(prev_user_name, user_name);
+ spam_ok = 1;
+ }
if (override) {
/* always return OK, no matter what the score */

View File

@ -1,43 +1,6 @@
diff -uNr exim-4.69-old/src/config.h.defaults exim-4.69/src/config.h.defaults
--- exim-4.69-old/src/config.h.defaults 2007-09-28 13:21:57.000000000 +0100
+++ exim-4.69/src/config.h.defaults 2008-08-13 15:25:31.000000000 +0100
@@ -27,6 +27,8 @@
#define AUTH_VARS 3
+#define DLOPEN_LOCAL_SCAN
+
#define BIN_DIRECTORY
#define CONFIGURE_FILE
diff -uNr exim-4.69-old/src/EDITME exim-4.69/src/EDITME
--- exim-4.69-old/src/EDITME 2008-08-13 15:25:05.000000000 +0100
+++ exim-4.69/src/EDITME 2008-08-13 15:25:31.000000000 +0100
@@ -619,6 +619,20 @@
#------------------------------------------------------------------------------
+# 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 -uNr exim-4.69-old/src/globals.c exim-4.69/src/globals.c
--- exim-4.69-old/src/globals.c 2007-09-28 13:21:57.000000000 +0100
+++ exim-4.69/src/globals.c 2008-08-13 15:25:31.000000000 +0100
@@ -128,6 +128,9 @@
--- exim-4.71/src/globals.c.dl 2009-11-16 19:50:37.000000000 +0000
+++ exim-4.71/src/globals.c 2009-12-24 19:27:17.000000000 +0000
@@ -129,6 +129,9 @@ uschar *tls_verify_certificates= NULL;
uschar *tls_verify_hosts = NULL;
#endif
@ -47,24 +10,33 @@ diff -uNr exim-4.69-old/src/globals.c exim-4.69/src/globals.c
/* 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 -uNr exim-4.69-old/src/globals.h exim-4.69/src/globals.h
--- exim-4.69-old/src/globals.h 2007-09-28 13:21:57.000000000 +0100
+++ exim-4.69/src/globals.h 2008-08-13 15:25:31.000000000 +0100
@@ -88,6 +88,9 @@
extern uschar *tls_verify_hosts; /* Mandatory client verification */
#endif
--- exim-4.71/src/config.h.defaults.dl 2009-11-16 19:50:36.000000000 +0000
+++ exim-4.71/src/config.h.defaults 2009-12-24 19:27:17.000000000 +0000
@@ -27,6 +27,8 @@ it's a default value. */
#define AUTH_VARS 3
+#define DLOPEN_LOCAL_SCAN
+
#define BIN_DIRECTORY
#define CONFIGURE_FILE
--- exim-4.71/src/readconf.c.dl 2009-11-16 19:50:37.000000000 +0000
+++ exim-4.71/src/readconf.c 2009-12-24 19:27:17.000000000 +0000
@@ -269,6 +269,9 @@ static optionlist optionlist_config[] =
{ "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
+extern uschar *local_scan_path; /* Path to local_scan() library */
+ { "local_scan_path", opt_stringptr, &local_scan_path },
+#endif
/* Input-reading functions for messages, so we can use special ones for
incoming TCP/IP. */
diff -uNr exim-4.69-old/src/local_scan.c exim-4.69/src/local_scan.c
--- exim-4.69-old/src/local_scan.c 2007-01-08 10:50:18.000000000 +0000
+++ exim-4.69/src/local_scan.c 2008-08-13 15:25:31.000000000 +0100
{ "local_scan_timeout", opt_time, &local_scan_timeout },
{ "local_sender_retain", opt_bool, &local_sender_retain },
{ "localhost_number", opt_stringptr, &host_number_string },
--- exim-4.71/src/local_scan.c.dl 2009-11-16 19:50:37.000000000 +0000
+++ exim-4.71/src/local_scan.c 2009-12-24 19:27:17.000000000 +0000
@@ -7,60 +7,131 @@
/* Copyright (c) University of Cambridge 1995 - 2007 */
/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
+#include "exim.h"
@ -242,16 +214,38 @@ diff -uNr exim-4.69-old/src/local_scan.c exim-4.69/src/local_scan.c
+#endif /* DLOPEN_LOCAL_SCAN */
+
/* End of local_scan.c */
diff -uNr exim-4.69-old/src/readconf.c exim-4.69/src/readconf.c
--- exim-4.69-old/src/readconf.c 2007-08-23 12:01:49.000000000 +0100
+++ exim-4.69/src/readconf.c 2008-08-13 15:25:31.000000000 +0100
@@ -257,6 +257,9 @@
{ "local_from_prefix", opt_stringptr, &local_from_prefix },
{ "local_from_suffix", opt_stringptr, &local_from_suffix },
{ "local_interfaces", opt_stringptr, &local_interfaces },
--- exim-4.71/src/globals.h.dl 2009-11-16 19:50:37.000000000 +0000
+++ exim-4.71/src/globals.h 2009-12-24 19:27:17.000000000 +0000
@@ -89,6 +89,9 @@ extern uschar *tls_verify_certificates;/
extern uschar *tls_verify_hosts; /* Mandatory client verification */
#endif
+#ifdef DLOPEN_LOCAL_SCAN
+ { "local_scan_path", opt_stringptr, &local_scan_path },
+extern uschar *local_scan_path; /* Path to local_scan() library */
+#endif
{ "local_scan_timeout", opt_time, &local_scan_timeout },
{ "local_sender_retain", opt_bool, &local_sender_retain },
{ "localhost_number", opt_stringptr, &host_number_string },
/* Input-reading functions for messages, so we can use special ones for
incoming TCP/IP. */
--- exim-4.71/src/EDITME.dl 2009-12-24 19:26:59.000000000 +0000
+++ exim-4.71/src/EDITME 2009-12-24 19:27:17.000000000 +0000
@@ -632,6 +632,20 @@ TLS_LIBS=-lssl -lcrypto
#------------------------------------------------------------------------------
+# 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

File diff suppressed because it is too large Load Diff

View File

@ -11,8 +11,8 @@
Summary: The exim mail transfer agent
Name: exim
Version: 4.69
Release: 19%{?dist}
Version: 4.71
Release: 1%{?dist}
License: GPLv2+
Url: http://www.exim.org/
Group: System Environment/Daemons
@ -44,17 +44,15 @@ Patch8: exim-4.24-libdir.patch
Patch12: exim-4.33-cyrus.patch
Patch13: exim-4.43-pamconfig.patch
Patch14: exim-4.50-spamdconf.patch
Patch15: exim-4.52-dynamic-pcre.patch
Patch18: exim-4.62-dlopen-localscan.patch
Patch18: exim-4.71-dlopen-localscan.patch
Patch19: exim-4.63-procmail.patch
Patch20: exim-4.63-allow-filter.patch
Patch21: exim-4.63-localhost-is-local.patch
Patch22: exim-4.66-greylist-conf.patch
Patch23: exim-4.67-smarthost-config.patch
Patch24: exim-4.69-dynlookup.patch
Patch24: exim-4.71-dynlookup.patch
Patch25: exim-4.69-dynlookup-config.patch
Patch26: exim-4.69-strictaliasing.patch
Patch27: exim-4.69-expand-spamd.patch
Requires: /etc/pki/tls/certs /etc/pki/tls/private
Requires: /etc/aliases
@ -176,7 +174,6 @@ greylisting unconditional.
%patch12 -p1 -b .cyrus
%patch13 -p1 -b .pam
%patch14 -p1 -b .spamd
%patch15 -p1 -b .pcre
%patch18 -p1 -b .dl
%patch19 -p1 -b .procmail
%patch20 -p1 -b .filter
@ -186,7 +183,6 @@ greylisting unconditional.
%patch24 -p1 -b .dynlookup
%patch25 -p1 -b .dynconfig
%patch26 -p1 -b .strictaliasing
%patch27 -p1 -b .expandspamd
cp src/EDITME Local/Makefile
sed -i 's@^# LOOKUP_MODULE_DIR=.*@LOOKUP_MODULE_DIR=%{_libdir}/exim/%{version}-%{release}/lookups@' Local/Makefile
@ -487,6 +483,9 @@ test "$1" = 0 || %{_initrddir}/clamd.exim condrestart >/dev/null || :
%{_sysconfdir}/cron.daily/greylist-tidy.sh
%changelog
* Thu Dec 24 2009 David Woodhouse <David.Woodhouse@intel.com> - 4.69-20
- Update to 4.71
* Fri Dec 4 2009 Stepan Kasal <skasal@redhat.com> - 4.69-19
- rebuild against perl 5.10.1

View File

@ -1,2 +1,2 @@
ad76f73c6b3d01caa88078e3e622745a sa-exim-4.2.tar.gz
6f29f073328c858d8554b08cc0c3c2be exim-4.69.tar.bz2
f9c5a2d94b5bb132d06e2fff85bef75e exim-4.71.tar.bz2