1 diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
2 index 5e65ec8..8ca28c6 100644
3 --- a/src/addressbook/libebook/e-book-client.c
4 +++ b/src/addressbook/libebook/e-book-client.c
5 @@ -1924,7 +1924,18 @@ e_book_client_get_self (ESourceRegistry *registry,
7 *out_client = book_client;
9 - settings = g_settings_new (SELF_UID_PATH_ID);
11 + g_autoptr(GSettingsSchemaSource) schema_source;
12 + g_autoptr(GSettingsSchema) schema;
13 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
14 + g_settings_schema_source_get_default(),
17 + schema = g_settings_schema_source_lookup(schema_source,
20 + settings = g_settings_new_full(schema, NULL, NULL);
22 uid = g_settings_get_string (settings, SELF_UID_KEY);
23 g_object_unref (settings);
25 @@ -1992,7 +2003,18 @@ e_book_client_set_self (EBookClient *client,
26 g_return_val_if_fail (
27 e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE);
29 - settings = g_settings_new (SELF_UID_PATH_ID);
31 + g_autoptr(GSettingsSchemaSource) schema_source;
32 + g_autoptr(GSettingsSchema) schema;
33 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
34 + g_settings_schema_source_get_default(),
37 + schema = g_settings_schema_source_lookup(schema_source,
40 + settings = g_settings_new_full(schema, NULL, NULL);
42 g_settings_set_string (
43 settings, SELF_UID_KEY,
44 e_contact_get_const (contact, E_CONTACT_UID));
45 @@ -2028,8 +2050,18 @@ e_book_client_is_self (EContact *contact)
46 * unfortunately the API doesn't allow that.
48 g_mutex_lock (&mutex);
50 - settings = g_settings_new (SELF_UID_PATH_ID);
52 + g_autoptr(GSettingsSchemaSource) schema_source;
53 + g_autoptr(GSettingsSchema) schema;
54 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
55 + g_settings_schema_source_get_default(),
58 + schema = g_settings_schema_source_lookup(schema_source,
61 + settings = g_settings_new_full(schema, NULL, NULL);
63 uid = g_settings_get_string (settings, SELF_UID_KEY);
64 g_mutex_unlock (&mutex);
66 diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
67 index e85a56b..59d3fe2 100644
68 --- a/src/addressbook/libebook/e-book.c
69 +++ b/src/addressbook/libebook/e-book.c
70 @@ -2587,7 +2587,18 @@ e_book_get_self (ESourceRegistry *registry,
74 - settings = g_settings_new (SELF_UID_PATH_ID);
76 + g_autoptr(GSettingsSchemaSource) schema_source;
77 + g_autoptr(GSettingsSchema) schema;
78 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
79 + g_settings_schema_source_get_default(),
82 + schema = g_settings_schema_source_lookup(schema_source,
85 + settings = g_settings_new_full(schema, NULL, NULL);
87 uid = g_settings_get_string (settings, SELF_UID_KEY);
88 g_object_unref (settings);
90 @@ -2642,7 +2653,18 @@ e_book_set_self (EBook *book,
91 g_return_val_if_fail (E_IS_BOOK (book), FALSE);
92 g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
94 - settings = g_settings_new (SELF_UID_PATH_ID);
96 + g_autoptr(GSettingsSchemaSource) schema_source;
97 + g_autoptr(GSettingsSchema) schema;
98 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
99 + g_settings_schema_source_get_default(),
102 + schema = g_settings_schema_source_lookup(schema_source,
105 + settings = g_settings_new_full(schema, NULL, NULL);
107 g_settings_set_string (
108 settings, SELF_UID_KEY,
109 e_contact_get_const (contact, E_CONTACT_UID));
110 @@ -2670,7 +2692,18 @@ e_book_is_self (EContact *contact)
112 g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
114 - settings = g_settings_new (SELF_UID_PATH_ID);
116 + g_autoptr(GSettingsSchemaSource) schema_source;
117 + g_autoptr(GSettingsSchema) schema;
118 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
119 + g_settings_schema_source_get_default(),
122 + schema = g_settings_schema_source_lookup(schema_source,
125 + settings = g_settings_new_full(schema, NULL, NULL);
127 uid = g_settings_get_string (settings, SELF_UID_KEY);
128 g_object_unref (settings);
130 diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c b/src/addressbook/libedata-book/e-book-meta-backend.c
131 index 5b4debf..77c8d9c 100644
132 --- a/src/addressbook/libedata-book/e-book-meta-backend.c
133 +++ b/src/addressbook/libedata-book/e-book-meta-backend.c
134 @@ -144,7 +144,18 @@ ebmb_is_power_saver_enabled (void)
136 gboolean enabled = FALSE;
138 - settings = g_settings_new ("org.gnome.evolution-data-server");
140 + g_autoptr(GSettingsSchemaSource) schema_source;
141 + g_autoptr(GSettingsSchema) schema;
142 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
143 + g_settings_schema_source_get_default(),
146 + schema = g_settings_schema_source_lookup(schema_source,
147 + "org.gnome.evolution-data-server",
149 + settings = g_settings_new_full(schema, NULL, NULL);
152 if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
153 GPowerProfileMonitor *power_monitor;
154 diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
155 index 43bd383..4dce824 100644
156 --- a/src/calendar/backends/contacts/e-cal-backend-contacts.c
157 +++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c
158 @@ -1369,7 +1369,18 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
159 (GDestroyNotify) g_free,
160 (GDestroyNotify) contact_record_free);
162 - cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
164 + g_autoptr(GSettingsSchemaSource) schema_source;
165 + g_autoptr(GSettingsSchema) schema;
166 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
167 + g_settings_schema_source_get_default(),
170 + schema = g_settings_schema_source_lookup(schema_source,
171 + "org.gnome.evolution-data-server.calendar",
173 + cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
175 cbc->priv->notifyid = 0;
176 cbc->priv->update_alarms_id = 0;
177 cbc->priv->alarm_enabled = FALSE;
178 diff --git a/src/calendar/backends/file/e-cal-backend-file.c b/src/calendar/backends/file/e-cal-backend-file.c
179 index 2525856..7ecc1a8 100644
180 --- a/src/calendar/backends/file/e-cal-backend-file.c
181 +++ b/src/calendar/backends/file/e-cal-backend-file.c
182 @@ -3682,7 +3682,20 @@ e_cal_backend_file_receive_objects (ECalBackendSync *backend,
186 - settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
188 + g_autoptr(GSettingsSchemaSource) schema_source;
189 + g_autoptr(GSettingsSchema) schema;
190 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
191 + g_settings_schema_source_get_default(),
194 + schema = g_settings_schema_source_lookup(schema_source,
195 + "org.gnome.evolution-data-server.calendar",
197 + settings = g_settings_new_full(schema,
201 can_delete = g_settings_get_boolean (settings, "delete-meeting-on-decline");
202 g_clear_object (&settings);
204 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
205 index 44ba49c..dfac2a2 100644
206 --- a/src/calendar/libecal/e-reminder-watcher.c
207 +++ b/src/calendar/libecal/e-reminder-watcher.c
208 @@ -2826,8 +2826,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
210 watcher->priv = e_reminder_watcher_get_instance_private (watcher);
211 watcher->priv->cancellable = g_cancellable_new ();
212 - watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
213 - watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface");
215 + g_autoptr(GSettingsSchemaSource) schema_source;
216 + g_autoptr(GSettingsSchema) schema;
217 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
218 + g_settings_schema_source_get_default(),
221 + schema = g_settings_schema_source_lookup(schema_source,
222 + "org.gnome.evolution-data-server.calendar",
224 + watcher->priv->settings = g_settings_new_full(schema, NULL,
228 + g_autoptr(GSettingsSchemaSource) schema_source;
229 + g_autoptr(GSettingsSchema) schema;
230 + schema_source = g_settings_schema_source_new_from_directory("@GDS@",
231 + g_settings_schema_source_get_default(),
234 + schema = g_settings_schema_source_lookup(schema_source,
235 + "org.gnome.desktop.interface",
237 + watcher->priv->desktop_settings = g_settings_new_full(schema,
241 if (watcher->priv->desktop_settings) {
242 g_signal_connect_object (
243 watcher->priv->desktop_settings,
244 diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
245 index e0e9169..a44f52c 100644
246 --- a/src/calendar/libedata-cal/e-cal-meta-backend.c
247 +++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
248 @@ -156,7 +156,18 @@ ecmb_is_power_saver_enabled (void)
250 gboolean enabled = FALSE;
252 - settings = g_settings_new ("org.gnome.evolution-data-server");
254 + g_autoptr(GSettingsSchemaSource) schema_source;
255 + g_autoptr(GSettingsSchema) schema;
256 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
257 + g_settings_schema_source_get_default(),
260 + schema = g_settings_schema_source_lookup(schema_source,
261 + "org.gnome.evolution-data-server",
263 + settings = g_settings_new_full(schema, NULL, NULL);
266 if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
267 GPowerProfileMonitor *power_monitor;
268 @@ -2627,7 +2638,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
272 - settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
274 + g_autoptr(GSettingsSchemaSource) schema_source;
275 + g_autoptr(GSettingsSchema) schema;
276 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
277 + g_settings_schema_source_get_default(),
280 + schema = g_settings_schema_source_lookup(schema_source,
281 + "org.gnome.evolution-data-server.calendar",
283 + settings = g_settings_new_full(schema,
287 is_declined = g_settings_get_boolean (settings, "delete-meeting-on-decline");
288 g_clear_object (&settings);
290 diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
291 index d5a0823..2ae03f8 100644
292 --- a/src/camel/camel-cipher-context.c
293 +++ b/src/camel/camel-cipher-context.c
294 @@ -1631,7 +1631,18 @@ camel_cipher_can_load_photos (void)
296 gboolean load_photos;
298 - settings = g_settings_new ("org.gnome.evolution-data-server");
300 + g_autoptr(GSettingsSchemaSource) schema_source;
301 + g_autoptr(GSettingsSchema) schema;
302 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
303 + g_settings_schema_source_get_default(),
306 + schema = g_settings_schema_source_lookup(schema_source,
307 + "org.gnome.evolution-data-server",
309 + settings = g_settings_new_full(schema, NULL, NULL);
311 load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
312 g_clear_object (&settings);
314 diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
315 index cceba4a..d3c4da6 100644
316 --- a/src/camel/camel-gpg-context.c
317 +++ b/src/camel/camel-gpg-context.c
318 @@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
322 - settings = g_settings_new ("org.gnome.evolution-data-server");
324 + g_autoptr(GSettingsSchemaSource) schema_source;
325 + g_autoptr(GSettingsSchema) schema;
326 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
327 + g_settings_schema_source_get_default(),
330 + schema = g_settings_schema_source_lookup(schema_source,
331 + "org.gnome.evolution-data-server",
333 + settings = g_settings_new_full(schema, NULL, NULL);
335 path = g_settings_get_string (settings, "camel-gpg-binary");
336 g_clear_object (&settings);
338 diff --git a/src/camel/camel-utils.c b/src/camel/camel-utils.c
339 index e61160c..b6553a4 100644
340 --- a/src/camel/camel-utils.c
341 +++ b/src/camel/camel-utils.c
342 @@ -362,7 +362,19 @@ void
343 _camel_utils_initialize (void)
345 G_LOCK (mi_user_headers);
346 - mi_user_headers_settings = g_settings_new ("org.gnome.evolution-data-server");
348 + g_autoptr(GSettingsSchemaSource) schema_source;
349 + g_autoptr(GSettingsSchema) schema;
350 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
351 + g_settings_schema_source_get_default(),
354 + schema = g_settings_schema_source_lookup(schema_source,
355 + "org.gnome.evolution-data-server",
357 + mi_user_headers_settings = g_settings_new_full(schema, NULL,
360 g_signal_connect (mi_user_headers_settings, "changed::camel-message-info-user-headers",
361 G_CALLBACK (mi_user_headers_settings_changed_cb), NULL);
362 G_UNLOCK (mi_user_headers);
363 diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
364 index 56429a9..a9cc62c 100644
365 --- a/src/camel/providers/imapx/camel-imapx-server.c
366 +++ b/src/camel/providers/imapx/camel-imapx-server.c
367 @@ -5682,7 +5682,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
368 if (do_old_flags_update) {
369 GSettings *eds_settings;
371 - eds_settings = g_settings_new ("org.gnome.evolution-data-server");
373 + g_autoptr(GSettingsSchemaSource) schema_source;
374 + g_autoptr(GSettingsSchema) schema;
375 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
376 + g_settings_schema_source_get_default(),
379 + schema = g_settings_schema_source_lookup(schema_source,
380 + "org.gnome.evolution-data-server",
382 + eds_settings = g_settings_new_full(schema, NULL, NULL);
385 if (g_settings_get_boolean (eds_settings, "limit-operations-in-power-saver-mode")) {
386 GPowerProfileMonitor *power_monitor;
387 diff --git a/src/camel/providers/smtp/camel-smtp-transport.c b/src/camel/providers/smtp/camel-smtp-transport.c
388 index 6556f1e..90f0a5e 100644
389 --- a/src/camel/providers/smtp/camel-smtp-transport.c
390 +++ b/src/camel/providers/smtp/camel-smtp-transport.c
391 @@ -1471,7 +1471,18 @@ smtp_helo (CamelSmtpTransport *transport,
392 transport->authtypes = NULL;
395 - settings = g_settings_new ("org.gnome.evolution-data-server");
397 + g_autoptr(GSettingsSchemaSource) schema_source;
398 + g_autoptr(GSettingsSchema) schema;
399 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
400 + g_settings_schema_source_get_default(),
403 + schema = g_settings_schema_source_lookup(schema_source,
404 + "org.gnome.evolution-data-server",
406 + settings = g_settings_new_full(schema, NULL, NULL);
408 name = g_settings_get_string (settings, "camel-smtp-helo-argument");
409 g_clear_object (&settings);
411 diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
412 index 188f276..939f89b 100644
413 --- a/src/libedataserver/e-network-monitor.c
414 +++ b/src/libedataserver/e-network-monitor.c
415 @@ -256,7 +256,18 @@ e_network_monitor_constructed (GObject *object)
416 /* Chain up to parent's method. */
417 G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object);
419 - settings = g_settings_new ("org.gnome.evolution-data-server");
421 + g_autoptr(GSettingsSchemaSource) schema_source;
422 + g_autoptr(GSettingsSchema) schema;
423 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
424 + g_settings_schema_source_get_default(),
427 + schema = g_settings_schema_source_lookup(schema_source,
428 + "org.gnome.evolution-data-server",
430 + settings = g_settings_new_full(schema, NULL, NULL);
433 settings, "network-monitor-gio-name",
435 diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
436 index 1453410..a3f06b0 100644
437 --- a/src/libedataserver/e-oauth2-service-google.c
438 +++ b/src/libedataserver/e-oauth2-service-google.c
439 @@ -72,7 +72,18 @@ eos_google_read_settings (EOAuth2Service *service,
443 - settings = g_settings_new ("org.gnome.evolution-data-server");
445 + g_autoptr(GSettingsSchemaSource) schema_source;
446 + g_autoptr(GSettingsSchema) schema;
447 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
448 + g_settings_schema_source_get_default(),
451 + schema = g_settings_schema_source_lookup(schema_source,
452 + "org.gnome.evolution-data-server",
454 + settings = g_settings_new_full(schema, NULL, NULL);
456 value = g_settings_get_string (settings, key_name);
457 g_object_unref (settings);
459 diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
460 index 734f194..5b05077 100644
461 --- a/src/libedataserver/e-oauth2-service-outlook.c
462 +++ b/src/libedataserver/e-oauth2-service-outlook.c
463 @@ -75,7 +75,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
467 - settings = g_settings_new ("org.gnome.evolution-data-server");
469 + g_autoptr(GSettingsSchemaSource) schema_source;
470 + g_autoptr(GSettingsSchema) schema;
471 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
472 + g_settings_schema_source_get_default(),
475 + schema = g_settings_schema_source_lookup(schema_source,
476 + "org.gnome.evolution-data-server",
478 + settings = g_settings_new_full(schema, NULL, NULL);
480 value = g_settings_get_string (settings, key_name);
481 g_object_unref (settings);
483 diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c
484 index 3a9ce9c..f96b840 100644
485 --- a/src/libedataserver/e-oauth2-service-yahoo.c
486 +++ b/src/libedataserver/e-oauth2-service-yahoo.c
487 @@ -67,7 +67,18 @@ eos_yahoo_read_settings (EOAuth2Service *service,
491 - settings = g_settings_new ("org.gnome.evolution-data-server");
493 + g_autoptr(GSettingsSchemaSource) schema_source;
494 + g_autoptr(GSettingsSchema) schema;
495 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
496 + g_settings_schema_source_get_default(),
499 + schema = g_settings_schema_source_lookup(schema_source,
500 + "org.gnome.evolution-data-server",
502 + settings = g_settings_new_full(schema, NULL, NULL);
504 value = g_settings_get_string (settings, key_name);
505 g_object_unref (settings);
507 diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
508 index af59b0b..0c7e75e 100644
509 --- a/src/libedataserver/e-oauth2-service.c
510 +++ b/src/libedataserver/e-oauth2-service.c
511 @@ -94,7 +94,18 @@ eos_default_guess_can_process (EOAuth2Service *service,
512 name_len = strlen (name);
513 hostname_len = strlen (hostname);
515 - settings = g_settings_new ("org.gnome.evolution-data-server");
517 + g_autoptr(GSettingsSchemaSource) schema_source;
518 + g_autoptr(GSettingsSchema) schema;
519 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
520 + g_settings_schema_source_get_default(),
523 + schema = g_settings_schema_source_lookup(schema_source,
524 + "org.gnome.evolution-data-server",
526 + settings = g_settings_new_full(schema, NULL, NULL);
528 values = g_settings_get_strv (settings, "oauth2-services-hint");
529 g_object_unref (settings);
531 diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
532 index 1539f8b..77cf123 100644
533 --- a/src/libedataserver/e-source-registry.c
534 +++ b/src/libedataserver/e-source-registry.c
535 @@ -1754,7 +1754,19 @@ e_source_registry_init (ESourceRegistry *registry)
537 g_mutex_init (®istry->priv->sources_lock);
539 - registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
541 + g_autoptr(GSettingsSchemaSource) schema_source;
542 + g_autoptr(GSettingsSchema) schema;
543 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
544 + g_settings_schema_source_get_default(),
547 + schema = g_settings_schema_source_lookup(schema_source,
550 + registry->priv->settings = g_settings_new_full(schema, NULL,
555 registry->priv->settings, "changed",
556 diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
557 index 14b6481..7149b74 100644
558 --- a/src/libedataserverui/e-reminders-widget.c
559 +++ b/src/libedataserverui/e-reminders-widget.c
560 @@ -1986,7 +1986,19 @@ static void
561 e_reminders_widget_init (ERemindersWidget *reminders)
563 reminders->priv = e_reminders_widget_get_instance_private (reminders);
564 - reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
566 + g_autoptr(GSettingsSchemaSource) schema_source;
567 + g_autoptr(GSettingsSchema) schema;
568 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
569 + g_settings_schema_source_get_default(),
572 + schema = g_settings_schema_source_lookup(schema_source,
573 + "org.gnome.evolution-data-server.calendar",
575 + reminders->priv->settings = g_settings_new_full(schema, NULL,
578 reminders->priv->cancellable = g_cancellable_new ();
579 reminders->priv->is_empty = TRUE;
580 reminders->priv->is_mapped = FALSE;
581 diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
582 index 6f03053..b5db6b2 100644
583 --- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
584 +++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
585 @@ -706,7 +706,18 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve
586 gchar *autoconfig_directory;
589 - settings = g_settings_new ("org.gnome.evolution-data-server");
591 + g_autoptr(GSettingsSchemaSource) schema_source;
592 + g_autoptr(GSettingsSchema) schema;
593 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
594 + g_settings_schema_source_get_default(),
597 + schema = g_settings_schema_source_lookup(schema_source,
598 + "org.gnome.evolution-data-server",
600 + settings = g_settings_new_full(schema, NULL, NULL);
603 autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
605 diff --git a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
606 index d531cb9..c96f1d5 100644
607 --- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
608 +++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
609 @@ -61,7 +61,18 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server)
610 extension_name = E_SOURCE_EXTENSION_PROXY;
611 extension = e_source_get_extension (source, extension_name);
613 - settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
615 + g_autoptr(GSettingsSchemaSource) schema_source;
616 + g_autoptr(GSettingsSchema) schema;
617 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
618 + g_settings_schema_source_get_default(),
621 + schema = g_settings_schema_source_lookup(schema_source,
622 + NETWORK_CONFIG_SCHEMA_ID,
624 + settings = g_settings_new_full(schema, NULL, NULL);
627 switch (g_settings_get_int (settings, "proxy-type")) {
629 diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
630 index 1c0a113..6b41423 100644
631 --- a/src/services/evolution-source-registry/evolution-source-registry.c
632 +++ b/src/services/evolution-source-registry/evolution-source-registry.c
633 @@ -181,7 +181,18 @@ main (gint argc,
637 - settings = g_settings_new ("org.gnome.evolution-data-server");
639 + g_autoptr(GSettingsSchemaSource) schema_source;
640 + g_autoptr(GSettingsSchema) schema;
641 + schema_source = g_settings_schema_source_new_from_directory("@EDS@",
642 + g_settings_schema_source_get_default(),
645 + schema = g_settings_schema_source_lookup(schema_source,
646 + "org.gnome.evolution-data-server",
648 + settings = g_settings_new_full(schema, NULL, NULL);
651 if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
652 g_settings_set_boolean (settings, "migrated", TRUE);