about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/gnome/core
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-10-19 14:40:23 +0000
committerAlyssa Ross <hi@alyssa.is>2022-01-07 10:22:32 +0000
commitcc62bcb55359ba8c5e0fe3a48e778444c89060d8 (patch)
treeca0e21d44eaf8837b687395e614445f7761d7bbd /nixpkgs/pkgs/desktops/gnome/core
parentd6625e8d25efd829c3cfa227d025ca4e606ae4b7 (diff)
parenta323570a264da96a0b0bcc1c9aa017794acdc752 (diff)
downloadnixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.gz
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.bz2
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.lz
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.xz
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.tar.zst
nixlib-cc62bcb55359ba8c5e0fe3a48e778444c89060d8.zip
Merge commit 'a323570a264da96a0b0bcc1c9aa017794acdc752'
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome/core')
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/eog/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/epiphany/pantheon-dark-style.patch (renamed from nixpkgs/pkgs/desktops/gnome/core/epiphany/dark-style.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/epiphany/pantheon-navigation-buttons.patch (renamed from nixpkgs/pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evince/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch86
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch65
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch46
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix81
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch17
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/totem/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix44
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix13
40 files changed, 383 insertions, 192 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix b/nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
index 04f8a7a3c37b..c7c85779d3fb 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "adwaita-icon-theme";
-  version = "40.1.1";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "C2xDbtatmIeoitofcqAZex63OwINjTRKurTH+nJQ+PY=";
+    sha256 = "71M52MNfytXRBIG3BICAPw+iCz08vDOSOPys7q7gHro=";
   };
 
   # For convenience, we can specify adwaita-icon-theme only in packages
diff --git a/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix b/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
index 40ff8e201543..40ea18b1af1e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "baobab";
-  version = "40.0";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6";
+    sha256 = "ytYnjS3MgMhLVxBapbtY2KMM6Y1vq9dnUZ3bhshX6FU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
index bffcb8b74c23..67ecf9f5c13c 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eog";
-  version = "40.3";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-KKo7BwgdlWV1RvcIlJR/qIZjGix/lV5Wz4DbcxrjsjU=";
+    sha256 = "sha256-kX3ghv2X/T7JMPoHyIut0r4fXQrmueVpyYYATgNZqaw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix b/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
index 6f673d632267..617ef1cc38f5 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -39,17 +39,19 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "40.3";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "2tE4ufLVXeJxEo/KOLYfU/2YDFh9KeG6a1CP/zsZ9WQ=";
+    sha256 = "s50YJUkllbC3TF1qZoaoV/lBnfpMAvgBPCl7yHDibdA=";
   };
 
   patches = lib.optionals withPantheon [
+    # Make this respect dark mode settings from Pantheon
     # https://github.com/elementary/browser
-    ./dark-style.patch
-    ./navigation-buttons.patch
+    # The patch currently differs from upstream (updated for epiphany 40 and 41).
+    ./pantheon-dark-style.patch
+    ./pantheon-navigation-buttons.patch
   ];
 
   nativeBuildInputs = [
@@ -95,7 +97,9 @@ stdenv.mkDerivation rec {
     p11-kit
     sqlite
     webkitgtk
-  ] ++ lib.optional withPantheon pantheon.granite;
+  ] ++ lib.optionals withPantheon [
+    pantheon.granite
+  ];
 
   # Tests need an X display
   mesonFlags = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/epiphany/dark-style.patch b/nixpkgs/pkgs/desktops/gnome/core/epiphany/pantheon-dark-style.patch
index 56ac5c1e5b2c..56ac5c1e5b2c 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/epiphany/dark-style.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/epiphany/pantheon-dark-style.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch b/nixpkgs/pkgs/desktops/gnome/core/epiphany/pantheon-navigation-buttons.patch
index b7b3b620535f..b7b3b620535f 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/epiphany/pantheon-navigation-buttons.patch
diff --git a/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix b/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
index 11cd3735e1d5..45812dbc901a 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
@@ -30,6 +30,7 @@
 , gsettings-desktop-schemas
 , gnome-desktop
 , dbus
+, pantheon
 , python3
 , texlive
 , t1lib
@@ -40,19 +41,27 @@
 , supportMultimedia ? true # PDF multimedia
 , libgxps
 , supportXPS ? true # Open XML Paper Specification via libgxps
+, withPantheon ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "40.4";
+  version = "41.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "M0IFAODgYPF4pDUGMZfULa57Z+OcxDepZRCjPd9+lfs=";
+    sha256 = "lautDW/urJVg2zq4C6fF6rsf3xyg47PJMzmvBUU6JNg=";
   };
 
+  patches = lib.optionals withPantheon [
+    # Make this respect dark mode settings from Pantheon
+    # https://github.com/elementary/evince
+    # The patch currently differs from upstream (updated for evince 41).
+    ./pantheon-dark-style.patch
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
@@ -96,9 +105,18 @@ stdenv.mkDerivation rec {
     poppler
     t1lib
     texlive.bin.core # kpathsea for DVI support
-  ] ++ lib.optional supportXPS libgxps
-    ++ lib.optionals supportMultimedia (with gst_all_1; [
-      gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]);
+  ] ++ 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
+  ]) ++ lib.optionals withPantheon [
+    pantheon.granite
+  ];
 
   mesonFlags = [
     "-Dnautilus=false"
@@ -128,8 +146,8 @@ stdenv.mkDerivation rec {
       on the GNOME Desktop with a single simple application.
     '';
 
-    license = lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = teams.gnome.members;
+    maintainers = teams.gnome.members ++ teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch b/nixpkgs/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch
new file mode 100644
index 000000000000..5e1ef67b08cd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch
@@ -0,0 +1,86 @@
+diff --git a/meson.build b/meson.build
+index bcb69cf7..4a18c08c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -162,6 +162,7 @@ gmodule_dep = dependency('gmodule-2.0')
+ gmodule_no_export_dep = dependency('gmodule-no-export-2.0', version: glib_req_version)
+ gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
+ gthread_dep = dependency('gthread-2.0', version: glib_req_version)
++granite_dep = dependency('granite')
+ # Keep the version here synchronised with subprojects/libhandy.wrap
+ hdy_dep = dependency('libhandy-1', version: hdy_req_version, fallback: ['libhandy', 'libhandy_dep'])
+ 
+diff --git a/shell/ev-application.c b/shell/ev-application.c
+index e704bda2..d705328c 100644
+--- a/shell/ev-application.c
++++ b/shell/ev-application.c
+@@ -30,6 +30,7 @@
+ #include <glib/gi18n.h>
+ #include <glib/gstdio.h>
+ #include <gtk/gtk.h>
++#include <granite.h>
+ #include <handy.h>
+ #ifdef GDK_WINDOWING_X11
+ #include <gdk/gdkx.h>
+@@ -176,7 +177,7 @@ ev_spawn (const char     *uri,
+ 
+ 	g_string_append_printf (cmd, " %s", path);
+ 	g_free (path);
+-	
++
+ 	/* Page label */
+ 	if (dest) {
+                 switch (ev_link_dest_get_dest_type (dest)) {
+@@ -940,6 +941,20 @@ ev_application_migrate_config_dir (EvApplication *application)
+         g_free (old_accels);
+ }
+ 
++static void
++ev_application_set_prefers_color_scheme ()
++{
++        GtkSettings* gtk_settings = gtk_settings_get_default ();
++        GraniteSettings* granite_settings = granite_settings_get_default ();
++
++        g_object_set (
++          gtk_settings,
++          "gtk-application-prefer-dark-theme",
++          granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
++          NULL
++        );
++}
++
+ static void
+ ev_application_startup (GApplication *gapplication)
+ {
+@@ -992,6 +1007,7 @@ ev_application_startup (GApplication *gapplication)
+ 
+         EvApplication *application = EV_APPLICATION (gapplication);
+         const gchar **it;
++        GraniteSettings* granite_settings = granite_settings_get_default ();
+ 
+ 	g_application_set_resource_base_path (gapplication, "/org/gnome/evince");
+ 
+@@ -999,6 +1015,11 @@ ev_application_startup (GApplication *gapplication)
+ 
+         hdy_init ();
+ 
++        ev_application_set_prefers_color_scheme ();
++
++        g_signal_connect (granite_settings, "notify::prefers-color-scheme",
++          G_CALLBACK(ev_application_set_prefers_color_scheme), NULL);
++
+         for (it = action_accels; it[0]; it += g_strv_length ((gchar **)it) + 1)
+                 gtk_application_set_accels_for_action (GTK_APPLICATION (application), it[0], &it[1]);
+ }
+diff --git a/shell/meson.build b/shell/meson.build
+index 7cbc48f2..a3089b13 100644
+--- a/shell/meson.build
++++ b/shell/meson.build
+@@ -52,6 +52,7 @@ sources += gnome.compile_resources(
+ deps = [
+   gdk_pixbuf_dep,
+   gnome_desktop_dep,
++  granite_dep,
+   hdy_dep,
+   libevmisc_dep,
+   libevproperties_dep,
diff --git a/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index 156ffbb1c78f..aabe9af14827 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.40.4";
+  version = "3.42.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "h8GF8Yw3Jw42EZgfGb2SIayXTIB0Ysjc6QvqCHEsWAA=";
+    sha256 = "6P3TvEegfW+KMFK7yuiA8g9tvE9pc6jpDQAWm7mbFjU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix
index e3c693836374..392ea61688a6 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/default.nix
@@ -26,6 +26,7 @@
 , plymouth
 , librsvg
 , coreutils
+, xorgserver
 , xwayland
 , dbus
 , nixos-icons
@@ -42,13 +43,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gdm";
-  version = "40.1";
+  version = "41.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "q7ih6mZISPLJD4SsqkLpTSVgVwNYgamPvUH7xdfRc/0=";
+    sha256 = "VzjEKTqfWoDUpungb00N8+nzE8p7Yb+02K+rqYPiANw=";
   };
 
   mesonFlags = [
@@ -102,7 +103,7 @@ stdenv.mkDerivation rec {
     # Change hardcoded paths to nix store paths.
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit coreutils plymouth xwayland dbus;
+      inherit coreutils plymouth xorgserver xwayland dbus;
     })
 
     # The following patches implement certain environment variables in GDM which are set by
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch
index d649556fe9e6..980627c78d46 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gdm/fix-paths.patch
@@ -1,66 +1,64 @@
+diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
+index 5fbbad68..739718ec 100644
 --- a/daemon/gdm-local-display-factory.c
 +++ b/daemon/gdm-local-display-factory.c
-@@ -201,7 +201,7 @@
+@@ -233,9 +233,9 @@ struct GdmDisplayServerConfiguration {
+         const char *session_type;
+ } display_server_configuration[] = {
  #ifdef ENABLE_WAYLAND_SUPPORT
-         gboolean wayland_enabled = FALSE;
-         if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
--                if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-+                if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-                         return TRUE;
-         }
+-        { "wayland", GDM_KEY_WAYLAND_ENABLE, "/usr/bin/Xwayland", "wayland" },
++        { "wayland", GDM_KEY_WAYLAND_ENABLE, "@xwayland@/bin/Xwayland", "wayland" },
  #endif
+-        { "xorg", GDM_KEY_XORG_ENABLE, "/usr/bin/Xorg", "x11" },
++        { "xorg", GDM_KEY_XORG_ENABLE, "@xorgserver@/bin/Xorg", "x11" },
+         { NULL, NULL, NULL },
+ };
+ 
+diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
+index cc61efc9..4c9d15af 100644
 --- a/daemon/gdm-manager.c
 +++ b/daemon/gdm-manager.c
-@@ -145,7 +145,7 @@
+@@ -148,7 +148,7 @@ plymouth_is_running (void)
          GError  *error;
-
+ 
          error = NULL;
 -        res = g_spawn_command_line_sync ("plymouth --ping",
 +        res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth --ping",
                                           NULL, NULL, &status, &error);
          if (! res) {
                  g_debug ("Could not ping plymouth: %s", error->message);
-@@ -163,7 +163,7 @@
+@@ -166,7 +166,7 @@ plymouth_prepare_for_transition (void)
          GError  *error;
-
+ 
          error = NULL;
 -        res = g_spawn_command_line_sync ("plymouth deactivate",
 +        res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth deactivate",
                                           NULL, NULL, NULL, &error);
          if (! res) {
                  g_warning ("Could not deactivate plymouth: %s", error->message);
-@@ -178,7 +178,7 @@
+@@ -181,7 +181,7 @@ plymouth_quit_with_transition (void)
          GError  *error;
-
+ 
          error = NULL;
 -        res = g_spawn_command_line_async ("plymouth quit --retain-splash", &error);
 +        res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit --retain-splash", &error);
          if (! res) {
                  g_warning ("Could not quit plymouth: %s", error->message);
                  g_error_free (error);
-@@ -194,7 +194,7 @@
+@@ -197,7 +197,7 @@ plymouth_quit_without_transition (void)
          GError  *error;
-
+ 
          error = NULL;
 -        res = g_spawn_command_line_async ("plymouth quit", &error);
 +        res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit", &error);
          if (! res) {
                  g_warning ("Could not quit plymouth: %s", error->message);
                  g_error_free (error);
---- a/data/gdm.service.in
-+++ b/data/gdm.service.in
-@@ -26,7 +26,7 @@ Restart=always
- IgnoreSIGPIPE=no
- BusName=org.gnome.DisplayManager
- EnvironmentFile=-${LANG_CONFIG_FILE}
--ExecReload=/bin/kill -SIGHUP $MAINPID
-+ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
- KeyringMode=shared
-
- [Install]
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index 4b709731..245ac0cf 100644
 --- a/daemon/gdm-session.c
 +++ b/daemon/gdm-session.c
-@@ -2916,16 +2916,16 @@ gdm_session_start_session (GdmSession *self,
+@@ -2972,16 +2972,16 @@ gdm_session_start_session (GdmSession *self,
                   */
                  if (run_launcher) {
                          if (is_x11) {
@@ -80,3 +78,16 @@
                                                     self->selected_program);
                  }
          }
+diff --git a/data/gdm.service.in b/data/gdm.service.in
+index 17e8a8de..afc70977 100644
+--- a/data/gdm.service.in
++++ b/data/gdm.service.in
+@@ -26,7 +26,7 @@ Restart=always
+ IgnoreSIGPIPE=no
+ BusName=org.gnome.DisplayManager
+ EnvironmentFile=-${LANG_CONFIG_FILE}
+-ExecReload=/bin/kill -SIGHUP $MAINPID
++ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
+ KeyringMode=shared
+ 
+ [Install]
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
index 370cd14e4677..814878d57140 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-backgrounds";
-  version = "40.1";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "YN+KDaMBzkJbcEPUKuMuxAEf8I8Y4Pxi8pQBMF2jpw4=";
+    sha256 = "HaGsDSYb7fD80shbSAvGVQXiPPUfEUMSbA03cX5pMUU=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix
index 7e19e9523ce8..58c079078d64 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-calculator/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calculator";
-  version = "40.1";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz";
+    sha256 = "pm3AS9hYfnbWc3Wmrvp5VTtWnJvfeOvcKBfxwK3j3Jk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
index 62a43d20d580..919bb5206cff 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-contacts";
-  version = "40.0";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9";
+    sha256 = "Y+MUm10UdbeiaYAFu191DzyApzVxcWDjnfjP3+v8zfA=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index 6170f53c716b..d7a898c1c45c 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -1,5 +1,4 @@
 { fetchurl
-, fetchpatch
 , lib
 , stdenv
 , substituteAll
@@ -17,6 +16,7 @@
 , gettext
 , glib
 , glib-networking
+, gcr
 , glibc
 , gnome-bluetooth
 , gnome-color-manager
@@ -24,8 +24,6 @@
 , gnome-online-accounts
 , gnome-settings-daemon
 , gnome
-, grilo
-, grilo-plugins
 , gsettings-desktop-schemas
 , gsound
 , gtk3
@@ -70,11 +68,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "40.0";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-zMmlc2UXOFEJrlpZkGwlgkTdh5t1A61ZhM9BZVyzAvE=";
+    sha256 = "sha256-pWliIq01P8+aB8QG4ofsyROOJQZFyypZQaiP8GhWWME=";
   };
 
   patches = [
@@ -85,13 +83,6 @@ stdenv.mkDerivation rec {
       inherit glibc libgnomekbd tzdata;
       inherit cups networkmanagerapplet;
     })
-
-    # Fix startup assertion in power panel.
-    # https://gitlab.gnome.org/GNOME/gnome-control-center/merge_requests/974
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/9acaa10567c94048657c69538e5d7813f82c4224.patch";
-      sha256 = "59GeTPcG2UiVTL4VTS/TP0p0QkAQpm3VgvuAiw64wUU=";
-    })
   ];
 
   nativeBuildInputs = [
@@ -119,14 +110,13 @@ stdenv.mkDerivation rec {
     gdk-pixbuf
     glib
     glib-networking
+    gcr
     gnome-bluetooth
     gnome-desktop
     gnome-online-accounts
     gnome-remote-desktop # optional, sharing panel
     gnome-settings-daemon
     gnome-user-share # optional, sharing panel
-    grilo
-    grilo-plugins # for setting wallpaper from Flickr
     gsettings-desktop-schemas
     gsound
     gtk3
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
index 57eb4b3d44a9..c31e093f4b7e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/bubblewrap-paths.patch
@@ -1,15 +1,17 @@
+diff --git a/libgnome-desktop/gnome-desktop-thumbnail-script.c b/libgnome-desktop/gnome-desktop-thumbnail-script.c
+index ddcc1511..546c2a36 100644
 --- a/libgnome-desktop/gnome-desktop-thumbnail-script.c
 +++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c
-@@ -536,9 +536,9 @@ add_bwrap (GPtrArray   *array,
+@@ -555,9 +555,9 @@ add_bwrap (GPtrArray   *array,
    g_return_val_if_fail (script->s_infile != NULL, FALSE);
  
    add_args (array,
 -	    "bwrap",
 -	    "--ro-bind", "/usr", "/usr",
--	    "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
+-	    "--ro-bind-try", "/etc/ld.so.cache", "/etc/ld.so.cache",
 +	    "@bubblewrap_bin@",
 +	    "--ro-bind", "@storeDir@", "@storeDir@",
-+	    "--ro-bind", "/run/current-system", "/run/current-system",
++	    "--ro-bind-try", "/run/current-system", "/run/current-system",
  	    NULL);
  
    /* These directories might be symlinks into /usr/... */
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
index df8096b90eec..6ab45283c852 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-desktop";
-  version = "40.4";
+  version = "41.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-iK6W9YXg0IcJQbuj113fPsQDSOHFrnQTIcpIL6ydRe8=";
+    sha256 = "sha256-acsdPZoQcA62Y0jvHA5mqFX8WpeuYpAt+XpJnaEVYtI=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index ead50f1c9d1a..195a0c4f016d 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "40.2";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-ztES6qh9j/ohOv1NC62TnPp662cbeySIWaHchNb1Iec=";
+    sha256 = "sha256-h0PJj9ZWBi74YpM+/jDFvkxrMi7ALu4VTscNCO0Ild8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
index 622a7de1bffa..4ba915df2dbd 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-font-viewer";
-  version = "40.0";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j";
+    sha256 = "XdQQMxvgcOTgNDl/J1SYDgc4UdUKIRny+/lq3G/i6HY=";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index b6aedeeb6464..ff1d95861e37 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "40.4";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "QSplhO5upN+WN8QimT9Or4FYTSkZD16JOvmnhxy5Axs=";
+    sha256 = "R/ZHW2bIQ+fVPZC6Dns5SHYt8VFjSkNvaMK5u6BQVgo=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index fda0f6e2ffd6..fac50cd2b34d 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -7,6 +7,7 @@
 , python3
 , wrapGAppsHook
 , glib
+, nv-codec-headers-11
 , pipewire
 , systemd
 , libvncserver
@@ -21,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "40.1";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-mvpuUlVwo3IJP5cwM4JwkDiU87H5+KnfX1eDbqHSnek=";
+    hash = "sha256-apvIscaHRvSjqsH+dMRKcuJqi7S+HxynMCdwWstlK14=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
     fuse3
     gdk-pixbuf # For libnotify
     glib
+    nv-codec-headers-11
     libnotify
     libsecret
     libvncserver
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
index 4a1b7f4c20c7..307de72cc4f0 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
@@ -42,11 +42,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-settings-daemon";
-  version = "40.0.1";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "08bv32hvsmd8izw0llvldg0c2d71srch4hi8j94jwgm5d4dsrprp";
+    sha256 = "5spjYfvR3qst4aHjkNTxQWfPR7HFR9u4tlpdielmOIQ=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 94b29e8b4dee..25f7fb93ab30 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "40.4";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "9R1MQsIru9AxLKcY9Hz0Vp/FikbvQAdDrk0cx9kKzXk=";
+    sha256 = "2E+qwUSLOPl12cGUkMWSivxcWixJ3X5/ga9pD5Rm/Gg=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 6a7cb1742ba6..04a4b0984ecb 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "40.4";
+  version = "41.0";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "160z8bz2kqmrs6a4cs2gakv0rl9ba69p3ij2xjakqav50n9r3i9b";
+    sha256 = "Uvlx6FFA5d50uTae9mVuSc6Vrx8jL8Hg3x8EYSmrT2U=";
   };
 
   patches = [
@@ -103,6 +103,13 @@ stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/9a647c460b651aaec0b8a21f046cc289c1999416/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
       sha256 = "pFvZli3TilUt6YwdZztpB8Xq7O60XfuWUuPMMVSpqLw=";
     })
+
+    # Make color picker in GTK work again
+    # https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1990
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/a3dcdaae30bdcbadec7ba3fa31c9eb0bb2a4c8c2.patch";
+      sha256 = "1UTWGZ5CiVJVCYcepaf+A6/8X/s6jUMsYB4BJ7VTjxk=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
index e17a608a2d85..8b35736ecfcd 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
@@ -1,30 +1,36 @@
+diff --git a/data/org.gnome.Shell-disable-extensions.service b/data/org.gnome.Shell-disable-extensions.service
+index de91167c5..1c9965678 100644
+--- a/data/org.gnome.Shell-disable-extensions.service
++++ b/data/org.gnome.Shell-disable-extensions.service
+@@ -11,5 +11,5 @@ ConditionPathExists=%t/gnome-shell-disable-extensions
+ [Service]
+ Type=simple
+ # Disable extensions
+-ExecStart=gsettings set org.gnome.shell disable-user-extensions true
++ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
+ Restart=no
+diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
+index 8bf4646a6..59e88bb4c 100644
 --- a/js/ui/extensionDownloader.js
 +++ b/js/ui/extensionDownloader.js
-@@ -86,7 +86,7 @@
-     stream.output_stream.write_bytes(contents, null);
-     stream.close(null);
-     let [success, pid] = GLib.spawn_async(null,
--                                          ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
-+                                          ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
-                                           null,
-                                           GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
-                                           null);
+@@ -114,7 +114,7 @@ async function extractExtensionArchive(bytes, dir) {
+     stream.close_async(GLib.PRIORITY_DEFAULT, null);
+ 
+     const unzip = Gio.Subprocess.new(
+-        ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
++        ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
+         Gio.SubprocessFlags.NONE);
+     await unzip.wait_check_async(null);
+ }
+diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
+index bc50f3d37..868eb5abf 100644
 --- a/js/ui/status/keyboard.js
 +++ b/js/ui/status/keyboard.js
-@@ -1062,6 +1062,6 @@ class InputSourceIndicator extends PanelMenu.Button {
+@@ -1080,6 +1080,6 @@ class InputSourceIndicator extends PanelMenu.Button {
          if (xkbVariant.length > 0)
-             description = `${description}\t${xkbVariant}`;
+             description = '%s\t%s'.format(description, xkbVariant);
  
 -        Util.spawn(['gkbd-keyboard-display', '-l', description]);
 +        Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
      }
  });
---- a/data/org.gnome.Shell-disable-extensions.service
-+++ b/data/org.gnome.Shell-disable-extensions.service
-@@ -10,5 +10,5 @@ Requisite=gnome-session-stable.timer
- [Service]
- Type=simple
- # Disable extensions
--ExecStart=gsettings set org.gnome.shell disable-user-extensions true
-+ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
- Restart=no
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
index 6d71c579d7ed..4d9a5c407653 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -25,7 +25,6 @@
 , gsettings-desktop-schemas
 , gnome-desktop
 , libxmlb
-, gnome-online-accounts
 , json-glib
 , libsecret
 , valgrind-light
@@ -43,11 +42,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "40.4";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "voxhGoAvcXGNzLvUVE7ZaIcxGYRv03t7dqeq1yx5mL8=";
+    sha256 = "AkC3bsnfYi2b7A6zjkrFY8rt5oCLrZO4gmPYCXD/OcE=";
   };
 
   patches = [
@@ -89,7 +88,6 @@ stdenv.mkDerivation rec {
     polkit
     flatpak
     libxmlb
-    gnome-online-accounts
     libsysprof-capture
   ] ++ lib.optionals withFwupd [
     fwupd
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
index 77579be6272d..d373d6f358c6 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-system-monitor";
-  version = "40.1";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx";
+    sha256 = "x/xExhlJt5SwKJlo67vMDBX4z8PZ5Fv6qB7UXBITnl8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index ab3e3aecc035..48e65009ade7 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -1,36 +1,79 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, gnome, dconf, nautilus
-, gtk3, gsettings-desktop-schemas, vte, gettext, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, pcre2
-, libxslt, docbook-xsl-nons }:
+{ stdenv
+, lib
+, fetchurl
+, meson
+, ninja
+, pkg-config
+, python3
+, libxml2
+, gnome
+, dconf
+, nautilus
+, glib
+, gtk3
+, gsettings-desktop-schemas
+, vte
+, gettext
+, which
+, libuuid
+, vala
+, desktop-file-utils
+, itstool
+, wrapGAppsHook
+, pcre2
+, libxslt
+, docbook-xsl-nons
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.40.1";
+  version = "3.42.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1r6qd6w18gk83w32y6bvn4hg2hd7qvngak4ymwpgndyp41rwqw07";
+    sha256 = "tQ6eVmQjDmyikLzziBKltl4LqsZqSG7iEIlM9nX3Lgs=";
   };
 
-  buildInputs = [
-    gtk3 gsettings-desktop-schemas vte libuuid dconf
-    # For extension
-    nautilus
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    itstool
+    which
+    libxml2
+    libxslt
+    glib # for glib-compile-schemas
+    docbook-xsl-nons
+    vala
+    desktop-file-utils
+    wrapGAppsHook
+    pcre2
+    python3
   ];
 
-  nativeBuildInputs = [
-    pkg-config gettext itstool which libxml2 libxslt docbook-xsl-nons
-    vala desktop-file-utils wrapGAppsHook pcre2
+  buildInputs = [
+    glib
+    gtk3
+    gsettings-desktop-schemas
+    vte
+    libuuid
+    dconf
+    nautilus # For extension
   ];
 
-  # Silly ./configure, it looks for dbus file from gnome-shell in the
+  # Silly build system, it looks for dbus file from gnome-shell in the
   # installation tree of the package it is configuring.
   postPatch = ''
-    substituteInPlace configure --replace '$(eval echo $(eval echo $(eval echo ''${dbusinterfacedir})))/org.gnome.ShellSearchProvider2.xml' "${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
-    substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
-  '';
+    substituteInPlace src/meson.build \
+       --replace "gt_prefix / gt_dbusinterfacedir / 'org.gnome.ShellSearchProvider2.xml'" \
+       "'${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml'"
 
-  configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30
+    patchShebangs \
+      data/icons/meson_updateiconcache.py \
+      data/meson_desktopfile.py \
+      src/meson_compileschemas.py
+  '';
 
   passthru = {
     updateScript = gnome.updateScript {
@@ -39,8 +82,6 @@ stdenv.mkDerivation rec {
     };
   };
 
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "The GNOME Terminal Emulator";
     homepage = "https://wiki.gnome.org/Apps/Terminal";
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix
index 211326cfcdbd..bab13a6ccd19 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-user-share/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dhttpd=${apacheHttpd.out}/bin/httpd"
-    "-Dmodules_path=${apacheHttpd.dev}/modules"
+    "-Dmodules_path=${apacheHttpd}/modules"
     "-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
     # In 3.34.0 it defaults to false but it is silently ignored and always installed.
     # Let’s add it anyway in case they decide to make build respect the option in the future.
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
index 336a4d260c4e..7d15e6b41ef6 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , intltool
 , fetchFromGitLab
 , meson
@@ -11,7 +12,6 @@
 , desktop-file-utils
 , gtk-doc
 , wrapGAppsHook
-, gnome
 , itstool
 , libxml2
 , yelp-tools
@@ -25,6 +25,7 @@
 , runCommand
 , symlinkJoin
 , gobject-introspection
+, nix-update-script
 }:
 
 let
@@ -44,7 +45,7 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "gucharmap";
-  version = "13.0.2";
+  version = "14.0.0";
 
   outputs = [ "out" "lib" "dev" "devdoc" ];
 
@@ -53,7 +54,7 @@ in stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "099za9mc6qdq9pwcbjp3d7hxjbaa43vk2w9qw4yiyswl1xq3jw62";
+    sha256 = "sha256-d283zVRH42NZNq+vGmItN3ZBrRrl9gpYDco7osm3RoY=";
   };
 
   nativeBuildInputs = [
@@ -93,8 +94,8 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
+    updateScript = nix-update-script {
+      attrPath = "gnome.gucharmap";
     };
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
index 3336cfab730e..78b90a379c38 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
@@ -14,6 +14,7 @@
 , zenity
 , libcanberra
 , ninja
+, xvfb-run
 , xkeyboard_config
 , libxkbfile
 , libXdamage
@@ -45,13 +46,13 @@
 
 let self = stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "40.4";
+  version = "41.0";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-pxwVnNKshKZ32l+nrMSUg7Jifa13L4gPiJ645FMKHiM=";
+    sha256 = "sha256-+oChp0QETYjr/Wd/8DID1ncF7SzWJOoGy7i1iUjN+J4=";
   };
 
   patches = [
@@ -90,6 +91,7 @@ let self = stdenv.mkDerivation rec {
     mesa # needed for gbm
     meson
     ninja
+    xvfb-run
     pkg-config
     python3
     wrapGAppsHook
diff --git a/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix b/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
index 1f92e49c4f66..2a964964a09e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -34,11 +34,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "40.2";
+  version = "41.0";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "tx7y/gfl7qiaK7HlvTCUe9GIc7+zD3nL8X7fvU0g9g0=";
+    sha256 = "+blBrcEEcAxn6kB2YiMV8fa3fc7BVMN/PUwLKDlQoeU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch b/nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
index 6fe651b9cbb4..d2319ec13ed3 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
+++ b/nixpkgs/pkgs/desktops/gnome/core/rygel/add-option-for-installation-sysconfdir.patch
@@ -1,8 +1,8 @@
 diff --git a/meson.build b/meson.build
-index 4aa683d6..a930d533 100644
+index 8af2fcf9..0e318307 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -20,7 +20,11 @@ if not get_option('uninstalled')
+@@ -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')
@@ -15,7 +15,7 @@ index 4aa683d6..a930d533 100644
      rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.6', 'plugins')
      rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.6', 'engines')
      rygel_presetdir = join_paths(rygel_datadir, 'presets')
-@@ -55,7 +59,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
+@@ -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)
@@ -25,14 +25,11 @@ index 4aa683d6..a930d533 100644
  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 cb604c4e..1b049b77 100644
+index fd04776a..3dee43ba 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -1,6 +1,7 @@
+@@ -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('systemd-user-units-dir', type : 'string', value : 'auto', description : 'Where to install the systemd user unit (use special values "auto" or "none", or pass a path')
-+option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
- option('plugins', type : 'array', choices : ['external', 'gst-launch', 'lms', 'media-export', 'mpris', 'playbin', 'ruih', 'tracker', 'tracker3'])
- option('engines', type : 'array', choices : ['simple', 'gstreamer'])
- option('examples', type : 'boolean', value : 'true')
+ option('man_pages', type: 'boolean', value: 'true', description: 'Build the man pages')
diff --git a/nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix b/nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix
index f43df23f44a1..c3cfeec8ff80 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/rygel/default.nix
@@ -28,16 +28,20 @@
 
 stdenv.mkDerivation rec {
   pname = "rygel";
-  version = "0.40.1";
+  version = "0.40.2";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "QkDXd1mcjNCeZ9pEzLOV0KbceEedgJzWIZgixbVooy0=";
+    sha256 = "yejHNiltIsTe/pWXJ6KdMUN7vSt6oMZHDWviQBEFBpc=";
   };
 
+  patches = [
+    ./add-option-for-installation-sysconfdir.patch
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
@@ -78,16 +82,10 @@ stdenv.mkDerivation rec {
     "-Dapi-docs=false"
     "--sysconfdir=/etc"
     "-Dsysconfdir_install=${placeholder "out"}/etc"
-    # Build all plug-ins except for tracker 2
-    "-Dplugins=external,gst-launch,lms,media-export,mpris,playbin,ruih,tracker3"
   ];
 
   doCheck = true;
 
-  patches = [
-    ./add-option-for-installation-sysconfdir.patch
-  ];
-
   postPatch = ''
     patchShebangs data/xml/process-xml.py
   '';
diff --git a/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
index be501c0aef31..9514caa1e9b1 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "40.1";
+  version = "40.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-6+45qx/kygU8TtK9OjynZ0L/EJQ23QZF00FWIhMroLQ=";
+    sha256 = "sha256-61N55MtspgUJLJQiEMGEJdA2dz2nZUHkO4nYIj+CuaQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix b/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
index cd93094120db..f08f51512c47 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
@@ -8,8 +8,7 @@
 , gnome
 , gtksourceview4
 , gjs
-, webkitgtk
-, libmusicbrainz5
+, webkitgtk_4_1
 , icu
 , wrapGAppsHook
 , gst_all_1
@@ -23,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sushi";
-  version = "3.38.1";
+  version = "41.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/sushi/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "8+bRDIFVKNA6Zl+v0VwHGeAXqBOXWzrzIHYZnjeIiOk=";
+    url = "mirror://gnome/sources/sushi/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "m3UlaQzkNmJO+gpgV3NJNDLNDva49GSYLouETtqYmO4=";
   };
 
   nativeBuildInputs = [
@@ -49,8 +48,7 @@ stdenv.mkDerivation rec {
     gtksourceview4
     gdk-pixbuf
     librsvg
-    libmusicbrainz5
-    webkitgtk
+    webkitgtk_4_1
     epoxy
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
diff --git a/nixpkgs/pkgs/desktops/gnome/core/totem/default.nix b/nixpkgs/pkgs/desktops/gnome/core/totem/default.nix
index 7d1d4e90abf0..0178c04b53ca 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/totem/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/totem/default.nix
@@ -30,11 +30,11 @@
 
 stdenv.mkDerivation rec {
   pname = "totem";
-  version = "3.38.1";
+  version = "3.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/totem/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "j/rPfA6inO3qBndzCGHUh2qPesTaTGI0u3X3/TcFoQg=";
+    sha256 = "/OVi4rJsvPwMZ4U43MgfncFc5g1aie5DWJB79jQwTEA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix b/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
index 32f3fbd61538..8b091e000bad 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/yelp-xsl/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp-xsl";
-  version = "40.2";
+  version = "41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-kZxVL4RqrsdB/lHVr0FrRpvNslx37/w7WhWktLf/gU4=";
+    sha256 = "sha256-yM1kwJO72MXV5H/TiGTpCDG1+c90A1MIcCBvqWY2pKU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix b/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
index 746866fc9c20..b1e094292bf1 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/yelp/default.nix
@@ -1,23 +1,47 @@
-{ lib, stdenv, gettext, fetchurl, webkitgtk, pkg-config, gtk3, glib
-, gnome, sqlite
-, itstool, libxml2, libxslt, gst_all_1
-, wrapGAppsHook }:
+{ lib
+, stdenv
+, gettext
+, fetchurl
+, webkitgtk_4_1
+, pkg-config
+, gtk3
+, glib
+, gnome
+, sqlite
+, itstool
+, libxml2
+, libxslt
+, gst_all_1
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "yelp";
-  version = "40.3";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-oXOEeFHyYYm+eOy7EAFdU52Mzv/Hwj6GNUkrw62l7iM=";
+    sha256 = "sha256-RWpkFWR7zusBWbkLNVP/MocozymmCPzggCQjJQTMuHQ=";
   };
 
-  nativeBuildInputs = [ pkg-config gettext itstool wrapGAppsHook ];
+  nativeBuildInputs = [
+    pkg-config
+    gettext
+    itstool
+    wrapGAppsHook
+  ];
+
   buildInputs = [
-    gtk3 glib webkitgtk sqlite
-    libxml2 libxslt gnome.yelp-xsl
+    gtk3
+    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
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
   ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix b/nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix
index 51ad81a77a46..ef8259e9e82e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/zenity/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchurl
+, meson
+, ninja
 , pkg-config
 , libxml2
 , gnome
 , gtk3
-, yelp-tools
 , gettext
 , libX11
 , itstool
@@ -13,17 +15,18 @@
 
 stdenv.mkDerivation rec {
   pname = "zenity";
-  version = "3.32.0";
+  version = "3.41.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/zenity/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7";
+    sha256 = "GbZ2w1EOIrrfzDIEBi1DK6U3QC9eCuJhKMDZDJVAN+E=";
   };
 
   nativeBuildInputs = [
+    meson
+    ninja
     pkg-config
     gettext
-    yelp-tools
     itstool
     libxml2
     wrapGAppsHook