Pull in Xwayland autostart fix for non-systemd startup
Resolves: #1924908
This commit is contained in:
49
0001-main-Force-Xwayland-startup-if-not-on-systemd.patch
Normal file
49
0001-main-Force-Xwayland-startup-if-not-on-systemd.patch
Normal file
@@ -0,0 +1,49 @@
|
||||
From 19cdbd50dca4ea08d18ffad22a96efc3e4e372d3 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Thu, 11 Mar 2021 18:52:48 +0100
|
||||
Subject: [PATCH] main: Force Xwayland startup if not on systemd
|
||||
|
||||
In non-systemd managed session we are unable to start services on
|
||||
demand. Instead, gnome-session will start everything at login time,
|
||||
including any X11 related service (i.e. gsd-xsettings).
|
||||
|
||||
However, in order to start gsd-xsettings, Xwayland needs to be started
|
||||
already. Otherwise it will connect to GNOME_SETUP_DISPLAY and login will
|
||||
hang at that point.
|
||||
|
||||
Fix this by detecting whether mutter is running in a systemd unit. If it
|
||||
is, we assume that we are systemd managed and the machinery to start the
|
||||
services works fine. If not, we assume that the session management may
|
||||
unconditionally try to start X11 related services and Xwayland must be
|
||||
started in order to not block this.
|
||||
---
|
||||
src/core/main.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/main.c b/src/core/main.c
|
||||
index 6b26990c6..c189eceb5 100644
|
||||
--- a/src/core/main.c
|
||||
+++ b/src/core/main.c
|
||||
@@ -1014,11 +1014,18 @@ meta_get_x11_display_policy (void)
|
||||
#ifdef HAVE_WAYLAND
|
||||
if (meta_is_wayland_compositor ())
|
||||
{
|
||||
+#ifdef HAVE_XWAYLAND_INITFD
|
||||
+ g_autofree char *unit = NULL;
|
||||
+#endif
|
||||
+
|
||||
if (opt_no_x11)
|
||||
return META_DISPLAY_POLICY_DISABLED;
|
||||
|
||||
#ifdef HAVE_XWAYLAND_INITFD
|
||||
- return META_DISPLAY_POLICY_ON_DEMAND;
|
||||
+ if (sd_pid_get_user_unit (0, &unit) < 0)
|
||||
+ return META_DISPLAY_POLICY_MANDATORY;
|
||||
+ else
|
||||
+ return META_DISPLAY_POLICY_ON_DEMAND;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
--
|
||||
2.29.2
|
||||
|
||||
Reference in New Issue
Block a user