Package: guix-patches;
Reported by: Simon Streit <simon <at> netpanic.org>
Date: Tue, 31 Aug 2021 21:33:01 UTC
Severity: normal
Tags: patch
Done: Lars-Dominik Braun <lars <at> 6xq.net>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Simon Streit <simon <at> netpanic.org> To: Maxime Devos <maximedevos <at> telenet.be> Cc: 50309 <at> debbugs.gnu.org Subject: [bug#50309] [PATCH 0/5] New version of beets Date: Wed, 01 Sep 2021 09:22:40 +0200
Hi Maxime! Maxime Devos <maximedevos <at> telenet.be> writes: > Simon Streit schreef op di 31-08-2021 om 22:49 [+0200]: >> Along the way, I noticed -- even with v1.4.9 -- beets would >> not find the fpcalc. Fpcalc is part of chromaprint and while this >> package is an optional dependency, I put it into propagated-inputs and >> solved this issue somehow. > > beets is probably searching for 'fpcalc' in $PATH, instead of using a string > like /gnu/store/.../bin/fpcalc. This can usually be resolved with substitute*, > to turn something like 'system("fpcalc --stuff")' into > 'system("/gnu/store/.../bin/fpcalc --stuff")' (that's for C code, the python > equivalent might be a little different). Thanks for pointing this out. I modified it and placed a wrapper so that beets can find chromaprint. ### Begin Patch ### gnu: beets: Update to 1.5.0. Remove beets-next, and remove patch. * gnu/packages/music.scm (beets): Update to 1.5.0. * gnu/packages/music.scm (beets-next): Delete variable. * gnu/packages/patches/beets-werkzeug-compat.patch: Delete patch. --- gnu/packages/music.scm | 120 ++++++------------ .../patches/beets-werkzeug-compat.patch | 18 --- 2 files changed, 42 insertions(+), 96 deletions(-) delete mode 100644 gnu/packages/patches/beets-werkzeug-compat.patch diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 63c6ac7d19..51e760e866 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3788,34 +3788,45 @@ websites such as Libre.fm.") (define-public beets (package (name "beets") - (version "1.4.9") + (version "1.5.0") (source (origin (method url-fetch) (uri (pypi-uri "beets" version)) - (patches (search-patches "beets-werkzeug-compat.patch")) (sha256 (base32 - "0m40rjimvfgy1dv04p8f8d5dvi2855v4ix99a9xr900cmcn476yj")))) + "0arl4nc3y8iwa331hf6ggai19y8ns9pl03g5d6ac857wq2x7nzw8")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - ;; Reported upstream: <https://github.com/beetbox/beets/issues/3771>. - ;; Disable the faulty test as the fix is unclear. + ;; Test fails. Reported upstream: + ;; https://github.com/beetbox/beets/issues/4037. (add-after 'unpack 'disable-failing-tests (lambda _ - (substitute* "test/test_mediafile.py" - (("def test_read_audio_properties") "def _test_read_audio_properties")) + (substitute* "test/test_zero.py" + (("def test_album_art") "def _test_album_art")) #t)) (add-after 'unpack 'set-HOME (lambda _ (setenv "HOME" (string-append (getcwd) "/tmp")) #t)) (replace 'check - (lambda _ - (invoke "nosetests" "-v"))) - ;; Wrap the executable, so it can find python-gi (aka pygobject) and - ;; gstreamer plugins. + (lambda _ (invoke "nosetests" "-v"))) + ;; Wrap the executable, so it can find chromaprint (fpcalc). + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (chromaprint (assoc-ref inputs "chromaprint"))) + (wrap-program (string-append out "/bin/beet") + `("XDG_DATA_DIRS" ":" prefix (,out)) + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin:" + dir "/sbin")) + (list chromaprint)))) + #t))) + ;; 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") @@ -3827,8 +3838,11 @@ websites such as Libre.fm.") `("GI_TYPELIB_PATH" ":" prefix (,types))) #t)))))) (native-inputs - `(("python-beautifulsoup4" ,python-beautifulsoup4) + `(("gobject-introspection" ,gobject-introspection) + ("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-confuse" ,python-confuse) ("python-flask" ,python-flask) + ("python-mediafile" ,python-mediafile) ("python-mock" ,python-mock) ("python-mpd2" ,python-mpd2) ("python-nose" ,python-nose) @@ -3839,83 +3853,33 @@ websites such as Libre.fm.") ("python-responses" ,python-responses))) ;; TODO: Install optional plugins and dependencies. (inputs - `(("python-discogs-client" ,python-discogs-client) + `(("bash-minimal" ,bash-minimal) + ("chromaprint" ,chromaprint) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("gstreamer" ,gstreamer) + ("opusfile" ,opusfile) + ("python-discogs-client" ,python-discogs-client) ("python-jellyfish" ,python-jellyfish) ("python-munkres" ,python-munkres) ("python-musicbrainzngs" ,python-musicbrainzngs) ("python-mutagen" ,python-mutagen) ("python-pyacoustid" ,python-pyacoustid) - ("python-pyyaml" ,python-pyyaml) - ("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))) + ("python-pyyaml" ,python-pyyaml) + ("python-reflink" ,python-reflink) + ("python-requests-oauthlib" ,python-requests-oauthlib) + ("python-unidecode" ,python-unidecode))) (home-page "https://beets.io") (synopsis "Music organizer") - (description "The purpose of beets is to get your music collection right - once and for all. It catalogs your collection, automatically improving its - metadata as it goes using the MusicBrainz database. Then it provides a variety - of tools for manipulating and accessing your music.") + (description "The purpose of beets is to get your music collection +right once and for all. It catalogs your collection, automatically +improving its metadata as it goes using the MusicBrainz database. +Then it provides a variety of tools for manipulating and accessing +your music.") (license license:expat))) -(define-public beets-next - (let ((commit "04ea754d00e2873ae9aa2d9e07c5cefd790eaee2") - (revision "1")) - (package - (inherit beets) - (name "beets-next") - (version (git-version (package-version beets) revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/beetbox/beets") - (commit commit))) - (file-name (git-file-name "beets" version)) - (sha256 - (base32 - "092a9sss2shhcjmpgbwvscv8brpm5970i5hddkhi81xcff3bg1h4")))) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; XXX: unclear why this fails - (add-after 'unpack 'disable-failing-tests - (lambda _ - (substitute* "test/test_zero.py" - (("def test_album_art") "def _test_album_art")) - #t)) - (add-after 'unpack 'set-HOME - (lambda _ - (setenv "HOME" (string-append (getcwd) "/tmp")) - #t)) - (replace 'check - (lambda _ - ;; Resources must be writable. - (for-each make-file-writable - (find-files "test/rsrc" ".")) - (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)))))) - (inputs - `(("python-confuse" ,python-confuse) - ("python-mediafile" ,python-mediafile) - ("python-reflink" ,python-reflink) - ("python-requests-oauthlib" ,python-requests-oauthlib) - ("opusfile" ,opusfile) - ,@(package-inputs beets)))))) - (define-public beets-bandcamp (package (name "beets-bandcamp") diff --git a/gnu/packages/patches/beets-werkzeug-compat.patch b/gnu/packages/patches/beets-werkzeug-compat.patch deleted file mode 100644 index 1a91c3a3f9..0000000000 --- a/gnu/packages/patches/beets-werkzeug-compat.patch +++ /dev/null @@ -1,18 +0,0 @@ -Be compatible with python-werkzeug 1.0.0. - -Taken from upstream: -https://github.com/beetbox/beets/commit/d43d54e21cde97f57f19486925ab56b419254cc8 - -diff --git a/beetsplug/web/__init__.py b/beetsplug/web/__init__.py -index f53fb3a954..21ff5d94ed 100644 ---- a/beetsplug/web/__init__.py -+++ b/beetsplug/web/__init__.py -@@ -169,7 +169,7 @@ def to_python(self, value): - return ids - - def to_url(self, value): -- return ','.join(value) -+ return ','.join(str(v) for v in value) - - - class QueryConverter(PathConverter): -- 2.33.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.