summary refs log tree commit diff
path: root/pkgs/servers/dns/knot-resolver/default.nix
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-01-25 15:20:18 +0100
committerVladimír Čunát <vcunat@gmail.com>2017-01-25 15:22:09 +0100
commit5d5fb4a2fb1fc782f603837a53a0a831e81ad637 (patch)
tree636d306e0f16319f9607ab6e0e98cbb2f0dd9672 /pkgs/servers/dns/knot-resolver/default.nix
parent30c3fdedfefb2ad991f9dc827f282718e4180e3b (diff)
downloadnixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.tar
nixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.tar.gz
nixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.tar.bz2
nixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.tar.lz
nixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.tar.xz
nixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.tar.zst
nixpkgs-5d5fb4a2fb1fc782f603837a53a0a831e81ad637.zip
knot-resolver: init at 1.2.0
Celebrating today's release!
Diffstat (limited to 'pkgs/servers/dns/knot-resolver/default.nix')
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
new file mode 100644
index 00000000000..e9668ed3e53
--- /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 */ ];
+  };
+}
+