python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / malcontent / default.nix
blob92ec23542883fe96ab7bfbad97478842dbdec889
1 { lib, stdenv
2 , fetchFromGitLab
3 , fetchpatch
4 , meson
5 , ninja
6 , pkg-config
7 , gobject-introspection
8 , wrapGAppsNoGuiHook
9 , glib
10 , coreutils
11 , accountsservice
12 , dbus
13 , pam
14 , polkit
15 , glib-testing
16 , python3
17 , nixosTests
20 stdenv.mkDerivation rec {
21   pname = "malcontent";
22   version = "0.11.0";
24   outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
26   src = fetchFromGitLab {
27     domain = "gitlab.freedesktop.org";
28     owner = "pwithnall";
29     repo = pname;
30     rev = version;
31     sha256 = "sha256-92F30DfdSJvO5C9EmNtiC/H6Fa6qQHecYSx59JKp8vA=";
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 "/usr/bin/true" "${coreutils}/bin/true" \
75       --replace "/bin/true" "${coreutils}/bin/true" \
76       --replace "/usr/bin/false" "${coreutils}/bin/false" \
77       --replace "/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     };
91   };
93   meta = with lib; {
94     # We need to install Polkit & AccountsService data files in `out`
95     # but `buildEnv` only uses `bin` when both `bin` and `out` are present.
96     outputsToInstall = [ "bin" "out" "man" ];
98     description = "Parental controls library";
99     homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
100     license = licenses.lgpl21Plus;
101     maintainers = with maintainers; [ jtojnar ];
102     platforms = platforms.unix;
103   };