commit:     e8a159089d524b474acd4894cbaef5ea1803aab3
Author:     Cristian Othón Martínez Vera <cfuga <AT> cfuga <DOT> mx>
AuthorDate: Fri Sep 12 20:08:38 2025 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Thu Sep 25 10:51:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e8a15908

media-sound/quodlibet: add support for plugins using optfeature

Closes: https://bugs.gentoo.org/962694
Signed-off-by: Cristian Othón Martínez Vera <cfuga <AT> cfuga.mx>
Part-of: https://github.com/gentoo/gentoo/pull/43762
Closes: https://github.com/gentoo/gentoo/pull/43762
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 media-sound/quodlibet/quodlibet-4.7.1-r1.ebuild | 109 ++++++++++++++++++++++++
 1 file changed, 109 insertions(+)

diff --git a/media-sound/quodlibet/quodlibet-4.7.1-r1.ebuild 
b/media-sound/quodlibet/quodlibet-4.7.1-r1.ebuild
new file mode 100644
index 000000000000..8c7d81da06f0
--- /dev/null
+++ b/media-sound/quodlibet/quodlibet-4.7.1-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# See https://quodlibet.readthedocs.io/en/latest/packaging.html
+PYTHON_COMPAT=( python3_{11..13} )
+inherit edo optfeature python-single-r1 virtualx xdg
+
+DESCRIPTION="audio library tagger, manager, and player for GTK+"
+HOMEPAGE="https://quodlibet.readthedocs.io/";
+SRC_URI="https://github.com/${PN}/${PN}/archive/release-${PV}.tar.gz -> 
${P}.tar.gz"
+S="${WORKDIR}/${PN}-release-${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="+dbus gstreamer +udev"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+       ${PYTHON_DEPS}
+       dev-libs/keybinder:3[introspection]
+       $(python_gen_cond_dep '
+               >=dev-python/feedparser-6.0.11[${PYTHON_USEDEP}]
+               >=dev-python/pycairo-1.19[${PYTHON_USEDEP}]
+               >=dev-python/pygobject-3.34.0:3[${PYTHON_USEDEP}]
+               >=media-libs/mutagen-1.45[${PYTHON_USEDEP}]
+       ')
+       net-libs/libsoup:3.0[introspection]
+       x11-libs/gtk+[introspection]
+       gstreamer? (
+               media-libs/gstreamer:1.0
+               media-libs/gst-plugins-base:1.0
+               media-libs/gst-plugins-good:1.0
+               media-plugins/gst-plugins-meta:1.0
+       )
+       !gstreamer? ( media-libs/xine-lib )
+       dbus? (
+               app-misc/media-player-info
+               $(python_gen_cond_dep '
+                       dev-python/dbus-python[${PYTHON_USEDEP}]
+               ')
+       )
+       udev? ( virtual/udev )
+"
+BDEPEND="
+       dev-util/intltool
+       test? (
+               $(python_gen_cond_dep '
+                       dev-python/pytest[${PYTHON_USEDEP}]
+               ')
+       )
+"
+
+src_prepare() {
+       default
+
+       local qlconfig=quodlibet/config.py
+
+       if ! use gstreamer; then
+               sed -i -e '/backend/s:gstbe:xinebe:' ${qlconfig} || die
+       fi
+
+       sed -i -e '/gst_pipeline/s:"":"alsasink":' ${qlconfig} || die
+}
+
+src_compile() {
+       # The package has a complex setuptools-based build system inside
+       # of gdist/. Using PEP517 requires some workarounds and isn't
+       # really useful here.
+       edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+       EPYTEST_DESELECT=(
+               # Network tests
+               
'tests/plugin/test_covers.py::test_live_cover_download[lastfm-cover]'
+               
'tests/plugin/test_covers.py::test_live_cover_download[discogs-cover]'
+               
tests/test_browsers_iradio.py::TInternetRadio::test_click_add_station
+               # ?
+               
tests/plugin/test_replaygain.py::TReplayGain::test_analyze_sinewave
+       )
+
+       # 
https://quodlibet.readthedocs.io/en/latest/development/testing.html#testing
+       #virtx edo ${EPYTHON} setup.py test
+       virtx epytest || die "Tests failed with ${EPYTHON}"
+}
+
+src_install() {
+       edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}"
+       python_optimize
+
+       dodoc README.rst
+}
+
+pkg_postinst() {
+       optfeature "Kanji Kana Simple Inverter" app-i18n/kakasi
+       optfeature "tray icon under Unity and KDE Plasma" 
dev-libs/libayatana-appindicator
+       optfeature "Musicbrainz NGS" dev-python/musicbrainzngs
+       optfeature "MQTT" dev-python/paho-mqtt
+       optfeature "Discord status" dev-python/pypresence
+       optfeature "MOD music files" media-libs/libmodplug
+       optfeature "crossfade" media-plugins/gst-plugins-bs2b:1.0
+       optfeature "fingerprint" media-plugins/gst-plugins-chromaprint:1.0
+       optfeature "pitch" media-plugins/gst-plugins-soundtouch:1.0
+       optfeature "uPnP media server" net-misc/rygel
+       optfeature "notification" virtual/notification-daemon
+}

Reply via email to