xcursor-pro: init at 2.0.2 (#335188)
[NixPkgs.git] / pkgs / development / libraries / malcontent / default.nix
blobfaa48dda2739bd69d221118a69c82df53f3b9120
1 { lib, stdenv
2 , fetchFromGitLab
3 , meson
4 , ninja
5 , pkg-config
6 , gobject-introspection
7 , wrapGAppsNoGuiHook
8 , glib
9 , coreutils
10 , accountsservice
11 , dbus
12 , pam
13 , polkit
14 , glib-testing
15 , python3
16 , nixosTests
17 , malcontent-ui
20 stdenv.mkDerivation rec {
21   pname = "malcontent";
22   version = "0.13.0";
24   outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
26   src = fetchFromGitLab {
27     domain = "gitlab.freedesktop.org";
28     owner = "pwithnall";
29     repo = "malcontent";
30     rev = version;
31     hash = "sha256-DVoTJrpXk5AoRMz+TxEP3NIAA/OOGRzZurLyGp0UBUo=";
32   };
34   patches = [
35     # Allow installing installed tests to a separate output.
36     ./installed-tests-path.patch
38     # Do not build things that are part of malcontent-ui package
39     ./better-separation.patch
40   ];
42   nativeBuildInputs = [
43     meson
44     ninja
45     pkg-config
46     gobject-introspection
47     wrapGAppsNoGuiHook
48   ];
50   buildInputs = [
51     accountsservice
52     dbus
53     pam
54     polkit
55     glib-testing
56     (python3.withPackages (pp: with pp; [
57       pygobject3
58     ]))
59   ];
61   propagatedBuildInputs = [
62     glib
63   ];
65   mesonFlags = [
66     "-Dinstalled_tests=true"
67     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
68     "-Dpamlibdir=${placeholder "pam"}/lib/security"
69     "-Dui=disabled"
70   ];
72   postPatch = ''
73     substituteInPlace libmalcontent/tests/app-filter.c \
74       --replace-fail "/usr/bin/true" "${coreutils}/bin/true" \
75       --replace-fail "/bin/true" "${coreutils}/bin/true" \
76       --replace-fail "/usr/bin/false" "${coreutils}/bin/false" \
77       --replace-fail "/bin/false" "${coreutils}/bin/false"
78   '';
80   postInstall = ''
81     # `giDiscoverSelf` only picks up paths in `out` output.
82     # This needs to be in `postInstall` so that it runs before
83     # `gappsWrapperArgsHook` that runs as one of `preFixupPhases`.
84     addToSearchPath GI_TYPELIB_PATH "$lib/lib/girepository-1.0"
85   '';
87   passthru = {
88     tests = {
89       installedTests = nixosTests.installed-tests.malcontent;
90       inherit malcontent-ui;
91     };
92   };
94   meta = with lib; {
95     # We need to install Polkit & AccountsService data files in `out`
96     # but `buildEnv` only uses `bin` when both `bin` and `out` are present.
97     outputsToInstall = [ "bin" "out" "man" ];
99     description = "Parental controls library";
100     mainProgram = "malcontent-client";
101     homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
102     license = licenses.lgpl21Plus;
103     maintainers = with maintainers; [ jtojnar ];
104     platforms = platforms.unix;
105   };