summary refs log tree commit diff
path: root/media-sound
diff options
context:
space:
mode:
authorAzat Bahawi <azahi@teknik.io>2020-05-21 11:14:19 +0300
committerAzat Bahawi <azahi@teknik.io>2020-05-21 11:14:19 +0300
commitf38efde20b5a5884a169d8bb62e1f00750b560a8 (patch)
tree61843d31be0ad68e8231939696958e4f42f50724 /media-sound
parentx11-misc/unclutter-xfixes: Remove unused digest (diff)
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.
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/beets/beets-9999.ebuild117
-rw-r--r--media-sound/beets/metadata.xml20
2 files changed, 137 insertions, 0 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>azahi@teknik.io</email>
+		<name>azahi</name>
+	</maintainer>
+	<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="discogs">Enable support for the discogs API plugin</flag>
+		<flag name="embedart">Embed album art images into files' metadata</flag>
+		<flag name="fetchart">Fetch album cover art from various sources</flag>
+		<flag name="ffmpeg">Enable support for the convert plugin to transcode files via <pkg>media-video/ffmpeg</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>
+	</use>
+</pkgmetadata>

Consider giving Nix/NixOS a try! <3