aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKei Kebreau <kkebreau@posteo.net>2017-12-02 19:43:08 -0500
committerKei Kebreau <kkebreau@posteo.net>2017-12-06 16:31:09 -0500
commit537fe4568f4d7a90ab350a66cadfdf38c893bbee (patch)
treefa4afe8cdb8a8ac6b55ef59374494ac5b09ad451
parent65eaab635bd730a03b2dd44227b1bd998ae01de3 (diff)
downloadgnu-guix-537fe4568f4d7a90ab350a66cadfdf38c893bbee.tar
gnu-guix-537fe4568f4d7a90ab350a66cadfdf38c893bbee.tar.gz
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.
-rw-r--r--gnu/packages/gnustep.scm33
1 files changed, 28 insertions, 5 deletions
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index 195249c435..a6adc697a0 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -34,7 +34,8 @@
#: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 @@ to easily create cross-compiled binaries.")
(package
(name "windowmaker")
(version "0.95.8")
+ (synopsis "NeXTSTEP-like window manager")
(source (origin
(method url-fetch)
(uri (string-append
@@ -75,7 +77,10 @@ to easily create cross-compiled binaries.")
"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 @@ to easily create cross-compiled binaries.")
(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 @@ to easily create cross-compiled binaries.")
(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