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

@ -34,7 +34,8 @@
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages pkg-config) #: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 (define-public gnustep-make
(package (package
@ -65,6 +66,7 @@ to easily create cross-compiled binaries.")
(package (package
(name "windowmaker") (name "windowmaker")
(version "0.95.8") (version "0.95.8")
(synopsis "NeXTSTEP-like window manager")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -75,7 +77,10 @@ to easily create cross-compiled binaries.")
"12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx")))) "12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases `(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 match))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'pre-configure (add-before 'configure 'pre-configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -97,14 +102,33 @@ to easily create cross-compiled binaries.")
(substitute* "src/defaults.c" (substitute* "src/defaults.c"
(("len = strlen\\(text\\) \\+ 40;") (("len = strlen\\(text\\) \\+ 40;")
(string-append "len = strlen(text) + 107;")))))) (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) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))) (bin (string-append out "/bin")))
;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen' ;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
;; etc., so make sure everything is in $PATH. ;; etc., so make sure everything is in $PATH.
(wrap-program (string-append bin "/wmaker.inst") (wrap-program (string-append bin "/wmaker.inst")
`("PATH" ":" prefix (,bin))))))))) `("PATH" ":" prefix (,bin)))))))))
(inputs (inputs
`(("libxmu" ,libxmu) `(("libxmu" ,libxmu)
("libxft" ,libxft) ("libxft" ,libxft)
@ -117,7 +141,6 @@ to easily create cross-compiled binaries.")
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(home-page "http://windowmaker.org/") (home-page "http://windowmaker.org/")
(synopsis "NeXTSTEP-like window manager")
(description (description
"Window Maker is an X11 window manager originally designed to provide "Window Maker is an X11 window manager originally designed to provide
integration support for the GNUstep Desktop Environment. In every way integration support for the GNUstep Desktop Environment. In every way