diff mbox series

[bug#52469] gnu: Add opustags.

Message ID a0a7cc7ed0981895ff1b7a5866e18d65252d997f.1639417199.git.leo@famulari.name
State Accepted
Headers show
Series [bug#52469] gnu: Add opustags. | expand

Commit Message

Leo Famulari Dec. 13, 2021, 5:40 p.m. UTC
* gnu/packages/music.scm (opustags): New variable.
---
 gnu/packages/music.scm | 51 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

Comments

Mathieu Othacehe Dec. 19, 2021, 4:09 p.m. UTC | #1
Hey Leo,

> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (let* ((perl-list-moreutils-lib
> +                      (string-append (assoc-ref inputs "perl-list-moreutils")
> +                                     "/lib/perl5/site_perl/"
> +                                     ,(package-version perl)))
> +                    (perl-exporter-tiny-lib
> +                      (string-append (assoc-ref inputs "perl-exporter-tiny")
> +                                     "/lib/perl5/site_perl/"
> +                                     ,(package-version perl))))

I guess you can use gexps and this-package-input to avoid relying on
input labels explicitly.

> +    (inputs
> +     `(("libogg" ,libogg)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ;; For the test suite
> +       ("ffmpeg" ,ffmpeg)
> +       ("perl-exporter-tiny" ,perl-exporter-tiny)
> +       ("perl-list-moreutils" ,perl-list-moreutils)
> +       ("perl-test-harness" ,perl-test-harness)))

And adapt those lists to the new style.

Otherwise looks fine,

Thanks,

Mathieu
Leo Famulari Dec. 19, 2021, 5:12 p.m. UTC | #2
On Sun, Dec 19, 2021 at 05:09:18PM +0100, Mathieu Othacehe wrote:
> > +           (lambda* (#:key inputs #:allow-other-keys)
> > +             (let* ((perl-list-moreutils-lib
> > +                      (string-append (assoc-ref inputs "perl-list-moreutils")
> > +                                     "/lib/perl5/site_perl/"
> > +                                     ,(package-version perl)))
> > +                    (perl-exporter-tiny-lib
> > +                      (string-append (assoc-ref inputs "perl-exporter-tiny")
> > +                                     "/lib/perl5/site_perl/"
> > +                                     ,(package-version perl))))
> 
> I guess you can use gexps and this-package-input to avoid relying on
> input labels explicitly.

I'd like to do this but I can't yet find any examples of using the new
style with modify-phases.

> > +    (inputs
> > +     `(("libogg" ,libogg)))
> > +    (native-inputs
> > +     `(("pkg-config" ,pkg-config)
> > +       ;; For the test suite
> > +       ("ffmpeg" ,ffmpeg)
> > +       ("perl-exporter-tiny" ,perl-exporter-tiny)
> > +       ("perl-list-moreutils" ,perl-list-moreutils)
> > +       ("perl-test-harness" ,perl-test-harness)))
> 
> And adapt those lists to the new style.

I did make this change and pushed as
ee2e02333485e54dd3024e982ae1a2f9b10cfb6c

Thanks for the review!
diff mbox series

Patch

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 9d2fad853e..89306dd764 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -4,7 +4,7 @@ 
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2018, 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -144,6 +144,7 @@  (define-module (gnu packages music)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
@@ -6952,3 +6953,51 @@  (define-public a2jmidid
 midi devices to JACK midi devices.")
     (home-page "https://github.com/jackaudio/a2jmidid")
     (license license:gpl2)))
+
+(define-public opustags
+  (package
+    (name "opustags")
+    (version "1.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fmang/opustags")
+                    (commit version)))
+              (sha256
+               (base32 "1wsfw713rhi2gg5xc04cx5i31hlw0l3wdflj3r1y8w45bdk6ag1z"))
+              (file-name (git-file-name name version))))
+    (arguments
+     `(#:test-target "check"
+       #:phases
+       (modify-phases %standard-phases
+         ;; This package does not use the perl-build-system, so we have to
+         ;; manually set up the Perl environment used by the test suite.
+         (add-before 'check 'setup-perl-environment
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((perl-list-moreutils-lib
+                      (string-append (assoc-ref inputs "perl-list-moreutils")
+                                     "/lib/perl5/site_perl/"
+                                     ,(package-version perl)))
+                    (perl-exporter-tiny-lib
+                      (string-append (assoc-ref inputs "perl-exporter-tiny")
+                                     "/lib/perl5/site_perl/"
+                                     ,(package-version perl))))
+               (setenv "PERL5LIB" (string-append perl-list-moreutils-lib ":"
+                                                 perl-exporter-tiny-lib))))))))
+    (build-system cmake-build-system)
+    (inputs
+     `(("libogg" ,libogg)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ;; For the test suite
+       ("ffmpeg" ,ffmpeg)
+       ("perl-exporter-tiny" ,perl-exporter-tiny)
+       ("perl-list-moreutils" ,perl-list-moreutils)
+       ("perl-test-harness" ,perl-test-harness)))
+    (synopsis "Ogg Opus tags editor")
+    (description "@code{opustags} is an Ogg Opus tag editor.  It reads and edits
+the comment header of an Ogg Opus audio file, offering both read-only and
+editing modes.  Tags can be edited interactively with an editor of your
+choice.")
+    (home-page "https://github.com/fmang/opustags")
+    (license license:bsd-3)))