Update to 44.beta

This commit is contained in:
Florian Müllner 2023-02-14 18:11:34 +01:00
parent 1676365b82
commit fcfb59488c
7 changed files with 11 additions and 247 deletions

1
.gitignore vendored
View File

@ -209,3 +209,4 @@ gnome-shell-2.31.5.tar.bz2
/gnome-shell-43.rc.tar.xz
/gnome-shell-43.0.tar.xz
/gnome-shell-43.1.tar.xz
/gnome-shell-44.beta.tar.xz

View File

@ -1,31 +0,0 @@
From b0befbbfbbe4a335f6c184049743202e91fcdfe8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 18 Nov 2022 22:40:31 +0100
Subject: [PATCH] inhibitShorcutsDialog: Fix permission check
Each permission entry is an array of strings, so checking that against
the expected string itself will always fail.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6107
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2548>
---
js/ui/inhibitShortcutsDialog.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/ui/inhibitShortcutsDialog.js b/js/ui/inhibitShortcutsDialog.js
index b6f1330b2..7c3d15996 100644
--- a/js/ui/inhibitShortcutsDialog.js
+++ b/js/ui/inhibitShortcutsDialog.js
@@ -143,7 +143,7 @@ var InhibitShortcutsDialog = GObject.registerClass({
if (permissions[appId] === undefined) // Not found
this._dialog.open();
- else if (permissions[appId] === GRANTED)
+ else if (permissions[appId][0] === GRANTED)
this._emitResponse(DialogResponse.ALLOW);
else
this._emitResponse(DialogResponse.DENY);
--
2.37.3

View File

@ -1,31 +0,0 @@
From 9a0ecad2b94243fbed5290f78d967d8714c3d3e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 6 Oct 2021 10:00:43 +0200
Subject: [PATCH] main: Leak the GJS context and ShellGlobal
There are many crash-on-exit happening as a side effect of destroying
the GJS context. Work around these until we have a better solution by
leaking them.
---
src/main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/main.c b/src/main.c
index 3cd9e10a5b..ce56e2a87a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -570,9 +570,11 @@ main (int argc, char **argv)
shell_profiler_shutdown ();
+#if 0
g_debug ("Doing final cleanup");
_shell_global_destroy_gjs_context (shell_global_get ());
g_object_unref (shell_global_get ());
+#endif
return ecode;
}
--
2.31.1

View File

@ -1,53 +0,0 @@
From d9e5c8a89900b30d2cf432c376613a3f68fc7012 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 11 Nov 2022 13:13:41 +0100
Subject: [PATCH] status/keyboard: Ignore purpose hint changes while keymap
switcher is shown
If we are getting purpose hint changes while the language switcher is popped
up, this likely means the purpose hint was actually triggered by the key
focus change induced by the language switcher popping up.
In this case, we on one hand would like to preserve the state that applied
before thise focus change, and on the other we very much want to avoid the
keymap change that would forget about the keys being pressed.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6066
---
js/ui/status/keyboard.js | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
index 82706c0389..c23529cb9e 100644
--- a/js/ui/status/keyboard.js
+++ b/js/ui/status/keyboard.js
@@ -411,9 +411,12 @@ var InputSourceManager = class extends Signals.EventEmitter {
return;
}
- let popup = new InputSourcePopup(this._mruSources, this._keybindingAction, this._keybindingActionBackward);
- if (!popup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
- popup.fadeAndDestroy();
+ this._switcherPopup = new InputSourcePopup(
+ this._mruSources, this._keybindingAction, this._keybindingActionBackward);
+ this._switcherPopup.connect('destroy', () => this._switcherPopup = null);
+ if (!this._switcherPopup.show(
+ binding.is_reversed(), binding.get_name(), binding.get_mask()))
+ this._switcherPopup.fadeAndDestroy();
}
_keyboardOptionsChanged() {
@@ -675,6 +678,10 @@ var InputSourceManager = class extends Signals.EventEmitter {
}
_ibusSetContentType(im, purpose, _hints) {
+ // Avoid purpose changes while the switcher popup is shown, likely due to
+ // the focus change caused by the switcher popup causing this purpose change.
+ if (this._switcherPopup)
+ return;
if (purpose == IBus.InputPurpose.PASSWORD) {
if (Object.keys(this._inputSources).length == Object.keys(this._ibusSources).length)
return;
--
GitLab

View File

@ -1,28 +1,13 @@
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: gnome-shell
Version: 43.1
Release: 5%{?dist}
Version: 44~beta
Release: 1%{?dist}
Summary: Window management and application launching for GNOME
License: GPLv2+
URL: https://wiki.gnome.org/Projects/GnomeShell
Source0: https://download.gnome.org/sources/gnome-shell/43/%{name}-%{tarball_version}.tar.xz
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2534
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6066
# Fix layout switching in password entry boxes
Patch1: 2534.patch
# Backport broken screen cast fix if gstreamer1-vaapi was installed.
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2533
Patch2: post-43.1-fixes.patch
# Backport fix for keyboard shortcut inhibit permissions
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6107
# https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/872
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2548
Patch3: 0001-inhibitShorcutsDialog-Fix-permission-check.patch
Source0: https://download.gnome.org/sources/gnome-shell/44/%{name}-%{tarball_version}.tar.xz
# Replace Epiphany with Firefox in the default favourite apps list
Patch10001: gnome-shell-favourite-apps-firefox.patch
@ -31,9 +16,6 @@ Patch10001: gnome-shell-favourite-apps-firefox.patch
# downstream patch to stop trying on configuration errors.
Patch40001: 0001-gdm-Work-around-failing-fingerprint-auth.patch
# Work around crashy tear down
Patch60003: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch
%define eds_version 3.45.1
%define gnome_desktop_version 3.35.91
%define glib2_version 2.56.0
@ -42,7 +24,7 @@ Patch60003: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch
%define gtk3_version 3.15.0
%define gtk4_version 4.0.0
%define adwaita_version 1.0.0
%define mutter_version 43.0
%define mutter_version 44~beta
%define polkit_version 0.100
%define gsettings_desktop_schemas_version 42~beta
%define ibus_version 1.5.2
@ -190,7 +172,8 @@ mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Extensions.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop
%files -f %{name}.lang
%license COPYING
@ -204,7 +187,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%{_datadir}/glib-2.0/schemas/00_org.gnome.shell.gschema.override
%{_datadir}/applications/org.gnome.Shell.Extensions.desktop
%{_datadir}/applications/org.gnome.Shell.desktop
%{_datadir}/applications/evolution-calendar.desktop
%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop
%{_datadir}/bash-completion/completions/gnome-extensions
%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-launchers.xml
@ -231,7 +213,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%{_userunitdir}/org.gnome.Shell.target
%{_userunitdir}/org.gnome.Shell@wayland.service
%{_userunitdir}/org.gnome.Shell@x11.service
%{_sysconfdir}/xdg/autostart/gnome-shell-overrides-migration.desktop
# Co own directory instead of pulling in xdg-desktop-portal - we
# are providing a backend to the portal, not depending on it
%dir %{_datadir}/xdg-desktop-portal/portals/
@ -241,11 +222,13 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%{_libexecdir}/gnome-shell-perf-helper
%{_libexecdir}/gnome-shell-hotplug-sniffer
%{_libexecdir}/gnome-shell-portal-helper
%{_libexecdir}/gnome-shell-overrides-migration.sh
%{_mandir}/man1/gnome-extensions.1*
%{_mandir}/man1/gnome-shell.1*
%changelog
* Tue Feb 14 2023 Florian Müllner <fmuellner@redhat.com> - 44~beta-1
- Update to 44.beta
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 43.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

View File

@ -1,105 +0,0 @@
From 3851180cb02ab96d1ca18153fa3372bb46cdb691 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Sun, 6 Nov 2022 11:56:41 +0100
Subject: [PATCH 1/2] dbusService/screencast: Hold during gstreamer checks
Some gstreamer plugins require a connection to the display server,
so they block until the server is up and running. That's why we
moved the check into the D-Bus service, so that the blocking would
not lock up the compositor itself.
However the block can still delay the service initialization so
much that auto-shutdown hits immediately when returning from the
constructor. If that happens, the proxy on the shell side is no
longer backed by a remote object when the init callback runs, and
all properties therefore resolve as `null`.
As a result, gnome-shell thinks that screencasts aren't supported
and hides the screencast button.
Fix this by holding the service during the gstreamer checks, so
that the auto-shutdown timeout only starts after the service is
ready.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6051
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2533>
(cherry picked from commit a2acecb491e53e889dd995d3db386aaa182e04a0)
---
js/dbusServices/screencast/screencastService.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js
index f7f36da886..a2bb23cfea 100644
--- a/js/dbusServices/screencast/screencastService.js
+++ b/js/dbusServices/screencast/screencastService.js
@@ -271,11 +271,14 @@ var ScreencastService = class extends ServiceImplementation {
constructor() {
super(ScreencastIface, '/org/gnome/Shell/Screencast');
+ this.hold(); // gstreamer initializing can take a bit
this._canScreencast = ScreencastService.canScreencast();
Gst.init(null);
Gtk.init();
+ this.release();
+
this._recorders = new Map();
this._senders = new Map();
--
2.38.1
From 41235b44ae02be26aa290c66d5a2a1ec9e458568 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Sun, 6 Nov 2022 13:06:44 +0100
Subject: [PATCH 2/2] screenshot: Cache ScreencastSupported property
The screencast service shuts down when not in use, so it is almost
certainly not running when handling the screencast shortcut.
Instead of making sure the service is restarted, just cache the
property when initializing the proxy.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2533>
(cherry picked from commit 144daf200c12f313c2cc7c01daef9e26e396a328)
---
js/ui/screenshot.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index a01fbe3c94..b2ea6fad2b 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -1017,6 +1017,7 @@ var ScreenshotUI = GObject.registerClass({
});
this._screencastInProgress = false;
+ this._screencastSupported = false;
this._screencastProxy = new ScreencastProxy(
Gio.DBus.session,
@@ -1028,7 +1029,8 @@ var ScreenshotUI = GObject.registerClass({
return;
}
- this._castButton.visible = this._screencastProxy.ScreencastSupported;
+ this._screencastSupported = this._screencastProxy.ScreencastSupported;
+ this._castButton.visible = this._screencastSupported;
});
this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
@@ -1450,7 +1452,7 @@ var ScreenshotUI = GObject.registerClass({
if (this._screencastInProgress)
return;
- if (mode === UIMode.SCREENCAST && !this._screencastProxy.ScreencastSupported)
+ if (mode === UIMode.SCREENCAST && !this._screencastSupported)
return;
this._castButton.checked = mode === UIMode.SCREENCAST;
--
2.38.1

View File

@ -1 +1 @@
SHA512 (gnome-shell-43.1.tar.xz) = 1e41f0ce38b285aca1f9189fdb50e4d409232554da73e9c08e21b5888d35bad3e2bf4a47e93fdf20798ea6f63864223088b78cab7c63fc1105cd955701ea2e81
SHA512 (gnome-shell-44.beta.tar.xz) = 54add2c478ea35118684b229857c7f8f77bf270f1b465557790375a0b701b1b705025858565f9bcd613af61136e45bc05a659228316f7b51ed288228a576f148