diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /mail-filter/libmilter | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Adding metadata
Diffstat (limited to 'mail-filter/libmilter')
| -rw-r--r-- | mail-filter/libmilter/Manifest | 4 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/gentoo.config.m4 | 5 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/libmilter-1.0.2_p3-c23-bool.patch | 19 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/libmilter-1.0.2_p4-systemd-socket-activation.patch | 76 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/libmilter-musl-disable-cdefs.patch | 11 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/libmilter-musl-stack-size.patch | 42 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/libmilter-sharedlib.patch | 55 | ||||
| -rw-r--r-- | mail-filter/libmilter/files/sendmail-8.16.1-build-system.patch | 158 | ||||
| -rw-r--r-- | mail-filter/libmilter/libmilter-1.0.2_p4-r1.ebuild | 145 | ||||
| -rw-r--r-- | mail-filter/libmilter/libmilter-1.0.2_p4.ebuild | 135 | ||||
| -rw-r--r-- | mail-filter/libmilter/libmilter-1.0.2_p5.ebuild | 144 | ||||
| -rw-r--r-- | mail-filter/libmilter/metadata.xml | 19 |
12 files changed, 813 insertions, 0 deletions
diff --git a/mail-filter/libmilter/Manifest b/mail-filter/libmilter/Manifest new file mode 100644 index 000000000000..493d582327b7 --- /dev/null +++ b/mail-filter/libmilter/Manifest @@ -0,0 +1,4 @@ +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/files/gentoo.config.m4 b/mail-filter/libmilter/files/gentoo.config.m4 new file mode 100644 index 000000000000..5e1b55faa580 --- /dev/null +++ b/mail-filter/libmilter/files/gentoo.config.m4 @@ -0,0 +1,5 @@ +define(`confOPTIMIZE', `@@CFLAGS@@') +define(`confLDOPTS', `@@LDFLAGS@@') +define(`confCC', `@@CC@@') +define(`confENVDEF', `@@ENVDEF@@') +define(`confCCOPTS_SO', `-fPIC') diff --git a/mail-filter/libmilter/files/libmilter-1.0.2_p3-c23-bool.patch b/mail-filter/libmilter/files/libmilter-1.0.2_p3-c23-bool.patch new file mode 100644 index 000000000000..639967e83910 --- /dev/null +++ b/mail-filter/libmilter/files/libmilter-1.0.2_p3-c23-bool.patch @@ -0,0 +1,19 @@ +Building mail-filter/opendkim without this patch would fail because +mfapi.h doesn't include libmilter's own config header which defines +SM_CONF_STDBOOL_H. + +We certainly only care about >= C99 compilers so we can just always +take that path. + +https://bugs.gentoo.org/944138 +--- a/include/libmilter/mfapi.h ++++ b/include/libmilter/mfapi.h +@@ -89,7 +89,7 @@ typedef int sfsistat; + # endif + #endif /* __P */ + +-#if SM_CONF_STDBOOL_H ++#if 1 /* SM_CONF_STDBOOL_H */ + # include <stdbool.h> + #else /* SM_CONF_STDBOOL_H */ + # ifndef __cplusplus diff --git a/mail-filter/libmilter/files/libmilter-1.0.2_p4-systemd-socket-activation.patch b/mail-filter/libmilter/files/libmilter-1.0.2_p4-systemd-socket-activation.patch new file mode 100644 index 000000000000..0014cb4a66fd --- /dev/null +++ b/mail-filter/libmilter/files/libmilter-1.0.2_p4-systemd-socket-activation.patch @@ -0,0 +1,76 @@ +Description: systemd-like socket activation support for libmilter +Author: Mikhail Gusarov <dottedmag@debian.org> +--- a/libmilter/docs/smfi_setconn.html ++++ b/libmilter/docs/smfi_setconn.html +@@ -44,6 +44,7 @@ Set the socket through which this filter + <LI><CODE>{unix|local}:/path/to/file</CODE> -- A named pipe. + <LI><CODE>inet:port@{hostname|ip-address}</CODE> -- An IPV4 socket. + <LI><CODE>inet6:port@{hostname|ip-address}</CODE> -- An IPV6 socket. ++ <LI><CODE>fd:number</CODE> -- Pre-opened file descriptor. + </UL> + </TD></TR> + </TABLE> +--- a/libmilter/listener.c ++++ b/libmilter/listener.c +@@ -197,6 +197,11 @@ mi_milteropen(conn, backlog, rmsocket, n + L_socksize = sizeof addr.sin6; + } + #endif /* NETINET6 */ ++ else if (strcasecmp(p, "fd") == 0) ++ { ++ addr.sa.sa_family = AF_UNSPEC; ++ L_socksize = sizeof (_SOCK_ADDR); ++ } + else + { + smi_log(SMI_LOG_ERR, "%s: unknown socket type %s", +@@ -443,7 +448,21 @@ mi_milteropen(conn, backlog, rmsocket, n + } + #endif /* NETINET || NETINET6 */ + +- sock = socket(addr.sa.sa_family, SOCK_STREAM, 0); ++ if (addr.sa.sa_family == AF_UNSPEC) ++ { ++ char *end; ++ sock = strtol(colon, &end, 10); ++ if (*end != '\0' || sock < 0) ++ { ++ smi_log(SMI_LOG_ERR, "%s: expected positive integer as fd, got %s", name, colon); ++ return INVALID_SOCKET; ++ } ++ } ++ else ++ { ++ sock = socket(addr.sa.sa_family, SOCK_STREAM, 0); ++ } ++ + if (!ValidSocket(sock)) + { + smi_log(SMI_LOG_ERR, +@@ -466,6 +485,7 @@ mi_milteropen(conn, backlog, rmsocket, n + #if NETUNIX + addr.sa.sa_family != AF_UNIX && + #endif ++ addr.sa.sa_family != AF_UNSPEC && + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &sockopt, + sizeof(sockopt)) == -1) + { +@@ -511,7 +531,8 @@ mi_milteropen(conn, backlog, rmsocket, n + } + #endif /* NETUNIX */ + +- if (bind(sock, &addr.sa, L_socksize) < 0) ++ if (addr.sa.sa_family != AF_UNSPEC && ++ bind(sock, &addr.sa, L_socksize) < 0) + { + smi_log(SMI_LOG_ERR, + "%s: Unable to bind to port %s: %s", +@@ -818,7 +839,7 @@ mi_listener(conn, dbg, smfi, timeout, ba + #ifdef BSD4_4_SOCKADDR + cliaddr.sa.sa_len == 0 || + #endif +- cliaddr.sa.sa_family != L_family)) ++ (L_family != AF_UNSPEC && cliaddr.sa.sa_family != L_family))) + { + (void) closesocket(connfd); + connfd = INVALID_SOCKET; diff --git a/mail-filter/libmilter/files/libmilter-musl-disable-cdefs.patch b/mail-filter/libmilter/files/libmilter-musl-disable-cdefs.patch new file mode 100644 index 000000000000..6dc4ac63105e --- /dev/null +++ b/mail-filter/libmilter/files/libmilter-musl-disable-cdefs.patch @@ -0,0 +1,11 @@ +--- a/include/sm/os/sm_os_linux.h 2020-06-09 11:57:46.789786561 +0200 ++++ b/include/sm/os/sm_os_linux.h 2020-06-09 11:57:49.174781812 +0200 +@@ -33,7 +33,7 @@ + # endif /* LINUX_VERSION_CODE */ + #endif /* SM_CONF_SHM */ + +-#define SM_CONF_SYS_CDEFS_H 1 ++#define SM_CONF_SYS_CDEFS_H 0 + #ifndef SM_CONF_SEM + # define SM_CONF_SEM 2 + #endif /* SM_CONF_SEM */ diff --git a/mail-filter/libmilter/files/libmilter-musl-stack-size.patch b/mail-filter/libmilter/files/libmilter-musl-stack-size.patch new file mode 100644 index 000000000000..9993adfece34 --- /dev/null +++ b/mail-filter/libmilter/files/libmilter-musl-stack-size.patch @@ -0,0 +1,42 @@ +Set default pthread stack size to 256 KB + +This patch tries to fix various crashes for applications depending on libmilter +by setting the stack size for pthreads to 256 KB. The default stack size for +musl libc is set to 80 KB whereas glibc has it set to 8 MB. This causes problems +when a large amount of memory is allocated on the stack. + +For example, opendkim allocates blocks of 64 KB multiple times, which causes +libmilter (and therefore opendkim) to crash. For now, a stack size of 256 KB +looks sufficient and makes opendkim stop crashing. + +Fixes https://bugs.alpinelinux.org/issues/6360 + +--- a/libmilter/libmilter.h ++++ b/libmilter/libmilter.h +@@ -127,10 +127,10 @@ + # define MI_SOCK_READ(s, b, l) read(s, b, l) + # define MI_SOCK_READ_FAIL(x) ((x) < 0) + # define MI_SOCK_WRITE(s, b, l) write(s, b, l) +- +-# define thread_create(ptid,wr,arg) pthread_create(ptid, NULL, wr, arg) + # define sthread_get_id() pthread_self() + ++extern int thread_create(pthread_t *ptid, void *(*wr) (void *), void *arg); ++ + typedef pthread_mutex_t smutex_t; + # define smutex_init(mp) (pthread_mutex_init(mp, NULL) == 0) + # define smutex_destroy(mp) (pthread_mutex_destroy(mp) == 0) +--- a/libmilter/main.c ++++ b/libmilter/main.c +@@ -16,6 +16,12 @@ + #include <fcntl.h> + #include <sys/stat.h> + ++int thread_create(pthread_t *ptid, void *(*wr) (void *), void *arg) { ++ pthread_attr_t attr; ++ pthread_attr_init(&attr); ++ pthread_attr_setstacksize(&attr,256*1024); ++ return pthread_create(ptid, &attr, wr, arg); ++} + + static smfiDesc_ptr smfi = NULL; diff --git a/mail-filter/libmilter/files/libmilter-sharedlib.patch b/mail-filter/libmilter/files/libmilter-sharedlib.patch new file mode 100644 index 000000000000..43ec78612190 --- /dev/null +++ b/mail-filter/libmilter/files/libmilter-sharedlib.patch @@ -0,0 +1,55 @@ +diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 sendmail-8.14.3/devtools/M4/UNIX/milterlibrary.m4 +--- sendmail-8.14.3.orig/devtools/M4/UNIX/milterlibrary.m4 1970-01-01 01:00:00.000000000 +0100 ++++ sendmail-8.14.3/devtools/M4/UNIX/milterlibrary.m4 2009-08-22 21:51:10.000000000 +0200 +@@ -0,0 +1,39 @@ ++divert(-1) ++# ++# Copyright (c) 1999-2001 Sendmail, 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. ++# ++# ++# Definitions for Makefile construction for sendmail ++# ++divert(0)dnl ++include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl ++bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl ++bldPUSH_TARGET(bldCURRENT_PRODUCT`.so' bldCURRENT_PRODUCT`.a')dnl ++bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl ++bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl ++ ++include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4') ++divert(bldTARGETS_SECTION) ++bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} ++ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS} ++bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'} ++ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'} ++ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a ++ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)') ++ ++install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ++ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ') ++ ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${UBINMODE} bldCURRENT_PRODUCT.so "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so.${MILTER_SOVER}" ++ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so" ++ ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') ++ ++bldCURRENT_PRODUCT-clean: ++ rm -f ${OBJS} bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ${MANPAGES} ++ ++divert(0) ++COPTS+= confCCOPTS_SO +diff -Nru sendmail-8.14.3.orig/libmilter/Makefile.m4 sendmail-8.14.3/libmilter/Makefile.m4 +--- sendmail-8.14.3.orig/libmilter/Makefile.m4 2008-04-08 07:23:44.000000000 +0200 ++++ sendmail-8.14.3/libmilter/Makefile.m4 2009-08-22 21:53:35.000000000 +0200 +@@ -9,7 +9,7 @@ + SMSRCDIR=ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail') + PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ') + +-bldPRODUCT_START(`library', `libmilter') ++bldPRODUCT_START(`milterlibrary', `libmilter') + define(`bldINSTALLABLE', `true') + define(`LIBMILTER_EXTRAS', `errstring.c strl.c') + APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL -Dsm_snprintf=snprintf') diff --git a/mail-filter/libmilter/files/sendmail-8.16.1-build-system.patch b/mail-filter/libmilter/files/sendmail-8.16.1-build-system.patch new file mode 100644 index 000000000000..c317a4e854fb --- /dev/null +++ b/mail-filter/libmilter/files/sendmail-8.16.1-build-system.patch @@ -0,0 +1,158 @@ +diff -Nru sendmail-8.14.3.orig/cf/cf/Makefile sendmail-8.14.3/cf/cf/Makefile +--- sendmail-8.14.3.orig/cf/cf/Makefile 2005-06-14 04:16:34.000000000 +0200 ++++ sendmail-8.14.3/cf/cf/Makefile 2009-09-20 10:55:50.000000000 +0200 +@@ -80,10 +80,10 @@ + install-cf: install-sendmail-cf install-submit-cf + + install-sendmail-cf: $(CF).cf +- $(INSTALL) -c -o $(CFOWN) -g $(CFGRP) -m $(CFMODE) $(CF).cf ${DESTDIR}$(MAILDIR)/sendmail.cf ++ $(INSTALL) -c -o $(CFOWN) -g $(CFGRP) -m $(CFMODE) $(CF).cf "${DESTDIR}$(MAILDIR)/sendmail.cf" + + install-submit-cf: $(SUBMIT).cf +- $(INSTALL) -c -o $(CFOWN) -g $(CFGRP) -m $(CFMODE) $(SUBMIT).cf ${DESTDIR}$(MAILDIR)/submit.cf ++ $(INSTALL) -c -o $(CFOWN) -g $(CFGRP) -m $(CFMODE) $(SUBMIT).cf "${DESTDIR}$(MAILDIR)/submit.cf" + + depend: + +diff -Nru sendmail-8.14.6.orig/devtools/M4/UNIX/defines.m4 sendmail-8.14.6/devtools/M4/UNIX/defines.m4 +--- sendmail-8.14.6.orig/devtools/M4/UNIX/defines.m4 2012-01-21 00:07:08.000000000 +0000 ++++ sendmail-8.14.6/devtools/M4/UNIX/defines.m4 2012-12-27 08:13:15.792214375 +0000 +@@ -26,7 +26,7 @@ + CCLINK = ifdef(`confCCLINK', `confCCLINK', `confCC') + # Linker for libraries + LD= ifdef(`confLD', `confLD', `confCC') +-LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') ifdef(`confMT', ifdef(`confMTLDOPTS', `confMTLDOPTS', `'), `') ++LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') + LDOPTS_SO= ${LDOPTS} ifdef(`confLDOPTS_SO', `confLDOPTS_SO', `-shared') + + # Shell +@@ -71,7 +71,7 @@ + LIBADD= ifdef(`conf_'bldCURRENT_PRD`_LIBS', `conf_'bldCURRENT_PRD`_LIBS') + + # libraries required on your system +-LIBS= ${LIBADD} ifdef(`confLIBS', `confLIBS') ifdef(`conf_'bldCURRENT_PRD`_LIB_POST', `conf_'bldCURRENT_PRD`_LIB_POST') ++LIBS= ${LIBADD} ifdef(`confLIBS', `confLIBS') ifdef(`conf_'bldCURRENT_PRD`_LIB_POST', `conf_'bldCURRENT_PRD`_LIB_POST') ifdef(`confMT', ifdef(`confMTLDOPTS', `confMTLDOPTS', `'), `') + + # location of sendmail binary (usually /usr/sbin or /usr/lib) + BINDIR= ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin') +diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/executable.m4 sendmail-8.14.3/devtools/M4/UNIX/executable.m4 +--- sendmail-8.14.3.orig/devtools/M4/UNIX/executable.m4 2006-10-06 07:44:44.000000000 +0200 ++++ sendmail-8.14.3/devtools/M4/UNIX/executable.m4 2009-09-20 10:50:36.000000000 +0200 +@@ -30,12 +30,12 @@ + + ifdef(`bldNO_INSTALL', , + `install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT ifdef(`bldTARGET_INST_DEP', `bldTARGET_INST_DEP') +- ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${bldINSTALL_DIR`'BINDIR} ]; then confMKDIR -p ${DESTDIR}${bldINSTALL_DIR`'BINDIR}; else :; fi ') +- ${INSTALL} -c -o ${bldBIN_TYPE`'BINOWN} -g ${bldBIN_TYPE`'BINGRP} -m ${bldBIN_TYPE`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${bldINSTALL_DIR`'BINDIR} ++ ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'BINDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'BINDIR}"; else :; fi ') ++ ${INSTALL} -c -o ${bldBIN_TYPE`'BINOWN} -g ${bldBIN_TYPE`'BINGRP} -m ${bldBIN_TYPE`'BINMODE} bldCURRENT_PRODUCT "${DESTDIR}${bldINSTALL_DIR`'BINDIR}" + ifdef(`bldTARGET_LINKS', `bldMAKE_TARGET_LINKS(${bldINSTALL_DIR`'BINDIR}/bldCURRENT_PRODUCT, ${bldCURRENT_PRODUCT`'TARGET_LINKS})')') + + strip-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT +- ${STRIP} ${STRIPOPTS} ${DESTDIR}${bldINSTALL_DIR`'BINDIR}`'/bldCURRENT_PRODUCT ++ ${STRIP} ${STRIPOPTS} "${DESTDIR}${bldINSTALL_DIR`'BINDIR}`'/bldCURRENT_PRODUCT" + + bldCURRENT_PRODUCT-clean: + rm -f ${OBJS} bldCURRENT_PRODUCT ${MANPAGES} +diff -Nru sendmail-8.14.3.orig/devtools/M4/UNIX/library.m4 sendmail-8.14.3/devtools/M4/UNIX/library.m4 +--- sendmail-8.14.3.orig/devtools/M4/UNIX/library.m4 2006-09-06 00:56:53.000000000 +0200 ++++ sendmail-8.14.3/devtools/M4/UNIX/library.m4 2009-09-20 10:50:36.000000000 +0200 +@@ -27,8 +27,8 @@ + ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)') + + install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.a +-ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${bldINSTALL_DIR`'LIBDIR} ]; then confMKDIR -p ${DESTDIR}${bldINSTALL_DIR`'LIBDIR}; else :; fi ') +- ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bldCURRENT_PRODUCT.a ${DESTDIR}${LIBDIR}') ++ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${LIBDIR}"; else :; fi ') ++ ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"') + + bldCURRENT_PRODUCT-clean: + rm -f ${OBJS} bldCURRENT_PRODUCT.a ${MANPAGES} +--- sendmail-8.14.6.orig/devtools/M4/UNIX/manpage.m4 2012-01-21 00:07:08.000000000 +0000 ++++ sendmail-8.14.6/devtools/M4/UNIX/manpage.m4 2012-12-27 08:28:52.617502447 +0000 +@@ -68,11 +68,11 @@ + ifdef(`confNO_MAN_INSTALL', `divert(-1)', `dnl') + define(`bldMAN_INSTALL_CMD', + `ifdef(`confDONT_INSTALL_CATMAN', `dnl', +-` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}; else :; fi ') +- ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'') ++` ifdef(`confMKDIR', `if [ ! -d "`${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}" ]; then confMKDIR -p "`${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}"; else :; fi ') ++ ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' "`${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}''") + ifdef(`confINSTALL_RAWMAN', +-` ifdef(`confMKDIR', `if [ ! -d ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN} ]; then confMKDIR -p ${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}; else :; fi ') +- ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'', `dnl')' ++` ifdef(`confMKDIR', `if [ ! -d "`${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'" ]; then confMKDIR -p "`${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'"; else :; fi ') ++ ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) "`${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}''", `dnl')' + )dnl + bldFOREACH(`bldMAN_INSTALL_CMD(', `bldMAN_PAGES') + ifdef(`confNO_MAN_INSTALL', `divert(0)', `dnl') +diff -Nru sendmail-8.14.3.orig/libmilter/Makefile.m4 sendmail-8.14.3/libmilter/Makefile.m4 +--- sendmail-8.14.3.orig/libmilter/Makefile.m4 2008-04-08 07:23:44.000000000 +0200 ++++ sendmail-8.14.3/libmilter/Makefile.m4 2009-09-20 10:50:36.000000000 +0200 +@@ -32,9 +32,9 @@ + MFAPI= ${SRCDIR}/inc`'lude/libmilter/mfapi.h + MFDEF= ${SRCDIR}/inc`'lude/libmilter/mfdef.h + install-mfapi: ${MFAPI} +- if [ ! -d ${DESTDIR}${INCLUDEDIR}/libmilter ]; then mkdir -p ${DESTDIR}${INCLUDEDIR}/libmilter; else :; fi +- ${INSTALL} -c -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} ${MFAPI} ${DESTDIR}${INCLUDEDIR}/libmilter/mfapi.h +- ${INSTALL} -c -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} ${MFDEF} ${DESTDIR}${INCLUDEDIR}/libmilter/mfdef.h ++ if [ ! -d "${DESTDIR}${INCLUDEDIR}/libmilter" ]; then mkdir -p "${DESTDIR}${INCLUDEDIR}/libmilter"; else :; fi ++ ${INSTALL} -c -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} ${MFAPI} "${DESTDIR}${INCLUDEDIR}/libmilter/mfapi.h" ++ ${INSTALL} -c -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} ${MFDEF} "${DESTDIR}${INCLUDEDIR}/libmilter/mfdef.h" + divert(0) + + bldFINISH +diff -Nru sendmail-8.14.3.orig/mail.local/Makefile.m4 sendmail-8.14.3/mail.local/Makefile.m4 +--- sendmail-8.14.3.orig/mail.local/Makefile.m4 2006-06-28 23:08:02.000000000 +0200 ++++ sendmail-8.14.3/mail.local/Makefile.m4 2009-09-20 10:56:24.000000000 +0200 +@@ -30,7 +30,7 @@ + force-install: install-mail.local ifdef(`confNO_MAN_BUILD',, `install-docs') + + install-mail.local: mail.local +- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} mail.local ${DESTDIR}${EBINDIR} ++ ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} mail.local "${DESTDIR}${EBINDIR}" + divert + + bldFINISH +diff -Nru sendmail-8.14.3.orig/rmail/Makefile.m4 sendmail-8.14.3/rmail/Makefile.m4 +--- sendmail-8.14.3.orig/rmail/Makefile.m4 2006-06-28 23:08:04.000000000 +0200 ++++ sendmail-8.14.3/rmail/Makefile.m4 2009-09-20 10:55:29.000000000 +0200 +@@ -31,7 +31,7 @@ + force-install: install-rmail ifdef(`confNO_MAN_BUILD',, `install-docs') + + install-rmail: rmail +- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} rmail ${DESTDIR}${UBINDIR} ++ ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} rmail "${DESTDIR}${UBINDIR}" + divert + + bldFINISH + +--- a/sendmail/Makefile.m4 2020-08-10 23:14:23.209900406 -0400 ++++ b/sendmail/Makefile.m4 2020-08-10 23:23:51.272863753 -0400 +@@ -43,21 +43,21 @@ + statistics: + ${CP} /dev/null statistics + +-${DESTDIR}/etc/mail/submit.cf: ++${DESTDIR}/etc/mail/submit.cf: + @echo "Please read INSTALL if anything fails while installing the binary." + @echo "${DESTDIR}/etc/mail/submit.cf will be installed now." + cd ${SRCDIR}/cf/cf && make install-submit-cf + + MSPQ=ifdef(`confMSP_QUEUE_DIR', `confMSP_QUEUE_DIR', `/var/spool/clientmqueue') + +-${DESTDIR}${MSPQ}: ++${DESTDIR}${MSPQ}: + @echo "Please read INSTALL if anything fails while installing the binary." + @echo "You must have set up a new user ${MSPQOWN} and a new group ${GBINGRP}" + @echo "as explained in sendmail/SECURITY." +- mkdir -p ${DESTDIR}${MSPQ} +- chown ${MSPQOWN} ${DESTDIR}${MSPQ} +- chgrp ${GBINGRP} ${DESTDIR}${MSPQ} +- chmod 0770 ${DESTDIR}${MSPQ} ++ mkdir -p "${DESTDIR}${MSPQ}" ++ chown ${MSPQOWN} "${DESTDIR}${MSPQ}" ++ chgrp ${GBINGRP} "${DESTDIR}${MSPQ}" ++ chmod 0770 "${DESTDIR}${MSPQ}" + + divert(0) diff --git a/mail-filter/libmilter/libmilter-1.0.2_p4-r1.ebuild b/mail-filter/libmilter/libmilter-1.0.2_p4-r1.ebuild new file mode 100644 index 000000000000..789627aa26f6 --- /dev/null +++ b/mail-filter/libmilter/libmilter-1.0.2_p4-r1.ebuild @@ -0,0 +1,145 @@ +# 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 + +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.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 + 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_p3-c23-bool.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 +} diff --git a/mail-filter/libmilter/libmilter-1.0.2_p4.ebuild b/mail-filter/libmilter/libmilter-1.0.2_p4.ebuild new file mode 100644 index 000000000000..280aa56514b2 --- /dev/null +++ b/mail-filter/libmilter/libmilter-1.0.2_p4.ebuild @@ -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 +} 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..34f58ebc7514 --- /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 +} diff --git a/mail-filter/libmilter/metadata.xml b/mail-filter/libmilter/metadata.xml new file mode 100644 index 000000000000..3000f72af295 --- /dev/null +++ b/mail-filter/libmilter/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <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> + <upstream> + <remote-id type="cpe">cpe:/a:sendmail:sendmail</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
