diff --git a/0001-appDisplay-fix-folder-loop-in-_ensureDefaultFolders.patch b/0001-appDisplay-fix-folder-loop-in-_ensureDefaultFolders.patch new file mode 100644 index 0000000..297e0e5 --- /dev/null +++ b/0001-appDisplay-fix-folder-loop-in-_ensureDefaultFolders.patch @@ -0,0 +1,33 @@ +From e0aea6d883cbb5bc3a7a81f40fb450171e538676 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Wed, 9 Mar 2022 16:12:36 -0800 +Subject: [PATCH 1/2] appDisplay: fix folder loop in `_ensureDefaultFolders` + +In testing on Fedora, gnome-shell crashes here: + +JS ERROR: TypeError: DEFAULT_FOLDERS[folder] is undefined + +This needs to be a "for of" loop, not a "for in" loop, because +`folders` is an array of the hash's keys, not the hash itself. + +Signed-off-by: Adam Williamson +--- + js/ui/appDisplay.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js +index d8d0ff4f7..821bfe3b8 100644 +--- a/js/ui/appDisplay.js ++++ b/js/ui/appDisplay.js +@@ -1467,7 +1467,7 @@ class AppDisplay extends BaseAppView { + this._folderSettings.set_strv('folder-children', folders); + + const { path } = this._folderSettings; +- for (const folder in folders) { ++ for (const folder of folders) { + const { name, categories, apps } = DEFAULT_FOLDERS[folder]; + const child = new Gio.Settings({ + schema_id: 'org.gnome.desktop.app-folders.folder', +-- +2.35.1 + diff --git a/0002-appDisplay-fix-a-typo-in-the-DEFAULT_FOLDERS-definit.patch b/0002-appDisplay-fix-a-typo-in-the-DEFAULT_FOLDERS-definit.patch new file mode 100644 index 0000000..b06d1e5 --- /dev/null +++ b/0002-appDisplay-fix-a-typo-in-the-DEFAULT_FOLDERS-definit.patch @@ -0,0 +1,29 @@ +From 928f6dcdf28510bb60b0da43b511db209b089670 Mon Sep 17 00:00:00 2001 +From: Adam Williamson +Date: Wed, 9 Mar 2022 18:13:40 -0800 +Subject: [PATCH 2/2] appDisplay: fix a typo in the DEFAULT_FOLDERS definition + +This causes a crash because when we look for 'categories' later +for this entry, it's undefined. + +Signed-off-by: Adam Williamson +--- + js/ui/appDisplay.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js +index 821bfe3b8..116e9931d 100644 +--- a/js/ui/appDisplay.js ++++ b/js/ui/appDisplay.js +@@ -79,7 +79,7 @@ const DEFAULT_FOLDERS = { + }, + 'YaST': { + name: 'suse-yast.directory', +- categegories: ['X-SuSE-YaST'], ++ categories: ['X-SuSE-YaST'], + }, + }; + +-- +2.35.1 + diff --git a/gnome-shell.spec b/gnome-shell.spec index 4dfc645..028ffc5 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -2,7 +2,7 @@ Name: gnome-shell Version: 42~rc -Release: 1%{?dist} +Release: 2%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -19,6 +19,12 @@ Patch40001: 0001-gdm-Work-around-failing-fingerprint-auth.patch # Work around crashy tear down Patch60003: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch +# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2238 +# Fix a couple of bugs that caused gnome-shell to crash on first +# login with a new user +Patch80001: 0001-appDisplay-fix-folder-loop-in-_ensureDefaultFolders.patch +Patch80002: 0002-appDisplay-fix-a-typo-in-the-DEFAULT_FOLDERS-definit.patch + %define eds_version 3.33.1 %define gnome_desktop_version 3.35.91 %define glib2_version 2.56.0 @@ -232,6 +238,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %{_mandir}/man1/gnome-shell.1* %changelog +* Wed Mar 09 2022 Adam Williamson - 42~rc-2 +- Backport MR #2238 to fix crashes on first login + * Mon Mar 07 2022 Florian Müllner - 42~rc-1 - Update to 42.rc