gnu: ratpoison: Provide a .desktop file with an absolute file name.

This allows GDM to start ratpoison.  Without that GDM crashes with an
assertion failure when trying to start a ratpoison session.

* gnu/packages/ratpoison.scm (ratpoison.desktop): Remove.
(ratpoison.desktop)[arguments]: Add #:modules.
Rewrite 'install-xsession' phase such that .desktop file contains an
absolute file name.
This commit is contained in:
Ludovic Courtès 2019-03-28 22:44:08 +01:00
parent 539af7f257
commit c9711f9347
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 22 additions and 23 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org> ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
@ -30,17 +30,6 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages fontutils)) #:use-module (gnu packages fontutils))
(define ratpoison.desktop
(origin
(method url-fetch)
(uri (string-append "https://sources.gentoo.org/cgi-bin/viewvc.cgi/"
"gentoo-x86/x11-wm/ratpoison/files/ratpoison.desktop"
"?revision=1.1"))
(file-name "ratpoison.desktop")
(sha256
(base32
"1rh3f4c3rhn6q2hmkraam0831xqcqyj3qkqf019ahaxsxaan3553"))))
(define-public ratpoison (define-public ratpoison
(package (package
(name "ratpoison") (name "ratpoison")
@ -55,17 +44,28 @@
(patches (search-patches "ratpoison-shell.patch")))) (patches (search-patches "ratpoison-shell.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases `(#:modules ((ice-9 format)
,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'install-xsession (add-after 'install 'install-xsession
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((rpd "ratpoison.desktop") ;; Add a .desktop file to xsessions.
(dst (string-append (assoc-ref outputs "out") (let* ((output (assoc-ref outputs "out"))
"/share/xsessions/"))) (xsessions (string-append output "/share/xsessions")))
(mkdir-p dst) (mkdir-p xsessions)
(copy-file (assoc-ref inputs rpd) (call-with-output-file (string-append xsessions
(string-append dst rpd)) "/ratpoison.desktop")
#t)))))) (lambda (port)
(format port
"[Desktop Entry]~@
Name=ratpoison~@
Comment=Tiling window manager: say goodbye to the rodent!~@
Exec=~a/bin/ratpoison~@
TryExec=~@*~a/bin/ratpoison~@
Type=Application~%"
output)))
#t))))))
(inputs (inputs
`(("fontconfig" ,fontconfig) `(("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
@ -80,8 +80,7 @@
("xorgproto" ,xorgproto))) ("xorgproto" ,xorgproto)))
(native-inputs (native-inputs
`(("perl" ,perl) `(("perl" ,perl)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)))
("ratpoison.desktop" ,ratpoison.desktop)))
(home-page "https://www.nongnu.org/ratpoison/") (home-page "https://www.nongnu.org/ratpoison/")
(synopsis "Simple mouse-free tiling window manager") (synopsis "Simple mouse-free tiling window manager")
(description (description