summaryrefslogtreecommitdiff
path: root/media-sound/beets
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-01-22 20:28:19 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-01-22 20:28:19 +0000
commitabaa75b10f899ada8dd05b23cc03205064394bc6 (patch)
treeeca3dd248b73b92013cba00a0fcc1edf2696e19a /media-sound/beets
parent24fd814c326e282c4321965c31f341dad77e270d (diff)
gentoo resync : 22.01.2021
Diffstat (limited to 'media-sound/beets')
-rw-r--r--media-sound/beets/Manifest8
-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.ebuild145
-rw-r--r--media-sound/beets/files/1.4.9-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch53
-rw-r--r--media-sound/beets/files/1.4.9-0002-Disable-test_completion.patch74
-rw-r--r--media-sound/beets/metadata.xml5
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 &amp; 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>