diff --git a/0001-gnome-shell-favourite-apps-firefox.patch b/0001-gnome-shell-favourite-apps-firefox.patch new file mode 100644 index 0000000000000000000000000000000000000000..fba63ae9c47a1e10d97fe066e94ef0b1148ef35b --- /dev/null +++ b/0001-gnome-shell-favourite-apps-firefox.patch @@ -0,0 +1,38 @@ +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 + +--- + data/org.gnome.shell.gschema.xml.in | 2 +- + js/ui/appFavorites.js | 1 + + 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 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.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 a876727ed..24ce16f81 100644 +--- a/js/ui/appFavorites.js ++++ b/js/ui/appFavorites.js +@@ -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', ++ 'mozilla-firefox.desktop': 'firefox.desktop', + 'nautilus.desktop': 'org.gnome.Nautilus.desktop', + 'org.gnome.gnome-2048.desktop': 'org.gnome.TwentyFortyEight.desktop', + 'org.gnome.taquin.desktop': 'org.gnome.Taquin.desktop', +-- +2.30.1 + diff --git a/0002-gdm-Work-around-failing-fingerprint-auth.patch b/0002-gdm-Work-around-failing-fingerprint-auth.patch new file mode 100644 index 0000000000000000000000000000000000000000..caac09f01db91881127c29cf70e37eca2be283ca --- /dev/null +++ b/0002-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/gnome-shell-44.rc.tar.xz b/gnome-shell-44.rc.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..83abe1869d3957a57e94ad302d07e6f6b3b0ea18 Binary files /dev/null and b/gnome-shell-44.rc.tar.xz differ diff --git a/gnome-shell.spec b/gnome-shell.spec new file mode 100644 index 0000000000000000000000000000000000000000..43de2c15594067bc3b8b543f1b748b1fc9c770c9 --- /dev/null +++ b/gnome-shell.spec @@ -0,0 +1,238 @@ +%define anolis_release 1 + +%global tarball_version %%(echo %{version} | tr '~' '.') + +Name: gnome-shell +Version: 44~rc +Release: %{anolis_release}%{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/44/%{name}-%{tarball_version}.tar.xz + +# Replace Epiphany with Firefox in the default favourite apps list +Patch0001: 0001-gnome-shell-favourite-apps-firefox.patch + +# Some users might have a broken PAM config, so we really need this +# downstream patch to stop trying on configuration errors. +Patch0002: 0002-gdm-Work-around-failing-fingerprint-auth.patch + +%define eds_version 3.45.1 +%define gnome_desktop_version 40 +%define glib2_version 2.56.0 +%define gobject_introspection_version 1.49.1 +%define gjs_version 1.73.1 +%define gtk3_version 3.15.0 +%define gtk4_version 4.0.0 +%define adwaita_version 1.0.0 +%define mutter_version 44~rc +%define polkit_version 0.100 +%define gsettings_desktop_schemas_version 42~beta +%define ibus_version 1.5.2 +%define gnome_bluetooth_version 1:42.3 +%define gstreamer_version 1.4.5 +%define pipewire_version 0.3.0 +%define gnome_settings_daemon_version 3.37.1 + +BuildRequires: bash-completion +BuildRequires: gcc +BuildRequires: meson +BuildRequires: git +BuildRequires: pkgconfig(ibus-1.0) >= %{ibus_version} +BuildRequires: desktop-file-utils +BuildRequires: pkgconfig(libedataserver-1.2) >= %{eds_version} +BuildRequires: pkgconfig(gcr-4) +BuildRequires: pkgconfig(gjs-1.0) >= %{gjs_version} +BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(gnome-autoar-0) +BuildRequires: pkgconfig(gnome-desktop-4) +BuildRequires: pkgconfig(gobject-introspection-1.0) >= %{gobject_introspection_version} +BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libEGL-devel +BuildRequires: pkgconfig(libnm) +BuildRequires: pkgconfig(polkit-agent-1) >= %{polkit_version} +BuildRequires: pkgconfig(libstartup-notification-1.0) +BuildRequires: pkgconfig(libsystemd) +# for screencast recorder functionality +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: gettext >= 0.19.6 +BuildRequires: python3 + +# for barriers +BuildRequires: libXfixes-devel >= 5.0 +# used in unused BigThemeImage +BuildRequires: librsvg2-devel +BuildRequires: mutter-devel >= %{mutter_version} +BuildRequires: pkgconfig(libpulse) +BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version} +# Bootstrap requirements +BuildRequires: gtk-doc +Recommends: gnome-bluetooth >= %{gnome_bluetooth_version} +Requires: gnome-desktop3 >= %{gnome_desktop_version} +Recommends: gnome-session-xsession +Requires: gcr +Requires: gobject-introspection >= %{gobject_introspection_version} +Requires: gjs >= %{gjs_version} +Requires: gtk3 >= %{gtk3_version} +Requires: gtk4 >= %{gtk4_version} +Requires: libadwaita >= %{adwaita_version} +Requires: libnma +# needed for loading SVG's via gdk-pixbuf +Requires: librsvg2 +Requires: mutter >= %{mutter_version} +Requires: upower +Requires: polkit >= %{polkit_version} +Requires: gnome-desktop4 >= %{gnome_desktop_version} +Requires: glib2 >= %{glib2_version} +Requires: gsettings-desktop-schemas >= %{gsettings_desktop_schemas_version} +Requires: gnome-settings-daemon >= %{gnome_settings_daemon_version} +Requires: gstreamer1 >= %{gstreamer_version} +# needed for screen recorder +Requires: gstreamer1-plugins-good +Requires: pipewire-gstreamer +Requires: xdg-user-dirs-gtk +# needed for schemas +Requires: at-spi2-atk +# needed for on-screen keyboard +Requires: ibus >= %{ibus_version} +# needed for "show keyboard layout" +Requires: libgnomekbd +# needed for the user menu +Requires: accountsservice-libs +Requires: gdm-libs +# needed for settings items in menus +Requires: gnome-control-center +# needed by some utilities +Requires: python3 +# needed for the dual-GPU launch menu +Requires: switcheroo-control +# needed for clocks/weather integration +Requires: geoclue2-libs +Requires: libgweather4 +# needed for thunderbolt support +Requires: bolt +# Needed for launching flatpak apps etc +# 1.8.0 is needed for source type support in the screencast portal. +Requires: xdg-desktop-portal-gtk >= 1.8.0 +Requires: xdg-desktop-portal-gnome +# needed by the welcome dialog +Recommends: gnome-tour + +Provides: desktop-notification-daemon = %{version}-%{release} +Provides: PolicyKit-authentication-agent = %{version}-%{release} +Provides: bundled(gvc) +Provides: bundled(libcroco) = 0.6.13 + +Obsoletes: caribou < 0.4.21-10 +Obsoletes: caribou-antler < 0.4.21-10 +Obsoletes: caribou-devel < 0.4.21-10 +Obsoletes: caribou-gtk2-module < 0.4.21-10 +Obsoletes: caribou-gtk3-module < 0.4.21-10 +Obsoletes: python-caribou < 0.4.21-10 +Obsoletes: python2-caribou < 0.4.21-10 +Obsoletes: python3-caribou < 0.4.21-10 + +Conflicts: gnome-shell-extension-background-logo < 3.34.0 + +%description +GNOME Shell provides core user interface functions for the GNOME 3 desktop, +like switching to windows and launching applications. GNOME Shell takes +advantage of the capabilities of modern graphics hardware and introduces +innovative user interface concepts to provide a visually attractive and +easy to use experience. + +%package doc +Summary: Documentation files for %{name} +Requires: %{name} = %{EVR} +BuildArch: noarch + +%description doc +The %{name}-doc package contains documentation files for %{name}. + +%prep +%autosetup -S git -n %{name}-%{tarball_version} + +%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} + +%check +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Extensions.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.PortalHelper.desktop + +%generate_compatibility_deps + +%files -f %{name}.lang +%license COPYING +%dir %{abidir} +%{_bindir}/gnome-shell +%{_bindir}/gnome-extensions +%{abidir}/gnome-extensions-option.list +%{_bindir}/gnome-shell-extension-prefs +%{_bindir}/gnome-shell-extension-tool +%{abidir}/gnome-shell-extension-tool-option.list +%{_bindir}/gnome-shell-perf-tool +%{_datadir}/glib-2.0/schemas/*.xml +%{_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/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 +%{_datadir}/dbus-1/services/org.gnome.Shell.Notifications.service +%{_datadir}/dbus-1/services/org.gnome.Shell.PortalHelper.service +%{_datadir}/dbus-1/services/org.gnome.Shell.Screencast.service +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Extensions.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Introspect.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screencast.xml +%{_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 +%{_userunitdir}/org.gnome.Shell@wayland.service +%{_userunitdir}/org.gnome.Shell@x11.service +# 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/ +%{_datadir}/xdg-desktop-portal/portals/gnome-shell.portal +%{_libdir}/gnome-shell/ +%{abidir}/*.dump +%{_libexecdir}/gnome-shell-calendar-server +%{_libexecdir}/gnome-shell-perf-helper +%{_libexecdir}/gnome-shell-hotplug-sniffer +%{_libexecdir}/gnome-shell-portal-helper +%{_mandir}/man1/gnome-extensions.1* +%{_mandir}/man1/gnome-shell.1* + +%files doc +%doc README.md + +%changelog +* Tue Mar 21 2023 yuanhui - 44~rc-1 +- Init package from upstream