2018-02-23 18:34:32 +01:00
|
|
|
{ stdenv, fetchurl, pkgconfig, dbus_libs, nettle, libidn, libnetfilter_conntrack, fetchpatch }:
|
2015-06-19 09:54:41 +02:00
|
|
|
|
|
|
|
with stdenv.lib;
|
|
|
|
let
|
|
|
|
copts = concatStringsSep " " ([
|
|
|
|
"-DHAVE_IDN"
|
|
|
|
"-DHAVE_DNSSEC"
|
|
|
|
] ++ optionals stdenv.isLinux [
|
2015-12-25 05:27:31 +01:00
|
|
|
"-DHAVE_DBUS"
|
2015-06-19 09:54:41 +02:00
|
|
|
"-DHAVE_CONNTRACK"
|
|
|
|
]);
|
|
|
|
in
|
2010-10-11 21:30:54 +02:00
|
|
|
stdenv.mkDerivation rec {
|
2017-10-02 17:04:09 +02:00
|
|
|
name = "dnsmasq-2.78";
|
2007-09-03 14:10:57 +02:00
|
|
|
|
2008-01-30 18:20:48 +01:00
|
|
|
src = fetchurl {
|
2014-08-07 21:00:19 +02:00
|
|
|
url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.xz";
|
2017-10-02 17:04:09 +02:00
|
|
|
sha256 = "0ar5h5v3kas2qx2wgy5iqin15gc4jhqrqs067xacgc3lii1rz549";
|
2007-09-03 14:10:57 +02:00
|
|
|
};
|
|
|
|
|
2018-02-23 18:34:32 +01:00
|
|
|
patches = [
|
|
|
|
(fetchpatch {
|
|
|
|
name = "CVE-2017-15107.patch";
|
|
|
|
url = "http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=patch;h=4fe6744a220eddd3f1749b40cac3dfc510787de6";
|
|
|
|
sha256 = "0r8grhh1q46z8v6manx1vvfpf2vmchfzsg7l1djh63b1fy1mbjkk";
|
|
|
|
# changelog does not apply cleanly but its safe to skip
|
|
|
|
excludes = [ "CHANGELOG" ];
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
2015-06-19 09:54:41 +02:00
|
|
|
preBuild = ''
|
|
|
|
makeFlagsArray=("COPTS=${copts}")
|
2014-07-03 00:59:35 +02:00
|
|
|
'';
|
|
|
|
|
2015-06-19 09:54:41 +02:00
|
|
|
makeFlags = [
|
|
|
|
"DESTDIR="
|
|
|
|
"BINDIR=$(out)/bin"
|
|
|
|
"MANDIR=$(out)/man"
|
|
|
|
"LOCALEDIR=$(out)/share/locale"
|
|
|
|
];
|
2007-09-03 14:10:57 +02:00
|
|
|
|
2016-02-26 18:38:15 +01:00
|
|
|
hardeningEnable = [ "pie" ];
|
2016-02-26 18:55:51 +01:00
|
|
|
|
2015-12-25 05:27:31 +01:00
|
|
|
postBuild = optionalString stdenv.isLinux ''
|
2016-07-10 02:44:39 +02:00
|
|
|
make -C contrib/lease-tools
|
2015-12-03 11:04:22 +01:00
|
|
|
'';
|
|
|
|
|
2015-12-25 05:27:31 +01:00
|
|
|
# XXX: Does the systemd service definition really belong here when our NixOS
|
|
|
|
# module can create it in Nix-land?
|
2014-07-03 00:59:35 +02:00
|
|
|
postInstall = ''
|
|
|
|
install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf
|
2017-03-07 02:52:08 +01:00
|
|
|
'' + optionalString stdenv.isDarwin ''
|
|
|
|
install -Dm644 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist \
|
|
|
|
$out/Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist
|
|
|
|
substituteInPlace $out/Library/LaunchDaemons/uk.org.thekelleys.dnsmasq.plist \
|
|
|
|
--replace "/usr/local/sbin" "$out/bin"
|
2015-12-25 05:27:31 +01:00
|
|
|
'' + optionalString stdenv.isLinux ''
|
|
|
|
install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf
|
2016-07-10 02:44:39 +02:00
|
|
|
install -Dm755 contrib/lease-tools/dhcp_lease_time $out/bin/dhcp_lease_time
|
|
|
|
install -Dm755 contrib/lease-tools/dhcp_release $out/bin/dhcp_release
|
|
|
|
install -Dm755 contrib/lease-tools/dhcp_release6 $out/bin/dhcp_release6
|
2014-07-03 00:59:35 +02:00
|
|
|
|
2014-08-30 16:19:23 +02:00
|
|
|
mkdir -p $out/share/dbus-1/system-services
|
2014-07-03 00:59:35 +02:00
|
|
|
cat <<END > $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service
|
|
|
|
[D-BUS Service]
|
|
|
|
Name=uk.org.thekelleys.dnsmasq
|
2015-06-19 09:54:41 +02:00
|
|
|
Exec=$out/bin/dnsmasq -k -1
|
2014-07-03 00:59:35 +02:00
|
|
|
User=root
|
|
|
|
SystemdService=dnsmasq.service
|
|
|
|
END
|
|
|
|
'';
|
|
|
|
|
2015-06-19 09:54:41 +02:00
|
|
|
nativeBuildInputs = [ pkgconfig ];
|
2015-12-25 05:27:31 +01:00
|
|
|
buildInputs = [ nettle libidn ]
|
|
|
|
++ optionals stdenv.isLinux [ dbus_libs libnetfilter_conntrack ];
|
2014-07-03 00:59:35 +02:00
|
|
|
|
2015-06-19 09:54:41 +02:00
|
|
|
meta = {
|
2010-10-11 21:30:54 +02:00
|
|
|
description = "An integrated DNS, DHCP and TFTP server for small networks";
|
2010-07-30 16:47:23 +02:00
|
|
|
homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html;
|
2014-08-11 22:48:36 +02:00
|
|
|
license = licenses.gpl2;
|
|
|
|
platforms = with platforms; linux ++ darwin;
|
2016-07-10 02:44:39 +02:00
|
|
|
maintainers = with maintainers; [ eelco fpletz ];
|
2010-07-30 16:47:23 +02:00
|
|
|
};
|
2007-09-03 14:10:57 +02:00
|
|
|
}
|