Subject: [PATCH 05/17] gnu: cl-stumpwm: Build the library in "lib" and the program in "bin".

From: Andy Patterson <[email-masked]>
Date: Mon, 3 Apr 2017 09:01:22 -0400

* gnu/packages/lisp.scm (sbcl-stumpwm)[outputs]: Remove "bin" and add "lib".
[arguments]<#:phases>: Change the target of `build-program' to the "out"
output. Likewise, change the target of the desktop file generation.
(sbcl-stumpwm+slynk)[inputs]: Use the "lib" output of sbcl-stumpwm.
---
 gnu/packages/lisp.scm | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index e27cc7b11..5502de86a 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -851,7 +851,7 @@ from other CLXes around the net.")
     (build-system asdf-build-system/sbcl)
     (inputs `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
               ("sbcl-clx" ,sbcl-clx)))
-    (outputs '("out" "bin"))
+    (outputs '("out" "lib"))
     (arguments
      '(#:special-dependencies '("sb-posix")
        #:phases
@@ -860,20 +860,18 @@ from other CLXes around the net.")
            (lambda* (#:key lisp outputs inputs #:allow-other-keys)
              (build-program
               lisp
-              (string-append (assoc-ref outputs "bin") "/bin/stumpwm")
+              (string-append (assoc-ref outputs "out") "/bin/stumpwm")
               #:inputs inputs
               #:entry-program '((stumpwm:stumpwm) 0))))
          (add-after 'build-program 'create-desktop-file
-           (lambda* (#:key outputs lisp binary? #:allow-other-keys)
-             (let ((output (or (assoc-ref outputs "bin")
-                               (assoc-ref outputs "out")))
-                   (xsessions "/share/xsessions"))
-               (mkdir-p (string-append output xsessions))
-               (with-output-to-file
-                   (string-append output xsessions
-                                  "/stumpwm.desktop")
-                 (lambda _
-                   (format #t
+           (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 "/stumpwm.desktop")
+                 (lambda (file)
+                   (format file
                     "[Desktop Entry]~@
                      Name=stumpwm~@
                      Comment=The Stump Window Manager~@
@@ -881,7 +879,7 @@ from other CLXes around the net.")
                      TryExec=~@*~a/bin/stumpwm~@
                      Icon=~@
                      Type=Application~%"
-                    output)))
+                    out)))
                #t))))))
     (synopsis "Window manager written in Common Lisp")
     (description "Stumpwm is a window manager written entirely in Common Lisp.
@@ -1141,7 +1139,7 @@ multiple inspectors with independent history.")
     (name "sbcl-stumpwm-with-slynk")
     (outputs '("out"))
     (native-inputs
-     `(("stumpwm" ,sbcl-stumpwm)
+     `(("stumpwm" ,sbcl-stumpwm "lib")
        ("slynk" ,sbcl-slynk)))
     (arguments
      (substitute-keyword-arguments (package-arguments sbcl-stumpwm)
@@ -1162,6 +1160,6 @@ multiple inspectors with independent history.")
            (delete 'copy-source)
            (delete 'build)
            (delete 'check)
-           (delete 'link-dependencies)
+           (delete 'create-asd-file)
            (delete 'cleanup)
            (delete 'create-symlinks)))))))
-- 
2.11.1