diff --git a/community/gdnsd/APKBUILD b/community/gdnsd/APKBUILD index ced9ae20186feb7ada88d5082e7c0f72cc8f4913..95d5d3ba8ca4e21b7bb378e40d34220dc39f1b3e 100644 --- a/community/gdnsd/APKBUILD +++ b/community/gdnsd/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Timo Teräs <timo.teras@iki.fi> pkgname=gdnsd pkgver=3.8.2 -pkgrel=0 +pkgrel=1 pkgdesc="Geographic Authoritative DNS server" url="https://github.com/gdnsd/gdnsd/" arch="all" @@ -32,6 +32,7 @@ install="$pkgname.pre-install" subpackages="$pkgname-doc $pkgname-openrc" source="https://github.com/gdnsd/gdnsd/releases/download/v$pkgver/gdnsd-$pkgver.tar.xz gdnsd.initd + net-dns-1.46.patch " # secfixes: @@ -66,4 +67,5 @@ package() { sha512sums=" 982d81cf3b4b20c0bbe640b3bd75697aaea08636c89077729def1c053f5cc3515854a46e1f5009367bfcb2671fa6a394152bde68307a92f3ce748a0badefa8d2 gdnsd-3.8.2.tar.xz 7e66f9d3dab3a36334d47740f12ee7f3ffd363d416bd1fcca4b339db8ba858419555751786247ffc4e5faf68c6b5fa87b84c04ffa25133a17b186bdf83c365b9 gdnsd.initd +4667b641eb3519fceb3884f25ae6dfff12f5b8dd0d3b55dad00d6a62394e797767520b493e78f57ee1fe8c5b8a53822594e197a35485e2de6bd2d78a7058964a net-dns-1.46.patch " diff --git a/community/gdnsd/net-dns-1.46.patch b/community/gdnsd/net-dns-1.46.patch new file mode 100644 index 0000000000000000000000000000000000000000..0054f29ffff29115bdd277ffc4cbea85d5ba0bef --- /dev/null +++ b/community/gdnsd/net-dns-1.46.patch @@ -0,0 +1,67 @@ +From 1e91a5aa67ef2da1bbaedafd7d1a91855f4b2993 Mon Sep 17 00:00:00 2001 +From: Faidon Liambotis <paravoid@debian.org> +Date: Wed, 11 Sep 2024 13:05:46 +0300 +Subject: [PATCH 1/2] tests: fix query ID-related Net::DNS 1.46 breakage + +Net::DNS 1.46, commit r1980 stopped generating random query IDs when +->header->id() is called, instead generating them and storing them +internally when the query is encoded. As such, calling ->header->id() +may now return undef. + +Workaround this issue by calling ->encode right before retrieving the +(potentially random) query ID. + +Identified by Natanael Copa. +--- + t/_GDT.pm | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/t/_GDT.pm b/t/_GDT.pm +index ca94c039..ddde67e9 100644 +--- a/t/_GDT.pm ++++ b/t/_GDT.pm +@@ -1056,6 +1056,7 @@ sub query_server { + ); + send($sock, $qpacket_raw, 0); + if($expected) { ++ $query->encode; # generate a random ID, required with Net::DNS >= 1.46 + $expected->header->id($query->header->id); + my $res_raw; + recv($sock, $res_raw, 4096, 0); +@@ -1075,6 +1076,7 @@ sub query_server { + } + + if($expected) { ++ $query->encode; # generate a random ID, required with Net::DNS >= 1.46 + $expected->header->id($query->header->id); + $size = _GDT->compare_packets($res->send($query), $expected, $limit_v4, $limit_v6, $wrr_v4, $wrr_v6); + } + +From d10b7960f4f46ab48d9719aeea4019e6a24e18e7 Mon Sep 17 00:00:00 2001 +From: Faidon Liambotis <paravoid@debian.org> +Date: Wed, 11 Sep 2024 13:13:39 +0300 +Subject: [PATCH 2/2] tests: fix UDP packet size-related Net::DNS 1.46 breakage + +Net::DNS 1.46, commit r1982 stopped setting the EDNS UDP packet size +based on the resolver opts udppacketsize attribute. Do so manually. + +Use ->size() rather than ->udpsize() to retain < 1.37 compatibility with +the trade-off of spurious deprecated warnings emitted with >= 1.37. +--- + t/_GDT.pm | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/t/_GDT.pm b/t/_GDT.pm +index ddde67e9..f9c2f2f6 100644 +--- a/t/_GDT.pm ++++ b/t/_GDT.pm +@@ -1075,6 +1075,9 @@ sub query_server { + $res->$k($ro->{$k}) + } + ++ # Net::DNS <= 1.45 (r1982) did this internally ++ $query->edns->size($ro->{udppacketsize}) if defined $ro->{udppacketsize}; ++ + if($expected) { + $query->encode; # generate a random ID, required with Net::DNS >= 1.46 + $expected->header->id($query->header->id);