From 8180d03797ebd0c26adfc27276cc0682a04a0f8f Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Thu, 8 Nov 2018 09:51:05 +0000
Subject: [PATCH] gnu: Drop non-sbcl lisp support from Stumpwm 2018.05.

StumpWM version 1.0.0 was the last version to support lisps other than
sbcl.  This renames the current version of Stumpwm to simply "stumpwm" instead
of "sbcl-stumpwm" since it's redundant.  However, we can keep version 1.0.0
around if somebody wants a version with ecl.

* gnu/packages/lisp.scm (sbcl-stumpwm): Rename to ...
(stumpwm): ... this.
[name]: Rename to "stumpwm".
[arguments]: Set #:asd-system-name to "stumpwm".
[properties]: Replace ecl-variant with cl-source-variant.
(cl-stumpwm): Inherit from stumpwm but override the name.
(ecl-stumpwm): Remove.
(ecl-stumpwm-1.0.0): New variable.
(sbcl-stumpwm+slynk): Rename to ...
(stumpwm+slynk): ... this.
[name]: Rename to "stumpwm-with-slynk".
[inherit]: Replace sbcl-stumpwm with stumpwm.
[inputs]: Ditto.
[arguments]: Ditto.
---
 gnu/packages/lisp.scm | 49 +++++++++++++++++++++++++++++--------------
 1 file changed, 33 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 9fb25a15a2..b8cfa9c7ed 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
+;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -952,9 +953,9 @@ from other CLXes around the net.")
      `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
        ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
 
-(define-public sbcl-stumpwm
+(define-public stumpwm
   (package
-    (name "sbcl-stumpwm")
+    (name "stumpwm")
     (version "18.05")
     (source (origin
               (method url-fetch)
@@ -970,7 +971,8 @@ from other CLXes around the net.")
               ("alexandria" ,sbcl-alexandria)))
     (outputs '("out" "lib"))
     (arguments
-     '(#:phases
+     '(#:asd-system-name "stumpwm"
+       #:phases
        (modify-phases %standard-phases
          (add-after 'create-symlinks 'build-program
            (lambda* (#:key outputs #:allow-other-keys)
@@ -1003,17 +1005,32 @@ for input.  These design decisions reflect the growing popularity of
 productive, customizable lisp based systems.")
     (home-page "https://github.com/stumpwm/stumpwm")
     (license license:gpl2+)
-    (properties `((ecl-variant . ,(delay ecl-stumpwm))))))
+    (properties `((cl-source-variant . ,(delay cl-stumpwm))))))
 
 (define-public cl-stumpwm
-  (sbcl-package->cl-source-package sbcl-stumpwm))
+  (package
+    (inherit (sbcl-package->cl-source-package stumpwm))
+    (name "cl-stumpwm")))
 
-(define-public ecl-stumpwm
-  (let ((base (sbcl-package->ecl-package sbcl-stumpwm)))
-    (package
-      (inherit base)
-      (outputs '("out"))
-      (arguments '()))))
+;; The last StumpWM release to support multiple lisps was 1.0.0.
+(define-public ecl-stumpwm-1.0.0
+  (package
+    (inherit stumpwm)
+    (name "ecl-stumpwm")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/stumpwm/stumpwm/archive/"
+                    version ".tar.gz"))
+              (sha256
+               (base32 "1maxp98gh64az3d9vz9br6zdd6rc9fmj2imvax4by85g6kxvdz1i"))
+              (file-name (string-append "stumpwm-" version ".tar.gz"))))
+    (build-system asdf-build-system/ecl)
+    (inputs `(("cl-ppcre" ,ecl-cl-ppcre)
+              ("clx" ,ecl-clx)))
+    (arguments '())
+    (outputs '("out"))))
 
 ;; The slynk that users expect to install includes all of slynk's contrib
 ;; modules.  Therefore, we build the base module and all contribs first; then
@@ -1292,16 +1309,16 @@ multiple inspectors with independent history.")
                          paths)
             #t)))))))
 
-(define-public sbcl-stumpwm+slynk
+(define-public stumpwm+slynk
   (package
-    (inherit sbcl-stumpwm)
-    (name "sbcl-stumpwm-with-slynk")
+    (inherit stumpwm)
+    (name "stumpwm-with-slynk")
     (outputs '("out"))
     (inputs
-     `(("stumpwm" ,sbcl-stumpwm "lib")
+     `(("stumpwm" ,stumpwm "lib")
        ("slynk" ,sbcl-slynk)))
     (arguments
-     (substitute-keyword-arguments (package-arguments sbcl-stumpwm)
+     (substitute-keyword-arguments (package-arguments stumpwm)
        ((#:phases phases)
         `(modify-phases ,phases
            (replace 'build-program
-- 
2.19.1

