about summary refs log tree commit diff
path: root/pkgs/desktops/lomiri
diff options
context:
space:
mode:
authorOPNA2608 <opna2608@protonmail.com>2024-04-10 13:45:14 +0200
committerWeijia Wang <9713184+wegank@users.noreply.github.com>2024-04-14 21:38:40 +0200
commit52696f99fa9ef1f1166b4d78945ab75e6d65ba76 (patch)
treee09b049b756e8816de10d034dc2988a57fb999dd /pkgs/desktops/lomiri
parent9c5e9db5bf094e1f374541d7bf789884de641192 (diff)
lomiri.libusermetrics: Add custom patch for launching systemd service
The UserMetrics service expects AppArmor to be available, and its database access breaks when that's not the case.
Details: https://gitlab.com/ubports/development/core/libusermetrics/-/issues/8

We need to set an envvar for it to work AppArmor-less, but that requires system config knowledge.
Solve this by telling the D-Bus service to look for & launch a systemd service, which we will later create in the Lomiri module.
Diffstat (limited to 'pkgs/desktops/lomiri')
-rw-r--r--pkgs/desktops/lomiri/development/libusermetrics/2002-Launch-module-created-systemd-service.patch21
-rw-r--r--pkgs/desktops/lomiri/development/libusermetrics/default.nix5
2 files changed, 26 insertions, 0 deletions
diff --git a/pkgs/desktops/lomiri/development/libusermetrics/2002-Launch-module-created-systemd-service.patch b/pkgs/desktops/lomiri/development/libusermetrics/2002-Launch-module-created-systemd-service.patch
new file mode 100644
index 0000000000000..82961cd4ba798
--- /dev/null
+++ b/pkgs/desktops/lomiri/development/libusermetrics/2002-Launch-module-created-systemd-service.patch
@@ -0,0 +1,21 @@
+From cf8ba54d22f5ac839004c0d984fb402bde82b527 Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Mon, 8 Apr 2024 15:22:55 +0200
+Subject: [PATCH] Launch module-created systemd service
+
+---
+ data/com.lomiri.UserMetrics.service.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/data/com.lomiri.UserMetrics.service.in b/data/com.lomiri.UserMetrics.service.in
+index c2e6ae1..212e24f 100644
+--- a/data/com.lomiri.UserMetrics.service.in
++++ b/data/com.lomiri.UserMetrics.service.in
+@@ -3,3 +3,4 @@ Name=com.lomiri.UserMetrics
+ Exec=@CMAKE_INSTALL_FULL_LIBEXECDIR@/libusermetrics/usermetricsservice
+ User=usermetrics
+ StandardOutput=syslog
++SystemdService=dbus-com.lomiri.UserMetrics.service
+-- 
+2.42.0
+
diff --git a/pkgs/desktops/lomiri/development/libusermetrics/default.nix b/pkgs/desktops/lomiri/development/libusermetrics/default.nix
index d4767b7058252..351900af7f13f 100644
--- a/pkgs/desktops/lomiri/development/libusermetrics/default.nix
+++ b/pkgs/desktops/lomiri/development/libusermetrics/default.nix
@@ -43,6 +43,10 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     # Not submitted yet, waiting for decision on how CMake testing should be handled
     ./2001-Remove-custom-check-target.patch
+
+    # Due to https://gitlab.com/ubports/development/core/libusermetrics/-/issues/8, we require knowledge about AppArmor availability at launch time
+    # Custom patch to launch a module-defined service that can handle this
+    ./2002-Launch-module-created-systemd-service.patch
   ];
 
   postPatch = ''
@@ -91,6 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
   cmakeFlags = [
     (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
     (lib.cmakeBool "GSETTINGS_COMPILE" true)
+    (lib.cmakeBool "ENABLE_CLICK" true)
     (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
     (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" (lib.concatStringsSep ";" [
       # Exclude tests