diff options
author | Michael Orlitzky <mjo@gentoo.org> | 2024-02-16 07:28:31 -0500 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2024-02-16 07:48:13 -0500 |
commit | 2beb33a4103e9767c7864a773456e1e04a63e67b (patch) | |
tree | 55e90e5bacbe1a3c3ef2bbb100407687653726c0 /net-dns | |
parent | media-sound/din: dropped obsolete 57 (diff) | |
download | gentoo-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.patch | 193 | ||||
-rw-r--r-- | net-dns/rbldnsd/files/rbldnsd-0.998b-mallinfo2.patch | 59 | ||||
-rw-r--r-- | net-dns/rbldnsd/files/rbldnsd-0.998b-sys-poll.patch | 54 | ||||
-rw-r--r-- | net-dns/rbldnsd/rbldnsd-0.998b-r3.ebuild | 61 |
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 +} |