Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / misc / feedbackd / default.nix
blob45da9c1afaa8c8a5889dec461b673bff03cdd557
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , fetchpatch2
5 , docbook-xsl-nons
6 , docutils
7 , gi-docgen
8 , gobject-introspection
9 , gtk-doc
10 , libxslt
11 , meson
12 , ninja
13 , pkg-config
14 , vala
15 , wrapGAppsHook
16 , glib
17 , gsound
18 , json-glib
19 , libgudev
20 , dbus
23 let
24   themes = fetchFromGitLab {
25     domain = "source.puri.sm";
26     owner = "Librem5";
27     repo = "feedbackd-device-themes";
28     rev = "v0.1.0";
29     sha256 = "sha256-YK9fJ3awmhf1FAhdz95T/POivSO93jsNApm+u4OOZ80=";
30   };
32 stdenv.mkDerivation rec {
33   pname = "feedbackd";
34   version = "0.2.0";
36   outputs = [ "out" "dev" "devdoc" ];
38   src = fetchFromGitLab {
39     domain = "source.puri.sm";
40     owner = "Librem5";
41     repo = "feedbackd";
42     rev = "v${version}";
43     hash = "sha256-l5rfMx3ElW25A5WVqzfKBp57ebaNC9msqV7mvnwv10s=";
44     fetchSubmodules = true;
45   };
47   depsBuildBuild = [
48     pkg-config
49   ];
51   nativeBuildInputs = [
52     docbook-xsl-nons
53     docutils # for rst2man
54     gi-docgen
55     gobject-introspection
56     gtk-doc
57     libxslt
58     meson
59     ninja
60     pkg-config
61     vala
62     wrapGAppsHook
63   ];
65   buildInputs = [
66     glib
67     gsound
68     json-glib
69     libgudev
70   ];
72   mesonFlags = [
73     "-Dgtk_doc=true"
74     "-Dman=true"
75   ];
77   nativeCheckInputs = [
78     dbus
79   ];
81   doCheck = true;
83   postInstall = ''
84     mkdir -p $out/lib/udev/rules.d
85     sed "s|/usr/libexec/|$out/libexec/|" < $src/debian/feedbackd.udev > $out/lib/udev/rules.d/90-feedbackd.rules
86     cp ${themes}/data/* $out/share/feedbackd/themes/
87   '';
89   postFixup = ''
90     # Move developer documentation to devdoc output.
91     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
92     if [[ -d "$out/share/doc" ]]; then
93         find -L "$out/share/doc" -type f -regex '.*\.devhelp2?' -print0 \
94           | while IFS= read -r -d ''' file; do
95             moveToOutput "$(dirname "''${file/"$out/"/}")" "$devdoc"
96         done
97     fi
98   '';
100   meta = with lib; {
101     description = "A daemon to provide haptic (and later more) feedback on events";
102     homepage = "https://source.puri.sm/Librem5/feedbackd";
103     license = licenses.gpl3Plus;
104     maintainers = with maintainers; [ pacman99 tomfitzhenry ];
105     platforms = platforms.linux;
106   };