latte-dock: 0.9.11 -> 0.9.12
[NixPkgs.git] / pkgs / tools / networking / dhcp / default.nix
blob08b3543c5c04f900f6ae30d4e94a3311bcf6eabb
1 { stdenv, fetchurl, perl, file, nettools, iputils, iproute2, makeWrapper
2 , coreutils, gnused, openldap ? null
3 , buildPackages, lib
4 }:
6 stdenv.mkDerivation rec {
7   pname = "dhcp";
8   version = "4.4.2";
10   src = fetchurl {
11     url = "https://ftp.isc.org/isc/dhcp/${version}/${pname}-${version}.tar.gz";
12     sha256 = "08a5003zdxgl41b29zjkxa92h2i40zyjgxg0npvnhpkfl5jcsz0s";
13   };
15   patches =
16     [
17       # Make sure that the hostname gets set on reboot.  Without this
18       # patch, the hostname doesn't get set properly if the old
19       # hostname (i.e. before reboot) is equal to the new hostname.
20       ./set-hostname.patch
21     ];
23   nativeBuildInputs = [ perl makeWrapper ];
25   buildInputs = [ openldap ];
27   depsBuildBuild = [ buildPackages.stdenv.cc ];
29   configureFlags = [
30     "--enable-failover"
31     "--enable-execute"
32     "--enable-tracing"
33     "--enable-delayed-ack"
34     "--enable-dhcpv6"
35     "--enable-paranoia"
36     "--enable-early-chroot"
37     "--sysconfdir=/etc"
38     "--localstatedir=/var"
39   ] ++ lib.optional stdenv.isLinux "--with-randomdev=/dev/random"
40     ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ];
42   NIX_CFLAGS_COMPILE = builtins.toString [
43     "-Wno-error=pointer-compare"
44     "-Wno-error=format-truncation"
45     "-Wno-error=stringop-truncation"
46     "-Wno-error=format-overflow"
47     "-Wno-error=stringop-overflow=8"
48   ];
50   installFlags = [ "DESTDIR=\${out}" ];
52   postInstall =
53     ''
54       mv $out/$out/* $out
55       DIR=$out/$out
56       while rmdir $DIR 2>/dev/null; do
57         DIR="$(dirname "$DIR")"
58       done
60       cp client/scripts/linux $out/sbin/dhclient-script
61       substituteInPlace $out/sbin/dhclient-script \
62         --replace /sbin/ip ${iproute2}/sbin/ip
63       wrapProgram "$out/sbin/dhclient-script" --prefix PATH : \
64         "${nettools}/bin:${nettools}/sbin:${iputils}/bin:${coreutils}/bin:${gnused}/bin"
65     '';
67   preConfigure =
68     ''
69       substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file"
70       sed -i "includes/dhcpd.h" \
71           -e "s|^ *#define \+_PATH_DHCLIENT_SCRIPT.*$|#define _PATH_DHCLIENT_SCRIPT \"$out/sbin/dhclient-script\"|g"
73       export AR='${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar'
74     '';
76   meta = with lib; {
77     description = "Dynamic Host Configuration Protocol (DHCP) tools";
79     longDescription = ''
80       ISC's Dynamic Host Configuration Protocol (DHCP) distribution
81       provides a freely redistributable reference implementation of
82       all aspects of DHCP, through a suite of DHCP tools: server,
83       client, and relay agent.
84    '';
86     homepage = "https://www.isc.org/dhcp/";
87     license = licenses.isc;
88     platforms = platforms.unix;
89   };