summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Orlitzky <mjo@gentoo.org>2024-02-16 07:28:31 -0500
committerMichael Orlitzky <mjo@gentoo.org>2024-02-16 07:48:13 -0500
commit2beb33a4103e9767c7864a773456e1e04a63e67b (patch)
tree55e90e5bacbe1a3c3ef2bbb100407687653726c0 /net-dns
parentmedia-sound/din: dropped obsolete 57 (diff)
downloadgentoo-2beb33a4103e9767c7864a773456e1e04a63e67b.tar.gz
gentoo-2beb33a4103e9767c7864a773456e1e04a63e67b.tar.bz2
gentoo-2beb33a4103e9767c7864a773456e1e04a63e67b.zip
net-dns/rbldnsd: update EAPI 7 -> 8, add upstream PR patches
I've got three PRs sitting upstream for years now but they've gone AWOL. I'm tired of looking at the bugs. Let's just patch. Closes: https://bugs.gentoo.org/874456 Closes: https://bugs.gentoo.org/924368 Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'net-dns')
-rw-r--r--net-dns/rbldnsd/files/rbldnsd-0.998b-cstd.patch193
-rw-r--r--net-dns/rbldnsd/files/rbldnsd-0.998b-mallinfo2.patch59
-rw-r--r--net-dns/rbldnsd/files/rbldnsd-0.998b-sys-poll.patch54
-rw-r--r--net-dns/rbldnsd/rbldnsd-0.998b-r3.ebuild61
4 files changed, 367 insertions, 0 deletions
diff --git a/net-dns/rbldnsd/files/rbldnsd-0.998b-cstd.patch b/net-dns/rbldnsd/files/rbldnsd-0.998b-cstd.patch
new file mode 100644
index 000000000000..e5e17e334b05
--- /dev/null
+++ b/net-dns/rbldnsd/files/rbldnsd-0.998b-cstd.patch
@@ -0,0 +1,193 @@
+From c1f9d0a5d112d2298ed4f3c696ea34c9b0c24ba6 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Fri, 16 Feb 2024 07:43:54 -0500
+Subject: [PATCH 1/1] configure{,.lib},rbldnsd_util.c: future proof the
+ ./configure script
+
+https://github.com/spamhaus/rbldnsd/pull/28
+---
+ configure | 38 ++++++++++++++++++++++----------------
+ configure.lib | 2 +-
+ rbldnsd_util.c | 4 ++--
+ 3 files changed, 25 insertions(+), 19 deletions(-)
+
+diff --git a/configure b/configure
+index b0cb655..6470c9e 100755
+--- a/configure
++++ b/configure
+@@ -90,7 +90,7 @@ else
+ if ac_yesno "sizes of standard integer types" \
+ ac_compile_run <<EOF
+ #include <stdio.h>
+-int main() {
++int main(int argc, char **argv) {
+ printf("#define SIZEOF_SHORT %d\n", sizeof(short));
+ printf("#define SIZEOF_INT %d\n", sizeof(int));
+ printf("#define SIZEOF_LONG %d\n", sizeof(long));
+@@ -105,7 +105,7 @@ EOF
+ if ac_yesno "for long long" \
+ ac_compile_run <<EOF
+ #include <stdio.h>
+-int main() {
++int main(int argc, char **argv) {
+ long long x;
+ printf("#define SIZEOF_LONG_LONG %d\n", sizeof(long long));
+ return 0;
+@@ -120,7 +120,7 @@ fi
+
+ if ac_compile_run_v "whether C compiler defines __SIZEOF_POINTER__" <<EOF
+ #include <stdio.h>
+-int main() {
++int main(int argc, char **argv) {
+ #ifdef __SIZEOF_POINTER__
+ return 0;
+ #else
+@@ -136,7 +136,7 @@ fi
+
+ if ac_verbose "byte order" "big-endian" "little-endian" \
+ ac_compile_run <<EOF
+-int main() {
++int main(int argc, char **argv) {
+ long one = 1;
+ if (*(char *)&one)
+ return 1; /* little-endian */
+@@ -150,8 +150,8 @@ fi
+ has_inline=
+ for c in inline __inline; do
+ if ac_compile_v "for $c" <<EOF
+-static $c int foo() { return 0; }
+-int main() { return foo(); }
++static $c int foo(void) { return 0; }
++int main(int argc, char **argv) { return foo(); }
+ EOF
+ then
+ has_inline=$c
+@@ -165,7 +165,7 @@ fi
+ if ac_compile_v "for socklen_t" <<EOF
+ #include <sys/types.h>
+ #include <sys/socket.h>
+-int foo() { socklen_t len; len = 0; return len; }
++int foo(void) { socklen_t len; len = 0; return len; }
+ EOF
+ then :
+ else
+@@ -173,7 +173,13 @@ else
+ fi
+
+ if ac_library_find_v 'connect()' "" "-lsocket -lnsl" <<EOF
+-int main() { gethostbyname(); connect(); return 0; }
++#include <netdb.h>
++#include <sys/socket.h>
++int main(int argc, char **argv) {
++ gethostbyname("");
++ connect(0, (const struct sockaddr *)0, (socklen_t)0);
++ return 0;
++}
+ EOF
+ then :
+ else
+@@ -189,7 +195,7 @@ if ac_link_v "for IPv6" <<EOF
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+ #include <netdb.h>
+-int main() {
++int main(int argc, char **argv) {
+ char h[200];
+ char s[200];
+ struct sockaddr_in6 sa;
+@@ -211,7 +217,7 @@ if ac_link_v "for mallinfo()" <<EOF
+ #include <sys/types.h>
+ #include <stdlib.h>
+ #include <malloc.h>
+-int main() {
++int main(int argc, char **argv) {
+ struct mallinfo mi = mallinfo();
+ return 0;
+ }
+@@ -224,7 +230,7 @@ fi
+ if ac_link_v "for poll()" <<EOF
+ #include <sys/types.h>
+ #include <sys/poll.h>
+-int main() {
++int main(int argc, char **argv) {
+ struct pollfd pfd[2];
+ return poll(pfd, 2, 10);
+ }
+@@ -251,7 +257,7 @@ int test(char *fmt, ...) {
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ return 0;
+ }
+-int main() {
++int main(int argc, char **argv) {
+ test("test%d", 40);
+ return 0;
+ }
+@@ -265,7 +271,7 @@ if ac_link_v "for writev()/readv()" <<EOF
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <sys/uio.h>
+-int main() {
++int main(int argc, char **argv) {
+ struct iovec iov;
+ return writev(1, &iov, 1) && readv(1, &iov, 1);
+ }
+@@ -278,7 +284,7 @@ fi
+ if ac_link_v "for setitimer()" <<EOF
+ #include <sys/types.h>
+ #include <sys/time.h>
+-int main() {
++int main(int argc, char **argv) {
+ struct itimerval itv;
+ itv.it_interval.tv_sec = itv.it_value.tv_sec = 10;
+ itv.it_interval.tv_usec = itv.it_value.tv_usec = 20;
+@@ -296,7 +302,7 @@ elif ac_link_v "for zlib support" -lz <<EOF
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <zlib.h>
+-int main() {
++int main(int argc, char **argv) {
+ z_stream z;
+ int r;
+ r = inflateInit2(&z, 0);
+@@ -319,7 +325,7 @@ elif [ n = "$enable_dso" ]; then
+ echo "#define NO_DSO 1 /* option disabled */" >>confdef.h
+ elif ac_link_v "for dlopen() in -dl with -rdynamic" -ldl -rdynamic <<EOF
+ #include <dlfcn.h>
+-int main() {
++int main(int argc, char **argv) {
+ void *handle, *func;
+ handle = dlopen("testfile", RTLD_NOW);
+ func = dlsym(handle, "function");
+diff --git a/configure.lib b/configure.lib
+index 39cf423..6b7245f 100644
+--- a/configure.lib
++++ b/configure.lib
+@@ -178,7 +178,7 @@ EOF
+ if ac_yesno "whether the C compiler ($ccld)
+ can produce executables" \
+ ac_compile_run <<EOF
+-int main() { return 0; }
++int main(int argc, char **argv) { return 0; }
+ EOF
+ then :
+ else
+diff --git a/rbldnsd_util.c b/rbldnsd_util.c
+index c6d628d..1402a67 100644
+--- a/rbldnsd_util.c
++++ b/rbldnsd_util.c
+@@ -50,10 +50,10 @@ char *parse_time(char *s, unsigned *tp) {
+ case 'w': case 'W': m *= 7; /* week */
+ case 'd': case 'D': m *= 24; /* day */
+ case 'h': case 'H': m *= 60; /* hours */
+- case 'm': case 'M': m *= 60; /* minues */
++ case 'm': case 'M': m *= 60; /* minutes */
+ if (0xffffffffu / m < *tp) return NULL;
+ *tp *= m;
+- case 's': case 'S': /* secounds */
++ case 's': case 'S': /* seconds */
+ ++s;
+ break;
+ }
+--
+2.43.0
+
diff --git a/net-dns/rbldnsd/files/rbldnsd-0.998b-mallinfo2.patch b/net-dns/rbldnsd/files/rbldnsd-0.998b-mallinfo2.patch
new file mode 100644
index 000000000000..8ce5cb11afa6
--- /dev/null
+++ b/net-dns/rbldnsd/files/rbldnsd-0.998b-mallinfo2.patch
@@ -0,0 +1,59 @@
+From 43e23bf396751cf92252cfef031d4cab2a2fe792 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Fri, 16 Feb 2024 07:38:20 -0500
+Subject: [PATCH 2/2] configure,rbldnsd.c: replace mallinfo() with mallinfo2()
+
+The mallinfo() function from malloc.h is deprecated, and has been
+replaced by mallinfo2(). Additionally, the "mallinfo" struct that it
+returns has been replaced by a "mallinfo2" struct. The only difference
+between the two is that the newer struct contains members of type
+size_t rather than int, which proved to be too small (leading to
+overflows).
+
+The call to ssprintf() that prints this information has been updated
+to use the "z" length modifier, which is C99, but which is probably
+safe by now. Other C99 features are already being used by rbldnsd.
+---
+ configure | 4 ++--
+ rbldnsd.c | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure b/configure
+index 5686b0a..42fcf9a 100755
+--- a/configure
++++ b/configure
+@@ -213,12 +213,12 @@ else
+ fi
+ fi # enable_ipv6?
+
+-if ac_link_v "for mallinfo()" <<EOF
++if ac_link_v "for mallinfo2()" <<EOF
+ #include <sys/types.h>
+ #include <stdlib.h>
+ #include <malloc.h>
+ int main(int argc, char **argv) {
+- struct mallinfo mi = mallinfo();
++ struct mallinfo2 mi = mallinfo2();
+ return 0;
+ }
+ EOF
+diff --git a/rbldnsd.c b/rbldnsd.c
+index 8ea25a2..d0cb43e 100644
+--- a/rbldnsd.c
++++ b/rbldnsd.c
+@@ -951,10 +951,10 @@ static int do_reload(int do_fork) {
+ #endif /* NO_TIMES */
+ #ifndef NO_MEMINFO
+ {
+- struct mallinfo mi = mallinfo();
++ struct mallinfo2 mi = mallinfo2();
+ # define kb(x) ((mi.x + 512)>>10)
+ ip += ssprintf(ibuf + ip, sizeof(ibuf) - ip,
+- ", mem arena=%d free=%d mmap=%d Kb",
++ ", mem arena=%zd free=%zd mmap=%zd Kb",
+ kb(arena), kb(fordblks), kb(hblkhd));
+ # undef kb
+ }
+--
+2.43.0
+
diff --git a/net-dns/rbldnsd/files/rbldnsd-0.998b-sys-poll.patch b/net-dns/rbldnsd/files/rbldnsd-0.998b-sys-poll.patch
new file mode 100644
index 000000000000..ccf53d7e8072
--- /dev/null
+++ b/net-dns/rbldnsd/files/rbldnsd-0.998b-sys-poll.patch
@@ -0,0 +1,54 @@
+From 9a4eeaec16ebd7e5a493fe0a10c371b60ecf813c Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Fri, 16 Feb 2024 07:36:24 -0500
+Subject: [PATCH 1/2] configure,rbldnsd.c: include <poll.h> instead of
+ <sys/poll.h>
+
+As far back as 1997, the Single UNIX Specification (that later became
+POSIX) has said that <poll.h> is the file that provides poll() and
+friends:
+
+ https://pubs.opengroup.org/onlinepubs/7908799/xsh/poll.h.html
+
+Most implementations also support the old <sys/poll.h>, but musl, for
+example, raises a warning about its usage:
+
+ https://git.musl-libc.org/cgit/musl/tree/include/sys/poll.h
+
+This commit updates <sys/poll.h> to <poll.h> in two places.
+
+Closes: https://github.com/spamhaus/rbldnsd/issues/25
+---
+ configure | 2 +-
+ rbldnsd.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 6470c9e..5686b0a 100755
+--- a/configure
++++ b/configure
+@@ -229,7 +229,7 @@ fi
+
+ if ac_link_v "for poll()" <<EOF
+ #include <sys/types.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ int main(int argc, char **argv) {
+ struct pollfd pfd[2];
+ return poll(pfd, 2, 10);
+diff --git a/rbldnsd.c b/rbldnsd.c
+index e791231..8ea25a2 100644
+--- a/rbldnsd.c
++++ b/rbldnsd.c
+@@ -27,7 +27,7 @@
+ # include <sys/select.h>
+ #endif
+ #ifndef NO_POLL
+-# include <sys/poll.h>
++# include <poll.h>
+ #endif
+ #ifndef NO_MEMINFO
+ # include <malloc.h>
+--
+2.43.0
+
diff --git a/net-dns/rbldnsd/rbldnsd-0.998b-r3.ebuild b/net-dns/rbldnsd/rbldnsd-0.998b-r3.ebuild
new file mode 100644
index 000000000000..cf702d80d5e1
--- /dev/null
+++ b/net-dns/rbldnsd/rbldnsd-0.998b-r3.ebuild
@@ -0,0 +1,61 @@
+# 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
+
+PATCHES=(
+ "${FILESDIR}/rbldnsd-0.998b-cstd.patch"
+ "${FILESDIR}/rbldnsd-0.998b-sys-poll.patch"
+ "${FILESDIR}/rbldnsd-0.998b-mallinfo2.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
+}