Update to 42.0
(cherry picked from commit 62ef86324960e8b055e293d234539bb8a79f5171)
This commit is contained in:
parent
3db4e7ec25
commit
0a0732d120
@ -1,165 +0,0 @@
|
||||
From cba2fdd2ee9fc3decd4179feeda0cb7d833f1022 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
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);
|
||||
|
||||
};
|
||||
|
||||
49
0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
Normal file
49
0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From e3d6f1c1d342d0c74f2125ea0efa2a9669aaa8df Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
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
|
||||
|
||||
@ -8,12 +8,14 @@ can't guess correctly. Be explicit.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
.../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 <GLES2/gl2.h>
|
||||
#include <GLES2/gl2ext.h>
|
||||
#include <EGL/egl.h>
|
||||
@ -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
|
||||
|
||||
|
||||
12
gnome-session-3.3.92-nv30.patch
Normal file
12
gnome-session-3.3.92-nv30.patch
Normal file
@ -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
|
||||
|
||||
Binary file not shown.
12
gnome-session-3.6.2-swrast.patch
Normal file
12
gnome-session-3.6.2-swrast.patch
Normal file
@ -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
|
||||
BIN
gnome-session-42.0.tar.xz
Normal file
BIN
gnome-session-42.0.tar.xz
Normal file
Binary file not shown.
@ -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 <amigadave@amigadave.com> - 42.0-1
|
||||
- Update to 42.0
|
||||
|
||||
* Mon May 31 2021 weijin deng <weijin.deng@turbolinux.com.cn> - 3.38.0-1
|
||||
- Upgrade to 3.38.0
|
||||
- Update Version, Release, Source0, Obsoletes
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user