1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 evdev,
6 pyudev,
7 udevCheckHook,
8}:
9
10buildPythonPackage rec {
11 pname = "persistent-evdev";
12 version = "unstable-2022-05-07";
13 format = "other";
14
15 src = fetchFromGitHub {
16 owner = "aiberia";
17 repo = pname;
18 rev = "52bf246464e09ef4e6f2e1877feccc7b9feba164";
19 sha256 = "d0i6DL/qgDELet4ew2lyVqzd9TApivRxL3zA3dcsQXY=";
20 };
21
22 propagatedBuildInputs = [
23 evdev
24 pyudev
25 ];
26
27 nativeBuildInputs = [
28 udevCheckHook
29 ];
30
31 doInstallCheck = true;
32
33 postPatch = ''
34 patchShebangs bin/persistent-evdev.py
35 '';
36
37 dontBuild = true;
38
39 installPhase = ''
40 runHook preInstall
41
42 mkdir -p $out/bin
43 cp bin/persistent-evdev.py $out/bin
44
45 mkdir -p $out/etc/udev/rules.d
46 cp udev/60-persistent-input-uinput.rules $out/etc/udev/rules.d
47
48 runHook postInstall
49 '';
50
51 meta = with lib; {
52 homepage = "https://github.com/aiberia/persistent-evdev";
53 description = "Persistent virtual input devices for qemu/libvirt/evdev hotplug support";
54 license = licenses.mit;
55 maintainers = [ maintainers.lodi ];
56 platforms = platforms.linux;
57 mainProgram = "persistent-evdev.py";
58 };
59}