Subject: [PATCH] gnu: Add opustags.

From: Leo Famulari <[email-masked]>
Date: Mon, 13 Dec 2021 12:40:00 -0500

* gnu/packages/music.scm (opustags): New variable.
---
 gnu/packages/music.scm | 51 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 50 insertions(+), 1 deletion(-)

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 <[email-masked]>
 ;;; Copyright © 2016 Al McElrath <[email-masked]>
 ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <[email-masked]>
-;;; Copyright © 2016, 2018 Leo Famulari <[email-masked]>
+;;; Copyright © 2016, 2018, 2021 Leo Famulari <[email-masked]>
 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <[email-masked]>
 ;;; Copyright © 2016 John J. Foerch <[email-masked]>
 ;;; Copyright © 2016 Alex Griffin <[email-masked]>
@@ -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)))
-- 
2.34.0