Skip to content

Commit

Permalink
media-sound/beets: cleanup sphinx & optfeature
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/766132
Signed-off-by: Guillaume Seren <[email protected]>
Signed-off-by: Joonas Niilola <[email protected]>
  • Loading branch information
GuillaumeSeren authored and juippis committed Jan 24, 2021
1 parent fb0fb89 commit 09268b5
Show file tree
Hide file tree
Showing 3 changed files with 162 additions and 14 deletions.
137 changes: 137 additions & 0 deletions media-sound/beets/beets-1.4.9-r4.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

DISTUTILS_SINGLE_IMPL=1
PYTHON_COMPAT=( python3_{6..8} )
PYTHON_REQ_USE="sqlite"
DISTUTILS_USE_SETUPTOOLS=rdepend

inherit distutils-r1 bash-completion-r1 optfeature

if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/beetbox/beets.git"
inherit git-r3
else
MY_PV=${PV/_beta/-beta.}
MY_P=${PN}-${MY_PV}
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${MY_P}"
fi

DESCRIPTION="Media library management system for obsessive-compulsive music geeks"
HOMEPAGE="https://beets.io/ https://pypi.org/project/beets/"

LICENSE="MIT"
SLOT="0"
IUSE="doc test"
RESTRICT="!test? ( test )"

RDEPEND="
$(python_gen_cond_dep '
>=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-oauthlib[${PYTHON_MULTI_USEDEP}]
dev-python/requests[${PYTHON_MULTI_USEDEP}]
>=dev-python/six-1.9[${PYTHON_MULTI_USEDEP}]
dev-python/unidecode[${PYTHON_MULTI_USEDEP}]
')"
DEPEND="
${RDEPEND}
"
BDEPEND="
doc? (
dev-python/sphinx
)
$(python_gen_cond_dep '
test? (
dev-db/sqlite[icu]
dev-python/beautifulsoup[${PYTHON_MULTI_USEDEP}]
dev-python/bluelet[${PYTHON_MULTI_USEDEP}]
dev-python/discogs-client[${PYTHON_MULTI_USEDEP}]
dev-python/flask[${PYTHON_MULTI_USEDEP}]
dev-python/mock[${PYTHON_MULTI_USEDEP}]
dev-python/pyacoustid[${PYTHON_MULTI_USEDEP}]
dev-python/pylast[${PYTHON_MULTI_USEDEP}]
dev-python/python-mpd[${PYTHON_MULTI_USEDEP}]
dev-python/pyxdg[${PYTHON_MULTI_USEDEP}]
|| (
dev-python/pillow[${PYTHON_MULTI_USEDEP}]
media-gfx/imagemagick
)
dev-python/rarfile[${PYTHON_MULTI_USEDEP}]
dev-python/responses[${PYTHON_MULTI_USEDEP}]
dev-python/wheel[${PYTHON_MULTI_USEDEP}]
media-libs/chromaprint[tools]
media-libs/flac
media-libs/gst-plugins-bad:1.0
media-libs/gst-plugins-good:1.0
media-sound/mp3val
media-sound/mp3gain
|| (
dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
media-plugins/gst-plugins-libav:1.0
)
media-video/ffmpeg:0[encode]
)
')"

PATCHES=(
"${FILESDIR}/${PV}-0001-compatibility-with-breaking-changes-to-the-ast-modul.patch"
"${FILESDIR}/${PV}-0002-Disable-test_completion.patch"
"${FILESDIR}/${PV}-0003-Try-to-work-around-a-Werkzeug-change.patch"
)

DOCS=( README.rst docs/changelog.rst )

distutils_enable_tests pytest

python_prepare_all() {
distutils-r1_python_prepare_all

# Tests that need network
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"
}

python_compile_all() {
use doc && esetup.py build_sphinx -b html --build-dir=docs/build
}

python_install_all() {
distutils-r1_python_install_all

doman man/*
use doc && local HTML_DOCS=( docs/build/html/. )
einstalldocs

${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

elog "Optional dependencies:"
optfeature "badfiles support" "media-libs/flac media-sound/mp3val"
optfeature "chromaprint support" "dev-python/pyacoustid media-libs/chromaprint[tools]"
optfeature "discogs support" dev-python/discogs-client
optfeature "ffmpeg support" media-video/ffmpeg[encode]
optfeature "gstreamer support" "media-libs/gst-plugins-bad media-libs/gst-plugins-good"
optfeature "icu support" dev-db/sqlite[icu]
optfeature "lastfm support" dev-python/pylast
optfeature "mpd support" "dev-python/bluelet dev-python/python-mpd"
optfeature "replaygain with gstreamer support" "dev-python/pygobject media-plugins/gst-plugins-libav"
optfeature "replaygain without gstreamer support" media-sound/mp3gain
optfeature "thumbnail support" dev-python/pyxdg "dev-python/pillow media-gfx/imagemagick"
optfeature "webserver support" dev-python/flask
optfeature "webserver cors support" dev-python/flask-cors
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From d43d54e21cde97f57f19486925ab56b419254cc8 Mon Sep 17 00:00:00 2001
From: Adrian Sampson <[email protected]>
Date: Thu, 6 Feb 2020 22:22:54 -0500
Subject: [PATCH] Try to work around a Werkzeug change?

---
beetsplug/web/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/beetsplug/web/__init__.py b/beetsplug/web/__init__.py
index f53fb3a9..21ff5d94 100644
--- a/beetsplug/web/__init__.py
+++ b/beetsplug/web/__init__.py
@@ -169,7 +169,7 @@ class IdListConverter(BaseConverter):
return ids

def to_url(self, value):
- return ','.join(value)
+ return ','.join(str(v) for v in value)


class QueryConverter(PathConverter):
--
2.26.2

14 changes: 0 additions & 14 deletions media-sound/beets/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,6 @@
If beets doesn’t do what you want yet, writing your own plugin is
shockingly simple if you know a little Python.
</longdescription>
<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="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>
<flag name="thumbnail">Enable album thumbnails generation</flag>
<flag name="webserver">Enable embedded webserver support through <pkg>dev-python/flask</pkg></flag>
</use>
<upstream>
<remote-id type="pypi">beets</remote-id>
</upstream>
Expand Down

0 comments on commit 09268b5

Please sign in to comment.