diff mbox series

[bug#74251] Adding jack-mixer audio package

Message ID 20241108000101.7394-1-divya@subvertising.org
State New
Headers show
Series [bug#74251] Adding jack-mixer audio package | expand

Commit Message

Divya Ranjan Nov. 8, 2024, 12:01 a.m. UTC
---
 gnu/packages/audio.scm | 68 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

Comments

Divya Ranjan Nov. 8, 2024, 12:08 a.m. UTC | #1
Hello Guix devs,

Apologies, I forgot to `--annotate` the git send-email, the following patch adds the jack-mixer application to the `(gnu packages audio)`. It's a python package built with meson, I've tested it with my system and it is deterministic.

Let me know if any changes need to be done.

P.S: CC me, since I'm not subscribed to the mailing list.

Regards,


On 8 November 2024 00:01:01 GMT, Divya Ranjan <divya@subvertising.org> wrote:
>---
> gnu/packages/audio.scm | 68 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 68 insertions(+)
>
>diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
>index 467dc4a74f..70477d1071 100644
>--- a/gnu/packages/audio.scm
>+++ b/gnu/packages/audio.scm
>@@ -79,6 +79,7 @@ (define-module (gnu packages audio)
>   #:use-module (gnu packages check)
>   #:use-module (gnu packages cdrom)
>   #:use-module (gnu packages compression)
>+  #:use-module (gnu packages commencement)
>   #:use-module (gnu packages cpp)
>   #:use-module (gnu packages curl)
>   #:use-module (gnu packages dbm)
>@@ -160,6 +161,7 @@ (define-module (gnu packages audio)
>   #:use-module (guix build-system python)
>   #:use-module (guix build-system trivial)
>   #:use-module (guix build-system waf)
>+  #:use-module (guix build utils)
>   #:use-module (guix download)
>   #:use-module (guix gexp)
>   #:use-module (guix git-download)
>@@ -2772,6 +2774,72 @@ (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
>+                   ;; Replaces hardcoded path with /gnu/store
>+                   (add-after 'unpack 'path-patch
>+                     (lambda _
>+                       (substitute* '("meson.build")
>+                         (("'/', 'etc', 'xdg'")
>+                          (string-append "'"
>+                                         #$output "'")))))
>+
>+                   ;; To wrap the paths for python and GTK
>+                   (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 gcc-toolchain
>+           pkg-config
>+           python-cython
>+           python-docutils
>+           gnu-gettext
>+           glib))
>+    (propagated-inputs
>+     (list gtk+
>+	   `(,gtk+ "bin") ;; Required during runtime.
>+	   python
>+	   bash-minimal
>+	   python-wrapper
>+	   python-pygobject
>+	   python-pycairo
>+	   python-platformdirs ;; Required to save sessions.
>+	   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, Mathematics, Philosophy and Libre Software
Ekaitz Zarraga Nov. 9, 2024, 6:20 p.m. UTC | #2
Hi,

The commit message should follow the Changelog format as described the 
Submitting-Patches section of the manual.

That said:

> Hello Guix devs,
> 
> Apologies, I forgot to `--annotate` the git send-email, the following patch adds the jack-mixer application to the `(gnu packages audio)`. It's a python package built with meson, I've tested it with my system and it is deterministic.
> 
> Let me know if any changes need to be done.
> 
> P.S: CC me, since I'm not subscribed to the mailing list.
> 
> Regards,
> 
> 
> On 8 November 2024 00:01:01 GMT, Divya Ranjan <divya@subvertising.org> wrote:
> >---
> > gnu/packages/audio.scm | 68 ++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 68 insertions(+)
> >
> >diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
> >index 467dc4a74f..70477d1071 100644
> >--- a/gnu/packages/audio.scm
> >+++ b/gnu/packages/audio.scm
> >@@ -79,6 +79,7 @@ (define-module (gnu packages audio)
> >   #:use-module (gnu packages check)
> >   #:use-module (gnu packages cdrom)
> >   #:use-module (gnu packages compression)
> >+  #:use-module (gnu packages commencement)

This is already included in the `build-system` so you don't need to add 
it. In fact, it breaks Guix when you do :)

> >   #:use-module (gnu packages cpp)
> >   #:use-module (gnu packages curl)
> >   #:use-module (gnu packages dbm)
> >@@ -160,6 +161,7 @@ (define-module (gnu packages audio)
> >   #:use-module (guix build-system python)
> >   #:use-module (guix build-system trivial)
> >   #:use-module (guix build-system waf)
> >+  #:use-module (guix build utils)
> >   #:use-module (guix download)
> >   #:use-module (guix gexp)
> >   #:use-module (guix git-download)
> >@@ -2772,6 +2774,72 @@ (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
> >+                   ;; Replaces hardcoded path with /gnu/store
> >+                   (add-after 'unpack 'path-patch
> >+                     (lambda _
> >+                       (substitute* '("meson.build")
> >+                         (("'/', 'etc', 'xdg'")
> >+                          (string-append "'"
> >+                                         #$output "'")))))
> >+
> >+                   ;; To wrap the paths for python and GTK
> >+                   (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 gcc-toolchain

As said, remove gcc-toolchain

> >+           pkg-config
> >+           python-cython
> >+           python-docutils
> >+           gnu-gettext
> >+           glib))
> >+    (propagated-inputs
> >+     (list gtk+
> >+	   `(,gtk+ "bin") ;; Required during runtime.
> >+	   python
> >+	   bash-minimal
> >+	   python-wrapper
> >+	   python-pygobject
> >+	   python-pycairo
> >+	   python-platformdirs ;; Required to save sessions.
> >+	   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

Also when running `./pre-inst-env guix lint jack-mixer` there are 
several problems with the package.

Some you can fix with `./pre-inst-env style jack-mixer` but some others 
you have to fix by hand:

	guix/gnu/packages/audio.scm:2777:2: jack-mixer@19: 'gettext' should 
probably switched for its minimal variant
	gnu/packages/audio.scm:2777:2: jack-mixer@19: "bash-minimal" should be 
in 'inputs' when 'wrap-program' is used
	...

Please, run the linter and fix the problems.

Thanks for the patch!
Ekaitz Zarraga Nov. 12, 2024, 10:42 a.m. UTC | #3
user guix
usertag 74251 + reviewed-looks-good
thanks

Guix QA review form submission:


Items marked as checked: Lint warnings, Package builds, Commit messages, 
New package licenses, New package tests, New package synopsis and 
descriptions
Ekaitz Zarraga Nov. 12, 2024, 10:42 a.m. UTC | #4
user guix
usertag 74251 + reviewed-looks-good
thanks

Guix QA review form submission:


Items marked as checked: Lint warnings, Package builds, Commit messages, 
New package licenses, New package tests, New package synopsis and 
descriptions
diff mbox series

Patch

diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 467dc4a74f..70477d1071 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -79,6 +79,7 @@  (define-module (gnu packages audio)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages commencement)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages dbm)
@@ -160,6 +161,7 @@  (define-module (gnu packages audio)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
+  #:use-module (guix build utils)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
@@ -2772,6 +2774,72 @@  (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
+                   ;; Replaces hardcoded path with /gnu/store
+                   (add-after 'unpack 'path-patch
+                     (lambda _
+                       (substitute* '("meson.build")
+                         (("'/', 'etc', 'xdg'")
+                          (string-append "'"
+                                         #$output "'")))))
+
+                   ;; To wrap the paths for python and GTK
+                   (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 gcc-toolchain
+           pkg-config
+           python-cython
+           python-docutils
+           gnu-gettext
+           glib))
+    (propagated-inputs
+     (list gtk+
+	   `(,gtk+ "bin") ;; Required during runtime.
+	   python
+	   bash-minimal
+	   python-wrapper
+	   python-pygobject
+	   python-pycairo
+	   python-platformdirs ;; Required to save sessions.
+	   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")