summary refs log tree commit diff
path: root/media-sound/beets/beets-9999.ebuild
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/beets/beets-9999.ebuild
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/beets/beets-9999.ebuild')
-rw-r--r--media-sound/beets/beets-9999.ebuild117
1 files changed, 117 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
+}

Consider giving Nix/NixOS a try! <3