about summary refs log tree commit diff
path: root/pkgs/desktops/gnome/core/evolution-data-server
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/gnome/core/evolution-data-server')
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix189
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/drop-tentative-settings-constructor.patch40
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch652
4 files changed, 0 insertions, 892 deletions
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
deleted file mode 100644
index d774ea2f26853..0000000000000
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ /dev/null
@@ -1,189 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, substituteAll
-, pkg-config
-, gnome
-, _experimental-update-script-combinators
-, python3
-, gobject-introspection
-, gettext
-, libsoup_3
-, libxml2
-, libsecret
-, icu
-, sqlite
-, tzdata
-, libcanberra-gtk3
-, p11-kit
-, db
-, nspr
-, nss
-, libical
-, gperf
-, wrapGAppsHook3
-, glib-networking
-, gsettings-desktop-schemas
-, pcre
-, vala
-, cmake
-, ninja
-, libkrb5
-, openldap
-, enableOAuth2 ? stdenv.isLinux
-, webkitgtk_4_1
-, webkitgtk_6_0
-, json-glib
-, glib
-, gtk3
-, gtk4
-, withGtk3 ? true
-, withGtk4 ? false
-, libphonenumber
-, gnome-online-accounts
-, libgweather
-, boost
-, protobuf
-, libiconv
-, makeHardcodeGsettingsPatch
-}:
-
-stdenv.mkDerivation rec {
-  pname = "evolution-data-server";
-  version = "3.52.2";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-oAakTtyzjSb/scYuHV0KMdHy5ZB1Vl4mx5ou4BxFp+U=";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata;
-    })
-
-    # Avoid using wrapper function, which the hardcode gsettings
-    # patch generator cannot handle.
-    ./drop-tentative-settings-constructor.patch
-  ];
-
-  prePatch = ''
-    substitute ${./hardcode-gsettings.patch} hardcode-gsettings.patch \
-      --subst-var-by EDS ${glib.makeSchemaPath "$out" "${pname}-${version}"} \
-      --subst-var-by GDS ${glib.getSchemaPath gsettings-desktop-schemas}
-    patches="$patches $PWD/hardcode-gsettings.patch"
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    ninja
-    pkg-config
-    gettext
-    python3
-    gperf
-    wrapGAppsHook3
-    gobject-introspection
-    vala
-  ];
-
-  buildInputs = [
-    glib
-    libsecret
-    libsoup_3
-    gnome-online-accounts
-    p11-kit
-    libgweather
-    icu
-    sqlite
-    libkrb5
-    openldap
-    glib-networking
-    libcanberra-gtk3
-    pcre
-    libphonenumber
-    boost
-    protobuf
-  ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-  ] ++ lib.optionals withGtk3 [
-    gtk3
-  ] ++ lib.optionals (withGtk3 && enableOAuth2) [
-    webkitgtk_4_1
-  ] ++ lib.optionals withGtk4 [
-    gtk4
-  ] ++ lib.optionals (withGtk4 && enableOAuth2) [
-    webkitgtk_6_0
-  ];
-
-  propagatedBuildInputs = [
-    db
-    nss
-    nspr
-    libical
-    libsoup_3
-    libxml2
-    json-glib
-  ];
-
-  cmakeFlags = [
-    "-DENABLE_UOA=OFF"
-    "-DENABLE_VALA_BINDINGS=ON"
-    "-DENABLE_INTROSPECTION=ON"
-    "-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include"
-    "-DWITH_PHONENUMBER=ON"
-    "-DENABLE_GTK=${lib.boolToString withGtk3}"
-    "-DENABLE_EXAMPLES=${lib.boolToString withGtk3}"
-    "-DENABLE_CANBERRA=${lib.boolToString withGtk3}"
-    "-DENABLE_GTK4=${lib.boolToString withGtk4}"
-    "-DENABLE_OAUTH2_WEBKITGTK=${lib.boolToString (withGtk3 && enableOAuth2)}"
-    "-DENABLE_OAUTH2_WEBKITGTK4=${lib.boolToString (withGtk4 && enableOAuth2)}"
-  ];
-
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace cmake/modules/SetupBuildFlags.cmake \
-      --replace "-Wl,--no-undefined" ""
-    substituteInPlace src/services/evolution-alarm-notify/e-alarm-notify.c \
-      --replace "G_OS_WIN32" "__APPLE__"
-  '';
-
-  postInstall = lib.optionalString stdenv.isDarwin ''
-    ln -s $out/lib/${pname}/*.dylib $out/lib/
-  '';
-
-  passthru = {
-    hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
-      schemaIdToVariableMapping = {
-        "org.gnome.Evolution.DefaultSources" = "EDS";
-        "org.gnome.evolution.shell.network-config" = "EDS";
-        "org.gnome.evolution-data-server.addressbook" = "EDS";
-        "org.gnome.evolution-data-server.calendar" = "EDS";
-        "org.gnome.evolution-data-server" = "EDS";
-        "org.gnome.desktop.interface" = "GDS";
-      };
-      inherit src patches;
-    };
-    updateScript =
-      let
-        updateSource = gnome.updateScript {
-          packageName = "evolution-data-server";
-          versionPolicy = "odd-unstable";
-        };
-        updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-data-server.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
-      in
-      _experimental-update-script-combinators.sequence [
-        updateSource
-        updatePatch
-      ];
-  };
-
-  meta = with lib; {
-    description = "Unified backend for programs that work with contacts, tasks, and calendar information";
-    homepage = "https://gitlab.gnome.org/GNOME/evolution-data-server";
-    license = licenses.lgpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/drop-tentative-settings-constructor.patch b/pkgs/desktops/gnome/core/evolution-data-server/drop-tentative-settings-constructor.patch
deleted file mode 100644
index a86d1966eb6bc..0000000000000
--- a/pkgs/desktops/gnome/core/evolution-data-server/drop-tentative-settings-constructor.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
-index f1614f2..c01e8b2 100644
---- a/src/calendar/libecal/e-reminder-watcher.c
-+++ b/src/calendar/libecal/e-reminder-watcher.c
-@@ -2609,26 +2609,6 @@ e_reminder_watcher_load_clock_format (EReminderWatcher *watcher)
- 	g_free (clock_format);
- }
- 
--static GSettings*
--e_reminder_watcher_load_settings_tentative (const gchar *schema_id)
--{
--	GSettings *settings;
--	GSettingsSchemaSource *schema_source;
--	GSettingsSchema *schema;
--
--	schema_source = g_settings_schema_source_get_default ();
--	schema = g_settings_schema_source_lookup (schema_source, schema_id, TRUE);
--
--	if (schema == NULL) {
--		return NULL;
--	}
--
--	settings = g_settings_new (schema_id);
--	/* only unref after g_settings_new() to avoid needless realloc */
--	g_settings_schema_unref (schema);
--	return settings;
--}
--
- static void
- e_reminder_watcher_init (EReminderWatcher *watcher)
- {
-@@ -2647,7 +2627,7 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
- 	watcher->priv = e_reminder_watcher_get_instance_private (watcher);
- 	watcher->priv->cancellable = g_cancellable_new ();
- 	watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
--	watcher->priv->desktop_settings = e_reminder_watcher_load_settings_tentative ("org.gnome.desktop.interface");
-+	watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface");
- 	if (watcher->priv->desktop_settings) {
- 		g_signal_connect_object (
- 			watcher->priv->desktop_settings,
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch b/pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch
deleted file mode 100644
index 334235516591f..0000000000000
--- a/pkgs/desktops/gnome/core/evolution-data-server/fix-paths.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/calendar/libecal/e-cal-system-timezone.c
-+++ b/src/calendar/libecal/e-cal-system-timezone.c
-@@ -26,7 +26,7 @@
- #ifdef HAVE_SOLARIS
- #define SYSTEM_ZONEINFODIR "/usr/share/lib/zoneinfo/tab"
- #else
--#define SYSTEM_ZONEINFODIR "/usr/share/zoneinfo"
-+#define SYSTEM_ZONEINFODIR "@tzdata@/share/zoneinfo"
- #endif
- 
- #define ETC_TIMEZONE        "/etc/timezone"
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
deleted file mode 100644
index 140e124fe4bbb..0000000000000
--- a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
+++ /dev/null
@@ -1,652 +0,0 @@
-diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
-index 5e65ec8..8ca28c6 100644
---- a/src/addressbook/libebook/e-book-client.c
-+++ b/src/addressbook/libebook/e-book-client.c
-@@ -1924,7 +1924,18 @@ e_book_client_get_self (ESourceRegistry *registry,
- 
- 	*out_client = book_client;
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_object_unref (settings);
- 
-@@ -1992,7 +2003,18 @@ e_book_client_set_self (EBookClient *client,
- 	g_return_val_if_fail (
- 		e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE);
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	g_settings_set_string (
- 		settings, SELF_UID_KEY,
- 		e_contact_get_const (contact, E_CONTACT_UID));
-@@ -2028,8 +2050,18 @@ e_book_client_is_self (EContact *contact)
- 	 * unfortunately the API doesn't allow that.
- 	 */
- 	g_mutex_lock (&mutex);
--	if (!settings)
--		settings = g_settings_new (SELF_UID_PATH_ID);
-+	if (!settings) {
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_mutex_unlock (&mutex);
- 
-diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
-index e85a56b..59d3fe2 100644
---- a/src/addressbook/libebook/e-book.c
-+++ b/src/addressbook/libebook/e-book.c
-@@ -2587,7 +2587,18 @@ e_book_get_self (ESourceRegistry *registry,
- 		return FALSE;
- 	}
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_object_unref (settings);
- 
-@@ -2642,7 +2653,18 @@ e_book_set_self (EBook *book,
- 	g_return_val_if_fail (E_IS_BOOK (book), FALSE);
- 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	g_settings_set_string (
- 		settings, SELF_UID_KEY,
- 		e_contact_get_const (contact, E_CONTACT_UID));
-@@ -2670,7 +2692,18 @@ e_book_is_self (EContact *contact)
- 
- 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_object_unref (settings);
- 
-diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c b/src/addressbook/libedata-book/e-book-meta-backend.c
-index 5b4debf..77c8d9c 100644
---- a/src/addressbook/libedata-book/e-book-meta-backend.c
-+++ b/src/addressbook/libedata-book/e-book-meta-backend.c
-@@ -144,7 +144,18 @@ ebmb_is_power_saver_enabled (void)
- 	GSettings *settings;
- 	gboolean enabled = FALSE;
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 
- 	if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
- 		GPowerProfileMonitor *power_monitor;
-diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
-index 43bd383..4dce824 100644
---- a/src/calendar/backends/contacts/e-cal-backend-contacts.c
-+++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c
-@@ -1369,7 +1369,18 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
- 		(GDestroyNotify) g_free,
- 		(GDestroyNotify) contact_record_free);
- 
--	cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server.calendar",
-+							 FALSE);
-+		cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	cbc->priv->notifyid = 0;
- 	cbc->priv->update_alarms_id = 0;
- 	cbc->priv->alarm_enabled = FALSE;
-diff --git a/src/calendar/backends/file/e-cal-backend-file.c b/src/calendar/backends/file/e-cal-backend-file.c
-index 2525856..7ecc1a8 100644
---- a/src/calendar/backends/file/e-cal-backend-file.c
-+++ b/src/calendar/backends/file/e-cal-backend-file.c
-@@ -3682,7 +3682,20 @@ e_cal_backend_file_receive_objects (ECalBackendSync *backend,
- 			if (is_declined) {
- 				GSettings *settings;
- 
--				settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+				{
-+					g_autoptr(GSettingsSchemaSource) schema_source;
-+					g_autoptr(GSettingsSchema) schema;
-+					schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+												    g_settings_schema_source_get_default(),
-+												    TRUE,
-+												    NULL);
-+					schema = g_settings_schema_source_lookup(schema_source,
-+										 "org.gnome.evolution-data-server.calendar",
-+										 FALSE);
-+					settings = g_settings_new_full(schema,
-+								       NULL,
-+								       NULL);
-+				}
- 				can_delete = g_settings_get_boolean (settings, "delete-meeting-on-decline");
- 				g_clear_object (&settings);
- 			}
-diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
-index 44ba49c..dfac2a2 100644
---- a/src/calendar/libecal/e-reminder-watcher.c
-+++ b/src/calendar/libecal/e-reminder-watcher.c
-@@ -2826,8 +2826,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
- 
- 	watcher->priv = e_reminder_watcher_get_instance_private (watcher);
- 	watcher->priv->cancellable = g_cancellable_new ();
--	watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
--	watcher->priv->desktop_settings = g_settings_new ("org.gnome.desktop.interface");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server.calendar",
-+							 FALSE);
-+		watcher->priv->settings = g_settings_new_full(schema, NULL,
-+							      NULL);
-+	}
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@GDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.desktop.interface",
-+							 FALSE);
-+		watcher->priv->desktop_settings = g_settings_new_full(schema,
-+								      NULL,
-+								      NULL);
-+	}
- 	if (watcher->priv->desktop_settings) {
- 		g_signal_connect_object (
- 			watcher->priv->desktop_settings,
-diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
-index e0e9169..a44f52c 100644
---- a/src/calendar/libedata-cal/e-cal-meta-backend.c
-+++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
-@@ -156,7 +156,18 @@ ecmb_is_power_saver_enabled (void)
- 	GSettings *settings;
- 	gboolean enabled = FALSE;
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 
- 	if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
- 		GPowerProfileMonitor *power_monitor;
-@@ -2627,7 +2638,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
- 			if (is_declined) {
- 				GSettings *settings;
- 
--				settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+				{
-+					g_autoptr(GSettingsSchemaSource) schema_source;
-+					g_autoptr(GSettingsSchema) schema;
-+					schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+												    g_settings_schema_source_get_default(),
-+												    TRUE,
-+												    NULL);
-+					schema = g_settings_schema_source_lookup(schema_source,
-+										 "org.gnome.evolution-data-server.calendar",
-+										 FALSE);
-+					settings = g_settings_new_full(schema,
-+								       NULL,
-+								       NULL);
-+				}
- 				is_declined = g_settings_get_boolean (settings, "delete-meeting-on-decline");
- 				g_clear_object (&settings);
- 			}
-diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
-index d5a0823..2ae03f8 100644
---- a/src/camel/camel-cipher-context.c
-+++ b/src/camel/camel-cipher-context.c
-@@ -1631,7 +1631,18 @@ camel_cipher_can_load_photos (void)
- 	GSettings *settings;
- 	gboolean load_photos;
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
- 	g_clear_object (&settings);
- 
-diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index cceba4a..d3c4da6 100644
---- a/src/camel/camel-gpg-context.c
-+++ b/src/camel/camel-gpg-context.c
-@@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
- 		GSettings *settings;
- 		gchar *path;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			g_autoptr(GSettingsSchemaSource) schema_source;
-+			g_autoptr(GSettingsSchema) schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+		}
- 		path = g_settings_get_string (settings, "camel-gpg-binary");
- 		g_clear_object (&settings);
- 
-diff --git a/src/camel/camel-utils.c b/src/camel/camel-utils.c
-index e61160c..b6553a4 100644
---- a/src/camel/camel-utils.c
-+++ b/src/camel/camel-utils.c
-@@ -362,7 +362,19 @@ void
- _camel_utils_initialize (void)
- {
- 	G_LOCK (mi_user_headers);
--	mi_user_headers_settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		mi_user_headers_settings = g_settings_new_full(schema, NULL,
-+							       NULL);
-+	}
- 	g_signal_connect (mi_user_headers_settings, "changed::camel-message-info-user-headers",
- 		G_CALLBACK (mi_user_headers_settings_changed_cb), NULL);
- 	G_UNLOCK (mi_user_headers);
-diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
-index 56429a9..a9cc62c 100644
---- a/src/camel/providers/imapx/camel-imapx-server.c
-+++ b/src/camel/providers/imapx/camel-imapx-server.c
-@@ -5682,7 +5682,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
- 	if (do_old_flags_update) {
- 		GSettings *eds_settings;
- 
--		eds_settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			g_autoptr(GSettingsSchemaSource) schema_source;
-+			g_autoptr(GSettingsSchema) schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			eds_settings = g_settings_new_full(schema, NULL, NULL);
-+		}
- 
- 		if (g_settings_get_boolean (eds_settings, "limit-operations-in-power-saver-mode")) {
- 			GPowerProfileMonitor *power_monitor;
-diff --git a/src/camel/providers/smtp/camel-smtp-transport.c b/src/camel/providers/smtp/camel-smtp-transport.c
-index 6556f1e..90f0a5e 100644
---- a/src/camel/providers/smtp/camel-smtp-transport.c
-+++ b/src/camel/providers/smtp/camel-smtp-transport.c
-@@ -1471,7 +1471,18 @@ smtp_helo (CamelSmtpTransport *transport,
- 		transport->authtypes = NULL;
- 	}
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	name = g_settings_get_string (settings, "camel-smtp-helo-argument");
- 	g_clear_object (&settings);
- 
-diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
-index 188f276..939f89b 100644
---- a/src/libedataserver/e-network-monitor.c
-+++ b/src/libedataserver/e-network-monitor.c
-@@ -256,7 +256,18 @@ e_network_monitor_constructed (GObject *object)
- 	/* Chain up to parent's method. */
- 	G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object);
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	g_settings_bind (
- 		settings, "network-monitor-gio-name",
- 		object, "gio-name",
-diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
-index 1453410..a3f06b0 100644
---- a/src/libedataserver/e-oauth2-service-google.c
-+++ b/src/libedataserver/e-oauth2-service-google.c
-@@ -72,7 +72,18 @@ eos_google_read_settings (EOAuth2Service *service,
- 	if (!value) {
- 		GSettings *settings;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			g_autoptr(GSettingsSchemaSource) schema_source;
-+			g_autoptr(GSettingsSchema) schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+		}
- 		value = g_settings_get_string (settings, key_name);
- 		g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
-index 734f194..5b05077 100644
---- a/src/libedataserver/e-oauth2-service-outlook.c
-+++ b/src/libedataserver/e-oauth2-service-outlook.c
-@@ -75,7 +75,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
- 	if (!value) {
- 		GSettings *settings;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			g_autoptr(GSettingsSchemaSource) schema_source;
-+			g_autoptr(GSettingsSchema) schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+		}
- 		value = g_settings_get_string (settings, key_name);
- 		g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c
-index c8bbd3a..e71e36a 100644
---- a/src/libedataserver/e-oauth2-service-yahoo.c
-+++ b/src/libedataserver/e-oauth2-service-yahoo.c
-@@ -67,7 +67,18 @@ eos_yahoo_read_settings (EOAuth2Service *service,
- 	if (!value) {
- 		GSettings *settings;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			g_autoptr(GSettingsSchemaSource) schema_source;
-+			g_autoptr(GSettingsSchema) schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+		}
- 		value = g_settings_get_string (settings, key_name);
- 		g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
-index af59b0b..0c7e75e 100644
---- a/src/libedataserver/e-oauth2-service.c
-+++ b/src/libedataserver/e-oauth2-service.c
-@@ -94,7 +94,18 @@ eos_default_guess_can_process (EOAuth2Service *service,
- 	name_len = strlen (name);
- 	hostname_len = strlen (hostname);
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 	values = g_settings_get_strv (settings, "oauth2-services-hint");
- 	g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
-index 1539f8b..77cf123 100644
---- a/src/libedataserver/e-source-registry.c
-+++ b/src/libedataserver/e-source-registry.c
-@@ -1754,7 +1754,19 @@ e_source_registry_init (ESourceRegistry *registry)
- 
- 	g_mutex_init (&registry->priv->sources_lock);
- 
--	registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 GSETTINGS_SCHEMA,
-+							 FALSE);
-+		registry->priv->settings = g_settings_new_full(schema, NULL,
-+							       NULL);
-+	}
- 
- 	g_signal_connect (
- 		registry->priv->settings, "changed",
-diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
-index 14b6481..7149b74 100644
---- a/src/libedataserverui/e-reminders-widget.c
-+++ b/src/libedataserverui/e-reminders-widget.c
-@@ -1986,7 +1986,19 @@ static void
- e_reminders_widget_init (ERemindersWidget *reminders)
- {
- 	reminders->priv = e_reminders_widget_get_instance_private (reminders);
--	reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server.calendar",
-+							 FALSE);
-+		reminders->priv->settings = g_settings_new_full(schema, NULL,
-+								NULL);
-+	}
- 	reminders->priv->cancellable = g_cancellable_new ();
- 	reminders->priv->is_empty = TRUE;
- 	reminders->priv->is_mapped = FALSE;
-diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
-index 6f03053..b5db6b2 100644
---- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
-+++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
-@@ -706,7 +706,18 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve
- 	gchar *autoconfig_directory;
- 	gint ii;
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 
- 	autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
- 
-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
-index d531cb9..c96f1d5 100644
---- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
-+++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
-@@ -61,7 +61,18 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server)
- 	extension_name = E_SOURCE_EXTENSION_PROXY;
- 	extension = e_source_get_extension (source, extension_name);
- 
--	settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 NETWORK_CONFIG_SCHEMA_ID,
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 
- 	switch (g_settings_get_int (settings, "proxy-type")) {
- 		case 1:
-diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
-index 1c0a113..6b41423 100644
---- a/src/services/evolution-source-registry/evolution-source-registry.c
-+++ b/src/services/evolution-source-registry/evolution-source-registry.c
-@@ -181,7 +181,18 @@ main (gint argc,
- 
- reload:
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		g_autoptr(GSettingsSchemaSource) schema_source;
-+		g_autoptr(GSettingsSchema) schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@EDS@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+	}
- 
- 	if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
- 		g_settings_set_boolean (settings, "migrated", TRUE);