Subject: [bug#58014] [PATCH 06/15] gnu: gdm: Patch an extra reference to the Xsession script.

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 23 Sep 2022 01:00:33 -0400

Without this change, attempting to start a remote session over VNC would fail
with:

    Sep 19 19:54:04 localhost gdm-session-worker: Gdm: GdmSessionWorker: child
    '/gnu/store/yy9wq647l37658vgi291a287ll9iw6dc-gdm-42.0/etc/gdm/Xsession' could
    not be started: No such file or directory

* gnu/packages/gnome.scm (gdm)[phases]{patch-paths}
<daemon/gdm-session.c>: Patch a reference in so the Xsession script is
correctly found via the GDM_X_SESSION environment variable.
---
 gnu/packages/gnome.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 0adb065eb5..facc8515f5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8830,7 +8830,10 @@ (define-public gdm
                                   "gdm_session_set_environment_variable "
                                   "(self, \"" name "\","
                                   "g_getenv (\"" name "\"));\n"))
-                               propagate)))))
+                               propagate)))
+                  ;; This is used by remote sessions, such as when using VNC.
+                  (("\\(GDMCONFDIR \"/Xsession \\\\\"%s\\\\\"\", command)")
+                   "(\"%s \\\"%s\\\"\", g_getenv (\"GDM_X_SESSION\"), command)")))
               ;; Find the configuration file using an environment variable.
               (substitute* '("common/gdm-settings.c")
                 (("GDM_CUSTOM_CONF")
-- 
2.37.3