diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix index 6a7cb1742ba6..04a4b0984ecb 100644 --- a/pkgs/desktops/gnome/core/gnome-shell/default.nix +++ b/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/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch index e17a608a2d85..8b35736ecfcd 100644 --- a/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch +++ b/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch @@ -1,30 +1,36 @@ ---- 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); ---- a/js/ui/status/keyboard.js -+++ b/js/ui/status/keyboard.js -@@ -1062,6 +1062,6 @@ class InputSourceIndicator extends PanelMenu.Button { - if (xkbVariant.length > 0) - description = `${description}\t${xkbVariant}`; - -- Util.spawn(['gkbd-keyboard-display', '-l', description]); -+ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]); - } - }); +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 -@@ -10,5 +10,5 @@ Requisite=gnome-session-stable.timer +@@ -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 +@@ -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 +@@ -1080,6 +1080,6 @@ class InputSourceIndicator extends PanelMenu.Button { + if (xkbVariant.length > 0) + description = '%s\t%s'.format(description, xkbVariant); + +- Util.spawn(['gkbd-keyboard-display', '-l', description]); ++ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]); + } + });