forked from mirrors/nixpkgs
2d8c0d24f2
This fixes several problems in the dhcpcd service: * A segfault during startup, due to a race with udev (dhcpcd would get an ADD event from udev, causing it to re-add an interface that it already had, leading to a segfault later on). * A hang/segfault processing "dhcpcd rebind" (which NixOS calls after waking up from suspend). Also, add "lo" to the list of ignored interfaces. It usually ignores "lo", but apparently not when it gets an ADD event from udev.
33 lines
991 B
Nix
33 lines
991 B
Nix
{ stdenv, fetchurl, pkgconfig, udev }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "dhcpcd-6.3.2";
|
|
|
|
src = fetchurl {
|
|
url = "http://roy.marples.name/downloads/dhcpcd/${name}.tar.bz2";
|
|
sha256 = "1v2m5wdr6x5cz6i0n1y63am9dhj5j7ylrk717scjgwwjdbq1x75n";
|
|
};
|
|
|
|
patches = [ ./lxc_ro_promote_secondaries.patch ./reload.patch ./check-interface.patch ];
|
|
|
|
buildInputs = [ pkgconfig udev ];
|
|
|
|
configureFlags = "--sysconfdir=/etc";
|
|
|
|
makeFlags = "PREFIX=\${out}";
|
|
|
|
# Hack to make installation succeed. dhcpcd will still use /var/db
|
|
# at runtime.
|
|
installFlags = "DBDIR=\${TMPDIR}/db SYSCONFDIR=$(out)/etc";
|
|
|
|
# Check that the udev plugin got built.
|
|
postInstall = stdenv.lib.optional (udev != null) "[ -e $out/lib/dhcpcd/dev/udev.so ]";
|
|
|
|
meta = {
|
|
description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
|
|
homepage = http://roy.marples.name/projects/dhcpcd;
|
|
platforms = stdenv.lib.platforms.linux;
|
|
maintainers = [ stdenv.lib.maintainers.eelco ];
|
|
};
|
|
}
|