diff options
author | Bobby Rong <rjl931189261@126.com> | 2023-09-12 01:45:49 +0800 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2023-11-21 08:42:08 +0100 |
commit | 4062d9400cac2f80bc9f0ee92be979fbefef1037 (patch) | |
tree | 97e5bfa576cf60417d659195e02ab66343cb96db | |
parent | 3c033267d81d3e21f36336337542420e302ff4a8 (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.nix | 23 | ||||
-rw-r--r-- | pkgs/desktops/gnome/core/evolution-data-server/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 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, |