diff options
Diffstat (limited to 'pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix')
-rw-r--r-- | pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix | 36 |
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; { |