[bug#34470,4/8] gnu: gdm: Use absolute path for gnome-session.

Message ID 20190213192221.26599-4-samplet@ngyro.com
State Accepted
Commit def6d6b61685f69421df80cb524ba94da5dadd42
Headers show
Series GDM without GNOME Desktop | expand

Checks

Context Check Description
cbaines/applying patch success Successfully applied

Commit Message

Timothy Sample Feb. 13, 2019, 7:22 p.m. UTC
* gnu/packages/gnome.scm (gdm)[arguments]: Modify the pre-configure
phase to substitute in the absolute path of gnome-session.
[inputs]: Add gnome-session.
---
 gnu/packages/gnome.scm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Ludovic Courtès Feb. 16, 2019, 4:14 p.m. UTC | #1
Hi!

Timothy Sample <samplet@ngyro.com> skribis:

> * gnu/packages/gnome.scm (gdm)[arguments]: Modify the pre-configure
> phase to substitute in the absolute path of gnome-session.
> [inputs]: Add gnome-session.

This patch means that we’re pulling in GNOME even when we don’t actually
need it:

--8<---------------cut here---------------start------------->8---
$ guix size gdm |tail -1
total: 909.4 MiB
$ guix size gdm gnome-session |tail -1
total: 1011.8 MiB
--8<---------------cut here---------------end--------------->8---

Do you think we could avoid that?

Thanks,
Ludo’.

Patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ac49ca7f2d..fdc5b68ef6 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5349,7 +5349,7 @@  libxml2.")
        (modify-phases %standard-phases
          (add-before
           'configure 'pre-configure
-          (lambda _
+          (lambda* (#:key inputs #:allow-other-keys)
             ;; We don't have <systemd/sd-daemon.h>.
             (substitute* '("common/gdm-log.c"
                            "daemon/gdm-server.c"
@@ -5410,6 +5410,11 @@  libxml2.")
             (substitute* '("daemon/gdm-x-session.c")
               (("X_SERVER")
                "g_getenv (\"GDM_X_SERVER\")"))
+            ;; Use an absolute path for GNOME Session.
+            (substitute* "daemon/gdm-launch-environment.c"
+              (("\"gnome-session\"")
+               (string-append "\"" (assoc-ref inputs "gnome-session")
+                              "/bin/gnome-session\"")))
             #t))
          ;; GDM needs GNOME Session to run these applications.  We link
          ;; their autostart files in `share/gdm/greeter/autostart'
@@ -5441,6 +5446,7 @@  libxml2.")
      `(("accountsservice" ,accountsservice)
        ("check" ,check) ; for testing
        ("elogind" ,elogind)
+       ("gnome-session" ,gnome-session)
        ("gnome-settings-daemon" ,gnome-settings-daemon)
        ("gtk+" ,gtk+)
        ("iso-codes" ,iso-codes)