biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / dns / nsd / default.nix
blob1f82bde0384c209427fba9b908b0792946946ce6
1 { lib, stdenv, fetchurl, libevent, openssl, nixosTests
2 , bind8Stats       ? false
3 , checking         ? false
4 , ipv6             ? true
5 , mmap             ? false
6 , minimalResponses ? true
7 , nsec3            ? true
8 , ratelimit        ? false
9 , recvmmsg         ? false
10 , rootServer       ? false
11 , rrtypes          ? false
12 , zoneStats        ? false
14 , configFile ? "/etc/nsd/nsd.conf"
17 stdenv.mkDerivation rec {
18   pname = "nsd";
19   version = "4.8.0";
21   src = fetchurl {
22     url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
23     sha256 = "sha256-gg2k44RyGRX0vK9/K+2YUZ2lY8bkwTDHQsckdg7AKgo=";
24   };
26   prePatch = ''
27     substituteInPlace nsd-control-setup.sh.in --replace openssl ${openssl}/bin/openssl
28   '';
30   buildInputs = [ libevent openssl ];
32   enableParallelBuilding = true;
34   configureFlags =
35     let edf = c: o: if c then ["--enable-${o}"] else ["--disable-${o}"];
36      in edf bind8Stats       "bind8-stats"
37      ++ edf checking         "checking"
38      ++ edf ipv6             "ipv6"
39      ++ edf mmap             "mmap"
40      ++ edf minimalResponses "minimal-responses"
41      ++ edf nsec3            "nsec3"
42      ++ edf ratelimit        "ratelimit"
43      ++ edf recvmmsg         "recvmmsg"
44      ++ edf rootServer       "root-server"
45      ++ edf rrtypes          "draft-rrtypes"
46      ++ edf zoneStats        "zone-stats"
47      ++ [ "--with-ssl=${openssl.dev}"
48           "--with-libevent=${libevent.dev}"
49           "--with-nsd_conf_file=${configFile}"
50           "--with-configdir=etc/nsd"
51         ];
53   patchPhase = ''
54     sed 's@$(INSTALL_DATA) nsd.conf.sample $(DESTDIR)$(nsdconfigfile).sample@@g' -i Makefile.in
55   '';
57   passthru.tests = {
58     inherit (nixosTests) nsd;
59   };
61   meta = with lib; {
62     homepage = "http://www.nlnetlabs.nl";
63     description = "Authoritative only, high performance, simple and open source name server";
64     license = licenses.bsd3;
65     platforms = platforms.unix;
66     maintainers = [ maintainers.hrdinka ];
67   };