Subject: bug#35377: closed (Re: bug#35068: GDM crashes when it cannot find any .desktop files)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 26 Apr 2019 18:33:03 +0000

Your bug report

#35377: [PATCH] gnu: gdm: Provide custom session.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
35377: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35377
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#35068: GDM crashes when it cannot find any .desktop files
From: Timothy Sample <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: Danny Milosavljevic <[email-masked]>, [email-masked], [email-masked]
Date: Fri, 26 Apr 2019 14:32:40 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Ludo and Danny,

Ludovic Courtès <[email-masked]> writes:

> Hello,
>
> Timothy Sample <[email-masked]> skribis:
>
>> There are two workarounds.  The first is to keep Danny’s patch as-is,
>> but add logic to “xinitrc” so that it only uses “~/.xsession” when
>> passed “custom” as an argument (it’s kinda magic, but it seems to be a
>> common convention).  I have a slight preference for this option, because
>> it makes the whole “~/.xsession” thing more explicit.  However, it would
>> break other DMs that don’t install a “custom.desktop”.  Maybe we could
>> integrate it into all DMs at the service level.
>>
>> The quicker workaround is to keep the current logic, and install the
>> following with GDM:
>>
>>     [Desktop Entry]
>>     Encoding=UTF-8
>>     Type=Application
>>     Name=Fail
>>     Comment=This session always fails.
>>     NoDisplay=true
>>     Exec=false
>>
>> This way, GDM fails cleanly when there are no “.desktop” files.  It
>> doesn’t show up in the list, either (“NoDisplay=true”), so everything
>> just kinda works as expected without any visible changes.
>
> I have a slight preference for the hack you propose Timothy, at least in
> the short term, because it seems less likely to break anything than
> fiddling with “Exec=custom” and all that.
>
> Anyway, it’d be great if one of you could push a fix by 1.0.  :-)

Pushed as 8caa458953eeac783c73a0e5aaa72842fe3914c9.

I’m closing the bug and the patch.  If we want to change the “xinitrc”
script to understand “custom”, we can start a new discussion to figure
out the best way to do it after 1.0.

-- Tim

Subject: [PATCH] gnu: gdm: Provide custom session.
From: Danny Milosavljevic <[email-masked]>
To: [email-masked]
Cc: Danny Milosavljevic <[email-masked]>
Date: Mon, 22 Apr 2019 16:15:01 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/gnome.scm (gdm)[arguments]<#:phases>[install-custom-session]:
Provide custom session.
---
 gnu/packages/gnome.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 101c0ce13f..e3738fbd93 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5536,6 +5536,23 @@ libxml2.")
                (string-append "\"" (assoc-ref inputs "gnome-session")
                               "/bin/gnome-session\"")))
             #t))
+         (add-after 'install 'install-custom-session
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (builtin-sessions (string-append out
+                                                     "/share/gdm/BuiltInSessions")))
+               (mkdir-p builtin-sessions)
+               (call-with-output-file (string-append builtin-sessions "/custom.desktop")
+                 (lambda (port)
+                   (format port "[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Custom Session
+Comment=Customized user session (in ~/.xsession)
+X-GDM-BypassXsession=false
+Exec=custom
+")))
+               #t)))
          ;; GDM needs GNOME Session to run these applications.  We link
          ;; their autostart files in `share/gdm/greeter/autostart'
          ;; because GDM explicitly tells GNOME Session to look there.