aboutsummaryrefslogtreecommitdiffstats
path: root/mail/exim
diff options
context:
space:
mode:
authorsheldonh <sheldonh@FreeBSD.org>2002-09-12 18:09:02 +0800
committersheldonh <sheldonh@FreeBSD.org>2002-09-12 18:09:02 +0800
commitf8408b8bd28d68095a62ee8ee726e57ebd2bcd98 (patch)
tree4e7cae6bdd75447720eeac36662c352a9219343f /mail/exim
parent32522f97b03178aa71aa6eab4952edd91064ccec (diff)
downloadfreebsd-ports-gnome-f8408b8bd28d68095a62ee8ee726e57ebd2bcd98.tar.gz
freebsd-ports-gnome-f8408b8bd28d68095a62ee8ee726e57ebd2bcd98.tar.zst
freebsd-ports-gnome-f8408b8bd28d68095a62ee8ee726e57ebd2bcd98.zip
I agree with the Exim community that the exim-4.xx has reached production
quality. Move exim to exim-old for folks who need exim-3.xx, because the configuration file for exim-4.xx is not backward compatible. Move exim-devel to exim, removing NO_LATEST_LINK: repo-copy exim -> exim-old copy over exim-devel -> exim retire exim-devel Slave ports are intended for use with the exim port, as before, so they now build and install for exim-4.xx.
Diffstat (limited to 'mail/exim')
-rw-r--r--mail/exim/Makefile61
-rw-r--r--mail/exim/distinfo4
-rw-r--r--mail/exim/files/POST-INSTALL-NOTES29
-rw-r--r--mail/exim/files/patch-..::exim-texinfo-3.30::doc::spec.texinfo22
-rw-r--r--mail/exim/files/patch-scripts::exim_install41
-rw-r--r--mail/exim/files/patch-src::EDITME169
-rw-r--r--mail/exim/files/patch-src::configure.default59
-rw-r--r--mail/exim/files/patch-xxx::no_fsync103
-rw-r--r--mail/exim/pkg-install11
-rw-r--r--mail/exim/pkg-plist14
10 files changed, 201 insertions, 312 deletions
diff --git a/mail/exim/Makefile b/mail/exim/Makefile
index cb036e5fac46..b5d4a5710276 100644
--- a/mail/exim/Makefile
+++ b/mail/exim/Makefile
@@ -6,17 +6,25 @@
#
PORTNAME= exim
-PORTVERSION= 3.36
+PORTVERSION= ${EXIM_VERSION}
CATEGORIES= mail
-MASTER_SITES= ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/exim3/ \
- http://www.exim.org/ftp/exim3/ \
- ftp://ftp.is.co.za/networking/mail/transport/exim/exim3/
-DISTFILES= exim-3.36.tar.bz2 exim-texinfo-3.30.tar.bz2
+MASTER_SITES= ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/exim4/ \
+ http://www.exim.org/ftp/exim4/ \
+ ftp://ftp.is.co.za/networking/mail/transport/exim/exim4/
+DISTFILES= exim-${EXIM_VERSION}.tar.bz2 \
+ exim-texinfo-${EXIM_DOCVERSION}.tar.bz2
MAINTAINER= sheldonh@FreeBSD.org
USE_BZIP2= yes
+MAN8= exim.8
+
+EXIM_VERSION= 4.10
+EXIM_DOCVERSION= 4.10
+
+PLIST_SUB+= EXIM_VERSION="${EXIM_VERSION}"
+
.if defined(NOPORTDOCS)
PKGMESSAGE= ${FILESDIR}/POST-INSTALL-NOTES
.endif
@@ -30,11 +38,13 @@ MAKE_ENV+= OSTYPE=${OPSYS} ARCHTYPE=${MACHINE_ARCH}
# Define WITH_TCP_WRAPPERS, WITH_LDAP, WITH_MYSQL, and WITH_PGSQL to
# link against libwrap, an LDAP library (see below), liblibmysqlclient
-# and libpq respectively.
+# and libpq respectively. Define WITH_PWCHECK to link against libsasl
+# for SMTP AUTH authentication via the Cyrus SASL pwcheck daemon.
#WITH_TCP_WRAPPERS= yes
#WITH_LDAP= yes
#WITH_MYSQL= yes
#WITH_PGSQL= yes
+#WITH_PWCHECK= yes
# Define WITHOUT_IPV6 to exclude IPv6 support from the compiled exim
# binary. Exim compiled with IPv6 support will still operate on
@@ -48,6 +58,11 @@ MAKE_ENV+= OSTYPE=${OPSYS} ARCHTYPE=${MACHINE_ARCH}
# for these in the ports tree.
LDAP_LIB_TYPE?=OPENLDAP1
+# DB_LIB_VERSION is the version of the Berkeley DB library to use, and
+# may be 1, which corresponds to version 1.85 in the base system, or 4
+# which depends on the databases/db4 port.
+DB_LIB_VERSION?=1
+
# The following options may be defined to turn off support for various
# features that this port enables by default.
#
@@ -84,6 +99,10 @@ RUN_DEPENDS= ${LOCALBASE}/sbin/eximon:${PORTSDIR}/mail/exim-monitor
.include <bsd.port.pre.mk>
+PORTDOC_FILES= Exim3.upgrade Exim4.upgrade OptionLists.txt README \
+ dbm.discuss.txt exim.8 filter.txt pcre.txt pcretest.txt \
+ spec.txt
+
.if ${OSVERSION} < 400014
WITHOUT_IPV6= yes
.endif
@@ -124,6 +143,16 @@ SEDLIST+= -e 's,XX_LDAP_[^ ]*_XX,,' \
-e 's,^LDAP_LIB_TYPE=,\#LDAP_LIB_TYPE=,'
.endif
+.if (${DB_LIB_VERSION} == 1)
+DB_LIBS=
+.elif (${DB_LIB_VERSION} == 4)
+DB_LIBS= -ldb4
+LIB_DEPENDS+= db4.0:${PORTSDIR}/databases/db4
+.else
+.error DB_LIB_VERSION must be either 1 or 4
+.endif
+SEDLIST+= -e 's,XX_DB_LIBS_XX,${DB_LIBS},'
+
.if defined(WITH_MYSQL)
LIB_DEPENDS+= mysqlclient.10:${PORTSDIR}/databases/mysql323-client
SEDLIST+= -e 's,XX_MYSQL_LIBS_XX,-L${LOCALBASE}/lib/mysql -lmysqlclient,' \
@@ -133,6 +162,12 @@ SEDLIST+= -e 's,XX_MYSQL_LIBS_XX,-L${LOCALBASE}/lib/mysql -lmysqlclient,' \
SEDLIST+= -e 's,XX_MYSQL_[^ ]*_XX,,'
.endif
+.if defined(WITH_PWCHECK)
+RUN_DEPENDS+= ${LOCALBASE}/sbin/pwcheck:${PORTSDIR}/security/cyrus-sasl
+SEDLIST+= -e 's,^\# SUPPORT_CYRUS_PWCHECK=,SUPPORT_CYRUS_PWCHECK=,' \
+ -e 's,^\# CYRUS_PWCHECK_SOCKET=,CYRUS_PWCHECK_SOCKET=,'
+.endif
+
.if !defined(WITHOUT_PAM)
SEDLIST+= -e 's,XX_PAM_LIBS_XX,-lpam,' \
-e 's,^\# SUPPORT_PAM=,SUPPORT_PAM=,'
@@ -161,7 +196,8 @@ SEDLIST+= -e 's,XX_PGSQL_[^ ]*_XX,,'
SEDLIST+= -e 's,^\# HAVE_IPV6=,HAVE_IPV6=,'
.endif
-.if !defined(WITH_PGSQL) && !defined(WITH_MYSQL) && !defined(WITH_LDAP)
+.if !defined(WITH_PGSQL) && !defined(WITH_MYSQL) && !defined(WITH_LDAP) && \
+ ${DB_LIB_VERSION} == 1
SEDLIST+= -e 's,^LOOKUP_LIBS=,\#LOOKUP_LIBS=,' \
-e 's,^LOOKUP_INCLUDE=,\#LOOKUP_INCLUDE=,'
.endif
@@ -190,7 +226,7 @@ do-configure:
${MKDIR} ${WRKSRC}/Local
${SED} ${SEDLIST} < ${WRKSRC}/src/EDITME > ${WRKSRC}/Local/Makefile
cd ${WRKSRC}/doc && \
- for i in ../../exim-texinfo-3.30/doc/* ; do \
+ for i in ../../exim-texinfo-${EXIM_DOCVERSION}/doc/* ; do \
${LN} -sf $$i ; \
done
@@ -202,9 +238,12 @@ post-install:
.if !defined(NOPORTDOCS)
${MKDIR} ${PREFIX}/share/doc/exim
${INSTALL_DATA} ${FILESDIR}/POST-INSTALL-NOTES ${PREFIX}/share/doc/exim
- ${INSTALL_DATA} ${WRKSRC}/doc/filter.txt ${PREFIX}/share/doc/exim
- ${INSTALL_DATA} ${WRKSRC}/doc/oview.txt ${PREFIX}/share/doc/exim
- ${INSTALL_DATA} ${WRKSRC}/doc/spec.txt ${PREFIX}/share/doc/exim
+.for file in ${PORTDOC_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/doc/${file} ${PREFIX}/share/doc/exim
+.endfor
+.for file in ${MAN8}
+ ${INSTALL_MAN} ${WRKSRC}/doc/${file} ${PREFIX}/man/man8
+.endfor
.endif
@${CAT} ${PKGMESSAGE}
diff --git a/mail/exim/distinfo b/mail/exim/distinfo
index fa9420f07b61..afd4701097c9 100644
--- a/mail/exim/distinfo
+++ b/mail/exim/distinfo
@@ -1,2 +1,2 @@
-MD5 (exim-3.36.tar.bz2) = a18cbe15a2973714fe1aa68dffad63c4
-MD5 (exim-texinfo-3.30.tar.bz2) = 6400cc7988036991b6bbe7ed9b4d9eeb
+MD5 (exim-4.10.tar.bz2) = eb92cbba59bb2320b9912c46cd3fa4d0
+MD5 (exim-texinfo-4.10.tar.bz2) = 2a2a34a2457d249d568a58e985f263c0
diff --git a/mail/exim/files/POST-INSTALL-NOTES b/mail/exim/files/POST-INSTALL-NOTES
index 66b0a80a5c7a..da0ba53f9b66 100644
--- a/mail/exim/files/POST-INSTALL-NOTES
+++ b/mail/exim/files/POST-INSTALL-NOTES
@@ -1,33 +1,23 @@
The following documentation has been installed:
- info 'Exim Overview' -> Overview of Exim
info Exim -> Exim Specification (User Guide)
info 'Exim Filtering' -> Exim Filter Specification (for end-users)
In addition, plain text versions of these documents have been installed
as:
- ${PREFIX}/share/doc/exim/oview.txt
${PREFIX}/share/doc/exim/filter.txt
${PREFIX}/share/doc/exim/spec.txt
-Postscript, PDF and HTML versions of these documents are available in
-the ports tree as:
+Postscript, PDF, HTML and plain text versions of these documents, as well
+as a comprehensive FAQ list, are available at http://www.exim.org/ .
- ports/mail/exim-doc-postscript
- ports/mail/exim-doc-pdf
- ports/mail/exim-doc-html
-
-In addition, a comprehensive FAQ list is available at:
-
- http://www.exim.org/
-
-To use Exim instead of sendmail:
+To use Exim instead of sendmail on startup:
*) Create exim/configure from exim/configure.default .
*) Clear the sendmail queue and stop the sendmail daemon.
*) Adjust mailer.conf(5) as appropriate.
-*) Set the 'sendmail_enable' rc.conf(5) variable to 'NO'.
+*) Set the 'sendmail_enable' rc.conf(5) variable to 'NONE'.
*) Set the 'daily_status_include_submit_mailq' periodic.conf(5) variable
to 'NO'.
*) Start exim with '${PREFIX}/etc/rc.d/exim.sh start'.
@@ -37,3 +27,14 @@ You may also want to configure newsyslog(8) to rotate Exim log files:
/var/log/exim/mainlog mailnull:mail 640 7 * @T00 Z
/var/log/exim/rejectlog mailnull:mail 640 7 * @T00 Z
+NOTE TO OPERATORS UPGRADING FROM exim-3.xx:
+
+There was a big reworking of the way mail routing works for release
+4.00. Previously used "directors" were abolished, and all routing is
+now done by routers. Policy controls for incoming mail are now done by
+Access Control Lists instead of separate options. All this means that
+pre-4.00 configuration files have to be massively converted. If you
+are coming from a 3.xx release, please read the document in the file
+${PREFIX}/share/doc/exim/Exim4.upgrade, and allow some time to complete
+the upgrade.
+
diff --git a/mail/exim/files/patch-..::exim-texinfo-3.30::doc::spec.texinfo b/mail/exim/files/patch-..::exim-texinfo-3.30::doc::spec.texinfo
deleted file mode 100644
index 824276f27f63..000000000000
--- a/mail/exim/files/patch-..::exim-texinfo-3.30::doc::spec.texinfo
+++ /dev/null
@@ -1,22 +0,0 @@
---- ../exim-texinfo-3.30/doc/spec.texinfo.orig Tue Jun 12 12:20:49 2001
-+++ ../exim-texinfo-3.30/doc/spec.texinfo Tue Jan 15 17:19:46 2002
-@@ -20785,6 +20785,19 @@
- may be adequate for all your requirements if you are mainly interested in
- encrypting transfers, and not in secure identification.
-
-+However, many clients require that the certificate presented by Exim be a user
-+(also called "leaf" or "site") certificate, and not a self-signed certificate.
-+In this case, the self-signed certificate described above must be installed on
-+the client host as a trusted root certification authority and the certificate
-+used by Exim must be a user certificate signed with that self-signed
-+certificate.
-+
-+For information on creating self-signed CA certificates and using them to sign
-+user certificates, see the "General implementation overview" chapter of the
-+Open-source PKI Book, available online at:
-+
-+http://ospkibook.sourceforge.net/
-+
-
-
-
diff --git a/mail/exim/files/patch-scripts::exim_install b/mail/exim/files/patch-scripts::exim_install
index db0bc1168f0a..ea626829cc31 100644
--- a/mail/exim/files/patch-scripts::exim_install
+++ b/mail/exim/files/patch-scripts::exim_install
@@ -1,23 +1,14 @@
-*) Causes the configure file to be installed as a sample only. The
- administrator needs to rename this file to "activate" exim.
-
---- scripts/exim_install.orig Mon Aug 2 17:43:03 1999
-+++ scripts/exim_install Tue Aug 3 14:31:20 1999
-@@ -199,25 +199,20 @@
- fi
- done
-
--
--
--# If there is no configuration file, install the default.
-+# Install only a sample configuration, which encourages the admin to look
-+# at it, since Exim won't run without a configure file.
+--- scripts/exim_install.orig Fri Nov 23 17:31:15 2001
++++ scripts/exim_install Wed Dec 19 14:38:06 2001
+@@ -293,30 +293,15 @@
echo $com ""
-if [ ! -f ${CONFIGURE_FILE} ]; then
- echo $com Installing default configuration in ${CONFIGURE_FILE}
- echo $com because there is no existing configuration file.
+- echo ${MKDIR} -p `${DIRNAME} ${CONFIGURE_FILE}`
+- ${real} ${MKDIR} -p `${DIRNAME} ${CONFIGURE_FILE}`
- echo ${CP} ../src/configure.default ${CONFIGURE_FILE}
- ${real} ${CP} ../src/configure.default ${CONFIGURE_FILE}
+ echo $com Installing default configuration file in ${CONFIGURE_FILE%/*}/configure.default
@@ -29,9 +20,31 @@
echo $com "*** Exim installation ${ver}failed ***"
exit 1
fi
+- if [ ! -f /etc/aliases ]; then
+- echo $com '****'
+- echo $com Installing a dummy /etc/aliases file because you do not have
+- echo $com one, and the default configuration requires it. You should
+- echo $com edit /etc/aliases and at least create an alias for postmaster.
+- echo $com '***'
+- echo ${CP} ../src/aliases.default /etc/aliases
+- ${real} ${CP} ../src/aliases.default /etc/aliases
+- fi
-else
- echo $com Configuration file ${CONFIGURE_FILE} already exists
-fi
# Install info files if the directory is defined and the Texinfo
# source documentation is present.
+@@ -338,12 +323,6 @@
+ echo $com Info installation directory is ${INFO_DIRECTORY}
+ echo $com ""
+
+- makeinfo --no-split --output exim_overview.info ../doc/oview.texinfo
+- echo ${CP} exim_overview.info ${INFO_DIRECTORY}
+- ${real} ${CP} exim_overview.info ${INFO_DIRECTORY}
+- install-info --section="Exim" \
+- --entry "* Overview: (exim_overview). Overview of the Exim system" \
+- ${INFO_DIRECTORY}/exim_overview.info ${INFO_DIRECTORY}/dir
+ makeinfo --no-split --output exim.info ../doc/spec.texinfo
+ echo ${CP} exim.info ${INFO_DIRECTORY}
+ ${real} ${CP} exim.info ${INFO_DIRECTORY}
diff --git a/mail/exim/files/patch-src::EDITME b/mail/exim/files/patch-src::EDITME
index 4d0d3f202078..d397826ec925 100644
--- a/mail/exim/files/patch-src::EDITME
+++ b/mail/exim/files/patch-src::EDITME
@@ -1,134 +1,103 @@
---- src/EDITME.orig Fri Jan 19 11:32:06 2001
-+++ src/EDITME Mon Jun 11 09:45:26 2001
-@@ -103,7 +103,7 @@
- # installed in this directory. There is no default for this variable built into
- # the source files; it must be set in one of the local configuration files.
+--- src/EDITME.orig Mon Jul 22 10:59:47 2002
++++ src/EDITME Tue Jul 30 16:06:43 2002
+@@ -98,7 +98,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=XX_PREFIX_XX/sbin
- # The default distribution of Exim contains only the plain text form of the
-@@ -114,21 +114,21 @@
- # your info directory; "make install" will then build the info files and
- # install them there.
+ #------------------------------------------------------------------------------
+@@ -113,7 +113,7 @@
+ # directories if they don't exist. It will also install a default run time
+ # configuration if this file does not exist.
--# INFO_DIRECTORY=/usr/local/info
-+INFO_DIRECTORY=XX_PREFIX_XX/info
+-CONFIGURE_FILE=/usr/exim/configure
++CONFIGURE_FILE=XX_PREFIX_XX/etc/exim/configure
- # The compress command is used by the exicyclog script to compress old log
- # 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.
+ #------------------------------------------------------------------------------
+@@ -126,14 +126,14 @@
+ # owner of a local mailbox.) Specifying these values as root is very strongly
+ # discouraged. These values are compiled into the binary.
--COMPRESS_COMMAND=/opt/gnu/bin/gzip
-+COMPRESS_COMMAND=/usr/bin/gzip
- COMPRESS_SUFFIX=gz
+-EXIM_USER=
++EXIM_USER=mailnull
+ # If the setting of EXIM_USER is numeric (e.g. EXIM_USER=42), there must
+ # also be a setting of EXIM_GROUP. If, on the other hand, you use a name
+ # 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.
- # If the exigrep utility is fed compressed log files, it tries to uncompress
- # them using this command.
+-# EXIM_GROUP=
++EXIM_GROUP=mail
--ZCAT_COMMAND=/opt/gnu/bin/zcat
-+ZCAT_COMMAND=/usr/bin/zcat
+ # Many sites define a user called "exim", with an appropriate default group,
+ # and use
+@@ -269,8 +269,9 @@
+ # don't need to set LOOKUP_INCLUDE if the relevant directories are already
+ # specified in INCLUDE.
+-# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
+-# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq
++INCLUDE=-I XX_PREFIX_XX/include
++LOOKUP_INCLUDE=XX_MYSQL_INCLUDE_XX XX_PGSQL_INCLUDE_XX XX_LDAP_INCLUDE_XX
++LOOKUP_LIBS=XX_MYSQL_LIBS_XX XX_PGSQL_LIBS_XX XX_LDAP_LIBS_XX XX_DB_LIBS_XX
- # The runtime configuration file: This variable defines where Exim's runtime
-@@ -137,7 +137,7 @@
- # location of all other runtime files and directories can be changed in the
- # runtime configuration file.
--CONFIGURE_FILE=/usr/exim/configure
-+CONFIGURE_FILE=XX_PREFIX_XX/etc/exim/configure
+ #------------------------------------------------------------------------------
+@@ -281,7 +282,7 @@
+ # 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
- # In some installations there may be multiple machines sharing file systems,
-@@ -231,8 +231,8 @@
- # "security" setting, which controls how privilege is released (setuid vs
- # seteuid).
--# EXIM_UID=
--# EXIM_GID=
-+EXIM_UID=26
-+EXIM_GID=6
+@@ -316,7 +317,7 @@
+ # settings commented out.
- # Compiling the Exim monitor: If you want to compile the Exim monitor,
-@@ -243,7 +243,7 @@
- # are defaulted in the OS/Makefile-Default file, and can be overridden
- # in local OS-specific make files.
+ # SUPPORT_TLS=yes
+-# TLS_LIBS=-lssl -lcrypto
++TLS_LIBS=-lssl -lcrypto
--EXIM_MONITOR=eximon.bin
-+#EXIM_MONITOR=eximon.bin
+ # If you are running Exim as a server, note that just building it with TLS
+ # support is not all you need to do. You also need to set up a suitable
+@@ -358,7 +359,7 @@
+ # Once you have done this, "make install" will build the info files and
+ # install them in the directory you have defined.
+-# INFO_DIRECTORY=/usr/share/info
++INFO_DIRECTORY=XX_PREFIX_XX/info
- # Compiling in support for embedded Perl: If you want to be able to
-@@ -286,7 +286,7 @@
- # "panic", or "reject" to form the final file name. For example, some
- # installations may want something like this:
+
+ #------------------------------------------------------------------------------
+@@ -371,7 +372,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/log/exim_%slog
+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
-@@ -352,6 +352,9 @@
-
- # LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
- # LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq
-+INCLUDE=-I XX_PREFIX_XX/include
-+LOOKUP_INCLUDE=XX_MYSQL_INCLUDE_XX XX_PGSQL_INCLUDE_XX XX_LDAP_INCLUDE_XX
-+LOOKUP_LIBS=XX_MYSQL_LIBS_XX XX_PGSQL_LIBS_XX XX_LDAP_LIBS_XX
+@@ -474,7 +475,7 @@
- # If you have set LDAP=yes, you should set LDAP_LIB_TYPE to indicate which LDAP
- # library you have. Unfortunately, though most of their functions are the
-@@ -365,6 +368,7 @@
- # LDAP_LIB_TYPE=OPENLDAP2
- # LDAP_LIB_TYPE=NETSCAPE
- # LDAP_LIB_TYPE=SOLARIS
-+LDAP_LIB_TYPE=XX_LDAP_TYPE_XX
+ # USE_TCP_WRAPPERS=yes
+ # CFLAGS=-O -I/usr/local/include
+-# EXTRALIBS_EXIM=-L/usr/local/lib -lwrap
++EXTRALIBS=XX_TCP_WRAPPERS_LIBS_XX XX_PAM_LIBS_XX
- # If you don't set any of these, Exim assumes the original University of
- # Michigan (OpenLDAP 1) library.
-@@ -411,7 +415,7 @@
- # the file name, allowing sites that run two separate daemons to distinguish
- # them. Some installations may want something like this
+ # but of course there may need to be other things in CFLAGS and EXTRALIBS_EXIM
+ # as well.
+@@ -695,7 +696,7 @@
+ # (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:
--# PID_FILE_PATH=/var/lock/exim%s.pid
-+PID_FILE_PATH=/var/run/exim%s.pid
+-# PID_FILE_PATH=/var/lock/exim.pid
++PID_FILE_PATH=/var/run/exim.pid
# If PID_FILE_PATH is not defined, Exim writes a file in its spool directory
- # (see SPOOL_DIRECTORY below) with the name "exim-daemon.pid" for the standard
-@@ -460,7 +464,7 @@
- # uid and gid.
-
- # Many installations will want something like this:
--# SPOOL_DIRECTORY=/var/spool/exim
-+SPOOL_DIRECTORY=/var/spool/exim
-
- # Others may prefer to keep all Exim things under one directory:
- # SPOOL_DIRECTORY=/usr/exim/spool
-@@ -525,7 +529,7 @@
- # with TLS support.
-
- # SUPPORT_TLS=yes
--# TLS_LIBS=-lssl -lcrypto
-+TLS_LIBS=-lssl -lcrypto
-
- # If you are running Exim as a server, note that just building it with TLS
- # support is not usually all you need to do. You normally need to set up a
-@@ -575,5 +579,14 @@
- # chapter on building and installing Exim.
-
- # USE_TCP_WRAPPERS=yes
-+EXTRALIBS=XX_TCP_WRAPPERS_LIBS_XX XX_PAM_LIBS_XX
-+
-+
-+# IPv6 is coming. Exim has experimental support that has been tried out on
-+# one or two OS. See the file README.IPV6 for the current status of this
-+# support. Do not set this option unless you are working on IPv6 and know
-+# what you are doing.
-+
-+# HAVE_IPV6=yes
-
- # End of EDITME
+ # using the name "exim-daemon.pid".
diff --git a/mail/exim/files/patch-src::configure.default b/mail/exim/files/patch-src::configure.default
index 9b24cf348686..768660800cc6 100644
--- a/mail/exim/files/patch-src::configure.default
+++ b/mail/exim/files/patch-src::configure.default
@@ -1,51 +1,40 @@
---- src/configure.default.orig Thu Jun 14 19:39:54 2001
-+++ src/configure.default Thu Jun 14 20:10:52 2001
-@@ -99,7 +99,9 @@
- # normal user. This isn't usually a problem, as most sites have an alias for
- # root that redirects such mail to a human administrator.
+--- src/configure.default.orig Fri Nov 23 17:31:16 2001
++++ src/configure.default Tue Dec 18 23:34:07 2001
+@@ -147,6 +147,8 @@
+ # were a normal user. This isn't usually a problem, as most sites have an alias
+ # for root that redirects such mail to a human administrator.
--never_users = root
+exim_user = mailnull
+exim_group = mail
-+never_users = root : mailnull
+ never_users = root
- # The use of your host as a mail relay by any host, including the local host
-@@ -122,6 +124,8 @@
- # See the section of the manual entitled "Control of relaying" for more
- # information.
-
-+host_accept_relay = 127.0.0.1
-+
-
- # The setting below causes Exim to do a reverse DNS lookup on all incoming
- # IP calls, in order to get the true host name. If you feel this is too
-@@ -230,8 +234,8 @@
- delivery_date_add
- envelope_to_add
- return_path_add
--# group = mail
--# mode = 0660
-+ group = mail
-+ mode = 0660
-
-
- # This transport is used for handling pipe deliveries generated by alias
-@@ -300,7 +304,8 @@
- driver = aliasfile
- file = /etc/aliases
- search_type = lsearch
+@@ -365,7 +367,8 @@
+ allow_fail
+ allow_defer
+ data = ${lookup{$local_part}lsearch{/etc/aliases}}
-# user = exim
+ user = mailnull
+ group = mail
file_transport = address_file
pipe_transport = address_pipe
-@@ -334,6 +339,7 @@
+@@ -399,6 +402,7 @@
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
-+ match_directory = !^/nonexistent
++ condition = ${if exists{$home/.forward} {yes} {no} }
+
+
+ # This router matches local user mailboxes.
+@@ -442,8 +446,8 @@
+ delivery_date_add
+ envelope_to_add
+ return_path_add
+-# group = mail
+-# mode = 0660
++ group = mail
++ mode = 0660
- # This director matches local user mailboxes.
+ # This transport is used for handling pipe deliveries generated by alias or
diff --git a/mail/exim/files/patch-xxx::no_fsync b/mail/exim/files/patch-xxx::no_fsync
deleted file mode 100644
index fc0f4791ac86..000000000000
--- a/mail/exim/files/patch-xxx::no_fsync
+++ /dev/null
@@ -1,103 +0,0 @@
-diff -udrN src.orig/accept.c src/accept.c
---- src.orig/accept.c Thu Sep 6 15:25:28 2001
-+++ src/accept.c Thu Sep 6 15:28:03 2001
-@@ -2140,7 +2140,7 @@
- anything until the terminating dot line is sent. */
-
- if (fflush(data_file) == EOF || ferror(data_file) ||
-- fsync(fileno(data_file)) < 0 || (accept_ferror)(fin))
-+ (perform_fsync && fsync(fileno(data_file))) < 0 || (accept_ferror)(fin))
- {
- char *msg_errno = strerror(errno);
- BOOL input_error = (accept_ferror)(fin) != 0;
-diff -udrN src.orig/deliver.c src/deliver.c
---- src.orig/deliver.c Thu Sep 6 15:25:28 2001
-+++ src/deliver.c Thu Sep 6 15:29:22 2001
-@@ -578,7 +578,8 @@
- {
- BOOL return_output = FALSE;
- struct stat statbuf;
-- fsync(addr->return_file);
-+ if (perform_fsync)
-+ fsync(addr->return_file);
-
- /* If there is no output, do nothing. */
-
-@@ -1580,7 +1581,7 @@
-
- /* Ensure the journal file is pushed out to disc. */
-
-- if (fsync(journal_fd) < 0)
-+ if (perform_fsync && fsync(journal_fd) < 0)
- log_write(0, LOG_MAIN|LOG_PANIC, "failed to fsync journal: %s",
- strerror(errno));
- }
-diff -udrN src.orig/globals.c src/globals.c
---- src.orig/globals.c Thu Sep 6 15:25:28 2001
-+++ src/globals.c Thu Sep 6 15:24:49 2001
-@@ -494,6 +494,7 @@
- BOOL parse_allow_group = FALSE;
- BOOL parse_found_group = FALSE;
- char *percent_hack_domains = NULL;
-+BOOL perform_fsync = TRUE;
- char *pid_file_path = PID_FILE_PATH
- "\0<--------------Space to patch pid_file_path->";
- BOOL preserve_message_logs = FALSE;
-diff -udrN src.orig/globals.h src/globals.h
---- src.orig/globals.h Thu Sep 6 15:25:28 2001
-+++ src/globals.h Thu Sep 6 15:41:35 2001
-@@ -364,6 +364,7 @@
- extern BOOL parse_allow_group; /* Allow group syntax */
- extern BOOL parse_found_group; /* In the middle of a group */
- extern char *percent_hack_domains; /* Local domains for which '% operates */
-+extern BOOL perform_fsync; /* Use fsync() to flush to disk */
- extern char *pid_file_path; /* For writing daemon pids */
- extern BOOL preserve_message_logs; /* Save msglog files */
- extern char *primary_hostname; /* Primary name of this computer */
-diff -udrN src.orig/readconf.c src/readconf.c
---- src.orig/readconf.c Thu Sep 6 15:25:28 2001
-+++ src/readconf.c Thu Sep 6 15:24:19 2001
-@@ -81,6 +81,7 @@
- { "finduser_retries", opt_int, &finduser_retries },
- { "forbid_domain_literals", opt_bool, &forbid_domain_literals },
- { "freeze_tell_mailmaster", opt_bool, &freeze_tell_mailmaster },
-+ { "fsync", opt_bool, &perform_fsync },
- { "gecos_name", opt_stringptr, &gecos_name },
- { "gecos_pattern", opt_stringptr, &gecos_pattern },
- { "headers_check_syntax", opt_bool, &headers_check_syntax },
-diff -udrN src.orig/spool_out.c src/spool_out.c
---- src.orig/spool_out.c Thu Sep 6 15:25:28 2001
-+++ src/spool_out.c Thu Sep 6 15:29:51 2001
-@@ -277,7 +277,7 @@
- just pushes it out of C, and fclose() doesn't guarantee to do the write
- either. That's just the way Unix works... */
-
--if (fsync(fileno(f)) < 0)
-+if (perform_fsync && fsync(fileno(f)) < 0)
- return spool_write_error(where, errmsg, "sync", temp_name, f);
-
- /* Get the size of the file, and close it. */
-diff -udrN src.orig/transports/appendfile.c src/transports/appendfile.c
---- src.orig/transports/appendfile.c Thu Sep 6 15:25:28 2001
-+++ src/transports/appendfile.c Thu Sep 6 15:31:40 2001
-@@ -2556,7 +2556,7 @@
- /* Force out the remaining data to check for any errors; some OS don't allow
- fsync() to be called for a FIFO. */
-
--if (yield == OK && !isfifo && fsync(fd) < 0) yield = DEFER;
-+if (perform_fsync && yield == OK && !isfifo && fsync(fd) < 0) yield = DEFER;
-
- /* Handle error while writing the file. Control should come here directly after
- the error, with the reason in errno. In the case of expansion failure in prefix
-diff -udrN src.orig/transports/smtp.c src/transports/smtp.c
---- src.orig/transports/smtp.c Thu Sep 6 15:25:28 2001
-+++ src/transports/smtp.c Thu Sep 6 15:31:55 2001
-@@ -1462,7 +1462,7 @@
-
- /* Ensure the journal file is pushed out to disc. */
-
-- if (fsync(journal_fd) < 0)
-+ if (perform_fsync && fsync(journal_fd) < 0)
- log_write(0, LOG_MAIN|LOG_PANIC, "failed to fsync journal: %s",
- strerror(errno));
- }
diff --git a/mail/exim/pkg-install b/mail/exim/pkg-install
index 69539a8c560f..40ad765f2fcf 100644
--- a/mail/exim/pkg-install
+++ b/mail/exim/pkg-install
@@ -13,19 +13,16 @@
PKG_PREFIX=${PKG_PREFIX:=/usr/local}
-uid=26
-gid=6
user=mailnull
group=mail
if [ "$2" = "PRE-INSTALL" ]; then
- # uid=26(mailnull) gid=26(mailnull) groups=26(mailnull)
- if ! /usr/bin/id ${uid} | /usr/bin/grep -q "uid=${uid}(${user})"; then
- echo "Exim requires user ${user} (UID ${uid}). Please update your system." 1>&2
+ if ! /usr/bin/id ${user} > /dev/null; then
+ echo "Exim requires user ${user}. Please update your system." 1>&2
exit 1
fi
- if ! /usr/bin/grep -q "^${group}:[^:]*:${gid}:" < /etc/group; then
- echo "Exim requires group ${group} (GID ${gid}). Please update your system." 1>&2
+ if ! /usr/bin/grep -q "^${group}:" < /etc/group; then
+ echo "Exim requires group ${group}. Please update your system." 1>&2
exit 1
fi
fi
diff --git a/mail/exim/pkg-plist b/mail/exim/pkg-plist
index 1252a52c780b..8b2dd3f0bc43 100644
--- a/mail/exim/pkg-plist
+++ b/mail/exim/pkg-plist
@@ -1,9 +1,10 @@
etc/exim/configure.default
etc/rc.d/exim.sh
-info/exim_overview.info
info/exim.info
info/exim_filter.info
sbin/exim
+sbin/exim-%%EXIM_VERSION%%-1
+sbin/exim_checkaccess
sbin/exim_dumpdb
sbin/exim_fixdb
sbin/exim_lock
@@ -16,13 +17,18 @@ sbin/exigrep
sbin/eximstats
sbin/exiqsumm
%%PORTDOCS%%share/doc/exim/POST-INSTALL-NOTES
+%%PORTDOCS%%share/doc/exim/Exim3.upgrade
+%%PORTDOCS%%share/doc/exim/Exim4.upgrade
+%%PORTDOCS%%share/doc/exim/OptionLists.txt
+%%PORTDOCS%%share/doc/exim/README
+%%PORTDOCS%%share/doc/exim/dbm.discuss.txt
+%%PORTDOCS%%share/doc/exim/exim.8
%%PORTDOCS%%share/doc/exim/filter.txt
-%%PORTDOCS%%share/doc/exim/oview.txt
+%%PORTDOCS%%share/doc/exim/pcre.txt
+%%PORTDOCS%%share/doc/exim/pcretest.txt
%%PORTDOCS%%share/doc/exim/spec.txt
-@unexec install-info --delete %D/info/exim_overview.info %D/info/dir
@unexec install-info --delete %D/info/exim.info %D/info/dir
@unexec install-info --delete %D/info/exim_filter.info %D/info/dir
-@exec install-info --section="Exim" --entry "* Exim Overview: (exim_overview). Overview of the Exim system" %D/info/exim_overview.info %D/info/dir
@exec install-info --section="Exim" --entry "* Exim Specification: (exim). Exim manual" %D/info/exim.info %D/info/dir
@exec install-info --section="Exim" --entry "* Exim Filtering: (exim_filter). Filtering mail with Exim" %D/info/exim_filter.info %D/info/dir
@dirrm etc/exim