[PATCH 0/6]: gnu: cl-trial: Activate trial-harmony system.

  • Done
  • quality assurance status badge
Details
2 participants
  • Guillaume Le Vaillant
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
Sharlatan Hellseher
Severity
normal

Debbugs page

Sharlatan Hellseher wrote 2 years ago
(address . guix-patches@gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102254.14799-1-sharlatanus@gmail.com
Hi Guix!

This patch series adds missing components of Harmony, the sound server and
library to Trial, game engine written in Common Lisp.

Toggle quote (12 lines)
> ./pre-inst-env guix build sbcl-cl-flac sbcl-cl-vorbis sbcl-cl-mixed sbcl-harmony sbcl-trial ecl-cl-flac ecl-cl-vorbis ecl-cl-mixed ecl-harmony libmixed
> /gnu/store/mmdpb9avg59k2xbphfh90pd6hjai5581-libmixed-2.0-0.91e6b9f
> /gnu/store/ak4yrrgmngl3wh1y4rp9ii4rikrx8df8-ecl-harmony-2.0.0-0.0b57483
> /gnu/store/zm1jy66lr6amnm7bn2qffrs4kv34ppvh-ecl-cl-mixed-2.0.0-0.4aaff13
> /gnu/store/l50cklz0ww0xhn196djm55950ikyp8ds-ecl-cl-vorbis-2.0.0-0.c5835cd
> /gnu/store/ygpssq0rnqygrmwdkgxgh18dacnxngfy-ecl-cl-flac-2.0.0-0.d094d33
> /gnu/store/6wilhj4gmwsc2x6lr0n4pi4x0m2zr75b-sbcl-trial-1.2.0-2.db4e98e
> /gnu/store/2kkkmvb8ggria36wbfqf6g164714cgr2-sbcl-harmony-2.0.0-0.0b57483
> /gnu/store/8wms2xgbnmaj4ssl0maa3vh5yqpyws2h-sbcl-cl-mixed-2.0.0-0.4aaff13
> /gnu/store/gyca583k1gd90i1rzbdqiijf20xc37i6-sbcl-cl-vorbis-2.0.0-0.c5835cd
> /gnu/store/qh9dqvd004j589mzbww6mqvqqrx8v5ab-sbcl-cl-flac-2.0.0-0.d094d33

Sharlatan Hellseher (6):
gnu: Add cl-flac.
gnu: Add cl-vorbis.
gnu: Add libmixed.
gnu: Add cl-mixed.
gnu: Add cl-harmony.
gnu: cl-trial: Activate trial-harmony system.

gnu/packages/audio.scm | 52 ++++++++-
gnu/packages/lisp-xyz.scm | 220 +++++++++++++++++++++++++++++++++++++-
2 files changed, 267 insertions(+), 5 deletions(-)


base-commit: 9ec1af39e29d0fa95d4db4b5b8ef1cf3613c5956
prerequisite-patch-id: 13f206ff1fa1d52c32d6956a84cb5479b2bde463
prerequisite-patch-id: 63b08309a3bc81219668f413120338a8a0095408
prerequisite-patch-id: e543cf75d90a807f3edae5cec4299ee92f9c1edf
--
2.39.2
Sharlatan Hellseher wrote 2 years ago
[PATCH 1/6] gnu: Add cl-flac.
(address . 62477@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102517.14946-1-sharlatanus@gmail.com
* gnu/packages/lisp-xyz.scm (cl-flac, ecl-cl-flac, sbcl-cl-flac): New variables.
---
gnu/packages/lisp-xyz.scm | 48 +++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (68 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 20ea82cd6f..ae8524657b 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -119,6 +119,7 @@ (define-module (gnu packages lisp-xyz)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (ice-9 match)
@@ -6728,6 +6729,53 @@ (define-public cl-fastcgi
(define-public ecl-cl-fastcgi
(sbcl-package->ecl-package sbcl-cl-fastcgi))
+(define-public sbcl-cl-flac
+ (let ((commit "d094d33d3cc2cf263263b917798d338eded3c532")
+ (revision "0"))
+ (package
+ (name "sbcl-cl-flac")
+ (version (git-version "2.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shirakumo/cl-flac")
+ (commit commit)))
+ (file-name (git-file-name "cl-flac" version))
+ (sha256
+ (base32 "1dgr5xqf175hzq3sxpbixxia2k2g3rz0pn6msch4dnvk7a1naqlc"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled libraries.
+ `(begin
+ (delete-file-recursively "static")))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "low-level.lisp"
+ (("libflac.so")
+ (search-input-file inputs "/lib/libFLAC.so"))))))))
+ (inputs
+ (list flac
+ sbcl-cffi
+ sbcl-documentation-utils
+ sbcl-trivial-features
+ sbcl-trivial-garbage))
+ (home-page "https://shirakumo.github.io/cl-flac")
+ (synopsis "CFFI binding to libflac for Common Lisp")
+ (description "This package provides a CFFI bindings to @code{libflac}
+audio library for Common Lisp")
+ (license license:zlib))))
+
+(define-public ecl-cl-flac
+ (sbcl-package->ecl-package sbcl-cl-flac))
+
+(define-public cl-flac
+ (sbcl-package->cl-source-package sbcl-cl-flac))
+
(define-public sbcl-clack
(let ((commit "6fd0279424f7ba5fd4f92d69a1970846b0b11222")
(revision "2"))
--
2.39.2
Sharlatan Hellseher wrote 2 years ago
[PATCH 2/6] gnu: Add cl-vorbis.
(address . 62477@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102517.14946-2-sharlatanus@gmail.com
* gnu/packages/lisp-xyz.scm (cl-vorbis, ecl-cl-vorbis, sbcl-cl-vorbis):
New variables.
---
gnu/packages/lisp-xyz.scm | 51 +++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (64 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index ae8524657b..aff7ede062 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -27854,6 +27854,57 @@ (define-public cl-variates
(define-public ecl-cl-variates
(sbcl-package->ecl-package sbcl-cl-variates))
+(define-public sbcl-cl-vorbis
+ (let ((commit "c5835cd7091aea9e2e389ad359d244542d637758")
+ (revision "0"))
+ (package
+ (name "sbcl-cl-vorbis")
+ (version (git-version "2.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shirakumo/cl-vorbis")
+ (commit commit)))
+ (file-name (git-file-name "cl-vorbis" version))
+ (sha256
+ (base32 "0713pl5c2khfpf8m3h1l2y0ilack7akf580h70jq6qcrnq3h4b40"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled libraries, GlibC and Vorbis sources.
+ `(begin
+ (delete-file-recursively "static")
+ (for-each delete-file '("glibc-2.13.h"
+ "stb_vorbis.c"
+ "stb_vorbis_patch.c"))))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "low-level.lisp"
+ (("libvorbis-lin-amd64.so")
+ (search-input-file inputs "/lib/libvorbis.so"))))))))
+ (inputs
+ (list libvorbis
+ sbcl-cffi
+ sbcl-documentation-utils
+ sbcl-static-vectors
+ sbcl-trivial-features
+ sbcl-trivial-garbage))
+ (home-page "https://shirakumo.github.io/cl-vorbis")
+ (synopsis "OGG/Vorbis decoding using stb_vorbis for Common Lisp")
+ (description "This package provides a CFFI binding of @code{ctb_vorbis}
+audio library to Common Lisp.")
+ (license license:zlib))))
+
+(define-public ecl-cl-vorbis
+ (sbcl-package->ecl-package sbcl-cl-vorbis))
+
+(define-public cl-vorbis
+ (sbcl-package->cl-source-package sbcl-cl-vorbis))
+
(define-public sbcl-cephes
(let ((commit "d87146fa38c8425ffb5fe425eee5eb3e818bacd4")
(revision "0"))
--
2.39.2
Sharlatan Hellseher wrote 2 years ago
[PATCH 3/6] gnu: Add libmixed.
(address . 62477@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102517.14946-3-sharlatanus@gmail.com
* gnu/packages/audio.scm (libmixed): New variable.
---
gnu/packages/audio.scm | 52 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 49 insertions(+), 3 deletions(-)

Toggle diff (101 lines)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 6f3fa2a580..043c608ea4 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -42,6 +42,7 @@
;;; Copyright © 2022 Andy Tai <atai@atai.org>
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,8 +67,8 @@ (define-module (gnu packages audio)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
- #:use-module (gnu packages build-tools)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -86,6 +87,7 @@ (define-module (gnu packages audio)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnunet) ; libmicrohttpd
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@@ -95,6 +97,7 @@ (define-module (gnu packages audio)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages linphone)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages machine-learning)
@@ -120,8 +123,6 @@ (define-module (gnu packages audio)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages telephony)
- #:use-module (gnu packages linphone)
- #:use-module (gnu packages linux)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
@@ -4019,6 +4020,51 @@ (define-public wavpack
encode and decode wavpack files.")
(license license:bsd-3)))
+(define-public libmixed
+ ;; Release is much outdated.
+ (let ((commit "91e6b9f2438bca41205fade02c9d8f4f938838b6")
+ (revision "0"))
+ (package
+ (name "libmixed")
+ (version (git-version "2.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shirakumo/libmixed")
+ (commit commit)))
+ (file-name (git-file-name "libmixed" version))
+ (sha256
+ (base32 "01vwgv8ivpg7a4y95krkgh656mmklsn1k3fmhwp474aj82grd3m4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; FIXME: (Sharlatan-20230326T121542+0100): Tests failed 1/34, 1 failed,
+ ;; 33 passed. There is not simple way to disable just one test.
+ ;; https://github.com/Shirakumo/libmixed/issues/13
+ #:tests? #f
+ #:configure-flags
+ #~(list "-DCMAKE_CXX_FLAGS=-O3 -fPIC"
+ "-DCMAKE_C_FLAGS=-O3 -fPIC")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("/usr/local") #$output))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "./tester")))))))
+ (native-inputs (list doxygen graphviz))
+ (inputs (list ncurses mpg123))
+ (home-page "https://github.com/Shirakumo/libmixed")
+ (synopsis "Low-level audio mixer pipeline library")
+ (description
+ "Libmixed is a library for real-time audio processing pipelines for use in
+audio/video/games. It can serve as a base architecture for complex DSP systems.")
+ (license license:zlib))))
+
(define-public libmodplug
(package
(name "libmodplug")
--
2.39.2
Sharlatan Hellseher wrote 2 years ago
[PATCH 4/6] gnu: Add cl-mixed.
(address . 62477@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102517.14946-4-sharlatanus@gmail.com
* gnu/packages/lisp-xyz.scm (cl-mixed, ecl-cl-mixed, sbcl-cl-mixed): New variables.
---
gnu/packages/lisp-xyz.scm | 80 +++++++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)

Toggle diff (93 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index aff7ede062..5ab6ef6f9b 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -18981,6 +18981,86 @@ (define-public ecl-cl-mime
(define-public cl-mime
(sbcl-package->cl-source-package sbcl-cl-mime))
+(define-public sbcl-cl-mixed
+ (let ((commit "4aaff134d3902d93a2a8605c10de4bcfc62d7afa")
+ (revision "0"))
+ (package
+ (name "sbcl-cl-mixed")
+ (version (git-version "2.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shirakumo/cl-mixed")
+ (commit commit)))
+ (file-name (git-file-name "cl-mixed" version))
+ (sha256
+ (base32 "1mrj95lxb1gbxxm89x8gy1ifw2ic1p5wwpapkxcd2jr8abw7zny0"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled libraries.
+ `(begin
+ (delete-file-recursively "static")))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-systems '("cl-mixed"
+ "cl-mixed-examples"
+ "cl-mixed-flac"
+ "cl-mixed-vorbis"
+ "cl-mixed-alsa"
+ "cl-mixed-jack"
+ "cl-mixed-mpg123"
+ "cl-mixed-mpt"
+ "cl-mixed-out123"
+ "cl-mixed-pulse"
+ "cl-mixed-sdl2"
+ "cl-mixed-wav")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "low-level.lisp"
+ (("libmixed.so.2")
+ (search-input-file inputs "/lib/libmixed.so.2"))))))))
+ (inputs
+ (list libmixed
+ sbcl-alexandria
+ sbcl-cffi
+ sbcl-cl-flac
+ sbcl-cl-mpg123
+ sbcl-cl-out123
+ sbcl-cl-vorbis
+ sbcl-documentation-utils
+ sbcl-sdl2
+ sbcl-static-vectors
+ sbcl-trivial-features))
+ (home-page "https://shirakumo.github.io/cl-mixed")
+ (synopsis "Extended audio library for Common Lisp")
+ (description
+ "This packages provides CFFI binding to @code{libmixed} audio library for
+Common Lisp with support of other audio formats available on GNU/Linux systems:
+
+@itemize
+
+@item @acronym{Alsa, Advanced Linux Sound Architecture}
+@item @acronym{Jack, JackAudio toolkit}
+@item @acronym{Openmpt, Libopenmpt playback drain for tracker files}
+@item @acronym{PulseAudio, PulseAudio based playback drain}
+@item Flac (via CL-FLAC)
+@item Mpg123 (via CL-MPG123)
+@item Ogg/vorbis (via CL-VORBIS)
+@item Out123 (via CL-OUT123)
+@item WAV
+
+@end itemize")
+ (license license:zlib))))
+
+(define-public ecl-cl-mixed
+ (sbcl-package->ecl-package sbcl-cl-mixed))
+
+(define-public cl-mixed
+ (sbcl-package->cl-source-package sbcl-cl-mixed))
+
(define-public sbcl-lispbuilder-sdl
(let ((commit "589b3c6d552bbec4b520f61388117d6c7b3de5ab"))
(package
--
2.39.2
Sharlatan Hellseher wrote 2 years ago
[PATCH 5/6] gnu: Add cl-harmony.
(address . 62477@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102517.14946-5-sharlatanus@gmail.com
* gnu/packages/lisp-xyz.scm (cl-harmony, ecl-harmony, sbcl-harmony): New variables.
---
gnu/packages/lisp-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 5ab6ef6f9b..3240669919 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -2349,6 +2349,43 @@ (define-public cl-trivial-features
(define-public ecl-trivial-features
(sbcl-package->ecl-package sbcl-trivial-features))
+(define-public sbcl-harmony
+ (let ((commit "0b57483cc0341936c201b620f82a8542c606991f")
+ (revision "0"))
+ (package
+ (name "sbcl-harmony")
+ (version (git-version "2.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shirakumo/harmony")
+ (commit commit)))
+ (file-name (git-file-name "harmony" version))
+ (sha256
+ (base32 "0pqmfi3yi3gi7b7dyayrb621hp60rn7hasq0cl0fis3vg0fp5dja"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-atomics
+ sbcl-bordeaux-threads
+ sbcl-cl-mixed
+ sbcl-stealth-mixin
+ sbcl-trivial-features))
+ (home-page "https://shirakumo.github.io/harmony/")
+ (synopsis "Common Lisp sound server and sound processing library")
+ (description
+ "HARMONY is a library that provides you with audio processing tools as well as
+an audio server to play back music, sfx, and so forth. It is most suited for use
+in a game engine, but may feasibly also used for more advanced things such as a
+DAW")
+ (license license:zlib))))
+
+(define-public ecl-harmony
+ (sbcl-package->ecl-package sbcl-harmony))
+
+(define-public cl-harmony
+ (sbcl-package->cl-source-package sbcl-harmony))
+
(define-public sbcl-hu.dwim.asdf
(let ((commit "67cdf84390e530af4303cc4bc815fdf2a5e48f59"))
(package
--
2.39.2
Sharlatan Hellseher wrote 2 years ago
[PATCH 6/6] gnu: cl-trial: Activate trial-harmony system.
(address . 62477@debbugs.gnu.org)(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)
20230327102517.14946-6-sharlatanus@gmail.com
* gnu/packages/lisp-xyz.scm (sbcl-trial):
[arguments]<asd-systems>: Activate trial-harmony.
[inputs]: Add sbcl-harmony.
---
gnu/packages/lisp-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 3240669919..6375175485 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -21252,8 +21252,7 @@ (define-public sbcl-trial
;; ...
;; "trial-glop"
"trial-gltf"
- ;; TODO: It requires a long packaging journey.
- ;; "trial-harmony"
+ "trial-harmony"
"trial-jpeg"
"trial-notify"
"trial-png"
@@ -21299,6 +21298,7 @@ (define-public sbcl-trial
sbcl-form-fiddle
sbcl-glop
sbcl-glsl-toolkit
+ sbcl-harmony
sbcl-ieee-floats
sbcl-jzon
sbcl-lambda-fiddle
--
2.39.2
Guillaume Le Vaillant wrote 2 years ago
Re: [bug#62477] [PATCH 0/6]: gnu: cl-trial: Activate trial-harmony system.
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 62477-done@debbugs.gnu.org)
87a5zu8ttz.fsf@kitej
Patches pushed as 2ab0c55e3f4718034fc3253ec6aa435b490fc4f0 and following
with a few fixes (e.g. extra licenses for libmixed).
Thanks.
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCZCVX+A8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j+uTwD/ZGd+r78PYIGB8V3SQlm7nYWer/rIHk1addEa
ACq4Iy0BAKBXExGRyyWxU/trA2mtNHErNT7FiP3xHFe1stxCYZ0z
=LLS+
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 62477@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 62477
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help