nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 autoreconfHook,
6 gperf,
7 kmod,
8 pkg-config,
9 util-linuxMinimal,
10 testers,
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "eudev";
15 version = "3.2.14";
16
17 src = fetchFromGitHub {
18 owner = "eudev-project";
19 repo = "eudev";
20 rev = "v${finalAttrs.version}";
21 hash = "sha256-v/szzqrBedQPRGYkZ0lV9rslCH//uqGp4PHEF0/51Lg=";
22 };
23
24 nativeBuildInputs = [
25 autoreconfHook
26 gperf
27 pkg-config
28 ];
29
30 buildInputs = [
31 kmod
32 util-linuxMinimal
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, as it conflicts with our move-sbin
47 # 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 passthru.tests = {
62 pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
63 };
64
65 meta = {
66 homepage = "https://github.com/eudev-project/eudev";
67 description = "Fork of udev with the aim of isolating it from init";
68 longDescription = ''
69 eudev is a standalone dynamic and persistent device naming support (aka
70 userspace devfs) daemon that runs independently from the init
71 system. eudev strives to remain init system and linux distribution
72 neutral. It is currently used as the devfs manager for more than a dozen
73 different linux distributions.
74
75 This git repo is a fork of systemd repository with the aim of isolating
76 udev from any particular flavor of system initialization. In this case,
77 the isolation is from systemd.
78
79 This is a project started by Gentoo developers and testing was initially
80 being done mostly on OpenRC. We welcome contribution from others using a
81 variety of system initializations to ensure eudev remains system
82 initialization and distribution neutral. On 2021-08-20 Gentoo decided to
83 abandon eudev and a new project was established on 2021-09-14 by Alpine,
84 Devuan and Gentoo contributors.
85 '';
86 changelog = "https://github.com/eudev-project/eudev/releases/tag/${finalAttrs.src.rev}";
87 license = lib.licenses.gpl2Plus;
88 maintainers = with lib.maintainers; [
89 raskin
90 ];
91 pkgConfigModules = [
92 "libudev"
93 "udev"
94 ];
95 inherit (kmod.meta) platforms;
96 };
97})