From f38efde20b5a5884a169d8bb62e1f00750b560a8 Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Thu, 21 May 2020 11:14:19 +0300 Subject: media-sound/beets: Add package This package is already masked and going to be removed from the main tree probably because there's no stable version that supports the latest Python implementation. Time to make an ebuild on my own. --- media-sound/beets/beets-9999.ebuild | 117 ++++++++++++++++++++++++++++++++++++ media-sound/beets/metadata.xml | 20 ++++++ 2 files changed, 137 insertions(+) create mode 100644 media-sound/beets/beets-9999.ebuild create mode 100644 media-sound/beets/metadata.xml diff --git a/media-sound/beets/beets-9999.ebuild b/media-sound/beets/beets-9999.ebuild new file mode 100644 index 0000000..9c94c77 --- /dev/null +++ b/media-sound/beets/beets-9999.ebuild @@ -0,0 +1,117 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 git-r3 + +DESCRIPTION="Media library management system for obsessive-compulsive music geeks" +HOMEPAGE="http://beets.io/" +EGIT_REPO_URI="https://github.com/beetbox/beets.git" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="" +IUSE="badfiles chromaprint discogs doc embedart fetchart ffmpeg gstreamer icu lastfm mpd replaygain thumbnail zsh-completion" + +DEPEND=" + >=dev-python/confuse-1.0.0[${PYTHON_USEDEP}] + >=dev-python/mediafile-0.2.0[${PYTHON_USEDEP}] + >=dev-python/munkres-1.0.0[${PYTHON_USEDEP}] + >=dev-python/python-musicbrainz-ngs-0.4[${PYTHON_USEDEP}] + >=dev-python/six-1.9[${PYTHON_USEDEP}] + dev-python/jellyfish[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/unidecode[${PYTHON_USEDEP}] + badfiles? ( + media-libs/flac + media-sound/mp3val + ) + chromaprint? ( + dev-python/pyacoustid[${PYTHON_USEDEP}] + media-libs/chromaprint[tools] + ) + discogs? ( >=dev-python/discogs-client-2.2.1[${PYTHON_USEDEP}] ) + doc? ( dev-python/sphinx[${PYTHON_USEDEP}] ) + embedart? ( + dev-python/pillow[${PYTHON_USEDEP}] + media-gfx/imagemagick + ) + fetchart? ( + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ) + ffmpeg? ( media-video/ffmpeg:0[encode] ) + icu? ( dev-db/sqlite[icu] ) + lastfm? ( dev-python/pylast[${PYTHON_USEDEP}] ) + mpd? ( + dev-python/python-mpd[${PYTHON_USEDEP}] + gstreamer? ( media-plugins/gst-plugins-meta:1.0 ) + dev-python/pygobject:3[${PYTHON_USEDEP}] + ) + replaygain? ( + gstreamer? ( + dev-python/pygobject:3[${PYTHON_USEDEP}] + media-libs/gst-plugins-good:1.0 + media-plugins/gst-plugins-meta:1.0[ffmpeg] + ) + !gstreamer? ( media-sound/mp3gain ) + ) + thumbnail? ( + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pyxdg[${PYTHON_USEDEP}] + ) +" +RDEPEND="${DEPEND}" +BDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]" + +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 thumbnail thumbnails + + for flag in badfiles discogs embedart fetchart replaygain; do + rm_use_plugins ${flag} + done +} + +python_compile_all() { + use doc && emake -C docs html +} + +python_install_all() { + distutils-r1_python_install_all + + if use zsh-completion; then + insinto /usr/share/zsh/site-functions/ + doins extra/_beet + fi +} diff --git a/media-sound/beets/metadata.xml b/media-sound/beets/metadata.xml new file mode 100644 index 0000000..76e9ae7 --- /dev/null +++ b/media-sound/beets/metadata.xml @@ -0,0 +1,20 @@ + + + + + azahi@teknik.io + azahi + + + Validate MP3 & FLAC files + Enable support for acoustic fingerprinting plugin using media-libs/chromaprint + Enable support for the discogs API plugin + Embed album art images into files' metadata + Fetch album cover art from various sources + Enable support for the convert plugin to transcode files via media-video/ffmpeg + Enable support for importing personal last.fm playcounts and music genres from last.fm tags + Enable support for media-sound/mpd server emulation and statistic gathered from media-sound/mpd + Enable support for Replay Gain metadata calculation during import + Enable album thumbnails generation + + -- cgit 1.4.1