diff --git a/mail/sendmail/Makefile b/mail/sendmail/Makefile index d4df6dab76f7..e1e373ebd038 100644 --- a/mail/sendmail/Makefile +++ b/mail/sendmail/Makefile @@ -1,375 +1,378 @@ # $FreeBSD$ PORTNAME= sendmail PORTVERSION= 8.16.1 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= mail MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/ DISTNAME= ${PORTNAME}.${PORTVERSION} MAINTAINER= dinoex@FreeBSD.org COMMENT= Reliable, highly configurable mail transfer agent with utilities LICENSE= Sendmail LICENSE_NAME= Sendmail License LICENSE_FILE= ${WRKSRC}/LICENSE LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept CONFLICTS?= courier-0.* postfix-1.* postfix-2.* smail-3.* zmailer-2.* opensmtpd-* USERS= smmsp GROUPS= smmsp USES= cpe uidfix groff MAKE_ARGS= UBINOWN=${UID} UBINGRP=${GID} \ SBINOWN=${UID} SBINGRP=${GID} \ GBINOWN=${UID} GBINGRP=${GID} \ MANOWN=${UID} MANGRP=${GID} \ CFOWN=${UID} CFGRP=${GID} \ MSPQOWN=${UID} \ LIBMODE=0644 UBINMODE=0755 GBINMODE=2755 WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} DOCS= KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \ sendmail/TRACEFLAGS sendmail/SECURITY sendmail/TUNING PLIST_SUB+= PREFIX=${PREFIX:S=${PREFIX}/==} \ MANPREFIX=${MANPREFIX:S=$=/=:S=${PREFIX}==:S=^/==} SUB_FILES= pkg-message WCONF= ${WRKSRC}/devtools/Site SITE= ${FILESDIR}/site.config.m4.pre4 PLIST= ${WRKDIR}/.PLIST.more LMAN1= mailq.1 newaliases.1 vacation.1 LMAN5= aliases.5 LMAN8= sendmail.8 mailstats.8 makemap.8 praliases.8 smrsh.8 \ mail.local.8 rmail.8 editmap.8 SENDMAIL= ${PREFIX}/sbin/sendmail BASEMAIL= /usr/libexec/sendmail/sendmail MILTER_SOVER?= 6 OPTIONS_DEFINE?= SHMEM SEM LA NIS IPV6 TLS DANE SASL SASLAUTHD LDAP \ BDB GDBM SOCKETMAP CYRUSLOOKUP BLACKLISTD SMTPUTF8 \ PICKY_HELO_CHECK MILTER DOCS OPTIONS_DEFAULT?= SHMEM SEM LA NIS TLS DANE SASL SASLAUTHD BDB1 \ BLACKLISTD PICKY_HELO_CHECK MILTER NO_OPTIONS_SORT=yes SHMEM_DESC= System V shared memory support LA_DESC= load averages support TLS_DESC= SMTP-TLS and SMTPS support DANE_DESC= Enable DANE support SASLAUTHD_DESC= SASLAUTHD support BDB_DESC= Berkeley DB version 4+ support GDBM_DESC= GNU dbm library support (option COMPAT needed) SOCKETMAP_DESC= Enable socketmap feature BLACKLISTD_DESC= Enable blacklistd support CYRUSLOOKUP_DESC= Enable cyruslookup feature PICKY_HELO_CHECK_DESC= Enable picky HELO check MILTER_DESC= Enable milter support SMTPUTF8_DESC= Enable unicode address support TLS_USES= ssl SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 SASLAUTHD_RUN_DEPENDS= saslauthd:security/cyrus-sasl2-saslauthd DANE_IMPLIES= TLS LDAP_USE= OPENLDAP=yes LDAP_PREVENTS= DANE BDB_USES= bdb GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm GDBM_CONFIGURE_WITH= compat SMTPUTF8_LIB_DEPENDS= libidn2.so:dns/libidn2 libicui18n.so:devel/icu .include .if ${OPSYS} == FreeBSD && ${OSVERSION} < 1200000 PKGNAMESUFFIX?= ${TLS_SUFFIX}${SASL_SUFFIX}${LDAP_SUFFIX}${BDB_SUFFIX}${PKGNAMESUFFIX2} .endif .if ${PORT_OPTIONS:MSHMEM} && !defined(BUILDING_INDEX) IPCCHECK!= ipcrm -q 0 2>&1 || true .if ${IPCCHECK:Mimplemented} IGNORE= your system does not support sysvipc .endif .endif .if ${PORT_OPTIONS:MBDB} BDB_SUFFIX= +${BDB_INCLUDE_DIR:S,^${LOCALBASE}/include/,,} CONFLICTS+= sendmail-ldap-8.* sendmail-sasl2-8.* sendmail-tls-8.* .endif .if ${PORT_OPTIONS:MLDAP} LDAP_SUFFIX?= +ldap CONFLICTS+= sendmail-sasl2-8.* sendmail-tls-8.* .endif .if ${PORT_OPTIONS:MSASL} SASL_SUFFIX?= +sasl2 CONFLICTS+= sendmail-ldap-8.* sendmail-tls-8.* .endif .if ${PORT_OPTIONS:MCYRUSLOOKUP} .if ! ${PORT_OPTIONS:MSOCKETMAP} IGNORE= option CYRUSLOOKUP requires option SOCKETMAP .else EXTRA_PATCHES+= ${FILESDIR}/cyruslookup.patch .endif .endif .if ${PORT_OPTIONS:MTLS} TLS_SUFFIX?= +tls CONFLICTS+= sendmail-ldap-8.* sendmail-sasl2-8.* .endif MAKE_PKGNAMES= for i in "" +tls; do \ for j in "" +sasl2; do \ for k in "" +ldap; do \ for l in "" +db48 +db5 +db6; do \ echo "sendmail$${i}$${j}$${k}$${l}-8.*" ;\ done done done done ALL_PKGNAMES!= ${MAKE_PKGNAMES} CONFLICTS2!= ${MAKE_PKGNAMES} | ${GREP} -v "${PORTNAME}${PKGNAMESUFFIX:S|${PKGNAMESUFFIX2}||}-8." CONFLICTS+= ${CONFLICTS2} # Build site.config.m4 SITE+= ${FILESDIR}/site.config.m4 .if ${PORT_OPTIONS:MIPV6} SITE+= ${FILESDIR}/site.config.m4.ipv6 .endif .if ${PORT_OPTIONS:MDANE} SITE+= ${FILESDIR}/site.config.m4.dane .endif .if ${PORT_OPTIONS:MSASL} SITE+= ${FILESDIR}/site.config.m4.sasl2 .endif .if ${PORT_OPTIONS:MLDAP} SITE+= ${FILESDIR}/site.config.m4.ldap .endif .if ${PORT_OPTIONS:MBLACKLISTD} SITE+= ${FILESDIR}/site.config.m4.blacklistd .endif .if ${PORT_OPTIONS:MSMTPUTF8} SITE+= ${FILESDIR}/site.config.m4.smtputf8 .endif .if ${PORT_OPTIONS:MMILTER} SITE+= ${FILESDIR}/site.config.m4.milter .endif .if ${PORT_OPTIONS:MGDBM} NO_PACKAGE= GPLv3 license conflict SITE+= ${FILESDIR}/site.config.m4.gdbm .endif SED_SCRIPT= -e "s|\`-O'|\`${CFLAGS}'|" \ -e 's|%%CC%%|${CC}|' -e 's|%%LD%%|${LD}|' .if ! ${PORT_OPTIONS:MNIS} SED_SCRIPT+= -e "s;-DNIS ;;" .endif +post-patch: + @cd ${WRKSRC} && ${FIND} cf -type f -name "*.orig" -print0 | ${XARGS} -0 ${RM} + do-configure: .if ${PORT_OPTIONS:MGDBM} @(if [ ! -e "${LOCALBASE}/lib/libgdbm_compat.so" ] ; then \ ${ECHO_MSG} "===> option COMPAT is missing in databases/gdbm."; \ ${FALSE}; \ fi) .endif .if ${PORT_OPTIONS:MBLACKLISTD} @(if [ ! -e "${DESTDIR}/usr/lib/libblacklist.so" ] ; then \ ${ECHO_MSG} "===> libblacklist.so not found. Please update to FreeBSD 11"; \ ${FALSE}; \ fi) .endif ${REINPLACE_CMD} ${SED_SCRIPT} ${WRKSRC}/devtools/OS/FreeBSD ${SED} -e "s=%%PREFIX%%=${PREFIX}=g" \ -e "s=%%LOCALBASE%%=${LOCALBASE}=g" \ ${SITE} > ${WCONF}/site.config.m4 .if ${PORT_OPTIONS:MBDB} ${ECHO_CMD} \ 'APPENDDEF(`confENVDEF'\'', `-I${BDB_INCLUDE_DIR}'\'')' \ >> ${WCONF}/site.config.m4 ${ECHO_CMD} \ 'APPENDDEF(`confLIBDIRS'\'', `-L${LOCALBASE}/lib'\'')' \ >> ${WCONF}/site.config.m4 .for i in sendmail editmap makemap praliases vacation ${ECHO_CMD} \ 'APPENDDEF(`conf_${i}_LIBS'\'', `-l${BDB_LIB_NAME}'\'')' \ >> ${WCONF}/site.config.m4 .endfor .endif .if ${PORT_OPTIONS:MSOCKETMAP} ${ECHO_CMD} \ 'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DSOCKETMAP'\'')' \ >> ${WCONF}/site.config.m4 .endif .if ${PORT_OPTIONS:MPICKY_HELO_CHECK} ${ECHO_CMD} \ 'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DPICKY_HELO_CHECK'\'')' \ >> ${WCONF}/site.config.m4 .endif .if ! ${PORT_OPTIONS:MSHMEM} ${ECHO_CMD} \ 'APPENDDEF(`confENVDEF'\'', `-DSM_CONF_SHM=0'\'')' \ >> ${WCONF}/site.config.m4 .endif .if ! ${PORT_OPTIONS:MSEM} ${ECHO_CMD} \ 'APPENDDEF(`confENVDEF'\'', `-DSM_CONF_SEM=0'\'')' \ >> ${WCONF}/site.config.m4 .endif .if ! ${PORT_OPTIONS:MLA} ${ECHO_CMD} \ 'APPENDDEF(`confENVDEF'\'', `-DLA_TYPE=LA_ZERO'\'')' \ >> ${WCONF}/site.config.m4 .endif post-build: (cd ${WRKSRC}/doc/op && \ ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} op.txt) pre-install: ${MKDIR} ${STAGEDIR}/etc/mail @${CAT} ${PKGDIR}/pkg-plist >${PLIST} @cd ${WRKSRC} && ${FIND} cf -type f | \ ${AWK} '{print "share/sendmail/" $$1}' >>${PLIST} .if ${PORT_OPTIONS:MDOCS} .for i in ${DOCS} @${ECHO_CMD} `${BASENAME} ${i}` | \ ${AWK} '{print "%%DOCSDIR%%/" $$1}' >>${PLIST} .endfor .if ${PORT_OPTIONS:MCYRUSLOOKUP} @${ECHO_CMD} "share/doc/sendmail/CYRUS_LOOKUP" >>${PLIST} .endif .endif ${MKDIR} ${STAGEDIR}${PREFIX}/etc/mail @${SED} \ -e "s=\([ ]\)/.*$$=\\1${SENDMAIL}=" \ ${FILESDIR}/mailer.conf \ > ${STAGEDIR}${PREFIX}/etc/mail/mailer.conf.sendmail # We want mail.local and rmail for our system. # the build install catmans only, we have to fix this. post-install: (cd ${WRKSRC}/mail.local && \ ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} force-install) (cd ${WRKSRC}/rmail && \ ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} force-install) .for i in ${LMAN8} ${INSTALL_MAN} ${WRKSRC}/*/${i} ${STAGEDIR}${MANPREFIX}/man/man8/ .endfor .for i in ${LMAN5} ${INSTALL_MAN} ${WRKSRC}/*/${i} ${STAGEDIR}${MANPREFIX}/man/man5/ .endfor .for i in ${LMAN1} ${INSTALL_MAN} ${WRKSRC}/*/${i} ${STAGEDIR}${MANPREFIX}/man/man1/ .endfor ${MKDIR} ${STAGEDIR}${PREFIX}/share/sendmail ${TAR} -C ${WRKSRC} -cf - cf | \ ${TAR} -C ${STAGEDIR}${PREFIX}/share/sendmail -xf - ${RM} ${STAGEDIR}${PREFIX}/man/cat*/* # final perm of sendmail is 2555 (see plist), needed for strip cmd ${CHMOD} 755 ${STAGEDIR}${PREFIX}/sbin/sendmail ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/vacation ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/rmail ${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/* ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/* post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}/ ${INSTALL_DATA} ${WRKSRC}/doc/op/op.ps ${STAGEDIR}${DOCSDIR}/op.ps ${INSTALL_DATA} ${WRKSRC}/doc/op/op.txt ${STAGEDIR}${DOCSDIR}/op.txt ${INSTALL_DATA} ${WRKSRC}/devtools/README ${STAGEDIR}${DOCSDIR}/DEVTOOLS ${INSTALL_DATA} ${WRKSRC}/sendmail/README ${STAGEDIR}${DOCSDIR}/SENDMAIL ${INSTALL_DATA} ${WRKSRC}/mail.local/README ${STAGEDIR}${DOCSDIR}/MAIL.LOCAL ${INSTALL_DATA} ${WRKSRC}/smrsh/README ${STAGEDIR}${DOCSDIR}/SMRSH .if ${PORT_OPTIONS:MCYRUSLOOKUP} ${INSTALL_DATA} ${FILESDIR}/CYRUS_LOOKUP ${STAGEDIR}${DOCSDIR}/CYRUS_LOOKUP .endif mailer.base: @${SED} \ -e "s=\([ ]\)/.*$$=\\1${BASEMAIL}=" \ ${FILESDIR}/mailer.conf > ${DESTDIR}/etc/mail/mailer.conf.new ${MV} ${DESTDIR}/etc/mail/mailer.conf.new \ ${DESTDIR}/etc/mail/mailer.conf mailer.conf: .if exists(${DESTDIR}${PREFIX}/etc/mail/mailer.conf.sendmail) @${CP} -v ${DESTDIR}${PREFIX}/etc/mail/mailer.conf.sendmail \ ${DESTDIR}${PREFIX}/etc/mail/mailer.conf .else @${MKDIR} ${DESTDIR}${PREFIX}/etc/mail @${SED} \ -e "s=\([ ]\)/.*$$=\\1${SENDMAIL}=" \ ${FILESDIR}/mailer.conf \ > ${DESTDIR}${PREFIX}/etc/mail/mailer.conf .endif # create sumbit.cf on older systems # submit.cf: ${DESTDIR}/etc/mail/submit.cf ${DESTDIR}/etc/mail/submit.mc: ${INSTALL_DATA} ${PREFIX}/share/sendmail/cf/cf/submit.mc \ ${DESTDIR}/etc/mail/submit.mc ${DESTDIR}/etc/mail/submit.cf: ${DESTDIR}/etc/mail/submit.mc @( cd ${DESTDIR}/etc/mail && ${MAKE} \ SENDMAIL_CF_DIR=${PREFIX}/share/sendmail/cf \ SENDMAIL_MC=submit ) # create basics for smtp-auth # howto-sasldb: @${ECHO_CMD} "# Links:" @${ECHO_CMD} "#" @${ECHO_CMD} "# http://www.sendmail.org/~gshapiro/" @${ECHO_CMD} "# http://www.sendmail.org/~ca/email/auth.html" @${ECHO_CMD} "# http://www.bme.ogi.edu/~pchytil/linux/sendmail/" @${ECHO_CMD} "# http://blue-labs.org/software/sm-pgsql/" @${ECHO_CMD} "# http://www.falkotimme.com/howtos/sendmail_smtp_auth_tls/" @${ECHO_CMD} "#" # create certificates for TLS/SSL # tls-install: ${SETENV} DESTDIR=${DESTDIR} FILESDIR=${FILESDIR} \ ${SH} ${FILESDIR}/tls-install.sh help: @${ECHO_CMD} "# additional targets:" @${ECHO_CMD} "#" @${ECHO_CMD} "# configure ${DESTDIR}/etc/mail/mailer.conf" @${ECHO_CMD} "# for sendmail from ports" @${ECHO_CMD} "make mailer.conf" @${ECHO_CMD} "# for sendmail in the base" @${ECHO_CMD} "make mailer.base" @${ECHO_CMD} "#" @${ECHO_CMD} "# show howto for configuring sasldb" @${ECHO_CMD} "make howto-sasldb" @${ECHO_CMD} "#" @${ECHO_CMD} "# create a self-signed certificate" @${ECHO_CMD} "make tls-install" @${ECHO_CMD} "#" .include .if ${PORT_OPTIONS:MTLS} .if ${SSL_DEFAULT} != base SITE+= ${FILESDIR}/site.config.m4.ssl .endif SITE+= ${FILESDIR}/site.config.m4.tls .endif .if exists(${FILESDIR}/site.config.m4.local) SITE+= ${FILESDIR}/site.config.m4.local .endif .if ${PREFIX} == "/usr" pre-everything:: @${ECHO_CMD} "#" @${ECHO_CMD} "# You can't override the base sendmail this way." @${ECHO_CMD} "# your version FreeBSD use mailwrapper." @${ECHO_CMD} "#" @${ECHO_CMD} "# Please install with normal PREFIX" @${ECHO_CMD} "# and activate the port version with" @${ECHO_CMD} "# cd /usr/local/etc/mail && cp mailer.conf.sendmail mailer.conf" @${ECHO_CMD} "#" @${FALSE} .endif .include diff --git a/mail/sendmail/files/cyruslookup.patch b/mail/sendmail/files/cyruslookup.patch index a321b6a4a70e..8fe86cf886a4 100644 --- a/mail/sendmail/files/cyruslookup.patch +++ b/mail/sendmail/files/cyruslookup.patch @@ -1,161 +1,221 @@ -diff -ruN cf.orig/feature/ckuser_cyrus.m4 cf/feature/ckuser_cyrus.m4 ---- cf.orig/feature/ckuser_cyrus.m4 Thu Jan 1 07:00:00 1970 -+++ cf/feature/ckuser_cyrus.m4 Wed Sep 22 19:53:53 2004 +--- cf/feature/ckuser_cyrus.m4.orig 2021-03-23 05:32:02 UTC ++++ cf/feature/ckuser_cyrus.m4 @@ -0,0 +1,34 @@ +divert(-1) +# Written by Mike Boev , 2004. +# Homepage: http://tric.ru/users/mike/ckuser_cyrus/ +# Inspired by: mrs_cyrus.m4 by Andrzej Adam Filip +# +# By using this file, you agree to the terms and conditions set +# forth in the LICENSE file which can be found at the top level of +# the sendmail distribution. +# +divert(0) +VERSIONID(`Id: ckuser_cyrus.m4,v 1.4 2004/09/21 19:02:17 m Exp ') +divert(-1) +define(`CYRUS_SMMAPD_SOCKET', -+ ifelse(len(X`'_ARG_), `1', `local:/var/imap/socket/smmapd', _ARG_)) ++ ifelse(len(X`'_ARG_), `1', `local:/var/imap/socket/smmap', _ARG_)) + +MODIFY_MAILER_FLAGS(`CYRUSV2',`+5') + +LOCAL_CONFIG +# Cyrus smmapd(8)'s map for verifying mailboxes of local recipients +Kcyrus socket -a -T CYRUS_SMMAPD_SOCKET + +LOCAL_RULESETS +SLocal_localaddr +R$+ $: $> "ckuser_cyrus" $1 + +Sckuser_cyrus +#Query smmapd(8) +R$+ $: $1 $| $(cyrus $1 $: $) +#Cyrus OK, skip +R $* $| $* $@ $1 +#Over quota or lookup failure +R $* $| $* $# error $@ 4.3.0 $: "451 TEMPFAIL." +#Mailbox doesn't exist or its ACL forbids posting +R $* $| $* $# error $@ 5.1.1 $: "550 Mailbox is not available." -diff -ruN cf.orig/feature/mrs.m4 cf/feature/mrs.m4 ---- cf.orig/feature/mrs.m4 Thu Jan 1 07:00:00 1970 -+++ cf/feature/mrs.m4 Wed Sep 22 19:54:56 2004 -@@ -0,0 +1,25 @@ -+divert(-1) -+dnl -+dnl Updates: http://anfi.webhop.net/sendmail/mrs.html -+dnl -+dnl By using this file, you agree to the terms and conditions set -+dnl forth in the LICENSE file which can be found at the top level of -+dnl the sendmail distribution (sendmail-8.12). -+dnl -+dnl Contributed by Andrzej Filip -+dnl -+dnl THE FEATURE REQUIRES PATCHING cf/m4/proto.m4 -+dnl SEE THE LINK AFTER "Updates:" -+dnl -+dnl Log: mrs.m4,v -+dnl Revision 8.3 2004/03/18 21:39:22 anfi -+dnl Changed comments prefixes to dnl to avoid m4 expansions -+dnl -+dnl Revision 8.2 2004/03/15 09:14:28 anfi -+dnl Added "Updates:" web link. -+dnl -+divert(0) -+VERSIONID(`Id: mrs.m4,v 8.3 2004/03/18 21:39:22 anfi Exp ') -+divert(-1) -+ -+define(`_MRS_RELAY_', `') -diff -ruN cf.orig/feature/mrs_cyrus.m4 cf/feature/mrs_cyrus.m4 ---- cf.orig/feature/mrs_cyrus.m4 Thu Jan 1 07:00:00 1970 -+++ cf/feature/mrs_cyrus.m4 Wed Sep 22 19:55:05 2004 -@@ -0,0 +1,77 @@ +--- cf/feature/mrs_cyrus.m4.orig 2021-03-23 05:32:02 UTC ++++ cf/feature/mrs_cyrus.m4 +@@ -0,0 +1,80 @@ +divert(-1) +dnl +dnl Updates: http://anfi.homeunix.net/sendmail/rtcyrus2.html +dnl +dnl By using this file, you agree to the terms and conditions set +dnl forth in the LICENSE file which can be found at the top level of +dnl the sendmail distribution (sendmail-8.12). +dnl +dnl Contributed by Andrzej Filip +dnl +dnl Log: mrs_cyrus.m4,v ++dnl Revision 8.9 2005/01/24 19:44:53 anfi ++dnl Fixed handling of empty relay ++dnl +dnl Revision 8.8 2004/08/11 18:20:05 anfi +dnl "stipdom" replaced by "dummy" +dnl +dnl Revision 8.7 2004/04/01 14:29:50 anfi +dnl Added "stripdom" handling in mrs_cyrus_user. +dnl Fully defined error mailer details. +dnl +dnl Revision 8.6 2004/03/18 23:17:57 anfi +dnl Fundamental rewrite. +dnl +ifdef(`_MRS_RELAY_',`', + `errprint(`*** ERROR: FEATURE(mrs_cyrus) requires FEATURE(mrs) +')') +ifdef(`_MRS_CYRUS_', + `errprint(`*** ERROR: There can be only one FEATURE(mrs_cyrus*) +')') +define(`_MRS_CYRUS_',`') + +divert(0) -+VERSIONID(`Id: mrs_cyrus.m4,v 8.8 2004/08/11 18:20:05 anfi Exp ') ++VERSIONID(`Id: mrs_cyrus.m4,v 8.9 2005/01/24 19:44:53 anfi Exp ') +divert(-1) +define(`CYRUS_SMMAPD_SOCKET', -+ ifelse(len(X`'_ARG_), `1', `/var/imap/socket/smmapd', _ARG_)) ++ ifelse(len(X`'_ARG_), `1', `/var/imap/socket/smmap', _ARG_)) +define(`CYRUS_SMMAPD_SOCKET_TYPE', + ifelse(len(X`'_ARG2_), `1', `local', _ARG2_)) +LOCAL_CONFIG +# Add 3 mrs_cyrus rule sets to list of valid mrs rule sets +C{MRS}mrs_cyrus_user mrs_cyrus_mailertable mrs_cyrus_stickyhub +# map for checking cyrus imap mailbox existence +Kcyrus socket -a -T CYRUS_SMMAPD_SOCKET_TYPE:CYRUS_SMMAPD_SOCKET + +LOCAL_RULESETS +###################################################################### +### feature mrs_cyrus rulesets to be used by feature mrs +###################################################################### + +Smrs_cyrus_user +R<$*> $+ <@$+.> $: <$1> $2 <@ $3 > +R<$*> $+ <@$*> $: <$1> $2 <@$3> $| $(cyrus $2 $: $) +R<$*> $+ <@$*> $| $* $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later." +R<$*> $+ <@$*> $| $* $# cyrusv2 $@ dummy $: $4 +R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3> +R $+ <@dummy> $@ $1 ++R< > $* $# error $@ 5.1.1 $: "550 User unknown" +R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 +R< $+ > $* $>MailerToTriple < $1 > $2 -+R< > $* $# error $@ 5.1.1 $: "550 User unknown" + +Smrs_cyrus_mailertable +R<$*> $+ <@$+.> $: <$1> $2 <@ $3 > +R<$*> $+ <@$+> $: <$1> $2 <@$3> $| $(cyrus $2@$3 $: $) +R<$*> $+ <@$+> $| $* $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later." +R<$*> $+ <@$+> $| $* $# cyrusv2d $@ dummy $: $2 <@$3> +R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3> ++R< > $* $# error $@ 5.1.1 $: "550 User unknown" +R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3 +R< $+ > $* $>MailerToTriple < $1 > $2 -+R< > $* $# error $@ 5.1.1 $: "550 User unknown" + +Smrs_cyrus_stickyhub +R $+ <@$+.> $: $1 <@ $2 > +R $* <@dummy> $@ $1 +R $+ <@$={VirtCyrus}> $: $1 <@$2> $| $(cyrus $1@$2 $: $) +R $+ <@$={VirtCyrus}> $| $* $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later." +R $+ <@$={VirtCyrus}> $| $* $# cyrusv2d $@ dummy $: $1 <@$2> +R $+ <@$={VirtCyrus}> $| $* $# error $@ 5.1.1 $: "550 User unknown" +R $=L <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: @$1 +R $* <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: $1 -diff -ruN cf.orig/m4/proto.m4 cf/m4/proto.m4 ---- cf.orig/m4/proto.m4 Wed Sep 22 20:15:04 2004 -+++ cf/m4/proto.m4 Wed Sep 22 19:52:41 2004 -@@ -1315,6 +1315,9 @@ +--- cf/feature/mrs.m4.orig 2021-03-23 05:32:02 UTC ++++ cf/feature/mrs.m4 +@@ -0,0 +1,25 @@ ++divert(-1) ++dnl ++dnl Updates: http://anfi.webhop.net/sendmail/mrs.html ++dnl ++dnl By using this file, you agree to the terms and conditions set ++dnl forth in the LICENSE file which can be found at the top level of ++dnl the sendmail distribution (sendmail-8.12). ++dnl ++dnl Contributed by Andrzej Filip ++dnl ++dnl THE FEATURE REQUIRES PATCHING cf/m4/proto.m4 ++dnl SEE THE LINK AFTER "Updates:" ++dnl ++dnl Log: mrs.m4,v ++dnl Revision 8.3 2004/03/18 21:39:22 anfi ++dnl Changed comments prefixes to dnl to avoid m4 expansions ++dnl ++dnl Revision 8.2 2004/03/15 09:14:28 anfi ++dnl Added "Updates:" web link. ++dnl ++divert(0) ++VERSIONID(`Id: mrs.m4,v 8.3 2004/03/18 21:39:22 anfi Exp ') ++divert(-1) ++ ++define(`_MRS_RELAY_', `') +--- cf/m4/proto.m4.orig 2020-07-02 16:45:12 UTC ++++ cf/m4/proto.m4 +@@ -1373,6 +1373,9 @@ R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2 R< error : $+ > $* $#error $: $1 R< local : $* > $* $>CanonLocal < $1 > $2 +ifdef(`_MRS_RELAY_',`dnl +R< $={MRS} : $* > $* $@ $> $1 < $2 > $3 +dnl') dnl it is $~[ instead of $- to avoid matches on IPv6 addresses R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer +--- cf/mailer/cyrusv2.m4.orig 2020-05-19 19:54:31 UTC ++++ cf/mailer/cyrusv2.m4 +@@ -1,18 +1,30 @@ + PUSHDIVERT(-1) +-# +-# Copyright (c) 2002 Proofpoint, Inc. and its suppliers. +-# All rights reserved. +-# +-# By using this file, you agree to the terms and conditions set +-# forth in the LICENSE file which can be found at the top level of +-# the sendmail distribution. +-# +-# Contributed by Kenneth Murchison. +-# ++dnl ++dnl Updates: http://anfi.webhop.org/sendmail/cyrusv2.html ++dnl ++dnl By using this file, you agree to the terms and conditions set ++dnl forth in the LICENSE file which can be found at the top level of ++dnl the sendmail distribution (sendmail-8.12). ++dnl ++dnl Original version contributed by Kenneth Murchison. ++dnl Version with cyrusv2d mailer added contributed by Andrzej Filip ++dnl ++dnl $Log: cyrusv2.m4,v $ ++dnl Revision 8.3 2004/03/18 21:38:27 anfi ++dnl Changed comments prefixes to dnl to avoid m4 expansions ++dnl ++dnl Revision 8.2 2004/03/15 09:14:28 anfi ++dnl Added "Updates:" web link. ++dnl + +-_DEFIFNOT(`_DEF_CYRUSV2_MAILER_FLAGS', `lsDFMnqXz') +-_DEFIFNOT(`CYRUSV2_MAILER_FLAGS', `A@/:|m') +-ifdef(`CYRUSV2_MAILER_ARGS',, `define(`CYRUSV2_MAILER_ARGS', `FILE /var/imap/socket/lmtp')') ++_DEFIFNOT(`CYRUS_LMTP_SOCKET',`/var/imap/socket/lmtp') ++_DEFIFNOT(`_DEF_CYRUSV2_MAILER_FLAGS', `lsDFMnqXz1') ++_DEFIFNOT(`_DEF_CYRUSV2D_MAILER_FLAGS', _DEF_CYRUSV2_MAILER_FLAGS) ++_DEFIFNOT(`CYRUSV2_MAILER_FLAGS', `mA@/:|') ++_DEFIFNOT(`CYRUSV2D_MAILER_FLAGS', `m') ++dnl ++ifdef(`CYRUSV2_MAILER_ARGS',, `define(`CYRUSV2_MAILER_ARGS', `FILE 'CYRUS_LMTP_SOCKET)') ++ifdef(`CYRUSV2D_MAILER_ARGS',, `define(`CYRUSV2D_MAILER_ARGS', _CYRUS_V2_MAILER_ARGS)') + define(`_CYRUSV2_QGRP', `ifelse(defn(`CYRUSV2_MAILER_QGRP'),`',`', ` Q=CYRUSV2_MAILER_QGRP,')')dnl + + POPDIVERT +@@ -21,9 +33,13 @@ POPDIVERT + ### Cyrus V2 Mailer specification ### + ######################################### + +-VERSIONID(`$Id: cyrusv2.m4,v 1.2 2013-11-22 20:51:14 ca Exp $') ++VERSIONID(`$Id: cyrusv2.m4,v 8.3 2004/03/18 21:38:27 anfi Exp $') + + Mcyrusv2, P=[IPC], F=_MODMF_(CONCAT(_DEF_CYRUSV2_MAILER_FLAGS, CYRUSV2_MAILER_FLAGS), `CYRUSV2'), + S=EnvFromSMTP/HdrFromL, R=EnvToL/HdrToL, E=\r\n, ++ _OPTINS(`CYRUSV2_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`CYRUSV2_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`CYRUSV2_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,_CYRUSV2_QGRP ++ A=CYRUSV2_MAILER_ARGS ++Mcyrusv2d, P=[IPC], F=_MODMF_(CONCAT(_DEF_CYRUSV2D_MAILER_FLAGS, CYRUSV2D_MAILER_FLAGS), `CYRUSV2D'), ++ S=EnvFromSMTP/HdrFromL, R=ifdef(`_ALL_MASQUERADE_', `EnvToSMTP/HdrFromSMTP', `EnvToSMTP'), E=\r\n, + _OPTINS(`CYRUSV2_MAILER_MAXMSGS', `m=', `, ')_OPTINS(`CYRUSV2_MAILER_MAXRCPTS', `r=', `, ')_OPTINS(`CYRUSV2_MAILER_CHARSET', `C=', `, ')T=DNS/RFC822/SMTP,_CYRUSV2_QGRP + A=CYRUSV2_MAILER_ARGS