about summary refs log tree commit diff
path: root/pkgs/desktops/gnome/core
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/gnome/core')
-rw-r--r--pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix55
-rw-r--r--pkgs/desktops/gnome/core/baobab/default.nix63
-rw-r--r--pkgs/desktops/gnome/core/caribou/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/dconf-editor/default.nix80
-rw-r--r--pkgs/desktops/gnome/core/dconf-editor/schema-override-variable.patch14
-rw-r--r--pkgs/desktops/gnome/core/eog/default.nix127
-rw-r--r--pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch13
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix109
-rw-r--r--pkgs/desktops/gnome/core/evince/default.nix144
-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
-rw-r--r--pkgs/desktops/gnome/core/gdm/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix5
-rw-r--r--pkgs/desktops/gnome/core/gnome-bluetooth/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-calculator/default.nix81
-rw-r--r--pkgs/desktops/gnome/core/gnome-common/default.nix21
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix26
-rw-r--r--pkgs/desktops/gnome/core/gnome-dictionary/default.nix86
-rw-r--r--pkgs/desktops/gnome/core/gnome-disk-utility/default.nix81
-rw-r--r--pkgs/desktops/gnome/core/gnome-font-viewer/default.nix66
-rw-r--r--pkgs/desktops/gnome/core/gnome-initial-setup/default.nix6
-rw-r--r--pkgs/desktops/gnome/core/gnome-keyring/default.nix109
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-screenshot/default.nix83
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/default.nix3
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/default.nix16
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix6
-rw-r--r--pkgs/desktops/gnome/core/gnome-system-monitor/default.nix80
-rw-r--r--pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch12
-rw-r--r--pkgs/desktops/gnome/core/gnome-terminal/default.nix97
-rw-r--r--pkgs/desktops/gnome/core/gnome-themes-extra/default.nix33
-rw-r--r--pkgs/desktops/gnome/core/gnome-user-share/default.nix73
-rw-r--r--pkgs/desktops/gnome/core/gucharmap/default.nix114
-rw-r--r--pkgs/desktops/gnome/core/libgnome-keyring/default.nix35
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix135
-rw-r--r--pkgs/desktops/gnome/core/nautilus/extension_dir.patch24
-rw-r--r--pkgs/desktops/gnome/core/nautilus/fix-paths.patch13
-rw-r--r--pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch35
-rw-r--r--pkgs/desktops/gnome/core/rygel/default.nix108
-rw-r--r--pkgs/desktops/gnome/core/simple-scan/default.nix89
-rw-r--r--pkgs/desktops/gnome/core/sushi/default.nix86
-rw-r--r--pkgs/desktops/gnome/core/totem/default.nix139
-rw-r--r--pkgs/desktops/gnome/core/yelp-xsl/default.nix52
-rw-r--r--pkgs/desktops/gnome/core/yelp/default.nix62
-rw-r--r--pkgs/desktops/gnome/core/zenity/default.nix57
48 files changed, 38 insertions, 3308 deletions
diff --git a/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
deleted file mode 100644
index 324d439d75897..0000000000000
--- a/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, gnome
-, gtk3
-, gdk-pixbuf
-, librsvg
-, hicolor-icon-theme
-}:
-
-stdenv.mkDerivation rec {
-  pname = "adwaita-icon-theme";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-S8tTm9ddZNo4XW+gjLqp3erOtqyOgrhbpsQRF79bpk4=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gtk3
-  ];
-
-  buildInputs = [
-    gdk-pixbuf
-    librsvg
-  ];
-
-  propagatedBuildInputs = [
-    # For convenience, we can specify adwaita-icon-theme only in packages
-    hicolor-icon-theme
-  ];
-
-  dontDropIconThemeCache = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "adwaita-icon-theme";
-      attrPath = "gnome.adwaita-icon-theme";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme";
-    platforms = with platforms; linux ++ darwin;
-    maintainers = teams.gnome.members;
-    license = licenses.cc-by-sa-30;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/baobab/default.nix b/pkgs/desktops/gnome/core/baobab/default.nix
deleted file mode 100644
index 3978661baabb8..0000000000000
--- a/pkgs/desktops/gnome/core/baobab/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, lib
-, gettext
-, fetchurl
-, vala
-, desktop-file-utils
-, meson
-, ninja
-, pkg-config
-, gtk4
-, libadwaita
-, glib
-, libxml2
-, wrapGAppsHook4
-, itstool
-, gnome
-}:
-
-stdenv.mkDerivation rec {
-  pname = "baobab";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-zk3vXILQVnGlAJ9768+FrJhnXZ2BYNKK2RgbJppy43w=";
-  };
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    glib
-    itstool
-    libxml2
-    meson
-    ninja
-    pkg-config
-    vala
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    gtk4
-    libadwaita
-    glib
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with lib; {
-    description = "Graphical application to analyse disk usage in any GNOME environment";
-    mainProgram = "baobab";
-    homepage = "https://apps.gnome.org/Baobab/";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/caribou/default.nix b/pkgs/desktops/gnome/core/caribou/default.nix
index b0a74450e81c7..ff8af62727993 100644
--- a/pkgs/desktops/gnome/core/caribou/default.nix
+++ b/pkgs/desktops/gnome/core/caribou/default.nix
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
     mainProgram = "caribou-preferences";
     homepage = "https://gitlab.gnome.org/Archive/caribou";
     license = licenses.lgpl21;
-    maintainers = teams.gnome.members;
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome/core/dconf-editor/default.nix b/pkgs/desktops/gnome/core/dconf-editor/default.nix
deleted file mode 100644
index 2b1b747a74a2c..0000000000000
--- a/pkgs/desktops/gnome/core/dconf-editor/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, fetchpatch
-, desktop-file-utils
-, meson
-, ninja
-, vala
-, libxslt
-, pkg-config
-, glib
-, gtk3
-, libhandy
-, gnome
-, dconf
-, libxml2
-, gettext
-, docbook-xsl-nons
-, wrapGAppsHook3
-, gobject-introspection
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dconf-editor";
-  version = "45.0.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-EYApdnju2uYhfMUUomOMGH0vHR7ycgy5B5t0DEKZQd0=";
-  };
-
-  patches = [
-    # Fix crash with GSETTINGS_SCHEMA_DIR env var.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/dconf-editor/-/commit/baf183737d459dcde065c9f8f6fe5be7ed874de6.patch";
-      hash = "sha256-Vp0qjJChDr6IarUD+tZPLJhdI8v8r6EzWNfqFSnGvqQ=";
-    })
-
-    # Look for compiled schemas in NIX_GSETTINGS_OVERRIDES_DIR
-    # environment variable, to match what we patched GLib to do.
-    ./schema-override-variable.patch
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    meson
-    ninja
-    vala
-    libxslt
-    pkg-config
-    wrapGAppsHook3
-    gettext
-    docbook-xsl-nons
-    libxml2
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    libhandy
-    dconf
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    description = "GSettings editor for GNOME";
-    mainProgram = "dconf-editor";
-    homepage = "https://apps.gnome.org/DconfEditor/";
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/dconf-editor/schema-override-variable.patch b/pkgs/desktops/gnome/core/dconf-editor/schema-override-variable.patch
deleted file mode 100644
index 06896d1aa4ee8..0000000000000
--- a/pkgs/desktops/gnome/core/dconf-editor/schema-override-variable.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/editor/source-manager.vala b/editor/source-manager.vala
-index 27b2b17a..87f7ba86 100644
---- a/editor/source-manager.vala
-+++ b/editor/source-manager.vala
-@@ -121,6 +121,9 @@ private class SourceManager : Object
-             source = try_prepend_dir (source, Path.build_filename (system_data_dirs [i], "glib-2.0", "schemas"));
-         string user_data_dir = GLib.Environment.get_user_data_dir ();
-         source = try_prepend_dir (source, Path.build_filename (user_data_dir, "glib-2.0", "schemas"));
-+        string? nix_var_schema_dir = GLib.Environment.get_variable ("NIX_GSETTINGS_OVERRIDES_DIR");
-+        if (nix_var_schema_dir != null)
-+            source = try_prepend_dir (source, (!) nix_var_schema_dir);
-         string? var_schema_dir = GLib.Environment.get_variable ("GSETTINGS_SCHEMA_DIR");
-         if (var_schema_dir != null) {
-             string[] extra_schema_dirs = ((!) var_schema_dir).split (Path.SEARCHPATH_SEPARATOR_S);
diff --git a/pkgs/desktops/gnome/core/eog/default.nix b/pkgs/desktops/gnome/core/eog/default.nix
deleted file mode 100644
index b59eb108c0149..0000000000000
--- a/pkgs/desktops/gnome/core/eog/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, meson
-, ninja
-, gettext
-, itstool
-, pkg-config
-, libxml2
-, libjpeg
-, libpeas
-, libportal-gtk3
-, gnome
-, gtk3
-, libhandy
-, glib
-, gsettings-desktop-schemas
-, gnome-desktop
-, lcms2
-, gdk-pixbuf
-, exempi
-, shared-mime-info
-, wrapGAppsHook3
-, libjxl
-, librsvg
-, webp-pixbuf-loader
-, libheif
-, libexif
-, gobject-introspection
-, gi-docgen
-}:
-
-stdenv.mkDerivation rec {
-  pname = "eog";
-  version = "45.3";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-hlD2YtSSHYOnkE9rucokW69zX3F7R/rFs38NkOXokag=";
-  };
-
-  patches = [
-    # Fix path to libeog.so in the gir file.
-    # We patch gobject-introspection to hardcode absolute paths but
-    # our Meson patch will only pass the info when install_dir is absolute as well.
-    ./fix-gir-lib-path.patch
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    itstool
-    wrapGAppsHook3
-    libxml2 # for xmllint for xml-stripblanks
-    gobject-introspection
-    gi-docgen
-  ];
-
-  buildInputs = [
-    libjpeg
-    libportal-gtk3
-    gtk3
-    libhandy
-    gdk-pixbuf
-    glib
-    libpeas
-    librsvg
-    lcms2
-    gnome-desktop
-    libexif
-    exempi
-    gsettings-desktop-schemas
-    shared-mime-info
-  ];
-
-  mesonFlags = [
-    "-Dgtk_doc=true"
-  ];
-
-  postInstall = ''
-    # Pull in WebP and JXL support for gnome-backgrounds.
-    # In postInstall to run before gappsWrapperArgsHook.
-    export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
-      extraLoaders = [
-        libjxl
-        librsvg
-        webp-pixbuf-loader
-        libheif.out
-      ];
-    }}"
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # Thumbnailers
-      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
-      --prefix XDG_DATA_DIRS : "${libjxl}/share"
-      --prefix XDG_DATA_DIRS : "${librsvg}/share"
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-    )
-  '';
-
-  postFixup = ''
-    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
-    moveToOutput "share/doc" "$devdoc"
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    description = "GNOME image viewer";
-    homepage = "https://gitlab.gnome.org/GNOME/eog";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.unix;
-    mainProgram = "eog";
-  };
-}
diff --git a/pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch b/pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch
deleted file mode 100644
index eb087b58a3176..0000000000000
--- a/pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/meson.build b/src/meson.build
-index cc9d3856..f909836d 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -165,7 +165,7 @@ libeog = shared_library(
-   link_args: ldflags,
-   link_depends: symbol_map,
-   install: true,
--  install_dir: eog_pkglibdir,
-+  install_dir: eog_prefix / eog_pkglibdir,
- )
- 
- libeog_dep = declare_dependency(
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
deleted file mode 100644
index c4edd298aff75..0000000000000
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ /dev/null
@@ -1,109 +0,0 @@
-{ lib
-, stdenv
-, meson
-, ninja
-, gettext
-, fetchurl
-, pkg-config
-, gtk4
-, glib
-, icu
-, wrapGAppsHook4
-, gnome
-, libportal-gtk4
-, libxml2
-, itstool
-, webkitgtk_6_0
-, libsoup_3
-, glib-networking
-, libsecret
-, gnome-desktop
-, libarchive
-, p11-kit
-, sqlite
-, gcr_4
-, isocodes
-, desktop-file-utils
-, nettle
-, gdk-pixbuf
-, gst_all_1
-, json-glib
-, libadwaita
-, buildPackages
-, withPantheon ? false
-, pantheon
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "epiphany";
-  version = "46.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/epiphany/${lib.versions.major finalAttrs.version}/epiphany-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Jg+BRp7WR0bCsRQ/Lzi+3NloR3hlZ7CX2fcv072dsUI=";
-  };
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    itstool
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook4
-    buildPackages.glib
-    buildPackages.gtk4
-  ];
-
-  buildInputs = [
-    gcr_4
-    gdk-pixbuf
-    glib
-    glib-networking
-    gnome-desktop
-    gst_all_1.gst-libav
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-ugly
-    gst_all_1.gstreamer
-    gtk4
-    icu
-    isocodes
-    json-glib
-    libadwaita
-    libportal-gtk4
-    libarchive
-    libsecret
-    libsoup_3
-    libxml2
-    nettle
-    p11-kit
-    sqlite
-    webkitgtk_6_0
-  ] ++ lib.optionals withPantheon [
-    pantheon.granite7
-  ];
-
-  # Tests need an X display
-  mesonFlags = [
-    "-Dunit_tests=disabled"
-  ] ++ lib.optionals withPantheon [
-    "-Dgranite=enabled"
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "epiphany";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/Epiphany/";
-    description = "WebKit based web browser for GNOME";
-    mainProgram = "epiphany";
-    maintainers = teams.gnome.members ++ teams.pantheon.members;
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
deleted file mode 100644
index a9192f33d000a..0000000000000
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ /dev/null
@@ -1,144 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, gettext
-, libxml2
-, appstream
-, desktop-file-utils
-, glib
-, gtk3
-, pango
-, atk
-, gdk-pixbuf
-, shared-mime-info
-, itstool
-, gnome
-, poppler
-, ghostscriptX
-, djvulibre
-, libspectre
-, libarchive
-, libhandy
-, libsecret
-, wrapGAppsHook3
-, librsvg
-, gobject-introspection
-, yelp-tools
-, gspell
-, gsettings-desktop-schemas
-, gnome-desktop
-, dbus
-, texlive
-, gst_all_1
-, gi-docgen
-, supportMultimedia ? true # PDF multimedia
-, libgxps
-, supportXPS ? true # Open XML Paper Specification via libgxps
-, withLibsecret ? true
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "evince";
-  version = "46.3";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/evince/${lib.versions.major finalAttrs.version}/evince-${finalAttrs.version}.tar.xz";
-    hash = "sha256-vA0dQbnX/8di6Z0qv6+sv3RRgvCzHYbbXuyMZ/XzAGs=";
-  };
-
-  depsBuildBuild = [
-    pkg-config
-  ];
-
-  nativeBuildInputs = [
-    appstream
-    desktop-file-utils
-    gettext
-    gobject-introspection
-    gi-docgen
-    itstool
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook3
-    yelp-tools
-  ];
-
-  buildInputs = [
-    atk
-    dbus # only needed to find the service directory
-    djvulibre
-    gdk-pixbuf
-    ghostscriptX
-    glib
-    gnome-desktop
-    gsettings-desktop-schemas
-    gspell
-    gtk3
-    libarchive
-    libhandy
-    librsvg
-    libspectre
-    libxml2
-    pango
-    poppler
-    texlive.bin.core # kpathsea for DVI support
-  ] ++ lib.optionals withLibsecret [
-    libsecret
-  ] ++ lib.optionals supportXPS [
-    libgxps
-  ] ++ lib.optionals supportMultimedia (with gst_all_1; [
-    gstreamer
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-bad
-    gst-plugins-ugly
-    gst-libav
-  ]);
-
-  mesonFlags = [
-    "-Dnautilus=false"
-    "-Dps=enabled"
-  ] ++ lib.optionals (!withLibsecret) [
-    "-Dkeyring=disabled"
-  ] ++ lib.optionals (!supportMultimedia) [
-    "-Dmultimedia=disabled"
-  ];
-
-  preFixup = ''
-    gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
-  '';
-
-  postFixup = ''
-    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
-    moveToOutput "share/doc" "$devdoc"
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "evince";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/Evince/";
-    description = "GNOME's document viewer";
-
-    longDescription = ''
-      Evince is a document viewer for multiple document formats.  It
-      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
-      of Evince is to replace the multiple document viewers that exist
-      on the GNOME Desktop with a single simple application.
-    '';
-
-    license = licenses.gpl2Plus;
-    platforms = platforms.unix;
-    mainProgram = "evince";
-    maintainers = teams.gnome.members ++ teams.pantheon.members;
-  };
-})
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);
diff --git a/pkgs/desktops/gnome/core/gdm/default.nix b/pkgs/desktops/gnome/core/gdm/default.nix
index d7f5e94519c2d..3bf5ca788e02a 100644
--- a/pkgs/desktops/gnome/core/gdm/default.nix
+++ b/pkgs/desktops/gnome/core/gdm/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdm/${lib.versions.major finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
+    url = "mirror://gnome/sources/gdm/${lib.versions.major finalAttrs.version}/gdm-${finalAttrs.version}.tar.xz";
     hash = "sha256-TuNFQioWU3FQzYQkUM2lKyyoaYS8Ue4gzcAl3PS9Jos=";
   };
 
diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
index 526363a613938..6c63a486eef76 100644
--- a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , fetchpatch
 , gnome
+, adwaita-icon-theme
 , meson
 , ninja
 , pkg-config
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
     udev
     libnotify
     libcanberra-gtk3
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
     gsettings-desktop-schemas
   ];
 
@@ -91,7 +92,7 @@ stdenv.mkDerivation rec {
     homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
     description = "Application that let you manage Bluetooth in the GNOME destkop";
     mainProgram = "bluetooth-sendto";
-    maintainers = teams.gnome.members;
+    maintainers = [ ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
index 8b1fd59d3f8cc..f06954aec2fd2 100644
--- a/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-bluetooth";
-  version = "46.0";
+  version = "46.1";
 
   # TODO: split out "lib"
   outputs = [ "out" "dev" "devdoc" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-E/4edfMXrNvfXoDJAp0uBjLWCpzPcqQ64263VFAh++8=";
+    hash = "sha256-VsRKFwNFmOlgdFivrhvnXz3l798OYjVfCbpY/HvDEqw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-calculator/default.nix b/pkgs/desktops/gnome/core/gnome-calculator/default.nix
deleted file mode 100644
index 3b666976681e2..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-calculator/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv
-, lib
-, appstream
-, meson
-, ninja
-, vala
-, gettext
-, itstool
-, fetchurl
-, pkg-config
-, libxml2
-, gtk4
-, glib
-, gtksourceview5
-, wrapGAppsHook4
-, gnome
-, mpfr
-, gmp
-, libsoup_3
-, libmpc
-, libadwaita
-, gsettings-desktop-schemas
-, libgee
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-calculator";
-  version = "46.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-LTZ1CnOJAIYSLPPwyD5oUXiRWFYVFlMG+hWWqRhmgkc=";
-  };
-
-  nativeBuildInputs = [
-    appstream
-    meson
-    ninja
-    pkg-config
-    vala
-    gettext
-    itstool
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    gtk4
-    glib
-    libxml2
-    gtksourceview5
-    mpfr
-    gmp
-    libgee
-    gsettings-desktop-schemas
-    libsoup_3
-    libmpc
-    libadwaita
-  ];
-
-  doCheck = true;
-
-  preCheck = ''
-    # Currency conversion test tries to store currency data in $HOME/.cache.
-    export HOME=$TMPDIR
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-calculator";
-      attrPath = "gnome.gnome-calculator";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/Calculator/";
-    description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-common/default.nix b/pkgs/desktops/gnome/core/gnome-common/default.nix
deleted file mode 100644
index a9d28fcd4cfce..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-common/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, stdenv, fetchurl, which, gnome, autoconf, automake }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-common";
-  version = "3.18.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-common/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
-  };
-
-  passthru = {
-    updateScript = gnome.updateScript { packageName = "gnome-common"; attrPath = "gnome.gnome-common"; };
-  };
-
-  propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome-common tends to require which
-
-  meta = with lib; {
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index 6602a3795834c..59f8b2b8e746b 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -68,16 +68,16 @@
 , gnome-user-share
 , gnome-remote-desktop
 , wrapGAppsHook4
-, xvfb-run
+, xorgserver
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-control-center";
-  version = "46.2";
+  version = "46.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-control-center/${lib.versions.major finalAttrs.version}/gnome-control-center-${finalAttrs.version}.tar.xz";
-    hash = "sha256-YzXGy4Fk5XTbUh//Yc+j36pV8dtmrjvKAnUKGT4cTz0=";
+    hash = "sha256-Wb0wWDl3v6KOVCJ+7iEeqG9If81tORXtIfWTJCZxAeA=";
   };
 
   patches = [
@@ -155,9 +155,10 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeCheckInputs = [
     dbus
+    python3.pkgs.pygobject3 # for test-networkmanager-service.py
     python3.pkgs.python-dbusmock
     setxkbmap
-    xvfb-run
+    xorgserver # for Xvfb
   ];
 
   doCheck = true;
@@ -167,19 +168,10 @@ stdenv.mkDerivation (finalAttrs: {
     addToSearchPath "XDG_DATA_DIRS" "${polkit.out}/share"
   '';
 
-  checkPhase = ''
-    runHook preCheck
-
-    testEnvironment=(
-      # Basically same as https://github.com/NixOS/nixpkgs/pull/141299
-      "ADW_DISABLE_PORTAL=1"
-      "XDG_DATA_DIRS=${glib.getSchemaDataDirPath gsettings-desktop-schemas}"
-    )
-
-    env "''${testEnvironment[@]}" xvfb-run \
-      meson test --print-errorlogs
-
-    runHook postCheck
+  preCheck = ''
+    # Basically same as https://github.com/NixOS/nixpkgs/pull/141299
+    export ADW_DISABLE_PORTAL=1
+    export XDG_DATA_DIRS=${glib.getSchemaDataDirPath gsettings-desktop-schemas}
   '';
 
   postInstall = ''
diff --git a/pkgs/desktops/gnome/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
deleted file mode 100644
index 0fed6638f97e7..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, fetchpatch
-, meson
-, ninja
-, pkg-config
-, desktop-file-utils
-, appstream-glib
-, libxslt
-, libxml2
-, gettext
-, itstool
-, wrapGAppsHook3
-, docbook_xsl
-, docbook_xml_dtd_43
-, gnome
-, gtk3
-, glib
-, gsettings-desktop-schemas
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-dictionary";
-  version = "40.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f";
-  };
-
-  patches = [
-    # Fix test dependencies with meson 0.57, can be removed on next bump
-    # We need to explicitly depend on the generated files.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/Archive/gnome-dictionary/-/commit/87c026cfe4acbcfc62d15950f88a71d8d9678c7e.patch";
-      sha256 = "tKesWeOK3OqOxrXm4dZvCZHHdTD7AQbYDjtYDCsLd3A=";
-    })
-    # Fix build with meson 0.61, can be removed on next bump
-    # data/appdata/meson.build:3:5: ERROR: Function does not take positional arguments.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/Archive/gnome-dictionary/-/commit/cf3f8a67cd6f3059c555ed9cf0f5fba10abb7f68.patch";
-      sha256 = "cIRM6ACqsnEo2JWYvr6EBye5o0BudugZMShCe1U5hz8=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook3
-    libxml2
-    gettext
-    itstool
-    desktop-file-utils
-    appstream-glib
-    libxslt
-    docbook_xsl
-    docbook_xml_dtd_43
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    gsettings-desktop-schemas
-    gnome.adwaita-icon-theme
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-dictionary";
-      attrPath = "gnome.gnome-dictionary";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/Archive/gnome-dictionary";
-    description = "Dictionary is the GNOME application to look up definitions";
-    mainProgram = "gnome-dictionary";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
deleted file mode 100644
index 536e71f630ee9..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ lib
-, stdenv
-, gettext
-, fetchurl
-, pkg-config
-, udisks2
-, libhandy
-, libsecret
-, libdvdread
-, meson
-, ninja
-, gtk3
-, glib
-, wrapGAppsHook3
-, libnotify
-, itstool
-, gnome
-, libxml2
-, gsettings-desktop-schemas
-, libcanberra-gtk3
-, libxslt
-, docbook-xsl-nons
-, desktop-file-utils
-, libpwquality
-, systemd
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-disk-utility";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-RkZJFIxtZ3HxrC6/5DpOUZIFsRwtkUoJ8qABgh0GlX0=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    itstool
-    libxslt
-    docbook-xsl-nons
-    desktop-file-utils
-    wrapGAppsHook3
-    libxml2
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    libhandy
-    libsecret
-    libpwquality
-    libnotify
-    libdvdread
-    libcanberra-gtk3
-    udisks2
-    gnome.adwaita-icon-theme
-    systemd
-    gnome.gnome-settings-daemon
-    gsettings-desktop-schemas
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-disk-utility";
-      attrPath = "gnome.gnome-disk-utility";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/DiskUtility/";
-    description = "Udisks graphical front-end";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-    mainProgram = "gnome-disks";
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
deleted file mode 100644
index 5a0f8d82cb535..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib
-, stdenv
-, meson
-, ninja
-, gettext
-, fetchurl
-, pkg-config
-, gtk4
-, glib
-, libxml2
-, gnome-desktop
-, libadwaita
-, fribidi
-, wrapGAppsHook4
-, gnome
-, harfbuzz
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-font-viewer";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-WS9AHkhdAswETUh7tcjgTJYdpoViFnaKWfH/mL0tU3w=";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    wrapGAppsHook4
-    libxml2
-    glib
-  ];
-
-  buildInputs = [
-    gtk4
-    glib
-    gnome-desktop
-    harfbuzz
-    libadwaita
-    fribidi
-  ];
-
-  # Do not run meson-postinstall.sh
-  preConfigure = "sed -i '2,$ d'  meson-postinstall.sh";
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-font-viewer";
-      attrPath = "gnome.gnome-font-viewer";
-    };
-  };
-
-  meta = with lib; {
-    description = "Program that can preview fonts and create thumbnails for fonts";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-font-viewer";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 19280b1bff927..2d40503c1d70e 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-initial-setup";
-  version = "46.2";
+  version = "46.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-initial-setup/${lib.versions.major finalAttrs.version}/gnome-initial-setup-${finalAttrs.version}.tar.xz";
-    hash = "sha256-bHktiSrbYLDeC33oglwUlD0c0nmvT5x2So9UEbYKjyc=";
+    hash = "sha256-o/AQgp9NTI1J+Dqxz6uCG2GyeA6eC15Wicfv8/hE7T4=";
   };
 
   patches = [
@@ -90,8 +90,6 @@ stdenv.mkDerivation (finalAttrs: {
     "-Dvendor-conf-file=${./vendor.conf}"
   ];
 
-  PKG_CONFIG_SYSTEMD_SYSUSERSDIR = "${placeholder "out"}/lib/sysusers.d";
-
   passthru = {
     updateScript = gnome.updateScript {
       packageName = "gnome-initial-setup";
diff --git a/pkgs/desktops/gnome/core/gnome-keyring/default.nix b/pkgs/desktops/gnome/core/gnome-keyring/default.nix
deleted file mode 100644
index d8a455b0b9faa..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-keyring/default.nix
+++ /dev/null
@@ -1,109 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, pkg-config
-, dbus
-, libgcrypt
-, pam
-, python3
-, glib
-, libxslt
-, gettext
-, gcr
-, libcap_ng
-, libselinux
-, p11-kit
-, openssh
-, wrapGAppsHook3
-, docbook-xsl-nons
-, docbook_xml_dtd_43
-, gnome
-, useWrappedDaemon ? true
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-keyring";
-  version = "46.1";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-keyring/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-sdOukTL/L4s/JaGQeQiSlo49Cs+VKkh+QPZEqFUM4/Y=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    gettext
-    libxslt
-    docbook-xsl-nons
-    docbook_xml_dtd_43
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    glib
-    libgcrypt
-    pam
-    openssh
-    libcap_ng
-    libselinux
-    gcr
-    p11-kit
-  ];
-
-  nativeCheckInputs = [ dbus python3 ];
-
-  configureFlags = [
-    "--with-pkcs11-config=${placeholder "out"}/etc/pkcs11/" # installation directories
-    "--with-pkcs11-modules=${placeholder "out"}/lib/pkcs11/"
-    # gnome-keyring doesn't build with ssh-agent by default anymore, we need to
-    # switch to using gcr https://github.com/NixOS/nixpkgs/issues/140824
-    "--enable-ssh-agent"
-    # cross compilation requires these paths to be explicitly declared:
-    "LIBGCRYPT_CONFIG=${lib.getExe' (lib.getDev libgcrypt) "libgcrypt-config"}"
-    "SSH_ADD=${lib.getExe' openssh "ssh-add"}"
-    "SSH_AGENT=${lib.getExe' openssh "ssh-agent"}"
-  ];
-
-  # Tends to fail non-deterministically.
-  # - https://github.com/NixOS/nixpkgs/issues/55293
-  # - https://github.com/NixOS/nixpkgs/issues/51121
-  doCheck = false;
-
-  postPatch = ''
-    patchShebangs build
-  '';
-
-  checkPhase = ''
-    export HOME=$(mktemp -d)
-    dbus-run-session \
-      --config-file=${dbus}/share/dbus-1/session.conf \
-      make check
-  '';
-
-  # Use wrapped gnome-keyring-daemon with cap_ipc_lock=ep
-  postFixup = lib.optionalString useWrappedDaemon ''
-    files=($out/etc/xdg/autostart/* $out/share/dbus-1/services/*)
-
-    for file in ''${files[*]}; do
-      substituteInPlace $file \
-        --replace "$out/bin/gnome-keyring-daemon" "/run/wrappers/bin/gnome-keyring-daemon"
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-keyring";
-      attrPath = "gnome.gnome-keyring";
-    };
-  };
-
-  meta = with lib; {
-    description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-keyring";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index e7a70f2369e41..1c88978fcd75a 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -30,11 +30,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "46.2";
+  version = "46.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-l0Q+r/5LGmliaIakHSXL6ywUjT/tQ9khFcG30g1SOKs=";
+    hash = "sha256-KLwH6W2qFJy45NCldN8KLObsbOZHutyGFUzmEoIsxR4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
deleted file mode 100644
index b8fa9a9f0c29e..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{ stdenv
-, lib
-, gettext
-, libxml2
-, libhandy
-, fetchurl
-, fetchpatch
-, pkg-config
-, libcanberra-gtk3
-, gtk3
-, glib
-, meson
-, ninja
-, python3
-, wrapGAppsHook3
-, appstream-glib
-, desktop-file-utils
-, gnome
-, gsettings-desktop-schemas
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-screenshot";
-  version = "41.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Stt97JJkKPdCY9V5ZnPPFC5HILbnaPVGio0JM/mMlZc=";
-  };
-
-  patches = [
-    # Fix build with meson 0.61
-    # https://gitlab.gnome.org/GNOME/gnome-screenshot/-/issues/186
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-screenshot/-/commit/b60dad3c2536c17bd201f74ad8e40eb74385ed9f.patch";
-      sha256 = "Js83h/3xxcw2hsgjzGa5lAYFXVrt6MPhXOTh5dZTx/w=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    appstream-glib
-    libxml2
-    desktop-file-utils
-    python3
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    libcanberra-gtk3
-    libhandy
-    gnome.adwaita-icon-theme
-    gsettings-desktop-schemas
-  ];
-
-  doCheck = true;
-
-  postPatch = ''
-    chmod +x build-aux/postinstall.py # patchShebangs requires executable file
-    patchShebangs build-aux/postinstall.py
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-screenshot";
-    description = "Utility used in the GNOME desktop environment for taking screenshots";
-    mainProgram = "gnome-screenshot";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix
index 5d4504b908527..f7aa278fe8cc9 100644
--- a/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-session/default.nix
@@ -6,6 +6,7 @@
 , ninja
 , pkg-config
 , gnome
+, adwaita-icon-theme
 , glib
 , gtk3
 , gsettings-desktop-schemas
@@ -69,7 +70,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     json-glib
     xorg.xtrans
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
     gnome.gnome-settings-daemon
     gsettings-desktop-schemas
     systemd
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 3f91cddc20525..f84908eff0741 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -14,7 +14,6 @@
 , networkmanager
 , gi-docgen
 , at-spi2-core
-, libstartup_notification
 , unzip
 , shared-mime-info
 , libgweather
@@ -43,7 +42,6 @@
 , gjs
 , mutter
 , evolution-data-server-gtk4
-, gtk3
 , gtk4
 , libadwaita
 , sassc
@@ -59,6 +57,10 @@
 , asciidoc
 , bash-completion
 , mesa
+, libGL
+, libXi
+, libX11
+, libxml2
 }:
 
 let
@@ -66,13 +68,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell";
-  version = "46.2";
+  version = "46.4";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
-    hash = "sha256-a1hxAcBL+zZKsJzTi12T6+60JUdUyAfPcS+8juP94jg=";
+    hash = "sha256-GIRo/nLpCsSyNOnU0HB9YH/q85oT0lvTqj63XlWj4FI=";
   };
 
   patches = [
@@ -131,13 +133,11 @@ stdenv.mkDerivation (finalAttrs: {
     gdk-pixbuf
     librsvg
     networkmanager
-    libstartup_notification
     gjs
     mutter
     libpulseaudio
     evolution-data-server-gtk4
     libical
-    gtk3
     gtk4
     libadwaita
     gdm
@@ -151,6 +151,10 @@ stdenv.mkDerivation (finalAttrs: {
     gnome-desktop
     gnome-settings-daemon
     mesa
+    libGL # for egl, required by mutter-clutter
+    libXi # required by libmutter
+    libX11
+    libxml2
 
     # recording
     pipewire
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index bca1ea13b5e3e..3a67487236360 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -28,6 +28,7 @@
 , libxmlb
 , malcontent
 , json-glib
+, glib-networking
 , libsecret
 , valgrind-light
 , docbook-xsl-nons
@@ -45,11 +46,11 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-software";
-  version = "46.2";
+  version = "46.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${lib.versions.major finalAttrs.version}/gnome-software-${finalAttrs.version}.tar.xz";
-    hash = "sha256-5wDLood2T14iVVFOMS4WBVD9v3pdP+FjWLtve2cyuXQ=";
+    hash = "sha256-ZVTR3gfnxjUtqLBjhP6hPaZJnXHAW1rQANjiHLFT9a8=";
   };
 
   patches = [
@@ -78,6 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     gtk4
     glib
+    glib-networking
     packagekit
     appstream
     libsoup_3
diff --git a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
deleted file mode 100644
index bc7caa3ad27b5..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ lib
-, stdenv
-, gettext
-, fetchurl
-, pkg-config
-, gtkmm4
-, libxml2
-, bash
-, gtk4
-, libadwaita
-, glib
-, wrapGAppsHook4
-, meson
-, ninja
-, gsettings-desktop-schemas
-, itstool
-, gnome
-, librsvg
-, gdk-pixbuf
-, libgtop
-, systemd
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-system-monitor";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-U3YkgVjGhsMIJVRy6MKp5MFyVWQsFJ/HGYxtA05UdZk=";
-  };
-
-  patches = [
-    # Fix pkexec detection on NixOS.
-    ./fix-paths.patch
-  ];
-
-  nativeBuildInputs = [
-    pkg-config
-    gettext
-    itstool
-    wrapGAppsHook4
-    meson
-    ninja
-    glib
-  ];
-
-  buildInputs = [
-    bash
-    gtk4
-    libadwaita
-    glib
-    libxml2
-    gtkmm4
-    libgtop
-    gdk-pixbuf
-    gnome.adwaita-icon-theme
-    librsvg
-    gsettings-desktop-schemas
-    systemd
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-system-monitor";
-      attrPath = "gnome.gnome-system-monitor";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/SystemMonitor/";
-    description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
-    mainProgram = "gnome-system-monitor";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch
deleted file mode 100644
index 967ef5e155421..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/gsm_pkexec.cpp b/src/gsm_pkexec.cpp
-index 5e1edf2f..717d7bf1 100644
---- a/src/gsm_pkexec.cpp
-+++ b/src/gsm_pkexec.cpp
-@@ -36,5 +36,6 @@ gsm_pkexec_create_root_password_dialog (const char *command)
- gboolean
- procman_has_pkexec (void)
- {
--  return g_file_test ("/usr/bin/pkexec", G_FILE_TEST_EXISTS);
-+  return g_file_test ("/run/wrappers/bin/pkexec", G_FILE_TEST_EXISTS)
-+      || g_file_test ("/usr/bin/pkexec", G_FILE_TEST_EXISTS);
- }
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
deleted file mode 100644
index 7cfde6e911ae2..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitLab
-, meson
-, ninja
-, pkg-config
-, python3
-, libxml2
-, gitUpdater
-, nautilus
-, glib
-, gtk4
-, gtk3
-, libhandy
-, gsettings-desktop-schemas
-, vte
-, gettext
-, which
-, libuuid
-, vala
-, desktop-file-utils
-, itstool
-, wrapGAppsHook3
-, pcre2
-, libxslt
-, docbook-xsl-nons
-, nixosTests
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "gnome-terminal";
-  version = "3.52.2";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "gnome-terminal";
-    rev = finalAttrs.version;
-    hash = "sha256-c6xMUyhQnJiIrFnnUEx6vGVvFghGvLjTxiAFq+nSj2A=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    itstool
-    which
-    libxml2
-    libxslt
-    glib # for glib-compile-schemas
-    docbook-xsl-nons
-    vala
-    desktop-file-utils
-    wrapGAppsHook3
-    pcre2
-    python3
-  ];
-
-  buildInputs = [
-    glib
-    gtk4
-    gtk3
-    libhandy
-    gsettings-desktop-schemas
-    vte
-    libuuid
-    nautilus # For extension
-  ];
-
-  postPatch = ''
-    patchShebangs \
-      data/icons/meson_updateiconcache.py \
-      data/meson_desktopfile.py \
-      data/meson_metainfofile.py \
-      src/meson_compileschemas.py
-  '';
-
-  passthru = {
-    updateScript = gitUpdater {
-      odd-unstable = true;
-    };
-
-    tests = {
-      test = nixosTests.terminal-emulators.gnome-terminal;
-    };
-  };
-
-  meta = with lib; {
-    description = "GNOME Terminal Emulator";
-    mainProgram = "gnome-terminal";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-terminal";
-    platforms = platforms.linux;
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/gnome-themes-extra/default.nix b/pkgs/desktops/gnome/core/gnome-themes-extra/default.nix
deleted file mode 100644
index 52aededca0fe6..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-themes-extra/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchurl, intltool, gtk3, gnome, librsvg, pkg-config, pango, atk, gtk2
-, gdk-pixbuf, hicolor-icon-theme }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-themes-extra";
-  version = "3.28";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-themes-extra/${lib.versions.majorMinor version}/gnome-themes-extra-${version}.tar.xz";
-    sha256 = "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw";
-  };
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-    };
-  };
-
-  nativeBuildInputs = [ pkg-config intltool gtk3 ];
-  buildInputs = [ gtk3 librsvg pango atk gtk2 gdk-pixbuf ];
-  propagatedBuildInputs = [ gnome.adwaita-icon-theme hicolor-icon-theme ];
-
-  dontDropIconThemeCache = true;
-
-  postInstall = ''
-    gtk-update-icon-cache "$out"/share/icons/HighContrast
-  '';
-
-  meta = with lib; {
-    platforms = platforms.unix;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-user-share/default.nix b/pkgs/desktops/gnome/core/gnome-user-share/default.nix
deleted file mode 100644
index a9f14ba0437b3..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-user-share/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ stdenv
-, lib
-, gettext
-, meson
-, ninja
-, fetchurl
-, apacheHttpdPackages
-, pkg-config
-, glib
-, libxml2
-, systemd
-, wrapGAppsNoGuiHook
-, itstool
-, gnome
-}:
-
-let
-  inherit (apacheHttpdPackages) apacheHttpd mod_dnssd;
-in
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "gnome-user-share";
-  version = "43.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-user-share/${lib.versions.major finalAttrs.version}/gnome-user-share-${finalAttrs.version}.tar.xz";
-    sha256 = "DfMGqgVYMT81Pvf1G/onwDYoGtxFZ34c+/p8n4YVOM4=";
-  };
-
-  preConfigure = ''
-    sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \
-      -e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \
-      -i data/dav_user_2.4.conf
-  '';
-
-  mesonFlags = [
-    "-Dhttpd=${apacheHttpd.out}/bin/httpd"
-    "-Dmodules_path=${apacheHttpd}/modules"
-    "-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
-  ];
-
-  nativeBuildInputs = [
-    pkg-config
-    meson
-    ninja
-    gettext
-    itstool
-    libxml2
-    wrapGAppsNoGuiHook
-  ];
-
-  buildInputs = [
-    glib
-    systemd
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-user-share";
-      attrPath = "gnome.gnome-user-share";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-user-share";
-    description = "Service that exports the contents of the Public folder in your home directory on the local network";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/gucharmap/default.nix b/pkgs/desktops/gnome/core/gucharmap/default.nix
deleted file mode 100644
index 17f8465f380bf..0000000000000
--- a/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{ stdenv
-, lib
-, intltool
-, fetchFromGitLab
-, meson
-, mesonEmulatorHook
-, ninja
-, pkg-config
-, python3
-, gtk3
-, pcre2
-, glib
-, desktop-file-utils
-, gtk-doc
-, wrapGAppsHook3
-, itstool
-, libxml2
-, yelp-tools
-, docbook_xsl
-, docbook_xml_dtd_412
-, gsettings-desktop-schemas
-, unzip
-, unicode-character-database
-, unihan-database
-, runCommand
-, symlinkJoin
-, gobject-introspection
-, gitUpdater
-}:
-
-let
-  # TODO: make upstream patch allowing to use the uncompressed file,
-  # preferably from XDG_DATA_DIRS.
-  # https://gitlab.gnome.org/GNOME/gucharmap/issues/13
-  unihanZip = runCommand "unihan" {} ''
-    mkdir -p $out/share/unicode
-    ln -s ${unihan-database.src} $out/share/unicode/Unihan.zip
-  '';
-  ucd = symlinkJoin {
-    name = "ucd+unihan";
-    paths = [
-      unihanZip
-      unicode-character-database
-    ];
-  };
-in stdenv.mkDerivation (finalAttrs: {
-  pname = "gucharmap";
-  version = "15.1.5";
-
-  outputs = [ "out" "lib" "dev" "devdoc" ];
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "gucharmap";
-    rev = finalAttrs.version;
-    sha256 = "sha256-PG86D8QvqHdmo3aJseCerngmuWUqtSMdWzbixWE2HOQ=";
-  };
-
-  strictDeps = true;
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    python3
-    wrapGAppsHook3
-    unzip
-    intltool
-    itstool
-    gtk-doc
-    docbook_xsl
-    docbook_xml_dtd_412
-    yelp-tools
-    libxml2
-    desktop-file-utils
-    gobject-introspection
-  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
-    mesonEmulatorHook
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    gsettings-desktop-schemas
-    pcre2
-  ];
-
-  mesonFlags = [
-    "-Ducd_path=${ucd}/share/unicode"
-    "-Dvapi=false"
-  ];
-
-  doCheck = true;
-
-  postPatch = ''
-    patchShebangs \
-      data/meson_desktopfile.py \
-      gucharmap/gen-guch-unicode-tables.pl
-  '';
-
-  passthru = {
-    updateScript = gitUpdater {
-    };
-  };
-
-  meta = with lib; {
-    description = "GNOME Character Map, based on the Unicode Character Database";
-    mainProgram = "gucharmap";
-    homepage = "https://gitlab.gnome.org/GNOME/gucharmap";
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome/core/libgnome-keyring/default.nix
deleted file mode 100644
index 912953dfb33f6..0000000000000
--- a/pkgs/desktops/gnome/core/libgnome-keyring/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchurl, glib, dbus, libgcrypt, pkg-config, intltool, gobject-introspection, gnome
-, testers
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "libgnome-keyring";
-  version = "3.12.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/libgnome-keyring/${lib.versions.majorMinor finalAttrs.version}/libgnome-keyring-${finalAttrs.version}.tar.xz";
-    sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  propagatedBuildInputs = [ glib gobject-introspection dbus libgcrypt ];
-  nativeBuildInputs = [ pkg-config intltool ];
-
-  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
-
-  meta = {
-    description = "Framework for managing passwords and other secrets";
-    homepage = "https://gitlab.gnome.org/Archive/libgnome-keyring";
-    license = with lib.licenses; [ gpl2Plus lgpl2Plus ];
-    pkgConfigModules = [ "gnome-keyring-1" ];
-    platforms = lib.platforms.unix;
-    maintainers = [];
-
-    longDescription = ''
-      gnome-keyring is a program that keeps password and other secrets for
-      users. The library libgnome-keyring is used by applications to integrate
-      with the gnome-keyring system.
-    '';
-  };
-})
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index a53eb5b7cfe3a..8ba3306238910 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -66,13 +66,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mutter";
-  version = "46.2";
+  version = "46.4";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    hash = "sha256-AJuqd/g2JhLKouGMM4obPIqtO1/ilkwv73gk0yEiiYM=";
+    hash = "sha256-YRvZz5gq21ZZfOKzQiQnL9phm7O7kSpoTXXG8sN1AuQ=";
   };
 
   mesonFlags = [
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
deleted file mode 100644
index f8d650b4648a2..0000000000000
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ /dev/null
@@ -1,135 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, gi-docgen
-, docbook-xsl-nons
-, gettext
-, desktop-file-utils
-, wrapGAppsHook4
-, gtk4
-, libadwaita
-, libportal-gtk4
-, gnome
-, gnome-autoar
-, glib-networking
-, shared-mime-info
-, libnotify
-, libexif
-, libjxl
-, libseccomp
-, librsvg
-, webp-pixbuf-loader
-, tracker
-, tracker-miners
-, gexiv2
-, libselinux
-, libcloudproviders
-, gdk-pixbuf
-, substituteAll
-, gnome-desktop
-, gst_all_1
-, gsettings-desktop-schemas
-, gnome-user-share
-, gobject-introspection
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "nautilus";
-  version = "46.2";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz";
-    hash = "sha256-bujJkBm540R/aRjWgjKiDeyonlUlwFgFQyt9iEDKcfo=";
-  };
-
-  patches = [
-    # Allow changing extension directory using environment variable.
-    ./extension_dir.patch
-
-    # Hardcode required paths.
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tracker;
-    })
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    gobject-introspection
-    meson
-    ninja
-    pkg-config
-    gi-docgen
-    docbook-xsl-nons
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    gexiv2
-    glib-networking
-    gnome-desktop
-    gnome.adwaita-icon-theme
-    gsettings-desktop-schemas
-    gnome-user-share
-    gst_all_1.gst-plugins-base
-    gtk4
-    libadwaita
-    libportal-gtk4
-    libexif
-    libnotify
-    libseccomp
-    libselinux
-    gdk-pixbuf
-    libcloudproviders
-    shared-mime-info
-    tracker
-    tracker-miners
-    gnome-autoar
-  ];
-
-  propagatedBuildInputs = [
-    gtk4
-  ];
-
-  mesonFlags = [
-    "-Ddocs=true"
-  ];
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # Thumbnailers
-      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
-      --prefix XDG_DATA_DIRS : "${libjxl}/share"
-      --prefix XDG_DATA_DIRS : "${librsvg}/share"
-      --prefix XDG_DATA_DIRS : "${webp-pixbuf-loader}/share"
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-    )
-  '';
-
-  postFixup = ''
-    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
-    moveToOutput "share/doc" "$devdoc"
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "nautilus";
-      attrPath = "gnome.nautilus";
-    };
-  };
-
-  meta = with lib; {
-    description = "File manager for GNOME";
-    homepage = "https://apps.gnome.org/Nautilus/";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-    mainProgram = "nautilus";
-  };
-})
diff --git a/pkgs/desktops/gnome/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome/core/nautilus/extension_dir.patch
deleted file mode 100644
index d7cd161a8dfc5..0000000000000
--- a/pkgs/desktops/gnome/core/nautilus/extension_dir.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/nautilus-module.c b/src/nautilus-module.c
-index cd889ff18..e2cd6468e 100644
---- a/src/nautilus-module.c
-+++ b/src/nautilus-module.c
-@@ -267,6 +267,7 @@ void
- nautilus_module_setup (void)
- {
-     static gboolean initialized = FALSE;
-+    const gchar* extensiondir = NULL;
-     const gchar *disable_plugins;
- 
-     disable_plugins = g_getenv ("NAUTILUS_DISABLE_PLUGINS");
-@@ -280,7 +281,12 @@ nautilus_module_setup (void)
-     {
-         initialized = TRUE;
- 
--        load_module_dir (NAUTILUS_EXTENSIONDIR);
-+        extensiondir = g_getenv ("NAUTILUS_4_EXTENSION_DIR");
-+        if (extensiondir == NULL) {
-+            extensiondir = NAUTILUS_EXTENSIONDIR;
-+        }
-+
-+        load_module_dir (extensiondir);
-     }
diff --git a/pkgs/desktops/gnome/core/nautilus/fix-paths.patch b/pkgs/desktops/gnome/core/nautilus/fix-paths.patch
deleted file mode 100644
index dc9874359b233..0000000000000
--- a/pkgs/desktops/gnome/core/nautilus/fix-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/nautilus-tag-manager.c b/src/nautilus-tag-manager.c
-index 28b96c996..0b1fad9ab 100644
---- a/src/nautilus-tag-manager.c
-+++ b/src/nautilus-tag-manager.c
-@@ -962,7 +962,7 @@ child_watch_cb (GPid     pid,
- static void
- export_tracker2_data (NautilusTagManager *self)
- {
--    gchar *argv[] = {"tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL};
-+    gchar *argv[] = {"@tracker@/bin/tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL};
-     gint stdout_fd;
-     GPid child_pid;
-     g_autoptr (GError) error = NULL;
diff --git a/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch b/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
deleted file mode 100644
index 5204e3518aba7..0000000000000
--- a/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 27bde61f..3d434de9 100644
---- a/meson.build
-+++ b/meson.build
-@@ -22,7 +22,11 @@ if not get_option('uninstalled')
-     rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'rygel')
-     rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'),
-     'rygel')
--    rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
-+    if get_option('sysconfdir_install') != ''
-+        rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir_install'))
-+    else
-+        rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
-+    endif
-     rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.8', 'plugins')
-     rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.8', 'engines')
-     rygel_presetdir = join_paths(rygel_datadir, 'presets')
-@@ -57,7 +61,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
- conf.set_quoted('PLUGIN_DIR', rygel_plugindir)
- conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir)
- conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir)
--conf.set_quoted('SYS_CONFIG_DIR', rygel_sysconfdir)
-+conf.set_quoted('SYS_CONFIG_DIR', get_option('sysconfdir'))
- conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
- conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract'))
- conf.set_quoted('DESKTOP_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'applications'))
-diff --git a/meson_options.txt b/meson_options.txt
-index fd04776a..3dee43ba 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -1,3 +1,4 @@
-+option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
- option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only')
- option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation')
- option('man_pages', type: 'boolean', value: 'true', description: 'Build the man pages')
diff --git a/pkgs/desktops/gnome/core/rygel/default.nix b/pkgs/desktops/gnome/core/rygel/default.nix
deleted file mode 100644
index 7c93bc8668e4d..0000000000000
--- a/pkgs/desktops/gnome/core/rygel/default.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, vala
-, gettext
-, libxml2
-, gobject-introspection
-, wrapGAppsHook3
-, python3
-, glib
-, gssdp_1_6
-, gupnp_1_6
-, gupnp-av
-, gupnp-dlna
-, gst_all_1
-, libgee
-, libsoup_3
-, gtk3
-, libmediaart
-, sqlite
-, systemd
-, tracker
-, shared-mime-info
-, gnome
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "rygel";
-  version = "0.42.6";
-
-  # TODO: split out lib
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/rygel/${lib.versions.majorMinor finalAttrs.version}/rygel-${finalAttrs.version}.tar.xz";
-    sha256 = "R9JXBLYQiDdeJqq6Vr5HwXGJRy5vgMdSq+hvAu9OMwQ=";
-  };
-
-  patches = [
-    ./add-option-for-installation-sysconfdir.patch
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    vala
-    gettext
-    libxml2
-    gobject-introspection
-    wrapGAppsHook3
-    python3
-  ];
-
-  buildInputs = [
-    glib
-    gssdp_1_6
-    gupnp_1_6
-    gupnp-av
-    gupnp-dlna
-    libgee
-    libsoup_3
-    gtk3
-    libmediaart
-    sqlite
-    systemd
-    tracker
-    shared-mime-info
-  ] ++ (with gst_all_1; [
-    gstreamer
-    gst-editing-services
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-bad
-    gst-plugins-ugly
-  ]);
-
-  mesonFlags = [
-    "-Dsystemd-user-units-dir=${placeholder "out"}/lib/systemd/user"
-    "-Dapi-docs=false"
-    "--sysconfdir=/etc"
-    "-Dsysconfdir_install=${placeholder "out"}/etc"
-  ];
-
-  doCheck = true;
-
-  postPatch = ''
-    patchShebangs data/xml/process-xml.py
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "rygel";
-      attrPath = "gnome.rygel";
-      versionPolicy = "odd-unstable";
-    };
-  };
-
-  meta = with lib; {
-    description = "Home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
-    homepage = "https://gitlab.gnome.org/GNOME/rygel";
-    license = licenses.lgpl21Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/simple-scan/default.nix b/pkgs/desktops/gnome/core/simple-scan/default.nix
deleted file mode 100644
index e7f2954ca39f4..0000000000000
--- a/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, gettext
-, itstool
-, python3
-, wrapGAppsHook4
-, cairo
-, gdk-pixbuf
-, colord
-, glib
-, libadwaita
-, gtk4
-, gusb
-, packagekit
-, libwebp
-, libxml2
-, sane-backends
-, vala
-, gnome
-, gobject-introspection
-}:
-
-stdenv.mkDerivation rec {
-  pname = "simple-scan";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-wW5lkBQv5WO+UUMSKzu7U/awCn2p2VL2HEf6Jve08Kk=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    gettext
-    itstool
-    pkg-config
-    python3
-    wrapGAppsHook4
-    libxml2
-    gobject-introspection # For setup hook
-    vala
-  ];
-
-  buildInputs = [
-    cairo
-    gdk-pixbuf
-    colord
-    glib
-    gusb
-    libadwaita
-    gtk4
-    libwebp
-    packagekit
-    sane-backends
-  ];
-
-  postPatch = ''
-    patchShebangs data/meson_compile_gschema.py
-  '';
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "simple-scan";
-    };
-  };
-
-  meta = with lib; {
-    description = "Simple scanning utility";
-    mainProgram = "simple-scan";
-    longDescription = ''
-      A really easy way to scan both documents and photos. You can crop out the
-      bad parts of a photo and rotate it if it is the wrong way round. You can
-      print your scans, export them to pdf, or save them in a range of image
-      formats. Basically a frontend for SANE - which is the same backend as
-      XSANE uses. This means that all existing scanners will work and the
-      interface is well tested.
-    '';
-    homepage = "https://gitlab.gnome.org/GNOME/simple-scan";
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/sushi/default.nix b/pkgs/desktops/gnome/core/sushi/default.nix
deleted file mode 100644
index 18f6b382737df..0000000000000
--- a/pkgs/desktops/gnome/core/sushi/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, pkg-config
-, meson
-, gettext
-, gobject-introspection
-, glib
-, gnome
-, gtksourceview4
-, gjs
-, libsoup_3
-, webkitgtk_4_1
-, icu
-, wrapGAppsHook3
-, gst_all_1
-, gdk-pixbuf
-, librsvg
-, gtk3
-, harfbuzz
-, ninja
-, libepoxy
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sushi";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/sushi/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lghbqqQwqyFCxgaqtcR+L7sv0+two1ITfmXFmlig8sY=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    meson
-    ninja
-    gettext
-    gobject-introspection
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    gnome.evince
-    icu
-    harfbuzz
-    gjs
-    gtksourceview4
-    gdk-pixbuf
-    librsvg
-    libsoup_3
-    webkitgtk_4_1
-    libepoxy
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-ugly
-  ];
-
-  # See https://github.com/NixOS/nixpkgs/issues/31168
-  postInstall = ''
-    for file in $out/libexec/org.gnome.NautilusPreviewer
-    do
-      sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
-        -i $file
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "sushi";
-      attrPath = "gnome.sushi";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://en.wikipedia.org/wiki/Sushi_(software)";
-    description = "Quick previewer for Nautilus";
-    mainProgram = "sushi";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/totem/default.nix b/pkgs/desktops/gnome/core/totem/default.nix
deleted file mode 100644
index 56da00923f949..0000000000000
--- a/pkgs/desktops/gnome/core/totem/default.nix
+++ /dev/null
@@ -1,139 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, fetchpatch
-, meson
-, ninja
-, gettext
-, gst_all_1
-, python3Packages
-, shared-mime-info
-, pkg-config
-, gtk3
-, glib
-, gobject-introspection
-, totem-pl-parser
-, wrapGAppsHook3
-, itstool
-, libxml2
-, vala
-, gnome
-, grilo
-, grilo-plugins
-, libpeas
-, libportal-gtk3
-, libhandy
-, adwaita-icon-theme
-, gnome-desktop
-, gsettings-desktop-schemas
-, gdk-pixbuf
-, xvfb-run
-}:
-
-stdenv.mkDerivation rec {
-  pname = "totem";
-  version = "43.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/totem/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "s202VZKLWJZGKk05+Dtq1m0328nJnc6wLqii43OUpB4=";
-  };
-
-  patches = [
-    # Lower X11 dependency version since we do not have it.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/totem/-/commit/140d9eea70c3101ef3234abb4de5974cb84b13db.patch";
-      sha256 = "ohppxqMiH8Ksc9B2e3AXighfM6KVN+RNXYL+fLELSN8=";
-      revert = true;
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/totem/-/commit/2610b4536f73493587e4a5a38e01c9961fcabb96.patch";
-      sha256 = "nPfzS+LQuAlyQOz67hCdtx93w2frhgWlg1KGX5bEU38=";
-      revert = true;
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/totem/-/commit/5b871aee5292f25bbf39dca18045732e979e7a68.patch";
-      sha256 = "LqQLdgyZkIVc+/hQ5sdBLqhtjCVIMDSs9tjVXwMFodg=";
-      revert = true;
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    vala
-    pkg-config
-    gettext
-    python3Packages.python
-    itstool
-    gobject-introspection
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    grilo
-    totem-pl-parser
-    grilo-plugins
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-ugly
-    gst_all_1.gst-libav
-    libpeas
-    libportal-gtk3
-    libhandy
-    shared-mime-info
-    gdk-pixbuf
-    libxml2
-    adwaita-icon-theme
-    gnome-desktop
-    gsettings-desktop-schemas
-    python3Packages.pygobject3
-  ];
-
-  nativeCheckInputs = [
-    xvfb-run
-  ];
-
-  mesonFlags = [
-    # TODO: https://github.com/NixOS/nixpkgs/issues/36468
-    "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
-  ];
-
-  # Tests do not work with GStreamer 1.18.
-  # https://gitlab.gnome.org/GNOME/totem/-/issues/450
-  doCheck = false;
-
-  postPatch = ''
-    chmod +x meson_compile_python.py # patchShebangs requires executable file
-    patchShebangs \
-      ./meson_compile_python.py
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-
-    xvfb-run -s '-screen 0 800x600x24' \
-      ninja test
-
-    runHook postCheck
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "totem";
-      attrPath = "gnome.totem";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/Totem/";
-    description = "Movie player for the GNOME desktop based on GStreamer";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus; # with exception to allow use of non-GPL compatible plug-ins
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/yelp-xsl/default.nix b/pkgs/desktops/gnome/core/yelp-xsl/default.nix
deleted file mode 100644
index e440df2423bf3..0000000000000
--- a/pkgs/desktops/gnome/core/yelp-xsl/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, stdenv
-, gettext
-, fetchurl
-, pkg-config
-, itstool
-, libxml2
-, libxslt
-, gnome
-}:
-
-stdenv.mkDerivation rec {
-  pname = "yelp-xsl";
-  version = "42.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-I4vhULFlMIDOE5lxMw/TbTomWV4NagQKLAML89IAW80=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    gettext
-    itstool
-    libxml2
-    libxslt
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/yelp-xsl";
-    description = "Yelp's universal stylesheets for Mallard and DocBook";
-    maintainers = teams.gnome.members;
-    license = with licenses; [
-      # See https://gitlab.gnome.org/GNOME/yelp-xsl/blob/master/COPYING
-      # Stylesheets
-      lgpl2Plus
-      # Icons, unclear: https://gitlab.gnome.org/GNOME/yelp-xsl/issues/25
-      gpl2
-      # highlight.js
-      bsd3
-    ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/yelp/default.nix b/pkgs/desktops/gnome/core/yelp/default.nix
deleted file mode 100644
index c5bb44b46f015..0000000000000
--- a/pkgs/desktops/gnome/core/yelp/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ lib
-, stdenv
-, gettext
-, fetchurl
-, webkitgtk_4_1
-, pkg-config
-, gtk3
-, libhandy
-, glib
-, gnome
-, sqlite
-, itstool
-, libxml2
-, libxslt
-, gst_all_1
-, wrapGAppsHook3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "yelp";
-  version = "42.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-osX9B4epCJxyLMZr0Phc33CI2HDntsyFeZ+OW/+erEs=";
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-    gettext
-    itstool
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    gtk3
-    libhandy
-    glib
-    webkitgtk_4_1
-    sqlite
-    libxml2
-    libxslt
-    gnome.yelp-xsl
-    gnome.adwaita-icon-theme
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "yelp";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://apps.gnome.org/Yelp/";
-    description = "Help viewer in Gnome";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/zenity/default.nix b/pkgs/desktops/gnome/core/zenity/default.nix
deleted file mode 100644
index aa98b8c833205..0000000000000
--- a/pkgs/desktops/gnome/core/zenity/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, help2man
-, meson
-, ninja
-, pkg-config
-, libxml2
-, gnome
-, gtk4
-, gettext
-, libadwaita
-, itstool
-, wrapGAppsHook4
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "zenity";
-  version = "4.0.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor finalAttrs.version}/zenity-${finalAttrs.version}.tar.xz";
-    sha256 = "DC9TeBOxD3KEcNnQXWyVcT2yUS+clQluHoWxpnOWBeY=";
-  };
-
-  nativeBuildInputs = [
-    help2man
-    meson
-    ninja
-    pkg-config
-    gettext
-    itstool
-    libxml2
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    gtk4
-    libadwaita
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "zenity";
-      attrPath = "gnome.zenity";
-    };
-  };
-
-  meta = with lib; {
-    mainProgram = "zenity";
-    description = "Tool to display dialogs from the commandline and shell scripts";
-    homepage = "https://gitlab.gnome.org/GNOME/zenity";
-    license = licenses.lgpl21Plus;
-    platforms = platforms.unix;
-    maintainers = teams.gnome.members;
-  };
-})