guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/03: gnu: gdm: Avoid selecting the placeholder session.


From: guix-commits
Subject: 01/03: gnu: gdm: Avoid selecting the placeholder session.
Date: Mon, 29 Apr 2019 23:08:32 -0400 (EDT)

samplet pushed a commit to branch version-1.0.0
in repository guix.

commit 5aafccebbed7c9474a021623e6d8823cffde95b5
Author: Timothy Sample <address@hidden>
Date:   Mon Apr 29 14:49:42 2019 -0400

    gnu: gdm: Avoid selecting the placeholder session.
    
    This fixes <https://bugs.gnu.org/35484>.
    
    * gnu/packages/gnome.scm (gdm)[arguments]: Modify the pre-configure phase to
    patch GDM to only select the placeholder session if there are no others.
---
 gnu/packages/gnome.scm | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 17dc2fd..f19b183 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5597,7 +5597,7 @@ libxml2.")
        (modify-phases %standard-phases
          (add-before
           'configure 'pre-configure
-          (lambda* (#:key inputs #:allow-other-keys)
+          (lambda* (#:key inputs outputs #:allow-other-keys)
             ;; We don't have <systemd/sd-daemon.h>.
             (substitute* '("common/gdm-log.c"
                            "daemon/gdm-server.c"
@@ -5665,6 +5665,16 @@ libxml2.")
               (("\"gnome-session\"")
                (string-append "\"" (assoc-ref inputs "gnome-session")
                               "/bin/gnome-session\"")))
+            ;; Do not automatically select the placeholder session.
+            (substitute* "daemon/gdm-session.c"
+              (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
+               (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
+                              "(g_strcmp0(search_dirs[i], \""
+                              (assoc-ref outputs "out") 
"/share/gdm/BuiltInSessions/"
+                              "\") == 0 && "
+                              "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
+              (("g_error [(]\"GdmSession: no session desktop files installed, 
aborting\\.\\.\\.\"[)];")
+               "{ self->priv->fallback_session_name = g_strdup(\"fail\"); goto 
out; }"))
             #t))
          ;; GDM requires that there be at least one desktop entry
          ;; file.  This phase installs a hidden one that simply



reply via email to

[Prev in Thread] Current Thread [Next in Thread]