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