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}:
17
18let
19 common = import ./common.nix { inherit lib fetchFromGitHub; };
20in
21buildPythonPackage (common // {
22 pname = "openrazer-daemon";
23
24 outputs = [
25 "out"
26 "man"
27 ];
28
29 sourceRoot = "${common.src.name}/daemon";
30
31 postPatch = ''
32 substituteInPlace openrazer_daemon/daemon.py \
33 --replace-fail "plugdev" "openrazer"
34 '';
35
36 nativeBuildInputs = [ setuptools wrapGAppsNoGuiHook gobject-introspection ];
37
38 buildInputs = [
39 glib
40 gtk3
41 ];
42
43 propagatedBuildInputs = [
44 daemonize
45 dbus-python
46 pygobject3
47 pyudev
48 setproctitle
49 notify2
50 ];
51
52 postInstall = ''
53 DESTDIR="$out" PREFIX="" make manpages install-resources install-systemd
54 '';
55
56 # no tests run
57 doCheck = false;
58
59 dontWrapGApps = true;
60
61 preFixup = ''
62 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
63 '';
64
65 meta = common.meta // {
66 description = "Entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
67 mainProgram = "openrazer-daemon";
68 };
69})