python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / networking / dhcpcd / default.nix
blob81c721a20a49d61c8a314103697f70fa2691bc5c
1 { lib
2 , stdenv
3 , fetchurl
4 , pkg-config
5 , udev
6 , runtimeShellPackage
7 , runtimeShell
8 , nixosTests
9 , enablePrivSep ? true
12 stdenv.mkDerivation rec {
13   pname = "dhcpcd";
14   version = "9.4.1";
16   src = fetchurl {
17     url = "mirror://roy/${pname}/${pname}-${version}.tar.xz";
18     sha256 = "sha256-gZNXY07+0epc9E7AGyTT0/iFL+yLQkmSXcxWZ8VON2w=";
19   };
21   nativeBuildInputs = [ pkg-config ];
22   buildInputs = [
23     udev
24     runtimeShellPackage # So patchShebangs finds a bash suitable for the installed scripts
25   ];
27   prePatch = ''
28     substituteInPlace hooks/dhcpcd-run-hooks.in --replace /bin/sh ${runtimeShell}
29   '';
31   preConfigure = "patchShebangs ./configure";
33   configureFlags = [
34     "--sysconfdir=/etc"
35     "--localstatedir=/var"
36   ]
37   ++ (
38     if ! enablePrivSep
39     then [ "--disable-privsep" ]
40     else [
41       "--enable-privsep"
42       # dhcpcd disables privsep if it can't find the default user,
43       # so we explicitly specify a user.
44       "--privsepuser=dhcpcd"
45     ]
46   );
48   makeFlags = [ "PREFIX=${placeholder "out"}" ];
50   # Hack to make installation succeed.  dhcpcd will still use /var/db
51   # at runtime.
52   installFlags = [ "DBDIR=$(TMPDIR)/db" "SYSCONFDIR=${placeholder "out"}/etc" ];
54   # Check that the udev plugin got built.
55   postInstall = lib.optionalString (udev != null) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
57   passthru = {
58     inherit enablePrivSep;
59     tests = { inherit (nixosTests.networking.scripted) macvlan dhcpSimple dhcpOneIf; };
60   };
62   meta = with lib; {
63     description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
64     homepage = "https://roy.marples.name/projects/dhcpcd";
65     platforms = platforms.linux;
66     license = licenses.bsd2;
67     maintainers = with maintainers; [ eelco ];
68   };