aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/libraries/malcontent/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/libraries/malcontent/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/libraries/malcontent/default.nix104
1 files changed, 104 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/libraries/malcontent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/libraries/malcontent/default.nix
new file mode 100644
index 000000000000..97cc4f7ff2a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/libraries/malcontent/default.nix
@@ -0,0 +1,104 @@
+{ stdenv
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, pkg-config
+, gobject-introspection
+, wrapGAppsHook
+, glib
+, coreutils
+, accountsservice
+, dbus
+, pam
+, polkit
+, glib-testing
+, python3
+, nixosTests
+}:
+
+stdenv.mkDerivation rec {
+ pname = "malcontent";
+ version = "0.9.0";
+
+ outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
+
+ src = fetchFromGitLab {
+ domain = "gitlab.freedesktop.org";
+ owner = "pwithnall";
+ repo = pname;
+ rev = version;
+ sha256 = "DEtibrGgHSgRjaarAzizzLN1xsJKXl+LCQ29FmpPoJo=";
+ };
+
+ patches = [
+ # Allow installing installed tests to a separate output.
+ ./installed-tests-path.patch
+
+ # Do not build things that are part of malcontent-ui package
+ ./better-separation.patch
+ ];
+
+ nativeBuildInputs = [
+ meson
+ ninja
+ pkg-config
+ gobject-introspection
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ accountsservice
+ dbus
+ pam
+ polkit
+ glib-testing
+ (python3.withPackages (pp: with pp; [
+ pygobject3
+ ]))
+ ];
+
+ propagatedBuildInputs = [
+ glib
+ ];
+
+ mesonFlags = [
+ "-Dinstalled_tests=true"
+ "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+ "-Dpamlibdir=${placeholder "pam"}/lib/security"
+ "-Dui=disabled"
+ ];
+
+ postPatch = ''
+ substituteInPlace libmalcontent/tests/app-filter.c \
+ --replace "/usr/bin/true" "${coreutils}/bin/true" \
+ --replace "/bin/true" "${coreutils}/bin/true" \
+ --replace "/usr/bin/false" "${coreutils}/bin/false" \
+ --replace "/bin/false" "${coreutils}/bin/false"
+ '';
+
+ postInstall = ''
+ # `giDiscoverSelf` only picks up paths in `out` output.
+ # This needs to be in `postInstall` so that it runs before
+ # `gappsWrapperArgsHook` that runs as one of `preFixupPhases`.
+ addToSearchPath GI_TYPELIB_PATH "$lib/lib/girepository-1.0"
+ '';
+
+ passthru = {
+ tests = {
+ installedTests = nixosTests.installed-tests.malcontent;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ # We need to install Polkit & AccountsService data files in `out`
+ # but `buildEnv` only uses `bin` when both `bin` and `out` are present.
+ outputsToInstall = [ "bin" "out" "man" ];
+
+ description = "Parental controls library";
+ homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.unix;
+ };
+}