about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2023-09-12 01:45:49 +0800
committerJan Tojnar <jtojnar@gmail.com>2023-11-21 08:42:08 +0100
commit4062d9400cac2f80bc9f0ee92be979fbefef1037 (patch)
tree97e5bfa576cf60417d659195e02ab66343cb96db
parent3c033267d81d3e21f36336337542420e302ff4a8 (diff)
evolution-data-server: 3.49.2 → 3.49.3
https://gitlab.gnome.org/GNOME/evolution-data-server/-/compare/3.49.2...3.49.3

libsecret-1 is in Requires.private instead of Requires, I am no longer propagating it.

https://github.com/GNOME/evolution-data-server/commit/2bd22706d8823238fc6584f7c3a6a6b5ff1acc7e

Apply org.gnome.desktop.interface a non-optional because update script is not happy.
But the current solution is quite dirty, I imagine we will need to re-check usage of
e_reminder_watcher_load_settings_tentative on every bump now.

https://github.com/GNOME/evolution-data-server/commit/007eda01e27788827a3776d2c5cc8ca3709558c6

Changelog-reviewed-by: Bobby Rong <rjl931189261@126.com>
Changelog-reviewed-by: Jan Tojnar <jtojnar@gmail.com>
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix23
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch33
2 files changed, 40 insertions, 16 deletions
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index b22ec37248541..cfba4be6c726e 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchurl
+, fetchzip
 , substituteAll
 , pkg-config
 , gnome
@@ -23,6 +23,7 @@
 , gperf
 , wrapGAppsHook
 , glib-networking
+, gsettings-desktop-schemas
 , pcre
 , vala
 , cmake
@@ -50,13 +51,20 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.49.2";
+  version = "3.49.3";
 
   outputs = [ "out" "dev" ];
 
-  src = fetchurl {
+  src = fetchzip {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "qSpw64nbRPRt5Ss3avusRkzP5Q/xPz5frzx6VkAMf7Q=";
+    sha256 = "ZhvSPatxG/gjXqtKeFXEpZ4jA9psTKkhl9U9xTKb7hY=";
+
+    postFetch = ''
+      # Very dirty hack to make update script happy.
+      substituteInPlace $out/src/calendar/libecal/e-reminder-watcher.c \
+        --replace "settings = g_settings_new (schema_id)" "settings = NULL" \
+        --replace 'e_reminder_watcher_load_settings_tentative ("' 'g_settings_new ("'
+    '';
   };
 
   patches = [
@@ -68,7 +76,8 @@ stdenv.mkDerivation rec {
 
   prePatch = ''
     substitute ${./hardcode-gsettings.patch} hardcode-gsettings.patch \
-      --subst-var-by EDS ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+      --subst-var-by EDS ${glib.makeSchemaPath "$out" "${pname}-${version}"} \
+      --subst-var-by GDS ${glib.getSchemaPath gsettings-desktop-schemas}
     patches="$patches $PWD/hardcode-gsettings.patch"
   '';
 
@@ -86,6 +95,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
+    libsecret
     libsoup_3
     gnome-online-accounts
     p11-kit
@@ -116,7 +126,6 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     db
-    libsecret
     nss
     nspr
     libical
@@ -158,7 +167,7 @@ stdenv.mkDerivation rec {
         "org.gnome.evolution-data-server.addressbook" = "EDS";
         "org.gnome.evolution-data-server.calendar" = "EDS";
         "org.gnome.evolution-data-server" = "EDS";
-
+        "org.gnome.desktop.interface" = "GDS";
       };
       inherit src;
     };
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
index 8781ebd586efe..1c875a84e5bbb 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
+++ b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
@@ -202,14 +202,15 @@ index 2525856..7ecc1a8 100644
  				g_clear_object (&settings);
  			}
 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
-index 5a08490..34c51f4 100644
+index 2dbdd99..a6cf45c 100644
 --- a/src/calendar/libecal/e-reminder-watcher.c
 +++ b/src/calendar/libecal/e-reminder-watcher.c
-@@ -2592,7 +2592,19 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
+@@ -2646,8 +2646,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
  
  	watcher->priv = e_reminder_watcher_get_instance_private (watcher);
  	watcher->priv->cancellable = g_cancellable_new ();
 -	watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
+-	watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface");
 +	{
 +		g_autoptr(GSettingsSchemaSource) schema_source;
 +		g_autoptr(GSettingsSchema) schema;
@@ -223,9 +224,23 @@ index 5a08490..34c51f4 100644
 +		watcher->priv->settings = g_settings_new_full(schema, NULL,
 +							      NULL);
 +	}
- 	watcher->priv->scheduled = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_reminder_watcher_free_rd_slist);
- 	watcher->priv->default_zone = e_cal_util_copy_timezone (zone);
- 	watcher->priv->timers_enabled = TRUE;
++	{
++		g_autoptr(GSettingsSchemaSource) schema_source;
++		g_autoptr(GSettingsSchema) schema;
++		schema_source = g_settings_schema_source_new_from_directory("@GDS@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.desktop.interface",
++							 FALSE);
++		watcher->priv->desktop_settings = g_settings_new_full(schema,
++								      NULL,
++								      NULL);
++	}
+ 	if (watcher->priv->desktop_settings) {
+ 		g_signal_connect_object (
+ 			watcher->priv->desktop_settings,
 diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
 index 27fa153..3679d72 100644
 --- a/src/calendar/libedata-cal/e-cal-meta-backend.c
@@ -297,7 +312,7 @@ index bef9188..ce92f6c 100644
  	g_clear_object (&settings);
  
 diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index fd7ec52..338a73b 100644
+index db5fc2e..162e00f 100644
 --- a/src/camel/camel-gpg-context.c
 +++ b/src/camel/camel-gpg-context.c
 @@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
@@ -346,10 +361,10 @@ index e61160c..b6553a4 100644
  		G_CALLBACK (mi_user_headers_settings_changed_cb), NULL);
  	G_UNLOCK (mi_user_headers);
 diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
-index 3180db6..ba3d679 100644
+index ef34665..59f294b 100644
 --- a/src/camel/providers/imapx/camel-imapx-server.c
 +++ b/src/camel/providers/imapx/camel-imapx-server.c
-@@ -5618,7 +5618,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
+@@ -5627,7 +5627,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
  	if (do_old_flags_update) {
  		GSettings *eds_settings;
  
@@ -490,7 +505,7 @@ index 3bb1071..199e822 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
-index 7eca355..795d822 100644
+index 2364f3e..e8f59f2 100644
 --- a/src/libedataserver/e-oauth2-service.c
 +++ b/src/libedataserver/e-oauth2-service.c
 @@ -94,7 +94,18 @@ eos_default_guess_can_process (EOAuth2Service *service,