Subject: [bug#52045] [PATCH] gnu: Add cl-clm.

From: jgart <[email-masked]>
Date: Mon, 22 Nov 2021 15:45:28 -0500

Hi,

This is another WIP patch for the Common Lisp Music package (CLM) for GNU Guix.
It has a similar package definition to CMN which was successfully packaged and merged 
today into Guix thanks to the help of Bill, Guillaume, and Pierre:

https://en.wikipedia.org/wiki/Common_Lisp_Music

My goal in packaging clm and cmn is to subsequently be able to package
slippery-chicken for GNU Guix:

https://github.com/mdedwards/slippery-chicken

slippery-chicken hints at alsa headers required by clm on this line of its' install script:

https://github.com/mdedwards/slippery-chicken/blob/master/sc-install#L29

But, I think that the most immediate issue might be with the asd file in the clm repo:

https://ccrma.stanford.edu/software/clm/clm-5.tar.gz

Here is the asd file printed for convenience (delimited by backticks):

```
;;; ASDF system definition file for CLM
;;; For information on ASDF see: http://www.cliki.net/asdf
;;;
;;; To load CLM from a non-standard install location:
;;;
;;; (require :asdf)
;;; (push "/path/to/clm-3/" asdf:*central-registry*)
;;; (asdf:operate 'asdf:load-source-op :clm)
;;;
;;; To download/install/load CLM from its archive:
;;;
;;; (require :asdf)
;;; (progn (push "/path/to/asdf-install/" asdf:*central-registry*)
;;;        (asdf:operate 'asdf:load-op 'asdf-install))
;;; (asdf-install:install 'clm)
;;; (asdf:operate 'asdf:load-source-op 'clm)

;; from Rick Taube in 2006:
; (asdf:defsystem "clm"
;   :description "Common Lisp Music"
;   :version "3"
;   :author "William Schottstaedt <bil (at) ccrma (dot) stanford (dot) edu>"
;   :licence "BSD or whatever"
;   :components ((:file "all" )))

(in-package :asdf-user)

;; from Tito Latini 14-Dec-16:
(asdf:defsystem "clm"
   :description "Common Lisp Music"
   :version "5"
   :author "William Schottstaedt <bil (at) ccrma (dot) stanford (dot) edu>"
   :licence "BSD or whatever"
   :perform (compile-op (o c)
	      (load (system-relative-pathname "clm" "all.lisp"))))
```

Guillaume, do you see this asd file as needing a similar fix to your previous patching?

If so, I can try my hands at patching it myself while using your previous
patch to Bill as a template I can follow. 

I would send a patch to Bill afterwards for review and inclusion in the tarball.

My knowledge of asd file configuration is rather limited. Any advice here is much appreciated.

all best,

jgart

* gnu/packages/lisp-xyz.scm (cl-clm, sbcl-clm, ecl-clm): New variables.
---
 gnu/packages/lisp-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index bb697c4c60..918fb38c9f 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -19721,6 +19721,31 @@ (define-public cl-cmn
 (define-public ecl-cmn
   (sbcl-package->ecl-package sbcl-cmn))
 
+(define-public sbcl-clm
+  (package
+    (name "sbcl-clm")
+    (version "5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "https://ccrma.stanford.edu/software/clm/clm-5.tar.gz")
+       (file-name (string-append "clm-" version ".tar.gz"))
+       (sha256
+        (base32 "1ckgl7rsnxppnf47jqayrbyhm3hv6c4f7n2994ylva6wiy5w7wp8"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://ccrma.stanford.edu/software/clm/")
+    (synopsis "Music synthesis and signal processing package")
+    (description
+"Common Lisp Music is a music synthesis and signal processing package
+in the Music V family.")
+    (license license:expat)))
+
+(define-public cl-clm
+  (sbcl-package->cl-source-package sbcl-clm))
+
+(define-public ecl-clm
+  (sbcl-package->ecl-package sbcl-clm))
+
 (define-public sbcl-cl-https-everywhere
   ;; No release.
   ;; Don't forget to update the https-everywhere input.
-- 
2.34.0