Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump media-sound/beets to 1.4.9 #12582

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions media-sound/beets/Manifest
@@ -1 +1,2 @@
DIST beets-1.4.8.tar.gz 1493539 BLAKE2B 63c44f05bbf139cd43b5f5ada972fd30beeea2303c6b479b1be35ea21fabb0039b3c8eb6e90f8f1b2a61fed36d97ce09a32c6346cbd3b84c7c978e796505f4b4 SHA512 449bed88185a5ecb4781719e092c2428ddc52fb8084033db64a4c0eca8899154192e7cea82517993d60326c7fe39b26429584ba368ffc35800f722d8d6a03217
DIST beets-1.4.9.tar.gz 1494459 BLAKE2B 2daf77caf395143813c8b288fc376b5aec01d49281d40ba5942daf9941891146d698a1517ced958e480c6f253eadb6a7e09029e079c97e6cc17d44ac18fa0e7b SHA512 616bad4ca3ecdd05d2f59846fd67215f476ce89cc34d63bc6351efcbaf1e33e5ca783cb8a716e8597b56a7e08e6a6dc15e64b51e89dd786bfb6c5d847f66de5a
142 changes: 142 additions & 0 deletions media-sound/beets/beets-1.4.9.ebuild
@@ -0,0 +1,142 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

MY_PV=${PV/_beta/-beta.}
MY_P=${PN}-${MY_PV}

PYTHON_COMPAT=( python3_{5,6} )
lovesegfault marked this conversation as resolved.
Show resolved Hide resolved
PYTHON_REQ_USE="sqlite"
inherit distutils-r1

DESCRIPTION="Media library management system for obsessive-compulsive music geeks"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
HOMEPAGE="http://beets.io/ https://pypi.org/project/beets/"

KEYWORDS="~amd64 ~x86"
SLOT="0"
LICENSE="MIT"
IUSE="badfiles chromaprint discogs doc ffmpeg gstreamer icu lastfm mpd replaygain test thumbnail webserver"

BDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
"
DEPEND="
>=dev-python/jellyfish-0.7.1[${PYTHON_USEDEP}]
dev-python/munkres[${PYTHON_USEDEP}]
>=dev-python/python-musicbrainz-ngs-0.4[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/requests-oauthlib[${PYTHON_USEDEP}]
>=dev-python/six-1.9[${PYTHON_USEDEP}]
dev-python/unidecode[${PYTHON_USEDEP}]
>=media-libs/mutagen-1.33[${PYTHON_USEDEP}]
virtual/python-enum34[${PYTHON_USEDEP}]
badfiles? (
media-libs/flac
media-sound/mp3val
)
chromaprint? (
dev-python/pyacoustid[${PYTHON_USEDEP}]
media-libs/chromaprint[tools]
)
discogs? ( dev-python/discogs-client[${PYTHON_USEDEP}] )
ffmpeg? ( media-video/ffmpeg:0[encode] )
gstreamer? (
media-libs/gst-plugins-good:1.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remember to sort this properly on the revbump.

media-libs/gst-plugins-bad:1.0
)
icu? ( dev-db/sqlite[icu] )
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is slotted if I recall correctly.

lastfm? ( dev-python/pylast[${PYTHON_USEDEP}] )
mpd? (
dev-python/bluelet[${PYTHON_USEDEP}]
dev-python/python-mpd[${PYTHON_USEDEP}]
)
replaygain? (
gstreamer? (
dev-python/pygobject:3[${PYTHON_USEDEP}]
media-plugins/gst-plugins-libav:1.0
)
!gstreamer? ( media-sound/mp3gain )
)
thumbnail? (
dev-python/pyxdg[${PYTHON_USEDEP}]
virtual/python-pathlib[${PYTHON_USEDEP}]
|| (
dev-python/pillow[${PYTHON_USEDEP}]
media-gfx/imagemagick
)
)
webserver? (
dev-python/flask[${PYTHON_USEDEP}]
dev-python/flask-cors[${PYTHON_USEDEP}]
)
"
RDEPEND="${DEPEND}"

RESTRICT="test" # tests broken in 1.4.3 already
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have they been fixed for 1.4.9 though? ;)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but they require a large refactoring of the ebuild which will come in a revbump after I merge some more packages.


S="${WORKDIR}/${MY_P}"

src_prepare() {
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
}

default

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

if ! use mpd; then
rm test/test_player.py || die
fi
}

python_compile_all() {
use doc && emake -C docs html
}

python_test() {
cd test || die
if ! use webserver; then
rm test_web.py || die "Failed to remove test_web.py"
fi
"${EPYTHON}" testall.py || die "Testsuite failed"
}

python_install_all() {
distutils-r1_python_install_all

doman man/beet.1 man/beetsconfig.5
use doc && local HTML_DOCS=( docs/_build/html/. )
einstalldocs
}
79 changes: 42 additions & 37 deletions media-sound/beets/metadata.xml
@@ -1,43 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sound@gentoo.org</email>
</maintainer>
<longdescription lang="en">
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. (It also downloads cover art for
albums it imports.) Then it provides a bouquet of tools for manipulating
and accessing your music.
<maintainer type="person">
<email>bernardo@standard.ai</email>
<name>Bernardo Meurer</name>
</maintainer>
<maintainer type="project">
<email>proxy-maint@gentoo.org</email>
<name>Gentoo Proxy Maintainers Project</name>
</maintainer>
<longdescription lang="en">
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. (It also downloads cover art for
albums it imports.) Then it provides a bouquet of tools for manipulating
and accessing your music.

Because beets is designed as a library, it can do almost anything you can
imagine for your music collection. Via plugins, beets becomes a panacea:
* Embed and extract album art from files’ tags.
* Listen to your library with a music player that speaks the MPD protocol
and works with a staggering variety of interfaces.
* Fetch lyrics for all your songs from databases on the Web.
* Manage your MusicBrainz music collection.
* Analyze music files’ metadata from the command line.
* Clean up crufty tags left behind by other, less-awesome tools.
* Browse your music library graphically through a Web browser and play it
in any browser that supports HTML5 Audio.
Because beets is designed as a library, it can do almost anything you can
imagine for your music collection. Via plugins, beets becomes a panacea:
* Embed and extract album art from files’ tags.
* Listen to your library with a music player that speaks the MPD protocol
and works with a staggering variety of interfaces.
* Fetch lyrics for all your songs from databases on the Web.
* Manage your MusicBrainz music collection.
* Analyze music files’ metadata from the command line.
* Clean up crufty tags left behind by other, less-awesome tools.
* Browse your music library graphically through a Web browser and play it
in any browser that supports HTML5 Audio.

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="ffmpeg">Enable support for the convert plugin to transcode files via <pkg>media-video/ffmpeg</pkg></flag>
<flag name="discogs">Enable support for the discogs API plugin</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>
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="ffmpeg">Enable support for the convert plugin to transcode files via <pkg>media-video/ffmpeg</pkg></flag>
<flag name="discogs">Enable support for the discogs API plugin</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>
</pkgmetadata>