diff --git a/0001-extensionSystem-Disable-extension-before-unloading-s.patch b/0001-extensionSystem-Disable-extension-before-unloading-s.patch new file mode 100644 index 0000000..9fc414e --- /dev/null +++ b/0001-extensionSystem-Disable-extension-before-unloading-s.patch @@ -0,0 +1,51 @@ +From 6d5e93b00b5b4ce5315276e071a98c8db5ff6463 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Wed, 13 May 2020 20:10:56 +0200 +Subject: [PATCH] extensionSystem: Disable extension before unloading + stylesheet + +Removing a stylesheet from the theme will trigger a style update. There's +little point in updating the extension actors that are about to be destroyed +(hopefully), so call the extension's disable() function first. + +https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2757 +--- + js/ui/extensionSystem.js | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js +index 1a34f19e9e384b1d352207ea78eba9e7e1f80ba3..5a50b473ac2bdb25ec1a7f47cbd2d00ebf889800 100644 +--- a/js/ui/extensionSystem.js ++++ b/js/ui/extensionSystem.js +@@ -100,22 +100,22 @@ var ExtensionManager = class { + } catch (e) { + this.logExtensionError(otherUuid, e); + } + } + ++ try { ++ extension.stateObj.disable(); ++ } catch (e) { ++ this.logExtensionError(uuid, e); ++ } ++ + if (extension.stylesheet) { + let theme = St.ThemeContext.get_for_stage(global.stage).get_theme(); + theme.unload_stylesheet(extension.stylesheet); + delete extension.stylesheet; + } + +- try { +- extension.stateObj.disable(); +- } catch (e) { +- this.logExtensionError(uuid, e); +- } +- + for (let i = 0; i < order.length; i++) { + let otherUuid = order[i]; + try { + this.lookup(otherUuid).stateObj.enable(); + } catch (e) { +-- +2.26.2 + diff --git a/gnome-shell.spec b/gnome-shell.spec index cef6c12..ac7bde0 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -1,6 +1,6 @@ Name: gnome-shell Version: 3.37.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -22,6 +22,9 @@ Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch # https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/e08a4acd Patch4: 0001-ibusManager-Fix-the-panel-after-porting-to-Promises.patch +# Avoid crash in extensions +Patch5: 0001-extensionSystem-Disable-extension-before-unloading-s.patch + %define eds_version 3.33.1 %define gnome_desktop_version 3.35.91 %define glib2_version 2.56.0 @@ -218,6 +221,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %{_mandir}/man1/gnome-shell.1* %changelog +* Wed May 20 2020 Stephen Gallagher - 3.37.1-3 +- Fix crashes when locking the screen while certain extensions are active +- Resolves: rhbz#1817082 + * Mon May 04 2020 Adam Williamson - 3.37.1-2 - Fix panel to show input methods (MR #1235)