From 4062d9400cac2f80bc9f0ee92be979fbefef1037 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 12 Sep 2023 01:45:49 +0800 Subject: [PATCH] =?UTF-8?q?evolution-data-server:=203.49.2=20=E2=86=92=203?= =?UTF-8?q?.49.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Changelog-reviewed-by: Jan Tojnar --- .../core/evolution-data-server/default.nix | 23 +++++++++---- .../hardcode-gsettings.patch | 33 ++++++++++++++----- 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 b22ec3724854..cfba4be6c726 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 8781ebd586ef..1c875a84e5bb 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,