Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Apr 2026 11:33:14 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Vladimir Druzenko <vvd@FreeBSD.org>, ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Jaap Akkerhuis <jaap@NLnetLabs.nl>
Subject:   Re: git: 1773f41f3368 - main - dns/{ldns,p5-DNS-Ldns,py-ldns}: Update 1.8.4 => 1.9.0, improve port
Message-ID:  <a5ceac6e-0a6c-4b11-b53f-a460cd1b1908@FreeBSD.org>
In-Reply-To: <6941ebbd.21eea.59185546@gitrepo.freebsd.org>

index | next in thread | previous in thread | raw e-mail

On 12/16/25 3:31 PM, Vladimir Druzenko wrote:
> The branch main has been updated by vvd:
>
> URL: https://cgit.FreeBSD.org/ports/commit/?id=1773f41f3368362e3cb35cec01c8f980c16b394a
>
> commit 1773f41f3368362e3cb35cec01c8f980c16b394a
> Author:     Jaap Akkerhuis <jaap@NLnetLabs.nl>
> AuthorDate: 2025-12-16 23:29:09 +0000
> Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
> CommitDate: 2025-12-16 23:29:09 +0000
>
>      dns/{ldns,p5-DNS-Ldns,py-ldns}: Update 1.8.4 => 1.9.0, improve port
>      
>      Changelog:
>      https://github.com/NLnetLabs/ldns/blob/1.9.0/Changelog
>      
>      Improve port:
>      - Switch from "ifs" in goals to goals for options.
>      - Remove old dead code - unused variable NO_GOST.
>      - Fix warnings from portclippy.
>      - Rework "if" for master and slave ports.
>      - Sort pkg-plist.
>      
>      PR:             291573
>      Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
> ---
>   dns/ldns/Makefile         | 126 +++---
>   dns/ldns/distinfo         |   6 +-
>   dns/ldns/files/patch-swig |  77 ----
>   dns/ldns/pkg-plist        | 994 +++++++++++++++++++++++-----------------------
>   4 files changed, 558 insertions(+), 645 deletions(-)
>
> diff --git a/dns/ldns/Makefile b/dns/ldns/Makefile
> index 7fe340e84f92..40aa1a73c173 100644
> --- a/dns/ldns/Makefile
> +++ b/dns/ldns/Makefile
> @@ -1,5 +1,5 @@
>   PORTNAME=	ldns
> -DISTVERSION=	1.8.4
> +DISTVERSION=	1.9.0
>   CATEGORIES=	dns
>   MASTER_SITES=	https://www.nlnetlabs.nl/downloads/ldns/ \
>   		LOCAL/ehaupt
> @@ -12,10 +12,10 @@ LICENSE=	BSD3CLAUSE
>   LICENSE_FILE=	${WRKSRC}/LICENSE
>   
>   USES=		cpe gmake libtool perl5 ssl
> -USE_PERL5=	build
> +CPE_VENDOR=	nlnetlabs
>   USE_LDCONFIG=	yes
> +USE_PERL5=	build
>   
> -CPE_VENDOR=	nlnetlabs
>   GNU_CONFIGURE=	yes
>   CONFIGURE_ARGS+=	--disable-dane-ta-usage \
>   			--with-ssl=${OPENSSLBASE}
> @@ -24,93 +24,95 @@ MAKE_JOBS_UNSAFE=	yes
>   .if ! (defined(BUILD_PYLDNS) || defined(BUILD_P5PERL))
>   OPTIONS_DEFINE=		DOXYGEN DRILL EXAMPLES
>   OPTIONS_DEFAULT=	DRILL
> -
> -DRILL_DESC=	With drill program
> -
>   .endif
>   
> -DOXYGEN_BUILD_DEPENDS=	doxygen:devel/doxygen
> -HTMLDOCS=		doc/html/*
> -
>   OPTIONS_DEFINE+=	DANETAUSAGE GOST RRTYPEAMTRELAY RRTYPEAVC RRTYPENINFO \
>   			RRTYPERKEY RRTYPETA
>   
> +OPTIONS_SUB=		yes
> +
>   DANETAUSAGE_DESC=	Enable ta usage, requires openssl >= 1.1.0
> +DRILL_DESC=		With drill program
>   GOST_DESC=		GOST signatures enabled, requires openssl >= 1.0.0
> +RRTYPEAMTRELAY_DESC=	Enable draft RR type amtrelay.
> +RRTYPEAVC_DESC=		Enable draft RR type avc.
>   RRTYPENINFO_DESC=	Enable draft RR type ninfo.
>   RRTYPERKEY_DESC=	Enable draft RR type rkey.
>   RRTYPETA_DESC=		Enable draft RR type ta.
> -RRTYPEAVC_DESC=		Enable draft RR type avc.
> -RRTYPEAMTRELAY_DESC=	Enable draft RR type amtrelay.
> -
> -OPTIONS_SUB=	yes
>   
> -DANETAUSAGE_CONFIGURE_ENABLE=		dane-ta-usage
>   DANETAUSAGE_IMPLIES=			RRTYPETA
> +DANETAUSAGE_CONFIGURE_ENABLE=		dane-ta-usage
> +DOXYGEN_BUILD_DEPENDS=			doxygen:devel/doxygen
> +DRILL_CONFIGURE_WITH=			drill
> +DRILL_INSTALL_TARGET=			install-drill
> +EXAMPLES_CONFIGURE_WITH=		examples
> +EXAMPLES_INSTALL_TARGET=		install-examples
>   GOST_CONFIGURE_ENABLE=			gost
> +RRTYPEAMTRELAY_CONFIGURE_ENABLE=	rrtype-amtrelay
> +RRTYPEAVC_CONFIGURE_ENABLE=		rrtype-avc
>   RRTYPENINFO_CONFIGURE_ENABLE=		rrtype-ninfo
>   RRTYPERKEY_CONFIGURE_ENABLE=		rrtype-rkey
>   RRTYPETA_CONFIGURE_ENABLE=		rrtype-ta
> -RRTYPEAVC_CONFIGURE_ENABLE=		rrtype-avc
> -RRTYPEAMTRELAY_CONFIGURE_ENABLE=	rrtype-amtrelay
> -EXAMPLES_CONFIGURE_WITH=		examples
> -DRILL_CONFIGURE_WITH=			drill
> -DRILL_INSTALL_TARGET=			install-drill
> -EXAMPLES_INSTALL_TARGET=		install-examples
>   
>   .if defined(BUILD_PYLDNS)
> +
> +PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
> +BUILD_DEPENDS+=	swig:devel/swig
> +LIB_DEPENDS+=	libldns.so:dns/ldns
>   USES+=		python
>   USE_PYTHON=	flavors
> -PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
> -ALL_TARGET=	pyldns
> -INSTALL_TARGET=	install-pyldns
>   
>   CONFIGURE_ARGS+=	--with-pyldns
> -LIB_DEPENDS+=		libldns.so:dns/ldns
> -BUILD_DEPENDS+=		swig:devel/swig
> -CFLAGS+=		-I${OPENSSLINC}
> +
> +ALL_TARGET=	pyldns
> +INSTALL_TARGET=	install-pyldns
> +CFLAGS+=	-I${OPENSSLINC}
>   
>   post-patch:
>   	@${REINPLACE_CMD} \
>   		-e 's=-I./include/ldns=-I${LOCALBASE}/include/ldns=' \
>   		${WRKSRC}/Makefile.in
> +post-install:
> +# file /usr/local/lib/python3.11/site-packages/_ldns.so.3.6.0
> +	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION}/site-packages/_ldns.so.3.6.0
> +
>   .elif defined(BUILD_P5PERL)
> +
> +PKGNAMEPREFIX=	p5-DNS-
> +_BR_DEPENDS=	p5-Devel-CheckLib>=0:devel/p5-Devel-CheckLib \
> +		p5-Test-Exception>=0:devel/p5-Test-Exception
> +BUILD_DEPENDS=	${_BR_DEPENDS}
> +LIB_DEPENDS+=	libldns.so:dns/ldns
> +RUN_DEPENDS=	${_BR_DEPENDS}
>   USES+=		perl5
>   USE_PERL5=	build run
> -PKGNAMEPREFIX=	p5-DNS-
> +
> +CONFIGURE_ARGS+=	--with-p5-dns-ldns
>   
>   ALL_TARGET=	p5-dns-ldns
>   INSTALL_TARGET=	install-p5-dns-ldns
>   
> -CONFIGURE_ARGS+=	--with-p5-dns-ldns
> -RUN_DEPENDS=		p5-Devel-CheckLib>=0:devel/p5-Devel-CheckLib \
> -			p5-Test-Exception>=0:devel/p5-Test-Exception
> -BUILD_DEPENDS=		${RUN_DEPENDS}
> -LIB_DEPENDS+=		libldns.so:dns/ldns
> -
>   post-patch:
> -	${SED} -i '' -e 's=-I./include/ldns=-I${LOCALBASE}/include/ldns=' ${WRKSRC}/Makefile.in
> +	@${REINPLACE_CMD} \
> +		-e 's=-I./include/ldns=-I${LOCALBASE}/include/ldns=' \
> +		${WRKSRC}/Makefile.in
>   
>   post-install:
>   	${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/DNS/LDNS/LDNS.so
> -.else
> -ALL_TARGET=	all
> -INSTALL_TARGET=	install-lib install-h install-config
>   
> -.endif # BUILD_PYLDNS || BUILD_P5PERL
> +.else # BUILD_PYLDNS || BUILD_P5PERL
>   
> -.include <bsd.port.pre.mk>
> -
> -.if ! ${PORT_OPTIONS:MGOST}
> -NO_GOST=	--disable-gost
> -.endif
> +ALL_TARGET=	all
> +INSTALL_TARGET=	install-lib install-h install-config
>   
> -.if ! (defined(BUILD_PYLDNS) || defined(BUILD_P5PERL))
> +EXAMPLES_LIST=	ldns-chaos ldns-compare-zones ldns-dane ldns-dpa ldns-gen-zone ldns-key2ds \
> +		ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash \
> +		ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone \
> +		ldns-test-edns ldns-testns ldns-update ldns-verify-zone ldns-version \
> +		ldns-walk ldns-zcat ldns-zsplit ldnsd
>   
> -post-build:
> -.if ${PORT_OPTIONS:MDOXYGEN}
> +post-build-DOXYGEN-on:
>   	@(cd ${WRKSRC}; ${MAKE_CMD} doxygen)
> -.endif
>   
>   post-install:
>   	${INSTALL_DATA} ${WRKSRC}/packaging/libldns.pc \
> @@ -120,28 +122,16 @@ post-install:
>   	${INSTALL_MAN} ${WRKSRC}/doc/man/man3/ldns_*.3 \
>   		${STAGEDIR}${PREFIX}/share/man/man3
>   	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}.so.3
> -.if ${PORT_OPTIONS:MDRILL}
> +
> +post-install-DOXYGEN-on:
> +	(cd ${WRKSRC}/doc && ${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR})
> +
> +post-install-DRILL-on:
>   	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/drill
> -.endif
> -.if ${PORT_OPTIONS:MEXAMPLES}
> -	for p in ldns-chaos ldns-compare-zones ldns-dane ldns-dpa ldns-gen-zone ldns-key2ds \
> -		ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash \
> -		ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone \
> -		ldns-test-edns ldns-testns ldns-update ldns-verify-zone ldns-version \
> -		ldns-walk ldns-zcat ldns-zsplit ldnsd; do \
> -			${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/$$p; done
> -.endif
> -.if ${PORT_OPTIONS:MDOXYGEN}
> -	${MKDIR} ${STAGEDIR}${DOCSDIR}/html
> -	${INSTALL_DATA} ${HTMLDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}/html
> -.endif
>   
> -.endif # BUILD_PYLDNS || BUILD_P5PERL
> +post-install-EXAMPLES-on:
> +	${STRIP_CMD} ${EXAMPLES_LIST:S|^|${STAGEDIR}${PREFIX}/bin/|}
>   
> -.if (defined(BUILD_PYLDNS))
> -post-install:
> -# file /usr/local/lib/python3.11/site-packages/_ldns.so.3.6.0
> -	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION}/site-packages/_ldns.so.3.6.0
> -.endif # BUILD_PYLDNS
> +.endif # BUILD_PYLDNS || BUILD_P5PERL
>   
> -.include <bsd.port.post.mk>
> +.include <bsd.port.mk>
> diff --git a/dns/ldns/distinfo b/dns/ldns/distinfo
> index 901e4cbe566a..fa5bd3903f66 100644
> --- a/dns/ldns/distinfo
> +++ b/dns/ldns/distinfo
> @@ -1,3 +1,3 @@
> -TIMESTAMP = 1721549282
> -SHA256 (ldns-1.8.4.tar.gz) = 838b907594baaff1cd767e95466a7745998ae64bc74be038dccc62e2de2e4247
> -SIZE (ldns-1.8.4.tar.gz) = 1301058
> +TIMESTAMP = 1764944929
> +SHA256 (ldns-1.9.0.tar.gz) = abaeed2858fbea84a4eb9833e19e7d23380cc0f3d9b6548b962be42276ffdcb3
> +SIZE (ldns-1.9.0.tar.gz) = 1305262
> diff --git a/dns/ldns/files/patch-swig b/dns/ldns/files/patch-swig
> deleted file mode 100644
> index 9d93eddf8f58..000000000000
> --- a/dns/ldns/files/patch-swig
> +++ /dev/null
> @@ -1,77 +0,0 @@
> ---- contrib/python/ldns_buffer.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_buffer.i
> -@@ -45,7 +45,7 @@
> - /* Result generation, appends (ldns_buffer *) after the result. */
> - %typemap(argout, noblock=1) (ldns_buffer **)
> - {
> --  $result = SWIG_Python_AppendOutput($result,
> -+  $result = SWIG_AppendOutput($result,
> -      SWIG_NewPointerObj(SWIG_as_voidptr($1_buf),
> -        SWIGTYPE_p_ldns_struct_buffer, SWIG_POINTER_OWN | 0));
> - }
> ---- contrib/python/ldns_key.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_key.i
> -@@ -38,7 +38,7 @@
> - /* result generation */
> - %typemap(argout,noblock=1) (ldns_key **)
> - {
> --  $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr($1_key), SWIGTYPE_p_ldns_struct_key, SWIG_POINTER_OWN |  0 ));
> -+  $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr($1_key), SWIGTYPE_p_ldns_struct_key, SWIG_POINTER_OWN |  0 ));
> - }
> -
> - %typemap(argout) ldns_rdf *r "Py_INCREF($input);"
> ---- contrib/python/ldns_packet.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_packet.i
> -@@ -45,7 +45,7 @@
> - /* Result generation, appends (ldns_pkt *) after the result. */
> - %typemap(argout,noblock=1) (ldns_pkt **)
> - {
> --  $result = SWIG_Python_AppendOutput($result,
> -+  $result = SWIG_AppendOutput($result,
> -     SWIG_NewPointerObj(SWIG_as_voidptr($1_pkt),
> -       SWIGTYPE_p_ldns_struct_pkt, SWIG_POINTER_OWN |  0 ));
> - }
> ---- contrib/python/ldns_rdf.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_rdf.i
> -@@ -45,7 +45,7 @@
> - /* Result generation, appends (ldns_rdf *) after the result. */
> - %typemap(argout, noblock=1) (ldns_rdf **)
> - {
> --  $result = SWIG_Python_AppendOutput($result,
> -+  $result = SWIG_AppendOutput($result,
> -     SWIG_NewPointerObj(SWIG_as_voidptr($1_rdf),
> -       SWIGTYPE_p_ldns_struct_rdf, SWIG_POINTER_OWN | 0));
> - }
> ---- contrib/python/ldns_resolver.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_resolver.i
> -@@ -45,7 +45,7 @@
> - /* Result generation, appends (ldns_resolver *) after the result. */
> - %typemap(argout,noblock=1) (ldns_resolver **r)
> - {
> --  $result = SWIG_Python_AppendOutput($result,
> -+  $result = SWIG_AppendOutput($result,
> -     SWIG_NewPointerObj(SWIG_as_voidptr($1_res),
> -       SWIGTYPE_p_ldns_struct_resolver, SWIG_POINTER_OWN |  0 ));
> - }
> ---- contrib/python/ldns_rr.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_rr.i
> -@@ -45,7 +45,7 @@
> - /* Result generation, appends (ldns_rr *) after the result. */
> - %typemap(argout, noblock=1) (ldns_rr **)
> - {
> --  $result = SWIG_Python_AppendOutput($result,
> -+  $result = SWIG_AppendOutput($result,
> -     SWIG_NewPointerObj(SWIG_as_voidptr($1_rr),
> -       SWIGTYPE_p_ldns_struct_rr, SWIG_POINTER_OWN |  0 ));
> - }
> ---- contrib/python/ldns_zone.i.orig	2024-07-20 05:07:42 UTC
> -+++ contrib/python/ldns_zone.i
> -@@ -39,7 +39,7 @@
> - /* result generation */
> - %typemap(argout,noblock=1) (ldns_zone **)
> - {
> -- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr($1_zone), SWIGTYPE_p_ldns_struct_zone, SWIG_POINTER_OWN |  0 ));
> -+ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(SWIG_as_voidptr($1_zone), SWIGTYPE_p_ldns_struct_zone, SWIG_POINTER_OWN |  0 ));
> - }
> -
> - %nodefaultctor ldns_struct_zone; //no default constructor & destructor
> diff --git a/dns/ldns/pkg-plist b/dns/ldns/pkg-plist
> index 9a3c308d5482..1d247c3ade05 100644
> --- a/dns/ldns/pkg-plist
> +++ b/dns/ldns/pkg-plist
> @@ -63,503 +63,6 @@ lib/libldns.so
>   lib/libldns.so.3
>   lib/libldns.so.3.6.0
>   libdata/pkgconfig/libldns.pc

Something is wrong here. The shared library version should have gotten a 
bump and ports chased.

In its configure.ac it says:


# ldns-1.8.3 has libversion 8:0:5
# ldns-1.9.0 will have libversion 9:0:6 (new behaviour for 
dnssec_rrs_add_rr)
#
AC_SUBST(VERSION_INFO, [9:0:6])


I had claude code chase down an error I was getting with opendnssec 
which landed here.


   > ldns 1.9.0 inserted LDNS_RDF_TYPE_INT64 at enum position 5, 
shifting every subsequent value by +1. But the FreeBSD port kept the 
shared library as libldns.so.3.6.0 — no
   > SONAME bump — so OpenDNSSEC's binary wasn't flagged for rebuild and 
still has the old 1.8.x enum constants baked in.


Error I am seeing in opendnssec for the sake of google:

 > [adapter] error parsing RR at line 2 (Syntax error, could not parse 
the RR's rdata)



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a5ceac6e-0a6c-4b11-b53f-a460cd1b1908>