From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timothy Sample Subject: bug#35484: GDM failing to start stumpwm after merge Date: Mon, 29 Apr 2019 15:08:16 -0400 Message-ID: <87y33spr33.fsf@ngyro.com> References: <87zho9cu2a.fsf@posteo.net> <87pnp5q7d2.fsf@ngyro.com> <87d0l4re46.fsf@ngyro.com> <31a3e9cda50ae26c7771c104fdbf97bb@posteo.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:33252) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hLBeC-0004MT-44 for bug-guix@gnu.org; Mon, 29 Apr 2019 15:09:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hLBeA-0005VW-Fn for bug-guix@gnu.org; Mon, 29 Apr 2019 15:09:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:54431) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hLBeA-0005VK-68 for bug-guix@gnu.org; Mon, 29 Apr 2019 15:09:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hLBe9-0005Gp-Vu for bug-guix@gnu.org; Mon, 29 Apr 2019 15:09:02 -0400 In-Reply-To: <87zho9cu2a.fsf@posteo.net> Sender: "Debbugs-submit" Resent-Message-ID: List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: brettg@posteo.net Cc: 35484@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Brett, brettg@posteo.net writes: > On 29.04.2019 18:05, Timothy Sample wrote: >> >> After doing some testing in a VM, it looks like this is an issue >> with my >> recent commit: 8caa458953eeac783c73a0e5aaa72842fe3914c9. >> >> I added a placeholder desktop entry file, and even though I did my best >> to make it invisible, GDM is still selecting it. (I tested GNOME and >> XFCE, but I guess they were preferred by GDM over the placeholder, >> whereas StumpWM is not. Maybe the has to do with how the names are >> sorted.) This is exactly the problem. To find a default session, it sorts the names of all the =E2=80=9C.desktop=E2=80=9D files it can find (using =E2=80= =9Cg_strcmp0=E2=80=9D), and picks the first. Since we have =E2=80=9CGNOME=E2=80=9D < =E2=80=9CXFCE=E2= =80=9D < =E2=80=9CFail=E2=80=9D < =E2=80=9Cstumpwm=E2=80=9D, my tests did not catch this error. I can think of two options for a fix before 1.0 (which is supposed to be tomorrow!). The cute one is to just rename =E2=80=9CFail=E2=80=9D to =E2= =80=9C~Fail=E2=80=9D, on the expectation that this will come after most other names when sorted. The ugly one is to patch GDM to exclude the placeholder file when looking for =E2=80=9C.desktop=E2=80=9D files, and then to select it instead of rais= ing an error when it can=E2=80=99t find anything. My preference is for the ugly one, because the cute one feels like putting a silly hack on top of silly hack =E2=80=93 it=E2=80=99s just a bit= too much. I=E2=80=99ve attached a patch. Thoughts? (If I don=E2=80=99t hear anythin= g, I will push it =E2=80=93 it=E2=80=99s important that this works for 1.0). --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-gdm-Avoid-selecting-the-placeholder-session.patch >From 6b78b1d9c9a4c5ecb55dcd973248310fbbea3a33 Mon Sep 17 00:00:00 2001 From: Timothy Sample Date: Mon, 29 Apr 2019 14:49:42 -0400 Subject: [PATCH] gnu: gdm: Avoid selecting the placeholder session. This fixes . * 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 17dc2fd102..f19b1836d3 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 . (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 -- 2.21.0 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable In the future, we should find a way to make GDM errors less catastrophic, but I doubt we could do that in a day (I certainly couldn=E2=80=99t)! > Thank you for looking into this Tim! I have gone back to SLiM for the > time being until it is fixed :). > > If anybody else is having this issue, going back to SLiM is really > easy, check out my commit for reference. > > https://github.com/brettgilio/guix-system/commit/64d389db13c2f78ee5c58af2= 8c1639b098113c93 Thanks for providing this. Hopefully it helps anybody else having problems. -- Tim --=-=-=--