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 1 { stdenv 2 2 , lib 3 - , fetchzip 3 + , fetchurl 4 4 , substituteAll 5 5 , pkg-config 6 6 , gnome ··· 55 55 56 56 outputs = [ "out" "dev" ]; 57 57 58 - src = fetchzip { 58 + src = fetchurl { 59 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 - ''; 60 + sha256 = "kfT/w4objS/ok5g0RJrFQcC/9KObRE7cKpUpNEoo6Yo="; 68 61 }; 69 62 70 63 patches = [ ··· 72 65 src = ./fix-paths.patch; 73 66 inherit tzdata; 74 67 }) 68 + 69 + # Avoid using wrapper function, which the hardcode gsettings 70 + # patch generator cannot handle. 71 + ./drop-tentative-settings-constructor.patch 75 72 ]; 76 73 77 74 prePatch = '' ··· 169 166 "org.gnome.evolution-data-server" = "EDS"; 170 167 "org.gnome.desktop.interface" = "GDS"; 171 168 }; 172 - inherit src; 169 + inherit src patches; 173 170 }; 174 171 updateScript = 175 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 202 g_clear_object (&settings); 203 203 } 204 204 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c 205 - index 2dbdd99..a6cf45c 100644 205 + index c01e8b2..59fb4c4 100644 206 206 --- a/src/calendar/libecal/e-reminder-watcher.c 207 207 +++ b/src/calendar/libecal/e-reminder-watcher.c 208 - @@ -2646,8 +2646,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher) 208 + @@ -2626,8 +2626,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher) 209 209 210 210 watcher->priv = e_reminder_watcher_get_instance_private (watcher); 211 211 watcher->priv->cancellable = g_cancellable_new ();