python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / applications / misc / feedbackd / default.nix
blobad1660173159cbacfae450f93e29720c8e5696f1
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , docbook-xsl-nons
5 , gobject-introspection
6 , gtk-doc
7 , libxslt
8 , meson
9 , ninja
10 , pkg-config
11 , vala
12 , wrapGAppsHook
13 , glib
14 , gsound
15 , json-glib
16 , libgudev
17 , dbus
20 let
21   themes = fetchFromGitLab {
22     domain = "source.puri.sm";
23     owner = "Librem5";
24     repo = "feedbackd-device-themes";
25     rev = "v0.0.20220523";
26     sha256 = "sha256-RyUZj+tpJSYhyoK+E98CTIoHwXwBdB1YHVnO5821exo=";
27   };
29 stdenv.mkDerivation rec {
30   pname = "feedbackd";
31   # Not an actual upstream project release,
32   # only a Debian package release that is tagged in the upstream repo
33   version = "0.0.0+git20220520";
35   outputs = [ "out" "dev" ]
36     # remove if cross-compiling gobject-introspection works
37     ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
39   src = fetchFromGitLab {
40     domain = "source.puri.sm";
41     owner = "Librem5";
42     repo = "feedbackd";
43     rev = "v${version}";
44     hash = "sha256-4ftPC6LnX0kKFYVyH85yCH43B3YjuaZM5rzr8TGgZvc=";
45   };
47   nativeBuildInputs = [
48     docbook-xsl-nons
49     gobject-introspection
50     gtk-doc
51     libxslt
52     meson
53     ninja
54     pkg-config
55     vala
56     wrapGAppsHook
57   ];
59   buildInputs = [
60     glib
61     gsound
62     json-glib
63     libgudev
64   ];
66   mesonFlags = [
67     "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
68     "-Dman=true"
69     # TODO(mindavi): introspection broken due to https://github.com/NixOS/nixpkgs/issues/72868
70     #                can be removed if cross-compiling gobject-introspection works.
71     "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
72   ];
74   checkInputs = [
75     dbus
76   ];
78   doCheck = true;
80   postInstall = ''
81     mkdir -p $out/lib/udev/rules.d
82     sed "s|/usr/libexec/|$out/libexec/|" < $src/debian/feedbackd.udev > $out/lib/udev/rules.d/90-feedbackd.rules
83     cp ${themes}/data/* $out/share/feedbackd/themes/
84   '';
86   meta = with lib; {
87     description = "A daemon to provide haptic (and later more) feedback on events";
88     homepage = "https://source.puri.sm/Librem5/feedbackd";
89     license = licenses.gpl3Plus;
90     maintainers = with maintainers; [ pacman99 tomfitzhenry ];
91     platforms = platforms.linux;
92   };