diff options
Diffstat (limited to 'media-sound/beets')
-rw-r--r-- | media-sound/beets/Manifest | 8 | ||||
-rw-r--r-- | media-sound/beets/beets-1.4.9-r3.ebuild (renamed from media-sound/beets/beets-1.4.9-r2.ebuild) | 146 | ||||
-rw-r--r-- | media-sound/beets/beets-9999.ebuild | 145 | ||||
-rw-r--r-- | media-sound/beets/files/1.4.9-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch | 53 | ||||
-rw-r--r-- | media-sound/beets/files/1.4.9-0002-Disable-test_completion.patch | 74 | ||||
-rw-r--r-- | media-sound/beets/metadata.xml | 5 |
6 files changed, 270 insertions, 161 deletions
diff --git a/media-sound/beets/Manifest b/media-sound/beets/Manifest index 5455e672b0b9..cb90e8d8b0ce 100644 --- a/media-sound/beets/Manifest +++ b/media-sound/beets/Manifest @@ -1,4 +1,6 @@ +AUX 1.4.9-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch 2123 BLAKE2B fea2eb593c8be68d3cd336a4bf56346c777ba651fdb98cfe6f9063a087428ce2749793ec61f109b2fea40dd8cc44ceb19b97d308c4c69c267b2993836b2b7ae6 SHA512 bf3ef299d66e7db79fcc0f7c4cd5abfbb041e6cea4bf06f02e498d3edf7495cd92f01191865af6a5bb40b064f0659d5cf80df7a42d14976e3e963ab94e113bdd +AUX 1.4.9-0002-Disable-test_completion.patch 2879 BLAKE2B 7f1b21d92ec93e3a2606a4c3146b0e6fe343d4a437dfdb13aa60e0bbbf59f2959fee39f4d5bdb620fe57670e01a0963ad9eea3cf0309b3ea516e0931e9383c19 SHA512 2f6b5636ad3a16e70438fd2c1b62952416225dcc9acca686b1dc19ba4c2c5dbed4807f3f597e212d23ddf12de0fb0f315729da9ca86fbbc6766f4840dc83a524 DIST beets-1.4.9.tar.gz 1494459 BLAKE2B 2daf77caf395143813c8b288fc376b5aec01d49281d40ba5942daf9941891146d698a1517ced958e480c6f253eadb6a7e09029e079c97e6cc17d44ac18fa0e7b SHA512 616bad4ca3ecdd05d2f59846fd67215f476ce89cc34d63bc6351efcbaf1e33e5ca783cb8a716e8597b56a7e08e6a6dc15e64b51e89dd786bfb6c5d847f66de5a -EBUILD beets-1.4.9-r2.ebuild 4825 BLAKE2B 0c33fb87a1c6aa41b1d8ced8aacfb103ab838b39c8718d7f85ae8571d906c22fed3e5362a322009a7483e08bd742a30265ccfd1c346674f32eeccd8253661bbb SHA512 8dc35097441730c9be57364488b9ce7e09e7b8e516d2863888e2cc6805336bff6d0f744ec2bd80150e605513fbd9dfb0ed9050eee730ecaa128f2d6f71e0726f -EBUILD beets-9999.ebuild 4939 BLAKE2B e2cd86d2abf9a8ada1e1421c62199b91ee10eae10f6bc4d35c780b07aa9a8d483863eb4dabbed79c8728c744ecb0a3acf6a9e3cd2073ad8f8bfc5da069678c1e SHA512 6f436b1e1487d07069f4d5a198c9671f1a20c482837ecff8ed6203f095c931ac319fc39aa7d92f5cb0057d09bfa3d22a3250508b02f03d074378a50329868986 -MISC metadata.xml 2696 BLAKE2B 7b78276fdc266ce63a0a89b6234119b01dd8bc39509610e66310683a5f3ad862a598f33243c699eed4ce56bb06630793e8920dc3651c771127ecbeb3b52ed9f4 SHA512 cba68bb5facea99bab3e50051f60c51a4ecb9200324925c7a4bbdaf9b7574c27db29b63ae88db1224240ebe33231565fab658196e199ea7a10c95ff8fc80ed5f +EBUILD beets-1.4.9-r3.ebuild 4457 BLAKE2B ccb615ef9433434664715bc7fc0fa53d2acc83f490265f290fb39f9bb095abb6d0b28d1f3a989da7664297374351017500f7112aa94d910fd99d4320f10d1e85 SHA512 6ea2c348d84668cd897534a21f0265dd81af57c8b7d40aaa4fd2896cd55614f8eeee876af4ada7872c57bfcc964b0d8c6fcedf1410e61f36756a5b79cae146c3 +EBUILD beets-9999.ebuild 4457 BLAKE2B ccb615ef9433434664715bc7fc0fa53d2acc83f490265f290fb39f9bb095abb6d0b28d1f3a989da7664297374351017500f7112aa94d910fd99d4320f10d1e85 SHA512 6ea2c348d84668cd897534a21f0265dd81af57c8b7d40aaa4fd2896cd55614f8eeee876af4ada7872c57bfcc964b0d8c6fcedf1410e61f36756a5b79cae146c3 +MISC metadata.xml 2993 BLAKE2B f46b84984f6cfce8b0ce3e2589e127a5febe2536ae75eb4d7527c99cbf2bba6e155ecd4df3fd5b5348dae524287c8b542885a69a7b1790303352076ea29022c3 SHA512 28dc8f6044ccf6ceced2e9f29c1c4faba9bcaddff0608b1e3f8e14c612fac975c89bfbfe4368a6ff8e6f1f0ca2fbc2edbb25f8e7e1e7a2b1e3cf790587f39a4e diff --git a/media-sound/beets/beets-1.4.9-r2.ebuild b/media-sound/beets/beets-1.4.9-r3.ebuild index 6fa58e40129d..d07f7f6efe20 100644 --- a/media-sound/beets/beets-1.4.9-r2.ebuild +++ b/media-sound/beets/beets-1.4.9-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -22,33 +22,23 @@ else fi DESCRIPTION="Media library management system for obsessive-compulsive music geeks" -HOMEPAGE="http://beets.io/ https://pypi.org/project/beets/" +HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/" LICENSE="MIT" SLOT="0" -IUSE="badfiles chromaprint discogs doc ffmpeg gstreamer icu lastfm mpd replaygain test thumbnail webserver" +IUSE="badfiles chromaprint cors discogs doc ffmpeg gstreamer icu lastfm mpd replaygain test thumbnail webserver" -RDEPEND="${DEPEND}" -DEPEND=" +RDEPEND=" $(python_gen_cond_dep ' - test? ( - dev-python/wheel[${PYTHON_MULTI_USEDEP}] - dev-python/beautifulsoup[${PYTHON_MULTI_USEDEP}] - dev-python/flask[${PYTHON_MULTI_USEDEP}] - dev-python/mock[${PYTHON_MULTI_USEDEP}] - dev-python/rarfile[${PYTHON_MULTI_USEDEP}] - dev-python/responses[${PYTHON_MULTI_USEDEP}] - dev-python/pyxdg[${PYTHON_MULTI_USEDEP}] - ) >=dev-python/jellyfish-0.7.1[${PYTHON_MULTI_USEDEP}] dev-python/munkres[${PYTHON_MULTI_USEDEP}] + >=media-libs/mutagen-1.33[${PYTHON_MULTI_USEDEP}] >=dev-python/python-musicbrainz-ngs-0.4[${PYTHON_MULTI_USEDEP}] dev-python/pyyaml[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] dev-python/requests-oauthlib[${PYTHON_MULTI_USEDEP}] + dev-python/requests[${PYTHON_MULTI_USEDEP}] >=dev-python/six-1.9[${PYTHON_MULTI_USEDEP}] dev-python/unidecode[${PYTHON_MULTI_USEDEP}] - >=media-libs/mutagen-1.33[${PYTHON_MULTI_USEDEP}] badfiles? ( media-libs/flac media-sound/mp3val @@ -57,14 +47,22 @@ DEPEND=" dev-python/pyacoustid[${PYTHON_MULTI_USEDEP}] media-libs/chromaprint[tools] ) - discogs? ( dev-python/discogs-client[${PYTHON_MULTI_USEDEP}] ) - ffmpeg? ( media-video/ffmpeg:0[encode] ) + discogs? ( + dev-python/discogs-client[${PYTHON_MULTI_USEDEP}] + ) + ffmpeg? ( + media-video/ffmpeg:0[encode] + ) gstreamer? ( - media-libs/gst-plugins-good:1.0 media-libs/gst-plugins-bad:1.0 + media-libs/gst-plugins-good:1.0 + ) + icu? ( + dev-db/sqlite[icu] + ) + lastfm? ( + dev-python/pylast[${PYTHON_MULTI_USEDEP}] ) - icu? ( dev-db/sqlite[icu] ) - lastfm? ( dev-python/pylast[${PYTHON_MULTI_USEDEP}] ) mpd? ( dev-python/bluelet[${PYTHON_MULTI_USEDEP}] dev-python/python-mpd[${PYTHON_MULTI_USEDEP}] @@ -85,10 +83,34 @@ DEPEND=" ) webserver? ( dev-python/flask[${PYTHON_MULTI_USEDEP}] - dev-python/flask-cors[${PYTHON_MULTI_USEDEP}] + cors? ( + dev-python/flask-cors[${PYTHON_MULTI_USEDEP}] + ) + ) + ')" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + doc? ( + dev-python/sphinx + ) + $(python_gen_cond_dep ' + test? ( + dev-python/beautifulsoup[${PYTHON_MULTI_USEDEP}] + dev-python/flask[${PYTHON_MULTI_USEDEP}] + dev-python/mock[${PYTHON_MULTI_USEDEP}] + dev-python/pyxdg[${PYTHON_MULTI_USEDEP}] + dev-python/rarfile[${PYTHON_MULTI_USEDEP}] + dev-python/responses[${PYTHON_MULTI_USEDEP}] + dev-python/wheel[${PYTHON_MULTI_USEDEP}] ) ')" -BDEPEND="dev-python/sphinx" + +PATCHES=( + "${FILESDIR}/${PV}-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch" + "${FILESDIR}/${PV}-0002-Disable-test_completion.patch" +) DOCS=( README.rst docs/changelog.rst ) @@ -97,76 +119,44 @@ distutils_enable_tests pytest python_prepare_all() { distutils-r1_python_prepare_all - rm_use_plugins() { - [[ -n "${1}" ]] || die "rm_use_plugins: No use option given" - local use=${1} - local plugins=${use} - use ${use} && return - einfo "no ${use}:" - [[ $# -gt 1 ]] && plugins="${@:2}" - for arg in ${plugins[@]}; do - einfo " removing ${arg}" - if [[ -e "beetsplug/${arg}.py" ]]; then - rm beetsplug/${arg}.py || die "Unable to remove ${arg} plugin" - fi - if [[ -d "beetsplug/${arg}" ]]; then - rm -r beetsplug/${arg} || die "Unable to remove ${arg} plugin" - fi - sed -e "s:'beetsplug.${arg}',::" -i setup.py || \ - die "Unable to disable ${arg} plugin " - done - } - - rm_use_plugins chromaprint chroma - rm_use_plugins ffmpeg convert - rm_use_plugins icu loadext - rm_use_plugins lastfm lastgenre lastimport - rm_use_plugins mpd bpd mpdstats - rm_use_plugins webserver web - rm_use_plugins thumbnail thumbnails - - # remove plugins that do not have appropriate dependencies installed - for flag in badfiles discogs replaygain; do - rm_use_plugins ${flag} - done - + rm test/test_art.py || die "Failed to remove test_art.py" + rm test/test_discogs.py || die "Failed to remove test_discogs.py" + rm test/test_embyupdate.py || die "Failed to remove test_embyupdate.py" + rm test/test_lastgenre.py || die "Failed to remove test_lastgenre.py" + rm test/test_spotify.py || die "Failed to remove test_spotify.py" + # Not working and dropped in master + rm test/test_mediafile.py || die "Failed to remove test_mediafile.py" + if ! use ffmpeg; then + rm test/test_convert.py || die "Failed to remove test_convert.py" + fi if ! use mpd; then - rm test/test_player.py || die - rm test/test_mpdstats.py || die + rm test/test_player.py || die "Failed to remove test_player.py" + rm test/test_mpdstats.py || die "Failed to remove test_mpdstats.py" + fi + if ! use replaygain; then + rm test/test_replaygain.py || die "Failed to remove test_replaygain.py" + fi + if ! use thumbnail; then + rm test/test_thumbnails.py || die "Failed to remove test_thumbnails.py" fi if ! use webserver; then rm test/test_web.py || die "Failed to remove test_web.py" fi - if use test; then - # Those test need network - rm test/test_art.py || die - rm test/test_discogs.py || die - rm test/test_embyupdate.py || die - rm test/test_lastgenre.py || die - rm test/test_spotify.py || die - # rm test/test_plexupdate.py - rm test/test_thumbnails.py || die - # Not working - rm test/test_replaygain.py || die - # Not working - rm test/test_convert.py || die - # Not working and dropped in master - rm test/test_mediafile.py || die - fi } python_compile_all() { - esetup.py build_sphinx -b man --build-dir=docs/build use doc && esetup.py build_sphinx -b html --build-dir=docs/build } python_install_all() { distutils-r1_python_install_all - doman docs/build/man/* + doman man/* use doc && local HTML_DOCS=( docs/build/html/. ) einstalldocs - "${D}$(python_get_scriptdir)/beet" completion > "${T}/beet.bashcomp" - newbashcomp "${T}/beet.bashcomp" beet + ${PYTHON} "${ED}/usr/bin/beet" completion > "${T}/beet.bash" || die + newbashcomp "${T}/beet.bash" beet + insinto /usr/share/zsh/site-functions + newins "${WORKDIR}/${P}/extra/_beet" _beet } diff --git a/media-sound/beets/beets-9999.ebuild b/media-sound/beets/beets-9999.ebuild index 01d7ec3b1be1..d07f7f6efe20 100644 --- a/media-sound/beets/beets-9999.ebuild +++ b/media-sound/beets/beets-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -6,6 +6,7 @@ EAPI=7 DISTUTILS_SINGLE_IMPL=1 PYTHON_COMPAT=( python3_{6,7,8} ) PYTHON_REQ_USE="sqlite" +DISTUTILS_USE_SETUPTOOLS=rdepend inherit distutils-r1 bash-completion-r1 @@ -21,36 +22,23 @@ else fi DESCRIPTION="Media library management system for obsessive-compulsive music geeks" -HOMEPAGE="http://beets.io/ https://pypi.org/project/beets/" +HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/" LICENSE="MIT" SLOT="0" -IUSE="badfiles chromaprint discogs doc ffmpeg gstreamer icu lastfm mpd replaygain test thumbnail webserver" +IUSE="badfiles chromaprint cors discogs doc ffmpeg gstreamer icu lastfm mpd replaygain test thumbnail webserver" -RDEPEND="${DEPEND}" -DEPEND=" +RDEPEND=" $(python_gen_cond_dep ' - test? ( - dev-python/wheel[${PYTHON_MULTI_USEDEP}] - dev-python/beautifulsoup[${PYTHON_MULTI_USEDEP}] - dev-python/flask[${PYTHON_MULTI_USEDEP}] - dev-python/mock[${PYTHON_MULTI_USEDEP}] - dev-python/rarfile[${PYTHON_MULTI_USEDEP}] - dev-python/responses[${PYTHON_MULTI_USEDEP}] - dev-python/pyxdg[${PYTHON_MULTI_USEDEP}] - dev-python/requests-oauthlib[${PYTHON_MULTI_USEDEP}] - ) >=dev-python/jellyfish-0.7.1[${PYTHON_MULTI_USEDEP}] dev-python/munkres[${PYTHON_MULTI_USEDEP}] + >=media-libs/mutagen-1.33[${PYTHON_MULTI_USEDEP}] >=dev-python/python-musicbrainz-ngs-0.4[${PYTHON_MULTI_USEDEP}] dev-python/pyyaml[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] dev-python/requests-oauthlib[${PYTHON_MULTI_USEDEP}] + dev-python/requests[${PYTHON_MULTI_USEDEP}] >=dev-python/six-1.9[${PYTHON_MULTI_USEDEP}] dev-python/unidecode[${PYTHON_MULTI_USEDEP}] - >=media-libs/mutagen-1.33[${PYTHON_MULTI_USEDEP}] - >=dev-python/confuse-1.0.0[${PYTHON_MULTI_USEDEP}] - >=dev-python/mediafile-0.2.0[${PYTHON_MULTI_USEDEP}] badfiles? ( media-libs/flac media-sound/mp3val @@ -59,14 +47,22 @@ DEPEND=" dev-python/pyacoustid[${PYTHON_MULTI_USEDEP}] media-libs/chromaprint[tools] ) - discogs? ( dev-python/discogs-client[${PYTHON_MULTI_USEDEP}] ) - ffmpeg? ( media-video/ffmpeg:0[encode] ) + discogs? ( + dev-python/discogs-client[${PYTHON_MULTI_USEDEP}] + ) + ffmpeg? ( + media-video/ffmpeg:0[encode] + ) gstreamer? ( - media-libs/gst-plugins-good:1.0 media-libs/gst-plugins-bad:1.0 + media-libs/gst-plugins-good:1.0 + ) + icu? ( + dev-db/sqlite[icu] + ) + lastfm? ( + dev-python/pylast[${PYTHON_MULTI_USEDEP}] ) - icu? ( dev-db/sqlite[icu] ) - lastfm? ( dev-python/pylast[${PYTHON_MULTI_USEDEP}] ) mpd? ( dev-python/bluelet[${PYTHON_MULTI_USEDEP}] dev-python/python-mpd[${PYTHON_MULTI_USEDEP}] @@ -87,14 +83,35 @@ DEPEND=" ) webserver? ( dev-python/flask[${PYTHON_MULTI_USEDEP}] - dev-python/flask-cors[${PYTHON_MULTI_USEDEP}] + cors? ( + dev-python/flask-cors[${PYTHON_MULTI_USEDEP}] + ) ) ')" +DEPEND=" + ${RDEPEND} +" BDEPEND=" + doc? ( + dev-python/sphinx + ) $(python_gen_cond_dep ' - dev-python/sphinx[${PYTHON_MULTI_USEDEP}] + test? ( + dev-python/beautifulsoup[${PYTHON_MULTI_USEDEP}] + dev-python/flask[${PYTHON_MULTI_USEDEP}] + dev-python/mock[${PYTHON_MULTI_USEDEP}] + dev-python/pyxdg[${PYTHON_MULTI_USEDEP}] + dev-python/rarfile[${PYTHON_MULTI_USEDEP}] + dev-python/responses[${PYTHON_MULTI_USEDEP}] + dev-python/wheel[${PYTHON_MULTI_USEDEP}] + ) ')" +PATCHES=( + "${FILESDIR}/${PV}-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch" + "${FILESDIR}/${PV}-0002-Disable-test_completion.patch" +) + DOCS=( README.rst docs/changelog.rst ) distutils_enable_tests pytest @@ -102,74 +119,44 @@ distutils_enable_tests pytest python_prepare_all() { distutils-r1_python_prepare_all - rm_use_plugins() { - [[ -n "${1}" ]] || die "rm_use_plugins: No use option given" - local use=${1} - local plugins=${use} - use ${use} && return - einfo "no ${use}:" - [[ $# -gt 1 ]] && plugins="${@:2}" - for arg in ${plugins[@]}; do - einfo " removing ${arg}" - if [[ -e "beetsplug/${arg}.py" ]]; then - rm beetsplug/${arg}.py || die "Unable to remove ${arg} plugin" - fi - if [[ -d "beetsplug/${arg}" ]]; then - rm -r beetsplug/${arg} || die "Unable to remove ${arg} plugin" - fi - sed -e "s:'beetsplug.${arg}',::" -i setup.py || \ - die "Unable to disable ${arg} plugin " - done - } - - rm_use_plugins chromaprint chroma - rm_use_plugins ffmpeg convert - rm_use_plugins icu loadext - rm_use_plugins lastfm lastgenre lastimport - rm_use_plugins mpd bpd mpdstats - rm_use_plugins webserver web - rm_use_plugins thumbnail thumbnails - - # remove plugins that do not have appropriate dependencies installed - for flag in badfiles discogs replaygain; do - rm_use_plugins ${flag} - done - + rm test/test_art.py || die "Failed to remove test_art.py" + rm test/test_discogs.py || die "Failed to remove test_discogs.py" + rm test/test_embyupdate.py || die "Failed to remove test_embyupdate.py" + rm test/test_lastgenre.py || die "Failed to remove test_lastgenre.py" + rm test/test_spotify.py || die "Failed to remove test_spotify.py" + # Not working and dropped in master + rm test/test_mediafile.py || die "Failed to remove test_mediafile.py" + if ! use ffmpeg; then + rm test/test_convert.py || die "Failed to remove test_convert.py" + fi if ! use mpd; then - rm test/test_player.py || die - rm test/test_mpdstats.py || die + rm test/test_player.py || die "Failed to remove test_player.py" + rm test/test_mpdstats.py || die "Failed to remove test_mpdstats.py" + fi + if ! use replaygain; then + rm test/test_replaygain.py || die "Failed to remove test_replaygain.py" + fi + if ! use thumbnail; then + rm test/test_thumbnails.py || die "Failed to remove test_thumbnails.py" fi if ! use webserver; then rm test/test_web.py || die "Failed to remove test_web.py" fi - if use test; then - # Those test need network - rm test/test_art.py || die - rm test/test_discogs.py || die - rm test/test_embyupdate.py || die - rm test/test_lastgenre.py || die - rm test/test_spotify.py || die - # rm test/test_plexupdate.py - rm test/test_thumbnails.py || die - # Not working - rm test/test_replaygain.py || die - # Not working - rm test/test_convert.py || die - fi } python_compile_all() { - esetup.py build_sphinx -b man --build-dir=docs/build use doc && esetup.py build_sphinx -b html --build-dir=docs/build } python_install_all() { distutils-r1_python_install_all - doman docs/build/man/* + doman man/* use doc && local HTML_DOCS=( docs/build/html/. ) einstalldocs - "${D}$(python_get_scriptdir)/beet" completion > "${T}/beet.bashcomp" - newbashcomp "${T}/beet.bashcomp" beet + ${PYTHON} "${ED}/usr/bin/beet" completion > "${T}/beet.bash" || die + newbashcomp "${T}/beet.bash" beet + insinto /usr/share/zsh/site-functions + newins "${WORKDIR}/${P}/extra/_beet" _beet } diff --git a/media-sound/beets/files/1.4.9-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch b/media-sound/beets/files/1.4.9-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch new file mode 100644 index 000000000000..f9268b17ca64 --- /dev/null +++ b/media-sound/beets/files/1.4.9-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch @@ -0,0 +1,53 @@ +From 86af366abab51b45ad1b06d330d384bc810e45c9 Mon Sep 17 00:00:00 2001 +From: wisp3rwind <17089248+wisp3rwind@users.noreply.github.com> +Date: Tue, 9 Jun 2020 19:34:31 +0200 +Subject: [PATCH] compatibility with breaking changes to the ast module + +new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649 +In fact, our generation of some Literals has been invalid since Python +3.4, fix that too. +--- + beets/util/functemplate.py | 29 ++-- + docs/changelog.rst | 275 ++++++++++++++++++++++++++++++++++++- + 2 files changed, 294 insertions(+), 10 deletions(-) + +diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py +index af22b790..266534a9 100644 +--- a/beets/util/functemplate.py ++++ b/beets/util/functemplate.py +@@ -73,15 +73,26 @@ def ex_literal(val): + """An int, float, long, bool, string, or None literal with the given + value. + """ +- if val is None: +- return ast.Name('None', ast.Load()) +- elif isinstance(val, six.integer_types): +- return ast.Num(val) +- elif isinstance(val, bool): +- return ast.Name(bytes(val), ast.Load()) +- elif isinstance(val, six.string_types): +- return ast.Str(val) +- raise TypeError(u'no literal for {0}'.format(type(val))) ++ if sys.version_info[:2] < (3, 4): ++ if val is None: ++ return ast.Name('None', ast.Load()) ++ elif isinstance(val, six.integer_types): ++ return ast.Num(val) ++ elif isinstance(val, bool): ++ return ast.Name(bytes(val), ast.Load()) ++ elif isinstance(val, six.string_types): ++ return ast.Str(val) ++ raise TypeError(u'no literal for {0}'.format(type(val))) ++ elif sys.version_info[:2] < (3, 6): ++ if val in [None, True, False]: ++ return ast.NameConstant(val) ++ elif isinstance(val, six.integer_types): ++ return ast.Num(val) ++ elif isinstance(val, six.string_types): ++ return ast.Str(val) ++ raise TypeError(u'no literal for {0}'.format(type(val))) ++ else: ++ return ast.Constant(val) + + + def ex_varassign(name, expr): diff --git a/media-sound/beets/files/1.4.9-0002-Disable-test_completion.patch b/media-sound/beets/files/1.4.9-0002-Disable-test_completion.patch new file mode 100644 index 000000000000..c60e24d65898 --- /dev/null +++ b/media-sound/beets/files/1.4.9-0002-Disable-test_completion.patch @@ -0,0 +1,74 @@ +From f6258c2ff3f3f979d72c149e44f4eecb02cb10a2 Mon Sep 17 00:00:00 2001 +From: Guillaume Seren <guillaumeseren@gmail.com> +Date: Tue, 29 Sep 2020 16:46:06 +0200 +Subject: [PATCH] Disable test_completion + +Know issue by upstream https://github.com/beetbox/beets/issues/1876 +--- + test/test_ui.py | 50 ------------------------------------------------- + 1 file changed, 50 deletions(-) + +diff --git a/test/test_ui.py b/test/test_ui.py +index 8267c9be..bcb6c3bf 100644 +--- a/test/test_ui.py ++++ b/test/test_ui.py +@@ -1167,56 +1167,6 @@ class PluginTest(_common.TestCase, TestHelper): + self.run_command('test', lib=None) + + +-@_common.slow_test() +-class CompletionTest(_common.TestCase, TestHelper): +- def test_completion(self): +- # Load plugin commands +- config['pluginpath'] = [_common.PLUGINPATH] +- config['plugins'] = ['test'] +- +- # Do not load any other bash completion scripts on the system. +- env = dict(os.environ) +- env['BASH_COMPLETION_DIR'] = os.devnull +- env['BASH_COMPLETION_COMPAT_DIR'] = os.devnull +- +- # Open a `bash` process to run the tests in. We'll pipe in bash +- # commands via stdin. +- cmd = os.environ.get('BEETS_TEST_SHELL', '/bin/bash --norc').split() +- if not has_program(cmd[0]): +- self.skipTest(u'bash not available') +- tester = subprocess.Popen(cmd, stdin=subprocess.PIPE, +- stdout=subprocess.PIPE, env=env) +- +- # Load bash_completion library. +- for path in commands.BASH_COMPLETION_PATHS: +- if os.path.exists(util.syspath(path)): +- bash_completion = path +- break +- else: +- self.skipTest(u'bash-completion script not found') +- try: +- with open(util.syspath(bash_completion), 'rb') as f: +- tester.stdin.writelines(f) +- except IOError: +- self.skipTest(u'could not read bash-completion script') +- +- # Load completion script. +- self.io.install() +- self.run_command('completion', lib=None) +- completion_script = self.io.getoutput().encode('utf-8') +- self.io.restore() +- tester.stdin.writelines(completion_script.splitlines(True)) +- +- # Load test suite. +- test_script_name = os.path.join(_common.RSRC, b'test_completion.sh') +- with open(test_script_name, 'rb') as test_script_file: +- tester.stdin.writelines(test_script_file) +- out, err = tester.communicate() +- if tester.returncode != 0 or out != b'completion tests passed\n': +- print(out.decode('utf-8')) +- self.fail(u'test/test_completion.sh did not execute properly') +- +- + class CommonOptionsParserCliTest(unittest.TestCase, TestHelper): + """Test CommonOptionsParser and formatting LibModel formatting on 'list' + command. +-- +2.26.2 + diff --git a/media-sound/beets/metadata.xml b/media-sound/beets/metadata.xml index 544682635755..421001fc2f49 100644 --- a/media-sound/beets/metadata.xml +++ b/media-sound/beets/metadata.xml @@ -34,8 +34,11 @@ <use> <flag name="badfiles">Validate MP3 & FLAC files</flag> <flag name="chromaprint">Enable support for acoustic fingerprinting plugin using <pkg>media-libs/chromaprint</pkg></flag> - <flag name="ffmpeg">Enable support for the convert plugin to transcode files via <pkg>media-video/ffmpeg</pkg></flag> + <flag name="cors">Enable cors support for the webserver <pkg>dev-python/flask-cors</pkg></flag> <flag name="discogs">Enable support for the discogs API plugin</flag> + <flag name="ffmpeg">Enable support for the convert plugin to transcode files via <pkg>media-video/ffmpeg</pkg></flag> + <flag name="gstreamer">Enable support for the gstreamer backend</flag> + <flag name="icu">Enable support for the icu plugin to support non-ASCII characters in <pkg>dev-db/sqlite</pkg></flag> <flag name="lastfm">Enable support for importing personal last.fm playcounts and music genres from last.fm tags</flag> <flag name="mpd">Enable support for <pkg>media-sound/mpd</pkg> server emulation and statistic gathered from <pkg>media-sound/mpd</pkg></flag> <flag name="replaygain">Enable support for Replay Gain metadata calculation during import</flag> |