public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michael Orlitzky" <mjo@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: net-dns/rbldnsd/files/, net-dns/rbldnsd/
Date: Fri, 16 Feb 2024 12:48:21 +0000 (UTC)	[thread overview]
Message-ID: <1708087693.2beb33a4103e9767c7864a773456e1e04a63e67b.mjo@gentoo> (raw)

commit:     2beb33a4103e9767c7864a773456e1e04a63e67b
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 16 12:28:31 2024 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Fri Feb 16 12:48:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2beb33a4

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 <AT> gentoo.org>

 net-dns/rbldnsd/files/rbldnsd-0.998b-cstd.patch    | 193 +++++++++++++++++++++
 .../rbldnsd/files/rbldnsd-0.998b-mallinfo2.patch   |  59 +++++++
 .../rbldnsd/files/rbldnsd-0.998b-sys-poll.patch    |  54 ++++++
 net-dns/rbldnsd/rbldnsd-0.998b-r3.ebuild           |  61 +++++++
 4 files changed, 367 insertions(+)

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
+}


             reply	other threads:[~2024-02-16 12:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-16 12:48 Michael Orlitzky [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-05-02 11:17 [gentoo-commits] repo/gentoo:master commit in: net-dns/rbldnsd/files/, net-dns/rbldnsd/ Michael Orlitzky
2019-11-29 20:49 Michael Orlitzky
2015-09-27 13:20 Michael Orlitzky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1708087693.2beb33a4103e9767c7864a773456e1e04a63e67b.mjo@gentoo \
    --to=mjo@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox