summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2020-07-25 10:37:16 +0200
committerMarius Bakke <marius@gnu.org>2020-07-25 18:47:57 +0200
commit07dbdbd766760ce0121c1ac96fee766135fe7320 (patch)
tree8de5e8d0f0f37f0eacfdb19238543030f3c9d70e
parent581b37c866f92b834627fd273e5f868065a97840 (diff)
downloadguix-07dbdbd766760ce0121c1ac96fee766135fe7320.tar.gz
gnu: beets: Support replaygain plugin.
* gnu/packages/music.scm (beets)[arguments]: Add 'wrap-typelib phase.
[inputs]: Add gstreamer, gst-plugins-base, gst-plugins-good,
gobject-introspection and python-pygobject.

Signed-off-by: Marius Bakke <marius@gnu.org>
-rw-r--r--gnu/packages/music.scm22
1 files changed, 20 insertions, 2 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index a7e48b3ebb..31b13947a0 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3023,7 +3023,19 @@ websites such as Libre.fm.")
              #t))
          (replace 'check
            (lambda _
-             (invoke "nosetests" "-v"))))))
+             (invoke "nosetests" "-v")))
+         ;; Wrap the executable, so it can find python-gi (aka pygobject) and
+         ;; gstreamer plugins.
+         (add-after 'wrap 'wrap-typelib
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/beet"))
+                   (plugins (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                   (types (getenv "GI_TYPELIB_PATH")))
+               (wrap-program prog
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,plugins))
+                 `("GI_TYPELIB_PATH" ":" prefix (,types)))
+               #t))))))
     (native-inputs
      `(("python-beautifulsoup4" ,python-beautifulsoup4)
        ("python-flask" ,python-flask)
@@ -3044,7 +3056,13 @@ websites such as Libre.fm.")
        ("python-mutagen" ,python-mutagen)
        ("python-pyacoustid" ,python-pyacoustid)
        ("python-pyyaml" ,python-pyyaml)
-       ("python-unidecode" ,python-unidecode)))
+       ("python-unidecode" ,python-unidecode)
+       ;; For plugin replaygain.
+       ("python-pygobject" ,python-pygobject)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gst-plugins-base" ,gst-plugins-base)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("gstreamer" ,gstreamer)))
     (home-page "https://beets.io")
     (synopsis "Music organizer")
     (description "The purpose of beets is to get your music collection right