Subject: [bug#74251] [PATCH] Adding jack-mixer audio package

From: Divya Ranjan <[email-masked]>
Date: Mon, 11 Nov 2024 19:42:24 +0000

Ekaitz Zarraga <[email-masked]> writes:

> Sorry mate I didn't explain it properly.
>
> The commit message has two parts: a title and a body.
>
> The title you used before was correct, you were only missing the
> body. This is how the whole commit message should look like:
>
> gnu: audio: Add jack-mixer
>
> * gnu/packages/audio.scm (jack-mixer): New variable.
>

Okay, I think this is the final patch.

Regards,
>From 81db499ec6702efb38e56447b9ccc1253a6ee62c Mon Sep 17 00:00:00 2001
From: Divya Ranjan <[email-masked]>
Date: Mon, 11 Nov 2024 19:38:20 +0000
Subject: [PATCH] gnu: audio: Add jack-mixer

* gnu/packages/audio.scm (jack-mixer): New variable

Signed-off-by: Divya Ranjan <[email-masked]>
---
 gnu/packages/audio.scm | 60 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 467dc4a74f..8548b2d8ed 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2772,6 +2772,66 @@ (define-public jacktrip
 audio signal streaming.")
     (license (list license:gpl3+ license:lgpl3 license:expat))))
 
+(define-public jack-mixer
+  (package
+    (name "jack-mixer")
+    (version "19")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jack-mixer/jack_mixer")
+             (commit (string-append "release-" version))))
+       (sha256
+        (base32 "18m6a9asbwaslw418i2w04kgc6jgdpw01i3kawdqy903kw66hnhj"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:build-type "release"
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'path-patch
+                     (lambda _
+                       (substitute* '("meson.build")
+                         (("'/', 'etc', 'xdg'")
+                          (string-append "'"
+                                         #$output "'")))))
+                   (add-after 'install 'wrap-path
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (let* ((out (assoc-ref outputs "out"))
+                              (bin (string-append out "/bin/"))
+			      (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+                              (version #$(version-major+minor (package-version
+                                                               (this-package-input
+                                                                "python"))))
+                              (lib (string-append out "/lib/python" version
+                                                  "/site-packages")))
+                         (wrap-program (string-append bin "jack_mixer")
+                           `("GUIX_PYTHONPATH" ":" prefix
+                             (,(getenv "GUIX_PYTHONPATH") ,lib))
+			   `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
+    (native-inputs (list pkg-config
+                         python-cython
+                         python-docutils
+                         gettext-minimal
+                         glib))
+    (inputs (list bash-minimal))
+    (propagated-inputs (list gtk+
+			     `(,gtk+ "bin")
+			     python
+			     python-wrapper
+			     python-pygobject
+			     python-pycairo
+			     python-platformdirs
+			     jack-2))
+    (synopsis
+     "JACK Mixer: A multi-channel audio mixer for the JACK Audio Connection Kit")
+    (description
+     "The jack_mixer is a GTK+ JACK audio mixer app with a look & handling
+similar to hardware mixing desks.  It has lot of useful features, apart
+from being able to mix multiple JACK audio streams.")
+    (home-page "https://rdio.space/jackmixer/")
+    (license license:gpl2+)))
+
 (define-public jalv
   (package
     (name "jalv")
-- 
2.46.0

-- 
Divya Ranjan,
Philosophy, Mathematics, Libre Software.