diff --git a/mail/sendmail-devel/Makefile b/mail/sendmail-devel/Makefile index 0c1625babf05..1e1bd2fac092 100644 --- a/mail/sendmail-devel/Makefile +++ b/mail/sendmail-devel/Makefile @@ -1,379 +1,379 @@ PORTNAME= sendmail -PORTVERSION= 8.18.0.9 -PORTREVISION= 1 +PORTVERSION= 8.18.1.9 +PORTREVISION= 0 CATEGORIES= mail MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/snapshots/ PKGNAMESUFFIX?= -devel${PKGNAMESUFFIX2} DISTNAME= ${PORTNAME}.${PORTVERSION} MAINTAINER= dinoex@FreeBSD.org COMMENT= Reliable, highly configurable mail transfer agent with utilities WWW= https://www.sendmail.org/ 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=${PREFIX}/share/ 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 MTA_STS \ TLS_CERT_CHAIN 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 MTA_STS_DESC= Enable MTA-STS support (option SOCKETMAP and TLS needed) TLS_CERT_CHAIN_DESC= Enable certificate chain file support (incompatibility) TLS_USES= ssl SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 SASLAUTHD_RUN_DEPENDS= saslauthd:security/cyrus-sasl2-saslauthd DANE_IMPLIES= TLS LDAP_USES= ldap LDAP_IMPLIES= DANE BDB_USES= bdb GDBM_LIB_DEPENDS= libgdbm.so:databases/gdbm GDBM_CONFIGURE_WITH= compat CYRUSLOOKUP_IMPLIES= SOCKETMAP SMTPUTF8_LIB_DEPENDS= libidn2.so:dns/libidn2 libicui18n.so:devel/icu MTA_STS_IMPLIES= SOCKETMAP TLS TLS_CERT_CHAIN_IMPLIES= TLS .include .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} EXTRA_PATCHES+= ${FILESDIR}/cyruslookup.patch .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} LICENSE_PERMS= dist-mirror dist-sell no-pkg-mirror no-pkg-sell auto-accept SITE+= ${FILESDIR}/site.config.m4.gdbm .endif .if ${PORT_OPTIONS:MMTA_STS} SITE+= ${FILESDIR}/site.config.m4.mta-sts .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 ${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 \ ${STAGEDIR}${PREFIX}/share/man/cat1 \ ${STAGEDIR}${PREFIX}/share/man/cat5 \ ${STAGEDIR}${PREFIX}/share/man/cat8 @${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}${PREFIX}/share/man/man8/ .endfor .for i in ${LMAN5} ${INSTALL_MAN} ${WRKSRC}/*/${i} ${STAGEDIR}${PREFIX}/share/man/man5/ .endfor .for i in ${LMAN1} ${INSTALL_MAN} ${WRKSRC}/*/${i} ${STAGEDIR}${PREFIX}/share/man/man1/ .endfor ${MKDIR} ${STAGEDIR}${PREFIX}/share/sendmail ${TAR} -C ${WRKSRC} -cf - cf | \ ${TAR} -C ${STAGEDIR}${PREFIX}/share/sendmail -xf - ${RM} -rfv ${STAGEDIR}${PREFIX}/share/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 .if ${PORT_OPTIONS:MTLS_CERT_CHAIN} SITE+= ${FILESDIR}/site.config.m4.tls-cert-chain .endif .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-devel/distinfo b/mail/sendmail-devel/distinfo index e3e4bebdbe34..abad3668fbcd 100644 --- a/mail/sendmail-devel/distinfo +++ b/mail/sendmail-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1706429457 -SHA256 (sendmail.8.18.0.9.tar.gz) = 01a483f54479deef2ea8150ae8c10f126d639d1613bde73681fe0aafbe8e65d7 -SIZE (sendmail.8.18.0.9.tar.gz) = 2401014 +TIMESTAMP = 1740492424 +SHA256 (sendmail.8.18.1.9.tar.gz) = 3e8b517f222d688b332999c42ed76756e8083dd107e77a82cf4a5595683bb7a2 +SIZE (sendmail.8.18.1.9.tar.gz) = 2365426 diff --git a/mail/sendmail-devel/files/patch-FreeBSD b/mail/sendmail-devel/files/patch-FreeBSD index 291926f75d3d..8c36b92f9d51 100644 --- a/mail/sendmail-devel/files/patch-FreeBSD +++ b/mail/sendmail-devel/files/patch-FreeBSD @@ -1,11 +1,11 @@ ---- devtools/OS/FreeBSD.orig 2021-04-05 08:49:42 UTC +--- devtools/OS/FreeBSD.orig 2023-02-09 18:24:38 UTC +++ devtools/OS/FreeBSD -@@ -6,7 +6,7 @@ dnl Place personal settings in devtools/Site/site.conf +@@ -6,7 +6,7 @@ define(`confLIBS', `-lutil') define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX') define(`confLIBS', `-lutil') -define(`confLD', `cc') +define(`confCC', `%%CC%%') define(`confMTLDOPTS', `-pthread') define(`confMTCCOPTS', `-D_THREAD_SAFE') define(`confLDOPTS_SO', `-shared') diff --git a/mail/sendmail-devel/files/patch-Makefile.m4 b/mail/sendmail-devel/files/patch-Makefile.m4 index 20c229c3fbcb..515b01ec7142 100644 --- a/mail/sendmail-devel/files/patch-Makefile.m4 +++ b/mail/sendmail-devel/files/patch-Makefile.m4 @@ -1,20 +1,21 @@ ---- sendmail/Makefile.m4.orig 2021-10-27 09:01:40 UTC +--- sendmail/Makefile.m4.orig 2025-02-05 06:35:18 UTC +++ sendmail/Makefile.m4 -@@ -7,14 +7,15 @@ bldPRODUCT_START(`executable', `sendmail') +@@ -7,6 +7,7 @@ define(`bldSOURCES', `main.c alias.c arpadate.c bf.c c define(`bldBIN_TYPE', `G') define(`bldINSTALL_DIR', `') define(`bldSOURCES', `main.c alias.c arpadate.c bf.c collect.c conf.c control.c convtime.c daemon.c deliver.c domain.c envelope.c err.c headers.c macro.c map.c mci.c milter.c mime.c parseaddr.c queue.c ratectrl.c readcf.c recipient.c sasl.c savemail.c sched.c sfsasl.c shmticklib.c sm_resolve.c srvrsmtp.c stab.c stats.c sysexits.c timers.c tlsh.c tls.c trace.c udb.c usersmtp.c util.c version.c ') +APPENDDEF(`bldSOURCES',`blacklist.c ') PREPENDDEF(`confENVDEF', `confMAPDEF') - bldPUSH_SMLIB(`sm') - bldPUSH_SMLIB(`smutil') + PUSHDIVERT(3) + ldap.c: +@@ -18,8 +19,8 @@ dnl hack: /etc/mail is not defined as "location of .cf dnl hack: /etc/mail is not defined as "location of .cf" in the build system -define(`bldTARGET_INST_DEP', ifdef(`confINST_DEP', `confINST_DEP', -`${DESTDIR}/etc/mail/submit.cf ${DESTDIR}${MSPQ}'))dnl +define(`bldTARGET_INST_DEP', ifdef(`confINST_DEP', `confINST_DEP')) -+ ++dnl define(`bldTARGET_LINKS', ifdef(`confLINKS', `confLINKS', `${DESTDIR}${UBINDIR}/newaliases ${DESTDIR}${UBINDIR}/mailq ${DESTDIR}${UBINDIR}/hoststat ${DESTDIR}${UBINDIR}/purgestat') )dnl diff --git a/mail/sendmail-devel/files/patch-mail.local.8 b/mail/sendmail-devel/files/patch-mail.local.8 index 422b593ef7b2..9927785ef9aa 100644 --- a/mail/sendmail-devel/files/patch-mail.local.8 +++ b/mail/sendmail-devel/files/patch-mail.local.8 @@ -1,57 +1,57 @@ ---- mail.local/mail.local.8.orig 2021-04-05 08:49:42 UTC +--- mail.local/mail.local.8.orig 2023-02-09 18:24:38 UTC +++ mail.local/mail.local.8 @@ -16,9 +16,9 @@ mail.local \- store mail in a mailbox .SH SYNOPSIS .B mail.local -.RB [ \-7 "] [" \-b "] [" \-d "] [" \-D +.RB [ \-7 "] [" \-b "] [" \-B "] [" \-d "] [" \-D .IR mbdb ] -.RB [ \-l "] [" \-f +.RB [ \-l "] [" \-s "] [" \-f \fIfrom\fR|\fB\-r\fR .IR from ] .RB [ \-h -@@ -38,6 +38,11 @@ The options are as follows: +@@ -38,6 +38,11 @@ Do not advertise 8BITMIME support in LMTP mode. .B \-7 Do not advertise 8BITMIME support in LMTP mode. .TP +.B \-B +Turn off the attempts to notify the +.Dq biff +service. +.TP .B \-b Return a permanent error instead of a temporary error if a mailbox exceeds quota. -@@ -56,6 +61,13 @@ Specify the sender's name. +@@ -56,6 +61,13 @@ Turn on LMTP mode. .TP .B \-l Turn on LMTP mode. +.TP +.B \-s +Turn off the +.Xr fsync 2 +call that forces the mailbox to be committed to disk before returning a +.Dq success +status. .TP .BI \-r " from" Specify the sender's name (for backward compatibility). @@ -120,7 +132,7 @@ Used to set the appropriate time zone on the timestamp .SH FILES .PD 0.2v .TP 2.2i -/tmp/local.XXXXXX +/var/tmp/local.XXXXXX temporary files .TP /var/mail/user -@@ -131,7 +143,6 @@ lock file for a user's default mailbox +@@ -131,7 +143,6 @@ mail(1), .PD .SH SEE ALSO mail(1), -xsend(1), flock(2), getservbyname(3), comsat(8), diff --git a/mail/sendmail-devel/files/patch-mail.local.c b/mail/sendmail-devel/files/patch-mail.local.c index 3691f145e977..191f53fb637d 100644 --- a/mail/sendmail-devel/files/patch-mail.local.c +++ b/mail/sendmail-devel/files/patch-mail.local.c @@ -1,97 +1,97 @@ ---- mail.local/mail.local.c.orig 2021-06-22 08:24:43 UTC +--- mail.local/mail.local.c.orig 2023-04-27 10:39:42 UTC +++ mail.local/mail.local.c -@@ -154,6 +154,8 @@ int ExitVal = EX_OK; /* sysexits.h error value. */ +@@ -154,6 +154,8 @@ bool BounceQuota = false; /* permanent error when ove bool HoldErrs = false; /* Hold errors in ErrBuf */ bool LMTPMode = false; bool BounceQuota = false; /* permanent error when over quota */ +bool NoBiff = false; +bool NoFsync = false; bool CloseMBDB = false; char *HomeMailFile = NULL; /* store mail in homedir */ @@ -237,12 +239,12 @@ main(argc, argv) /* HACK: add U to all options - this should be only for USE_EAI */ #if HASHSPOOL - while ((ch = getopt(argc, argv, "7bdD:f:h:r:lH:p:nUV")) != -1) + while ((ch = getopt(argc, argv, "7bBdD:f:h:r:lH:p:nUV")) != -1) #else /* HASHSPOOL */ # if _FFR_SPOOL_PATH - while ((ch = getopt(argc, argv, "7bdD:f:h:r:lp:UV")) != -1) + while ((ch = getopt(argc, argv, "7bBdD:f:h:r:lp:UV")) != -1) # else - while ((ch = getopt(argc, argv, "7bdD:f:h:r:lUV")) != -1) + while ((ch = getopt(argc, argv, "7bBdD:f:h:r:lUV")) != -1) # endif #endif /* HASHSPOOL */ { @@ -252,6 +254,10 @@ main(argc, argv) EightBitMime = false; break; + case 'B': + NoBiff = true; + break; + case 'b': /* bounce mail when over quota. */ BounceQuota = true; break; @@ -361,6 +367,10 @@ main(argc, argv) #endif break; + case 's': + NoFsync = true; + break; + case '?': default: usage(); @@ -370,7 +380,8 @@ main(argc, argv) argv += optind; /* initialize biff structures */ - notifybiff(NULL); + if (!NoBiff) + notifybiff(NULL); err = sm_mbdb_initialize(mbdbname); if (err != EX_OK) @@ -1300,6 +1311,7 @@ tryagain: /* Get the starting offset of the new message */ curoff = lseek(mbfd, (off_t) 0, SEEK_END); + if (!NoBiff) (void) sm_snprintf(biffmsg, sizeof(biffmsg), "%s@%lld\n", name, (LONGLONG_T) curoff); @@ -1362,7 +1374,7 @@ tryagain: } /* Flush to disk, don't wait for update. */ - if (fsync(mbfd) < 0) + if (!NoFsync && fsync(mbfd) < 0) { mailerr("450 4.2.0", "Sync %s: %s", path, sm_errstring(errno)); err3: @@ -1433,7 +1445,7 @@ err0: /* Attempt to truncate back to pre-write size */ goto err3; } - else + else if (!NoBiff) notifybiff(biffmsg); if ( @@ -1618,9 +1630,9 @@ usage() ExitVal = EX_USAGE; /* XXX add U to options for USE_EAI */ #if _FFR_SPOOL_PATH - mailerr(NULL, "usage: mail.local [-7] [-b] [-d] [-l] [-f from|-r from] [-h filename] [-p path] user ..."); + mailerr(NULL, "usage: mail.local [-7] [-b] [-B] [-d] [-l] [-f from|-r from] [-h filename] [-p path] user ..."); #else - mailerr(NULL, "usage: mail.local [-7] [-b] [-d] [-l] [-f from|-r from] [-h filename] user ..."); + mailerr(NULL, "usage: mail.local [-7] [-b] [-B] [-d] [-l] [-f from|-r from] [-h filename] user ..."); #endif sm_exit(ExitVal); } diff --git a/mail/sendmail-devel/files/patch-sendmail.8 b/mail/sendmail-devel/files/patch-sendmail.8 index c7e070611c92..b3d24e22bb7b 100644 --- a/mail/sendmail-devel/files/patch-sendmail.8 +++ b/mail/sendmail-devel/files/patch-sendmail.8 @@ -1,14 +1,14 @@ ---- sendmail/sendmail.8.orig 2023-02-09 18:24:38 UTC +--- sendmail/sendmail.8.orig 2024-01-24 17:09:22 UTC +++ sendmail/sendmail.8 -@@ -552,6 +552,11 @@ for this amount of time, +@@ -552,6 +552,11 @@ The default is five days. failed messages will be returned to the sender. The default is five days. .TP +UseBlacklist +If set, send authentication failure and success notifications to the +.BR blacklistd (8) +daemon. +.TP .RI UserDatabaseSpec= userdatabase If set, a user database is consulted to get forwarding information. You can consider this an adjunct to the aliasing mechanism, diff --git a/mail/sendmail-devel/files/patch-sendmail.h b/mail/sendmail-devel/files/patch-sendmail.h index 89a33cfff8a2..28ed8ba7b790 100644 --- a/mail/sendmail-devel/files/patch-sendmail.h +++ b/mail/sendmail-devel/files/patch-sendmail.h @@ -1,24 +1,24 @@ ---- sendmail/sendmail.h.orig 2023-12-05 09:53:22 UTC +--- sendmail/sendmail.h.orig 2025-02-05 18:32:59 UTC +++ sendmail/sendmail.h @@ -73,6 +73,10 @@ SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail. #endif #include "bf.h" +#if USE_BLACKLIST +#include +#endif +#include "blacklist_client.h" #include "timers.h" #include #include -@@ -2734,6 +2738,10 @@ EXTERN int Hacks; /* bit field of run-time enabled "ha +@@ -2781,6 +2785,10 @@ EXTERN int ConnectionRateWindowSize; #endif EXTERN int ConnectionRateWindowSize; + +#if USE_BLACKLIST +EXTERN bool UseBlacklist; +#endif /* ** Declarations of useful functions diff --git a/mail/sendmail-devel/files/patch-smrsh.8 b/mail/sendmail-devel/files/patch-smrsh.8 index d4061efd46c8..ab2e151a5935 100644 --- a/mail/sendmail-devel/files/patch-smrsh.8 +++ b/mail/sendmail-devel/files/patch-smrsh.8 @@ -1,27 +1,27 @@ --- smrsh/smrsh.8.orig 2023-02-09 18:24:38 UTC +++ smrsh/smrsh.8 -@@ -39,7 +39,7 @@ Briefly, +@@ -39,7 +39,7 @@ by default .I smrsh limits programs to be in a single directory, by default -/usr/adm/sm.bin, +/usr/libexec/sm.bin, allowing the system administrator to choose the set of acceptable commands, and to the shell builtin commands ``exec'', ``exit'', and ``echo''. It also rejects any commands with the characters -@@ -50,13 +50,12 @@ It allows ``||'' and ``&&'' to enable commands like: +@@ -50,13 +50,12 @@ Initial pathnames on programs are stripped, ``"|exec /usr/local/bin/filter || exit 75"'' .PP Initial pathnames on programs are stripped, -so forwarding to ``/usr/ucb/vacation'', -``/usr/bin/vacation'', +so forwarding to ``/usr/bin/vacation'', ``/home/server/mydir/bin/vacation'', and ``vacation'' all actually forward to -``/usr/adm/sm.bin/vacation''. +``/usr/libexec/sm.bin/vacation''. .PP System administrators should be conservative about populating the sm.bin directory. diff --git a/mail/sendmail-devel/files/patch-srvrsmtp.c b/mail/sendmail-devel/files/patch-srvrsmtp.c index 4abe95e30b78..1bc9071e43b4 100644 --- a/mail/sendmail-devel/files/patch-srvrsmtp.c +++ b/mail/sendmail-devel/files/patch-srvrsmtp.c @@ -1,102 +1,102 @@ ---- sendmail/srvrsmtp.c.orig 2024-01-25 05:27:02 UTC +--- sendmail/srvrsmtp.c.orig 2025-02-05 06:35:18 UTC +++ sendmail/srvrsmtp.c -@@ -940,6 +940,9 @@ do \ +@@ -972,6 +972,9 @@ do \ # define SHOWCMDINREPLY(inp) inp # define SHOWSHRTCMDINREPLY(inp) shortenstring(inp, MAXSHORTSTR) #endif +#ifdef USE_BLACKLIST + int saved_bl_fd; +#endif void smtp(nullserver, d_flags, e) -@@ -1528,6 +1531,8 @@ smtp(nullserver, d_flags, e) +@@ -1563,6 +1566,8 @@ smtp(nullserver, d_flags, e) /* check if data is on the socket during the pause */ if ((tp = channel_readable(InChannel, msecs)) != NULL) { + int fd; + greetcode = "554"; nullserver = "Command rejected"; sm_syslog(LOG_INFO, e->e_id, -@@ -1537,6 +1542,8 @@ smtp(nullserver, d_flags, e) +@@ -1572,6 +1577,8 @@ smtp(nullserver, d_flags, e) (int) tp->tv_sec + (tp->tv_usec >= 500000 ? 1 : 0) ); + fd = sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL); + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, fd, "pre-greeting traffic"); } } } -@@ -1655,6 +1662,10 @@ smtp(nullserver, d_flags, e) +@@ -1691,6 +1698,10 @@ smtp(nullserver, d_flags, e) SmtpPhase = "server cmd read"; sm_setproctitle(true, e, "server %s cmd read", CurSmtpClient); +#ifdef USE_BLACKLIST + saved_bl_fd = dup(sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL)); +#endif + /* handle errors */ if (sm_io_error(OutChannel) || (p = sfgets(inp, sizeof(inp), InChannel, -@@ -1965,8 +1976,11 @@ smtp(nullserver, d_flags, e) +@@ -2006,8 +2017,11 @@ smtp(nullserver, d_flags, e) #define LOGAUTHFAIL \ do \ { \ + int fd; \ SET_AUTH_USER_CONDITIONALLY \ message("535 5.7.0 authentication failed"); \ + fd = sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL); \ + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, fd, "AUTH FAIL"); \ if (LogLevel >= 9) \ sm_syslog(LOG_WARNING, e->e_id, \ "AUTH failure (%s): %s (%d) %s%s%.*s, relay=%.100s", \ -@@ -2116,6 +2130,9 @@ smtp(nullserver, d_flags, e) +@@ -2157,6 +2171,9 @@ smtp(nullserver, d_flags, e) DELAY_CONN("AUTH"); if (!sasl_ok || n_mechs <= 0) { + int fd; + fd = sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL); + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, fd, "AUTH LOGIN FAIL"); message("503 5.3.3 AUTH not available"); break; } -@@ -3841,10 +3858,17 @@ smtp(nullserver, d_flags, e) +@@ -3894,10 +3911,17 @@ smtp(nullserver, d_flags, e) ** timeouts for the same connection. */ +#ifdef USE_BLACKLIST + /* no immediate BLACKLIST_ABUSIVE_BEHAVIOR */ + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, saved_bl_fd, "no command issued"); +#endif sm_syslog(LOG_INFO, e->e_id, "%s did not issue MAIL/EXPN/VRFY/ETRN during connection to %s", CurSmtpClient, d); } +#ifdef USE_BLACKLIST + close(saved_bl_fd); +#endif if (tTd(93, 100)) { /* return to handle next connection */ -@@ -3926,7 +3950,10 @@ smtp(nullserver, d_flags, e) +@@ -3979,7 +4003,10 @@ smtp(nullserver, d_flags, e) #if MAXBADCOMMANDS > 0 if (++n_badcmds > MAXBADCOMMANDS) { + int fd; stopattack: + fd = sm_io_getinfo(InChannel, SM_IO_WHAT_FD, NULL); + BLACKLIST_NOTIFY(BLACKLIST_ABUSIVE_BEHAVIOR, fd, "too many bad commands"); message("421 4.7.0 %s Too many bad commands; closing connection", MyHostName); -@@ -3980,6 +4007,9 @@ smtp(nullserver, d_flags, e) +@@ -4033,6 +4060,9 @@ smtp(nullserver, d_flags, e) } #if SASL } +#endif +#ifdef USE_BLACKLIST + close(saved_bl_fd); #endif } SM_EXCEPT(exc, "[!F]*") diff --git a/mail/sendmail-devel/files/patch-usersmtp.c b/mail/sendmail-devel/files/patch-usersmtp.c index 8fff657c2384..c4d44cd62aed 100644 --- a/mail/sendmail-devel/files/patch-usersmtp.c +++ b/mail/sendmail-devel/files/patch-usersmtp.c @@ -1,26 +1,26 @@ ---- sendmail/usersmtp.c.orig 2023-07-27 07:12:46 UTC +--- sendmail/usersmtp.c.orig 2025-02-05 06:35:18 UTC +++ sendmail/usersmtp.c -@@ -1875,6 +1875,9 @@ attemptauth(m, mci, e, sai) +@@ -1896,6 +1896,9 @@ attemptauth(m, mci, e, sai) if (saslresult != SASL_OK && saslresult != SASL_CONTINUE) { + int fd = sm_io_getinfo(mci->mci_in, SM_IO_WHAT_FD, NULL); + BLACKLIST_NOTIFY(BLACKLIST_AUTH_FAIL, fd, "AUTH FAIL"); + if (tTd(95, 5)) sm_dprintf("AUTH FAIL=%s (%d)\n", sasl_errstring(saslresult, NULL, NULL), -@@ -2020,9 +2023,11 @@ smtpauth(m, mci, e) +@@ -2041,9 +2044,11 @@ smtpauth(m, mci, e) do { result = attemptauth(m, mci, e, &(mci->mci_sai)); - if (result == EX_OK) + if (result == EX_OK) { + int fd = sm_io_getinfo(mci->mci_in, SM_IO_WHAT_FD, NULL); + BLACKLIST_NOTIFY(BLACKLIST_AUTH_OK, fd, "AUTH OK"); mci->mci_sasl_auth = true; - else if (result == EX_TEMPFAIL || result == EX_NOPERM) + } else if (result == EX_TEMPFAIL || result == EX_NOPERM) { mci->mci_saslcap = removemech((mci->mci_sai)[SASL_MECH], mci->mci_saslcap,