diff --git a/mail/opendkim/Makefile b/mail/opendkim/Makefile index cbaf2e19b391..944b5e44bf6b 100644 --- a/mail/opendkim/Makefile +++ b/mail/opendkim/Makefile @@ -1,169 +1,169 @@ PORTNAME= opendkim PORTVERSION= 2.10.3 -PORTREVISION= 21 +PORTREVISION= 22 CATEGORIES= mail security MASTER_SITES= SF/${PORTNAME} \ SF/${PORTNAME}/Previous%20Releases \ ftp://ftpmirror.uk/freebsd-ports/${PORTNAME}/ MAINTAINER= freebsd-ports@dan.me.uk COMMENT= DKIM library and milter implementation WWW= http://opendkim.org/ LICENSE= BSD3CLAUSE SENDMAIL LICENSE_COMB= multi LICENSE_FILE_SENDMAIL= ${WRKSRC}/LICENSE.Sendmail LICENSE_GROUPS_SENDMAIL=FSF OSI LICENSE_NAME_SENDMAIL= Sendmail Open Source License LICENSE_PERMS_SENDMAIL= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share NO_OPTIONS_SORT=yes USES= autoreconf cpe libtool perl5 pkgconfig shebangfix ssl USE_PERL5= run SHEBANG_FILES= opendkim/opendkim-genkey* reputation/opendkim-* stats/opendkim-* \ reprrd/opendkim-reprrdimport* USE_LDCONFIG= yes TEST_TARGET= check # XXX: 1 of 30 tests fails CONFLICTS_INSTALL= opendkim-devel PORTDOCS= * CONFIGURE_ARGS+= --without-tre OPTIONS_SUB= yes OPTIONS_SINGLE= RESOLV OPTIONS_SINGLE_RESOLV= STOCK_RESOLVER UNBOUND OPTIONS_DEFINE= FILTER CURL GNUTLS JANSSON LDNS LMDB LUA MEMCACHED \ BDB_BASE OPENDBX OPENLDAP POPAUTH QUERY_CACHE SASL DOCS OPTIONS_DEFAULT= FILTER LUA UNBOUND STOCK_RESOLVER_DESC= Use the stock resolver library UNBOUND_DESC= Use unbound DNS library UNBOUND_CONFIGURE_WITH= unbound UNBOUND_LIB_DEPENDS= libunbound.so:dns/unbound FILTER_DESC= OpenDKIM filter, requires libmilter/Sendmail FILTER_USE= RC_SUBR=milter-opendkim CURL_DESC= Use cURL for web queries CURL_CONFIGURE_WITH= libcurl CURL_LIB_DEPENDS= libcurl.so:ftp/curl GNUTLS_DESC= Use GnuTLS instead of OpenSSL GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls GNUTLS_CONFIGURE_WITH= gnutls GNUTLS_CONFIGURE_OFF= --with-openssl=${OPENSSLBASE} JANSSON_DESC= Statistics and other output as JSON data JANSSON_CONFIGURE_WITH= libjansson JANSSON_LIB_DEPENDS= libjansson.so:devel/jansson LDNS_DESC= Use LDNS library for DNS queries LDNS_CONFIGURE_WITH= ldns LDNS_LIB_DEPENDS= libldns.so:dns/ldns LMDB_DESC= Use Lightning Memory-Mapped DB key-value store LMDB_CONFIGURE_WITH= lmdb LMDB_LIB_DEPENDS= liblmdb.so:databases/lmdb LUA_DESC= Describe filter policy with lua LUA_CONFIGURE_WITH= lua LUA_USES= lua MEMCACHED_DESC= Use memcached as a data set MEMCACHED_CONFIGURE_WITH= libmemcached MEMCACHED_LIB_DEPENDS= libmemcached.so:databases/libmemcached BDB_BASE_DESC= Use Berkeley DB from base OPENDBX_DESC= Store filter policies via OpenDBX OPENDBX_CONFIGURE_WITH= odbx OPENDBX_LIB_DEPENDS= libopendbx.so:databases/opendbx OPENLDAP_DESC= Store filter policies in LDAP OPENLDAP_CONFIGURE_WITH=openldap OPENLDAP_USES= ldap POPAUTH_DESC= Use POP authentication DB POPAUTH_CONFIGURE_ENABLE= popauth QUERY_CACHE_DESC= Cache DNS query results locally QUERY_CACHE_CONFIGURE_ENABLE= query_cache SASL_DESC= Enable SASL authentication with LDAP SASL_CONFIGURE_WITH= sasl MAKE_ARGS+= pkgconfigdir="${PREFIX}/libdata/pkgconfig" MAKE_ENV= INSTALL_STRIP_FLAG=${STRIP} .include "${.CURDIR}/Makefile.options" .include .if ${PORT_OPTIONS:MFILTER} SUB_FILES= pkg-message WITHOUT_MILTER_CFLAGS= yes WITHOUT_MILTER_LDFLAGS= yes .include "${PORTSDIR}/mail/sendmail/bsd.milter.mk" CONFIGURE_ARGS+= --with-milter=${MILTERBASE} .endif .if ${PORT_OPTIONS:MLUA_ONLY_SIGNING} || \ ${PORT_OPTIONS:MRBL} .if !${PORT_OPTIONS:MLUA} IGNORE= options LUA_ONLY_SIGNING and RBL require LUA as well .endif .endif .if ${PORT_OPTIONS:MREPUTATION} .if !${PORT_OPTIONS:MCURL} || !${PORT_OPTIONS:MJANSSON} IGNORE= option REPUTATION requires CURL and JANSSON as well .endif .endif .if ${PORT_OPTIONS:MSTATSEXT} .if !${PORT_OPTIONS:MSTATS} || !${PORT_OPTIONS:MLUA} IGNORE= option STATSEXT requires STATS and LUA as well .endif .endif .if ${PORT_OPTIONS:MPOPAUTH} \ || ${PORT_OPTIONS:MQUERY_CACHE} \ || ${PORT_OPTIONS:MLDAP_CACHING} \ || ${PORT_OPTIONS:MREPUTATION} \ || ${PORT_OPTIONS:MSTATS} . if ${PORT_OPTIONS:MBDB_BASE} CONFIGURE_ARGS+= --with-db-lib=c . else CONFIGURE_ARGS+= --with-db-incdir=${BDB_INCLUDE_DIR} \ --with-db-libdir=${BDB_LIB_DIR} \ --with-db-lib=${BDB_LIB_NAME} USES+= bdb . endif .endif .if ${PORT_OPTIONS:MCODECOVERAGE} LDFLAGS+= -lpthread .endif pre-configure: ${REINPLACE_CMD} -e '/PKG_CHECK_MODULES/s/lua5\.[0-9]/lua-${LUA_VER}/' \ -e '/PKG_CONFIG/s/cyrussasl/libsasl2/' \ ${WRKSRC}/configure.ac post-patch-LCOV-on: ${CP} ${FILESDIR}/lcov-helper.sh ${WRKSRC}/libopendkim/tests/ ${CP} ${FILESDIR}/lcov-helper.sh ${WRKSRC}/opendkim/tests/ ${FIND} ${WRKSRC} -type f -name \*-helper.sh -exec ${CHMOD} 755 {} + post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc/mail ${INSTALL_DATA} ${WRKSRC}/opendkim/opendkim.conf.sample \ ${STAGEDIR}${PREFIX}/etc/mail/ .include diff --git a/mail/opendkim/files/patch-opendkim_opendkim.c b/mail/opendkim/files/patch-opendkim_opendkim.c index 8ec336794477..d0d8f207bcd8 100644 --- a/mail/opendkim/files/patch-opendkim_opendkim.c +++ b/mail/opendkim/files/patch-opendkim_opendkim.c @@ -1,36 +1,51 @@ +--- opendkim/opendkim.c 2024-12-21 10:50:37.224458000 +0100 ++++ opendkim/opendkim.c 2024-12-21 10:52:34.002259000 +0100 +@@ -12105,8 +12105,10 @@ + + if (domainok) + { +- strlcpy((char *) dfc->mctx_domain, p, +- sizeof dfc->mctx_domain); ++ // We must not use strlcpy() here since ++ // src and dst overlap. ++ char* p2 = dfc->mctx_domain; ++ while( (*p2++ = *p++) ); + break; + } + } commit 7c70ee7c86da1cecc621182355cc950d3b193314 Author: David Bürgin Date: Sat Oct 14 09:19:37 2023 +0200 Delete Authentication-Results headers in reverse diff --git opendkim/opendkim.c opendkim/opendkim.c index 803f37b0..cfa5f018 100644 --- opendkim/opendkim.c +++ opendkim/opendkim.c @@ -13653,8 +13653,15 @@ mlfi_eom(SMFICTX *ctx) return SMFIS_TEMPFAIL; } - c = 0; + c = 1; + for (hdr = dfc->mctx_hqhead; hdr != NULL; hdr = hdr->hdr_next) + { + if (strcasecmp(hdr->hdr_hdr, AUTHRESULTSHDR) == 0) + c++; + } + + for (hdr = dfc->mctx_hqtail; hdr != NULL; hdr = hdr->hdr_prev) { memset(ares, '\0', sizeof(struct authres)); @@ -13666,7 +13673,7 @@ mlfi_eom(SMFICTX *ctx) char *slash; /* remember index */ - c++; + c--; /* parse the header */ arstat = ares_parse((u_char *) hdr->hdr_val,