evolution-data-server: Actually drop tentative settings constructor

Since makeHardcodeGsettingsPatch now supports applying patches, let's
make use of it. Dropping e_reminder_watcher_load_settings_tentative
entirely brings us benefits that the build will fail loudly when new
calls appear.

We apply hardcode-gsettings.patch at the very end so all the patches
should apply fine.

authored by Bobby Rong and committed by Jan Tojnar dd011a2e 549c51d5

+50 -13
+8 -11
pkgs/desktops/gnome/core/evolution-data-server/default.nix
··· 1 { stdenv 2 , lib 3 - , fetchzip 4 , substituteAll 5 , pkg-config 6 , gnome ··· 55 56 outputs = [ "out" "dev" ]; 57 58 - src = fetchzip { 59 url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 60 - sha256 = "7TXEArGpnOxfQGnMtacYwHjCyH15RAjJW09lvVo1uDI="; 61 - 62 - postFetch = '' 63 - # Very dirty hack to make update script happy. 64 - substituteInPlace $out/src/calendar/libecal/e-reminder-watcher.c \ 65 - --replace "settings = g_settings_new (schema_id)" "settings = NULL" \ 66 - --replace 'e_reminder_watcher_load_settings_tentative ("' 'g_settings_new ("' 67 - ''; 68 }; 69 70 patches = [ ··· 72 src = ./fix-paths.patch; 73 inherit tzdata; 74 }) 75 ]; 76 77 prePatch = '' ··· 169 "org.gnome.evolution-data-server" = "EDS"; 170 "org.gnome.desktop.interface" = "GDS"; 171 }; 172 - inherit src; 173 }; 174 updateScript = 175 let
··· 1 { stdenv 2 , lib 3 + , fetchurl 4 , substituteAll 5 , pkg-config 6 , gnome ··· 55 56 outputs = [ "out" "dev" ]; 57 58 + src = fetchurl { 59 url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 60 + sha256 = "kfT/w4objS/ok5g0RJrFQcC/9KObRE7cKpUpNEoo6Yo="; 61 }; 62 63 patches = [ ··· 65 src = ./fix-paths.patch; 66 inherit tzdata; 67 }) 68 + 69 + # Avoid using wrapper function, which the hardcode gsettings 70 + # patch generator cannot handle. 71 + ./drop-tentative-settings-constructor.patch 72 ]; 73 74 prePatch = '' ··· 166 "org.gnome.evolution-data-server" = "EDS"; 167 "org.gnome.desktop.interface" = "GDS"; 168 }; 169 + inherit src patches; 170 }; 171 updateScript = 172 let
+40
pkgs/desktops/gnome/core/evolution-data-server/drop-tentative-settings-constructor.patch
···
··· 1 + diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c 2 + index f1614f2..c01e8b2 100644 3 + --- a/src/calendar/libecal/e-reminder-watcher.c 4 + +++ b/src/calendar/libecal/e-reminder-watcher.c 5 + @@ -2609,26 +2609,6 @@ e_reminder_watcher_load_clock_format (EReminderWatcher *watcher) 6 + g_free (clock_format); 7 + } 8 + 9 + -static GSettings* 10 + -e_reminder_watcher_load_settings_tentative (const gchar *schema_id) 11 + -{ 12 + - GSettings *settings; 13 + - GSettingsSchemaSource *schema_source; 14 + - GSettingsSchema *schema; 15 + - 16 + - schema_source = g_settings_schema_source_get_default (); 17 + - schema = g_settings_schema_source_lookup (schema_source, schema_id, TRUE); 18 + - 19 + - if (schema == NULL) { 20 + - return NULL; 21 + - } 22 + - 23 + - settings = g_settings_new (schema_id); 24 + - /* only unref after g_settings_new() to avoid needless realloc */ 25 + - g_settings_schema_unref (schema); 26 + - return settings; 27 + -} 28 + - 29 + static void 30 + e_reminder_watcher_init (EReminderWatcher *watcher) 31 + { 32 + @@ -2647,7 +2627,7 @@ e_reminder_watcher_init (EReminderWatcher *watcher) 33 + watcher->priv = e_reminder_watcher_get_instance_private (watcher); 34 + watcher->priv->cancellable = g_cancellable_new (); 35 + watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar"); 36 + - watcher->priv->desktop_settings = e_reminder_watcher_load_settings_tentative ("org.gnome.desktop.interface"); 37 + + watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface"); 38 + if (watcher->priv->desktop_settings) { 39 + g_signal_connect_object ( 40 + watcher->priv->desktop_settings,
+2 -2
pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
··· 202 g_clear_object (&settings); 203 } 204 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c 205 - index 2dbdd99..a6cf45c 100644 206 --- a/src/calendar/libecal/e-reminder-watcher.c 207 +++ b/src/calendar/libecal/e-reminder-watcher.c 208 - @@ -2646,8 +2646,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher) 209 210 watcher->priv = e_reminder_watcher_get_instance_private (watcher); 211 watcher->priv->cancellable = g_cancellable_new ();
··· 202 g_clear_object (&settings); 203 } 204 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c 205 + index c01e8b2..59fb4c4 100644 206 --- a/src/calendar/libecal/e-reminder-watcher.c 207 +++ b/src/calendar/libecal/e-reminder-watcher.c 208 + @@ -2626,8 +2626,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher) 209 210 watcher->priv = e_reminder_watcher_get_instance_private (watcher); 211 watcher->priv->cancellable = g_cancellable_new ();