On 11-12-2009 22:25, Björn Ketelaars wrote:
On 11-12-2009 19:27, Bernd Ahlers wrote:
Hey,
here's an update to exim-4.71. Please test and comment.
Thanks.
Regards,
Bernd
What do you think of this small patch (diff against 'fresh' ports),
which includes:
* all changes from Bernd;
* added support for the dovecot-authenticator _as a flavor_;
* added a bit more information to MESSAGE concerning the use of
mailwrapper;
* Changed no_x11 to x11 (why would one use X11 as a standard requirement
for a mailserver?);
* Removed "WITH_OLD_DEMIM" from no_exiscan flavor. This exim condition
is deprecated;
* Removed iconv flavor, whereby libiconv is changed from optional to
mandatory.
Unfortunately the first diff contained a typo whereby both DSEARCH- and
CDB-lookup were disabled. The included diff corrects this.
Als changed is the use of syslog instead of seperate logfiles under
/var/spool/exim/logs/
diff -ruN exim/Makefile exim-4.71/Makefile
--- exim/Makefile Fri Dec 11 21:17:22 2009
+++ exim-4.71/Makefile Fri Dec 11 22:06:11 2009
@@ -1,8 +1,7 @@
# $OpenBSD: Makefile,v 1.67 2009/08/10 06:32:42 kili Exp $
COMMENT= Flexible mail transfer agent
-DISTNAME= exim-4.69
-PKGNAME= ${DISTNAME}p2
+DISTNAME= exim-4.71
CATEGORIES= mail
MASTER_SITES= ftp://ftp.exim.org/pub/exim/exim4/ \
http://mirror.switch.ch/ftp/mirror/exim/exim/exim4/ \
@@ -19,20 +18,23 @@
PERMIT_DISTFILES_FTP= Yes
WANTLIB= c crypto perl ssl util wrap m
-FLAVORS=no_exiscan no_x11 mysql postgresql sqlite3 ldap iconv sasl
+LIB_DEPENDS= pcre::devel/pcre
+
+MODULES= converters/libiconv
+
+FLAVORS=no_exiscan x11 mysql postgresql sqlite3 ldap dovecot sasl
FLAVOR?=
NO_REGRESS=Yes
.if !${FLAVOR:L:Mno_exiscan}
EXIM_MAKECAT+= "WITH_CONTENT_SCAN=yes\n"
-EXIM_MAKECAT+= "WITH_OLD_DEMIME=yes\n"
.endif
-.if !${FLAVOR:L:Mno_x11}
+.if ${FLAVOR:L:Mx11}
USE_X11= Yes
EXIM_MAKECAT+= "EXIM_MONITOR=eximon.bin\n"
-WANTLIB+= X11 Xaw Xext Xmu Xt pthread-stubs xcb
+WANTLIB+= X11 Xaw Xext Xmu Xt
.endif
.if ${FLAVOR:L:Mmysql}
@@ -51,7 +53,6 @@
.if ${FLAVOR:L:Msqlite3}
EXIM_MAKECAT+= "LOOKUP_SQLITE=yes\n"
-EXIM_LOOKUP_INCLUDE+= -I${LOCALBASE}/include
EXIM_LOOKUP_LIBS+= -L${LOCALBASE}/lib/ -lsqlite3
LIB_DEPENDS+= sqlite3.>=8::databases/sqlite3
.endif
@@ -59,40 +60,40 @@
.if ${FLAVOR:L:Mldap}
EXIM_MAKECAT+= "LOOKUP_LDAP=yes\n"
EXIM_MAKECAT+= "LDAP_LIB_TYPE=OPENLDAP2\n"
-EXIM_LOOKUP_INCLUDE+= -I${LOCALBASE}/include
EXIM_LOOKUP_LIBS+= -L${LOCALBASE}/lib -lldap -llber
-LIB_DEPENDS+= ldap.>=2,lber:openldap-client->=2,<3:databases/openldap
+LIB_DEPENDS+= ldap.>=2,lber:openldap-client-2.*:databases/openldap
.endif
-.if ${FLAVOR:L:Miconv}
-MODULES= converters/libiconv
-EXIM_MAKECAT+= "HAVE_ICONV=yes\n"
-EXIM_EXTRA_LIBS+= -L${LOCALBASE}/lib -liconv
-EXIM_CFLAGS+= -I${LOCALBASE}/include
+.if ${FLAVOR:L:Mdovecot}
+EXIM_MAKECAT+= "AUTH_DOVECOT=yes\n"
.endif
.if ${FLAVOR:L:Msasl}
EXIM_MAKECAT+= "AUTH_CYRUS_SASL=yes\n"
EXIM_EXTRA_LIBS+= -L${LOCALBASE}/lib -lsasl2
-EXIM_CFLAGS+= -I${LOCALBASE}/include
LIB_DEPENDS+= sasl2::security/cyrus-sasl2
.endif
+EXIM_MAKECAT+= "HAVE_ICONV=yes\n"
+EXIM_EXTRA_LIBS+= -L${LOCALBASE}/lib -liconv
+
EXIM_EXTRA_LIBS+= -lwrap
-EXIM_MAKECAT+= "AUTH_DOVECOT=yes\n"
EXIM_MAKECAT+= "BIN_DIRECTORY=${PREFIX}/bin\n"
EXIM_MAKECAT+= "CONFIGURE_FILE=${SYSCONFDIR}/exim/configure\n"
EXIM_MAKECAT+= "LOOKUP_INCLUDE=${EXIM_LOOKUP_INCLUDE}\n"
EXIM_MAKECAT+= "LOOKUP_LIBS=${EXIM_LOOKUP_LIBS}\n"
EXIM_MAKECAT+= "EXTRALIBS_EXIM=${EXIM_EXTRA_LIBS}\n"
EXIM_MAKECAT+= "CFLAGS=${CFLAGS} ${EXIM_CFLAGS}\n"
+EXIM_MAKECAT+= "INCLUDE=-I${LOCALBASE}/include\n"
+MAKE_FLAGS+= FULLECHO=
+
do-configure:
@mkdir -p ${WRKSRC}/Local
@cp ${FILESDIR}/Makefile ${WRKSRC}/Local
@echo -n ${EXIM_MAKECAT} >> ${WRKSRC}/Local/Makefile
-.if !${FLAVOR:L:Mno_x11}
+.if !${FLAVOR:L:Mx11}
@cp ${FILESDIR}/eximon.conf ${WRKSRC}/Local
.endif
diff -ruN exim/distinfo exim-4.71/distinfo
--- exim/distinfo Fri Dec 11 21:17:22 2009
+++ exim-4.71/distinfo Fri Dec 11 21:52:18 2009
@@ -1,5 +1,5 @@
-MD5 (exim-4.69.tar.gz) = VujbHf4x4O5M74XolAzu3A==
-RMD160 (exim-4.69.tar.gz) = 0lnHZup58qJTknUwIRHJlk5xDf8=
-SHA1 (exim-4.69.tar.gz) = fq4faFvog2/G+1lwqtomVB4UqQ0=
-SHA256 (exim-4.69.tar.gz) = VvkLkngC4LVjaelTXYJs+1VHmq+6ZbaJ7NgP2LFCpgg=
-SIZE (exim-4.69.tar.gz) = 2131237
+MD5 (exim-4.71.tar.gz) = JVU4GNyjPfBvBoyvseDo6A==
+RMD160 (exim-4.71.tar.gz) = jBXMJ1syAD07Vi/L63B5BU8oKK0=
+SHA1 (exim-4.71.tar.gz) = gZjHCJK6jOGhxVCw0ZvHWQgUxTU=
+SHA256 (exim-4.71.tar.gz) = NvdpRKn4mPrSxk4mjVS9dl5hm+BgzbAyBVP8Kh9L8v4=
+SIZE (exim-4.71.tar.gz) = 2002790
diff -ruN exim/files/Makefile exim-4.71/files/Makefile
--- exim/files/Makefile Fri Dec 11 21:17:22 2009
+++ exim-4.71/files/Makefile Fri Dec 11 23:04:24 2009
@@ -1,4 +1,4 @@
-# $Cambridge: exim/exim-src/src/EDITME,v 1.16 2005/10/12 15:45:38 ph10 Exp $
+# $Cambridge: exim/exim-src/src/EDITME,v 1.23 2009/11/20 12:18:19 nm4 Exp $
##################################################
# The Exim mail transport agent #
@@ -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.
-# BIN_DIRECTORY=/usr/exim/bin
+#BIN_DIRECTORY=/usr/exim/bin
#------------------------------------------------------------------------------
@@ -116,7 +116,7 @@
# don't exist. It will also install a default runtime configuration if this
# file does not exist.
-# CONFIGURE_FILE=/usr/exim/configure
+#CONFIGURE_FILE=/usr/exim/configure
# 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.
@@ -260,9 +260,9 @@
LOOKUP_DBM=yes
LOOKUP_LSEARCH=yes
+LOOKUP_DNSDB=yes
LOOKUP_CDB=yes
-LOOKUP_DNSDB=yes
LOOKUP_DSEARCH=yes
# LOOKUP_IBASE=yes
# LOOKUP_LDAP=yes
@@ -301,6 +301,19 @@
#------------------------------------------------------------------------------
+# The PCRE library is required for exim. There is no longer an embedded
+# version of the PCRE library included with the source code, instead you
+# must use a system library or build your own copy of PCRE.
+# In either case you must specify the library link info here. If the
+# PCRE header files are not in the standard search path you must also
+# modify the INCLUDE path (above)
+# The default setting of PCRE_LIBS should work on the vast majority of
+# systems
+
+PCRE_LIBS=-lpcre
+
+
+#------------------------------------------------------------------------------
# Additional libraries and include directories may be required for some
# lookup styles (e.g. LDAP, MYSQL or PGSQL). LOOKUP_LIBS is included only on
# the command for linking Exim itself, not on any auxiliary programs. You
@@ -475,6 +488,7 @@
AUTH_CRAM_MD5=yes
# AUTH_CYRUS_SASL=yes
+# AUTH_DOVECOT=yes
AUTH_PLAINTEXT=yes
AUTH_SPA=yes
@@ -535,7 +549,7 @@
# configuration of an authenticator for use with SMTP AUTH.) At least one
# operating system has an extended function called crypt16(), which uses up to
# 16 characters of a password (the normal crypt() uses only the first 8). Exim
-# supports the use of crypt16() as well as crypt().
+# supports the use of crypt16() as well as crypt() but note the warning below.
# You can always indicate a crypt16-encrypted password by preceding it with
# "{crypt16}". If you want the default handling (without any preceding
@@ -547,12 +561,25 @@
# an encrypted password with "{crypt}". For more details, see the description
# of the "crypteq" condition in the manual chapter on string expansions.
-# Since most operating systems do not include a crypt16() function (yet?), Exim
-# has one of its own, which it uses unless HAVE_CRYPT16 is defined. Normally,
-# that will be set in an OS-specific Makefile for the OS that have such a
-# function, so you should not need to bother with it.
+# Some operating systems do not include a crypt16() function, so Exim has one
+# of its own, which it uses unless HAVE_CRYPT16 is defined. Normally, that will
+# be set in an OS-specific Makefile for the OS that have such a function, so
+# you should not need to bother with it.
+# *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
+# It turns out that the above is not entirely accurate. As well as crypt16()
+# there is a function called bigcrypt() that some operating systems have. This
+# may or may not use the same algorithm, and both of them may be different to
+# Exim's built-in crypt16() that is used unless HAVE_CRYPT16 is defined.
+#
+# However, since there is now a move away from the traditional crypt()
+# functions towards using SHA1 and other algorithms, tidying up this area of
+# Exim is seen as very low priority. In practice, if you need to, you can
+# define DEFAULT_CRYPT to the name of any function that has the same interface
+# as the traditional crypt() function.
+# *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
+
#------------------------------------------------------------------------------
# Exim can be built to support the SMTP STARTTLS command, which implements
# Transport Layer Security using SSL (Secure Sockets Layer). To do this, you
@@ -629,7 +656,7 @@
# %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:
-LOG_FILE_PATH=/var/spool/exim/logs/%s.log
+# LOG_FILE_PATH=/var/log/exim_%slog
# 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
@@ -640,7 +667,7 @@
# You can also configure Exim to use syslog, instead of or as well as log
# files, by settings such as these
-# LOG_FILE_PATH=syslog
+LOG_FILE_PATH=syslog
# LOG_FILE_PATH=syslog:/var/log/exim_%slog
# The first of these uses only syslog; the second uses syslog and also writes
@@ -845,7 +872,7 @@
# USE_READLINE=yes
-# You may need to add -ldl to EXTRA_LIBS when you set USE_READLINE=yes.
+# You may need to add -ldl to EXTRALIBS when you set USE_READLINE=yes.
# Note that this option adds to the size of the Exim binary, because the
# dynamic loading library is not otherwise included.
@@ -872,8 +899,10 @@
# 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
@@ -1102,5 +1131,21 @@
# messages become "invisible" to the normal management tools.
# SUPPORT_MOVE_FROZEN_MESSAGES=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.
+# Use it only when compiling Exim for your own use.
+#
+# Uncommenting this line enables the use of a runtime option called
+# disable_fsync, which can be used to stop Exim using fsync() to ensure that
+# files are written to disc before proceeding. When this is disabled, crashes
+# and hardware problems such as power outages can cause data to be lost. This
+# feature should only be used in very exceptional circumstances. YOU HAVE BEEN
+# WARNED.
+
+# ENABLE_DISABLE_FSYNC=yes
# End of EDITME for Exim 4.
diff -ruN exim/patches/patch-OS_Makefile-Default
exim-4.71/patches/patch-OS_Makefile-Default
--- exim/patches/patch-OS_Makefile-Default Fri Dec 11 21:17:22 2009
+++ exim-4.71/patches/patch-OS_Makefile-Default Fri Dec 11 21:33:11 2009
@@ -1,7 +1,7 @@
--- OS/Makefile-Default.orig Fri Feb 10 15:33:26 2006
+++ OS/Makefile-Default Wed Jan 30 23:03:20 2008
-@@ -71,7 +71,7 @@ PERL_COMMAND=/usr/bin/perl
-
+@@ -73,7 +73,7 @@ PERL_COMMAND=/usr/bin/perl
+
# CC contains the name of the C compiler to be used.
-CC=gcc
@@ -9,3 +9,12 @@
# CFLAGS contains flags to be passed to the compiler. Nothing is defaulted
+@@ -86,7 +86,7 @@ CC=gcc
+ # here; instead each OS-dependent Makefile contains a default setting if one
+ # is needed.
+
+-# LFLAGS=
++LFLAGS=-L$(LOCALBASE)/lib
+
+
+ # PCRE_LIBS contains the library to be linked for PCRE
diff -ruN exim/pkg/DESCR exim-4.71/pkg/DESCR
--- exim/pkg/DESCR Fri Dec 11 21:17:22 2009
+++ exim-4.71/pkg/DESCR Thu Oct 16 20:46:54 2008
@@ -6,14 +6,13 @@
This port can be built with the following flavors:
-* no_exiscan - do not build content scanning into the exim4
- ACL system.
-* no_x11 - do not build eximon which requires X11
-* mysql - support mysql queries for lookups
-* postgresql - support postgresql queries for lookups
-* sqlite3 - support for sqlite queries for lookups
-* ldap - support ldap (OpenLDAP) queries for lookups
-* iconv - support character code conversions
-* sasl - support for SASL
+* no_exiscan - do not build content scanning into the exim4 ACL system
+* x11 - build eximon which requires X11
+* mysql - support mysql queries for lookups
+* postgresql - support postgresql queries for lookups
+* sqlite3 - support for sqlite queries for lookups
+* ldap - support ldap (OpenLDAP) queries for lookups
+* dovecot - support dovecot authentication
+* sasl - support for SASL
All these flavors are independent of each other.
diff -ruN exim/pkg/MESSAGE exim-4.71/pkg/MESSAGE
--- exim/pkg/MESSAGE Fri Dec 11 21:17:22 2009
+++ exim-4.71/pkg/MESSAGE Tue Oct 28 19:49:06 2008
@@ -1,6 +1,18 @@
-If you intend replacing sendmail with exim, then don't
-forget to modify /etc/mailer.conf accordingly; see
-mailwrapper(8).
+To replace sendmail with exim you have to change /etc/mailer.conf to:
+
+sendmail /usr/local/bin/exim
+send-mail /usr/local/bin/exim
+mailq /usr/local/bin/exim -bp
+newaliases /usr/bin/true
+
+See mailwrapper(8) for more information.
+
+NOTE: do not forget to add sendmail_flags="-bd -q30m" to
+ /etc/rc.conf.local to startup exim correctly.
+
+NOTE: do not forget to remove the "sendmail clientmqueue runner"
+ from root's crontab.
+
A perl script may help converting from exim-3.xx config
files and has been installed in
diff -ruN exim/pkg/PFRAG.no-no_x11 exim-4.71/pkg/PFRAG.no-no_x11
--- exim/pkg/PFRAG.no-no_x11 Fri Dec 11 21:17:22 2009
+++ exim-4.71/pkg/PFRAG.no-no_x11 Thu Jan 1 01:00:00 1970
@@ -1,3 +0,0 @@
-...@comment $OpenBSD: PFRAG.no-no_x11,v 1.4 2009/07/22 10:48:31 sthen Exp $
-bin/eximon
-...@bin bin/eximon.bin
diff -ruN exim/pkg/PFRAG.x11 exim-4.71/pkg/PFRAG.x11
--- exim/pkg/PFRAG.x11 Thu Jan 1 01:00:00 1970
+++ exim-4.71/pkg/PFRAG.x11 Thu Oct 16 20:37:52 2008
@@ -0,0 +1,3 @@
+...@comment $OpenBSD: PFRAG.x11,v 1.3 2004/09/15 09:09:42 espie Exp $
+bin/eximon
+bin/eximon.bin
diff -ruN exim/pkg/PLIST exim-4.71/pkg/PLIST
--- exim/pkg/PLIST Fri Dec 11 21:17:22 2009
+++ exim-4.71/pkg/PLIST Fri Dec 11 22:03:57 2009
@@ -28,7 +28,7 @@
share/examples/exim/configure
@sample ${SYSCONFDIR}/exim/configure
share/examples/exim/convert4r4
-!%%no_x11%%
+!%%x11%%
@owner _exim
@group _exim
@sample /var/spool/exim/