unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / Atom feed
* [bug#52045] [PATCH] gnu: Add cl-clm.
@ 2021-11-22 20:45 jgart via Guix-patches via
  2021-11-23 13:00 ` Guillaume Le Vaillant
  0 siblings, 1 reply; 2+ messages in thread
From: jgart via Guix-patches via @ 2021-11-22 20:45 UTC (permalink / raw)
  To: 52045; +Cc: Guillaume Le Vaillant, Pierre Neidhardt, jgart

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





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [bug#52045] [PATCH] gnu: Add cl-clm.
  2021-11-22 20:45 [bug#52045] [PATCH] gnu: Add cl-clm jgart via Guix-patches via
@ 2021-11-23 13:00 ` Guillaume Le Vaillant
  0 siblings, 0 replies; 2+ messages in thread
From: Guillaume Le Vaillant @ 2021-11-23 13:00 UTC (permalink / raw)
  To: jgart; +Cc: 52045, Pierre Neidhardt


[-- Attachment #1.1: Type: text/plain, Size: 1847 bytes --]

jgart <jgart@dismail.de> skribis:

> 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):
>
> [...]
>
> 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

Hi,

Making an asdf system definition for clm similar to the one for cmn
won't be enough, because in addition to compiling lisp files, the
"all.lisp" file is also calling the "configure" script and calling gcc
to compile C code and make a shared library.

The attached modified version of your patch seems to compile clm without
error (although some files end up in a different directory compared to
"regular" lisp libraries), but I have not tested if it works as expected.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-Add-cl-clm.patch --]
[-- Type: text/x-patch, Size: 2620 bytes --]

From 8a9880fcc51f33e0ad2f8fa1887b71c55a78ffb9 Mon Sep 17 00:00:00 2001
From: jgart <jgart@dismail.de>
Date: Mon, 22 Nov 2021 15:45:28 -0500
Subject: [PATCH] gnu: Add cl-clm.

* gnu/packages/lisp-xyz.scm (cl-clm, sbcl-clm): New variables.

Co-authored-by: Guillaume Le Vaillant <glv@posteo.net>
---
 gnu/packages/lisp-xyz.scm | 43 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index bb697c4c60..799d8f7bbc 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -69,6 +69,7 @@ (define-module (gnu packages lisp-xyz)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -19721,6 +19722,48 @@ (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")
+       (sha256
+        (base32 "1ckgl7rsnxppnf47jqayrbyhm3hv6c4f7n2994ylva6wiy5w7wp8"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("gcc" ,gcc)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "configure"
+               (("/bin/sh")
+                (which "bash")))
+             (substitute* '("all.lisp"
+                            "index.cl"
+                            "initmus.lisp")
+               (("/bin/csh")
+                (which "bash")))
+             (substitute* "all.lisp"
+               (("#\\+sbcl \\(shadowing-import 'clm:double\\)" all)
+                (string-append all
+                               " #+sbcl (shadowing-import 'clm:env)"))))))))
+    (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 sbcl-cl-https-everywhere
   ;; No release.
   ;; Don't forget to update the https-everywhere input.
-- 
2.33.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-11-23 13:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-22 20:45 [bug#52045] [PATCH] gnu: Add cl-clm jgart via Guix-patches via
2021-11-23 13:00 ` Guillaume Le Vaillant

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).