Index | Thread | Search

From:
Giovanni Bechis <giovanni@paclan.it>
Subject:
Re: rbldnsd update, move tests -> py3
To:
ports <ports@openbsd.org>
Date:
Mon, 15 Dec 2025 16:34:39 +0100

Download raw body.

Thread
On 12/15/25 2:41 PM, Stuart Henderson wrote:
> in 2021, rbldnsd converted their tests to work with Python 3.
> this updates and switches py-dns across. no substantial code changes
> in the C rbldnsd code for us, systemd socket activation was added
> but it's behind an #ifdef.
> 
> ok?
> 
sure.
ok giovanni@
  Cheers
    Giovanni

> Index: net/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/Makefile,v
> diff -u -p -r1.1445 Makefile
> --- net/Makefile	8 Dec 2025 14:06:59 -0000	1.1445
> +++ net/Makefile	15 Dec 2025 13:40:48 -0000
> @@ -578,7 +578,7 @@
>        SUBDIR += py-cbor2
>        SUBDIR += py-curl
>        SUBDIR += py-cymruwhois
> -     SUBDIR += py-dns			# py2
> +     SUBDIR += py-dns
>        SUBDIR += py-dnslib
>        SUBDIR += py-dnspython
>        SUBDIR += py-dpkt
> Index: net/py-dns/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/py-dns/Makefile,v
> diff -u -p -r1.28 Makefile
> --- net/py-dns/Makefile	21 Dec 2024 11:46:02 -0000	1.28
> +++ net/py-dns/Makefile	15 Dec 2025 13:40:48 -0000
> @@ -1,26 +1,18 @@
>   COMMENT =	Python DNS library
> 
> -# only used by rbldnsd
> -MODPY_VERSION =	${MODPY_DEFAULT_VERSION_2}
> -
> -MODPY_DISTV =	2.3.6
> -DISTNAME =	pydns-${MODPY_DISTV}
> +MODPY_DISTV =	4.0.2
> +DISTNAME =	py3dns-${MODPY_DISTV}
>   PKGNAME =	py-dns-${MODPY_DISTV}
>   CATEGORIES =	net
> -REVISION =	0
> 
>   HOMEPAGE =	https://pydns.sourceforge.net/
> 
>   # Python License
>   PERMIT_PACKAGE =	Yes
> 
> -SITES =		${SITE_SOURCEFORGE:=pydns/}
> -
> +# tests need network
>   MODULES =	lang/python
> -
> -do-test:
> -	cd ${WRKSRC}/tests && for test in *.py; do \
> -	    PYTHONPATH=.. ${MODPY_BIN} $$test; \
> -	done
> +MODPY_PYBUILD =	flit_core
> +MODPY_PI =	Yes
> 
>   .include <bsd.port.mk>
> Index: net/py-dns/distinfo
> ===================================================================
> RCS file: /cvs/ports/net/py-dns/distinfo,v
> diff -u -p -r1.7 distinfo
> --- net/py-dns/distinfo	16 Jan 2013 07:55:26 -0000	1.7
> +++ net/py-dns/distinfo	15 Dec 2025 13:40:48 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (pydns-2.3.6.tar.gz) = 089vxOwIjpNM8t1NcQgO/bXAmuecuyUSQn6w/Dk/JBc=
> -SIZE (pydns-2.3.6.tar.gz) = 28220
> +SHA256 (py3dns-4.0.2.tar.gz) = mGUugOzsFDxg948OazQWMcqadWDt2N3fyGTAKQJhijk=
> +SIZE (py3dns-4.0.2.tar.gz) = 33982
> Index: net/py-dns/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/net/py-dns/pkg/PLIST,v
> diff -u -p -r1.7 PLIST
> --- net/py-dns/pkg/PLIST	21 Dec 2024 11:46:02 -0000	1.7
> +++ net/py-dns/pkg/PLIST	15 Dec 2025 13:40:48 -0000
> @@ -1,29 +1,46 @@
>   lib/python${MODPY_VERSION}/site-packages/DNS/
>   lib/python${MODPY_VERSION}/site-packages/DNS/Base.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/Base.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/Base.pyo
>   lib/python${MODPY_VERSION}/site-packages/DNS/Class.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/Class.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/Class.pyo
>   lib/python${MODPY_VERSION}/site-packages/DNS/Lib.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/Lib.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/Lib.pyo
>   lib/python${MODPY_VERSION}/site-packages/DNS/Opcode.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/Opcode.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/Opcode.pyo
>   lib/python${MODPY_VERSION}/site-packages/DNS/Status.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/Status.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/Status.pyo
>   lib/python${MODPY_VERSION}/site-packages/DNS/Type.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/Type.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/Type.pyo
>   lib/python${MODPY_VERSION}/site-packages/DNS/__init__.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/__init__.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/__init__.pyo
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}/
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Base.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Class.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Class.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Lib.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Lib.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Opcode.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Opcode.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Status.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Status.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Type.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}Type.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}lazy.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}lazy.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}win32dns.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/${MODPY_PYCACHE}win32dns.${MODPY_PYC_MAGIC_TAG}pyc
>   lib/python${MODPY_VERSION}/site-packages/DNS/lazy.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/lazy.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/lazy.pyo
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/__init__.py
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}/
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}testPackers.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}testPackers.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}test_base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/${MODPY_PYCACHE}test_base.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/testPackers.py
> +lib/python${MODPY_VERSION}/site-packages/DNS/tests/test_base.py
>   lib/python${MODPY_VERSION}/site-packages/DNS/win32dns.py
> -lib/python${MODPY_VERSION}/site-packages/DNS/win32dns.pyc
> -lib/python${MODPY_VERSION}/site-packages/DNS/win32dns.pyo
> -lib/python${MODPY_VERSION}/site-packages/pydns-${MODPY_DISTV}-py${MODPY_VERSION}.egg-info
> +lib/python${MODPY_VERSION}/site-packages/py3dns-${MODPY_DISTV}.dist-info/
> +lib/python${MODPY_VERSION}/site-packages/py3dns-${MODPY_DISTV}.dist-info/METADATA
> +lib/python${MODPY_VERSION}/site-packages/py3dns-${MODPY_DISTV}.dist-info/RECORD
> +lib/python${MODPY_VERSION}/site-packages/py3dns-${MODPY_DISTV}.dist-info/WHEEL
> +lib/python${MODPY_VERSION}/site-packages/py3dns-${MODPY_DISTV}.dist-info/licenses/
> +lib/python${MODPY_VERSION}/site-packages/py3dns-${MODPY_DISTV}.dist-info/licenses/LICENSE
> Index: devel/quirks/Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/Makefile,v
> diff -u -p -r1.1757 Makefile
> --- devel/quirks/Makefile	12 Dec 2025 18:19:46 -0000	1.1757
> +++ devel/quirks/Makefile	15 Dec 2025 13:40:48 -0000
> @@ -3,7 +3,7 @@ CATEGORIES =	devel databases
>   DISTFILES =
> 
>   # API.rev
> -PKGNAME =	quirks-7.164
> +PKGNAME =	quirks-7.165
>   PKG_ARCH =	*
>   MAINTAINER =	Marc Espie <espie@openbsd.org>
> 
> Index: devel/quirks/files/Quirks.pm
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v
> diff -u -p -r1.1769 Quirks.pm
> --- devel/quirks/files/Quirks.pm	12 Dec 2025 18:19:46 -0000	1.1769
> +++ devel/quirks/files/Quirks.pm	15 Dec 2025 13:40:48 -0000
> @@ -497,6 +497,7 @@ my $stem_extensions = {
>   	'ipython3' => 'ipython',
>   	'js128' => 'js140',
>   	'g95' => 'gfortran',
> +	'py-dns' => 'py3-dns',
>   };
> 
>   my $obsolete_reason = {};
> Index: net/rbldnsd/Makefile
> ===================================================================
> RCS file: /cvs/ports/net/rbldnsd/Makefile,v
> diff -u -p -r1.19 Makefile
> --- net/rbldnsd/Makefile	8 Nov 2022 11:17:00 -0000	1.19
> +++ net/rbldnsd/Makefile	15 Dec 2025 13:40:48 -0000
> @@ -1,10 +1,9 @@
>   COMMENT=	small daemon for DNSBLs
> 
> -DISTNAME=	rbldnsd-0.998.20180516
> +DISTNAME=	rbldnsd-0.998.20210120
>   GH_ACCOUNT=	spamhaus
>   GH_PROJECT=	rbldnsd
> -GH_COMMIT=	cfb7e80ffa690861b1b79772328aa274d1d5446a
> -REVISION=	0
> +GH_COMMIT=	6a5daeec405c6aac24cd6ff865adb6b9666cdce6
> 
>   CATEGORIES=	net
> 
> @@ -14,17 +13,19 @@ MAINTAINER=	Giovanni Bechis <giovanni@op
>   # GPLv2
>   PERMIT_PACKAGE=	Yes
> 
> -WANTLIB=		c z
> -MODULES=		lang/python
> -MODPY_VERSION =	${MODPY_DEFAULT_VERSION_2}
> -MODPY_RUNDEP=		no
> +WANTLIB=	c z
> 
>   CONFIGURE_STYLE=simple
> -RBLDNSD_BASE=	${VARBASE}/rbldnsd
> -SUBST_VARS=	VARBASE RBLDNSD_BASE
> -
> +USE_GMAKE=	Yes
> +RBLDNSD_BASE=	${LOCALSTATEDIR}/rbldnsd
> +SUBST_VARS=	RBLDNSD_BASE
> +
> +# program is written in C; this is just for tests
> +MODULES=	lang/python
> +MODPY_RUNDEP=	no
>   TEST_TARGET=	check
>   TEST_DEPENDS=	net/py-dns
> +TEST_FLAGS=	PYTHON=${MODPY_BIN}
> 
>   pre-configure:
>   	${SUBST_CMD} ${WRKSRC}/Makefile.in
> Index: net/rbldnsd/distinfo
> ===================================================================
> RCS file: /cvs/ports/net/rbldnsd/distinfo,v
> diff -u -p -r1.7 distinfo
> --- net/rbldnsd/distinfo	18 Mar 2019 16:29:49 -0000	1.7
> +++ net/rbldnsd/distinfo	15 Dec 2025 13:40:48 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (rbldnsd-0.998.20180516-cfb7e80f.tar.gz) = qi+PKkQkcYU8SHIThe1jRD6woITrap7KP5tzno8FpME=
> -SIZE (rbldnsd-0.998.20180516-cfb7e80f.tar.gz) = 156145
> +SHA256 (rbldnsd-0.998.20210120-6a5daeec.tar.gz) = ulIwGbe2usQQjSuiO8lFjs+af4tKM/+QuL6q3vWZh3M=
> +SIZE (rbldnsd-0.998.20210120-6a5daeec.tar.gz) = 158872
> Index: net/rbldnsd/patches/patch-Makefile_in
> ===================================================================
> RCS file: net/rbldnsd/patches/patch-Makefile_in
> diff -N net/rbldnsd/patches/patch-Makefile_in
> --- net/rbldnsd/patches/patch-Makefile_in	11 Mar 2022 19:47:19 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -Index: Makefile.in
> ---- Makefile.in.orig
> -+++ Makefile.in
> -@@ -11,7 +11,7 @@ AR = @AR@
> - ARFLAGS = @ARFLAGS@
> - RANLIB = @RANLIB@
> - AWK = @AWK@
> --PYTHON = python
> -+PYTHON = ${MODPY_BIN}
> - GNUTAR = tar
> -
> - # Disable statistic counters
> Index: net/rbldnsd/patches/patch-rbldnsd_c
> ===================================================================
> RCS file: /cvs/ports/net/rbldnsd/patches/patch-rbldnsd_c,v
> diff -u -p -r1.6 patch-rbldnsd_c
> --- net/rbldnsd/patches/patch-rbldnsd_c	11 Mar 2022 19:47:19 -0000	1.6
> +++ net/rbldnsd/patches/patch-rbldnsd_c	15 Dec 2025 13:40:48 -0000
> @@ -1,7 +1,7 @@
>   Index: rbldnsd.c
>   --- rbldnsd.c.orig
>   +++ rbldnsd.c
> -@@ -661,7 +661,7 @@ break;
> +@@ -762,7 +762,7 @@ break;
>    #endif
> 
>      if (!user && !(uid = getuid()))
> Index: net/rbldnsd/pkg/README
> ===================================================================
> RCS file: /cvs/ports/net/rbldnsd/pkg/README,v
> diff -u -p -r1.6 README
> --- net/rbldnsd/pkg/README	11 Mar 2022 19:47:19 -0000	1.6
> +++ net/rbldnsd/pkg/README	15 Dec 2025 13:40:48 -0000
> @@ -4,22 +4,22 @@
> 
>   rbldnsd runs chrooted
>   =====================
> -By default, the rbldnsd package will chroot to ${VARBASE}/rbldnsd, and the
> +By default, the rbldnsd package will chroot to ${RBLDNSD_BASE}, and the
>   package will create two subdirectories underneath:
> 
> -	${VARBASE}/rbldnsd/             # rbldnsd chroot path
> -	${VARBASE}/rbldnsd/etc/         # zonefiles
> -	${VARBASE}/rbldnsd/var/         # scratch/work (-w) directory
> +	${RBLDNSD_BASE}/             # rbldnsd chroot path
> +	${RBLDNSD_BASE}/etc/         # zonefiles
> +	${RBLDNSD_BASE}/var/         # scratch/work (-w) directory
> 
>   Because of the chroot(), all paths given to rbldnsd are relative to
> -to the chroot path (${VARBASE}/rbldnsd).  Thus, with this line in
> +to the chroot path (${RBLDNSD_BASE}).  Thus, with this line in
>   /etc/rc.conf.local:
> 
>   rbldnsd_flags=-b 127.0.0.1/53 rbl.invalid:ip4tset:/etc/rbl.invalid.zone
> 
>   rbldnsd will load the "rbl.invalid" zone from
> -${VARBASE}/rbldnsd/etc/rbl.invalid.zone and do any processing in
> -${VARBASE}/rbldnsd/var/
> +${RBLDNSD_BASE}/etc/rbl.invalid.zone and do any processing in
> +${RBLDNSD_BASE}/var/
> 
>   Note that rbldnsd will refuse to start if you do not supply the "-b"
>   option and an "IP address <forward slash> port number" argument for
>