gnu: windowmaker: Add '.desktop' file.

* gnu/packages/gnustep.scm (windowmaker)[arguments]: Add 'install-xsession'
phase. Add (guix build build-system), (guix build utils) and (ice-9 match) to
#:modules.
This commit is contained in:
Kei Kebreau 2017-12-02 19:43:08 -05:00
parent 65eaab635b
commit 537fe4568f
No known key found for this signature in database
GPG key ID: E6A5EE3C19467A0D

View file

@ -34,7 +34,8 @@ (define-module (gnu packages gnustep)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml))
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public gnustep-make
(package
@ -65,6 +66,7 @@ (define-public windowmaker
(package
(name "windowmaker")
(version "0.95.8")
(synopsis "NeXTSTEP-like window manager")
(source (origin
(method url-fetch)
(uri (string-append
@ -75,7 +77,10 @@ (define-public windowmaker
"12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx"))))
(build-system gnu-build-system)
(arguments
'(#:phases
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 match))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key outputs #:allow-other-keys)
@ -97,14 +102,33 @@ (define-public windowmaker
(substitute* "src/defaults.c"
(("len = strlen\\(text\\) \\+ 40;")
(string-append "len = strlen(text) + 107;"))))))
(add-after 'install 'wrap
(add-after 'install 'install-xsession
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(xsessions (string-append out "/share/xsessions")))
(mkdir-p xsessions)
(call-with-output-file
(string-append xsessions "/windowmaker.desktop")
(lambda (port)
(format port "~
[Desktop Entry]~@
Name=Window Maker~@
Comment=~a~@
Exec=~a/bin/wmaker~@
Type=Application~%"
(string-map (match-lambda
(#\newline #\space)
(chr chr))
,synopsis) %output))))
#t))
(add-after 'install-xsession 'wrap
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
;; etc., so make sure everything is in $PATH.
(wrap-program (string-append bin "/wmaker.inst")
`("PATH" ":" prefix (,bin)))))))))
`("PATH" ":" prefix (,bin)))))))))
(inputs
`(("libxmu" ,libxmu)
("libxft" ,libxft)
@ -117,7 +141,6 @@ (define-public windowmaker
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://windowmaker.org/")
(synopsis "NeXTSTEP-like window manager")
(description
"Window Maker is an X11 window manager originally designed to provide
integration support for the GNUstep Desktop Environment. In every way