Remove downstream patch for the "Boot Options" menu
Simplify downstream patch for the "Hidden Grub Menu" integration
This commit is contained in:
parent
0befe0872a
commit
39115cc8d1
@ -1,173 +0,0 @@
|
|||||||
From 3e5779207e2bfab25978e80ac62e8af8c3685f8e 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.
|
|
||||||
---
|
|
||||||
gnome-session/gsm-manager.c | 28 ++++++++++++++++++++++++++++
|
|
||||||
gnome-session/gsm-shell.c | 10 ++++++++++
|
|
||||||
gnome-session/gsm-shell.h | 7 ++++---
|
|
||||||
3 files changed, 42 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
|
||||||
index d41bdcac..e0c05d82 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;
|
|
||||||
@@ -3450,6 +3454,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);
|
|
||||||
@@ -3512,6 +3522,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)
|
|
||||||
{
|
|
||||||
@@ -3547,6 +3565,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
|
|
||||||
@@ -3820,6 +3844,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 04cfa2f5..d727232d 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 e236493a..b1cdd457 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);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
--
|
|
||||||
2.23.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 5314490a7e5ce5770059363a84e13e87f3d9669c Mon Sep 17 00:00:00 2001
|
From e3d6f1c1d342d0c74f2125ea0efa2a9669aaa8df Mon Sep 17 00:00:00 2001
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
Date: Tue, 14 Aug 2018 14:49:59 +0200
|
Date: Tue, 14 Aug 2018 14:49:59 +0200
|
||||||
Subject: [PATCH 2/2] Fedora: Set grub boot-flags on shutdown / reboot
|
Subject: [PATCH] Fedora: Set grub boot-flags on shutdown / reboot
|
||||||
|
|
||||||
Fedora's grub will automatically hide the boot-menu if the previous
|
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
|
boot has set the boot_success flag in grub's environment. This happens
|
||||||
@ -13,18 +13,15 @@ a reboot / shutdown is initiated through gnome-session then the user
|
|||||||
is successfully interacting with the system, so set the boot_success
|
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
|
flag from gnome_session for this case to fix reboot from gdm leading to
|
||||||
the boot-menu not being hidden.
|
the boot-menu not being hidden.
|
||||||
|
|
||||||
Likewise implement ConfirmedRebootMenu handling in a Fedora specific
|
|
||||||
way (for now) by setting the menu_show_once grub bootflag in this case.
|
|
||||||
---
|
---
|
||||||
gnome-session/gsm-manager.c | 15 ++++++++++++++-
|
gnome-session/gsm-manager.c | 12 ++++++++++++
|
||||||
1 file changed, 14 insertions(+), 1 deletion(-)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
||||||
index e0c05d82..b4d50936 100644
|
index 6839a02d..589efb02 100644
|
||||||
--- a/gnome-session/gsm-manager.c
|
--- a/gnome-session/gsm-manager.c
|
||||||
+++ b/gnome-session/gsm-manager.c
|
+++ b/gnome-session/gsm-manager.c
|
||||||
@@ -3842,14 +3842,27 @@ do_query_end_session_exit (GsmManager *manager)
|
@@ -3823,10 +3823,22 @@ do_query_end_session_exit (GsmManager *manager)
|
||||||
break;
|
break;
|
||||||
case GSM_MANAGER_LOGOUT_REBOOT:
|
case GSM_MANAGER_LOGOUT_REBOOT:
|
||||||
case GSM_MANAGER_LOGOUT_REBOOT_INTERACT:
|
case GSM_MANAGER_LOGOUT_REBOOT_INTERACT:
|
||||||
@ -36,12 +33,6 @@ index e0c05d82..b4d50936 100644
|
|||||||
+ system("/usr/sbin/grub2-set-bootflag boot_success");
|
+ system("/usr/sbin/grub2-set-bootflag boot_success");
|
||||||
reboot = TRUE;
|
reboot = TRUE;
|
||||||
break;
|
break;
|
||||||
case GSM_MANAGER_LOGOUT_REBOOT_TO_BOOT_OPTIONS:
|
|
||||||
- /* FIXME tell bootmanager to show menu on next boot */
|
|
||||||
+ /* Fedora specific implementation to show the menu on next boot */
|
|
||||||
+ system("/usr/sbin/grub2-set-bootflag menu_show_once");
|
|
||||||
reboot = TRUE;
|
|
||||||
break;
|
|
||||||
case GSM_MANAGER_LOGOUT_SHUTDOWN:
|
case GSM_MANAGER_LOGOUT_SHUTDOWN:
|
||||||
case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT:
|
case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT:
|
||||||
+ /*
|
+ /*
|
||||||
@ -54,5 +45,5 @@ index e0c05d82..b4d50936 100644
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
--
|
--
|
||||||
2.23.0
|
2.28.0
|
||||||
|
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
Name: gnome-session
|
Name: gnome-session
|
||||||
Version: 3.37.0
|
Version: 3.37.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: GNOME session manager
|
Summary: GNOME session manager
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -21,10 +21,9 @@ Patch1: gnome-session-3.3.92-nv30.patch
|
|||||||
Patch3: gnome-session-3.6.2-swrast.patch
|
Patch3: gnome-session-3.6.2-swrast.patch
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=772421
|
# https://bugzilla.gnome.org/show_bug.cgi?id=772421
|
||||||
Patch4: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch
|
Patch4: 0001-check-accelerated-gles-Use-eglGetPlatformDisplay-EXT.patch
|
||||||
# Implement https://wiki.gnome.org/Design/OS/BootOptions
|
# For https://fedoraproject.org/w/index.php?title=Changes/HiddenGrubMenu
|
||||||
# This should go upstream once systemd has a generic interface for this
|
# This should go upstream once systemd has a generic interface for this
|
||||||
Patch5: 0001-Add-support-for-new-ConfirmedRebootToBootOptions-sig.patch
|
Patch5: 0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
|
||||||
Patch6: 0002-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
|
|
||||||
|
|
||||||
BuildRequires: meson
|
BuildRequires: meson
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -130,6 +129,10 @@ Desktop file to add GNOME on wayland to display manager session menu.
|
|||||||
%{_userunitdir}/gnome-launched-.scope.d/
|
%{_userunitdir}/gnome-launched-.scope.d/
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Sep 3 2020 Hans de Goede <hdegoede@redhat.com> - 3.37.0-2
|
||||||
|
- Remove downstream patch for the "Boot Options" menu
|
||||||
|
- Simplify downstream patch for the "Hidden Grub Menu" integration
|
||||||
|
|
||||||
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.37.0-1
|
* Mon Aug 17 2020 Kalev Lember <klember@redhat.com> - 3.37.0-1
|
||||||
- Update to 3.37.0
|
- Update to 3.37.0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user