about summary refs log tree commit diff
path: root/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix')
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix36
1 files changed, 33 insertions, 3 deletions
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index af1781f3af748..51e1c2e52c87d 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -14,6 +14,9 @@
 , json-glib
 , libmspack
 , webkitgtk_4_1
+, substituteAll
+, _experimental-update-script-combinators
+, glib
 }:
 
 stdenv.mkDerivation rec {
@@ -25,6 +28,17 @@ stdenv.mkDerivation rec {
     sha256 = "p5Jp7wnoqAuo8My8ZDMl0rsFc0158G8x8lAehWfLjb0=";
   };
 
+  patches = [
+    # evolution-ews contains .so files loaded by evolution-data-server refering
+    # schemas from evolution. evolution-data-server is not wrapped with
+    # evolution's schemas because it would be a circular dependency with
+    # evolution.
+    (substituteAll {
+      src = ./hardcode-gsettings.patch;
+      evo = glib.makeSchemaPath evolution evolution.name;
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     gettext
@@ -50,10 +64,26 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "evolution-ews";
-      versionPolicy = "odd-unstable";
+    hardcodeGsettingsPatch = glib.mkHardcodeGsettingsPatch {
+      inherit src;
+      glib-schema-to-var = {
+        "org.gnome.evolution.mail" = "evo";
+        "org.gnome.evolution.calendar" = "evo";
+      };
     };
+
+    updateScript =
+      let
+        updateSource = gnome.updateScript {
+          packageName = "evolution-ews";
+          versionPolicy = "odd-unstable";
+        };
+        updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
+      in
+      _experimental-update-script-combinators.sequence [
+        updateSource
+        updatePatch
+      ];
   };
 
   meta = with lib; {