1diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
2index 5e65ec8..2cae29d 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,20 @@ 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+ {
53+ g_autoptr(GSettingsSchemaSource) schema_source;
54+ g_autoptr(GSettingsSchema) schema;
55+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
56+ g_settings_schema_source_get_default(),
57+ TRUE,
58+ NULL);
59+ schema = g_settings_schema_source_lookup(schema_source,
60+ SELF_UID_PATH_ID,
61+ FALSE);
62+ settings = g_settings_new_full(schema, NULL, NULL);
63+ }
64+ }
65 uid = g_settings_get_string (settings, SELF_UID_KEY);
66 g_mutex_unlock (&mutex);
67
68diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
69index a9b68e3..6a13b1b 100644
70--- a/src/addressbook/libebook/e-book.c
71+++ b/src/addressbook/libebook/e-book.c
72@@ -2586,7 +2586,18 @@ e_book_get_self (ESourceRegistry *registry,
73 return FALSE;
74 }
75
76- settings = g_settings_new (SELF_UID_PATH_ID);
77+ {
78+ g_autoptr(GSettingsSchemaSource) schema_source;
79+ g_autoptr(GSettingsSchema) schema;
80+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
81+ g_settings_schema_source_get_default(),
82+ TRUE,
83+ NULL);
84+ schema = g_settings_schema_source_lookup(schema_source,
85+ SELF_UID_PATH_ID,
86+ FALSE);
87+ settings = g_settings_new_full(schema, NULL, NULL);
88+ }
89 uid = g_settings_get_string (settings, SELF_UID_KEY);
90 g_object_unref (settings);
91
92@@ -2641,7 +2652,18 @@ e_book_set_self (EBook *book,
93 g_return_val_if_fail (E_IS_BOOK (book), FALSE);
94 g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
95
96- settings = g_settings_new (SELF_UID_PATH_ID);
97+ {
98+ g_autoptr(GSettingsSchemaSource) schema_source;
99+ g_autoptr(GSettingsSchema) schema;
100+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
101+ g_settings_schema_source_get_default(),
102+ TRUE,
103+ NULL);
104+ schema = g_settings_schema_source_lookup(schema_source,
105+ SELF_UID_PATH_ID,
106+ FALSE);
107+ settings = g_settings_new_full(schema, NULL, NULL);
108+ }
109 g_settings_set_string (
110 settings, SELF_UID_KEY,
111 e_contact_get_const (contact, E_CONTACT_UID));
112@@ -2669,7 +2691,18 @@ e_book_is_self (EContact *contact)
113
114 g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
115
116- settings = g_settings_new (SELF_UID_PATH_ID);
117+ {
118+ g_autoptr(GSettingsSchemaSource) schema_source;
119+ g_autoptr(GSettingsSchema) schema;
120+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
121+ g_settings_schema_source_get_default(),
122+ TRUE,
123+ NULL);
124+ schema = g_settings_schema_source_lookup(schema_source,
125+ SELF_UID_PATH_ID,
126+ FALSE);
127+ settings = g_settings_new_full(schema, NULL, NULL);
128+ }
129 uid = g_settings_get_string (settings, SELF_UID_KEY);
130 g_object_unref (settings);
131
132diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c b/src/addressbook/libedata-book/e-book-meta-backend.c
133index 752f83f..eaa3dad 100644
134--- a/src/addressbook/libedata-book/e-book-meta-backend.c
135+++ b/src/addressbook/libedata-book/e-book-meta-backend.c
136@@ -145,7 +145,18 @@ ebmb_is_power_saver_enabled (void)
137 GSettings *settings;
138 gboolean enabled = FALSE;
139
140- settings = g_settings_new ("org.gnome.evolution-data-server");
141+ {
142+ g_autoptr(GSettingsSchemaSource) schema_source;
143+ g_autoptr(GSettingsSchema) schema;
144+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
145+ g_settings_schema_source_get_default(),
146+ TRUE,
147+ NULL);
148+ schema = g_settings_schema_source_lookup(schema_source,
149+ "org.gnome.evolution-data-server",
150+ FALSE);
151+ settings = g_settings_new_full(schema, NULL, NULL);
152+ }
153
154 if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
155 GPowerProfileMonitor *power_monitor;
156diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
157index 9f8646a..079aba9 100644
158--- a/src/calendar/backends/contacts/e-cal-backend-contacts.c
159+++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c
160@@ -1338,7 +1338,18 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
161 (GDestroyNotify) g_free,
162 (GDestroyNotify) contact_record_free);
163
164- cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
165+ {
166+ g_autoptr(GSettingsSchemaSource) schema_source;
167+ g_autoptr(GSettingsSchema) schema;
168+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
169+ g_settings_schema_source_get_default(),
170+ TRUE,
171+ NULL);
172+ schema = g_settings_schema_source_lookup(schema_source,
173+ "org.gnome.evolution-data-server.calendar",
174+ FALSE);
175+ cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
176+ }
177 cbc->priv->notifyid = 0;
178 cbc->priv->update_alarms_id = 0;
179 cbc->priv->alarm_enabled = FALSE;
180diff --git a/src/calendar/backends/file/e-cal-backend-file.c b/src/calendar/backends/file/e-cal-backend-file.c
181index 2525856..7ecc1a8 100644
182--- a/src/calendar/backends/file/e-cal-backend-file.c
183+++ b/src/calendar/backends/file/e-cal-backend-file.c
184@@ -3682,7 +3682,20 @@ e_cal_backend_file_receive_objects (ECalBackendSync *backend,
185 if (is_declined) {
186 GSettings *settings;
187
188- settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
189+ {
190+ g_autoptr(GSettingsSchemaSource) schema_source;
191+ g_autoptr(GSettingsSchema) schema;
192+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
193+ g_settings_schema_source_get_default(),
194+ TRUE,
195+ NULL);
196+ schema = g_settings_schema_source_lookup(schema_source,
197+ "org.gnome.evolution-data-server.calendar",
198+ FALSE);
199+ settings = g_settings_new_full(schema,
200+ NULL,
201+ NULL);
202+ }
203 can_delete = g_settings_get_boolean (settings, "delete-meeting-on-decline");
204 g_clear_object (&settings);
205 }
206diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
207index 026ae80..e3003c2 100644
208--- a/src/calendar/libecal/e-reminder-watcher.c
209+++ b/src/calendar/libecal/e-reminder-watcher.c
210@@ -2844,8 +2844,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
211
212 watcher->priv = e_reminder_watcher_get_instance_private (watcher);
213 watcher->priv->cancellable = g_cancellable_new ();
214- watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
215- watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface");
216+ {
217+ g_autoptr(GSettingsSchemaSource) schema_source;
218+ g_autoptr(GSettingsSchema) schema;
219+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
220+ g_settings_schema_source_get_default(),
221+ TRUE,
222+ NULL);
223+ schema = g_settings_schema_source_lookup(schema_source,
224+ "org.gnome.evolution-data-server.calendar",
225+ FALSE);
226+ watcher->priv->settings = g_settings_new_full(schema, NULL,
227+ NULL);
228+ }
229+ {
230+ g_autoptr(GSettingsSchemaSource) schema_source;
231+ g_autoptr(GSettingsSchema) schema;
232+ schema_source = g_settings_schema_source_new_from_directory("@GDS@",
233+ g_settings_schema_source_get_default(),
234+ TRUE,
235+ NULL);
236+ schema = g_settings_schema_source_lookup(schema_source,
237+ "org.gnome.desktop.interface",
238+ FALSE);
239+ watcher->priv->desktop_settings = g_settings_new_full(schema,
240+ NULL,
241+ NULL);
242+ }
243 if (watcher->priv->desktop_settings) {
244 g_signal_connect_object (
245 watcher->priv->desktop_settings,
246diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
247index 84ccbb0..9010429 100644
248--- a/src/calendar/libedata-cal/e-cal-meta-backend.c
249+++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
250@@ -157,7 +157,18 @@ ecmb_is_power_saver_enabled (void)
251 GSettings *settings;
252 gboolean enabled = FALSE;
253
254- settings = g_settings_new ("org.gnome.evolution-data-server");
255+ {
256+ g_autoptr(GSettingsSchemaSource) schema_source;
257+ g_autoptr(GSettingsSchema) schema;
258+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
259+ g_settings_schema_source_get_default(),
260+ TRUE,
261+ NULL);
262+ schema = g_settings_schema_source_lookup(schema_source,
263+ "org.gnome.evolution-data-server",
264+ FALSE);
265+ settings = g_settings_new_full(schema, NULL, NULL);
266+ }
267
268 if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
269 GPowerProfileMonitor *power_monitor;
270@@ -2628,7 +2639,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
271 if (is_declined) {
272 GSettings *settings;
273
274- settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
275+ {
276+ g_autoptr(GSettingsSchemaSource) schema_source;
277+ g_autoptr(GSettingsSchema) schema;
278+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
279+ g_settings_schema_source_get_default(),
280+ TRUE,
281+ NULL);
282+ schema = g_settings_schema_source_lookup(schema_source,
283+ "org.gnome.evolution-data-server.calendar",
284+ FALSE);
285+ settings = g_settings_new_full(schema,
286+ NULL,
287+ NULL);
288+ }
289 is_declined = g_settings_get_boolean (settings, "delete-meeting-on-decline");
290 g_clear_object (&settings);
291 }
292diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
293index d00fbd5..0f67653 100644
294--- a/src/camel/camel-cipher-context.c
295+++ b/src/camel/camel-cipher-context.c
296@@ -1630,7 +1630,18 @@ camel_cipher_can_load_photos (void)
297 GSettings *settings;
298 gboolean load_photos;
299
300- settings = g_settings_new ("org.gnome.evolution-data-server");
301+ {
302+ g_autoptr(GSettingsSchemaSource) schema_source;
303+ g_autoptr(GSettingsSchema) schema;
304+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
305+ g_settings_schema_source_get_default(),
306+ TRUE,
307+ NULL);
308+ schema = g_settings_schema_source_lookup(schema_source,
309+ "org.gnome.evolution-data-server",
310+ FALSE);
311+ settings = g_settings_new_full(schema, NULL, NULL);
312+ }
313 load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
314 g_clear_object (&settings);
315
316diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
317index 4594ab1..e71ce05 100644
318--- a/src/camel/camel-gpg-context.c
319+++ b/src/camel/camel-gpg-context.c
320@@ -745,7 +745,18 @@ gpg_ctx_get_executable_name (void)
321 GSettings *settings;
322 gchar *path;
323
324- settings = g_settings_new ("org.gnome.evolution-data-server");
325+ {
326+ g_autoptr(GSettingsSchemaSource) schema_source;
327+ g_autoptr(GSettingsSchema) schema;
328+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
329+ g_settings_schema_source_get_default(),
330+ TRUE,
331+ NULL);
332+ schema = g_settings_schema_source_lookup(schema_source,
333+ "org.gnome.evolution-data-server",
334+ FALSE);
335+ settings = g_settings_new_full(schema, NULL, NULL);
336+ }
337 path = g_settings_get_string (settings, "camel-gpg-binary");
338 g_clear_object (&settings);
339
340diff --git a/src/camel/camel-utils.c b/src/camel/camel-utils.c
341index 0c1c7dd..4188934 100644
342--- a/src/camel/camel-utils.c
343+++ b/src/camel/camel-utils.c
344@@ -361,7 +361,19 @@ void
345 _camel_utils_initialize (void)
346 {
347 G_LOCK (mi_user_headers);
348- mi_user_headers_settings = g_settings_new ("org.gnome.evolution-data-server");
349+ {
350+ g_autoptr(GSettingsSchemaSource) schema_source;
351+ g_autoptr(GSettingsSchema) schema;
352+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
353+ g_settings_schema_source_get_default(),
354+ TRUE,
355+ NULL);
356+ schema = g_settings_schema_source_lookup(schema_source,
357+ "org.gnome.evolution-data-server",
358+ FALSE);
359+ mi_user_headers_settings = g_settings_new_full(schema, NULL,
360+ NULL);
361+ }
362 g_signal_connect (mi_user_headers_settings, "changed::camel-message-info-user-headers",
363 G_CALLBACK (mi_user_headers_settings_changed_cb), NULL);
364 G_UNLOCK (mi_user_headers);
365diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
366index 8cf56f0..f4355d5 100644
367--- a/src/camel/providers/imapx/camel-imapx-server.c
368+++ b/src/camel/providers/imapx/camel-imapx-server.c
369@@ -5681,7 +5681,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
370 if (do_old_flags_update) {
371 GSettings *eds_settings;
372
373- eds_settings = g_settings_new ("org.gnome.evolution-data-server");
374+ {
375+ g_autoptr(GSettingsSchemaSource) schema_source;
376+ g_autoptr(GSettingsSchema) schema;
377+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
378+ g_settings_schema_source_get_default(),
379+ TRUE,
380+ NULL);
381+ schema = g_settings_schema_source_lookup(schema_source,
382+ "org.gnome.evolution-data-server",
383+ FALSE);
384+ eds_settings = g_settings_new_full(schema, NULL, NULL);
385+ }
386
387 if (g_settings_get_boolean (eds_settings, "limit-operations-in-power-saver-mode")) {
388 GPowerProfileMonitor *power_monitor;
389diff --git a/src/camel/providers/smtp/camel-smtp-transport.c b/src/camel/providers/smtp/camel-smtp-transport.c
390index f7c5d3c..67732c3 100644
391--- a/src/camel/providers/smtp/camel-smtp-transport.c
392+++ b/src/camel/providers/smtp/camel-smtp-transport.c
393@@ -1471,7 +1471,18 @@ smtp_helo (CamelSmtpTransport *transport,
394 transport->authtypes = NULL;
395 }
396
397- settings = g_settings_new ("org.gnome.evolution-data-server");
398+ {
399+ g_autoptr(GSettingsSchemaSource) schema_source;
400+ g_autoptr(GSettingsSchema) schema;
401+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
402+ g_settings_schema_source_get_default(),
403+ TRUE,
404+ NULL);
405+ schema = g_settings_schema_source_lookup(schema_source,
406+ "org.gnome.evolution-data-server",
407+ FALSE);
408+ settings = g_settings_new_full(schema, NULL, NULL);
409+ }
410 name = g_settings_get_string (settings, "camel-smtp-helo-argument");
411 g_clear_object (&settings);
412
413diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
414index 188f276..939f89b 100644
415--- a/src/libedataserver/e-network-monitor.c
416+++ b/src/libedataserver/e-network-monitor.c
417@@ -256,7 +256,18 @@ e_network_monitor_constructed (GObject *object)
418 /* Chain up to parent's method. */
419 G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object);
420
421- settings = g_settings_new ("org.gnome.evolution-data-server");
422+ {
423+ g_autoptr(GSettingsSchemaSource) schema_source;
424+ g_autoptr(GSettingsSchema) schema;
425+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
426+ g_settings_schema_source_get_default(),
427+ TRUE,
428+ NULL);
429+ schema = g_settings_schema_source_lookup(schema_source,
430+ "org.gnome.evolution-data-server",
431+ FALSE);
432+ settings = g_settings_new_full(schema, NULL, NULL);
433+ }
434 g_settings_bind (
435 settings, "network-monitor-gio-name",
436 object, "gio-name",
437diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
438index 9624d86..6baa019 100644
439--- a/src/libedataserver/e-oauth2-service-google.c
440+++ b/src/libedataserver/e-oauth2-service-google.c
441@@ -72,7 +72,18 @@ eos_google_read_settings (EOAuth2Service *service,
442 if (!value) {
443 GSettings *settings;
444
445- settings = g_settings_new ("org.gnome.evolution-data-server");
446+ {
447+ g_autoptr(GSettingsSchemaSource) schema_source;
448+ g_autoptr(GSettingsSchema) schema;
449+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
450+ g_settings_schema_source_get_default(),
451+ TRUE,
452+ NULL);
453+ schema = g_settings_schema_source_lookup(schema_source,
454+ "org.gnome.evolution-data-server",
455+ FALSE);
456+ settings = g_settings_new_full(schema, NULL, NULL);
457+ }
458 value = g_settings_get_string (settings, key_name);
459 g_object_unref (settings);
460
461diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
462index 7342577..915d8bd 100644
463--- a/src/libedataserver/e-oauth2-service-outlook.c
464+++ b/src/libedataserver/e-oauth2-service-outlook.c
465@@ -75,7 +75,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
466 if (!value) {
467 GSettings *settings;
468
469- settings = g_settings_new ("org.gnome.evolution-data-server");
470+ {
471+ g_autoptr(GSettingsSchemaSource) schema_source;
472+ g_autoptr(GSettingsSchema) schema;
473+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
474+ g_settings_schema_source_get_default(),
475+ TRUE,
476+ NULL);
477+ schema = g_settings_schema_source_lookup(schema_source,
478+ "org.gnome.evolution-data-server",
479+ FALSE);
480+ settings = g_settings_new_full(schema, NULL, NULL);
481+ }
482 value = g_settings_get_string (settings, key_name);
483 g_object_unref (settings);
484
485diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c
486index 3738359..f9ce2d9 100644
487--- a/src/libedataserver/e-oauth2-service-yahoo.c
488+++ b/src/libedataserver/e-oauth2-service-yahoo.c
489@@ -67,7 +67,18 @@ eos_yahoo_read_settings (EOAuth2Service *service,
490 if (!value) {
491 GSettings *settings;
492
493- settings = g_settings_new ("org.gnome.evolution-data-server");
494+ {
495+ g_autoptr(GSettingsSchemaSource) schema_source;
496+ g_autoptr(GSettingsSchema) schema;
497+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
498+ g_settings_schema_source_get_default(),
499+ TRUE,
500+ NULL);
501+ schema = g_settings_schema_source_lookup(schema_source,
502+ "org.gnome.evolution-data-server",
503+ FALSE);
504+ settings = g_settings_new_full(schema, NULL, NULL);
505+ }
506 value = g_settings_get_string (settings, key_name);
507 g_object_unref (settings);
508
509diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
510index db775f9..fb524db 100644
511--- a/src/libedataserver/e-oauth2-service.c
512+++ b/src/libedataserver/e-oauth2-service.c
513@@ -93,7 +93,18 @@ eos_default_guess_can_process (EOAuth2Service *service,
514 name_len = strlen (name);
515 hostname_len = strlen (hostname);
516
517- settings = g_settings_new ("org.gnome.evolution-data-server");
518+ {
519+ g_autoptr(GSettingsSchemaSource) schema_source;
520+ g_autoptr(GSettingsSchema) schema;
521+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
522+ g_settings_schema_source_get_default(),
523+ TRUE,
524+ NULL);
525+ schema = g_settings_schema_source_lookup(schema_source,
526+ "org.gnome.evolution-data-server",
527+ FALSE);
528+ settings = g_settings_new_full(schema, NULL, NULL);
529+ }
530 values = g_settings_get_strv (settings, "oauth2-services-hint");
531 g_object_unref (settings);
532
533diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
534index 1539f8b..77cf123 100644
535--- a/src/libedataserver/e-source-registry.c
536+++ b/src/libedataserver/e-source-registry.c
537@@ -1754,7 +1754,19 @@ e_source_registry_init (ESourceRegistry *registry)
538
539 g_mutex_init (®istry->priv->sources_lock);
540
541- registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
542+ {
543+ g_autoptr(GSettingsSchemaSource) schema_source;
544+ g_autoptr(GSettingsSchema) schema;
545+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
546+ g_settings_schema_source_get_default(),
547+ TRUE,
548+ NULL);
549+ schema = g_settings_schema_source_lookup(schema_source,
550+ GSETTINGS_SCHEMA,
551+ FALSE);
552+ registry->priv->settings = g_settings_new_full(schema, NULL,
553+ NULL);
554+ }
555
556 g_signal_connect (
557 registry->priv->settings, "changed",
558diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
559index b47a374..e812fbe 100644
560--- a/src/libedataserverui/e-reminders-widget.c
561+++ b/src/libedataserverui/e-reminders-widget.c
562@@ -1985,7 +1985,19 @@ static void
563 e_reminders_widget_init (ERemindersWidget *reminders)
564 {
565 reminders->priv = e_reminders_widget_get_instance_private (reminders);
566- reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
567+ {
568+ g_autoptr(GSettingsSchemaSource) schema_source;
569+ g_autoptr(GSettingsSchema) schema;
570+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
571+ g_settings_schema_source_get_default(),
572+ TRUE,
573+ NULL);
574+ schema = g_settings_schema_source_lookup(schema_source,
575+ "org.gnome.evolution-data-server.calendar",
576+ FALSE);
577+ reminders->priv->settings = g_settings_new_full(schema, NULL,
578+ NULL);
579+ }
580 reminders->priv->cancellable = g_cancellable_new ();
581 reminders->priv->is_empty = TRUE;
582 reminders->priv->is_mapped = FALSE;
583diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
584index 6f03053..b5db6b2 100644
585--- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
586+++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
587@@ -706,7 +706,18 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve
588 gchar *autoconfig_directory;
589 gint ii;
590
591- settings = g_settings_new ("org.gnome.evolution-data-server");
592+ {
593+ g_autoptr(GSettingsSchemaSource) schema_source;
594+ g_autoptr(GSettingsSchema) schema;
595+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
596+ g_settings_schema_source_get_default(),
597+ TRUE,
598+ NULL);
599+ schema = g_settings_schema_source_lookup(schema_source,
600+ "org.gnome.evolution-data-server",
601+ FALSE);
602+ settings = g_settings_new_full(schema, NULL, NULL);
603+ }
604
605 autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
606
607diff --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
608index d531cb9..c96f1d5 100644
609--- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
610+++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
611@@ -61,7 +61,18 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server)
612 extension_name = E_SOURCE_EXTENSION_PROXY;
613 extension = e_source_get_extension (source, extension_name);
614
615- settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
616+ {
617+ g_autoptr(GSettingsSchemaSource) schema_source;
618+ g_autoptr(GSettingsSchema) schema;
619+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
620+ g_settings_schema_source_get_default(),
621+ TRUE,
622+ NULL);
623+ schema = g_settings_schema_source_lookup(schema_source,
624+ NETWORK_CONFIG_SCHEMA_ID,
625+ FALSE);
626+ settings = g_settings_new_full(schema, NULL, NULL);
627+ }
628
629 switch (g_settings_get_int (settings, "proxy-type")) {
630 case 1:
631diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
632index 1c0a113..6b41423 100644
633--- a/src/services/evolution-source-registry/evolution-source-registry.c
634+++ b/src/services/evolution-source-registry/evolution-source-registry.c
635@@ -181,7 +181,18 @@ main (gint argc,
636
637 reload:
638
639- settings = g_settings_new ("org.gnome.evolution-data-server");
640+ {
641+ g_autoptr(GSettingsSchemaSource) schema_source;
642+ g_autoptr(GSettingsSchema) schema;
643+ schema_source = g_settings_schema_source_new_from_directory("@EDS@",
644+ g_settings_schema_source_get_default(),
645+ TRUE,
646+ NULL);
647+ schema = g_settings_schema_source_lookup(schema_source,
648+ "org.gnome.evolution-data-server",
649+ FALSE);
650+ settings = g_settings_new_full(schema, NULL, NULL);
651+ }
652
653 if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
654 g_settings_set_boolean (settings, "migrated", TRUE);