1diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
2index 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,
6
7 *out_client = book_client;
8
9- settings = g_settings_new (SELF_UID_PATH_ID);
10+ {
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(),
15+ TRUE,
16+ NULL);
17+ schema = g_settings_schema_source_lookup(schema_source,
18+ SELF_UID_PATH_ID,
19+ FALSE);
20+ settings = g_settings_new_full(schema, NULL, NULL);
21+ }
22 uid = g_settings_get_string (settings, SELF_UID_KEY);
23 g_object_unref (settings);
24
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);
28
29- settings = g_settings_new (SELF_UID_PATH_ID);
30+ {
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(),
35+ TRUE,
36+ NULL);
37+ schema = g_settings_schema_source_lookup(schema_source,
38+ SELF_UID_PATH_ID,
39+ FALSE);
40+ settings = g_settings_new_full(schema, NULL, NULL);
41+ }
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.
47 */
48 g_mutex_lock (&mutex);
49- if (!settings)
50- settings = g_settings_new (SELF_UID_PATH_ID);
51+ if (!settings) {
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(),
56+ TRUE,
57+ NULL);
58+ schema = g_settings_schema_source_lookup(schema_source,
59+ SELF_UID_PATH_ID,
60+ FALSE);
61+ settings = g_settings_new_full(schema, NULL, NULL);
62+ }
63 uid = g_settings_get_string (settings, SELF_UID_KEY);
64 g_mutex_unlock (&mutex);
65
66diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
67index 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,
71 return FALSE;
72 }
73
74- settings = g_settings_new (SELF_UID_PATH_ID);
75+ {
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(),
80+ TRUE,
81+ NULL);
82+ schema = g_settings_schema_source_lookup(schema_source,
83+ SELF_UID_PATH_ID,
84+ FALSE);
85+ settings = g_settings_new_full(schema, NULL, NULL);
86+ }
87 uid = g_settings_get_string (settings, SELF_UID_KEY);
88 g_object_unref (settings);
89
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);
93
94- settings = g_settings_new (SELF_UID_PATH_ID);
95+ {
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(),
100+ TRUE,
101+ NULL);
102+ schema = g_settings_schema_source_lookup(schema_source,
103+ SELF_UID_PATH_ID,
104+ FALSE);
105+ settings = g_settings_new_full(schema, NULL, NULL);
106+ }
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)
111
112 g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
113
114- settings = g_settings_new (SELF_UID_PATH_ID);
115+ {
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(),
120+ TRUE,
121+ NULL);
122+ schema = g_settings_schema_source_lookup(schema_source,
123+ SELF_UID_PATH_ID,
124+ FALSE);
125+ settings = g_settings_new_full(schema, NULL, NULL);
126+ }
127 uid = g_settings_get_string (settings, SELF_UID_KEY);
128 g_object_unref (settings);
129
130diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c b/src/addressbook/libedata-book/e-book-meta-backend.c
131index 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)
135 GSettings *settings;
136 gboolean enabled = FALSE;
137
138- settings = g_settings_new ("org.gnome.evolution-data-server");
139+ {
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(),
144+ TRUE,
145+ NULL);
146+ schema = g_settings_schema_source_lookup(schema_source,
147+ "org.gnome.evolution-data-server",
148+ FALSE);
149+ settings = g_settings_new_full(schema, NULL, NULL);
150+ }
151
152 if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
153 GPowerProfileMonitor *power_monitor;
154diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
155index 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);
161
162- cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
163+ {
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(),
168+ TRUE,
169+ NULL);
170+ schema = g_settings_schema_source_lookup(schema_source,
171+ "org.gnome.evolution-data-server.calendar",
172+ FALSE);
173+ cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
174+ }
175 cbc->priv->notifyid = 0;
176 cbc->priv->update_alarms_id = 0;
177 cbc->priv->alarm_enabled = FALSE;
178diff --git a/src/calendar/backends/file/e-cal-backend-file.c b/src/calendar/backends/file/e-cal-backend-file.c
179index 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,
183 if (is_declined) {
184 GSettings *settings;
185
186- settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
187+ {
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(),
192+ TRUE,
193+ NULL);
194+ schema = g_settings_schema_source_lookup(schema_source,
195+ "org.gnome.evolution-data-server.calendar",
196+ FALSE);
197+ settings = g_settings_new_full(schema,
198+ NULL,
199+ NULL);
200+ }
201 can_delete = g_settings_get_boolean (settings, "delete-meeting-on-decline");
202 g_clear_object (&settings);
203 }
204diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
205index 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)
209
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");
214+ {
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(),
219+ TRUE,
220+ NULL);
221+ schema = g_settings_schema_source_lookup(schema_source,
222+ "org.gnome.evolution-data-server.calendar",
223+ FALSE);
224+ watcher->priv->settings = g_settings_new_full(schema, NULL,
225+ NULL);
226+ }
227+ {
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(),
232+ TRUE,
233+ NULL);
234+ schema = g_settings_schema_source_lookup(schema_source,
235+ "org.gnome.desktop.interface",
236+ FALSE);
237+ watcher->priv->desktop_settings = g_settings_new_full(schema,
238+ NULL,
239+ NULL);
240+ }
241 if (watcher->priv->desktop_settings) {
242 g_signal_connect_object (
243 watcher->priv->desktop_settings,
244diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
245index b9145af..350fcd3 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)
249 GSettings *settings;
250 gboolean enabled = FALSE;
251
252- settings = g_settings_new ("org.gnome.evolution-data-server");
253+ {
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(),
258+ TRUE,
259+ NULL);
260+ schema = g_settings_schema_source_lookup(schema_source,
261+ "org.gnome.evolution-data-server",
262+ FALSE);
263+ settings = g_settings_new_full(schema, NULL, NULL);
264+ }
265
266 if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
267 GPowerProfileMonitor *power_monitor;
268@@ -2632,7 +2643,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
269 if (is_declined) {
270 GSettings *settings;
271
272- settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
273+ {
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(),
278+ TRUE,
279+ NULL);
280+ schema = g_settings_schema_source_lookup(schema_source,
281+ "org.gnome.evolution-data-server.calendar",
282+ FALSE);
283+ settings = g_settings_new_full(schema,
284+ NULL,
285+ NULL);
286+ }
287 is_declined = g_settings_get_boolean (settings, "delete-meeting-on-decline");
288 g_clear_object (&settings);
289 }
290diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
291index 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)
295 GSettings *settings;
296 gboolean load_photos;
297
298- settings = g_settings_new ("org.gnome.evolution-data-server");
299+ {
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(),
304+ TRUE,
305+ NULL);
306+ schema = g_settings_schema_source_lookup(schema_source,
307+ "org.gnome.evolution-data-server",
308+ FALSE);
309+ settings = g_settings_new_full(schema, NULL, NULL);
310+ }
311 load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
312 g_clear_object (&settings);
313
314diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
315index cecd740..9a15180 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)
319 GSettings *settings;
320 gchar *path;
321
322- settings = g_settings_new ("org.gnome.evolution-data-server");
323+ {
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(),
328+ TRUE,
329+ NULL);
330+ schema = g_settings_schema_source_lookup(schema_source,
331+ "org.gnome.evolution-data-server",
332+ FALSE);
333+ settings = g_settings_new_full(schema, NULL, NULL);
334+ }
335 path = g_settings_get_string (settings, "camel-gpg-binary");
336 g_clear_object (&settings);
337
338diff --git a/src/camel/camel-utils.c b/src/camel/camel-utils.c
339index 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)
344 {
345 G_LOCK (mi_user_headers);
346- mi_user_headers_settings = g_settings_new ("org.gnome.evolution-data-server");
347+ {
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(),
352+ TRUE,
353+ NULL);
354+ schema = g_settings_schema_source_lookup(schema_source,
355+ "org.gnome.evolution-data-server",
356+ FALSE);
357+ mi_user_headers_settings = g_settings_new_full(schema, NULL,
358+ NULL);
359+ }
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);
363diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
364index bbf214b..bed39d2 100644
365--- a/src/camel/providers/imapx/camel-imapx-server.c
366+++ b/src/camel/providers/imapx/camel-imapx-server.c
367@@ -5661,7 +5661,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
368 if (do_old_flags_update) {
369 GSettings *eds_settings;
370
371- eds_settings = g_settings_new ("org.gnome.evolution-data-server");
372+ {
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(),
377+ TRUE,
378+ NULL);
379+ schema = g_settings_schema_source_lookup(schema_source,
380+ "org.gnome.evolution-data-server",
381+ FALSE);
382+ eds_settings = g_settings_new_full(schema, NULL, NULL);
383+ }
384
385 if (g_settings_get_boolean (eds_settings, "limit-operations-in-power-saver-mode")) {
386 GPowerProfileMonitor *power_monitor;
387diff --git a/src/camel/providers/smtp/camel-smtp-transport.c b/src/camel/providers/smtp/camel-smtp-transport.c
388index 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;
393 }
394
395- settings = g_settings_new ("org.gnome.evolution-data-server");
396+ {
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(),
401+ TRUE,
402+ NULL);
403+ schema = g_settings_schema_source_lookup(schema_source,
404+ "org.gnome.evolution-data-server",
405+ FALSE);
406+ settings = g_settings_new_full(schema, NULL, NULL);
407+ }
408 name = g_settings_get_string (settings, "camel-smtp-helo-argument");
409 g_clear_object (&settings);
410
411diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
412index 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);
418
419- settings = g_settings_new ("org.gnome.evolution-data-server");
420+ {
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(),
425+ TRUE,
426+ NULL);
427+ schema = g_settings_schema_source_lookup(schema_source,
428+ "org.gnome.evolution-data-server",
429+ FALSE);
430+ settings = g_settings_new_full(schema, NULL, NULL);
431+ }
432 g_settings_bind (
433 settings, "network-monitor-gio-name",
434 object, "gio-name",
435diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
436index 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,
440 if (!value) {
441 GSettings *settings;
442
443- settings = g_settings_new ("org.gnome.evolution-data-server");
444+ {
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(),
449+ TRUE,
450+ NULL);
451+ schema = g_settings_schema_source_lookup(schema_source,
452+ "org.gnome.evolution-data-server",
453+ FALSE);
454+ settings = g_settings_new_full(schema, NULL, NULL);
455+ }
456 value = g_settings_get_string (settings, key_name);
457 g_object_unref (settings);
458
459diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
460index 7633e93..2328048 100644
461--- a/src/libedataserver/e-oauth2-service-outlook.c
462+++ b/src/libedataserver/e-oauth2-service-outlook.c
463@@ -71,7 +71,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
464 if (!value) {
465 GSettings *settings;
466
467- settings = g_settings_new ("org.gnome.evolution-data-server");
468+ {
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(),
473+ TRUE,
474+ NULL);
475+ schema = g_settings_schema_source_lookup(schema_source,
476+ "org.gnome.evolution-data-server",
477+ FALSE);
478+ settings = g_settings_new_full(schema, NULL, NULL);
479+ }
480 value = g_settings_get_string (settings, key_name);
481 g_object_unref (settings);
482
483diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c
484index 3bb1071..199e822 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,
488 if (!value) {
489 GSettings *settings;
490
491- settings = g_settings_new ("org.gnome.evolution-data-server");
492+ {
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(),
497+ TRUE,
498+ NULL);
499+ schema = g_settings_schema_source_lookup(schema_source,
500+ "org.gnome.evolution-data-server",
501+ FALSE);
502+ settings = g_settings_new_full(schema, NULL, NULL);
503+ }
504 value = g_settings_get_string (settings, key_name);
505 g_object_unref (settings);
506
507diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
508index 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);
514
515- settings = g_settings_new ("org.gnome.evolution-data-server");
516+ {
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(),
521+ TRUE,
522+ NULL);
523+ schema = g_settings_schema_source_lookup(schema_source,
524+ "org.gnome.evolution-data-server",
525+ FALSE);
526+ settings = g_settings_new_full(schema, NULL, NULL);
527+ }
528 values = g_settings_get_strv (settings, "oauth2-services-hint");
529 g_object_unref (settings);
530
531diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
532index 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)
536
537 g_mutex_init (®istry->priv->sources_lock);
538
539- registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
540+ {
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(),
545+ TRUE,
546+ NULL);
547+ schema = g_settings_schema_source_lookup(schema_source,
548+ GSETTINGS_SCHEMA,
549+ FALSE);
550+ registry->priv->settings = g_settings_new_full(schema, NULL,
551+ NULL);
552+ }
553
554 g_signal_connect (
555 registry->priv->settings, "changed",
556diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
557index 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)
562 {
563 reminders->priv = e_reminders_widget_get_instance_private (reminders);
564- reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
565+ {
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(),
570+ TRUE,
571+ NULL);
572+ schema = g_settings_schema_source_lookup(schema_source,
573+ "org.gnome.evolution-data-server.calendar",
574+ FALSE);
575+ reminders->priv->settings = g_settings_new_full(schema, NULL,
576+ NULL);
577+ }
578 reminders->priv->cancellable = g_cancellable_new ();
579 reminders->priv->is_empty = TRUE;
580 reminders->priv->is_mapped = FALSE;
581diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
582index 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;
587 gint ii;
588
589- settings = g_settings_new ("org.gnome.evolution-data-server");
590+ {
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(),
595+ TRUE,
596+ NULL);
597+ schema = g_settings_schema_source_lookup(schema_source,
598+ "org.gnome.evolution-data-server",
599+ FALSE);
600+ settings = g_settings_new_full(schema, NULL, NULL);
601+ }
602
603 autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
604
605diff --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
606index 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);
612
613- settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
614+ {
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(),
619+ TRUE,
620+ NULL);
621+ schema = g_settings_schema_source_lookup(schema_source,
622+ NETWORK_CONFIG_SCHEMA_ID,
623+ FALSE);
624+ settings = g_settings_new_full(schema, NULL, NULL);
625+ }
626
627 switch (g_settings_get_int (settings, "proxy-type")) {
628 case 1:
629diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
630index 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,
634
635 reload:
636
637- settings = g_settings_new ("org.gnome.evolution-data-server");
638+ {
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(),
643+ TRUE,
644+ NULL);
645+ schema = g_settings_schema_source_lookup(schema_source,
646+ "org.gnome.evolution-data-server",
647+ FALSE);
648+ settings = g_settings_new_full(schema, NULL, NULL);
649+ }
650
651 if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
652 g_settings_set_boolean (settings, "migrated", TRUE);