commit:     1a34ed0cce756084c271e7f373adb6979375824f
Author:     Cristian Othón Martínez Vera <cfuga <AT> cfuga <DOT> mx>
AuthorDate: Thu Jan  1 21:56:09 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan  1 22:47:10 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a34ed0c

mail-filter/libmilter: add 1.0.2_p5

Signed-off-by: Cristian Othón Martínez Vera <cfuga <AT> cfuga.mx>
Part-of: https://github.com/gentoo/gentoo/pull/45227
Signed-off-by: Sam James <sam <AT> gentoo.org>

 mail-filter/libmilter/Manifest                  |   2 +
 mail-filter/libmilter/libmilter-1.0.2_p5.ebuild | 144 ++++++++++++++++++++++++
 2 files changed, 146 insertions(+)

diff --git a/mail-filter/libmilter/Manifest b/mail-filter/libmilter/Manifest
index 01ace258601b..fec631b5172e 100644
--- a/mail-filter/libmilter/Manifest
+++ b/mail-filter/libmilter/Manifest
@@ -1,3 +1,5 @@
 DIST sendmail.8.17.1.9.tar.gz 2345302 BLAKE2B 
378f2f98ffff6457c49f934228964e792acec6f33fbabd89a8712f09f1dc7afc951b7c984a397aa7dd3773d86bdf57a946ea9ac54ae426bc0b8ea4c040e2ad4a
 SHA512 
ad8198b12bdc0037de5b64b2504bd5e0a42bf054274a4834163a7c46953b9aec23d52d58063cc6b925d90199973608f35edeb40128671ae32889f4558e5c0d4b
 DIST sendmail.8.18.1.tar.gz 2401566 BLAKE2B 
3afa36073fd611c7fdb43ef0ab9f02d5fb8ae388e9471bdc7275c6c9dcee0a654f46ddef505b70e978cb1b818b0da375250678e501676d8bace534d59ee40d90
 SHA512 
9ce713b44439d4de6faa9e3cdfa2226b44b4fbeb352a5f81584c062570e9472da244158287e489aabe258d28fe54ca4964565c7b0adc7e1763d212be42f98061
 DIST sendmail.8.18.1.tar.gz.sig 543 BLAKE2B 
f5f8ffaee2b4380babb033257aa30a3ade3686f3ae3dc4ced3beb25698c1917489e05456cf6b3cfcf3f0a8a1725ac42a6ce1db317939f944012e994672f6c22d
 SHA512 
a1b3fc2278061c220ca36b954e333867a187b52c32ecd10793a12c1c90c0466bc3f1e6f76ca3aeaaf02e14f71f8cef418f5291557461b61509ed255c55c6ef47
+DIST sendmail.8.18.2.tar.gz 2372458 BLAKE2B 
a291006fd498d61b8fe19eb02cdeb92f83cef68b5c3db0c8b6479edb8e4722ed2d2ae03cf39553c0631224a1dfa00754cf4ea32bb7bc762ad8152ccaebe606dc
 SHA512 
55515220ea84db4b56b8154efbf21aeb7161943c92bd63527cfc20169ea566e299cc289f0a6e160dc5637f656bdc451707003750d4b42a7894d40f35f51f6040
+DIST sendmail.8.18.2.tar.gz.sig 543 BLAKE2B 
6c397ada6b93de4608d11bc09d58c687819f333161865129d70d5dd3fc35124fda3f5c8d2533a10b8a327804feb261b4abd3506bb9a8ede686cc0b3f159203c5
 SHA512 
4e531f89e5e10dba7d3c66c8c5378aadeb139ec9d2f6ac6568f272adea4d1515c1ba858bb34585e0d52ac070185052e901d58bd677ef59a5cc733b4f60fb827f

diff --git a/mail-filter/libmilter/libmilter-1.0.2_p5.ebuild 
b/mail-filter/libmilter/libmilter-1.0.2_p5.ebuild
new file mode 100644
index 000000000000..edad601ebadc
--- /dev/null
+++ b/mail-filter/libmilter/libmilter-1.0.2_p5.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Note: please bump this together with mail-mta/sendmail and app-shells/smrsh
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/sendmail.asc"
+inherit toolchain-funcs verify-sig
+
+# This library is part of sendmail, but it does not share the version number 
with it.
+# In order to find the right libmilter version number, check SMFI_VERSION 
definition
+# that can be found in ${S}/include/libmilter/mfapi.h (see also SM_LM_VRS_* 
defines).
+# For example, version 1.0.1 has a SMFI_VERSION of 0x01000001.
+#
+# See check in src_prepare too.
+SENDMAIL_VER=8.18.2
+
+DESCRIPTION="The Sendmail Filter API (Milter)"
+HOMEPAGE="https://www.proofpoint.com/us/products/email-protection/open-source-email-solution";
+if [[ -n $(ver_cut 4 ${SENDMAIL_VER}) ]] ; then
+       # Snapshots have an extra version component (e.g. 8.17.1 vs 8.17.1.9)
+       SRC_URI="
+               
https://ftp.sendmail.org/snapshots/sendmail.${SENDMAIL_VER}.tar.gz
+               verify-sig? ( 
https://ftp.sendmail.org/snapshots/sendmail.${SENDMAIL_VER}.tar.gz.sig )
+       "
+fi
+SRC_URI+="
+       https://ftp.sendmail.org/sendmail.${SENDMAIL_VER}.tar.gz
+       verify-sig? ( 
https://ftp.sendmail.org/sendmail.${SENDMAIL_VER}.tar.gz.sig )
+"
+SRC_URI+="
+       https://ftp.sendmail.org/past-releases/sendmail.${SENDMAIL_VER}.tar.gz
+       verify-sig? ( 
https://ftp.sendmail.org/past-releases/sendmail.${SENDMAIL_VER}.tar.gz.sig )
+"
+S="${WORKDIR}/sendmail-${SENDMAIL_VER}"
+
+LICENSE="Sendmail"
+# We increment _pN when a new sendmail tarball comes out and change the actual
+# "main version" (1.0.2 at time of writing) when the version
+# of libmilter included in the tarball changes.
+# We used to use $(ver_cut 1-3) here (assuming ABI stability between sendmail
+# versions) but that doesn't seem to apply for sendmail snapshots.
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 
~sparc ~x86"
+IUSE="poll"
+
+BDEPEND="
+       sys-devel/m4
+       verify-sig? ( ~sec-keys/openpgp-keys-sendmail-20250220 )
+"
+
+# build system patch copied from sendmail ebuild
+PATCHES=(
+       "${FILESDIR}"/sendmail-8.16.1-build-system.patch
+       "${FILESDIR}"/${PN}-sharedlib.patch
+       "${FILESDIR}"/${PN}-1.0.2_p4-systemd-socket-activation.patch
+)
+
+src_prepare() {
+       default
+
+       extract_version_from_source() {
+               # Extract "#  define SMFI_VERSION  0x01000002" from 
include/libmilter/mfapi.h
+               local actual_libmilter_ver=$(grep -o -E -m 1 
"0[xX][0-9a-fA-F]+" include/libmilter/mfapi.h)
+
+               # SM_LM_VRS_MAJOR(v)      (((v) & 0x7f000000) >> 24)
+               local actual_libmilter_ver_major=$(((actual_libmilter_ver & 
0x7f000000) >> 24))
+
+               # SM_LM_VRS_MINOR(v)      (((v) & 0x007fff00) >> 8)
+               local actual_libmilter_ver_minor=$(((actual_libmilter_ver & 
0x007fff00) >> 8))
+
+               # SM_LM_VRS_PLVL(v)       ((v) & 0x0000007f)
+               local actual_libmilter_ver_plvl=$((actual_libmilter_ver & 
0x0000007f))
+
+               einfo "Extracted version (hex): ${actual_libmilter_ver}"
+               einfo "Extracted version (major): ${actual_libmilter_ver_major}"
+               einfo "Extracted version (minor): ${actual_libmilter_ver_minor}"
+               einfo "Extracted version (plvl): ${actual_libmilter_ver_plvl}"
+               einfo "Extracted version (final): 
${actual_libmilter_ver_major}.${actual_libmilter_ver_minor}.${actual_libmilter_ver_plvl}"
+
+               echo 
${actual_libmilter_ver_major}.${actual_libmilter_ver_minor}.${actual_libmilter_ver_plvl}
+       }
+
+       local actual_libmilter_ver_final=$(extract_version_from_source)
+       if [[ $(ver_cut 1-3) != ${actual_libmilter_ver_final} ]] ; then
+               eerror "Ebuild version ${PV} does not match detected version 
${actual_libmilter_ver_final}!"
+               eerror "Expected version: $(ver_cut 1-3)"
+               eerror "Detected version: ${actual_libmilter_ver_final}"
+               die "Package version ${PV} appears to be incorrect. Please 
check the source or rename the ebuild."
+       fi
+
+       local ENVDEF="-DNETUNIX -DNETINET -DNETINET6 -DHAS_GETHOSTBYNAME2=1"
+       use poll && ENVDEF+=" -DSM_CONF_POLL=1"
+
+       if use elibc_musl; then
+               ENVDEF+=" -DNEEDSGETIPNODE"
+               eapply "${FILESDIR}"/${PN}-musl-stack-size.patch
+               eapply "${FILESDIR}"/${PN}-musl-disable-cdefs.patch
+       fi
+
+       sed -e "s|@@CC@@|$(tc-getCC)|" \
+               -e "s|@@CFLAGS@@|${CFLAGS}|" \
+               -e "s|@@ENVDEF@@|${ENVDEF}|" \
+               -e "s|@@LDFLAGS@@|${LDFLAGS}|" \
+               "${FILESDIR}"/gentoo.config.m4 > devtools/Site/site.config.m4 \
+               || die "failed to generate site.config.m4"
+}
+
+src_compile() {
+       emake -j1 -C libmilter AR="$(tc-getAR)" MILTER_SOVER=${PV}
+}
+
+src_install() {
+       dodir /usr/$(get_libdir)
+
+       local emakeargs=(
+               DESTDIR="${D}" LIBDIR="/usr/$(get_libdir)"
+               MANROOT=/usr/share/man/man
+               SBINOWN=root SBINGRP=0 UBINOWN=root UBINGRP=0
+               LIBOWN=root LIBGRP=0 GBINOWN=root GBINGRP=0
+               MANOWN=root MANGRP=0 INCOWN=root INCGRP=0
+               MSPQOWN=root CFOWN=root CFGRP=0
+               MILTER_SOVER="$(ver_cut 1-3)"
+       )
+       emake -C obj.*/libmilter "${emakeargs[@]}" install
+
+       dodoc libmilter/README
+
+       docinto html
+       dodoc -r libmilter/docs/.
+
+       if [[ ${PV} != $(ver_cut 1-3) ]] ; then
+               # Move the .so file to the more specific name so it becomes a 
chain like
+               # .so -> .so.1.0.2 -> .so.1.0.2_p2, otherwise ldconfig can get 
confused
+               # (bug #864563).
+               #
+               # See comment above ${SLOT} definition above.
+               mv "${ED}"/usr/$(get_libdir)/"${PN}.so.$(ver_cut 1-3)" 
"${ED}"/usr/$(get_libdir)/${PN}.so.${PV}
+               dosym ${PN}.so.${PV} /usr/$(get_libdir)/${PN}.so.$(ver_cut 1-3)
+       fi
+
+       find "${ED}" -name '*.a' -delete || die
+}

Reply via email to