mail-filter/libmilter: bump to version 1.0.2_p4, add myself as maintainer

Signed-off-by: Cristian Othón Martínez Vera <cfuga@cfuga.mx>
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Cristian Othón Martínez Vera
2025-04-03 10:12:25 -06:00
committed by Sam James
parent 2988c7148a
commit 5c2e8cd7f7
3 changed files with 147 additions and 4 deletions

View File

@@ -1 +1,2 @@
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

View File

@@ -0,0 +1,135 @@
# Copyright 1999-2025 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
inherit toolchain-funcs
# 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.1
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"
fi
SRC_URI+=" https://ftp.sendmail.org/sendmail.${SENDMAIL_VER}.tar.gz"
SRC_URI+=" https://ftp.sendmail.org/past-releases/sendmail.${SENDMAIL_VER}.tar.gz"
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="ipv6 poll"
RDEPEND="!<mail-mta/sendmail-8.16.1"
BDEPEND="sys-devel/m4"
# 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_p3-c23-bool.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 -DHAS_GETHOSTBYNAME2=1"
use ipv6 && ENVDEF+=" -DNETINET6"
use poll && ENVDEF+=" -DSM_CONF_POLL=1"
if use elibc_musl; then
use ipv6 && 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
}

View File

@@ -1,8 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
<flag name="poll">Use poll instead of select</flag>
</use>
<maintainer type="person" proxied="yes">
<email>cfuga@cfuga.mx</email>
<name>Cristian Othón Martínez Vera</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<use>
<flag name="poll">Use poll instead of select</flag>
</use>
</pkgmetadata>