commit:     09bc4ca6d782ab834481b31f8a22345416c9302a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 12 07:00:32 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 12 07:06:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09bc4ca6

x11-wm/qtile: add Wayland support

Closes: https://bugs.gentoo.org/846380
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../{qtile-9999.ebuild => qtile-0.22.1-r1.ebuild}  | 45 +++++++++++++++++-----
 x11-wm/qtile/qtile-9999.ebuild                     | 42 +++++++++++++++-----
 2 files changed, 67 insertions(+), 20 deletions(-)

diff --git a/x11-wm/qtile/qtile-9999.ebuild 
b/x11-wm/qtile/qtile-0.22.1-r1.ebuild
similarity index 62%
copy from x11-wm/qtile/qtile-9999.ebuild
copy to x11-wm/qtile/qtile-0.22.1-r1.ebuild
index 11d0d1fd538d..aa215b329fef 100644
--- a/x11-wm/qtile/qtile-9999.ebuild
+++ b/x11-wm/qtile/qtile-0.22.1-r1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
 
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{9..11} )
 
 inherit distutils-r1 virtualx
 
@@ -16,29 +16,37 @@ if [[ ${PV} == 9999 ]]; then
        EGIT_REPO_URI="https://github.com/qtile/qtile.git";
 else
        SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-       KEYWORDS="~amd64 ~riscv ~x86"
+       KEYWORDS="~amd64"
 fi
 
 LICENSE="MIT"
 SLOT="0"
+IUSE="pulseaudio wayland"
 
-RDEPEND=">=dev-python/cairocffi-0.9.0[${PYTHON_USEDEP}]
+RDEPEND="
+       >=dev-python/cairocffi-0.9.0[${PYTHON_USEDEP}]
        >=dev-python/cffi-1.1.0[${PYTHON_USEDEP}]
        dev-python/dbus-next[${PYTHON_USEDEP}]
        dev-python/pygobject[${PYTHON_USEDEP}]
-       dev-python/setuptools[${PYTHON_USEDEP}]
-       dev-python/setuptools_scm[${PYTHON_USEDEP}]
        >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
        >=dev-python/xcffib-0.10.1[${PYTHON_USEDEP}]
-       media-sound/pulseaudio
        x11-libs/cairo[X,xcb(+)]
        x11-libs/libnotify[introspection]
-       x11-libs/pango"
+       x11-libs/pango
+       pulseaudio? (
+               media-sound/pulseaudio
+       )
+       wayland? (
+               dev-python/pywlroots[${PYTHON_USEDEP}]
+       )
+"
 BDEPEND="
+       dev-python/setuptools_scm[${PYTHON_USEDEP}]
        test? (
                media-gfx/imagemagick[X]
                x11-base/xorg-server[xephyr]
-       )"
+       )
+"
 
 EPYTEST_DESELECT=(
        # Can't find built qtile like migrate
@@ -53,6 +61,23 @@ EPYTEST_IGNORE=(
 
 distutils_enable_tests pytest
 
+python_prepare_all() {
+       # Avoid automagic dependency on libpulse
+       if ! use pulseaudio ; then
+               sed -i -e "s/call('libpulse', '--libs')/raise PkgConfigError/" 
setup.py || die
+
+               # TODO: use this sed for next release after 0.22.1, quoting 
changed
+               # sed -i -e 's/call("libpulse", "--libs")/throw 
PkgConfigError/' setup.py || die
+       fi
+
+       # Avoid automagic dependency on pywlroots
+       if ! use wayland ; then
+               sed -i -e 's/import wlroots.ffi_build/raise ImportError/' 
setup.py || die
+       fi
+
+       distutils-r1_python_prepare_all
+}
+
 src_test() {
        virtx distutils-r1_src_test
 }
@@ -61,7 +86,7 @@ python_test() {
        # Force usage of built module
        rm -rf "${S}"/libqtile || die
 
-       epytest || die "Tests failed with ${EPYTHON}"
+       epytest --backend=x11 $(usev wayland '--backend=wayland') || die "Tests 
failed with ${EPYTHON}"
 }
 
 python_install_all() {

diff --git a/x11-wm/qtile/qtile-9999.ebuild b/x11-wm/qtile/qtile-9999.ebuild
index 11d0d1fd538d..9c06ef2a1275 100644
--- a/x11-wm/qtile/qtile-9999.ebuild
+++ b/x11-wm/qtile/qtile-9999.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
 
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{9..11} )
 
 inherit distutils-r1 virtualx
 
@@ -16,29 +16,37 @@ if [[ ${PV} == 9999 ]]; then
        EGIT_REPO_URI="https://github.com/qtile/qtile.git";
 else
        SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-       KEYWORDS="~amd64 ~riscv ~x86"
+       KEYWORDS="~amd64"
 fi
 
 LICENSE="MIT"
 SLOT="0"
+IUSE="pulseaudio wayland"
 
-RDEPEND=">=dev-python/cairocffi-0.9.0[${PYTHON_USEDEP}]
+RDEPEND="
+       >=dev-python/cairocffi-0.9.0[${PYTHON_USEDEP}]
        >=dev-python/cffi-1.1.0[${PYTHON_USEDEP}]
        dev-python/dbus-next[${PYTHON_USEDEP}]
        dev-python/pygobject[${PYTHON_USEDEP}]
-       dev-python/setuptools[${PYTHON_USEDEP}]
-       dev-python/setuptools_scm[${PYTHON_USEDEP}]
        >=dev-python/six-1.4.1[${PYTHON_USEDEP}]
        >=dev-python/xcffib-0.10.1[${PYTHON_USEDEP}]
-       media-sound/pulseaudio
        x11-libs/cairo[X,xcb(+)]
        x11-libs/libnotify[introspection]
-       x11-libs/pango"
+       x11-libs/pango
+       pulseaudio? (
+               media-sound/pulseaudio
+       )
+       wayland? (
+               dev-python/pywlroots[${PYTHON_USEDEP}]
+       )
+"
 BDEPEND="
+       dev-python/setuptools_scm[${PYTHON_USEDEP}]
        test? (
                media-gfx/imagemagick[X]
                x11-base/xorg-server[xephyr]
-       )"
+       )
+"
 
 EPYTEST_DESELECT=(
        # Can't find built qtile like migrate
@@ -53,6 +61,20 @@ EPYTEST_IGNORE=(
 
 distutils_enable_tests pytest
 
+python_prepare_all() {
+       # Avoid automagic dependency on libpulse
+       if ! use pulseaudio ; then
+               sed -i -e 's/call("libpulse", "--libs")/throw PkgConfigError/' 
setup.py || die
+       fi
+
+       # Avoid automagic dependency on pywlroots
+       if ! use wayland ; then
+               sed -i -e 's/import wlroots.ffi_build/raise ImportError/' 
setup.py || die
+       fi
+
+       distutils-r1_python_prepare_all
+}
+
 src_test() {
        virtx distutils-r1_src_test
 }
@@ -61,7 +83,7 @@ python_test() {
        # Force usage of built module
        rm -rf "${S}"/libqtile || die
 
-       epytest || die "Tests failed with ${EPYTHON}"
+       epytest --backend=x11 $(usev wayland '--backend=wayland') || die "Tests 
failed with ${EPYTHON}"
 }
 
 python_install_all() {

Reply via email to