summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/django-polymorphic/Manifest2
-rw-r--r--dev-python/django-polymorphic/django-polymorphic-4.4.0.ebuild (renamed from dev-python/django-polymorphic/django-polymorphic-4.2.0.ebuild)0
-rw-r--r--dev-python/grpclib/Manifest1
-rw-r--r--dev-python/grpclib/grpclib-0.4.9.ebuild46
-rw-r--r--dev-python/libtmux/Manifest2
-rw-r--r--dev-python/libtmux/libtmux-0.53.0.ebuild38
-rw-r--r--dev-python/pymdown-extensions/Manifest2
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-10.19.1.ebuild34
-rw-r--r--dev-python/pypdf/Manifest1
-rw-r--r--dev-python/pypdf/pypdf-6.4.2.ebuild51
-rw-r--r--dev-python/tekore/Manifest1
-rw-r--r--dev-python/tekore/tekore-6.1.0.ebuild45
-rw-r--r--dev-python/xcffib/Manifest4
-rw-r--r--dev-python/xcffib/xcffib-1.10.0.ebuild44
-rw-r--r--dev-python/xcffib/xcffib-1.12.0.ebuild (renamed from dev-python/xcffib/xcffib-1.11.1.ebuild)1
-rw-r--r--dev-python/xcffib/xcffib-1.9.0.ebuild43
-rw-r--r--x11-wm/qtile/Manifest2
-rw-r--r--x11-wm/qtile/qtile-0.34.1.ebuild127
18 files changed, 352 insertions, 92 deletions
diff --git a/dev-python/django-polymorphic/Manifest b/dev-python/django-polymorphic/Manifest
index 380ab92254ba..8dc1c18f0e09 100644
--- a/dev-python/django-polymorphic/Manifest
+++ b/dev-python/django-polymorphic/Manifest
@@ -1,2 +1,2 @@
-DIST django-polymorphic-4.2.0.gh.tar.gz 222029 BLAKE2B 2a277dd817f24f3282f2bd1a1a302553518d12f217cd026ee95fe5d0f765159499699670f29eda28ff4407ba2e82dae431b9297b8acbd718bc4bd40a0a6f0f23 SHA512 b1be07d0527165baea32dd5b0adc03da23c6027c3ed4094e78be7807e3621addef9d4da047a49f223f186b5f60fd3bc1cea1755ad85c8308e44d0681848df445
DIST django-polymorphic-4.3.0.gh.tar.gz 240063 BLAKE2B fdb68008e8bc4cc849b60434d9e1d001a6cff2c7a4c1fb272d72bb85ec890e7d3ea8b5603007ac738c0a3f174287f2c4c4a4bc64c37a158a155597706c07f1d0 SHA512 4f0bebc8ea5d65c16baac4f6429dd992e8b628abca225c88c9d9454ab336064be142a9f519ea736c6da965c030b487f244a70450c4a688aa738d116aa95964b7
+DIST django-polymorphic-4.4.0.gh.tar.gz 248479 BLAKE2B 09aa14ee5e051ca3825bc7ad3bd342e7e9399b94acde9c7aabc4d588edf40e3dcd006618ee2346686149b6c18559b3ab4143f708422d4d88fdf6452dd55f9f8a SHA512 2befc5c90a43b6b0d05ffbf96c941de28d41bf5ee7c341f0e1e73708c70edd4515d750ed85d469daba12804d96f24eaa11754a6974c0509120cf08704dd756b2
diff --git a/dev-python/django-polymorphic/django-polymorphic-4.2.0.ebuild b/dev-python/django-polymorphic/django-polymorphic-4.4.0.ebuild
index 2f1d21470769..2f1d21470769 100644
--- a/dev-python/django-polymorphic/django-polymorphic-4.2.0.ebuild
+++ b/dev-python/django-polymorphic/django-polymorphic-4.4.0.ebuild
diff --git a/dev-python/grpclib/Manifest b/dev-python/grpclib/Manifest
index 5d9a5cbdc1a0..e88f1764213c 100644
--- a/dev-python/grpclib/Manifest
+++ b/dev-python/grpclib/Manifest
@@ -1 +1,2 @@
DIST grpclib-0.4.8.gh.tar.gz 106522 BLAKE2B df4a4eadfdaece1bc65e27a2ef82562fd095e184c7118da078383afe8a8a03a2e389bdb2466c88079dfae6254c55bb9134eab35cb3c82b1c02e3da6c6a7e02e3 SHA512 f00e93e9371f68a86ce818b3c45e5c7319074163c404b36af3a183f0676fbe58722fa0cb3f119073f13f6d8b763a673e2ab292678868257f88cb834aa5bc2f71
+DIST grpclib-0.4.9.gh.tar.gz 107191 BLAKE2B d2cbd863968cde154351984ff6fe70dd1a4fec36a6689cdab8ab54d103ab435ad964960c83e09510877ef15df1a0d25d3ec7c45de53b0496aae34a4100ffc5af SHA512 7a57acca8173fa20c0ef08319415926e515daad169a4411431a97fc82ba668ddd7d013aef2144556aee6879f625abeeb67698c18b449e604284d50b445238087
diff --git a/dev-python/grpclib/grpclib-0.4.9.ebuild b/dev-python/grpclib/grpclib-0.4.9.ebuild
new file mode 100644
index 000000000000..55b8f3a239f4
--- /dev/null
+++ b/dev-python/grpclib/grpclib-0.4.9.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Pure-Python gRPC implementation for asyncio"
+HOMEPAGE="
+ https://github.com/vmagamedov/grpclib/
+ https://pypi.org/project/grpclib/
+"
+# no tests in sdist, as of 0.4.7
+SRC_URI="
+ https://github.com/vmagamedov/grpclib/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+# setup.txt + requirements/runtime.in
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/googleapis-common-protos[${PYTHON_USEDEP}]
+ dev-python/h2[${PYTHON_USEDEP}]
+ dev-python/multidict[${PYTHON_USEDEP}]
+ dev-python/protobuf[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/async-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( faker pytest-asyncio )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # flaky leak checks
+ tests/test_memory.py
+)
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index cd1e71942f2b..af80de9b37b9 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -8,3 +8,5 @@ DIST libtmux-0.50.1.tar.gz 401531 BLAKE2B 0d6490122e21f0a82435e6506e1269fdf33478
DIST libtmux-0.51.0.tar.gz 398729 BLAKE2B b8e3711278b5906a5945bc7c10dedc1bb4a2bc72df9c5ca3378fb95709f5ad3311f3788c797ac5c99035f938df4cc2701598a8ea7e260a2a45f4f8a78093f54d SHA512 1792151627c53d05fd856835e07a9fbc58d19a4153fef21f609a0837c67c5b699de86072d24fcf9cc07ca32436390f3b0e5a4569bd4922879aa4a8a444115db2
DIST libtmux-0.52.1.tar.gz 403676 BLAKE2B 02e7b1901c4fbe061190b509c49ea79db0176471f2b0e534ad975cf4809c9d6e42954bf80823a0c4635d57516d3456b2f5b68087b0b8b88cf12b2b9026b60174 SHA512 f26d20e96f41d2ea1790c194b3fa808201c9c407e49bf77e54154477d20b1faf0f540f266b418c3c667560d67c8b5aebeeb965873292ece8ae54d71758dee2f7
DIST libtmux-0.52.1.tar.gz.provenance 9300 BLAKE2B 683066fd1667d4f764eee2ebe1dd7cccf9fdda5b5b09cf19849c6ead20ab68601ced42e7f674cbdbd8b4c777ea2aa3ce350602f155b44e78b1fdee75113b17b5 SHA512 5970eb0715fe2e1b8098d4d448c6d0221cd9ab9c49c5c66d6ab6150ffc0449aff67f5b7ac306f4ce443c6b69c73d01777afcb18b0a0f5b4312520fbf8d45d1da
+DIST libtmux-0.53.0.tar.gz 405001 BLAKE2B 1cc27a05729ebb861a6d7ee6447bd9b0bd9c67dca5e4b8e5cfec3ab9d0c5829b8c9edb442b5f7e8e7f966a6efa8703581f8a457cfbc21ca0cf80d87eb77b4a0f SHA512 63cfe3e22bfb7c45d1f01a562732120608c7d28b7463e763908a4602d4123e9b14e225e785be4de1044b4fa0628f7b733a60256478edda995e57a2475ea258a2
+DIST libtmux-0.53.0.tar.gz.provenance 9233 BLAKE2B 5d1b46c10e1d28ba7dd2ba5a18b09ac6b917b7e105874ff2775f66f094469f8a6f03b73463a8928cc67f5a77b614747206b6dc5f735dbc38a4d575416fe0499b SHA512 0bdd3b069e153cf540b5a7316fe62bfbcbea501772f6c4885c5429564d05bb8f377de1e5c0ebc280abd3af1eb9c23aa8119d67ecab1885f0e2ebad6cf6988721
diff --git a/dev-python/libtmux/libtmux-0.53.0.ebuild b/dev-python/libtmux/libtmux-0.53.0.ebuild
new file mode 100644
index 000000000000..029113cf4444
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.53.0.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tmux-python/libtmux
+PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typed library that provides an ORM wrapper for tmux, a terminal multiplexer"
+HOMEPAGE="
+ https://libtmux.git-pull.com/
+ https://github.com/tmux-python/libtmux/
+ https://pypi.org/project/libtmux/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=app-misc/tmux-3.0a
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-mock )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+python_test() {
+ # tests/test_window.py::test_fresh_window_data fails if TMUX_PANE is set
+ # https://bugs.gentoo.org/927158
+ local -x TMUX_PANE=
+
+ epytest -o addopts= tests
+}
diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest
index 930b64aa0f84..6d4aadaaff72 100644
--- a/dev-python/pymdown-extensions/Manifest
+++ b/dev-python/pymdown-extensions/Manifest
@@ -5,5 +5,7 @@ DIST pymdown_extensions-10.17.2.tar.gz 847344 BLAKE2B 91cccfab072caa3ad671643ee9
DIST pymdown_extensions-10.17.2.tar.gz.provenance 9560 BLAKE2B 27c913954a1f7005f3b42786a043bcfb39e20a01710d49dcb3108c7a3126ff394d00f4b9248ad6eff8be5dc91b9f3f8a80551992161e2f220f1bf82f3b6a14df SHA512 fdec579aa5fcb3ef0d4d6f8d26d878a1081664745dbafa2e93116d91c6c2c032263fb5c9e663ac7263cb3249562b1d97e6eb611482024a5aa03884bd3a353b99
DIST pymdown_extensions-10.18.tar.gz 847697 BLAKE2B 00ec5a0d0cba6ab31ef81d396f4ef4e594f4b353442fd88999fdf6eb357197b6cd68072ca6c109637c09f5d818bf8571d4dc5459405094177132f7ca2265a6df SHA512 1b39af796e77727b52ee27940e485d21849befa3cd40d77cd754cc81c2d0f337e1272fa70d154b5a49956dd7c5608be5c2aa6b4f8ee14c40264842512c531bbc
DIST pymdown_extensions-10.18.tar.gz.provenance 9510 BLAKE2B 1c81b695864a42185da487e7b0a61a9c36cf1b28948f19b4fb81ec5777f92bb3eecfcc36738c3ca41f6b780141e7c8fb8d39872b81c69b626f7a6dcc1ba2ba04 SHA512 27997a8ee5d7306e870975876bd907b1bced9c42c6f149f2c12234517237d161e6871ee24a71c9002cd002afd71e05d6021b4188c9a0c1c708b8db6462731158
+DIST pymdown_extensions-10.19.1.tar.gz 847839 BLAKE2B 7806838b7b874f9e2ccdb2b5174bb12d55ce4f555f7da0de4fa6d909e8946f281441b63e5dfd56021f84808824b91e315e5717aedb6f8479231789d765288bc6 SHA512 8f219ce510dae7710485f9d8088dfedbf1ffda620bee531bcf8df149c8459dbf5d2ac62ca3c30c3d7fb194b27ea923034098a26a7d57681da8a3a29c6768a6c6
+DIST pymdown_extensions-10.19.1.tar.gz.provenance 9589 BLAKE2B 74afce299ae6a5af45b412f8a97dc524e0bb4a35f4cabbd8bff185fab0eae538f1337630ab527c108e4be0cd584147c080c665190dd3a204a627855ba7b256d2 SHA512 51214497ee7266ad4e4cf16213ec06fe176458e2273270f47f03d47224ec6b62b0574f63e19d86bc6bd18c17f3ea96fc7d71e9a5e58e697b3f2592b77f10b722
DIST pymdown_extensions-10.19.tar.gz 847701 BLAKE2B 61efa07650e59d3f0438e725b965cedf8d3f555d4f2037444dc04b4eeb53884208e0913724552a8ac3f28a9f9fd3c56c8089b8b291ed32d8829a80e3a0e2e190 SHA512 6706bec87589f35f8b4660a2707b07f9fdc17a4a3c8e732d4f2faeb0af532a093931bf561e07ee3e47dbe5f8187254c109c1e10e447c542cc7e2dae76d08c4b9
DIST pymdown_extensions-10.19.tar.gz.provenance 9600 BLAKE2B 4108673c5dbc68b627b6ac9ea014906003df05bcb9a424ec9f9401b8ab2287e052d0d0ca28a30ae09430f98c8cca78ddeef3bae4b13ba90255500f9458201e79 SHA512 e05bdf1f1f572e7f2bdadde2c1b436186891fdd1a70ceffd2f38281cc2dd95a2ef9b6643f3110909a09cb37371ac598c2b3d2b3cdc3e77bf78d3a917330f7caa
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-10.19.1.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-10.19.1.ebuild
new file mode 100644
index 000000000000..faf2d5d7c381
--- /dev/null
+++ b/dev-python/pymdown-extensions/pymdown-extensions-10.19.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/facelessuser/pymdown-extensions
+PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extensions for Python Markdown"
+HOMEPAGE="
+ https://github.com/facelessuser/pymdown-extensions/
+ https://pypi.org/project/pymdown-extensions/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ >=dev-python/pygments-2.19.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index c90b44a8e6df..5310df1e1e31 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -3,4 +3,5 @@ DIST pypdf-6.2.0.gh.tar.gz 8292284 BLAKE2B 5df0f87c0df7760c510b92a66e80cd2600645
DIST pypdf-6.3.0.gh.tar.gz 8295782 BLAKE2B cba7ff1a55f52cfa5d83e8dd11c9a9be6b38f3c9eb42ce14d22b080fdfea72e21da6698d2b05ed02d9aa5b537bd5202205ef11e9c87f2442b56fdd2659a19f3b SHA512 3271c1d991f724e1fb3e85f420a7d60570122460b38ff16b1cd8b3c9dbcadc1d59a6474568a6baf3d7be5669c013938e10246223850f1882027a9d29b016499d
DIST pypdf-6.4.0.gh.tar.gz 8297749 BLAKE2B c5259669ebf291af2c2a52b8547672dfdbbd9c6d98696f0264d5d77cc3bfa65c9421959608e1a49a31db19afd6c7a1b056ebf3a876bcca3e628ce3162a598719 SHA512 013b05c02878ae8e37899be2f431f5f10856cc35f259af0a6960b78494e6cd81fc7513af8b369dd68f83ce6f74f0dee5df353b86a2ec2ae0e67532cd0d602714
DIST pypdf-6.4.1.gh.tar.gz 8295153 BLAKE2B 348a1a467bba56e244df5e35392cefb62e46191ea7ac61a8a19cdba3986245ce7ceee7563c597cf7c3135e32eebe1ef7990112a725b595ecee871d41cc025da1 SHA512 677456611df6841002b64aa1fa8b115068762e7f7b5a94247f65204ae693b7e81487a49cfbaf4d60d08340abc80c22ef6d07cf2a084ae8783c8665c8d23db36c
+DIST pypdf-6.4.2.gh.tar.gz 8295275 BLAKE2B 745936795cabbdd7f561743fb7a0e6b497a683fe23f32560336e82c3f5866a289ffd771e60f73d1782f73f5019191375704f0bc66617eb24cec860ab2613af8d SHA512 985f5a41bf2ab9ea9930dcd6a8f203596d1b50518f63ee815e0e6e74e050afd9a124b380fd8066c7f0b134886a645e165598d7764e3a40c3670df7e8de5c1995
DIST pypdf-sample-files-8c405ece5eff12396a34a1fae3276132002e1753.gh.tar.gz 11748093 BLAKE2B c5989200893b28a3c2062bb024a5cfc6f3389dc259ec129857979fa43469e1274559612b4d555499e2c7e16cf34be07825229932bf4d147fa6d7324d043e97d5 SHA512 c9771129b7668a2fd1fa79bb859ae9213f3d60341cf1b9937ff0eaab0de9bf4c35adcb7b896e93329038dc0f3809a0c697c523f8fe41b43030b0b029a88058e3
diff --git a/dev-python/pypdf/pypdf-6.4.2.ebuild b/dev-python/pypdf/pypdf-6.4.2.ebuild
new file mode 100644
index 000000000000..961b1ecaea74
--- /dev/null
+++ b/dev-python/pypdf/pypdf-6.4.2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+SAMPLE_COMMIT=8c405ece5eff12396a34a1fae3276132002e1753
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI="
+ https://github.com/py-pdf/pypdf/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}"/* "${S}"/sample-files/ || die
+ fi
+}
+
+python_test() {
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/tekore/Manifest b/dev-python/tekore/Manifest
index 6b77174cb38a..ab608ced4bba 100644
--- a/dev-python/tekore/Manifest
+++ b/dev-python/tekore/Manifest
@@ -1 +1,2 @@
DIST tekore-6.0.0.tar.gz 271904 BLAKE2B f5b0b8b296506c2d91e4cb763c535485a5c0ecb872e0d9e4920a74e58b97ecb8304d9daf24ebb08a47512fa922c9962e37a1b744affaba3bf846805a07d227db SHA512 204599394d6b7fdfd0c43f6e8ab692de2105fafddd00694194be036c12f705203d46b11be672c8b258c1cb2e7605c31f3e7721d5f8dd52b75dd83c9741615972
+DIST tekore-6.1.0.tar.gz 269826 BLAKE2B 8aac1a71e9a885afeac3b2b21b685c9c4486f6b47a5b930f9b171512f5b815f7ca16283a173491ea52df27f0b535cf9e50efb2738f8732bbfe3bbeb6af991080 SHA512 d82761ec709419de113722619ec55041f8acb2b9f856176c1ff95661412fc8b09913b62627ba2ac886cabc4cac7a09216be415485c12a56fb82f6d9f97c39aa2
diff --git a/dev-python/tekore/tekore-6.1.0.ebuild b/dev-python/tekore/tekore-6.1.0.ebuild
new file mode 100644
index 000000000000..386e6a5c8a30
--- /dev/null
+++ b/dev-python/tekore/tekore-6.1.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Spotify Web API client"
+HOMEPAGE="
+ https://tekore.readthedocs.io/
+ https://github.com/felix-hilden/tekore/
+ https://pypi.org/project/tekore/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ dev-python/httpx[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-2[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,httpx} )
+distutils_enable_tests pytest
+# TODO: package sphinx_codeautolink
+# distutils_enable_sphinx docs/src \
+# dev-python/sphinx-rtd-theme \
+# dev-python/sphinx-tabs \
+# dev-python/sphinx-autodoc-typehints
+
+EPYTEST_DESELECT=(
+ # Internet
+ tests/auth/expiring.py::TestCredentialsOnline::test_bad_arguments_raises_error
+)
+
+src_prepare() {
+ # unpin dependencies
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/xcffib/Manifest b/dev-python/xcffib/Manifest
index 94e97a9edf05..7b13a6691306 100644
--- a/dev-python/xcffib/Manifest
+++ b/dev-python/xcffib/Manifest
@@ -1,4 +1,2 @@
-DIST xcffib-1.10.0.tar.gz 111521 BLAKE2B bceb78b64d4bd22ef350756e630bb8bb640e1bcb0823168d1134d7465b93c895a70e5ebde0c9665d0f0582207e72653865b814790c45914a14bb2f20e37ff461 SHA512 db9754967a2cd6ae6ae7db5e72a40f6c9f412f3834160fd3ff8a21a286b574e2f307dc807603c9015512e3bc757b65947aa6e0088a73a7c504423f394fe41066
-DIST xcffib-1.11.1.tar.gz 111547 BLAKE2B 4ebe6f16e674a11f9e0039ead6437670d76472211fef3cfa628ff14888d2ae82b27b9003273a46254dd54c73b919f42b99178af231539eea7dcd240bc49246ef SHA512 3e64911dbf6b3b4dc5de4b36e92366aa396bbd5eaf7b22e7ae077e573c5ee3b251fbc44b2f6878616989dcd00c445df61612147649121f6ea76a3384506bf2a5
DIST xcffib-1.11.2.tar.gz 111390 BLAKE2B 53282c0e8048558cddd45aefdef0fc435bdb4920b56bbedbf781063748b40d938c508eb796ca20ee339088b38719b334d1f93ed943ed32c105c72d8ec0d65fee SHA512 128bd51975b719952c348465a68eeb1d71e0241e49a28ca8544ac487f454187374c29236a39134a7c6436fbb95398b18ae3f7caf8f0f9159ce37a9737cbd8442
-DIST xcffib-1.9.0.tar.gz 110472 BLAKE2B 040adb746726a10d6149e8f914a60fad1e4eca2b52711ff261de040bff35c64a748c5781ddd70a756f1c41cfbfc785fff62a86f65e3fa99243eef5e474809e0c SHA512 c0b1c3606c8430e83fb980d4c006b6be1eee91aaf6f40b8159dbdad50b2e596dc85372a83eae85e34a702cbdde98eb7219a260fb520b0ddfb16d897722b64fe0
+DIST xcffib-1.12.0.tar.gz 131116 BLAKE2B a99cb38ae57bc5e46b797315668a7bdf0a55cbdc60286cea6a576cefb4597eecf8935163fa6223d2729a97f55c03c5177d6f9b2e667dda82fa1972a12ac8a8e7 SHA512 5c799bf394e25cfd2d03c6802ad3fc05ed98eaa7232dff6e9d77b1fd775f3a139ad4935e521a23d1de081fd7fa9f5f81bb6f7eb8f96d8f2101fddc0c88721ecd
diff --git a/dev-python/xcffib/xcffib-1.10.0.ebuild b/dev-python/xcffib/xcffib-1.10.0.ebuild
deleted file mode 100644
index 5fbc4d2ad8c6..000000000000
--- a/dev-python/xcffib/xcffib-1.10.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
-HOMEPAGE="
- https://github.com/tych0/xcffib/
- https://pypi.org/project/xcffib/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-DEPEND="
- x11-libs/libxcb
-"
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/cffi-1.1.0:=[${PYTHON_USEDEP}]
- ' 'python*')
- ${DEPEND}
-"
-BDEPEND="
- test? (
- x11-base/xorg-server[xvfb]
- x11-apps/xeyes
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- rm -rf xcffib || die
- epytest
-}
diff --git a/dev-python/xcffib/xcffib-1.11.1.ebuild b/dev-python/xcffib/xcffib-1.12.0.ebuild
index f85850c602da..7ea2afa7df10 100644
--- a/dev-python/xcffib/xcffib-1.11.1.ebuild
+++ b/dev-python/xcffib/xcffib-1.12.0.ebuild
@@ -36,7 +36,6 @@ BDEPEND="
"
EPYTEST_PLUGINS=()
-EPYTEST_XDIST=1
distutils_enable_tests pytest
python_test() {
diff --git a/dev-python/xcffib/xcffib-1.9.0.ebuild b/dev-python/xcffib/xcffib-1.9.0.ebuild
deleted file mode 100644
index 37b444ea6828..000000000000
--- a/dev-python/xcffib/xcffib-1.9.0.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} pypy3_11 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A drop in replacement for xpyb, an XCB python binding"
-HOMEPAGE="
- https://github.com/tych0/xcffib/
- https://pypi.org/project/xcffib/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-DEPEND="
- x11-libs/libxcb
-"
-RDEPEND="
- $(python_gen_cond_dep '
- >=dev-python/cffi-1.1:=[${PYTHON_USEDEP}]
- ' 'python*')
- ${DEPEND}
-"
-BDEPEND="
- test? (
- x11-base/xorg-server[xvfb]
- x11-apps/xeyes
- )
-"
-
-distutils_enable_tests pytest
-
-python_test() {
- rm -rf xcffib || die
- epytest
-}
diff --git a/x11-wm/qtile/Manifest b/x11-wm/qtile/Manifest
index 40efd5150e0e..12bbc4603b0d 100644
--- a/x11-wm/qtile/Manifest
+++ b/x11-wm/qtile/Manifest
@@ -1,3 +1,5 @@
DIST qtile-0.33.0.tar.gz 653484 BLAKE2B 23af0fae9f8260b3c712e1c7475f9dfd7c8bfd3f72d7964b525326e4c19327249314de30d76da0e10859d5e1cbd287402d8f5991d1fbdefb28b572f4cc00be57 SHA512 ebcabff0a6b772a736df1e22096a7e98f12d5f29fe27320cc9deac23282ff3e9e05f405a3009d2046d34ef518331ae7e3bdfb14f890e56ac9284ce6837f2cbfd
DIST qtile-0.34.0.tar.gz 655589 BLAKE2B b2769a383515dfcbfda4cbd1d0adbcc24d3997dc09dcad27b1de1c06b438dd795b003e40f7e03fbed71427e2df0bc269422b2890059d61384c68989e43768782 SHA512 22dc5cd42402710bbb49b033c5154059d62d52300b336be2c976641e0b7f9c8c2ad1fe93a52287136c6c35d236c4cd1299187781f92be89b6d5b65e85aa00ed8
DIST qtile-0.34.0.tar.gz.provenance 9154 BLAKE2B 94a9b5f0bb253bb9978726ea3b3898429db82031c53d9b20e2a009a0aa32f8ae37a016f63d2798525b4a7c27d1b0b160888b5d51d424b21bf56b3a52c81f0808 SHA512 718ea49c4aea94b8d51d2331999578e7bac8e16aac3cbecede5d1e7d2e4b34999398ef85c0288b9296edddcdf35f0c5d6ec842991318eee17f35fb788cd79695
+DIST qtile-0.34.1.tar.gz 663576 BLAKE2B abdff73375e980cd3f768ae1c4f825c5ae152cc8b4654945e1b7d320e25a6a1ca192b813e2bd0f8cbb68dc22ca7d474d971b39ffba85f33ff8814a6b7637acea SHA512 2bf9944a78c835896e5cfddbf94d2b66f9ef26e79ed8e8caa42d452dfa506f8c7efc506f83716da6b5e769086b3f9cbff0a0bbe7f111e3da51ee4e42825a4721
+DIST qtile-0.34.1.tar.gz.provenance 8872 BLAKE2B ddbdcfc16ecf86f24430116da390e68eff86726123f4e33a572d35b9c9a6c2362e7cc76272345a95db4540eaade9a1b14239987c9c098a3c0a5c3e9af45c6084 SHA512 810a4d67c771210f8bb874f281046539171b499650de3e2cd3336b5f32b4c9590b20924de042d841a8725d85d1b6b26cc321a641f7fb4e11af9ae034dc153bee
diff --git a/x11-wm/qtile/qtile-0.34.1.ebuild b/x11-wm/qtile/qtile-0.34.1.ebuild
new file mode 100644
index 000000000000..1ff4b330badd
--- /dev/null
+++ b/x11-wm/qtile/qtile-0.34.1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/qtile/qtile
+PYTHON_COMPAT=( python3_13 )
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="A full-featured, hackable tiling window manager written in Python"
+HOMEPAGE="
+ https://qtile.org/
+ https://github.com/qtile/qtile/
+ https://pypi.org/project/qtile/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv"
+IUSE="pulseaudio wayland"
+
+DEPEND="
+ >=dev-python/cairocffi-1.7.0[${PYTHON_USEDEP}]
+ >=dev-python/cffi-1.1.0:=[${PYTHON_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+ dev-python/dbus-fast[${PYTHON_USEDEP}]
+ dev-python/pygobject[${PYTHON_USEDEP}]
+ >=dev-python/xcffib-1.4.0[${PYTHON_USEDEP}]
+ x11-libs/cairo[X,xcb(+)]
+ x11-libs/libnotify[introspection]
+ x11-libs/pango
+ pulseaudio? (
+ dev-python/pulsectl-asyncio[${PYTHON_USEDEP}]
+ media-libs/libpulse
+ )
+ wayland? (
+ >=dev-python/pywayland-0.4.17[${PYTHON_USEDEP}]
+ >=dev-python/pywlroots-0.17[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/isort[${PYTHON_USEDEP}]
+ dev-python/libcst[${PYTHON_USEDEP}]
+ media-gfx/imagemagick[X]
+ x11-base/xorg-server[xephyr,xvfb]
+ x11-terms/xterm
+ )
+ wayland? (
+ >=dev-python/pywayland-0.4.17[${PYTHON_USEDEP}]
+ >=dev-python/pywlroots-0.17[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( anyio pytest-{asyncio,httpbin} )
+EPYTEST_RERUNS=5
+: ${EPYTEST_TIMEOUT:=180}
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # make extension builds fatal
+ sed -i -e 's:Exception:None:' builder.py || die
+
+ if ! use wayland; then
+ sed -e "s/ffi_compile(verbose=wayland_requested)/pass/" \
+ -i builder.py || die
+ fi
+
+ mkdir bin || die
+}
+
+src_compile() {
+ local -x CFFI_TMPDIR=${T}
+ distutils-r1_src_compile
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # mypy stuff
+ test/test_check.py
+ test/migrate/test_check_migrations.py
+
+ # TODO
+ 'test/backend/wayland/test_idle_inhibit.py::test_inhibitor_open[1-x11-InhibitorConfig]'
+ 'test/backend/wayland/test_idle_inhibit.py::test_inhibitor_visible[1-x11-InhibitorConfig]'
+ 'test/backend/wayland/test_idle_inhibit.py::test_inhibitor_focus[1-x11-InhibitorConfig]'
+ 'test/backend/wayland/test_idle_inhibit.py::test_inhibitor_fullscreen[1-x11-InhibitorConfig]'
+ 'test/backend/wayland/test_idle_inhibit.py::test_inhibitor_global[1-x11-InhibitorConfig]'
+ )
+
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ cp -R "${S}/test" . || die
+
+ local -x TZ=UTC
+ nonfatal epytest --backend=x11 $(usev wayland '--backend=wayland')
+ local ret=${?}
+ rm -rf test || die
+
+ [[ ${ret} -eq 0 ]] || die -n "Tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ local DOCS=( CHANGELOG README.rst )
+ distutils-r1_python_install_all
+
+ insinto /usr/share/xsessions
+ doins resources/qtile.desktop
+
+ insinto /usr/share/wayland-sessions
+ doins resources/qtile-wayland.desktop
+
+ exeinto /etc/X11/Sessions
+ newexe "${FILESDIR}"/${PN}-session-r1 ${PN}
+}