* [bug#50309] [PATCH 0/5] New version of beets @ 2021-08-31 20:49 Simon Streit 2021-08-29 18:51 ` [bug#50309] [PATCH 1/5] gnu: python-confuse: Update to 1.5.0 Simon Streit ` (5 more replies) 0 siblings, 6 replies; 10+ messages in thread From: Simon Streit @ 2021-08-31 20:49 UTC (permalink / raw) To: 50309 Hello! Here a little collection of patches to update beets. Beets-bandcamp is included in this series although it is not a dependency of beets. I merely stumbled across it being not up to date while checking version numbers. This update of beets has long been waited for. Hence there was another package (beets-next) with a more recent checkout so that it would be possible to have a more recent version than 1.4.9. With 1.5.0 I believe that we do not need beets-next anymore. Thus I removed it. It was also possible to remove some patches too. Now to beets. Since my skills with packaging are not quite advanced yet, I did try my best to modify the definition to accommodate the new version. 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. But I'm still not quite sure if the inputs are done in the right way? The inputs from “guix import pypi beets” look very different from the package definition that was laid out before. This suggestion from import would fail if I pushed it to my local repository and pulled. I left it as it is for the time being. Hope this is acceptable. Kind regards, Simon Simon Streit (5): gnu: python-confuse: Update to 1.5.0. gnu: python-pyacoustid: Update to 1.2.1. gnu: python-mediafile: Update to 0.7.0. gnu: beets-bandcamp: Update to 0.1.4. gnu: beets: Update to 1.5.0. gnu/packages/mp3.scm | 7 +- gnu/packages/music.scm | 119 ++++++------------ .../patches/beets-werkzeug-compat.patch | 18 --- .../patches/python-mediafile-wavpack.patch | 57 --------- gnu/packages/python-xyz.scm | 7 +- 5 files changed, 44 insertions(+), 164 deletions(-) delete mode 100644 gnu/packages/patches/beets-werkzeug-compat.patch delete mode 100644 gnu/packages/patches/python-mediafile-wavpack.patch -- 2.33.0 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 1/5] gnu: python-confuse: Update to 1.5.0. 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit @ 2021-08-29 18:51 ` Simon Streit 2021-08-29 18:57 ` [bug#50309] [PATCH 2/5] gnu: python-pyacoustid: Update to 1.2.1 Simon Streit ` (4 subsequent siblings) 5 siblings, 0 replies; 10+ messages in thread From: Simon Streit @ 2021-08-29 18:51 UTC (permalink / raw) To: 50309 * gnu/packages/python-xyz.scm (python-confuse): Update to 1.5.0. --- gnu/packages/python-xyz.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 59eb473857..b61b585713 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -106,6 +106,7 @@ ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr> ;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr> +;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25669,20 +25670,20 @@ Qt applications.") (define-public python-confuse (package (name "python-confuse") - (version "1.4.0") + (version "1.5.0") (source (origin (method url-fetch) (uri (pypi-uri "confuse" version)) (sha256 (base32 - "0r74djc8r6lfx6ldsqnhpvfsn256gsfzbl33qcm77hp2qr8h9z4j")))) + "0bh2kyj8wd7h9gg4nsvrbykl5ly0f70f0wi3fbm204b1f0fcmywj")))) (build-system python-build-system) (propagated-inputs `(("python-pathlib" ,python-pathlib) ("python-pyyaml" ,python-pyyaml))) (home-page "https://github.com/beetbox/confuse") - (synopsis "Painless YAML configuration.") + (synopsis "Painless YAML configuration") (description "Confuse is a configuration library for Python that uses YAML. It takes care of defaults, overrides, type checking, command-line integration, human-readable errors, and standard OS-specific locations.") -- 2.33.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 2/5] gnu: python-pyacoustid: Update to 1.2.1. 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit 2021-08-29 18:51 ` [bug#50309] [PATCH 1/5] gnu: python-confuse: Update to 1.5.0 Simon Streit @ 2021-08-29 18:57 ` Simon Streit 2021-08-29 19:05 ` [bug#50309] [PATCH 3/5] gnu: python-mediafile: Update to 0.7.0 Simon Streit ` (3 subsequent siblings) 5 siblings, 0 replies; 10+ messages in thread From: Simon Streit @ 2021-08-29 18:57 UTC (permalink / raw) To: 50309 * gnu/packages/mp3.scm (python-pyacoustid): Update to 1.2.1. --- gnu/packages/mp3.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 9de9055e51..2ad19e9e10 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -645,19 +646,19 @@ FFmpeg, etc.") (define-public python-pyacoustid (package (name "python-pyacoustid") - (version "1.1.7") + (version "1.2.1") (source (origin (method url-fetch) (uri (pypi-uri "pyacoustid" version)) (sha256 (base32 - "1zan6c22ca6sjy0g9ajwjp6mkzw7jv8r3n7jzska09a6x254lf87")))) + "115svv5mkz6lq4rzwpjgs61psprmbl7p0bwdfl4dbsn5zcljjaz6")))) (build-system python-build-system) (propagated-inputs `(("python-audioread" ,python-audioread) ("python-requests" ,python-requests))) - (home-page "https://github.com/sampsyo/pyacoustid") + (home-page "https://github.com/beetbox/pyacoustid") (synopsis "Bindings for Chromaprint acoustic fingerprinting") (description "This package provides bindings for the Chromaprint acoustic -- 2.33.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 3/5] gnu: python-mediafile: Update to 0.7.0. 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit 2021-08-29 18:51 ` [bug#50309] [PATCH 1/5] gnu: python-confuse: Update to 1.5.0 Simon Streit 2021-08-29 18:57 ` [bug#50309] [PATCH 2/5] gnu: python-pyacoustid: Update to 1.2.1 Simon Streit @ 2021-08-29 19:05 ` Simon Streit 2021-08-29 20:44 ` [bug#50309] [PATCH 4/5] gnu: beets-bandcamp: Update to 0.1.4 Simon Streit ` (2 subsequent siblings) 5 siblings, 0 replies; 10+ messages in thread From: Simon Streit @ 2021-08-29 19:05 UTC (permalink / raw) To: 50309 Remove patch. It is now included in upstream release. * gnu/packages/music.scm (python-mediafile): Update to 0.7.0. * gnu/packages/patches/python-mediafile-wavpack.patch: Delete patch. --- gnu/packages/music.scm | 7 ++- .../patches/python-mediafile-wavpack.patch | 57 ------------------- 2 files changed, 4 insertions(+), 60 deletions(-) delete mode 100644 gnu/packages/patches/python-mediafile-wavpack.patch diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index b95be813dc..c417e22804 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -41,6 +41,7 @@ ;;; Copyright © 2021 Rovanion Luckey <rovanion.luckey@gmail.com> ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3604,15 +3605,15 @@ streams on an individual packet/page level.") (define-public python-mediafile (package (name "python-mediafile") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) (uri (pypi-uri "mediafile" version)) - (patches (search-patches "python-mediafile-wavpack.patch")) + ;; (patches (search-patches "python-mediafile-wavpack.patch")) (sha256 (base32 - "0jmsp3f57xj35ayp8b6didk85nxgl3viw34s5px3l5dwgc055yx3")))) + "0fvxhiypf5qp1m9gzd0bik5wnfcm8sd7xivd02d6d0ml85qxwcwg")))) (build-system python-build-system) (propagated-inputs `(("python-mutagen" ,python-mutagen) diff --git a/gnu/packages/patches/python-mediafile-wavpack.patch b/gnu/packages/patches/python-mediafile-wavpack.patch deleted file mode 100644 index 9839fe87b5..0000000000 --- a/gnu/packages/patches/python-mediafile-wavpack.patch +++ /dev/null @@ -1,57 +0,0 @@ -This patch has already been applied upstream, but is not included in the -current release 0.6.0. - -From d2fc3b59f77c515b02dfe7ad936f89264375d2b4 Mon Sep 17 00:00:00 2001 -From: Adrian Sampson <adrian@radbox.org> -Date: Wed, 29 Jul 2020 19:42:57 -0400 -Subject: [PATCH] Fix test for WavPack bitrate - -Fixes #34. ---- - docs/index.rst | 5 +++++ - mediafile.py | 2 +- - test/test_mediafile.py | 2 +- - 3 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/docs/index.rst b/docs/index.rst -index 7b622df..1465405 100644 ---- a/docs/index.rst -+++ b/docs/index.rst -@@ -100,6 +100,11 @@ Internals - Changelog - --------- - -+v0.7.0 -+'''''' -+ -+- Mutagen 1.45.0 or later is now required. -+ - v0.6.0 - '''''' - -diff --git a/mediafile.py b/mediafile.py -index 23fadaf..9e9d063 100644 ---- a/mediafile.py -+++ b/mediafile.py -@@ -56,7 +56,7 @@ - import six - - --__version__ = '0.6.0' -+__version__ = '0.7.0' - __all__ = ['UnreadableFileError', 'FileTypeError', 'MediaFile'] - - log = logging.getLogger(__name__) -diff --git a/test/test_mediafile.py b/test/test_mediafile.py -index e9e1850..7f17f44 100644 ---- a/test/test_mediafile.py -+++ b/test/test_mediafile.py -@@ -907,7 +907,7 @@ class WavpackTest(ReadWriteTestBase, unittest.TestCase): - 'bitrate': 109312, - 'format': u'WavPack', - 'samplerate': 44100, -- 'bitdepth': 0, -+ 'bitdepth': 16, - 'channels': 1, - } - -- 2.33.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 4/5] gnu: beets-bandcamp: Update to 0.1.4. 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit ` (2 preceding siblings ...) 2021-08-29 19:05 ` [bug#50309] [PATCH 3/5] gnu: python-mediafile: Update to 0.7.0 Simon Streit @ 2021-08-29 20:44 ` Simon Streit 2021-08-31 20:11 ` [bug#50309] [PATCH 5/5] gnu: beets: Update to 1.5.0 Simon Streit 2021-08-31 21:48 ` [bug#50309] [PATCH 0/5] New version of beets Maxime Devos 5 siblings, 0 replies; 10+ messages in thread From: Simon Streit @ 2021-08-29 20:44 UTC (permalink / raw) To: 50309 * gnu/packages/music.scm (beets-bandcamp): Update to 0.1.4. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c417e22804..63c6ac7d19 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3919,13 +3919,13 @@ websites such as Libre.fm.") (define-public beets-bandcamp (package (name "beets-bandcamp") - (version "0.1.3") + (version "0.1.4") (source (origin (method url-fetch) (uri (pypi-uri "beets-bandcamp" version)) (sha256 (base32 - "04awg0zdhhg5h510fc1p3qkvr2l1qm6nf85hlr9z8im8a7xlka0i")))) + "0dwbdkrb9c0ppzm5s78h47ndpr88cw1k0z8fgfhkl706wazx2ddg")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; there are no tests (propagated-inputs -- 2.33.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 5/5] gnu: beets: Update to 1.5.0. 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit ` (3 preceding siblings ...) 2021-08-29 20:44 ` [bug#50309] [PATCH 4/5] gnu: beets-bandcamp: Update to 0.1.4 Simon Streit @ 2021-08-31 20:11 ` Simon Streit 2021-08-31 21:48 ` [bug#50309] [PATCH 0/5] New version of beets Maxime Devos 5 siblings, 0 replies; 10+ messages in thread From: Simon Streit @ 2021-08-31 20:11 UTC (permalink / raw) To: 50309 * 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 | 108 +++++------------- .../patches/beets-werkzeug-compat.patch | 18 --- 2 files changed, 30 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..8158a40e49 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3788,34 +3788,32 @@ 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 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") @@ -3826,9 +3824,14 @@ websites such as Libre.fm.") `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,plugins)) `("GI_TYPELIB_PATH" ":" prefix (,types))) #t)))))) + (propagated-inputs + `(("chromaprint" ,chromaprint))) (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 +3842,32 @@ 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) + ("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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 0/5] New version of beets 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit ` (4 preceding siblings ...) 2021-08-31 20:11 ` [bug#50309] [PATCH 5/5] gnu: beets: Update to 1.5.0 Simon Streit @ 2021-08-31 21:48 ` Maxime Devos 2021-09-01 7:22 ` Simon Streit 5 siblings, 1 reply; 10+ messages in thread From: Maxime Devos @ 2021-08-31 21:48 UTC (permalink / raw) To: Simon Streit, 50309 [-- Attachment #1: Type: text/plain, Size: 678 bytes --] Simon Streit schreef op di 31-08-2021 om 22:49 [+0200]: > Now to beets. [...] > 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). Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 0/5] New version of beets 2021-08-31 21:48 ` [bug#50309] [PATCH 0/5] New version of beets Maxime Devos @ 2021-09-01 7:22 ` Simon Streit 2021-09-02 7:58 ` Lars-Dominik Braun 0 siblings, 1 reply; 10+ messages in thread From: Simon Streit @ 2021-09-01 7:22 UTC (permalink / raw) To: Maxime Devos; +Cc: 50309 Hi Maxime! Maxime Devos <maximedevos@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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#50309] [PATCH 0/5] New version of beets 2021-09-01 7:22 ` Simon Streit @ 2021-09-02 7:58 ` Lars-Dominik Braun [not found] ` <ygu8s0d7dva.fsf@netpanic.org> 0 siblings, 1 reply; 10+ messages in thread From: Lars-Dominik Braun @ 2021-09-02 7:58 UTC (permalink / raw) To: Simon Streit; +Cc: 50309, Maxime Devos Hi Simon, > Thanks for pointing this out. I modified it and placed a wrapper so > that beets can find chromaprint. this is not a proper solution unfortunately, because beets itself is not looking for fpcalc, but the package python-pyacoustid. I’m currently checking your patchset and upgrading beets, but some of beets’ dependencies are in a bad shape (like python-pyacoustid) and need more than just version bumps. I’ll fix these and push everything when I’m done. Cheers, Lars ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <ygu8s0d7dva.fsf@netpanic.org>]
* bug#50309: [PATCH 0/5] New version of beets [not found] ` <ygu8s0d7dva.fsf@netpanic.org> @ 2021-09-04 13:10 ` Lars-Dominik Braun 0 siblings, 0 replies; 10+ messages in thread From: Lars-Dominik Braun @ 2021-09-04 13:10 UTC (permalink / raw) To: Simon Streit; +Cc: 50309-done Hi, I pushed pushed this patch set with modifications and additions as 8ceb7651c2aff73644a49c1d72fe8b63948f0240 and following. Cheers, Lars ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-09-04 13:11 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-08-31 20:49 [bug#50309] [PATCH 0/5] New version of beets Simon Streit 2021-08-29 18:51 ` [bug#50309] [PATCH 1/5] gnu: python-confuse: Update to 1.5.0 Simon Streit 2021-08-29 18:57 ` [bug#50309] [PATCH 2/5] gnu: python-pyacoustid: Update to 1.2.1 Simon Streit 2021-08-29 19:05 ` [bug#50309] [PATCH 3/5] gnu: python-mediafile: Update to 0.7.0 Simon Streit 2021-08-29 20:44 ` [bug#50309] [PATCH 4/5] gnu: beets-bandcamp: Update to 0.1.4 Simon Streit 2021-08-31 20:11 ` [bug#50309] [PATCH 5/5] gnu: beets: Update to 1.5.0 Simon Streit 2021-08-31 21:48 ` [bug#50309] [PATCH 0/5] New version of beets Maxime Devos 2021-09-01 7:22 ` Simon Streit 2021-09-02 7:58 ` Lars-Dominik Braun [not found] ` <ygu8s0d7dva.fsf@netpanic.org> 2021-09-04 13:10 ` bug#50309: " Lars-Dominik Braun
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).