diff --git a/0001-gdm-Work-around-failing-fingerprint-auth.patch b/0001-gdm-Work-around-failing-fingerprint-auth.patch new file mode 100644 index 0000000000000000000000000000000000000000..caac09f01db91881127c29cf70e37eca2be283ca --- /dev/null +++ b/0001-gdm-Work-around-failing-fingerprint-auth.patch @@ -0,0 +1,67 @@ +From 22df9fa5e3c973d5a194f2bbdbcdd4a64511bc93 Mon Sep 17 00:00:00 2001 +From: Benjamin Berg +Date: Wed, 28 Apr 2021 16:50:03 +0200 +Subject: [PATCH] gdm: Work around failing fingerprint auth + +On Fedora we have the problem that fingerprint auth fails immediately if +the PAM configuration has not been updated and no prints are enrolled. + +So, consider a verification failure within one second to be a service +failure instead. +--- + js/gdm/util.js | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/js/gdm/util.js b/js/gdm/util.js +index b02cd4d73..118a05100 100644 +--- a/js/gdm/util.js ++++ b/js/gdm/util.js +@@ -157,6 +157,7 @@ var ShellUserVerifier = class { + null, + null, + Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES); ++ this._fprintStartTime = -1; + this._smartcardManager = SmartcardManager.getSmartcardManager(); + + // We check for smartcards right away, since an inserted smartcard +@@ -543,6 +544,10 @@ var ShellUserVerifier = class { + async _startService(serviceName) { + this._hold.acquire(); + try { ++ if (serviceName == FINGERPRINT_SERVICE_NAME) { ++ this._fprintStartTime = GLib.get_monotonic_time(); ++ } ++ + if (this._userName) { + await this._userVerifier.call_begin_verification_for_user( + serviceName, this._userName, this._cancellable); +@@ -624,6 +629,7 @@ var ShellUserVerifier = class { + const cancellable = this._cancellable; + this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, + FINGERPRINT_ERROR_TIMEOUT_WAIT, () => { ++ log("Generating _verificationFailed!"); + this._fingerprintFailedId = 0; + if (!cancellable.is_cancelled()) + this._verificationFailed(serviceName, false); +@@ -689,6 +695,18 @@ var ShellUserVerifier = class { + if (serviceName === FINGERPRINT_SERVICE_NAME) { + if (this._fingerprintFailedId) + GLib.source_remove(this._fingerprintFailedId); ++ ++ // On Fedora we have the problem that fingerprint auth fails ++ // immediately if the PAM configuration has not been updated and no ++ // prints are enrolled. ++ // So, consider a verification failure within one second to be a service ++ // failure instead. ++ if (this._fprintStartTime > GLib.get_monotonic_time() - GLib.USEC_PER_SEC) { ++ log("Fingerprint service failed almost immediately, considering it unavailable."); ++ log("Please fix your configuration by running: authselect select --force sssd with-fingerprint with-silent-lastlog"); ++ this._onServiceUnavailable(this._client, serviceName, null); ++ return; ++ } + } + + // For Not Listed / enterprise logins, immediately reset +-- +2.31.1 + diff --git a/0001-main-Leak-the-GJS-context-and-ShellGlobal.patch b/0001-main-Leak-the-GJS-context-and-ShellGlobal.patch new file mode 100644 index 0000000000000000000000000000000000000000..bd5146ec2f8cdd48aed457e2d1b7d9b5bc1835fc --- /dev/null +++ b/0001-main-Leak-the-GJS-context-and-ShellGlobal.patch @@ -0,0 +1,31 @@ +From 9a0ecad2b94243fbed5290f78d967d8714c3d3e4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonas=20=C3=85dahl?= +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 + diff --git a/gnome-shell-3.38.4.tar.xz b/gnome-shell-3.38.4.tar.xz deleted file mode 100644 index 7239a262b3ca5036b4b7cb7b392ff215243e5497..0000000000000000000000000000000000000000 Binary files a/gnome-shell-3.38.4.tar.xz and /dev/null differ diff --git a/gnome-shell-42.2.tar.xz b/gnome-shell-42.2.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..d6475f55e742bba5f3a0f3cbc0dde6a60cff8b45 Binary files /dev/null and b/gnome-shell-42.2.tar.xz differ diff --git a/gnome-shell-favourite-apps-firefox.patch b/gnome-shell-favourite-apps-firefox.patch index 6ce8d90a1c8b67d29de1c1265a3bfe40a9029338..fba63ae9c47a1e10d97fe066e94ef0b1148ef35b 100644 --- a/gnome-shell-favourite-apps-firefox.patch +++ b/gnome-shell-favourite-apps-firefox.patch @@ -1,4 +1,4 @@ -From ecbdc8596190dd0b2686cbe75790ed01708bd2a2 Mon Sep 17 00:00:00 2001 +From a2e62e671260576d23f18c22c10a48ac4a8504af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 17 Sep 2014 07:11:12 +0200 Subject: [PATCH] Replace Web with Firefox in default favorites @@ -9,23 +9,23 @@ Subject: [PATCH] Replace Web with Firefox in default favorites 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in -index 49d38d766..1433292e4 100644 +index cd6a2356d..b8a13a9cc 100644 --- a/data/org.gnome.shell.gschema.xml.in +++ b/data/org.gnome.shell.gschema.xml.in @@ -50,7 +50,7 @@ -- [ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] -+ [ 'firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] +- [ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] ++ [ 'firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] List of desktop file IDs for favorite applications The applications corresponding to these identifiers diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js -index 3308dd6b3..87c008704 100644 +index a876727ed..24ce16f81 100644 --- a/js/ui/appFavorites.js +++ b/js/ui/appFavorites.js -@@ -50,6 +50,7 @@ const RENAMED_DESKTOP_IDS = { +@@ -52,6 +52,7 @@ const RENAMED_DESKTOP_IDS = { 'gnotski.desktop': 'org.gnome.Klotski.desktop', 'gtali.desktop': 'org.gnome.Tali.desktop', 'iagno.desktop': 'org.gnome.Reversi.desktop', @@ -34,5 +34,5 @@ index 3308dd6b3..87c008704 100644 'org.gnome.gnome-2048.desktop': 'org.gnome.TwentyFortyEight.desktop', 'org.gnome.taquin.desktop': 'org.gnome.Taquin.desktop', -- -2.24.1 +2.30.1 diff --git a/gnome-shell.spec b/gnome-shell.spec index 3d0179335d7415e71c798f23b4706af2b8751232..e1e18cff895b50d46a6557e4ca3714c378fa6ec8 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -1,33 +1,87 @@ +%define eds_version 3.33.1 +%define gnome_desktop_version 3.35.91 +%define glib2_version 2.56.0 +%define gobject_introspection_version 1.49.1 +%define gjs_version 1.71.1 +%define gtk3_version 3.15.0 +%define gtk4_version 4.0.0 +%define adwaita_version 1.0.0 +%define mutter_version 42.0 +%define polkit_version 0.100 +%define gsettings_desktop_schemas_version 42~beta +%define ibus_version 1.5.2 +%define gnome_bluetooth_version 1:3.9.0 +%define gstreamer_version 1.4.5 +%define pipewire_version 0.3.0 +%define gnome_settings_daemon_version 3.37.1 + Name: gnome-shell -Version: 3.38.4 -Release: 4 +Version: 42.2 +Release: 1 Summary: Core user interface functions for the GNOME 3 desktop Group: User Interface/Desktops License: GPLv2+ URL: https://wiki.gnome.org/Projects/GnomeShell -Source0: http://download.gnome.org/sources/gnome-shell/3.38/%{name}-%{version}.tar.xz - -Patch1: gnome-shell-favourite-apps-firefox.patch - -BuildRequires: meson ibus-devel chrpath dbus-glib-devel desktop-file-utils -BuildRequires: evolution-data-server-devel gcr-devel gjs-devel glib2-devel -BuildRequires: gobject-introspection json-glib-devel upower-devel mesa-libGL-devel -BuildRequires: NetworkManager-libnm-devel polkit-devel startup-notification-devel -BuildRequires: sassc gstreamer1-devel gtk3-devel gettext libcanberra-devel -BuildRequires: python3-devel libXfixes-devel librsvg2-devel asciidoc -BuildRequires: mutter-devel pulseaudio-libs-devel control-center gtk-doc -BuildRequires: bash-completion gnome-autoar-devel gnome-desktop3-devel -BuildRequires: mesa-libEGL-devel systemd-devel python3 -BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.0 gnome-bluetooth-libs-devel - -Requires: gnome-desktop3 gobject-introspection gjs gtk3 libnma librsvg2 -Requires: json-glib mozilla-filesystem mutter upower polkit glib2 -Requires: gsettings-desktop-schemas gstreamer1 at-spi2-atk gnome-bluetooth -Requires: ibus accountsservice-libs gdm control-center python3 gnome-settings-daemon -Requires: switcheroo-control geoclue2 libgweather bolt gnome-session-xsession -Requires: geoclue2-libs pipewire xdg-desktop-portal-gtk >= 1.8.0 - -Provides: desktop-notification-daemon PolicyKit-authentication-agent +Source0: https://download.gnome.org/sources/gnome-shell/42/%{name}-%{version}.tar.xz +Patch10001: gnome-shell-favourite-apps-firefox.patch +Patch40001: 0001-gdm-Work-around-failing-fingerprint-auth.patch +Patch60003: 0001-main-Leak-the-GJS-context-and-ShellGlobal.patch + +BuildRequires: bash-completion gcc meson mesa-libGL-devel mesa-libEGL-devel +BuildRequires: gtk-doc desktop-file-utils python3 librsvg2-devel chrpath +BuildRequires: gettext >= 0.19.6 libXfixes-devel >= 5.0 +BuildRequires: pkgconfig(gcr-base-3) pkgconfig(gnome-autoar-0) pkgconfig(gnome-desktop-3.0) pkgconfig(libpulse) +BuildRequires: pkgconfig(libnm) pkgconfig(libsystemd) pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(ibus-1.0) >= %{ibus_version} +BuildRequires: pkgconfig(libedataserver-1.2) >= %{eds_version} +BuildRequires: pkgconfig(gjs-1.0) >= %{gjs_version} +BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(gobject-introspection-1.0) >= %{gobject_introspection_version} +BuildRequires: pkgconfig(polkit-agent-1) >= %{polkit_version} +BuildRequires: pkgconfig(gstreamer-base-1.0) >= %{gstreamer_version} +BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_version} +BuildRequires: pkgconfig(gdk-x11-3.0) >= %{gtk3_version} +BuildRequires: pkgconfig(gtk4) >= %{gtk4_version} +BuildRequires: mutter-devel >= %{mutter_version} +BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version} + +Requires: gnome-session-xsession xdg-user-dirs-gtk +Requires: libgnomekbd gnome-control-center switcheroo-control gnome-tour +Requires: gnome-bluetooth%{?_isa} >= %{gnome_bluetooth_version} +Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version} +Requires: gobject-introspection%{?_isa} >= %{gobject_introspection_version} +Requires: gjs%{?_isa} >= %{gjs_version} +Requires: gtk3%{?_isa} >= %{gtk3_version} +Requires: gtk4%{?_isa} >= %{gtk4_version} +Requires: libadwaita%{_isa} >= %{adwaita_version} +Requires: libnma%{?_isa} +Requires: librsvg2%{?_isa} +Requires: mutter%{?_isa} >= %{mutter_version} +Requires: upower%{?_isa} +Requires: polkit%{?_isa} >= %{polkit_version} +Requires: gnome-desktop3%{?_isa} >= %{gnome_desktop_version} +Requires: glib2%{?_isa} >= %{glib2_version} +Requires: gsettings-desktop-schemas%{?_isa} >= %{gsettings_desktop_schemas_version} +Requires: gnome-settings-daemon%{?_isa} >= %{gnome_settings_daemon_version} +Requires: gstreamer1%{?_isa} >= %{gstreamer_version} +Requires: gstreamer1-plugins-good%{?_isa} +Requires: pipewire-gstreamer%{?_isa} +Requires: at-spi2-atk%{?_isa} +Requires: ibus%{?_isa} >= %{ibus_version} +Requires: accountsservice-libs%{?_isa} +Requires: gdm-libs%{?_isa} +Requires: python3%{_isa} +Requires: geoclue2-libs%{?_isa} +Requires: libgweather%{?_isa} +Requires: bolt%{?_isa} +Requires: xdg-desktop-portal-gtk >= 1.8.0 + +Provides: desktop-notification-daemon = %{version}-%{release} +Provides: PolicyKit-authentication-agent = %{version}-%{release} +Provides: bundled(gvc) +Provides: bundled(libcroco) = 0.6.13 + +Conflicts: gnome-shell-extension-background-logo < 3.34.0 %description The GNOME Shell redefines user interactions with the GNOME desktop. In particular, @@ -38,7 +92,6 @@ management. The GNOME Shell is intended to replace functions handled by the GNOM and by the window manager in previous versions of GNOME. The GNOME Shell has rich visual effects enabled by new graphical technologies. - %package help Summary: Help files for %{name} BuildArch: noarch @@ -50,15 +103,17 @@ Help files for %{name} %prep %autosetup -n %{name}-%{version} -p1 - %build %meson -Dextensions_app=false %meson_build - %install %meson_install +# Create empty directories where other packages can drop extensions +mkdir -p %{buildroot}%{_datadir}/gnome-shell/extensions +mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers + %find_lang %{name} chrpath -d %{buildroot}%{_bindir}/gnome-shell @@ -69,12 +124,10 @@ mkdir -p %{buildroot}/etc/ld.so.conf.d echo "%{_bindir}/%{name}" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf echo "%{_libdir}/%{name}" >> %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf - %check desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.desktop - %preun /sbin/ldconfig glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null ||: @@ -83,7 +136,6 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null /sbin/ldconfig glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null ||: - %files -f %{name}.lang %license COPYING %doc README.md @@ -94,9 +146,13 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null %{_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 +%{_datadir}/gnome-control-center/keybindings/50-gnome-shell-screenshots.xml %{_datadir}/gnome-control-center/keybindings/50-gnome-shell-system.xml %{_datadir}/gnome-shell/ +%{_datadir}/dbus-1/services/org.gnome.ScreenSaver.service %{_datadir}/dbus-1/services/org.gnome.Shell.CalendarServer.service %{_datadir}/dbus-1/services/org.gnome.Shell.Extensions.service %{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service @@ -110,6 +166,8 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screenshot.xml %{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml %{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml +%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.Extensions.svg +%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.Extensions-symbolic.svg %{_userunitdir}/org.gnome.Shell-disable-extensions.service %{_userunitdir}/org.gnome.Shell.target @@ -119,16 +177,12 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null %dir %{_datadir}/xdg-desktop-portal/portals/ %{_datadir}/xdg-desktop-portal/portals/gnome-shell.portal -%{_datadir}/bash-completion/completions/gnome-extensions -%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.Extensions.svg -%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.Extensions-symbolic.svg %{_libdir}/gnome-shell/ %{_libexecdir}/gnome-shell-calendar-server %{_libexecdir}/gnome-shell-perf-helper %{_libexecdir}/gnome-shell-hotplug-sniffer %{_libexecdir}/gnome-shell-portal-helper %{_libexecdir}/gnome-shell-overrides-migration.sh -%{_datadir}/GConf/* %config(noreplace) /etc/ld.so.conf.d/* %files help @@ -136,6 +190,9 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null %{_mandir}/man1/gnome-extensions.1.gz %changelog +* Mon Mar 28 2022 lin zhang - 42.2-1 +- Upgrade to 42.2 + * Tue Sep 07 2021 chenchen - 3.38.4-4 - del rpath from some binaries and bin diff --git a/gnome-shell.yaml b/gnome-shell.yaml index 671a9117730809587d673e3d20770824eba8c491..519eb0780db79b6e48c9313ca349605f475299c2 100644 --- a/gnome-shell.yaml +++ b/gnome-shell.yaml @@ -1,4 +1,4 @@ version_control: gitlab.gnome src_repo: gnome-shell tag_prefix: ^ -seperator: . +separator: .