diff --git a/0001-Add-support-for-new-ConfirmedRebootToBootOptions-sig.patch b/0001-Add-support-for-new-ConfirmedRebootToBootOptions-sig.patch deleted file mode 100644 index 4044718..0000000 --- a/0001-Add-support-for-new-ConfirmedRebootToBootOptions-sig.patch +++ /dev/null @@ -1,165 +0,0 @@ -From cba2fdd2ee9fc3decd4179feeda0cb7d833f1022 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 14 Aug 2018 14:41:43 +0200 -Subject: [PATCH 1/2] Add support for new ConfirmedRebootToBootOptions signal - send by org.gnome.SessionManager.EndSessionDialog - -In order to allow the user to choose advanced boot-options on systems where -the boot menu is not shown by default at boot, gnome-shell's endSessionDialog.js -may emit a new ConfirmedRebootToBootOptions signal to indicate that -gnome-session should reboot the system in such a way that the boot-menu will -be shown next boot. - -This implements the backend for the "Boot Options" button from: -https://wiki.gnome.org/Design/OS/BootOptions - -Note that at the moment ConfirmedRebootToBootOptions is just treated as an -alias to ConfirmedReboot, since there is no bootloader agnostic way yet to -indicate the menu should be shown. - -For now the FIXME may be patched with a distro specific patch to implement -this for the distro's chosen bootloader. I will start a discussion on -systemd-devel to come up with a distro / bootloader agnostic interface -for this. ---- -diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c -index 6839a02..a915785 100644 ---- a/gnome-session/gsm-manager.c -+++ b/gnome-session/gsm-manager.c -@@ -117,6 +117,7 @@ typedef enum - GSM_MANAGER_LOGOUT_NONE, - GSM_MANAGER_LOGOUT_LOGOUT, - GSM_MANAGER_LOGOUT_REBOOT, -+ GSM_MANAGER_LOGOUT_REBOOT_TO_BOOT_OPTIONS, - GSM_MANAGER_LOGOUT_REBOOT_INTERACT, - GSM_MANAGER_LOGOUT_SHUTDOWN, - GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT, -@@ -176,6 +177,7 @@ struct GsmManagerPrivate - guint shell_end_session_dialog_confirmed_logout_id; - guint shell_end_session_dialog_confirmed_shutdown_id; - guint shell_end_session_dialog_confirmed_reboot_id; -+ guint shell_end_session_dialog_confirmed_reboot_to_boot_options_id; - }; - - enum { -@@ -490,6 +492,7 @@ gsm_manager_quit (GsmManager *manager) - gsm_quit (); - break; - case GSM_MANAGER_LOGOUT_REBOOT: -+ case GSM_MANAGER_LOGOUT_REBOOT_TO_BOOT_OPTIONS: - case GSM_MANAGER_LOGOUT_REBOOT_INTERACT: - gsm_system_complete_shutdown (manager->priv->system); - gsm_quit (); -@@ -1161,6 +1164,7 @@ end_session_or_show_shell_dialog (GsmManager *manager) - type = GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT; - break; - case GSM_MANAGER_LOGOUT_REBOOT: -+ case GSM_MANAGER_LOGOUT_REBOOT_TO_BOOT_OPTIONS: - case GSM_MANAGER_LOGOUT_REBOOT_INTERACT: - type = GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART; - break; -@@ -3455,6 +3459,12 @@ disconnect_shell_dialog_signals (GsmManager *manager) - manager->priv->shell_end_session_dialog_confirmed_reboot_id = 0; - } - -+ if (manager->priv->shell_end_session_dialog_confirmed_reboot_to_boot_options_id != 0) { -+ g_signal_handler_disconnect (manager->priv->shell, -+ manager->priv->shell_end_session_dialog_confirmed_reboot_to_boot_options_id); -+ manager->priv->shell_end_session_dialog_confirmed_reboot_to_boot_options_id = 0; -+ } -+ - if (manager->priv->shell_end_session_dialog_open_failed_id != 0) { - g_signal_handler_disconnect (manager->priv->shell, - manager->priv->shell_end_session_dialog_open_failed_id); -@@ -3517,6 +3527,14 @@ on_shell_end_session_dialog_confirmed_reboot (GsmShell *shell, - disconnect_shell_dialog_signals (manager); - } - -+static void -+on_shell_end_session_dialog_confirmed_reboot_to_boot_options (GsmShell *shell, -+ GsmManager *manager) -+{ -+ _handle_end_session_dialog_response (manager, GSM_MANAGER_LOGOUT_REBOOT_TO_BOOT_OPTIONS); -+ disconnect_shell_dialog_signals (manager); -+} -+ - static void - connect_shell_dialog_signals (GsmManager *manager) - { -@@ -3552,6 +3570,12 @@ connect_shell_dialog_signals (GsmManager *manager) - "end-session-dialog-confirmed-reboot", - G_CALLBACK (on_shell_end_session_dialog_confirmed_reboot), - manager); -+ -+ manager->priv->shell_end_session_dialog_confirmed_reboot_to_boot_options_id = -+ g_signal_connect (manager->priv->shell, -+ "end-session-dialog-confirmed-reboot-to-boot-options", -+ G_CALLBACK (on_shell_end_session_dialog_confirmed_reboot_to_boot_options), -+ manager); - } - - static void -@@ -3825,6 +3849,10 @@ do_query_end_session_exit (GsmManager *manager) - case GSM_MANAGER_LOGOUT_REBOOT_INTERACT: - reboot = TRUE; - break; -+ case GSM_MANAGER_LOGOUT_REBOOT_TO_BOOT_OPTIONS: -+ /* FIXME tell bootmanager to show menu on next boot */ -+ reboot = TRUE; -+ break; - case GSM_MANAGER_LOGOUT_SHUTDOWN: - case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT: - shutdown = TRUE; -diff --git a/gnome-session/gsm-shell.c b/gnome-session/gsm-shell.c -index 04cfa2f..ac2a157 100644 ---- a/gnome-session/gsm-shell.c -+++ b/gnome-session/gsm-shell.c -@@ -69,6 +69,7 @@ enum { - END_SESSION_DIALOG_CONFIRMED_LOGOUT, - END_SESSION_DIALOG_CONFIRMED_SHUTDOWN, - END_SESSION_DIALOG_CONFIRMED_REBOOT, -+ END_SESSION_DIALOG_CONFIRMED_REBOOT_TO_BOOT_OPTIONS, - NUMBER_OF_SIGNALS - }; - -@@ -179,6 +180,14 @@ gsm_shell_class_init (GsmShellClass *shell_class) - NULL, NULL, NULL, - G_TYPE_NONE, 0); - -+ signals [END_SESSION_DIALOG_CONFIRMED_REBOOT_TO_BOOT_OPTIONS] = -+ g_signal_new ("end-session-dialog-confirmed-reboot-to-boot-options", -+ G_OBJECT_CLASS_TYPE (object_class), -+ G_SIGNAL_RUN_LAST, -+ G_STRUCT_OFFSET (GsmShellClass, end_session_dialog_confirmed_reboot_to_boot_options), -+ NULL, NULL, NULL, -+ G_TYPE_NONE, 0); -+ - g_type_class_add_private (shell_class, sizeof (GsmShellPrivate)); - } - -@@ -342,6 +351,7 @@ on_end_session_dialog_dbus_signal (GDBusProxy *proxy, - { "Canceled", END_SESSION_DIALOG_CANCELED }, - { "ConfirmedLogout", END_SESSION_DIALOG_CONFIRMED_LOGOUT }, - { "ConfirmedReboot", END_SESSION_DIALOG_CONFIRMED_REBOOT }, -+ { "ConfirmedRebootToBootOptions", END_SESSION_DIALOG_CONFIRMED_REBOOT_TO_BOOT_OPTIONS }, - { "ConfirmedShutdown", END_SESSION_DIALOG_CONFIRMED_SHUTDOWN }, - { NULL, -1 } - }; -diff --git a/gnome-session/gsm-shell.h b/gnome-session/gsm-shell.h -index e236493..b1cdd45 100644 ---- a/gnome-session/gsm-shell.h -+++ b/gnome-session/gsm-shell.h -@@ -64,9 +64,10 @@ struct _GsmShellClass - void (* end_session_dialog_closed) (GsmShell *shell); - void (* end_session_dialog_canceled) (GsmShell *shell); - -- void (* end_session_dialog_confirmed_logout) (GsmShell *shell); -- void (* end_session_dialog_confirmed_shutdown) (GsmShell *shell); -- void (* end_session_dialog_confirmed_reboot) (GsmShell *shell); -+ void (* end_session_dialog_confirmed_logout) (GsmShell *shell); -+ void (* end_session_dialog_confirmed_shutdown) (GsmShell *shell); -+ void (* end_session_dialog_confirmed_reboot) (GsmShell *shell); -+ void (* end_session_dialog_confirmed_reboot_to_boot_options) (GsmShell *shell); - - }; - diff --git a/0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch b/0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch new file mode 100644 index 0000000..dec5cd4 --- /dev/null +++ b/0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch @@ -0,0 +1,49 @@ +From e3d6f1c1d342d0c74f2125ea0efa2a9669aaa8df Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 14 Aug 2018 14:49:59 +0200 +Subject: [PATCH] Fedora: Set grub boot-flags on shutdown / reboot + +Fedora's grub will automatically hide the boot-menu if the previous +boot has set the boot_success flag in grub's environment. This happens +automatically 30 seconds after login. + +But if the user shuts down or reboots from the system-menu before then +(e.g. directly from gdm) then the boot_success flag gets not set. If +a reboot / shutdown is initiated through gnome-session then the user +is successfully interacting with the system, so set the boot_success +flag from gnome_session for this case to fix reboot from gdm leading to +the boot-menu not being hidden. +--- + gnome-session/gsm-manager.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c +index 6839a02d..589efb02 100644 +--- a/gnome-session/gsm-manager.c ++++ b/gnome-session/gsm-manager.c +@@ -3823,10 +3823,22 @@ do_query_end_session_exit (GsmManager *manager) + break; + case GSM_MANAGER_LOGOUT_REBOOT: + case GSM_MANAGER_LOGOUT_REBOOT_INTERACT: ++ /* ++ * Fedora specific patch to make sure the boot-menu does not ++ * show when it is configured to auto-hide and a reboot is ++ * initiated directly from gdm. ++ */ ++ system("/usr/sbin/grub2-set-bootflag boot_success"); + reboot = TRUE; + break; + case GSM_MANAGER_LOGOUT_SHUTDOWN: + case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT: ++ /* ++ * Fedora specific patch to make sure the boot-menu does not ++ * show when it is configured to auto-hide and a shutdown is ++ * initiated directly from gdm. ++ */ ++ system("/usr/sbin/grub2-set-bootflag boot_success"); + shutdown = TRUE; + break; + default: +-- +2.28.0 + diff --git a/0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch b/0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch index e8e85ae..6763654 100644 --- a/0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch +++ b/0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch @@ -8,12 +8,14 @@ can't guess correctly. Be explicit. Signed-off-by: Adam Jackson --- + .../gnome-session-check-accelerated-gles-helper.c | 36 +++++++++++++++++++++- + 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tools/gnome-session-check-accelerated-gles-helper.c b/tools/gnome-session-check-accelerated-gles-helper.c -index 6a4463d..e05d49f 100644 +index 2a38d9e..472d1ad 100644 --- a/tools/gnome-session-check-accelerated-gles-helper.c +++ b/tools/gnome-session-check-accelerated-gles-helper.c -@@ -38,11 +38,43 @@ +@@ -34,11 +34,43 @@ #include #include #include @@ -30,25 +32,25 @@ index 6a4463d..e05d49f 100644 + const char *client_exts = eglQueryString (NULL, EGL_EXTENSIONS); + + if (g_strstr_len (client_exts, -1, "EGL_KHR_platform_base")) { -+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = -+ (void *) eglGetProcAddress ("eglGetPlatformDisplay"); ++ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = ++ (void *) eglGetProcAddress ("eglGetPlatformDisplay"); + -+ if (get_platform_display) -+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL); ++ if (get_platform_display) ++ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL); + -+ if (dpy) -+ return dpy; ++ if (dpy) ++ return dpy; + } + + if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base")) { -+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = -+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT"); ++ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = ++ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT"); + -+ if (get_platform_display) -+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL); ++ if (get_platform_display) ++ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL); + -+ if (dpy) -+ return dpy; ++ if (dpy) ++ return dpy; + } + + return eglGetDisplay ((EGLNativeDisplayType) native); @@ -57,14 +59,17 @@ index 6a4463d..e05d49f 100644 static char * get_gles_renderer (void) { -@@ -71,7 +103,9 @@ get_gles_renderer (void) +@@ -67,7 +99,9 @@ get_gles_renderer (void) gdk_error_trap_push (); display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); - egl_dpy = eglGetDisplay (display); + -+ egl_dpy = get_display (display); ++ egl_dpy = get_display (display); + if (!egl_dpy) { g_warning ("eglGetDisplay() failed"); goto out; +-- +2.9.3 + diff --git a/gnome-session-3.3.92-nv30.patch b/gnome-session-3.3.92-nv30.patch new file mode 100644 index 0000000..8bb1d85 --- /dev/null +++ b/gnome-session-3.3.92-nv30.patch @@ -0,0 +1,12 @@ +--- gnome-session/data/hardware-compatibility 2012-03-21 16:30:06.269104695 -0700 ++++ gnome-session/data/hardware-compatibility.new 2012-03-22 23:26:37.201967075 -0700 +@@ -19,6 +19,9 @@ + -Mesa DRI R[12]00[^[:digit:]] + -Mesa DRI R[12]00$ + ++# NV30 family on Nouveau: https://bugzilla.redhat.com/show_bug.cgi?id=745202 ++-Gallium .* on NV3[0-9A-F]$ ++ + # Old Mesa software GL renderer + -software rasterizer + diff --git a/gnome-session-3.38.0.tar.xz b/gnome-session-3.38.0.tar.xz deleted file mode 100644 index acf97cc..0000000 Binary files a/gnome-session-3.38.0.tar.xz and /dev/null differ diff --git a/gnome-session-3.6.2-swrast.patch b/gnome-session-3.6.2-swrast.patch new file mode 100644 index 0000000..d3fb0a9 --- /dev/null +++ b/gnome-session-3.6.2-swrast.patch @@ -0,0 +1,12 @@ +diff -up gnome-session-3.6.2/data/hardware-compatibility.jx gnome-session-3.6.2/data/hardware-compatibility +--- gnome-session-3.6.2/data/hardware-compatibility.jx 2012-12-10 12:43:06.000000000 -0500 ++++ gnome-session-3.6.2/data/hardware-compatibility 2012-12-10 12:43:50.424352484 -0500 +@@ -23,7 +23,7 @@ + -Gallium .* on NV3[0-9A-F]$ + + # Old Mesa software GL renderer +--software rasterizer ++#software rasterizer + + # Gallium has softpipe; we explicitly enable llvmpipe + -softpipe diff --git a/gnome-session-42.0.tar.xz b/gnome-session-42.0.tar.xz new file mode 100644 index 0000000..d5b6683 Binary files /dev/null and b/gnome-session-42.0.tar.xz differ diff --git a/gnome-session.spec b/gnome-session.spec index 0d0d2c7..a20c4be 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -1,14 +1,17 @@ Name: gnome-session Summary: Session Management Tools for the GNOME Desktop -Version: 3.38.0 +Version: 42.0 Release: 1 License: GPLv2+ -URL: http://www.gnome.org -Source0: http://download.gnome.org/sources/%{name}/3.38/%{name}-%{version}.tar.xz -Patch0001: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch -Patch0002: 0001-Add-support-for-new-ConfirmedRebootToBootOptions-sig.patch +URL: https://gitlab.gnome.org/GNOME/gnome-session +Source0: https://download.gnome.org/sources/%{name}/41/%{name}-%{version}.tar.xz -BuildRequires: meson gcc gettext intltool xmlto usermode /usr/bin/xsltproc +Patch1: gnome-session-3.3.92-nv30.patch +Patch3: gnome-session-3.6.2-swrast.patch +Patch4: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch +Patch5: 0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch + +BuildRequires: meson gcc gettext intltool xmlto usermode libxslt BuildRequires: pkgconfig(gl) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gnome-desktop-3.0) BuildRequires: pkgconfig(gtk+-3.0) pkgconfig(libsystemd) pkgconfig(ice) pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(sm) pkgconfig(x11) pkgconfig(xau) pkgconfig(xcomposite) pkgconfig(xext) @@ -43,15 +46,18 @@ sed -i 's/idm[0-9]\{5,32\}\"/idm123456789123456\"/g' $(find -name %{name}.html) %install %meson_install -%find_lang %{name}-3.0 +%find_lang %{name}-42 -%files -f %{name}-3.0.lang +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files -f %{name}-42.lang %license COPYING %{_bindir}/* %{_libexecdir}/%{name}* %{_datadir}/%{name}/ %{_datadir}/glib-2.0/schemas/org.gnome.SessionManager.gschema.xml -%{_datadir}/GConf/gsettings/%{name}.convert +%{_datadir}/GConf/gsettings/gnome-session.convert %{_datadir}/xsessions/* %{_datadir}/wayland-sessions/* %{_userunitdir}/gnome-session* @@ -62,10 +68,10 @@ sed -i 's/idm[0-9]\{5,32\}\"/idm123456789123456\"/g' $(find -name %{name}.html) %doc %{_mandir}/man*/* %{_datadir}/doc/%{name}/dbus/%{name}.html -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig - %changelog +* Tue Mar 22 2022 David King - 42.0-1 +- Update to 42.0 + * Mon May 31 2021 weijin deng - 3.38.0-1 - Upgrade to 3.38.0 - Update Version, Release, Source0, Obsoletes