Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenv
2, meson
3, ninja
4, pkg-config
5, gobject-introspection
6, itstool
7, wrapGAppsHook4
8, glib
9, accountsservice
10, dbus
11, flatpak
12, malcontent
13, gtk4
14, libadwaita
15, appstream
16, desktop-file-utils
17, polkit
18, glib-testing
19}:
20
21stdenv.mkDerivation rec {
22 pname = "malcontent-ui";
23
24 inherit (malcontent) version src;
25
26 outputs = [ "out" "lib" "dev" ];
27
28 patches = [
29 # Allow installing installed tests to a separate output.
30 ./installed-tests-path.patch
31
32 # Do not build things that are part of malcontent package
33 ./better-separation.patch
34 ];
35
36 nativeBuildInputs = [
37 meson
38 ninja
39 pkg-config
40 gobject-introspection
41 itstool
42 desktop-file-utils
43 wrapGAppsHook4
44 ];
45
46 buildInputs = [
47 appstream
48 dbus
49 polkit
50 glib-testing
51 flatpak
52 ];
53
54 propagatedBuildInputs = [
55 accountsservice
56 malcontent
57 glib
58 gtk4
59 libadwaita
60 ];
61
62 mesonFlags = [
63 "-Dinstalled_tests=true"
64 "-Dinstalled_test_prefix=${placeholder "installedTests"}"
65 "-Duse_system_libmalcontent=true"
66 "-Dui=enabled"
67 ];
68
69 postPatch = ''
70 # https://gitlab.freedesktop.org/pwithnall/malcontent/-/merge_requests/148
71 substituteInPlace build-aux/meson_post_install.py \
72 --replace gtk-update-icon-cache gtk4-update-icon-cache
73 '';
74
75 meta = with lib; {
76 description = "UI components for parental controls library";
77 homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
78 license = licenses.lgpl21Plus;
79 maintainers = with maintainers; [ jtojnar ];
80 platforms = platforms.unix;
81 };
82}