[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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:22
(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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:25
[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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:25
[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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:25
[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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:25
[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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:25
[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
S
S
Sharlatan Hellseher wrote on 27 Mar 2023 12:25
[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
G
G
Guillaume Le Vaillant wrote on 30 Mar 2023 11:33
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
?