From 03c66ac305fd6e88a3c23bea9b7c1e678f13587c Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Thu, 12 Mar 2020 00:08:59 +0000 Subject: [PATCH] mail-mta/sendmail: fix for glibc-2.30, bug #700108 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch by John Covici. Reported-by: Hanno Böck Fixed-by: John Covici Closes: https://bugs.gentoo.org/700108 Package-Manager: Portage-2.3.93, Repoman-2.3.20 Signed-off-by: Sergei Trofimovich --- .../files/sendmail-8.15.2-glibc-2.30.patch | 52 +++++++++++++++++++ mail-mta/sendmail/sendmail-8.15.2-r2.ebuild | 1 + 2 files changed, 53 insertions(+) create mode 100644 mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch diff --git a/mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch b/mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch new file mode 100644 index 000000000000..03281d1990fe --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-8.15.2-glibc-2.30.patch @@ -0,0 +1,52 @@ +https://bugs.gentoo.org/700108 + +--- sendmail-8.15.2-r1/libmilter/sm_gethost.c.orig 2014-03-04 19:59:45.000000000 -0500 ++++ sendmail-8.15.2-r1/libmilter/sm_gethost.c 2019-11-15 09:32:25.812406080 -0500 +@@ -51,18 +51,21 @@ + { + bool resv6 = true; + struct hostent *h; +- ++#ifdef RES_USE_INET6 + if (family == AF_INET6) + { + /* From RFC2133, section 6.1 */ + resv6 = bitset(RES_USE_INET6, _res.options); + _res.options |= RES_USE_INET6; + } ++#endif + SM_SET_H_ERRNO(0); + h = gethostbyname(name); ++#ifdef RES_USE_INET6 + if (family == AF_INET6 && !resv6) + _res.options &= ~RES_USE_INET6; + ++#endif + /* the function is supposed to return only the requested family */ + if (h != NULL && h->h_addrtype != family) + { +--- sendmail-8.15.2-r2/sendmail/conf.c.orig 2019-11-14 17:36:41.262218822 -0500 ++++ sendmail-8.15.2-r2/sendmail/conf.c 2019-11-15 09:57:43.550284580 -0500 +@@ -4243,18 +4243,21 @@ + + # else /* HAS_GETHOSTBYNAME2 */ + bool resv6 = true; +- ++#ifdef RES_USE_INET6 + if (family == AF_INET6) + { + /* From RFC2133, section 6.1 */ + resv6 = bitset(RES_USE_INET6, _res.options); + _res.options |= RES_USE_INET6; + } ++#endif + SM_SET_H_ERRNO(0); + h = gethostbyname(name); ++#ifdef RES_USE_INET6 + if (!resv6) + _res.options &= ~RES_USE_INET6; + ++#endif + /* the function is supposed to return only the requested family */ + if (h != NULL && h->h_addrtype != family) + { diff --git a/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild b/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild index d3fd92fa5bb7..b8ea40322512 100644 --- a/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild +++ b/mail-mta/sendmail/sendmail-8.15.2-r2.ebuild @@ -59,6 +59,7 @@ src_prepare() { eapply "${FILESDIR}"/libmilter-sharedlib.patch eapply -p0 "${FILESDIR}"/sendmail-starttls-multi-crl.patch eapply "${FILESDIR}"/${P}-openssl-1.1.0-fix.patch + eapply "${FILESDIR}"/${P}-glibc-2.30.patch local confCC="$(tc-getCC)" local confCCOPTS="${CFLAGS}" -- 2.26.2