From 5d5fb4a2fb1fc782f603837a53a0a831e81ad637 Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Wed, 25 Jan 2017 15:20:18 +0100 Subject: knot-resolver: init at 1.2.0 Celebrating today's release! --- pkgs/servers/dns/knot-resolver/default.nix | 69 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 70 insertions(+) create mode 100644 pkgs/servers/dns/knot-resolver/default.nix diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix new file mode 100644 index 000000000000..e9668ed3e536 --- /dev/null +++ b/pkgs/servers/dns/knot-resolver/default.nix @@ -0,0 +1,69 @@ +{ stdenv, fetchurl, pkgconfig, utillinux, which, knot-dns, luajit, libuv, lmdb +, cmocka, systemd, hiredis, libmemcached +, gnutls, nettle +, luajitPackages, makeWrapper # TODO: on master there's luajitPackages +, fetchzip +}: + +let + inherit (stdenv.lib) optional; +in +stdenv.mkDerivation rec { + name = "knot-resolver-${version}"; + version = "1.2.0"; + + src = fetchurl { + url = "http://secure.nic.cz/files/knot-resolver/${name}.tar.xz"; + sha256 = "b8828197dbd563e4b502571538c6d44ef2bb07dede1df884b785921f8aec77fd"; + }; + + outputs = [ "out" "dev" ]; + + configurePhase = ":"; + + nativeBuildInputs = [ pkgconfig utillinux.bin/*hexdump*/ which ]; + buildInputs = [ knot-dns luajit libuv gnutls ] + # TODO: lmdb needs lmdb.pc; embedded for now + ## optional dependencies + ++ optional doInstallCheck cmocka + ++ [ + nettle # DNS cookies + systemd # socket activation + makeWrapper + hiredis libmemcached # additional cache backends + # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements + ]; + + makeFlags = [ "PREFIX=$(out)" ]; + CFLAGS = [ "-O2" "-DNDEBUG" ]; + + enableParallelBuilding = true; + + doInstallCheck = true; + installCheckTarget = "check"; + preInstallCheck = '' + export LD_LIBRARY_PATH="$out/lib" + ''; + + # optional: to allow auto-bootstrapping root trust anchor via https + postInstall = with luajitPackages; '' + wrapProgram "$out/sbin/kresd" \ + --set LUA_PATH '${ + stdenv.lib.concatStringsSep ";" + (map getLuaPath [ luasec luasocket ]) + }' \ + --set LUA_CPATH '${ + stdenv.lib.concatStringsSep ";" + (map getLuaCPath [ luasec luasocket ]) + }' + ''; + + meta = with stdenv.lib; { + description = "Caching DNS resolver, from .cz domain registry"; + homepage = https://knot-resolver.cz; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = [ maintainers.vcunat /* upstream developer */ ]; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3e1a5dec32cb..0fc8fbb9c622 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10328,6 +10328,7 @@ with pkgs; jetty = callPackage ../servers/http/jetty { }; knot-dns = callPackage ../servers/dns/knot-dns { }; + knot-resolver = callPackage ../servers/dns/knot-resolver { }; rdkafka = callPackage ../development/libraries/rdkafka { }; -- cgit 1.4.1