diff --git a/mail/exim/Makefile b/mail/exim/Makefile index 20c5eda544a6..9737ed0d6153 100644 --- a/mail/exim/Makefile +++ b/mail/exim/Makefile @@ -1,654 +1,648 @@ PORTNAME= exim PORTVERSION?= ${EXIM_VERSION} PORTREVISION?= 0 CATEGORIES= mail MASTER_SITES= EXIM:exim MASTER_SITE_SUBDIR= /exim4/:exim \ /exim4/fixes/:exim \ /exim4/old/:exim DISTNAME= ${PORTNAME}-${EXIM_VERSION} DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:exim DIST_SUBDIR= exim EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= fluffy@FreeBSD.org COMMENT?= High performance MTA for Unix systems on the Internet WWW= https://www.exim.org/ LICENSE= GPLv2 BUILD_DEPENDS= p5-File-FcntlLock>0:devel/p5-File-FcntlLock RUN_DEPENDS= p5-File-FcntlLock>0:devel/p5-File-FcntlLock USES= compiler cpe tar:bzip2 perl5 USE_CSTD= c99 # Exim build system is job unsafe atm MAKE_JOBS_UNSAFE= yes # One can tune the following "hidden" knobs: # - EXIM_USER: user exim is running as; # - EXIM_GROUP: ditto for the group; # - LOGDIR: where Exim logs will be put; # - LOG_FILE_PATH: path where '%s' will be substituted with # the target name (main, reject, etc); # - CONFIG_FILE_PATH: path to the default configuration file; # - ALT_CONFIG_PREFIX: path to the default prefix for all # configuration files, excluding the main one; # will be effective only when WITH_ALT_CONFIG_PREFIX # will be set via OPTIONS. .if make(makesum) && !defined(FETCH_ALL) .error "You forgot to define FETCH_ALL to create the sane distinfo" .endif .include "options" OPTIONS_SUB= yes AUTH_SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 BDB_USES= bdb DMARC_LIB_DEPENDS= libopendmarc.so:mail/opendmarc EXIMON_USES= xorg EXIMON_USE= xorg=x11,xaw,xext,xmu,xt GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls ICONV_USES= iconv:lib,build INTERNATIONAL_LIB_DEPENDS= libidn.so:dns/libidn libidn2.so:dns/libidn2 LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb MYSQL_USES= mysql OPENLDAP_USES= ldap PGSQL_LIB_DEPENDS= libicudata.so:devel/icu PGSQL_USES= pgsql pkgconfig REDIS_LIB_DEPENDS= libhiredis.so:databases/hiredis SASLAUTHD_RUN_DEPENDS= ${LOCALBASE}/sbin/saslauthd:security/cyrus-sasl2-saslauthd SA_EXIM_RUN_DEPENDS= ${LOCALBASE}/bin/spamc:mail/spamassassin SPF_LIB_DEPENDS= libspf2.so:mail/libspf2 SQLITE_LIB_DEPENDS= libicudata.so:devel/icu SQLITE_USES= pkgconfig sqlite #DEBIAN_PATCHES_PREFIX= ${FILESDIR}/debian/75 #EXTRA_PATCHES= \ # ${DEBIAN_PATCHES_PREFIX}_01-Fix-exit-on-attempt-to-rewrite-a-malformed-address.-.patch:-p1 \ # ${DEBIAN_PATCHES_PREFIX}_05-SPF-fix-memory-accounting-for-error-case.patch:-p1 .include # OCSP is supported for openssl only .if ${PORT_OPTIONS:MOCSP} .if ! ${PORT_OPTIONS:MTLS} IGNORE= you cannot enable OCSP stapling without TLS support .elif ${PORT_OPTIONS:MGNUTLS} IGNORE= you cannot enable OCSP stapling with gnutls .endif .endif # DMARC implies SPF and DKIM .if ${PORT_OPTIONS:MDMARC} .if ! ${PORT_OPTIONS:MSPF} || ! ${PORT_OPTIONS:MDKIM} IGNORE= you cannot enable DMARC without SPF and DKIM support .endif .endif # ARC implies SPF and DKIM .if ${PORT_OPTIONS:MARC} .if ! ${PORT_OPTIONS:MSPF} || ! ${PORT_OPTIONS:MDKIM} IGNORE= you cannot enable ARC without SPF and DKIM support .endif .endif # DANE implies DNSSEC .if ${PORT_OPTIONS:MDANE} .if ! ${PORT_OPTIONS:MDNSSEC} || ! ${PORT_OPTIONS:MTLS} IGNORE= you cannot enable DANE without DNSSEC support or without TLS support .endif .endif .if ${PORT_OPTIONS:MSA_EXIM} || defined(FETCH_ALL) +BROKEN= Unmaintained extension MASTER_SITES+= http://marc.merlins.org/linux/exim/files/:sa_exim \ SF/sa-exim/sa-exim/${SA_EXIM_VERSION}:sa_exim DISTFILES+= sa-exim-${SA_EXIM_VERSION}.tar.gz:sa_exim EXTRA_PATCHES+= ${FILESDIR}/extra-patch-Local-sa-exim.c EXTRA_PATCHES+= ${FILESDIR}/extra-patch-Local-sa-exim.conf .endif -EXIM_VERSION= 4.98.2 +EXIM_VERSION= 4.99.3 SA_EXIM_VERSION=4.2.1 EXIM_INSTALL_ARG+= "-no_chown" "-no_symlink" EXTRA_PATCHES+= `${FIND} ${PATCHDIR} -name '74_*.patch'|${SORT} -h` .if !defined(EXIMON_ONLY) PLIST_SUB+= EXIM="" .if defined(PKGNAMESUFFIX) CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-4.* .endif .for suffix in -ldap2 -mysql -postgresql -sa-exim -sqlite .if !defined(PKGNAMESUFFIX) || ${PKGNAMESUFFIX} != ${suffix} CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}${suffix}-4.* .endif .endfor .if ${PORT_OPTIONS:MEXIMON} CONFLICTS+= ${PKGNAMEPREFIX}${PORTNAME}-monitor-4.* .endif PKGMESSAGE= ${WRKDIR}/POST-INSTALL-NOTES .else # !EXIMON_ONLY PLIST_SUB+= EXIM="@comment " PORT_OPTIONS+= EXIMON PKGMESSAGE= ${WRKDIR}/pkg-message EXIM_INSTALL_ARG+= "eximon" "eximon.bin" .endif # !EXIMON_ONLY PORTDOC_BASE= ACKNOWLEDGMENTS NOTICE README.UPDATING -PORTDOC_FILES= ChangeLog Exim3.upgrade Exim4.upgrade NewStuff \ +PORTDOC_FILES= ChangeLog NewStuff DANE-draft-notes \ OptionLists.txt README README.SIEVE dbm.discuss.txt \ experimental-spec.txt filter.txt spec.txt -PORT_EXAMPLES= convert4r3 convert4r4 transport-filter.pl +PORT_EXAMPLES= transport-filter.pl DAILY_SCRIPTS= 150.exim-tidydb 460.exim-mail-rejects MAKE_ENV+= OSTYPE="${OPSYS}" ARCHTYPE="${ARCH}" DUMMY_LDFLAGS="${DUMMY_LDFLAGS}" STRIP_COMMAND="${STRIP_CMD}" EXIM_USER?= mailnull EXIM_GROUP?= mail # Default user/group are system ones, so we don't want to check them .if ${EXIM_USER} != "mailnull" USERS= ${EXIM_USER} .endif .if ${EXIM_GROUP} != "mail" GROUPS= ${EXIM_GROUP} .endif LOGDIR?= /var/log/exim LOG_FILE_PATH?= ${LOGDIR}/%slog CONFIG_FILE_PATH?= ${PREFIX}/etc/exim/configure ALT_CONFIG_PREFIX?= ${PREFIX}/etc/exim/ EXIM_DYNAMIC_LDFLAGS= -fPIC -rdynamic -Wl,--export-dynamic SED_SCRIPT= -e 's,%%PREFIX%%,${PREFIX},g' \ -e 's,%%DOCSDIR%%,${DOCSDIR},g' \ -e 's,%%EXAMPLESDIR%%,${EXAMPLESDIR},g' \ -e 's,%%EXIM_USER%%,${EXIM_USER},g' \ -e 's,%%EXIM_GROUP%%,${EXIM_GROUP},g' \ -e 's,%%LOGDIR%%,${LOGDIR},g' SEDLIST+= -e 's,XX_CFLAGS_XX,${CFLAGS:S/,/\\,/g},' \ -e 's,XX_PREFIX_XX,${PREFIX:S/,/\\,/g},' \ -e 's,XX_LOCALBASE_XX,${LOCALBASE:S/,/\\,/g},' \ -e 's,XX_LOG_FILE_PATH_XX,${LOG_FILE_PATH:S/,/\\,/g},' \ -e 's,XX_CONFIG_FILE_PATH_XX,${CONFIG_FILE_PATH:S/,/\\,/g},' \ -e 's,XX_ALT_CONFIG_PREFIX_XX,${ALT_CONFIG_PREFIX:S/,/\\,/g},' \ -e 's,XX_EXIM_USER_XX,${EXIM_USER:S/,/\\,/g},' \ -e 's,XX_EXIM_GROUP_XX,${EXIM_GROUP:S/,/\\,/g},' \ -e 's,XX_DEFAULT_CHARSET_XX,${WITH_DEFAULT_CHARSET:S/,/\\,/g},' \ -e 's,XX_DYNAMIC_LDFLAGS_XX,${EXIM_DYNAMIC_LDFLAGS:S/,/\\,/g},' PLIST_SUB+= EXIM_VERSION="${EXIM_VERSION}-${PORTREVISION}" \ EXIM_USER=${EXIM_USER} \ EXIM_GROUP=${EXIM_GROUP} \ LOGDIR="${LOGDIR:S/^\///}" # Exim refuses to run local deliveries as root by default. You can # add other users to this colon-separated list that cannot be # overridden at runtime below, but are advised not to remove "root". #WITH_FIXED_NEVER_USERS= root:daemon:bin # When Exim is decoding MIME "words" in header lines it converts any foreign # character sets to the one that is set in the headers_charset option. # The default setting is defined by this setting: WITH_DEFAULT_CHARSET?= ISO-8859-1 # You should not need to fiddle with anything below this point. LIB_DEPENDS+= libpcre2-posix.so:devel/pcre2 .if ! ${PORT_OPTIONS:MDKIM} SEDLIST+= -e 's,^\# (DISABLE_DKIM=),\1,' .endif .if ${PORT_OPTIONS:MLISTMATCH_RHS} SEDLIST+= -e 's,^\# (EXPAND_LISTMATCH_RHS=),\1,' .endif .if ${PORT_OPTIONS:MDCC} SEDLIST+= -e 's,^\# (EXPERIMENTAL_DCC=),\1,' .endif .if ${PORT_OPTIONS:MPROXY} SEDLIST+= -e 's,^\# (SUPPORT_PROXY=),\1,' .endif .if ${PORT_OPTIONS:MCERTNAMES} SEDLIST+= -e 's,^\# (EXPERIMENTAL_CERTNAMES=),\1,' .endif .if ${PORT_OPTIONS:MDSN} SEDLIST+= -e 's,^\# (EXPERIMENTAL_DSN=),\1,' .endif .if !${PORT_OPTIONS:MDANE} SEDLIST+= -e 's,^(SUPPORT_DANE=),\#\1,' .endif .if ${PORT_OPTIONS:MARC} SEDLIST+= -e 's,^\# (EXPERIMENTAL_ARC=),\1,' .endif .if !${PORT_OPTIONS:MEVENT} SEDLIST+= -e 's,^\# (DISABLE_EVENT=),\1,' .endif .if ${PORT_OPTIONS:MINTERNATIONAL} SEDLIST+= -e 's,^\# (SUPPORT_I18N=),\1,' \ -e 's,^\# (SUPPORT_I18N_2008=),\1,' \ -e 's,XX_IDN_LIBS_XX,-L${LOCALBASE}/lib -lidn -lidn2,' .else SEDLIST+= -e 's,XX_IDN_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MSOCKS} SEDLIST+= -e 's,^\# (SUPPORT_SOCKS=),\1,' .endif .if !${PORT_OPTIONS:MPRDR} SEDLIST+= -e 's,^\# (DISABLE_PRDR=),\1,' .endif .if !${PORT_OPTIONS:MOCSP} SEDLIST+= -e 's,^\# (DISABLE_OCSP=),\1,' .endif .if !${PORT_OPTIONS:MDNSSEC} SEDLIST+= -e 's,^\# (DISABLE_DNSSEC=),\1,' .endif .if ${PORT_OPTIONS:MDMARC} SEDLIST+= -e 's,XX_DMARC_LIBS_XX,-L${LOCALBASE}/lib -lopendmarc,' \ -e 's,^\# (SUPPORT_DMARC=),\1,' .else SEDLIST+= -e 's,XX_DMARC_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MWISHLIST} EXTRA_PATCHES+= `${FIND} ${PATCHDIR} -name 'wishlist-*.patch'` .endif .if ${PORT_OPTIONS:MFIXED_NEVER_USERS} SEDLIST+= -e 's,^(FIXED_NEVER_USERS=).*,\1${WITH_FIXED_NEVER_USERS:S/,/\\,/g},' .endif .if ${PORT_OPTIONS:MEXIMON} SEDLIST+= -e 's,^\# (EXIM_MONITOR=),\1,' .endif .if ${PORT_OPTIONS:MTLS} .if ! ${PORT_OPTIONS:MGNUTLS} USES+= ssl SEDLIST+= -e 's,^\# (USE_OPENSSL=),\1,' SEDLIST+= -e 's,^\# (TLS_LIBS=.*-lssl[[:space:]]),\1,' BROKEN_SSL= openssl31 BROKEN_SSL_REASON= error: token is not a valid binary operator in a preprocessor subexpression .else SEDLIST+= -e 's,^\# (USE_GNUTLS=),\1,' SEDLIST+= -e 's,^\# (TLS_LIBS=.*-lgnutls[[:space:]]),\1,' .endif .else # TLS support SEDLIST+= -e 's,^\# (DISABLE_TLS=),\1,' .endif .if ${PORT_OPTIONS:MEMBEDDED_PERL} SEDLIST+= -e 's,^\# (EXIM_PERL=),\1,' .endif -.if ${PORT_OPTIONS:MTCP_WRAPPERS} -SEDLIST+= -e 's,XX_TCP_WRAPPERS_LIBS_XX,-lwrap,' \ - -e 's,^\# (USE_TCP_WRAPPERS=),\1,' -.else -SEDLIST+= -e 's,XX_TCP_WRAPPERS_LIBS_XX,,' -.endif - .if ${PORT_OPTIONS:MICONV} SEDLIST+= -e 's,XX_ICONV_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib ${ICONV_LIB},' \ -e 's,^\# (HAVE_ICONV=),\1,' .else SEDLIST+= -e 's,XX_ICONV_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MOPENLDAP} LDAP_LIB_TYPE= OPENLDAP2 SEDLIST+= -e 's,XX_LDAP_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -llber -lldap,' \ -e 's,XX_LDAP_INCLUDE_XX,-I${LOCALBASE:S/,/\\,/g}/include,' \ -e 's,XX_LDAP_TYPE_XX,${LDAP_LIB_TYPE:S/,/\\,/g},' \ -e 's,^\# (LOOKUP_LDAP=),\1,' .else SEDLIST+= -e 's,XX_LDAP_[^ ]*_XX,,' \ -e 's,^(LDAP_LIB_TYPE=),\# \1,' .endif .if ${PORT_OPTIONS:MBDB} INVALID_BDB_VER= 2 3 6 18 DB_LIBS= -L${BDB_LIB_DIR} -l${BDB_LIB_NAME} DB_INCLUDES= -I${BDB_INCLUDE_DIR} .else DB_LIBS= DB_INCLUDES= SEDLIST+= -e 's,^(DBMLIB=),\# \1,' .endif SEDLIST+= -e 's,XX_DB_LIBS_XX,${DB_LIBS:S/,/\\,/g},' \ -e 's,XX_DB_INCLUDES_XX,${DB_INCLUDES:S/,/\\,/g},' .if ${PORT_OPTIONS:MLMDB} _LMDB_LIBS= -L${LOCALBASE}/lib -llmdb _LMDB_INCLUDES= -I${LOCALBASE}/include SEDLIST+= -e 's,^\# (EXPERIMENTAL_LMDB=),\1,' .else _LMDB_LIBS= _LMDB_INCLUDES= .endif SEDLIST+= -e 's,XX_LMDB_LIBS_XX,${_LMDB_LIBS:S/,/\\,/g},' \ -e 's,XX_LMDB_INCLUDES_XX,${_LMDB_INCLUDES:S/,/\\,/g},' .if ${PORT_OPTIONS:MMYSQL} SEDLIST+= -e 's,XX_MYSQL_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib/mysql -l${_MYSQL_SHLIB:S/lib//},' \ -e 's,XX_MYSQL_INCLUDE_XX,-I${LOCALBASE:S/,/\\,/g}/include/mysql,' \ -e 's,^\# (LOOKUP_MYSQL=),\1,' .else SEDLIST+= -e 's,XX_MYSQL_[^ ]*_XX,,' .endif .if ${PORT_OPTIONS:MSASLAUTHD} SASLAUTHD_SOCKET?= /var/run/saslauthd/mux SEDLIST+= -e 's,^\# (CYRUS_SASLAUTHD_SOCKET=).*,\1${SASLAUTHD_SOCKET:S/,/\\,/g},' .endif .if ${PORT_OPTIONS:MPAM} SEDLIST+= -e 's,XX_PAM_LIBS_XX,-lpam,' \ -e 's,^\# (SUPPORT_PAM=),\1,' .else SEDLIST+= -e 's,XX_PAM_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MAUTH_CRAM_MD5} SEDLIST+= -e 's,^\# (AUTH_CRAM_MD5=),\1,' .endif .if ${PORT_OPTIONS:MAUTH_PLAINTEXT} SEDLIST+= -e 's,^\# (AUTH_PLAINTEXT=),\1,' .endif .if ${PORT_OPTIONS:MAUTH_DOVECOT} SEDLIST+= -e 's,^\# (AUTH_DOVECOT=),\1,' .endif .if ${PORT_OPTIONS:MAUTH_SPA} SEDLIST+= -e 's,^\# (AUTH_SPA=),\1,' .endif .if ${PORT_OPTIONS:MAUTH_SASL} SEDLIST+= -e 's,^\# (AUTH_CYRUS_SASL=),\1,' \ -e 's,^\# (AUTH_LIBS=.*-lsasl2),\1,' .endif .if ${PORT_OPTIONS:MAUTH_TLS} SEDLIST+= -e 's,^\# (AUTH_TLS=),\1,' .endif .if ${PORT_OPTIONS:MAUTH_RADIUS} WITH_RADIUS_TYPE?= RADLIB .if ${WITH_RADIUS_TYPE:tl} == radlib SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-lradius,' \ -e 's,^\# (RADIUS_CONFIG_FILE=).*,\1/etc/radius.conf,' \ -e 's,^\# (RADIUS_LIB_TYPE=).*,\1RADLIB,' .elif ${WITH_RADIUS_TYPE:tl} == radiusclient LIB_DEPENDS+= libfreeradius-client.so:net/freeradius-client SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -lfreeradius-client,' \ -e 's,^\# (RADIUS_CONFIG_FILE=).*,\1${LOCALBASE:S/,/\\,/g}/etc/radiusclient/radiusclient.conf,' \ -e 's,^\# (RADIUS_LIB_TYPE=).*,\1RADIUSCLIENTNEW,' .else IGNORE= the variable WITH_RADIUS_TYPE must be either RADLIB or RADIUSCLIENT .endif .else SEDLIST+= -e 's,XX_RADIUS_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MPGSQL} SEDLIST+= -e 's,XX_PGSQL_LIBS_XX,-L${LOCALBASE:S/,/\\,/g}/lib -lpq,' \ -e 's,XX_PGSQL_INCLUDE_XX,-I${LOCALBASE:S/,/\\,/g}/include/pgsql,' \ -e 's,^\# (LOOKUP_PGSQL=),\1,' .else SEDLIST+= -e 's,XX_PGSQL_[^ ]*_XX,,' .endif .if ! ${PORT_OPTIONS:MPGSQL} && ! ${PORT_OPTIONS:MMYSQL} && !defined(LDAP_LIB_TYPE) && \ ! ${PORT_OPTIONS:MBDB} && ! ${PORT_OPTIONS:MLMDB} SEDLIST+= -e 's,^(LOOKUP_LIBS=),\# \1,' \ -e 's,^(LOOKUP_INCLUDE=),\# \1,' .endif .if ! ${PORT_OPTIONS:MDNSDB} SEDLIST+= -e 's,^(LOOKUP_DNSDB=),\# \1,' .endif .if ${PORT_OPTIONS:MMAILDIR} SEDLIST+= -e 's,^\# (SUPPORT_MAILDIR=),\1,' .endif .if ${PORT_OPTIONS:MMAILSTORE} SEDLIST+= -e 's,^\# (SUPPORT_MAILSTORE=),\1,' .endif .if ${PORT_OPTIONS:MMBX} SEDLIST+= -e 's,^\# (SUPPORT_MBX=),\1,' .endif .if ${PORT_OPTIONS:MCDB} SEDLIST+= -e 's,^\# (LOOKUP_CDB=),\1,' .endif .if ${PORT_OPTIONS:MDSEARCH} SEDLIST+= -e 's,^\# (LOOKUP_DSEARCH=),\1,' .endif .if ! ${PORT_OPTIONS:MLSEARCH} SEDLIST+= -e 's,^(LOOKUP_LSEARCH=),\# \1,' .endif .if ${PORT_OPTIONS:MNIS} SEDLIST+= -e 's,^\# (LOOKUP_NIS=),\1,' .endif .if ${PORT_OPTIONS:MPASSWD} SEDLIST+= -e 's,^\# (LOOKUP_PASSWD=),\1,' .endif .if ${PORT_OPTIONS:MSQLITE} SEDLIST+= -e 's,XX_SQLITE_LIBS_XX,`pkg-config --static --libs sqlite3`,' \ -e 's,XX_SQLITE_FLAGS_XX,`pkg-config --cflags sqlite3`,' \ -e 's,^\# (LOOKUP_SQLITE=),\1,' .else SEDLIST+= -e 's,XX_SQLITE_LIBS_XX,,' \ -e 's,XX_SQLITE_FLAGS_XX,,' .endif .if ${PORT_OPTIONS:MREDIS} SEDLIST+= -e 's,XX_REDIS_LIBS_XX,-L${LOCALBASE}/lib -lhiredis,' \ -e 's,^\# (LOOKUP_REDIS=),\1,' \ -e 's,^\# (REDIS=),\1,' .else SEDLIST+= -e 's,XX_REDIS_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MLMTP} SEDLIST+= -e 's,^\# (TRANSPORT_LMTP=),\1,' .endif .if ! ${PORT_OPTIONS:MALT_CONFIG_PREFIX} SEDLIST+= -e 's,^(ALT_CONFIG_PREFIX=),\# \1,' .endif .if ${PORT_OPTIONS:MSPF} SEDLIST+= -e 's,XX_SPF_FLAGS_XX,-DSPF,' \ -e 's,XX_SPF_LIBS_XX,-L${LOCALBASE}/lib -lspf2 -lpthread,' \ -e 's,^\# (SUPPORT_SPF=),\1,' .else SEDLIST+= -e 's,XX_SPF_FLAGS_XX,,' \ -e 's,XX_SPF_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MSRS} SEDLIST+= -e 's,XX_SRS_FLAGS_XX,-DSUPPORT_SRS,' \ -e 's,XX_SRS_LIBS_XX,,' .elif ${PORT_OPTIONS:MOLD_SRS} LIB_DEPENDS+= libsrs_alt.so:mail/libsrs_alt SEDLIST+= -e 's,XX_SRS_FLAGS_XX,-DEXPERIMENTAL_SRS_ALT,' \ -e 's,XX_SRS_LIBS_XX,-L${LOCALBASE}/lib -lsrs_alt,' .else SEDLIST+= -e 's,XX_SRS_FLAGS_XX,,' \ -e 's,XX_SRS_LIBS_XX,,' .endif .if ${PORT_OPTIONS:MREADLINE} SEDLIST+= -e 's,^\# (USE_READLINE=),\1,' .endif .if ${PORT_OPTIONS:MCONTENT_SCAN} SEDLIST+= -e 's,^\# (WITH_CONTENT_SCAN=),\1,' .endif .if !defined(EXIMON_ONLY) && ${PORT_OPTIONS:MDAEMON} USE_RC_SUBR= exim PLIST_SUB+= EXIMDAEMON="" SUB_LIST+= LOGDIR="${LOGDIR}" .else PLIST_SUB+= EXIMDAEMON="@comment " .endif .if ${PORT_OPTIONS:MIPV6} SEDLIST+= -e 's,^\# (HAVE_IPV6=),\1,' .endif .if ${PORT_OPTIONS:MDISABLE_D_OPT} SEDLIST+= -e 's,^\# (DISABLE_D_OPTION=),\1,' .else .if defined(WHITELIST_D_MACROS) SEDLIST+= -e 's,^\# (WHITELIST_D_MACROS=).*$$,\1${WHITELIST_D_MACROS:S/,/\\,/g},' .endif .endif .if defined(TRUSTED_CONFIG_LIST) SEDLIST+= -e 's,^\# (TRUSTED_CONFIG_LIST=).*$$,\1${TRUSTED_CONFIG_LIST:S/,/\\,/g},' .endif .if ${PORT_OPTIONS:MQUEUEFILE} SEDLIST+= -e 's,^\# (EXPERIMENTAL_QUEUEFILE=),\1,' .endif MAKE_ENV+= INSTALL_ARG="${EXIM_INSTALL_ARG}" DUMMY_LDFLAGS!= ${ECHO_CMD} ${LDFLAGS} | ${SED} -e 's|-Wl,-rpath|-Wl,-DUMMYrpath|g; s|-rpath|-Wl,-rpath|g; s|-DUMMYrpath|-rpath|g' pre-everything:: @${ECHO} 'Exim now drops privileges when alternate configuration' @${ECHO} 'files are used. You can set make variable TRUSTED_CONFIG_LIST' @${ECHO} 'to specify the list of configuration files for which' @${ECHO} 'root privileges will be retained.' @${ECHO} '' @${ECHO} 'You can whitelist some macros using the make variable' @${ECHO} 'WHITELIST_D_MACROS. This is useful if you are running' @${ECHO} 'with DISABLE_D_OPT set, but macros whitelisting will be' @${ECHO} 'removed in some future Exim release, so it is better' @${ECHO} 'to use TRUSTED_CONFIG_LIST to set the list of trusted' @${ECHO} 'configuration files.' .if empty(.MAKEFLAGS:M-s) && ${PORT_OPTIONS:MWISHLIST} @${ECHO} '' @${ECHO} 'Included extra patches:' @${FIND} ${PATCHDIR} -name 'wishlist-*.patch' \ -exec ${SED} -ne 's,^# , ,p' {} \; @${ECHO} '' .endif post-extract: .if ${PORT_OPTIONS:MSA_EXIM} @cd ${WRKDIR} && ${TAR} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/sa-exim-${SA_EXIM_VERSION}.tar.gz ${EXTRACT_AFTER_ARGS} @@${CP} ${WRKDIR}/sa-exim-${SA_EXIM_VERSION}/sa-exim.c ${WRKSRC}/Local @@${CP} ${WRKDIR}/sa-exim-${SA_EXIM_VERSION}/sa-exim.conf ${WRKSRC}/Local .endif do-configure: @${MKDIR} ${WRKSRC}/Local @${SED} -E ${SEDLIST} ${WRKSRC}/src/EDITME > ${WRKSRC}/Local/Makefile .if ${PORT_OPTIONS:MEXIMON} @${CP} ${WRKSRC}/exim_monitor/EDITME ${WRKSRC}/Local/eximon.conf .endif @${REINPLACE_CMD} -E ${SEDLIST} ${WRKSRC}/src/configure.default @${REINPLACE_CMD} -e 's!$$(LDFLAGS)!$$(DUMMY_LDFLAGS) -L$${LOCALBASE}/lib!' ${WRKSRC}/OS/Makefile-Base @${REINPLACE_CMD} -e 's/"(Exim $$version_number)\\n\\t"/"(Exim $$version_number (${OPSYS}))\\n\\t"/' \ ${WRKSRC}/src/globals.c @${REINPLACE_CMD} -e 's/Exim version %s \(#%s \)\{0,1\}/&(${OPSYS} ${OSREL}) /' ${WRKSRC}/src/exim.c @${REINPLACE_CMD} -e 's/^#include "cnumber\.h"$$/${PORTREVISION}/' ${WRKSRC}/src/version.c @${REINPLACE_CMD} -E -e 's/^(PERL_COMMAND=).*/\1${PERL:S,/,\/,g}/' \ -e 's/^(CC=).*/\1${CC:S,/,\/,g}/' ${WRKSRC}/OS/Makefile-Default .if ${PORT_OPTIONS:MSA_EXIM} @${REINPLACE_CMD} -E -e 's/^\# (HAVE_LOCAL_SCAN=).*/\1yes/' \ ${WRKSRC}/OS/Makefile-Default @${REINPLACE_CMD} -E -e 's/^(LOCAL_SCAN_SOURCE=).*/\1Local\/sa-exim.c/' \ ${WRKSRC}/OS/Makefile-Default @{ \ ${ECHO_CMD} "char *version=\"${SA_EXIM_VERSION}\";"; \ ${ECHO_CMD} "#define SPAMC_LOCATION \"${LOCALBASE}/bin/spamc\""; \ ${ECHO_CMD} "#define SPAMASSASSIN_CONF \"${PREFIX}/etc/exim/sa-exim.conf\""; \ } > ${WRKSRC}/Local/sa-exim.h @${REINPLACE_CMD} -e 's,/usr/bin/spamc,${LOCALBASE}/bin/spamc,' \ ${WRKSRC}/Local/sa-exim.conf .endif @(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} configure) post-build: .for script in ${DAILY_SCRIPTS} @${SED} ${SED_SCRIPT} ${FILESDIR}/${script}.sh > ${WRKDIR}/${script}.sh .endfor @${SED} ${SED_SCRIPT} ${FILESDIR}/POST-INSTALL-NOTES > \ ${WRKDIR}/POST-INSTALL-NOTES @${SED} ${SED_SCRIPT} ${FILESDIR}/POST-INSTALL-NOTES.clamd > ${WRKDIR}/POST-INSTALL-NOTES.clamd @${SED} ${SED_SCRIPT} ${FILESDIR}/POST-INSTALL-NOTES > ${WRKDIR}/POST-INSTALL-NOTES @[ ! -f ${PKGDIR}/pkg-message ] || ${SED} ${SED_SCRIPT} ${PKGDIR}/pkg-message > ${WRKDIR}/pkg-message .if !defined(EXIMON_ONLY) post-install: .if ${PORT_OPTIONS:MDAEMON} ${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily .for script in ${DAILY_SCRIPTS} ${INSTALL_SCRIPT} ${WRKDIR}/${script}.sh ${STAGEDIR}${PREFIX}/etc/periodic/daily/${script} .endfor .endif @${MKDIR} -m 750 ${STAGEDIR}${LOGDIR} ${INSTALL_MAN} ${WRKSRC}/doc/exim.8 ${STAGEDIR}${PREFIX}/share/man/man8 .if ${PORT_OPTIONS:MDOCS} @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKDIR}/POST-INSTALL-NOTES ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKDIR}/POST-INSTALL-NOTES.clamd ${STAGEDIR}${DOCSDIR} .for docfile in ${PORTDOC_BASE} ${INSTALL_DATA} ${WRKSRC}/${docfile} ${STAGEDIR}${DOCSDIR} .endfor .for docfile in ${PORTDOC_FILES} ${INSTALL_DATA} ${WRKSRC}/doc/${docfile} ${STAGEDIR}${DOCSDIR} .endfor @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} .for example in ${PORT_EXAMPLES} ${INSTALL_SCRIPT} ${WRKSRC}/build-${OPSYS}-${ARCH}/${example} ${STAGEDIR}${EXAMPLESDIR} .endfor .endif .if ${PORT_OPTIONS:MSA_EXIM} ${INSTALL_DATA} ${WRKSRC}/Local/sa-exim.conf \ ${STAGEDIR}${PREFIX}/etc/exim/sa-exim.conf.sample .endif .endif # ! defined(EXIMON_ONLY) .include # If using clang, avoid too many warnings due to Exim code style .if ${CHOSEN_COMPILER_TYPE} == "clang" EXIM_WARN_FLAGS?= -Wno-logical-op-parentheses -Wno-macro-redefined -Wno-parentheses -Wno-dangling-else .endif CFLAGS+= ${EXIM_WARN_FLAGS} .include diff --git a/mail/exim/distinfo b/mail/exim/distinfo index 0ca53f8594f3..aaea0609a86a 100644 --- a/mail/exim/distinfo +++ b/mail/exim/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1743093330 -SHA256 (exim/exim-4.98.2.tar.bz2) = 14d7ead473394c8712f2d28835ea93c475603cbc2b3200b6188eac8782985cf1 -SIZE (exim/exim-4.98.2.tar.bz2) = 2098693 +TIMESTAMP = 1778635962 +SHA256 (exim/exim-4.99.3.tar.bz2) = 08f3096a9de857c040e2f5bb13517cf7eae97553b31c76f3846970de13744691 +SIZE (exim/exim-4.99.3.tar.bz2) = 2134633 SHA256 (exim/sa-exim-4.2.1.tar.gz) = 24d4bf7b0fdddaea11f132981cebb6a86a4ab20ef54111a8ebd481b421c6e2c1 SIZE (exim/sa-exim-4.2.1.tar.gz) = 68933 diff --git a/mail/exim/files/extra-patch-Local-sa-exim.c b/mail/exim/files/extra-patch-Local-sa-exim.c index b3343e3c5e26..8fe28547e2e0 100644 --- a/mail/exim/files/extra-patch-Local-sa-exim.c +++ b/mail/exim/files/extra-patch-Local-sa-exim.c @@ -1,200 +1,225 @@ ---- Local/sa-exim.c.orig 2020-02-19 03:04:43 UTC -+++ Local/sa-exim.c -@@ -29,10 +29,7 @@ http://lists.merlins.org/lists/listinfo/sa-exim +--- Local/sa-exim.c.orig 2025-12-18 04:08:13.593344000 +0100 ++++ Local/sa-exim.c 2025-12-18 04:10:17.527828000 +0100 +@@ -29,10 +29,7 @@ #include "sa-exim.h" /* Exim includes */ -#include "local_scan.h" -extern FILE *smtp_out; /* Exim's incoming SMTP output file */ -extern int body_linecount; /* Line count in body */ -extern uschar *primary_hostname; +#include #ifdef DLOPEN_LOCAL_SCAN -@@ -409,6 +406,11 @@ int parsemlheader(char *buffer, FILE *readfh, char *he +@@ -409,6 +406,11 @@ if (buffer[strlen(buffer)-1] == '\n') { buffer[strlen(buffer)-1]=0; + /* and any carriage return */ + if (buffer[strlen(buffer)-1] == '\r') + { + buffer[strlen(buffer)-1]=0; + } } if (SAEximDebug > 5) { -@@ -515,6 +517,7 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -515,6 +517,7 @@ int pid; int writefd[2]; int readfd[2]; + char *spamc_argv[10]; int i; /* These are the only values that we want working after the longjmp * The automatic ones can be clobbered, but we don't really care */ -@@ -550,8 +553,9 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -536,8 +539,8 @@ + time_t beforescan; + time_t afterscan; + time_t afterwait; +- time_t scantime=0; +- time_t fulltime=0; ++ int scantime=0; ++ int fulltime=0; + struct stat stbuf; + + uschar *expand; +@@ -550,8 +553,9 @@ static char *SAspamcpath=SPAMC_LOCATION; static char *SAsafemesgidchars=SAFEMESGIDCHARS static char *SAspamcSockPath=NULL; - static char *SAspamcPort="783"; - static char *SAspamcHost="127.0.0.1"; + static char *SAspamcPort=NULL; + static char *SAspamcHost=NULL; + static char *SAspamcUser=NULL; static char *SAEximRunCond="0"; static char *SAEximRejCond="1"; static int SAmaxbody=250*1024; -@@ -602,6 +606,10 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -602,6 +606,10 @@ /* Do not put a %s in there, or you'll segfault */ static char *SAmsgerror="Temporary local error while processing message, please contact postmaster"; + /* This needs to be retrieved through expand_string in order + not to violate the API. */ + uschar *primary_hostname=expand_string("$primary_hostname"); + /* New values we read from spamassassin */ char *xspamstatus=NULL; char *xspamflag=NULL; -@@ -712,6 +720,7 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -712,6 +720,7 @@ M_CHECKFORSTR(SAspamcSockPath); M_CHECKFORSTR(SAspamcPort); M_CHECKFORSTR(SAspamcHost); + M_CHECKFORSTR(SAspamcUser); M_CHECKFORSTR(SAEximRunCond); M_CHECKFORSTR(SAEximRejCond); M_CHECKFORVAR(SAmaxbody, "%d"); -@@ -914,6 +923,22 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -914,6 +923,22 @@ ret=dup2(readfd[1],2); CHECKERR(ret,"dup2 stderr",__LINE__); + i = 0; + spamc_argv[i++] = "spamc"; + if (SAspamcUser && SAspamcUser[0]) + { + expand=expand_string(SAspamcUser); + if (expand == NULL) + { + log_write(0, LOG_MAIN | LOG_PANIC, "SA: SAspamcUser expansion failure on %s, will run as Exim user instead.", SAspamcUser); + } + else if (expand[0] != '\0') + { + spamc_argv[i++] = "-u"; + spamc_argv[i++] = expand; + } + } + /* * I could implement the spamc protocol and talk to spamd directly * instead of forking spamc, but considering the overhead spent -@@ -924,17 +949,30 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -924,17 +949,30 @@ /* Ok, we cheat, spamc cares about how big the whole message is and * we only know about the body size, so I'll give an extra 16K * to account for any headers that can accompany the message */ + + spamc_argv[i++] = "-s"; + spamc_argv[i++] = string_sprintf("%d", SAmaxbody+16384); + if(SAspamcSockPath) { - ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d", SAmaxbody+16384), "-U", SAspamcSockPath, NULL); - CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__); + spamc_argv[i++] = "-U"; + spamc_argv[i++] = SAspamcSockPath; } else { - ret=execl(SAspamcpath, "spamc", "-s", string_sprintf("%d", SAmaxbody+16384), "-d", SAspamcHost, "-p", SAspamcPort, NULL); - CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__); + if (SAspamcHost) { + spamc_argv[i++] = "-d"; + spamc_argv[i++] = SAspamcHost; + } + if (SAspamcPort) { + spamc_argv[i++] = "-p"; + spamc_argv[i++] = SAspamcPort; + } } - + spamc_argv[i++] = NULL; + + ret=execv(SAspamcpath, spamc_argv); + CHECKERR(ret,string_sprintf("exec %s", SAspamcpath),__LINE__); } if (SAEximDebug > 8) -@@ -1045,6 +1083,11 @@ int local_scan(volatile int fd, uschar **return_text) +@@ -1045,6 +1083,11 @@ if (buffer[strlen(buffer)-1] == '\n') { buffer[strlen(buffer)-1]=0; + /* and any carriage return */ + if (buffer[strlen(buffer)-1] == '\r') + { + buffer[strlen(buffer)-1]=0; + } } restart: if (SAEximDebug > 5) -@@ -1218,7 +1261,7 @@ restart: +@@ -1154,7 +1197,7 @@ + { + if (SAEximDebug > 5) + { +- log_write(0, LOG_MAIN, "SA: Debug6: spamc read got newline, end of headers", buffer); ++ log_write(0, LOG_MAIN, "SA: Debug6: spamc read got newline, end of headers"); + } + goto exit; + } +@@ -1214,11 +1257,11 @@ + { + if (SAEximDebug > 8) + { +- log_write(0, LOG_MAIN, "SA: Debug9: Read body from SA; line %d (read %d)", line, strlen(buffer)); ++ log_write(0, LOG_MAIN, "SA: Debug9: Read body from SA; line %d (read %zd)", line, strlen(buffer)); } stret=write(fd, buffer, strlen(buffer)); - CHECKERR(stret,string_sprintf("SA body write to msg"),__LINE__); + CHECKERR(stret,string_sprintf("%s", "SA body write to msg"),__LINE__); if (SAEximDebug > 8) { log_write(0, LOG_MAIN, "SA: Debug9: Wrote to msg; line %d (wrote %d)", line, ret); -@@ -1229,18 +1272,20 @@ restart: +@@ -1229,18 +1272,20 @@ } } + if (SAEximDebug > 1) { log_write(0, LOG_MAIN, "SA: Debug2: body_linecount before SA: %d", body_linecount); } /* update global variable $body_linecount to reflect the new body size*/ - body_linecount = (line - 1); + if (body_linecount > 0) body_linecount = (line - 1); // Not updating if zero, indicating spool_wireformat if (SAEximDebug > 1) { log_write(0, LOG_MAIN, "SA: Debug2: body_linecount after SA: %d", body_linecount); } + } fclose((FILE *)readfh); -@@ -1331,6 +1376,9 @@ restart: +@@ -1331,6 +1376,9 @@ if (dorej && doteergrube) { + char *teergrubewaitstr; + teergrubewaitstr=string_sprintf(SAmsgteergrubewait, spamstatus); + /* By default, we'll only save temp bounces by message ID so * that when the same message is submitted several times, we * overwrite the same file on disk and not create a brand new -@@ -1353,20 +1401,8 @@ restart: +@@ -1353,20 +1401,8 @@ for (i=0;i RADIUS_LIB_RADIUSCLIENT2 */ if (!(h = rc_read_config(RADIUS_CONFIG_FILE))) - *errptr = string_sprintf("RADIUS: can't open %s", RADIUS_CONFIG_FILE); -+ *errptr = string_sprintf("%s", "RADIUS: can't open %s", RADIUS_CONFIG_FILE); ++ *errptr = string_sprintf("%","RADIUS: can't open %s", RADIUS_CONFIG_FILE); else if (rc_read_dictionary(h, rc_conf_str(h, "dictionary")) != 0) - *errptr = US"RADIUS: can't read dictionary"; -+ *errptr = string_sprintf("%s", "RADIUS: can't read dictionary"); ++ *errptr = string_sprintf("%","RADIUS: can't read dictionary"); else if (!rc_avpair_add(h, &send, PW_USER_NAME, user, Ustrlen(user), 0)) - *errptr = US"RADIUS: add user name failed"; -+ *errptr = string_sprintf("%s", "RADIUS: add user name failed\n"); ++ *errptr = string_sprintf("%","RADIUS: add user name failed"); else if (!rc_avpair_add(h, &send, PW_USER_PASSWORD, CS radius_args, Ustrlen(radius_args), 0)) - *errptr = US"RADIUS: add password failed"; -+ *errptr = string_sprintf("%s", "RADIUS: add password failed\n"); ++ *errptr = string_sprintf("%","RADIUS: add password failed"); else if (!rc_avpair_add(h, &send, PW_SERVICE_TYPE, &service, 0, 0)) - *errptr = US"RADIUS: add service type failed"; -+ *errptr = string_sprintf("%s", "RADIUS: add service type failed\n"); ++ *errptr = string_sprintf("%","RADIUS: add service type failed"); #endif /* RADIUS_LIB_RADIUSCLIENT */ -@@ -176,7 +176,7 @@ +@@ -167,7 +167,7 @@ case BADRESP_RC: default: - *errptr = string_sprintf("RADIUS: unexpected response (%d)", result); -+ *errptr = string_sprintf("%s", "RADIUS: unexpected response (%d)", result); ++ *errptr = string_sprintf("%s","RADIUS: unexpected response (%d)", result); return ERROR; } -@@ -186,7 +186,7 @@ +@@ -177,7 +177,7 @@ if (!(h = rad_auth_open())) { - *errptr = string_sprintf("RADIUS: can't initialise libradius"); -+ *errptr = string_sprintf("%s", "RADIUS: can't initialise libradius"); ++ *errptr = string_sprintf("%s","RADIUS: can't initialise libradius"); return ERROR; } if (rad_config(h, RADIUS_CONFIG_FILE) != 0 || -@@ -196,7 +196,7 @@ +@@ -187,7 +187,7 @@ rad_put_int(h, RAD_SERVICE_TYPE, RAD_AUTHENTICATE_ONLY) != 0 || rad_put_string(h, RAD_NAS_IDENTIFIER, CS primary_hostname) != 0) { - *errptr = string_sprintf("RADIUS: %s", rad_strerror(h)); -+ *errptr = string_sprintf("%s", "RADIUS: %s", rad_strerror(h)); ++ *errptr = string_sprintf("%s","RADIUS: %s", rad_strerror(h)); result = ERROR; } else -@@ -211,12 +211,12 @@ +@@ -202,12 +202,12 @@ break; case -1: - *errptr = string_sprintf("RADIUS: %s", rad_strerror(h)); -+ *errptr = string_sprintf("%s", "RADIUS: %s", rad_strerror(h)); ++ *errptr = string_sprintf("%s","RADIUS: %s", rad_strerror(h)); result = ERROR; break; default: - *errptr = string_sprintf("RADIUS: unexpected response (%d)", result); -+ *errptr = string_sprintf("%s", "RADIUS: unexpected response (%d)", result); ++ *errptr = string_sprintf("%s","RADIUS: unexpected response (%d)", result); result= ERROR; break; } diff --git a/mail/exim/options b/mail/exim/options index af097c6380e1..eee5b6cfacf4 100644 --- a/mail/exim/options +++ b/mail/exim/options @@ -1,134 +1,132 @@ OPTIONS_DEFINE+= ALT_CONFIG_PREFIX \ CONTENT_SCAN \ DAEMON \ DANE \ DEBUG \ DISABLE_D_OPT \ DKIM \ SPF \ DNSSEC \ DOCS \ EMBEDDED_PERL \ EXIMON \ ICONV \ IPV6 \ LISTMATCH_RHS \ LMTP \ OCSP \ PRDR \ READLINE \ SUID \ - TCP_WRAPPERS \ WISHLIST \ EVENT \ PROXY \ SOCKS \ INTERNATIONAL OPTIONS_DEFAULT+= AUTH_CRAM_MD5 \ AUTH_DOVECOT \ AUTH_PLAINTEXT \ AUTH_SPA \ CDB \ CONTENT_SCAN \ DAEMON \ DISABLE_D_OPT \ DKIM \ DMARC \ DNSDB \ DNSSEC \ DSEARCH \ EMBEDDED_PERL \ EVENT \ ICONV \ INTERNATIONAL \ LMTP \ LSEARCH \ MAILDIR \ MAILSTORE \ MBX \ OCSP \ PAM \ PASSWD \ PRDR \ SPF \ SUID \ TLS OPTIONS_RADIO_TLS= TLS GNUTLS TLS_DESC= TLS support OPTIONS_RADIO_LS= SA_EXIM LS_DESC= Local scan patch OPTIONS_RADIO_SRSR= SRS OLD_SRS SRSR_DESC= Sender Rewriting Scheme OLD_SRS_DESC= Enable Alternative Sender Rewriting Scheme OPTIONS_RADIO= TLS LS SRSR OPTIONS_GROUP_AUTH= AUTH_CRAM_MD5 AUTH_DOVECOT AUTH_PLAINTEXT AUTH_RADIUS AUTH_SASL AUTH_SPA AUTH_TLS SASLAUTHD PAM PASSWD AUTH_DESC= SMTP Authorization OPTIONS_GROUP_LOOKUP= CDB BDB DNSDB DSEARCH LSEARCH MYSQL NIS OPENLDAP PGSQL REDIS SQLITE LOOKUP_DESC= Lookup support OPTIONS_GROUP_STORAGE= MAILDIR MAILSTORE MBX STORAGE_DESC= Supported storage formats OPTIONS_GROUP_EXPERIMENTAL= CERTNAMES DCC DMARC DSN ARC LMDB QUEUEFILE EXPERIMENTAL_DESC= Experimental options OPTIONS_GROUP= AUTH LOOKUP STORAGE EXPERIMENTAL ALT_CONFIG_PREFIX_DESC= Restrict the set of configuration files ARC_DESC= Enable experimental ARC support AUTH_CRAM_MD5_DESC= Enable CRAM-MD5 authentication mechanisms AUTH_DOVECOT_DESC= Enable Dovecot authentication mechanisms AUTH_PLAINTEXT_DESC= Enable plaintext authentication AUTH_RADIUS_DESC= Enable radius (RFC 2865) authentication AUTH_SASL_DESC= Enable use of Cyrus SASL auth library AUTH_SPA_DESC= Enable Secure Password Authentication AUTH_TLS_DESC= Enable TLS client certificate authentication CERTNAMES_DESC= Check certiticates ownership BDB_DESC= Enable Berkeley DB lookups CDB_DESC= Enable CDB-style lookups CONTENT_SCAN_DESC= Enable exiscan email content scanner DAEMON_DESC= Install scripts to run as a daemon DANE_DESC= Enable experimental DANE support DCC_DESC= Enable DCC at ACL support via dccifd DISABLE_D_OPT_DESC= Disable macros overrides using option -D DKIM_DESC= Enable support for DKIM DMARC_DESC= Enable DMARC support DNSDB_DESC= Enable DNS-style lookups DNSSEC_DESC= Enable DNSSEC validation DSEARCH_DESC= Enable directory-list lookups DSN_DESC= Enable Delivery Status Notifications EMBEDDED_PERL_DESC= Enable embedded Perl interpreter EVENT_DESC= Messages events support (TPDA namely) EXIMON_DESC= Build eximon monitor (requires X libraries) ICONV_DESC= Enable header charset conversion INTERNATIONAL_DESC= Enable support for the transmission of UTF-8 envelope addresses LISTMATCH_RHS_DESC= Enable pre-4.77 behaviour for match_* LMDB_DESC= Enable LMDB lookups LMTP_DESC= RFC2033 SMTP over command pipe transport LSEARCH_DESC= Enable wildcarded-file lookups MAILDIR_DESC= Enable Maildir mailbox format MAILSTORE_DESC= Enable Mailstore mailbox format MBX_DESC= Enable MBX mailbox format MYSQL_DESC= Enable mysql lookups NIS_DESC= Enable NIS-style lookups OPENLDAP_DESC= Enable LDAP lookups OCSP_DESC= Enable OCSP stapling QUEUEFILE_DESC= Enable queuefile transport PAM_DESC= Enable PAM authentication mechanisms PASSWD_DESC= Enable /etc/passwd lookups PGSQL_DESC= Enable postgresql lookups PRDR_DESC= Enable Per-Recipient-Data-Response support PROXY_DESC= Enable Experimental Proxy Protocol READLINE_DESC= Enable readline(3) library REDIS_DESC= Enable redis lookups SASLAUTHD_DESC= Enable use of Cyrus SASL auth daemon -SA_EXIM_DESC= Build with Spamassassin local scan +SA_EXIM_DESC= Build with Spamassassin local scan (BROKEN) SOCKS_DESC= Enable smtp transport via socks5 proxies SPF_DESC= Enable Sender Policy Framework checking SQLITE_DESC= Enable SQLite lookups SRS_DESC= Enable Sender Rewriting Scheme SUID_DESC= Install the exim binary suid root TAINTWARN_DESC= Allow insecure tainted data (pre-4.93 config style, deprecated) -TCP_WRAPPERS_DESC= Enable /etc/hosts.allow access control GNUTLS_DESC= Use GnuTLS instead of OpenSSL for TLS WISHLIST_DESC= Include the unsupported patches diff --git a/mail/exim/pkg-plist b/mail/exim/pkg-plist index 77b6af2cd4dd..925cdb19b07b 100644 --- a/mail/exim/pkg-plist +++ b/mail/exim/pkg-plist @@ -1,46 +1,43 @@ %%SUID%%@mode 4755 %%EXIM%%sbin/exim %%SUID%%@mode %%EXIM%%sbin/exim_checkaccess %%EXIM%%sbin/exim_dbmbuild %%EXIM%%sbin/exim_dumpdb %%EXIM%%sbin/exim_fixdb %%EXIM%%sbin/exim_id_update %%EXIM%%sbin/exim_lock %%EXIM%%sbin/exim_msgdate %%EXIM%%sbin/exim_tidydb %%EXIM%%sbin/exicyclog %%EXIM%%sbin/exigrep %%EXIM%%sbin/eximstats %%EXIM%%sbin/exinext %%EXIM%%sbin/exipick %%EXIM%%sbin/exiqgrep %%EXIM%%sbin/exiqsumm %%EXIM%%sbin/exiwhat %%EXIM%%share/man/man8/exim.8.gz %%EXIMON%%sbin/eximon %%EXIMON%%sbin/eximon.bin %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/ACKNOWLEDGMENTS %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/NOTICE %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/README.UPDATING %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/ChangeLog -%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/Exim3.upgrade -%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/Exim4.upgrade +%%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/DANE-draft-notes %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/NewStuff %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/OptionLists.txt %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/POST-INSTALL-NOTES %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/POST-INSTALL-NOTES.clamd %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/README %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/README.SIEVE %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/dbm.discuss.txt %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/experimental-spec.txt %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/filter.txt %%EXIM%%%%PORTDOCS%%%%DOCSDIR%%/spec.txt -%%EXIM%%%%PORTDOCS%%%%EXAMPLESDIR%%/convert4r3 -%%EXIM%%%%PORTDOCS%%%%EXAMPLESDIR%%/convert4r4 %%EXIM%%%%PORTDOCS%%%%EXAMPLESDIR%%/transport-filter.pl %%EXIMDAEMON%%etc/periodic/daily/150.exim-tidydb %%EXIMDAEMON%%etc/periodic/daily/460.exim-mail-rejects @sample %%ETCDIR%%/configure.sample %%SA_EXIM%%@sample %%ETCDIR%%/sa-exim.conf.sample %%EXIM%%@dir(%%EXIM_USER%%,%%EXIM_GROUP%%,) /%%LOGDIR%%