civodul pushed a commit to branch master
in repository guix.

commit bfac63667552898b32821c0f0fae1256f5bcab0c
Author: Ludovic Courtès <[email protected]>
Date:   Wed Apr 3 17:26:58 2019 +0200

    gnu: mate-session-manager: Provide absolute file name in '.desktop' file.
    
    Previously GDM would crash when selecting MATE.
    
    * gnu/packages/mate.scm (mate-session-manager)[arguments]: Add
    'update-xsession-dot-desktop' phase.
---
 gnu/packages/mate.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 00ec24e..cf8392a 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <[email protected]>
 ;;; Copyright © 2017 ng0 <[email protected]>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <[email protected]>
+;;; Copyright © 2019 Ludovic Courtès <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -337,7 +338,20 @@ configurations (profiles).")
                (("#ifdef HAVE_SYSTEMD") "#if 0"))
              (substitute* "mate-session/gsm-autostart-app.c"
                (("#ifdef HAVE_SYSTEMD") "#if 0"))
-             #t)))))
+             #t))
+         (add-after 'install 'update-xsession-dot-desktop
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Record the absolute file name of 'mate-session' in the
+             ;; '.desktop' file.
+             (let* ((out (assoc-ref outputs "out"))
+                    (xsession (string-append
+                               out "/share/xsessions/mate.desktop")))
+               (substitute* xsession
+                 (("^Exec=.*$")
+                  (string-append "Exec=" out "/bin/mate-session\n"))
+                 (("^TryExec=.*$")
+                  (string-append "Exec=" out "/bin/mate-session\n")))
+               #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)

Reply via email to