24 stdenv.mkDerivation (finalAttrs: {
29 url = "https://downloads.powerdns.com/releases/pdns-${finalAttrs.version}.tar.bz2";
30 hash = "sha256-/h1UM8iERu1w2TFgXG7Dd9qZg5xOFRuQtxqiEb1u6pI=";
32 # redact configure flags from version output to reduce closure size
33 patches = [ ./version.patch ];
35 nativeBuildInputs = [ pkg-config ];
55 # Configure phase requires 64-bit time_t even on 32-bit platforms.
56 env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.hostPlatform.is32bit [
58 "-D_FILE_OFFSET_BITS=64"
62 "--disable-silent-rules"
63 "--enable-dns-over-tls"
65 "--enable-reproducible"
71 "--with-libcrypto=${openssl.dev}"
72 "sysconfdir=/etc/pdns"
75 # nix destroy with-modules arguments, when using configureFlags
77 configureFlagsArray+=(
79 "--with-dynmodules=bind geoip gmysql godbc gpgsql gsqlite3 ldap lmdb lua2 pipe remote tinydns"
83 # We want the various utilities to look for the powerdns config in
84 # /etc/pdns, but to actually install the sample config file in
86 installFlags = [ "sysconfdir=$(out)/etc/pdns" ];
88 enableParallelBuilding = true;
92 nixos = nixosTests.powerdns;
96 description = "Authoritative DNS server";
97 homepage = "https://www.powerdns.com";
98 platforms = platforms.unix;
99 broken = stdenv.isDarwin;
100 license = licenses.gpl2;
101 maintainers = with maintainers; [ mic92 disassembler nickcao ];