commit:     1b729405ff0956692a8ee7779025723d74bf346a
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  4 19:16:11 2024 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Fri Oct  4 19:41:10 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b729405

net-dns/rbldnsd: new patch to fix a type signature mismatch

Closes: https://bugs.gentoo.org/940703
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 .../files/rbldnsd-0.998b-emalloc-typesig.patch     | 34 +++++++++++
 net-dns/rbldnsd/rbldnsd-0.998b-r4.ebuild           | 68 ++++++++++++++++++++++
 2 files changed, 102 insertions(+)

diff --git a/net-dns/rbldnsd/files/rbldnsd-0.998b-emalloc-typesig.patch 
b/net-dns/rbldnsd/files/rbldnsd-0.998b-emalloc-typesig.patch
new file mode 100644
index 000000000000..9d66f8514890
--- /dev/null
+++ b/net-dns/rbldnsd/files/rbldnsd-0.998b-emalloc-typesig.patch
@@ -0,0 +1,34 @@
+From 5ba62bded7e26a0a6f3877491c7f102b3cf67e5e Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <[email protected]>
+Date: Fri, 4 Oct 2024 15:02:09 -0400
+Subject: [PATCH] mempool.c: fix type signature of emalloc()
+
+This file declares emalloc() as,
+
+  void *emalloc(unsigned size);
+
+whereas the actual implementation of emalloc in rbldnsd_util.c is,
+
+  char *emalloc(size_t size);
+
+The mismatch can cause problems for link-time optimization; in
+particular it causes a warning to be raised -Wlto-type-mismatch.
+On Gentoo, for example, we encourage users of LTO to build with
+that warning enabled and promoted to an error.
+---
+ mempool.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mempool.c b/mempool.c
+index 2abbf3a..dd0d733 100644
+--- a/mempool.c
++++ b/mempool.c
+@@ -18,7 +18,7 @@
+ #define alignto sizeof(void*)
+ #define alignmask (alignto-1)
+ 
+-void *emalloc(unsigned size);
++char *emalloc(size_t size);
+ 
+ #define MEMPOOL_CHUNKSIZE (65536-sizeof(unsigned)*4)
+ 

diff --git a/net-dns/rbldnsd/rbldnsd-0.998b-r4.ebuild 
b/net-dns/rbldnsd/rbldnsd-0.998b-r4.ebuild
new file mode 100644
index 000000000000..8d32672045f6
--- /dev/null
+++ b/net-dns/rbldnsd/rbldnsd-0.998b-r4.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="DNS server designed to serve blacklist zones"
+HOMEPAGE="https://rbldnsd.io/";
+SRC_URI="https://github.com/spamhaus/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~sparc ~x86"
+IUSE="ipv6 zlib"
+
+RDEPEND="zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       acct-group/rbldns
+       acct-user/rbldns
+"
+
+# The test suite was dropped from the ebuild because it requires
+# python-2.7, and it will crash if you try to run it now.
+RESTRICT=test
+
+# This check properly includes malloc.h; if mallinfo2
+# is "implicitly defined," then it's not there.
+QA_CONFIG_IMPL_DECL_SKIP=(
+       mallinfo2
+)
+
+PATCHES=(
+       "${FILESDIR}/rbldnsd-0.998b-cstd.patch"
+       "${FILESDIR}/rbldnsd-0.998b-sys-poll.patch"
+       "${FILESDIR}/rbldnsd-0.998b-mallinfo2.patch"
+       "${FILESDIR}/rbldnsd-0.998b-emalloc-typesig.patch"
+)
+
+src_configure() {
+       # The ./configure file is handwritten and doesn't support a `make
+       # install` target, so there are no --prefix options. The econf
+       # function appends those automatically, so we can't use it. We
+       # Have to set $CC here, too (and not just in the call to emake),
+       # because the ./configure script checks for it.
+       CC="$(tc-getCC)" ./configure \
+               $(use_enable ipv6) \
+               $(use_enable zlib) \
+               || die "./configure failed"
+}
+
+src_compile() {
+       emake \
+               AR="$(tc-getAR)" \
+               CC="$(tc-getCC)" \
+               RANLIB="$(tc-getRANLIB)"
+}
+
+src_install() {
+       einstalldocs
+       dosbin rbldnsd
+       doman rbldnsd.8
+       newinitd "${FILESDIR}"/initd-0.997a rbldnsd
+       newconfd "${FILESDIR}"/confd-0.997a rbldnsd
+       diropts -g rbldns -o rbldns -m 0750
+       keepdir /var/db/rbldnsd
+}

Reply via email to