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 +}
