nixpkgs/pkgs/servers/dns/nsd/default.nix

67 lines
1.9 KiB
Nix
Raw Normal View History

2020-06-26 06:53:58 +00:00
{ stdenv, fetchurl, libevent, openssl, nixosTests
, bind8Stats ? false
, checking ? false
, ipv6 ? true
, mmap ? false
, minimalResponses ? true
, nsec3 ? true
, ratelimit ? false
, recvmmsg ? false
, rootServer ? false
2015-03-19 11:10:55 +00:00
, rrtypes ? false
2015-03-18 20:01:35 +00:00
, zoneStats ? false
, configFile ? "/etc/nsd/nsd.conf"
2014-06-12 09:14:44 +00:00
}:
stdenv.mkDerivation rec {
2019-08-22 19:35:28 +00:00
pname = "nsd";
2020-11-03 11:55:51 +00:00
version = "4.3.3";
2014-06-12 09:14:44 +00:00
src = fetchurl {
2019-08-22 19:35:28 +00:00
url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
2020-11-03 11:55:51 +00:00
sha256 = "0lgdiqnkfvy245h6kkiqic586qjwmg51lsfs86vlc0kwjwddiijz";
2014-06-12 09:14:44 +00:00
};
prePatch = ''
substituteInPlace nsd-control-setup.sh.in --replace openssl ${openssl}/bin/openssl
'';
2014-06-12 09:14:44 +00:00
buildInputs = [ libevent openssl ];
configureFlags =
let edf = c: o: if c then ["--enable-${o}"] else ["--disable-${o}"];
in edf bind8Stats "bind8-stats"
++ edf checking "checking"
++ edf ipv6 "ipv6"
++ edf mmap "mmap"
++ edf minimalResponses "minimal-responses"
++ edf nsec3 "nsec3"
++ edf ratelimit "ratelimit"
++ edf recvmmsg "recvmmsg"
++ edf rootServer "root-server"
2015-03-19 11:10:55 +00:00
++ edf rrtypes "draft-rrtypes"
2015-03-18 20:01:35 +00:00
++ edf zoneStats "zone-stats"
++ [ "--with-ssl=${openssl.dev}"
"--with-libevent=${libevent.dev}"
"--with-nsd_conf_file=${configFile}"
"--with-configdir=etc/nsd"
];
patchPhase = ''
sed 's@$(INSTALL_DATA) nsd.conf.sample $(DESTDIR)$(nsdconfigfile).sample@@g' -i Makefile.in
'';
2014-06-12 09:14:44 +00:00
2020-06-26 06:53:58 +00:00
passthru.tests = {
inherit (nixosTests) nsd;
};
meta = with stdenv.lib; {
2020-03-19 10:43:10 +00:00
homepage = "http://www.nlnetlabs.nl";
description = "Authoritative only, high performance, simple and open source name server";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = [ maintainers.hrdinka ];
2014-06-12 09:14:44 +00:00
};
}