diff options
author | Sheldon Hearn <sheldonh@FreeBSD.org> | 2002-09-12 10:09:02 +0000 |
---|---|---|
committer | Sheldon Hearn <sheldonh@FreeBSD.org> | 2002-09-12 10:09:02 +0000 |
commit | 71de2357c8078808b1c579b08204feee10728259 (patch) | |
tree | bf28ece9f501d707a007b0b3b4a7ffa6f192e483 /mail/exim | |
parent | Fix plist, bump revision. (diff) |
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.
Notes
Notes:
svn path=/head/; revision=66190
Diffstat (limited to 'mail/exim')
-rw-r--r-- | mail/exim/Makefile | 61 | ||||
-rw-r--r-- | mail/exim/distinfo | 4 | ||||
-rw-r--r-- | mail/exim/files/POST-INSTALL-NOTES | 29 | ||||
-rw-r--r-- | mail/exim/files/patch-..::exim-texinfo-3.30::doc::spec.texinfo | 22 | ||||
-rw-r--r-- | mail/exim/files/patch-scripts::exim_install | 41 | ||||
-rw-r--r-- | mail/exim/files/patch-src::EDITME | 169 | ||||
-rw-r--r-- | mail/exim/files/patch-src::configure.default | 59 | ||||
-rw-r--r-- | mail/exim/files/patch-xxx::no_fsync | 103 | ||||
-rw-r--r-- | mail/exim/pkg-install | 11 | ||||
-rw-r--r-- | mail/exim/pkg-plist | 14 |
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 |