Control: tags 1117748 + patch
Control: tags 1117748 + pending

Dear maintainer,

I've prepared an NMU for gdnsd (versioned as 3.8.3-2.1) and uploaded
it to DELAYED/14. Please feel free to tell me if I should cancel it.

cu
Adrian
diffstat for gdnsd-3.8.3 gdnsd-3.8.3

 changelog                                                     |    8 
 patches/0001-testsuite-update-for-Net-DNS-1.53-breakage.patch |  349 ++++++++++
 patches/series                                                |    1 
 3 files changed, 358 insertions(+)

diff -Nru gdnsd-3.8.3/debian/changelog gdnsd-3.8.3/debian/changelog
--- gdnsd-3.8.3/debian/changelog	2025-02-16 12:02:23.000000000 +0200
+++ gdnsd-3.8.3/debian/changelog	2025-11-08 16:00:53.000000000 +0200
@@ -1,3 +1,11 @@
+gdnsd (3.8.3-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Backport upstream fix for test failures with Net::DNS 1.53.
+    (Closes: #1117748)
+
+ -- Adrian Bunk <[email protected]>  Sat, 08 Nov 2025 16:00:53 +0200
+
 gdnsd (3.8.3-2) unstable; urgency=medium
 
   * Backport upstream commit 4df9ddf to fix an Net::DNS 1.49 related testsuite
diff -Nru gdnsd-3.8.3/debian/patches/0001-testsuite-update-for-Net-DNS-1.53-breakage.patch gdnsd-3.8.3/debian/patches/0001-testsuite-update-for-Net-DNS-1.53-breakage.patch
--- gdnsd-3.8.3/debian/patches/0001-testsuite-update-for-Net-DNS-1.53-breakage.patch	1970-01-01 02:00:00.000000000 +0200
+++ gdnsd-3.8.3/debian/patches/0001-testsuite-update-for-Net-DNS-1.53-breakage.patch	2025-11-08 15:52:01.000000000 +0200
@@ -0,0 +1,349 @@
+From bf9682fbbd0ba5f1f3f4d9021f32bc05e2923f3c Mon Sep 17 00:00:00 2001
+From: Brandon L Black <[email protected]>
+Date: Wed, 8 Oct 2025 13:33:32 -0500
+Subject: testsuite: update for Net::DNS 1.53 breakage
+
+It used to be the case that an undefined / unspecified DNS class
+defaulted to "IN", now it doesn't, so we have to be explicit
+everywhere.
+
+[backported from blblack/zigzag branch]
+---
+ t/003complex/005big.t             |  2 ++
+ t/003complex/008compress.t        |  1 +
+ t/003complex/009broken.t          |  4 ++++
+ t/003complex/011random.t          | 12 ++++++------
+ t/003complex/012aaaa.t            |  1 +
+ t/004misc/018misc.t               | 18 ++++++++++--------
+ t/004misc/019bad.t                |  6 +++---
+ t/005tld/020tld.t                 |  3 +++
+ t/013clientsub/039clientsub.t     |  1 +
+ t/021caa/047caa.t                 |  2 ++
+ t/023cookies/050cookies.t         |  1 +
+ t/024cookies_max/051cookies_max.t |  2 ++
+ t/025nocookies/052nocookies.t     |  2 ++
+ t/_GDT.pm                         |  2 +-
+ 14 files changed, 39 insertions(+), 18 deletions(-)
+
+diff --git a/t/003complex/005big.t b/t/003complex/005big.t
+index bac4b310..1b69964c 100644
+--- a/t/003complex/005big.t
++++ b/t/003complex/005big.t
+@@ -7,6 +7,7 @@ my $pid = _GDT->test_spawn_daemon();
+ 
+ my $optrr = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+@@ -16,6 +17,7 @@ my $optrr = Net::DNS::RR->new(
+ 
+ my $optrr_keepalive = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/003complex/008compress.t b/t/003complex/008compress.t
+index e5df8aa6..63dc4a64 100644
+--- a/t/003complex/008compress.t
++++ b/t/003complex/008compress.t
+@@ -71,6 +71,7 @@ my $compt_mxset = [
+ 
+ my $optrr = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/003complex/009broken.t b/t/003complex/009broken.t
+index 9355af11..6fda2a7f 100644
+--- a/t/003complex/009broken.t
++++ b/t/003complex/009broken.t
+@@ -81,6 +81,7 @@ _GDT->test_dns(
+ 
+ my @edns_base = (
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+@@ -118,6 +119,7 @@ my @edns_base = (
+ 
+ my $optrr_resp = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+@@ -129,6 +131,7 @@ my $optrr_resp = Net::DNS::RR->new(
+ {
+     my $optrr_nsid = Net::DNS::RR->new(
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+@@ -150,6 +153,7 @@ my $optrr_resp = Net::DNS::RR->new(
+ {
+     my $optrr_nsid_withdata = Net::DNS::RR->new(
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+diff --git a/t/003complex/011random.t b/t/003complex/011random.t
+index bfdd8880..7d0d0e3e 100644
+--- a/t/003complex/011random.t
++++ b/t/003complex/011random.t
+@@ -119,10 +119,10 @@ foreach (1..$_GDT::RAND_LOOPS) {
+ 
+     eval {_GDT->query_server(
+         undef,
+-        Net::DNS::Packet->new('foo.example.com', 'A'),
++        Net::DNS::Packet->new('foo.example.com', 'A', 'IN'),
+         _GDT->mkanswer({ },
+-            Net::DNS::Question->new('foo.example.com', 'A'),
+-            [Net::DNS::rr_add('foo.example.com 21600 A 192.0.2.160')], [], [],
++            Net::DNS::Question->new('foo.example.com', 'A', 'IN'),
++            [Net::DNS::rr_add('foo.example.com 21600 IN A 192.0.2.160')], [], [],
+         ),
+         _GDT->get_resolver(), {},
+     )};
+@@ -171,10 +171,10 @@ foreach (1..$_GDT::RAND_LOOPS) {
+ 
+     eval {_GDT->query_server(
+         undef,
+-        Net::DNS::Packet->new('foo.example.com', 'A'),
++        Net::DNS::Packet->new('foo.example.com', 'A', 'IN'),
+         _GDT->mkanswer({ },
+-            Net::DNS::Question->new('foo.example.com', 'A'),
+-            [Net::DNS::rr_add('foo.example.com 21600 A 192.0.2.160')], [], [],
++            Net::DNS::Question->new('foo.example.com', 'A', 'IN'),
++            [Net::DNS::rr_add('foo.example.com 21600 IN A 192.0.2.160')], [], [],
+         ),
+         _GDT->get_resolver(), {},
+     )};
+diff --git a/t/003complex/012aaaa.t b/t/003complex/012aaaa.t
+index 1c4143de..f2cf3106 100644
+--- a/t/003complex/012aaaa.t
++++ b/t/003complex/012aaaa.t
+@@ -7,6 +7,7 @@ my $neg_soa = 'example.com 900 SOA ns1.example.com dns-admin.example.net 1 7200
+ 
+ my $optrr = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/004misc/018misc.t b/t/004misc/018misc.t
+index c5290e78..b17bffc2 100644
+--- a/t/004misc/018misc.t
++++ b/t/004misc/018misc.t
+@@ -9,6 +9,7 @@ use Test::More tests => 12;
+ 
+ my $optrr = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+@@ -16,8 +17,8 @@ my $optrr = Net::DNS::RR->new(
+     flags => 0,
+ );
+ 
+-my $long_rr = Net::DNS::rr_add('this.is.an.rr.thats.longer.than.an.opt.rr.in.order.to.make.coverage.work A 192.0.2.1');
+-my $long_root_rr = Net::DNS::rr_add('. MX 0 this.is.an.rr.thats.longer.than.an.opt.rr.in.order.to.make.coverage.work');
++my $long_rr = Net::DNS::rr_add('this.is.an.rr.thats.longer.than.an.opt.rr.in.order.to.make.coverage.work IN A 192.0.2.1');
++my $long_root_rr = Net::DNS::rr_add('. IN MX 0 this.is.an.rr.thats.longer.than.an.opt.rr.in.order.to.make.coverage.work');
+ 
+ my $pid = _GDT->test_spawn_daemon();
+ 
+@@ -56,7 +57,7 @@ _GDT->test_dns(
+ 
+ {
+     my $qpacket = Net::DNS::Packet->new();
+-    $qpacket->push('question', Net::DNS::Question->new('foo.example.com', 'A'));
++    $qpacket->push('question', Net::DNS::Question->new('foo.example.com', 'A', 'IN'));
+     $qpacket->push('additional', $long_rr);
+     _GDT->test_dns(
+         qpacket => $qpacket,
+@@ -66,7 +67,7 @@ _GDT->test_dns(
+ 
+ {
+     my $qpacket = Net::DNS::Packet->new();
+-    $qpacket->push('question', Net::DNS::Question->new('foo.example.com', 'A'));
++    $qpacket->push('question', Net::DNS::Question->new('foo.example.com', 'A', 'IN'));
+     $qpacket->push('additional', $long_root_rr);
+     _GDT->test_dns(
+         qpacket => $qpacket,
+@@ -77,10 +78,10 @@ _GDT->test_dns(
+ # Try a bunch of records in all the non-question sections
+ {
+     my $qpacket = Net::DNS::Packet->new();
+-    $qpacket->push('question', Net::DNS::Question->new('foo.example.com', 'A'));
+-    $qpacket->push('answer', Net::DNS::RR->new('. A 192.0.2.1')) for 1..15;
+-    $qpacket->push('auth', Net::DNS::RR->new('. AAAA ::192.0.2.1')) for 1..13;
+-    $qpacket->push('additional', Net::DNS::RR->new('. MX 0 192.0.2.1')) for 1..11;
++    $qpacket->push('question', Net::DNS::Question->new('foo.example.com', 'A', 'IN'));
++    $qpacket->push('answer', Net::DNS::RR->new('. IN A 192.0.2.1')) for 1..15;
++    $qpacket->push('auth', Net::DNS::RR->new('. IN AAAA ::192.0.2.1')) for 1..13;
++    $qpacket->push('additional', Net::DNS::RR->new('. IN MX 0 192.0.2.1')) for 1..11;
+     _GDT->test_dns(
+         resopts => { usevc => 0, igntc => 1, udppacketsize => 1024 },
+         qpacket => $qpacket,
+@@ -119,6 +120,7 @@ _GDT->test_dns(
+ {
+     my @optrr_do = (
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+diff --git a/t/004misc/019bad.t b/t/004misc/019bad.t
+index 1757bf2b..26c9b765 100644
+--- a/t/004misc/019bad.t
++++ b/t/004misc/019bad.t
+@@ -574,10 +574,10 @@ ok(!$@) or diag $@;
+ # Test a valid query to make sure the server is still functioning
+ eval {_GDT->query_server(
+     undef,
+-    Net::DNS::Packet->new('foo.example.com', 'A'),
++    Net::DNS::Packet->new('foo.example.com', 'A', 'IN'),
+     _GDT->mkanswer({ },
+-        Net::DNS::Question->new('foo.example.com', 'A'),
+-        [Net::DNS::rr_add('foo.example.com 86400 A 192.0.2.3')], [], [],
++        Net::DNS::Question->new('foo.example.com', 'A', 'IN'),
++        [Net::DNS::rr_add('foo.example.com 86400 IN A 192.0.2.3')], [], [],
+     ),
+     _GDT->get_resolver(), {},
+ )};
+diff --git a/t/005tld/020tld.t b/t/005tld/020tld.t
+index b88246c6..3b93dda7 100644
+--- a/t/005tld/020tld.t
++++ b/t/005tld/020tld.t
+@@ -6,6 +6,7 @@ use Test::More tests => 6;
+ 
+ my $optrr_req_nsid = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+@@ -16,6 +17,7 @@ _GDT::optrr_option_set($optrr_req_nsid, 'NSID', '');
+ 
+ my $optrr_nsid = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+@@ -26,6 +28,7 @@ _GDT::optrr_option_set($optrr_nsid, 'NSID', pack('H*', '6578616D706C65'));
+ 
+ my $optrr_nonsid = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/013clientsub/039clientsub.t b/t/013clientsub/039clientsub.t
+index 4c9c4040..e2c17c28 100644
+--- a/t/013clientsub/039clientsub.t
++++ b/t/013clientsub/039clientsub.t
+@@ -157,6 +157,7 @@ _GDT->test_dns(
+ 
+ my @optrr_base = (
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/021caa/047caa.t b/t/021caa/047caa.t
+index 531ab497..f6550be7 100644
+--- a/t/021caa/047caa.t
++++ b/t/021caa/047caa.t
+@@ -5,6 +5,7 @@ my $pid = _GDT->test_spawn_daemon();
+ 
+ my $optrr_req_nsid = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 32000,
+@@ -15,6 +16,7 @@ _GDT::optrr_option_set($optrr_req_nsid, 'NSID', '');
+ 
+ my $optrr_nsid = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/023cookies/050cookies.t b/t/023cookies/050cookies.t
+index 820a24d8..2693b790 100644
+--- a/t/023cookies/050cookies.t
++++ b/t/023cookies/050cookies.t
+@@ -9,6 +9,7 @@ sub _mk_optrr_cookie {
+     my $data = shift;
+     my $optrr_cookie = Net::DNS::RR->new(
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+diff --git a/t/024cookies_max/051cookies_max.t b/t/024cookies_max/051cookies_max.t
+index 4e874b15..dc85c3f4 100644
+--- a/t/024cookies_max/051cookies_max.t
++++ b/t/024cookies_max/051cookies_max.t
+@@ -7,6 +7,7 @@ sub _mk_optrr_cookie {
+     my $data = shift;
+     my $optrr_cookie = Net::DNS::RR->new(
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+@@ -80,6 +81,7 @@ foreach my $proto (qw/v4_only v6_only/) {
+     # still get a TC-bit.
+     my $optrr_plain_1k = Net::DNS::RR->new(
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+diff --git a/t/025nocookies/052nocookies.t b/t/025nocookies/052nocookies.t
+index e40c7563..c9049d6a 100644
+--- a/t/025nocookies/052nocookies.t
++++ b/t/025nocookies/052nocookies.t
+@@ -7,6 +7,7 @@ sub _mk_optrr_cookie {
+     my $data = shift;
+     my $optrr_cookie = Net::DNS::RR->new(
+         type => "OPT",
++        class => 'IN',
+         version => 0,
+         name => "",
+         size => 1024,
+@@ -26,6 +27,7 @@ my $pid = _GDT->test_spawn_daemon();
+ # Test that input cookies are basically ignored when config disables cookies
+ my $optrr_plain_1k = Net::DNS::RR->new(
+     type => "OPT",
++    class => 'IN',
+     version => 0,
+     name => "",
+     size => 1024,
+diff --git a/t/_GDT.pm b/t/_GDT.pm
+index 4e101be4..e38f30a7 100644
+--- a/t/_GDT.pm
++++ b/t/_GDT.pm
+@@ -1133,7 +1133,7 @@ sub test_dns {
+         else {
+             $aref = $args{$sec};
+         }
+-        map { if(!ref $aref->[$_]) { $aref->[$_] = Net::DNS::RR->new($aref->[$_]) } } (0..$#$aref);
++        map { if(!ref $aref->[$_]) { $aref->[$_] = Net::DNS::RR->new($aref->[$_]); $aref->[$_]->{class} ||= 1; } } (0..$#$aref);
+     }
+ 
+     my $qpacket = $args{qpacket} || Net::DNS::Packet->new($args{qname}, $args{qtype});
+-- 
+2.30.2
+
diff -Nru gdnsd-3.8.3/debian/patches/series gdnsd-3.8.3/debian/patches/series
--- gdnsd-3.8.3/debian/patches/series	2025-02-16 12:00:47.000000000 +0200
+++ gdnsd-3.8.3/debian/patches/series	2025-11-08 16:00:53.000000000 +0200
@@ -1 +1,2 @@
 tests-Fix-Net-DNS-1.49-testsuite-breakage.patch
+0001-testsuite-update-for-Net-DNS-1.53-breakage.patch

Reply via email to