nixpkgs/pkgs/tools/networking/dnsmasq/default.nix

67 lines
1.9 KiB
Nix
Raw Normal View History

2015-06-19 10:54:41 +03:00
{ stdenv, fetchurl, pkgconfig, dbus_libs, nettle, libidn, libnetfilter_conntrack }:
with stdenv.lib;
let
copts = concatStringsSep " " ([
"-DHAVE_IDN"
"-DHAVE_DNSSEC"
] ++ optionals stdenv.isLinux [
"-DHAVE_DBUS"
2015-06-19 10:54:41 +03:00
"-DHAVE_CONNTRACK"
]);
in
stdenv.mkDerivation rec {
2015-08-03 22:50:11 +03:00
name = "dnsmasq-2.75";
src = fetchurl {
url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.xz";
2015-08-03 22:50:11 +03:00
sha256 = "1wa1d4if9q6k3hklv8xi06a59k3aqb7pik8rhi2l53i99hflw334";
};
2015-06-19 10:54:41 +03:00
preBuild = ''
makeFlagsArray=("COPTS=${copts}")
'';
2015-06-19 10:54:41 +03:00
makeFlags = [
"DESTDIR="
"BINDIR=$(out)/bin"
"MANDIR=$(out)/man"
"LOCALEDIR=$(out)/share/locale"
];
postBuild = optionalString stdenv.isLinux ''
2015-12-03 13:04:22 +03:00
make -C contrib/wrt
'';
# XXX: Does the systemd service definition really belong here when our NixOS
# module can create it in Nix-land?
postInstall = ''
install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf
'' + optionalString stdenv.isLinux ''
install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf
2015-12-03 13:04:22 +03:00
install -Dm755 contrib/wrt/dhcp_lease_time $out/bin/dhcp_lease_time
install -Dm755 contrib/wrt/dhcp_release $out/bin/dhcp_release
mkdir -p $out/share/dbus-1/system-services
cat <<END > $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service
[D-BUS Service]
Name=uk.org.thekelleys.dnsmasq
2015-06-19 10:54:41 +03:00
Exec=$out/bin/dnsmasq -k -1
User=root
SystemdService=dnsmasq.service
END
'';
2015-06-19 10:54:41 +03:00
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ nettle libidn ]
++ optionals stdenv.isLinux [ dbus_libs libnetfilter_conntrack ];
2015-06-19 10:54:41 +03:00
meta = {
description = "An integrated DNS, DHCP and TFTP server for small networks";
homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html;
2014-08-12 00:48:36 +04:00
license = licenses.gpl2;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ eelco ];
};
}