commit
8ae178cffc
@ -0,0 +1 @@
|
||||
SOURCES/gnome-session-40.1.1.tar.xz
|
@ -0,0 +1 @@
|
||||
497bcbe97f8d665618438d352c555373393f89d7 SOURCES/gnome-session-40.1.1.tar.xz
|
@ -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
|
||||
|
@ -0,0 +1,75 @@
|
||||
From 687ec347d2fa0bca227e3a583a3a47f9bbc10bb0 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Tue, 4 Oct 2016 13:15:39 -0400
|
||||
Subject: [PATCH] check-accelerated-gles: Use eglGetPlatformDisplay{,EXT}
|
||||
|
||||
eglGetDisplay forces the implementation to guess, and in general it
|
||||
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 2a38d9e..472d1ad 100644
|
||||
--- a/tools/gnome-session-check-accelerated-gles-helper.c
|
||||
+++ b/tools/gnome-session-check-accelerated-gles-helper.c
|
||||
@@ -34,11 +34,43 @@
|
||||
#include <GLES2/gl2.h>
|
||||
#include <GLES2/gl2ext.h>
|
||||
#include <EGL/egl.h>
|
||||
+#include <EGL/eglext.h>
|
||||
#endif
|
||||
|
||||
#include "gnome-session-check-accelerated-common.h"
|
||||
|
||||
#ifdef GDK_WINDOWING_X11
|
||||
+static EGLDisplay
|
||||
+get_display (void *native)
|
||||
+{
|
||||
+ EGLDisplay dpy = NULL;
|
||||
+ 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");
|
||||
+
|
||||
+ if (get_platform_display)
|
||||
+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
|
||||
+
|
||||
+ if (dpy)
|
||||
+ return dpy;
|
||||
+ }
|
||||
+
|
||||
+ if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base")) {
|
||||
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
|
||||
+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
|
||||
+
|
||||
+ if (get_platform_display)
|
||||
+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
|
||||
+
|
||||
+ if (dpy)
|
||||
+ return dpy;
|
||||
+ }
|
||||
+
|
||||
+ return eglGetDisplay ((EGLNativeDisplayType) native);
|
||||
+}
|
||||
+
|
||||
static char *
|
||||
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);
|
||||
+
|
||||
if (!egl_dpy) {
|
||||
g_warning ("eglGetDisplay() failed");
|
||||
goto out;
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,57 @@
|
||||
From 63d74edc4b112669fdce14d88d37e2dd0315ff7e Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Tue, 19 Nov 2019 09:29:16 -0500
|
||||
Subject: [PATCH] gnome-session: don't validate shell before using it
|
||||
|
||||
Users sometimes set their shell to an invalid shell to prevent
|
||||
login from proceeding.
|
||||
|
||||
GNOME on Wayland still allows login in these cases.
|
||||
|
||||
This commit makes the behavior match expectations by skipping
|
||||
shell validity checks when deciding to run though a login shell.
|
||||
---
|
||||
gnome-session/gnome-session.in | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
|
||||
index ddd1a591..b4b1f8fa 100755
|
||||
--- a/gnome-session/gnome-session.in
|
||||
+++ b/gnome-session/gnome-session.in
|
||||
@@ -1,32 +1,29 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
|
||||
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
|
||||
- [ -n "$SHELL" ] &&
|
||||
- grep -q "$SHELL" /etc/shells &&
|
||||
- ! (echo "$SHELL" | grep -q "false") &&
|
||||
- ! (echo "$SHELL" | grep -q "nologin"); then
|
||||
+ [ -n "$SHELL" ]; then
|
||||
if [ "$1" != '-l' ]; then
|
||||
exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
|
||||
else
|
||||
shift
|
||||
fi
|
||||
fi
|
||||
|
||||
SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
|
||||
REGION=${SETTING#\'}
|
||||
REGION=${REGION%\'}
|
||||
|
||||
if [ -n "$REGION" ]; then
|
||||
unset LC_TIME LC_NUMERIC LC_MONETARY LC_MEASUREMENT LC_PAPER
|
||||
|
||||
if [ "$LANG" != "$REGION" ] ; then
|
||||
export LC_TIME=$REGION
|
||||
export LC_NUMERIC=$REGION
|
||||
export LC_MONETARY=$REGION
|
||||
export LC_MEASUREMENT=$REGION
|
||||
export LC_PAPER=$REGION
|
||||
fi
|
||||
fi
|
||||
|
||||
exec @libexecdir@/gnome-session-binary "$@"
|
||||
--
|
||||
2.32.0
|
||||
|
@ -0,0 +1,126 @@
|
||||
From 51949dd2b944604742406a7464eb945cb5b610e9 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Mon, 15 Nov 2021 14:56:14 +0100
|
||||
Subject: [PATCH 1/2] main: Lower fallback warning when running in GDM
|
||||
|
||||
It is currently expected for the fallback to happen. So hide the errors,
|
||||
but still log a single message to inform users about it.
|
||||
---
|
||||
gnome-session/main.c | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gnome-session/main.c b/gnome-session/main.c
|
||||
index 443bc045..45ec6597 100644
|
||||
--- a/gnome-session/main.c
|
||||
+++ b/gnome-session/main.c
|
||||
@@ -512,100 +512,103 @@ main (int argc, char **argv)
|
||||
exit (1);
|
||||
}
|
||||
|
||||
env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
|
||||
|
||||
if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
|
||||
env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
|
||||
gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
|
||||
} else {
|
||||
gsm_util_set_autostart_dirs (override_autostart_dirs);
|
||||
|
||||
/* Export the override autostart dirs parameter to the environment
|
||||
* in case we are running on systemd. */
|
||||
if (override_autostart_dirs) {
|
||||
g_autofree char *autostart_dirs = NULL;
|
||||
autostart_dirs = g_strjoinv (":", override_autostart_dirs);
|
||||
g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
gsm_util_export_activation_environment (&error);
|
||||
if (error) {
|
||||
g_warning ("Failed to upload environment to DBus: %s", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
session_name = opt_session_name;
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
gsm_util_export_user_environment (&error);
|
||||
- if (error) {
|
||||
+ if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||
g_warning ("Failed to upload environment to systemd: %s", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_SYSTEMD_SESSION
|
||||
if (use_systemd && !systemd_service) {
|
||||
g_autofree gchar *gnome_session_target;
|
||||
const gchar *session_type;
|
||||
|
||||
session_type = g_getenv ("XDG_SESSION_TYPE");
|
||||
|
||||
/* We really need to resolve the session name at this point,
|
||||
* which requires talking to GSettings internally. */
|
||||
if (IS_STRING_EMPTY (session_name)) {
|
||||
session_name = _gsm_manager_get_default_session (NULL);
|
||||
}
|
||||
|
||||
/* Reset all failed units; we are going to start a lof ot things and
|
||||
* really do not want to run into errors because units have failed
|
||||
* in a previous session
|
||||
*/
|
||||
gsm_util_systemd_reset_failed (&error);
|
||||
- if (error) {
|
||||
+ if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||
g_warning ("Failed to reset failed state of units: %s", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
/* We don't escape the name (i.e. we leave any '-' intact). */
|
||||
gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
|
||||
if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
|
||||
/* We started the unit, open fifo and sleep forever. */
|
||||
systemd_leader_run ();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* We could not start the unit, fall back. */
|
||||
- g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
|
||||
- g_clear_error (&error);
|
||||
+ if (g_getenv ("RUNNING_UNDER_GDM"))
|
||||
+ g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
|
||||
+ else
|
||||
+ g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
|
||||
+ g_clear_error (&error);
|
||||
}
|
||||
#endif /* ENABLE_SYSTEMD_SESSION */
|
||||
|
||||
{
|
||||
gchar *ibus_path;
|
||||
|
||||
ibus_path = g_find_program_in_path("ibus-daemon");
|
||||
|
||||
if (ibus_path) {
|
||||
const gchar *p;
|
||||
p = g_getenv ("QT_IM_MODULE");
|
||||
if (!p || !*p)
|
||||
p = "ibus";
|
||||
gsm_util_setenv ("QT_IM_MODULE", p);
|
||||
p = g_getenv ("XMODIFIERS");
|
||||
if (!p || !*p)
|
||||
p = "@im=ibus";
|
||||
gsm_util_setenv ("XMODIFIERS", p);
|
||||
}
|
||||
|
||||
g_free (ibus_path);
|
||||
}
|
||||
|
||||
/* We want to use the GNOME menus which has the designed categories.
|
||||
*/
|
||||
gsm_util_setenv ("XDG_MENU_PREFIX", "gnome-");
|
||||
|
||||
/* Talk to logind before acquiring a name, since it does synchronous
|
||||
* calls at initialization time that invoke a main loop and if we
|
||||
* already owned a name, then we would service too early during
|
||||
--
|
||||
2.35.1
|
||||
|
@ -0,0 +1,115 @@
|
||||
From d39c345191f83ba37d24c07a831c9bb91cdde079 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Sun, 17 Apr 2022 15:58:13 +0200
|
||||
Subject: [PATCH 2/2] main: Also clear error when running under GDM
|
||||
|
||||
Commit 0349a77ad875 ("main: Lower fallback warning when running in GDM")
|
||||
removed error logging when running under GDM. However, the error was not
|
||||
cleared afterwards, leaking it to later operations and causing other
|
||||
issues.
|
||||
|
||||
Closes: #105
|
||||
---
|
||||
gnome-session/main.c | 10 ++++------
|
||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/gnome-session/main.c b/gnome-session/main.c
|
||||
index 45ec6597..6a683ae0 100644
|
||||
--- a/gnome-session/main.c
|
||||
+++ b/gnome-session/main.c
|
||||
@@ -512,88 +512,86 @@ main (int argc, char **argv)
|
||||
exit (1);
|
||||
}
|
||||
|
||||
env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
|
||||
|
||||
if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
|
||||
env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
|
||||
gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
|
||||
} else {
|
||||
gsm_util_set_autostart_dirs (override_autostart_dirs);
|
||||
|
||||
/* Export the override autostart dirs parameter to the environment
|
||||
* in case we are running on systemd. */
|
||||
if (override_autostart_dirs) {
|
||||
g_autofree char *autostart_dirs = NULL;
|
||||
autostart_dirs = g_strjoinv (":", override_autostart_dirs);
|
||||
g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
gsm_util_export_activation_environment (&error);
|
||||
if (error) {
|
||||
g_warning ("Failed to upload environment to DBus: %s", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
session_name = opt_session_name;
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
gsm_util_export_user_environment (&error);
|
||||
- if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||
+ if (error && !g_getenv ("RUNNING_UNDER_GDM"))
|
||||
g_warning ("Failed to upload environment to systemd: %s", error->message);
|
||||
- g_clear_error (&error);
|
||||
- }
|
||||
+ g_clear_error (&error);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_SYSTEMD_SESSION
|
||||
if (use_systemd && !systemd_service) {
|
||||
g_autofree gchar *gnome_session_target;
|
||||
const gchar *session_type;
|
||||
|
||||
session_type = g_getenv ("XDG_SESSION_TYPE");
|
||||
|
||||
/* We really need to resolve the session name at this point,
|
||||
* which requires talking to GSettings internally. */
|
||||
if (IS_STRING_EMPTY (session_name)) {
|
||||
session_name = _gsm_manager_get_default_session (NULL);
|
||||
}
|
||||
|
||||
/* Reset all failed units; we are going to start a lof ot things and
|
||||
* really do not want to run into errors because units have failed
|
||||
* in a previous session
|
||||
*/
|
||||
gsm_util_systemd_reset_failed (&error);
|
||||
- if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||
+ if (error && !g_getenv ("RUNNING_UNDER_GDM"))
|
||||
g_warning ("Failed to reset failed state of units: %s", error->message);
|
||||
- g_clear_error (&error);
|
||||
- }
|
||||
+ g_clear_error (&error);
|
||||
|
||||
/* We don't escape the name (i.e. we leave any '-' intact). */
|
||||
gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
|
||||
if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
|
||||
/* We started the unit, open fifo and sleep forever. */
|
||||
systemd_leader_run ();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* We could not start the unit, fall back. */
|
||||
if (g_getenv ("RUNNING_UNDER_GDM"))
|
||||
g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
|
||||
else
|
||||
g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
#endif /* ENABLE_SYSTEMD_SESSION */
|
||||
|
||||
{
|
||||
gchar *ibus_path;
|
||||
|
||||
ibus_path = g_find_program_in_path("ibus-daemon");
|
||||
|
||||
if (ibus_path) {
|
||||
const gchar *p;
|
||||
p = g_getenv ("QT_IM_MODULE");
|
||||
if (!p || !*p)
|
||||
p = "ibus";
|
||||
gsm_util_setenv ("QT_IM_MODULE", p);
|
||||
p = g_getenv ("XMODIFIERS");
|
||||
--
|
||||
2.35.1
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -0,0 +1,26 @@
|
||||
From 523602887f92b448b497e99bf56d0b9f1ef376f7 Mon Sep 17 00:00:00 2001
|
||||
From: Kalev Lember <klember@redhat.com>
|
||||
Date: Mon, 6 Sep 2021 21:12:38 +0200
|
||||
Subject: [PATCH] data: Require org.gnome.SettingsDaemon.Subscription
|
||||
|
||||
Make sure the gnome-settings-daemon subman plugin gets started on
|
||||
session startup.
|
||||
---
|
||||
data/meson.build | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/data/meson.build b/data/meson.build
|
||||
index e02b80d3..1684a99e 100644
|
||||
--- a/data/meson.build
|
||||
+++ b/data/meson.build
|
||||
@@ -24,6 +24,7 @@ required_components = {
|
||||
'org.gnome.SettingsDaemon.Sharing',
|
||||
'org.gnome.SettingsDaemon.Smartcard',
|
||||
'org.gnome.SettingsDaemon.Sound',
|
||||
+ 'org.gnome.SettingsDaemon.Subscription',
|
||||
'org.gnome.SettingsDaemon.UsbProtection',
|
||||
'org.gnome.SettingsDaemon.Wacom',
|
||||
'org.gnome.SettingsDaemon.XSettings',
|
||||
--
|
||||
2.31.1
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue