about summary refs log tree commit diff
path: root/pkgs/servers/dns
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/dns')
-rw-r--r--pkgs/servers/dns/bind/default.nix19
-rw-r--r--pkgs/servers/dns/coredns/default.nix20
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix2
-rw-r--r--pkgs/servers/dns/doh-proxy-rust/default.nix8
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix18
-rw-r--r--pkgs/servers/dns/knot-dns/runtime-deps.patch7
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix11
-rw-r--r--pkgs/servers/dns/ncdns/default.nix132
-rw-r--r--pkgs/servers/dns/ncdns/ncdns-go.mod59
-rw-r--r--pkgs/servers/dns/ncdns/ncdns-go.sum195
-rw-r--r--pkgs/servers/dns/ncdns/x509-go.mod5
-rw-r--r--pkgs/servers/dns/ncdns/x509-go.sum2
-rw-r--r--pkgs/servers/dns/nsd/default.nix4
-rw-r--r--pkgs/servers/dns/pdns/default.nix8
-rw-r--r--pkgs/servers/dns/trust-dns/default.nix34
15 files changed, 385 insertions, 139 deletions
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 8beaffa75e384..545474200bf84 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchurl
+, darwin
 , perl
 , pkg-config
 , libcap
@@ -22,13 +23,13 @@
 , gitUpdater
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "bind";
-  version = "9.18.26";
+  version = "9.18.28";
 
   src = fetchurl {
-    url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-df/uUnMelgTISbZY3ynpJ/HE8B1aceo+vL62NwLLZlE=";
+    url = "https://downloads.isc.org/isc/bind9/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
+    hash = "sha256-58zpoWX3thnu/Egy8KjcFrAF0p44kK7WAIxQbqKGpec=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
@@ -39,9 +40,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl pkg-config ];
   buildInputs = [ libidn2 libtool libxml2 openssl libuv nghttp2 jemalloc ]
-    ++ lib.optional stdenv.isLinux libcap
+    ++ lib.optional stdenv.hostPlatform.isLinux libcap
     ++ lib.optional enableGSSAPI libkrb5
-    ++ lib.optional enablePython (python3.withPackages (ps: with ps; [ ply ]));
+    ++ lib.optional enablePython (python3.withPackages (ps: with ps; [ ply ]))
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.CoreServices ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
@@ -102,6 +104,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     tests = {
+      withCheck = finalAttrs.finalPackage.overrideAttrs { doCheck = true; };
       inherit (nixosTests) bind;
       prometheus-exporter = nixosTests.prometheus-exporters.bind;
       kubernetes-dns-single-node = nixosTests.kubernetes.dns-single-node;
@@ -121,10 +124,10 @@ stdenv.mkDerivation rec {
     homepage = "https://www.isc.org/bind/";
     description = "Domain name server";
     license = licenses.mpl20;
-    changelog = "https://downloads.isc.org/isc/bind9/cur/${lib.versions.majorMinor version}/CHANGES";
+    changelog = "https://downloads.isc.org/isc/bind9/cur/${lib.versions.majorMinor finalAttrs.version}/CHANGES";
     maintainers = with maintainers; [ globin ];
     platforms = platforms.unix;
 
     outputsToInstall = [ "out" "dnsutils" "host" ];
   };
-}
+})
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index 994b584232ae2..3cda1b6cf1dc2 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -3,8 +3,9 @@
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
+, nixosTests
 , externalPlugins ? []
-, vendorHash ? "sha256-tp22jj6DNnYFQhtAFW2uLo10ty//dyNqIDH2egDgbOw="
+, vendorHash ? "sha256-mp+0/DQTNsgAZTnLqcQq1HVLAfKr5vUGYSZlIvM7KpE="
 }:
 
 let
@@ -14,13 +15,13 @@ let
     builtins.map ({name, repo, version}: "${repo}@${version}") attrs;
 in buildGoModule rec {
   pname = "coredns";
-  version = "1.11.1";
+  version = "1.11.3";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "sha256-XZoRN907PXNKV2iMn51H/lt8yPxhPupNfJ49Pymdm9Y=";
+    sha256 = "sha256-8LZMS1rAqEZ8k1IWSRkQ2O650oqHLP0P31T8oUeE4fw=";
   };
 
   inherit vendorHash;
@@ -61,18 +62,27 @@ in buildGoModule rec {
     # it's a lint rather than a test of functionality, so it's safe to disable.
     substituteInPlace test/presubmit_test.go \
       --replace "TestImportOrdering" "SkipImportOrdering"
-  '' + lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
     # loopback interface is lo0 on macos
     sed -E -i 's/\blo\b/lo0/' plugin/bind/setup_test.go
+
+    # test is apparently outdated but only exhibits this on darwin
+    substituteInPlace test/corefile_test.go \
+      --replace "TestCorefile1" "SkipCorefile1"
   '';
 
   postInstall = ''
     installManPage man/*
   '';
 
+  passthru.tests = {
+    kubernetes-single-node = nixosTests.kubernetes.dns-single-node;
+    kubernetes-multi-node = nixosTests.kubernetes.dns-multi-node;
+  };
+
   meta = with lib; {
     homepage = "https://coredns.io";
-    description = "A DNS server that runs middleware";
+    description = "DNS server that runs middleware";
     mainProgram = "coredns";
     license = licenses.asl20;
     maintainers = with maintainers; [ rushmorem rtreffer deltaevo ];
diff --git a/pkgs/servers/dns/dnsdist/default.nix b/pkgs/servers/dns/dnsdist/default.nix
index 98a1bf7cc8c8c..e3afc6c8956d0 100644
--- a/pkgs/servers/dns/dnsdist/default.nix
+++ b/pkgs/servers/dns/dnsdist/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "DNS Loadbalancer";
     mainProgram = "dnsdist";
     homepage = "https://dnsdist.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/servers/dns/doh-proxy-rust/default.nix b/pkgs/servers/dns/doh-proxy-rust/default.nix
index d59b048a181e1..5de2732b186a4 100644
--- a/pkgs/servers/dns/doh-proxy-rust/default.nix
+++ b/pkgs/servers/dns/doh-proxy-rust/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "doh-proxy-rust";
-  version = "0.9.9";
+  version = "0.9.11";
 
   src = fetchCrate {
     inherit version;
     crateName = "doh-proxy";
-    sha256 = "sha256-KvEayC+aY8aC5fSVIV9urNwLJcIfDMaAU+XdlGSmYRI=";
+    hash = "sha256-h2LwxqyyBPAXRr6XOmcLEmbet063kkM1ledULp3M2ek=";
   };
 
-  cargoHash = "sha256-eoC90ht9cbMLkPN3S4jxZipbFoZDTU7pIr6GRagGlJE=";
+  cargoHash = "sha256-eXPAn2ziSdciZa6YrOIa7y7Lms681X+yVAD9HrvsZHg=";
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security libiconv ];
 
   passthru.tests = { inherit (nixosTests) doh-proxy-rust; };
 
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index d939f4e375edf..5c3c5df262105 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -1,17 +1,19 @@
 { lib, stdenv, fetchurl, pkg-config, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring
 , systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb, libbpf, nghttp2, libmnl
 , ngtcp2-gnutls, xdp-tools
+, fstrm, protobufc
+, sphinx
 , autoreconfHook
 , nixosTests, knot-resolver, knot-dns, runCommandLocal
 }:
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.3.5";
+  version = "3.4.0";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "0e0bf04319581280660e8e62ab04be64a7d632331e40fc9c87e76861305db3ad";
+    sha256 = "2730b11398944faa5151c51b0655cf26631090343c303597814f2a57df424736";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -20,6 +22,7 @@ stdenv.mkDerivation rec {
     "--with-configdir=/etc/knot"
     "--with-rundir=/run/knot"
     "--with-storage=/var/lib/knot"
+    "--with-module-dnstap" "--enable-dnstap"
   ];
 
   patches = [
@@ -29,7 +32,8 @@ stdenv.mkDerivation rec {
     ./runtime-deps.patch
   ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  # FIXME: sphinx is needed for now to get man-pages
+  nativeBuildInputs = [ pkg-config autoreconfHook sphinx ];
   buildInputs = [
     gnutls liburcu libidn2 libunistring
     nettle libedit
@@ -38,11 +42,11 @@ stdenv.mkDerivation rec {
     ngtcp2-gnutls  # DoQ support in kdig (and elsewhere but not much use there yet)
     libmaxminddb # optional for geoip module (it's tiny)
     # without sphinx &al. for developer documentation
-    # TODO: add dnstap support?
-  ] ++ lib.optionals stdenv.isLinux [
+    fstrm protobufc # dnstap support
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
     libcap_ng systemd
     xdp-tools libbpf libmnl # XDP support (it's Linux kernel API)
-  ] ++ lib.optional stdenv.isDarwin zlib; # perhaps due to gnutls
+  ] ++ lib.optional stdenv.hostPlatform.isDarwin zlib; # perhaps due to gnutls
 
   enableParallelBuilding = true;
 
@@ -58,7 +62,7 @@ stdenv.mkDerivation rec {
 
   passthru.tests = {
     inherit knot-resolver;
-  } // lib.optionalAttrs stdenv.isLinux {
+  } // lib.optionalAttrs stdenv.hostPlatform.isLinux {
     inherit (nixosTests) knot kea;
     prometheus-exporter = nixosTests.prometheus-exporters.knot;
     # Some dependencies are very version-sensitive, so the might get dropped
diff --git a/pkgs/servers/dns/knot-dns/runtime-deps.patch b/pkgs/servers/dns/knot-dns/runtime-deps.patch
index 19fc9cd07b18b..89dba415b3b92 100644
--- a/pkgs/servers/dns/knot-dns/runtime-deps.patch
+++ b/pkgs/servers/dns/knot-dns/runtime-deps.patch
@@ -5,10 +5,9 @@ but that contains also references like include paths.
 Filter these at least in a crude way (whole lines).
 --- a/configure.ac
 +++ b/configure.ac
-@@ -766,5 +766,5 @@ result_msg_base="  Knot DNS $VERSION
- 
--result_msg_esc=$(echo -n "$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
-+result_msg_esc=$(echo -n "$result_msg_base" | grep -Fv "$NIX_STORE" | sed '$!s/$/\\n/' | tr -d '\n')
+@@ -788,5 +788,5 @@ result_msg_base="
+-result_msg_esc=$(echo -n "    Configure:$filtered_config_params\n$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
++result_msg_esc=$(echo -n "    Configure:$filtered_config_params\n$result_msg_base" | grep -Fv "$NIX_STORE" | sed '$!s/$/\\n/' | tr -d '\n')
  
  AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY],["$result_msg_esc"],[Configure summary])
  
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 5af0a79c4dfde..315a1e3aaf0d1 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -18,11 +18,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.7.2";
+  version = "5.7.4";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    hash = "sha256-X2oic5D81MLQqAKKZStVqdhj7HvgEpj+A43x0nP7mg8=";
+    hash = "sha256-a22m7PBoKAQa+tRN+iJ3gfCuNK0YOmZwCFCTVdGL2cg=";
   };
 
   outputs = [ "out" "dev" ];
@@ -64,7 +64,7 @@ unwrapped = stdenv.mkDerivation rec {
   # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements
   buildInputs = [ knot-dns lua.lua libuv gnutls lmdb ]
     ## the rest are optional dependencies
-    ++ optionals stdenv.isLinux [ /*lib*/systemd libcap_ng ]
+    ++ optionals stdenv.hostPlatform.isLinux [ /*lib*/systemd libcap_ng ]
     ++ [ jemalloc nghttp2 ]
     ++ [ fstrm protobufc ] # dnstap support
     ;
@@ -78,7 +78,7 @@ unwrapped = stdenv.mkDerivation rec {
   ]
   ++ optional doInstallCheck "-Dunit_tests=enabled"
   ++ optional doInstallCheck "-Dconfig_tests=enabled"
-  ++ optional stdenv.isLinux "-Dsystemd_files=enabled" # used by NixOS service
+  ++ optional stdenv.hostPlatform.isLinux "-Dsystemd_files=enabled" # used by NixOS service
     #"-Dextra_tests=enabled" # not suitable as in-distro tests; many deps, too.
   ;
 
@@ -112,7 +112,8 @@ wrapped-full = runCommand unwrapped.name
       # For http module, prefill module, trust anchor bootstrap.
       # It brings lots of deps; some are useful elsewhere (e.g. cqueues).
       http
-      # psl isn't in nixpkgs yet, but policy.slice_randomize_psl() seems not important.
+      # used by policy.slice_randomize_psl()
+      psl
     ];
     preferLocalBuild = true;
     allowSubstitutes = false;
diff --git a/pkgs/servers/dns/ncdns/default.nix b/pkgs/servers/dns/ncdns/default.nix
index 37d4b596d244d..1f896ec21a5c0 100644
--- a/pkgs/servers/dns/ncdns/default.nix
+++ b/pkgs/servers/dns/ncdns/default.nix
@@ -1,29 +1,55 @@
 { lib
+, stdenv
+, fetchpatch
 , buildGoModule
 , fetchFromGitHub
 , nixosTests
 , libcap
+, go
 }:
 
 let
 
-  # ncdns source
-  ncdns = fetchFromGitHub {
-    owner = "namecoin";
-    repo = "ncdns";
-    rev = "5adda8d4726d389597df432eb2e17eac1677cea2";
-    sha256 = "sha256-Q/RrUTY4WfrByvQv1eCX29DQNf2vSIR29msmhgS73xk=";
-  };
+  # Note: this module is actually the source code of crypto/x509
+  # taken from the Go stdlib and patcheed. So, it can't simply
+  # be pinned and added to the vendor dir as everything else.
+  x509 = stdenv.mkDerivation rec {
+    pname = "x509-compressed";
+    version = "0.0.3";
+
+    src = fetchFromGitHub {
+      owner = "namecoin";
+      repo = "x509-compressed";
+      rev = "v${version}";
+      hash = "sha256-BmVtClZ3TsUbQrhwREXa42pUOlkBA4a2HVBzl1sdBIo=";
+    };
+
+    patches = [
+      # https://github.com/namecoin/x509-compressed/pull/4
+      (fetchpatch {
+        url = "https://github.com/namecoin/x509-compressed/commit/b4fb598b.patch";
+        hash = "sha256-S4Y4B4FH15IyaTJtSb03C8QffnsMXSYc6q1Gka/PVV4=";
+      })
+    ];
+
+    nativeBuildInputs = [ go ];
+
+    buildPhase = ''
+      # Put in our own lockfiles
+      cp ${./x509-go.mod} go.mod
+      cp ${./x509-go.sum} go.sum
+
+      # Generate Go code
+      env HOME=/tmp go generate ./...
+
+      # Clean up more references to internal modules
+      # (see https://github.com/namecoin/x509-compressed/pull/4)
+      sed -e '/import "internal/d' \
+          -e 's/goos.IsAndroid/0/g' -i x509/*.go
+    '';
 
-  # script to patch the crypto/x509 package
-  x509 = fetchFromGitHub {
-    owner = "namecoin";
-    repo = "x509-compressed";
-    rev = "2e30a62a69dac54a977410f283308df232a5d244";
-    sha256 = "sha256-/Bd1gYjguj8AiKHyiaIKT+Y3R7kq5gLZlJhY9g/xFXk=";
-    # ncdns must be put in a subdirectory for this to work.
-    postFetch = ''
-      cp -r --no-preserve=mode "${ncdns}" "$out/ncdns"
+    installPhase = ''
+      cp -r . "$out"
     '';
   };
 
@@ -31,67 +57,43 @@ in
 
 buildGoModule {
   pname = "ncdns";
-  version = "unstable-2022-10-07";
+  version = "unstable-2024-05-18";
 
-  src = x509;
-
-  vendorHash = "sha256-ENtTnDsz5WhRz1kiqnWQ5vyEpZtgi7ZeYvksffgW78k=";
-
-  # Override the goModules fetcher derivation to apply
-  # upstream's patch of the crypto/x509 library.
-  modBuildPhase = ''
-    go mod init github.com/namecoin/x509-compressed
-    go generate ./...
-    go mod tidy
+  src = fetchFromGitHub {
+    owner = "namecoin";
+    repo = "ncdns";
+    rev = "8a9f7c3037384f12fae400268d0a7f79d26b5532";
+    hash = "sha256-lFpjfpOAgvYoV3ci2oSdy8ZOlQ2rWlApiFWcvOMdkyk=";
+  };
 
-    cd ncdns
-    go mod init github.com/namecoin/ncdns
-    go mod edit \
-      -replace github.com/coreos/go-systemd=github.com/coreos/go-systemd/v22@latest \
-      -replace github.com/namecoin/x509-compressed=$NIX_BUILD_TOP/source
-    go mod tidy
+  # Note: to update ncdns add the following lines
+  #
+  #   chmod -R +w .
+  #   go mod tidy
+  #   cat go.mod go.sum
+  #   exit 1
+  #
+  # to the `preBuild` here and update the lock files
+  preBuild = ''
+    # Sideload the generated x509 module
+    ln -s '${x509}' x509
   '';
 
-  # Copy over the lockfiles as well, because the source
-  # doesn't contain it. The fixed-output derivation is
-  # probably not reproducible anyway.
-  modInstallPhase = ''
-    mv -t vendor go.mod go.sum
-    cp -r --reflink=auto vendor "$out"
-  '';
+  vendorHash = "sha256-FoCK2qkhbc+6D4V77pNLiC9d68nkeYJxb7uiNYEP2Xw=";
 
   buildInputs = [ libcap ];
 
-  # The fetcher derivation must run with a different
-  # $sourceRoot, but buildGoModule doesn't allow that,
-  # so we use this ugly hack.
-  unpackPhase = ''
-    runHook preUnpack
+  patches = [./fix-tpl-path.patch ];
 
-    unpackFile "$src"
-    sourceRoot=$PWD/source/ncdns
-    chmod -R u+w -- "$sourceRoot"
-    cd $sourceRoot
-
-    runHook postUnpack
-  '';
-
-  # Same as above: can't use `patches` because that would
-  # be also applied to the fetcher derivation, thus failing.
-  patchPhase = ''
-    runHook prePatch
-    patch -p1 < ${./fix-tpl-path.patch}
-    runHook postPatch
-  '';
-
-  preBuild = ''
-    chmod -R u+w vendor
-    mv -t . vendor/go.{mod,sum}
+  # Put in our own lockfiles
+  postPatch = ''
+    cp ${./ncdns-go.mod} go.mod
+    cp ${./ncdns-go.sum} go.sum
   '';
 
   preCheck = ''
     # needed to run the ncdns test suite
-    ln -s $PWD/vendor ../../go/src
+    ln -s $PWD/vendor ../go/src
   '';
 
   postInstall = ''
diff --git a/pkgs/servers/dns/ncdns/ncdns-go.mod b/pkgs/servers/dns/ncdns/ncdns-go.mod
new file mode 100644
index 0000000000000..f76a475ff7ec6
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/ncdns-go.mod
@@ -0,0 +1,59 @@
+module github.com/namecoin/ncdns
+
+go 1.22.5
+
+replace github.com/namecoin/x509-compressed => ./x509
+replace gopkg.in/alecthomas/kingpin.v2 => github.com/alecthomas/kingpin/v2 v2.3.2
+
+require (
+  github.com/btcsuite/btcd v0.24.2
+  github.com/fxamacker/cbor v1.5.1
+  github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
+  github.com/hlandau/buildinfo v0.0.0-20161112115716-337a29b54997
+  github.com/hlandau/degoutils v0.0.0-20161011040956-8fa2440b6344
+  github.com/hlandau/dexlogconfig v0.0.0-20220319061854-86a3fc314fe7
+  github.com/hlandau/nctestsuite v0.0.0-20151129185958-a9b78806c85c
+  github.com/hlandau/xlog v1.0.0
+  github.com/kr/pretty v0.3.1
+  github.com/miekg/dns v1.1.61
+  github.com/namecoin/certinject v0.1.1
+  github.com/namecoin/ncbtcjson v0.1.0
+  github.com/namecoin/ncrpcclient v0.1.0
+  github.com/namecoin/splicesign v0.0.1
+  github.com/namecoin/tlsrestrictnss v0.0.5
+  github.com/namecoin/x509-compressed v0.0.0-00010101000000-000000000000
+  gopkg.in/hlandau/easyconfig.v1 v1.0.18
+  gopkg.in/hlandau/madns.v2 v2.0.2
+  gopkg.in/hlandau/service.v2 v2.0.17
+)
+require (
+  github.com/BurntSushi/toml v1.4.0 // indirect
+  github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
+  github.com/btcsuite/btcd/btcec/v2 v2.1.3 // indirect
+  github.com/btcsuite/btcd/btcutil v1.1.5 // indirect
+  github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect
+  github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect
+  github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd // indirect
+  github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 // indirect
+  github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf // indirect
+  github.com/decred/dcrd/crypto/blake256 v1.0.0 // indirect
+  github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
+  github.com/erikdubbelboer/gspt v0.0.0-20210805194459-ce36a5128377 // indirect
+  github.com/kr/text v0.2.0 // indirect
+  github.com/mattn/go-isatty v0.0.20 // indirect
+  github.com/namecoin/crosssignnameconstraint v0.0.3 // indirect
+  github.com/ogier/pflag v0.0.1 // indirect
+  github.com/rogpeppe/go-internal v1.9.0 // indirect
+  github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 // indirect
+  github.com/x448/float16 v0.8.4 // indirect
+  github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
+  golang.org/x/crypto v0.25.0 // indirect
+  golang.org/x/mod v0.18.0 // indirect
+  golang.org/x/net v0.26.0 // indirect
+  golang.org/x/sync v0.7.0 // indirect
+  golang.org/x/sys v0.22.0 // indirect
+  golang.org/x/tools v0.22.0 // indirect
+  gopkg.in/alecthomas/kingpin.v2 v2.0.0-00010101000000-000000000000 // indirect
+  gopkg.in/hlandau/configurable.v1 v1.0.1 // indirect
+  gopkg.in/hlandau/svcutils.v1 v1.0.11 // indirect
+)
diff --git a/pkgs/servers/dns/ncdns/ncdns-go.sum b/pkgs/servers/dns/ncdns/ncdns-go.sum
new file mode 100644
index 0000000000000..2a619a75a193a
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/ncdns-go.sum
@@ -0,0 +1,195 @@
+github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
+github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
+github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
+github.com/alecthomas/kingpin/v2 v2.3.2 h1:H0aULhgmSzN8xQ3nX1uxtdlTHYoPLu5AhHxWrKI6ocU=
+github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE=
+github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc=
+github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
+github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
+github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M=
+github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A=
+github.com/btcsuite/btcd v0.24.2 h1:aLmxPguqxza+4ag8R1I2nnJjSu2iFn/kqtHTIImswcY=
+github.com/btcsuite/btcd v0.24.2/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg=
+github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA=
+github.com/btcsuite/btcd/btcec/v2 v2.1.3 h1:xM/n3yIhHAhHy04z4i43C8p4ehixJZMsnrVJkgl+MTE=
+github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE=
+github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A=
+github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE=
+github.com/btcsuite/btcd/btcutil v1.1.5 h1:+wER79R5670vs/ZusMTF1yTcRYE5GUsFbdjdisflzM8=
+github.com/btcsuite/btcd/btcutil v1.1.5/go.mod h1:PSZZ4UitpLBWzxGd5VGOrLnmOjtPP/a6HaFo12zMs00=
+github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
+github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
+github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 h1:59Kx4K6lzOW5w6nFlA0v5+lk/6sjybR934QNHSJZPTQ=
+github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
+github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo=
+github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
+github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
+github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw=
+github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
+github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
+github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=
+github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
+github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
+github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc=
+github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
+github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
+github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pqaw19uhpSCzhj44qo35pNgKFGqzDKkU=
+github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
+github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
+github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
+github.com/erikdubbelboer/gspt v0.0.0-20210805194459-ce36a5128377 h1:gT+RM6gdTIAzMT7HUvmT5mL8SyG8Wx7iS3+L0V34Km4=
+github.com/erikdubbelboer/gspt v0.0.0-20210805194459-ce36a5128377/go.mod h1:v6o7m/E9bfvm79dE1iFiF+3T7zLBnrjYjkWMa1J+Hv0=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/fxamacker/cbor v1.5.1 h1:XjQWBgdmQyqimslUh5r4tUGmoqzHmBFQOImkWGi2awg=
+github.com/fxamacker/cbor v1.5.1/go.mod h1:3aPGItF174ni7dDzd6JZ206H8cmr4GDNBGpPa971zsU=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
+github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/hlandau/buildinfo v0.0.0-20161112115716-337a29b54997 h1:pSU4Sj7AD5qh+4V5FRlpiw3DpuNQ459c3j8h2F38q74=
+github.com/hlandau/buildinfo v0.0.0-20161112115716-337a29b54997/go.mod h1:Oara+TmqGrvsLVEj5YkFe+PP9cSkp0kFD2PFQ5gjHok=
+github.com/hlandau/degoutils v0.0.0-20161011040956-8fa2440b6344 h1:/SOExPIKkg89UgubWvG7b39ZXRqQsnqO4XAnfgLSlWE=
+github.com/hlandau/degoutils v0.0.0-20161011040956-8fa2440b6344/go.mod h1:IGydFzi3XPuHxRu0kWym0F6T5gp409oMK7bKZHbLRzU=
+github.com/hlandau/dexlogconfig v0.0.0-20220319061854-86a3fc314fe7 h1:AWQ1egvizT2zNK/duJwZBbXyx4pG3DmY2D/eg45IWfw=
+github.com/hlandau/dexlogconfig v0.0.0-20220319061854-86a3fc314fe7/go.mod h1:JpXGCMr2CULPTjnwD8PL9A7YipEitrd+xSHTIK8orHU=
+github.com/hlandau/nctestsuite v0.0.0-20151129185958-a9b78806c85c h1:R57p3FRXT336kkWtJ6uQjQvcvAn6w+js8m3ThoFfT60=
+github.com/hlandau/nctestsuite v0.0.0-20151129185958-a9b78806c85c/go.mod h1:XcylZc9Y4rY8ZeQTdH/tWRy02VhRmEjQLnjD6nwcmQw=
+github.com/hlandau/xlog v1.0.0 h1:tcFGp86iK+v6NwbyuG9wyLB77SBkvAJUjOkRJo3H8C0=
+github.com/hlandau/xlog v1.0.0/go.mod h1:aZl5hrokGCtnAFcvft2givQmKZYVfHRvQJbjoqI2lm8=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
+github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
+github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
+github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs=
+github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ=
+github.com/namecoin/certinject v0.1.1 h1:II3VEr2IIGCD8qOthGuOojrN51sPESH7+++lcoBgub8=
+github.com/namecoin/certinject v0.1.1/go.mod h1:5HuE24XZ/vbUMpYNbYQTpmVe6iazw131Pl8hsHx/od0=
+github.com/namecoin/crosssignnameconstraint v0.0.3 h1:6TtG9CG7KlV7NboMlV+vB82sGSb5gquuxnnJcdUMxfQ=
+github.com/namecoin/crosssignnameconstraint v0.0.3/go.mod h1:hL9glKGM6nmCJosbPRcVsDSwjlSKe5vJ96pnnaaZyfA=
+github.com/namecoin/ncbtcjson v0.1.0 h1:N0A5tFpS82gQNDr8FoQwWPPuNeY0iZIJFYTb7udyEB8=
+github.com/namecoin/ncbtcjson v0.1.0/go.mod h1:qSA7Td0v4e3gXoWvszuJjzqJSie9XhH2lwLPMLmhkfY=
+github.com/namecoin/ncrpcclient v0.1.0 h1:dhzSGvaire6hadJsxFX9268Gce6E18wtVjAjG4SOHpo=
+github.com/namecoin/ncrpcclient v0.1.0/go.mod h1:bhsIDzYxt5ACJStqPBcAu3/4Cn5GNsgJxSoXHovlaP4=
+github.com/namecoin/splicesign v0.0.1 h1:hhPteXmtu8zDmK2vPW5DPc2wLZGnNKkQzi84iP5PdqM=
+github.com/namecoin/splicesign v0.0.1/go.mod h1:2KjXST9TPllte95x4OUg454qCHTLAOC5GL0UsyTtwF8=
+github.com/namecoin/tlsrestrictnss v0.0.5 h1:fiOMEa+d3dm/68bd8Gc1fpKtBIrlHT0yYZVNuqEhdsQ=
+github.com/namecoin/tlsrestrictnss v0.0.5/go.mod h1:mtAZQgYM8yzvcKcWc+BLaANF4lpPbOESEY+CYO39QD4=
+github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
+github.com/ogier/pflag v0.0.1 h1:RW6JSWSu/RkSatfcLtogGfFgpim5p7ARQ10ECk5O750=
+github.com/ogier/pflag v0.0.1/go.mod h1:zkFki7tvTa0tafRvTBIZTvzYyAu6kQhPZFnshFFPE+g=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
+github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 h1:v9ezJDHA1XGxViAUSIoO/Id7Fl63u6d0YmsAm+/p2hs=
+github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02/go.mod h1:RF16/A3L0xSa0oSERcnhd8Pu3IXSDZSK2gmGIMsttFE=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
+github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc=
+github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
+golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
+golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
+golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
+golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
+golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
+golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
+golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
+golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/hlandau/configurable.v1 v1.0.1 h1:rH8g/WXZu2b/eyLagvsqUf9q5mO66hfGHW5L4rm8ktk=
+gopkg.in/hlandau/configurable.v1 v1.0.1/go.mod h1:rlyQpcii/QkMGudMSMoe3jjHAgqLZuqg0hQkiUcNfF8=
+gopkg.in/hlandau/easyconfig.v1 v1.0.18 h1:8i8/X1+7bswm063Ypl1myeNy7BIXbI0sr0R0RsXEU+I=
+gopkg.in/hlandau/easyconfig.v1 v1.0.18/go.mod h1:fljDHM+/VAXpyEN/45q6RFtcOFnUaF1Wgr6p4LLICoU=
+gopkg.in/hlandau/madns.v2 v2.0.2 h1:Q0vUfMiGY/3ZEPKnsy8+WDiFpMGEBaLK76jtt642wEE=
+gopkg.in/hlandau/madns.v2 v2.0.2/go.mod h1:uUp3yNeVWJG5r32mtfoWwj+1Fzgh9UrNPRqsZhWReCE=
+gopkg.in/hlandau/service.v2 v2.0.17 h1:D2BkHHv8RBedlXZ6i88nN+OuvDUhNQSehZIPQaNjUVc=
+gopkg.in/hlandau/service.v2 v2.0.17/go.mod h1:3f+96gui2lGv8llWOAUPi9+oI+TOBIyvlVHa1DUwliA=
+gopkg.in/hlandau/svcutils.v1 v1.0.11 h1:F+BANbiBJ0YZIEW9f4Uy2+vaSwaEQO+uYgrlhBb10Ho=
+gopkg.in/hlandau/svcutils.v1 v1.0.11/go.mod h1:aAoYFMVAq2ck6z8av+FBxzX/qX1ehmUIc5PgGBf+P3I=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
+gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/pkgs/servers/dns/ncdns/x509-go.mod b/pkgs/servers/dns/ncdns/x509-go.mod
new file mode 100644
index 0000000000000..2be5075d06180
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/x509-go.mod
@@ -0,0 +1,5 @@
+module github.com/namecoin/x509-compressed
+
+go 1.22.4
+
+require golang.org/x/crypto v0.25.0
diff --git a/pkgs/servers/dns/ncdns/x509-go.sum b/pkgs/servers/dns/ncdns/x509-go.sum
new file mode 100644
index 0000000000000..f7f8a2b39a5dc
--- /dev/null
+++ b/pkgs/servers/dns/ncdns/x509-go.sum
@@ -0,0 +1,2 @@
+golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
+golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index eecef52e2b4e7..3ee78ad570324 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nsd";
-  version = "4.9.1";
+  version = "4.10.1";
 
   src = fetchurl {
     url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-psI6U+6BEfpx53t1ZdG49IbqaVdwgWWF+93xTkNn5t8=";
+    sha256 = "sha256-wBkPkj8AlZlfLmMx2s2SxuH01Xi4gNYWkGArQ6Ws/YQ=";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/dns/pdns/default.nix b/pkgs/servers/dns/pdns/default.nix
index d4c664802aa33..e7633761a5d7f 100644
--- a/pkgs/servers/dns/pdns/default.nix
+++ b/pkgs/servers/dns/pdns/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdns";
-  version = "4.9.0";
+  version = "4.9.1";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-/h1UM8iERu1w2TFgXG7Dd9qZg5xOFRuQtxqiEb1u6pI=";
+    hash = "sha256-MNlnG48IR3Tby6IPWlOjE00IIqsu3D75aNoDDmMN0Jo=";
   };
   # redact configure flags from version output to reduce closure size
   patches = [ ./version.patch ];
@@ -96,8 +96,8 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Authoritative DNS server";
     homepage = "https://www.powerdns.com";
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
-    license = licenses.gpl2;
+    broken = stdenv.hostPlatform.isDarwin;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ mic92 disassembler nickcao ];
   };
 })
diff --git a/pkgs/servers/dns/trust-dns/default.nix b/pkgs/servers/dns/trust-dns/default.nix
deleted file mode 100644
index fa8fcc88261af..0000000000000
--- a/pkgs/servers/dns/trust-dns/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib
-, fetchFromGitHub
-, openssl
-, pkg-config
-, rustPlatform
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "trust-dns";
-  version = "0.24.1";
-
-  src = fetchFromGitHub {
-    owner = "hickory-dns";
-    repo = "hickory-dns";
-    rev = "v${version}";
-    hash = "sha256-szq21RuRmkhAfHlzhGQYpwjiIRkavFCPETOt+6TxhP4=";
-  };
-  cargoHash = "sha256-zGn5vHwsHgpkgOr30QiyScqnfXjH55LQIVtxoUUox64=";
-
-  buildInputs = [ openssl ];
-  nativeBuildInputs = [ pkg-config ];
-
-  # tests expect internet connectivity to query real nameservers like 8.8.8.8
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A Rust based DNS client, server, and resolver";
-    homepage = "https://trust-dns.org/";
-    maintainers = with maintainers; [ colinsane ];
-    platforms = platforms.linux;
-    license = with licenses; [ asl20 mit ];
-    mainProgram = "hickory-dns";
-  };
-}