From 5a5401073d3d34b209cfc5ba10232b59f3bfe4f7 Mon Sep 17 00:00:00 2001 From: Thomas Morper Date: Wed, 26 Oct 2011 14:27:43 -0500 Subject: network/exim: Updated for version 4.77. Signed-off-by: Robby Workman --- network/exim/README | 12 ++++++--- network/exim/contrib/exim.cron | 6 ++--- network/exim/exim.Makefile | 55 ++++++++++++++++++++++++++++++++---------- network/exim/exim.SlackBuild | 23 +++++++++++++----- network/exim/exim.info | 6 ++--- 5 files changed, 73 insertions(+), 29 deletions(-) (limited to 'network') diff --git a/network/exim/README b/network/exim/README index d4fab48560..d0a766b39b 100644 --- a/network/exim/README +++ b/network/exim/README @@ -6,15 +6,19 @@ Exim was orginally written by Philip Hazel for use in the University of Cambridge Computing Services e-mail systems. Before you can build Exim, you have to create an "exim" user and group: - # groupadd -g 222 exim - # useradd -d /var/spool/exim -g exim -s /bin/false -u 222 exim + + # groupadd -g 222 exim + # useradd -d /var/spool/exim -g exim -s /bin/false -u 222 exim + The recommended uid/gid is 222, but others are fine if you prefer - see http://slackbuilds.org/uid_gid.txt for other recommendations. There's no "configure" script; instead Exim is configured by editing a well documented Makefile, which is then included during the build process. The -provided "exim.Makefile" will build an all-purpose Exim daemon with almost -all of the features that will work on a standard Slackware system. +provided "exim.Makefile" will build an all-purpose Exim daemon with the +most common features. The various database lookup methods will not be +built by default but can be enabled easily by uncommenting a few lines in +the Makefile. Exim can be integrated with other email tools such as Clamav, Spamassassin, Bogofilter, and others available at Slackbuilds.org. diff --git a/network/exim/contrib/exim.cron b/network/exim/contrib/exim.cron index 94d7442b60..b4b7751ea8 100644 --- a/network/exim/contrib/exim.cron +++ b/network/exim/contrib/exim.cron @@ -7,6 +7,6 @@ SPOOL=/var/spool/exim test -d $SPOOL -a -x /usr/sbin/exim_tidydb || exit # Tidy up the contents of the hints databases -find $SPOOL/db -name '*.lockfile' -exec basename {} .lockfile \; \ - | xargs -r -n 1 sudo -u exim /usr/sbin/exim_tidydb -t 7d $SPOOL \ - > /dev/null +find $SPOOL/db -type f \! -name '*.lockfile' -printf '%f\0' \ + | xargs -0 -I {} -n 1 -r su exim -s /bin/sh -c \ + "/usr/sbin/exim_tidydb -t 7d $SPOOL {} > /dev/null" diff --git a/network/exim/exim.Makefile b/network/exim/exim.Makefile index 1da52718f6..9f14ed0de5 100644 --- a/network/exim/exim.Makefile +++ b/network/exim/exim.Makefile @@ -1,5 +1,3 @@ -# $Cambridge: exim/src/src/EDITME,v 1.27 2010/06/12 15:21:25 jetmore Exp $ - ################################################## # The Exim mail transport agent # ################################################## @@ -286,17 +284,17 @@ LOOKUP_DBM=yes LOOKUP_LSEARCH=yes LOOKUP_DNSDB=yes -# LOOKUP_CDB=yes +LOOKUP_CDB=yes LOOKUP_DSEARCH=yes # LOOKUP_IBASE=yes LOOKUP_LDAP=yes -LOOKUP_MYSQL=yes +# LOOKUP_MYSQL=yes # LOOKUP_NIS=yes # LOOKUP_NISPLUS=yes # LOOKUP_ORACLE=yes LOOKUP_PASSWD=yes # LOOKUP_PGSQL=yes -LOOKUP_SQLITE=yes +# LOOKUP_SQLITE=yes # LOOKUP_WHOSON=yes # These two settings are obsolete; all three lookups are compiled when @@ -345,8 +343,21 @@ PCRE_LIBS=-lpcre # specified in INCLUDE. The settings below are just examples; -lpq is for # PostgreSQL, -lgds is for Interbase, -lsqlite3 is for SQLite. -LOOKUP_INCLUDE=-I/usr/include/mysql -LOOKUP_LIBS=-L/usr/lib$(LIBDIRSUFFIX)/mysql -lldap -lmysqlclient -lsqlite3 +LOOKUP_INCLUDE= +LOOKUP_LIBS=-lldap + +# Uncomment for MySQL lookups. +#LOOKUP_MYSQL=yes +#LOOKUP_INCLUDE+=-I/usr/include/mysql +#LOOKUP_LIBS+=-L/usr/lib$(LIBDIRSUFFIX)/mysql -lmysqlclient_r + +# Uncomment for PostgreSQL lookups. +#LOOKUP_PGSQL=yes +#LOOKUP_LIBS+=-lpq + +# Uncomment for SQLite lookups. +#LOOKUP_SQLITE=yes +#LOOKUP_LIBS+=-lsqlite3 #------------------------------------------------------------------------------ @@ -357,7 +368,7 @@ LOOKUP_LIBS=-L/usr/lib$(LIBDIRSUFFIX)/mysql -lldap -lmysqlclient -lsqlite3 # files are defaulted in the OS/Makefile-Default file, but can be overridden in # local OS-specific make files. -EXIM_MONITOR=eximon.bin +# EXIM_MONITOR=eximon.bin #------------------------------------------------------------------------------ @@ -528,7 +539,7 @@ FIXED_NEVER_USERS=root # # As a strictly transient measure to ease migration to 4.73, the # WHITELIST_D_MACROS value definies a colon-separated list of macro-names -# which are permitted to be overriden from the command-line which will be +# which are permitted to be overridden from the command-line which will be # honoured by the Exim user. So these are macros that can persist to delivery # time. # Examples might be -DTLS or -DSPOOL=/some/dir. The values on the @@ -821,13 +832,13 @@ EXTRALIBS += -ldl # is included only when requested by setting the following parameter to the # location of your Radius configuration file: -RADIUS_CONFIG_FILE=/etc/radiusclient/radiusclient.conf +# RADIUS_CONFIG_FILE=/etc/radiusclient/radiusclient.conf # RADIUS_CONFIG_FILE=/etc/radius.conf # If you have set RADIUS_CONFIG_FILE, you should also set one of these to # indicate which RADIUS library is used: -RADIUS_LIB_TYPE=RADIUSCLIENT +# RADIUS_LIB_TYPE=RADIUSCLIENT # RADIUS_LIB_TYPE=RADIUSCLIENTNEW # RADIUS_LIB_TYPE=RADLIB @@ -845,8 +856,6 @@ RADIUS_LIB_TYPE=RADIUSCLIENT # If you do not set RADIUS_LIB_TYPE, Exim assumes the radiusclient library, # using the original API. -EXTRALIBS += -lradiusclient - #------------------------------------------------------------------------------ # Support for authentication via the Cyrus SASL pwcheck daemon is available. @@ -1209,6 +1218,26 @@ PID_FILE_PATH=/var/run/exim.pid # SUPPORT_MOVE_FROZEN_MESSAGES=yes +#------------------------------------------------------------------------------ +# Expanding match_* second paramters: BE CAREFUL IF ENABLING THIS! +# It has proven too easy in practice for administrators to configure security +# problems into their Exim install, by treating match_domain{}{} and friends +# as a form of string comparison, where the second string comes from untrusted +# data. Because these options take lists, which can include lookup;LOOKUPDATA +# style elements, a foe can then cause Exim to, eg, execute an arbitrary MySQL +# query, dropping tables. +# From Exim 4.77 onwards, the second parameter is not expanded; it can still +# be a list literal, or a macro, or a named list reference. There is also +# the new expansion condition "inlisti" which does expand the second parameter, +# but treats it as a list of strings; also, there's "eqi" which is probably +# what is normally wanted. +# +# If you really need to have the old behaviour, know what you are doing and +# will not complain if your system is compromised as a result of doing so, then +# uncomment this option to get the old behaviour back. + +# EXPAND_LISTMATCH_RHS=yes + #------------------------------------------------------------------------------ # Disabling the use of fsync(): DO NOT UNCOMMENT THE FOLLOWING LINE unless you # really, really, really know what you are doing. And even then, think again. diff --git a/network/exim/exim.SlackBuild b/network/exim/exim.SlackBuild index 11e76bbb82..be60519268 100644 --- a/network/exim/exim.SlackBuild +++ b/network/exim/exim.SlackBuild @@ -8,14 +8,16 @@ # Thanks to Debian for the manpages. PRGNAM=exim -VERSION=${VERSION:-4.76} +VERSION=${VERSION:-4.77} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +# Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i486 ;; arm*) ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: *) ARCH=$( uname -m ) ;; esac fi @@ -59,20 +61,29 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Copy the Makefile and a stock config for eximon cat $CWD/exim.Makefile > Local/Makefile cat exim_monitor/EDITME > Local/eximon.conf -make \ - CFLAGS="$SLKCFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" \ - LIBDIRSUFFIX=$LIBDIRSUFFIX -make install DESTDIR=$PKG +# Use the Exim build system to set the architecture-specific CFLAGS. +# This requires "make" to run twice, in case you wonder. If you want +# to use your own CFLAGS in exim.Makefile, you should put a '#' in +# front of the next 4 lines. +echo "CFLAGS=$SLKCFLAGS" > Local/Makefile-Linux +echo "CFLAGS+=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" > Local/Makefile-Linux-i386 +FULLECHO="" LIBDIRSUFFIX=$LIBDIRSUFFIX DESTDIR=$PKG make -e || true +FULLECHO="" LIBDIRSUFFIX=$LIBDIRSUFFIX DESTDIR=$PKG make -e makefile + +# build & install +FULLECHO="" LIBDIRSUFFIX=$LIBDIRSUFFIX DESTDIR=$PKG make -e +FULLECHO="" LIBDIRSUFFIX=$LIBDIRSUFFIX DESTDIR=$PKG make -e install find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true # Ditch the symlink and move the binary to its final destination. rm -f $PKG/usr/sbin/exim -mv $PKG/usr/sbin/exim-$VERSION-1 $PKG/usr/sbin/exim +mv $PKG/usr/sbin/exim-$VERSION-? $PKG/usr/sbin/exim # Additional symlinks provide compatibility with sendmail mkdir -p $PKG/usr/lib # no LIBDIRSUFFIX here! diff --git a/network/exim/exim.info b/network/exim/exim.info index 4c699468a4..8c6f5e71cf 100644 --- a/network/exim/exim.info +++ b/network/exim/exim.info @@ -1,8 +1,8 @@ PRGNAM="exim" -VERSION="4.76" +VERSION="4.77" HOMEPAGE="http://www.exim.org/" -DOWNLOAD="ftp://ftp.exim.org/pub/exim/exim4/exim-4.76.tar.bz2" -MD5SUM="58e784b33c7a2ab335ec6400346d6362" +DOWNLOAD="ftp://ftp.exim.org/pub/exim/exim4/exim-4.77.tar.bz2" +MD5SUM="5d746275f2cc85845567f9d5eb84a57a" DOWNLOAD_x86_64="" MD5SUM_x86_64="" MAINTAINER="Thomas Morper" -- cgit v1.2.3