summaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/dn/dns-root-data/package.nix
blob: 87517dc95c4e33edd7e2cdd23fc49b320306b607 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
  stdenv,
  lib,
  fetchurl,
}:

let
  rootHints = fetchurl {
    # Original source https://www.internic.net/domain/named.root
    # occasionally suffers from pointless hash changes,
    # and having stable sources for older versions has advantages, too.
    urls = map (prefix: prefix + "d9c96ae96f066a85d7/etc/root.hints") [
      "https://gitlab.nic.cz/knot/knot-resolver/raw/"
      "https://raw.githubusercontent.com/CZ-NIC/knot-resolver/"
    ];
    hash = "sha256-4lG/uPnNHBNIZ/XIeDM1w3iukrpeW0JIjTnGSwkJ8U4=";
  };
in
stdenv.mkDerivation {
  pname = "dns-root-data";
  version = "2025-04-14";

  buildCommand = ''
    mkdir $out
    cp ${rootHints} $out/root.hints
    cp ${./root.key} $out/root.key
    cp ${./root.ds} $out/root.ds
  '';

  strictDeps = true;
  __structuredAttrs = true;

  meta = {
    homepage = "https://www.iana.org/domains/root/files";
    description = "DNS root data including root hints and DNSSEC root trust anchor + key";
    maintainers = with lib.maintainers; [
      fpletz
      vcunat
    ];
    license = lib.licenses.gpl3Plus;
  };
}