summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Morper <thomas@beingboiled.info>2011-10-26 14:27:43 -0500
committerNiels Horn <niels.horn@slackbuilds.org>2011-11-04 21:59:28 -0200
commit5a5401073d3d34b209cfc5ba10232b59f3bfe4f7 (patch)
tree156d9f4a120bd3d64459677d6ce75a7ac7091df4
parentc5973fc8720880c936cc90448ef6e2af5709b25f (diff)
downloadslackbuilds-5a5401073d3d34b209cfc5ba10232b59f3bfe4f7.tar.gz
network/exim: Updated for version 4.77.
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
-rw-r--r--network/exim/README12
-rw-r--r--network/exim/contrib/exim.cron6
-rw-r--r--network/exim/exim.Makefile55
-rw-r--r--network/exim/exim.SlackBuild23
-rw-r--r--network/exim/exim.info6
5 files changed, 73 insertions, 29 deletions
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.
@@ -1210,6 +1219,26 @@ PID_FILE_PATH=/var/run/exim.pid
#------------------------------------------------------------------------------
+# 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.
# You should never uncomment this when compiling a binary for distribution.
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"