nixpkgs/pkgs/tools/networking/dnscrypt-proxy/default.nix
Joachim Fasting 0526467494
dnscrypt-proxy: enable additional plugins
Adding ldns builds additional plugins for rewriting DNS queries,
such as blocking and forwarding.

For example, to use a custom domain blocklist, you can do
```nix
let
  myBlockListFile = writeText "blocked-domains" ''
    *.example.com
  '';
in
{
  services.dnscrypt-proxy.extraArgs = [
    "-X libdcplugin_example_ldns_blocking.so,--domains=${myBlockListFile}"
  ];
}
```
2017-03-16 16:15:33 +01:00

35 lines
1 KiB
Nix

{ stdenv, fetchurl, pkgconfig, libsodium, ldns, openssl, systemd }:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "dnscrypt-proxy-${version}";
version = "1.9.4";
src = fetchurl {
url = "https://download.dnscrypt.org/dnscrypt-proxy/${name}.tar.bz2";
sha256 = "07piwsjczamwvdpv1585kg4awqakip51bwsm8nqi6bljww4agx7x";
};
configureFlags = optional stdenv.isLinux "--with-systemd";
nativeBuildInputs = [ pkgconfig ];
# <ldns/ldns.h> depends on <openssl/ssl.h>
buildInputs = [ libsodium openssl.dev ldns ] ++ optional stdenv.isLinux systemd;
postInstall = ''
# Previous versions required libtool files to load plugins; they are
# now strictly optional.
rm $out/lib/dnscrypt-proxy/*.la
'';
meta = {
description = "A tool for securing communications between a client and a DNS resolver";
homepage = https://dnscrypt.org/;
license = licenses.isc;
maintainers = with maintainers; [ joachifm jgeerds ];
# upstream claims OSX support, but Hydra fails
platforms = with platforms; allBut darwin;
};
}