1{
2 lib,
3 buildPythonPackage,
4 daemonize,
5 dbus-python,
6 fetchFromGitHub,
7 gobject-introspection,
8 gtk3,
9 pygobject3,
10 pyudev,
11 setproctitle,
12 setuptools,
13 wrapGAppsNoGuiHook,
14 notify2,
15 glib,
16 libnotify,
17}:
18
19let
20 common = import ./common.nix { inherit lib fetchFromGitHub; };
21in
22buildPythonPackage (
23 common
24 // {
25 pname = "openrazer-daemon";
26
27 outputs = [
28 "out"
29 "man"
30 ];
31
32 sourceRoot = "${common.src.name}/daemon";
33
34 postPatch = ''
35 substituteInPlace openrazer_daemon/daemon.py \
36 --replace-fail "plugdev" "openrazer"
37 patchShebangs run_openrazer_daemon.py
38 substituteInPlace run_openrazer_daemon.py \
39 --replace-fail "/usr/share" "$out/share"
40 '';
41
42 nativeBuildInputs = [
43 setuptools
44 wrapGAppsNoGuiHook
45 gobject-introspection
46 ];
47
48 buildInputs = [
49 glib
50 gtk3
51 ];
52
53 dependencies = [
54 daemonize
55 dbus-python
56 pygobject3
57 pyudev
58 setproctitle
59 notify2
60 libnotify
61 ];
62
63 postInstall = ''
64 DESTDIR="$out" PREFIX="" make manpages install-resources install-systemd
65 '';
66
67 # no tests run
68 doCheck = false;
69
70 dontWrapGApps = true;
71
72 preFixup = ''
73 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
74 '';
75
76 meta = common.meta // {
77 description = "Entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
78 mainProgram = "openrazer-daemon";
79 };
80 }
81)