1{ lib
2, stdenv
3, fetchFromGitHub
4, autoreconfHook
5, glib
6, gperf
7, kmod
8, pkg-config
9, util-linux
10}:
11
12stdenv.mkDerivation rec {
13 pname = "eudev";
14 version = "3.2.11";
15
16 src = fetchFromGitHub {
17 owner = "eudev-project";
18 repo = pname;
19 rev = "v${version}";
20 hash = "sha256-W5nL4hicQ4fxz5rqoP+hhkE1tVn8lJZjMq4UaiXH6jc=";
21 };
22
23 nativeBuildInputs = [
24 autoreconfHook
25 gperf
26 pkg-config
27 ];
28
29 buildInputs = [
30 glib
31 kmod
32 util-linux
33 ];
34
35 configureFlags = [
36 "--localstatedir=/var"
37 "--sysconfdir=/etc"
38 ];
39
40 makeFlags = [
41 "hwdb_bin=/var/lib/udev/hwdb.bin"
42 "udevrulesdir=/etc/udev/rules.d"
43 ];
44
45 preInstall = ''
46 # Disable install-exec-hook target,
47 # as it conflicts with our move-sbin setup-hook
48
49 sed -i 's;$(MAKE) $(AM_MAKEFLAGS) install-exec-hook;$(MAKE) $(AM_MAKEFLAGS);g' src/udev/Makefile
50 '';
51
52 installFlags = [
53 "localstatedir=$(TMPDIR)/var"
54 "sysconfdir=$(out)/etc"
55 "udevconfdir=$(out)/etc/udev"
56 "udevhwdbbin=$(out)/var/lib/udev/hwdb.bin"
57 "udevhwdbdir=$(out)/var/lib/udev/hwdb.d"
58 "udevrulesdir=$(out)/var/lib/udev/rules.d"
59 ];
60
61 meta = with lib; {
62 homepage = "https://github.com/eudev-project/eudev";
63 description = "A fork of udev with the aim of isolating it from init";
64 license = licenses.gpl2Plus ;
65 maintainers = with maintainers; [ raskin AndersonTorres ];
66 platforms = platforms.linux;
67 };
68}