summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-05-14 08:49:14 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2026-05-14 08:49:14 +0000
commit416b69e88dccd53b54eb1dfa8e91ebc06c45fa2e (patch)
tree0f5ac4b01ec07df6989764cdaba4666701db57ba /dev-python
parent33b1502bb3d163709fff312aca31b2b997e203a4 (diff)
downloadbaldeagleos-repo-416b69e88dccd53b54eb1dfa8e91ebc06c45fa2e.tar.gz
baldeagleos-repo-416b69e88dccd53b54eb1dfa8e91ebc06c45fa2e.tar.xz
baldeagleos-repo-416b69e88dccd53b54eb1dfa8e91ebc06c45fa2e.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/billiard/Manifest6
-rw-r--r--dev-python/billiard/billiard-3.6.4.0.ebuild36
-rw-r--r--dev-python/billiard/billiard-4.0.2.ebuild25
-rw-r--r--dev-python/billiard/billiard-4.2.4.ebuild24
-rw-r--r--dev-python/billiard/metadata.xml10
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.7.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.7.ebuild67
-rw-r--r--dev-python/channels/Manifest6
-rw-r--r--dev-python/channels/channels-3.0.5.ebuild41
-rw-r--r--dev-python/channels/channels-4.2.2.ebuild34
-rw-r--r--dev-python/channels/channels-4.3.2.ebuild62
-rw-r--r--dev-python/channels/files/channels-4.3.2-fix-install.patch14
-rw-r--r--dev-python/channels/metadata.xml11
-rw-r--r--dev-python/cliff/Manifest1
-rw-r--r--dev-python/cliff/cliff-4.14.0.ebuild43
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.152.7.ebuild110
-rw-r--r--dev-python/keystoneauth1/Manifest1
-rw-r--r--dev-python/keystoneauth1/keystoneauth1-5.14.0.ebuild61
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/matplotlib/Manifest2
-rw-r--r--dev-python/matplotlib/matplotlib-3.11.0_rc2.ebuild266
-rw-r--r--dev-python/mdit-py-plugins/Manifest1
-rw-r--r--dev-python/mdit-py-plugins/mdit-py-plugins-0.6.1.ebuild31
-rw-r--r--dev-python/myst-parser/Manifest1
-rw-r--r--dev-python/myst-parser/myst-parser-5.1.0.ebuild61
-rw-r--r--dev-python/pillow/pillow-12.2.0-r1.ebuild2
-rw-r--r--dev-python/pymdown-extensions/Manifest2
-rw-r--r--dev-python/pymdown-extensions/pymdown-extensions-10.21.3.ebuild34
-rw-r--r--dev-python/pytest-rerunfailures/Manifest1
-rw-r--r--dev-python/pytest-rerunfailures/pytest-rerunfailures-16.2.ebuild28
-rw-r--r--dev-python/python-neutronclient/Manifest1
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-12.0.0.ebuild72
-rw-r--r--dev-python/python-novaclient/Manifest1
-rw-r--r--dev-python/python-novaclient/python-novaclient-18.13.0.ebuild54
-rw-r--r--dev-python/requests/Manifest2
-rw-r--r--dev-python/requests/requests-2.34.1.ebuild75
-rw-r--r--dev-python/sqlglot/Manifest2
-rw-r--r--dev-python/sqlglot/sqlglot-30.8.0.ebuild (renamed from dev-python/sqlglot/sqlglot-30.6.0.ebuild)0
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/virtualenv-21.3.3.ebuild136
46 files changed, 1241 insertions, 170 deletions
diff --git a/dev-python/billiard/Manifest b/dev-python/billiard/Manifest
index 5c6b11253b3d..9318a0077575 100644
--- a/dev-python/billiard/Manifest
+++ b/dev-python/billiard/Manifest
@@ -1,5 +1 @@
-DIST billiard-3.6.4.0.tar.gz 155303 BLAKE2B 93288ab56fedb9b86373318b339afc8c690ba5996d52b2e95197ffd8eda5bc86e9bb52c6364ade5dcda9e8afd52da0efebbc306facacb7c5383223bf2515e24e SHA512 9f2a44024e45c4e7667472a0a3ade7caae755ec7c163929433f818e4b87165218b9cc9545bdee2254e7159c206e525306e383d38906b00fd5428bd1616c39b8f
-DIST billiard-4.2.4.tar.gz 156537 BLAKE2B 62e7da57ed6ea27a6f89902e4f125c0c9288724703ea36654709cbf4cca875ff723edb2faca85f10e0f3f02fc2e55d609f3588f0908cef11c356faa6b9f587f5 SHA512 f05041661da59603da5bdcb3b696d75742d4cb7998f5bbf22474e001641f5be6cf693c3b329cda3e8983cc3fe56e5cc96a1d7880eefa5b2d68cd0d4ffe231626
-EBUILD billiard-3.6.4.0.ebuild 714 BLAKE2B e9f4ffbbb6e29bc07f04ff0cf7580832993530ff722d0a80063114eaea57df13ab225fca8a9c11a05bfeb35e2b338891b1fd62751d447fda9224e6cbe99fc43c SHA512 d64678a017351af1bd05e1d2d2979832e671b6dd90febb8bf85014631b521e25bd5003b0f3d340389b85abba8e22aa1827f23184ef1e20425af64a2474b80238
-EBUILD billiard-4.2.4.ebuild 475 BLAKE2B ee8b3702829fc279d8c82d1a6c0f5b4b1853b5dd2cef8a09c04316fcddbb9fd0c6cd5441e3583b3f9c834b9b2ce05111ded14243bb7a2f5daa7eaaba06a40acb SHA512 0f75807d2a219ff88525af4352293cf2307f528a87dc57b82fa7ab4b0955f6c15d45f6c8402bfc9c44b0aadc33320650f578363b15ff1ae2f8c4e255be45b55e
-MISC metadata.xml 445 BLAKE2B 6fd4606975ee6326c8b9f345dba131cfeda0dbfcb907818e5252378aa30fcf03eac31138c6fbc8b9de9d3e6ec3295c0950c97308801d0300d0371847d975be06 SHA512 8acd7e27fa3170c0af4b63e98642a4dbc445edcaa082b99745f6d251f8de3abf2ade36a36cb36c71f790a9fc85edf30118a5198717f3f3e44b1cc24b9f38caea
+DIST billiard-4.0.2.gh.tar.gz 154301 BLAKE2B 5a4d1e185219886a419c82acb18e8f4adcba980d7732c7909a34f9e81af9936280ff1817ba92bef92333e7b57a4385339503e158d8766b8a8a9a1acd9de3202b SHA512 499ef834b98b2ce4a1afc4e069f43a96b9db8d7f52607fa5fe12298fc06faf25307a0208ac6df7643c0fff87deb5014d9bd1e375ab19731e98ac65ba3199fd4e
diff --git a/dev-python/billiard/billiard-3.6.4.0.ebuild b/dev-python/billiard/billiard-3.6.4.0.ebuild
deleted file mode 100644
index 9387362274ae..000000000000
--- a/dev-python/billiard/billiard-3.6.4.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python multiprocessing fork"
-HOMEPAGE="https://github.com/celery/billiard"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-BDEPEND="
- test? (
- >=dev-python/psutil-5.9.0[${PYTHON_USEDEP}]
- )"
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # Remove Win32 test
- rm t/unit/test_win32.py || die
-
- # Get rid of dev-python/case dependency
- sed \
- -e 's/^from case \(.*\), skip$/from unittest.mock \1/' \
- -e '/^@skip/d' \
- -i t/unit/test_common.py
-
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/billiard/billiard-4.0.2.ebuild b/dev-python/billiard/billiard-4.0.2.ebuild
new file mode 100644
index 000000000000..744e1acb595e
--- /dev/null
+++ b/dev-python/billiard/billiard-4.0.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+DESCRIPTION="Python multiprocessing fork"
+HOMEPAGE="
+ https://pypi.org/project/billiard/
+ https://github.com/celery/billiard
+"
+SRC_URI="https://github.com/celery/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+BDEPEND="test? ( dev-python/psutil[${PYTHON_USEDEP}] )"
+
+distutils_enable_tests pytest
+
+distutils_enable_sphinx Doc
diff --git a/dev-python/billiard/billiard-4.2.4.ebuild b/dev-python/billiard/billiard-4.2.4.ebuild
deleted file mode 100644
index 80c144ff8051..000000000000
--- a/dev-python/billiard/billiard-4.2.4.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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_{10..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python multiprocessing fork"
-HOMEPAGE="https://github.com/celery/billiard"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-BDEPEND="
- test? (
- >=dev-python/psutil-5.9.0[${PYTHON_USEDEP}]
- )"
-
-distutils_enable_tests pytest
-distutils_enable_sphinx Doc
diff --git a/dev-python/billiard/metadata.xml b/dev-python/billiard/metadata.xml
index 08db6659365d..736a1167c898 100644
--- a/dev-python/billiard/metadata.xml
+++ b/dev-python/billiard/metadata.xml
@@ -1,12 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/celery/billiard/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index edb2725a9e91..ebbdccbcf029 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.42.91.gh.tar.gz 1124704 BLAKE2B b6916ead939d892467698a93b7fa9257f09
DIST boto3-1.42.96.gh.tar.gz 1129293 BLAKE2B 186684ffe3d8e776e6f7462b4c7fdd996febcfc84ef87b3fe7399bc44bf00578177dab353d758231d0b2437fdbbef9204fc58b2eeda8f5be95b1d74e967c0d1d SHA512 c265a94e7fb4e7ed19e2f5aa152410c83d8e171373eb95c3572e8cc03fae6371c2ee7145722adffdab4e680b8f2abd0f3c3f4ff52bbd20fdfccd932f30cb9a20
DIST boto3-1.43.2.gh.tar.gz 1133320 BLAKE2B 21890b9f6629ec5af1da155d767a6117beada74550c292ba07d6900666bef39722740493e343a4770cf7f8adbb0030462d9e41366daee4c2bc17c391f14153f2 SHA512 b807ff1e6133285f6f64a83e328b7522f18d2de63838e9d6d70b982f44316b63aed90ddf3cbc12c6c32967c35807c0ef548d647588cd76c09a363e4de0c9b1e0
DIST boto3-1.43.6.gh.tar.gz 1137408 BLAKE2B 11a92806102c847f0072394f726a56c84f2378f9b75394d3b23f9357a35dd8ae2794149d7d20c0b4f0ba64a14e4234606ac49b846320e770b20eca51c9f53790 SHA512 e51787a036386af77a77f39ef1b857bf1fa6a6a106694ae0f6fd07097420fb1a01ad14037e55a8279c1aa8968c64becede89ef3ecbd5bd43c4af0f30f4e5cae5
+DIST boto3-1.43.7.gh.tar.gz 1140164 BLAKE2B 76e36db7f01e937dcfa20d59e8fcae5a96631cbd78686c5dfb9f1cd505f00f39c055049038d8bc5f9744c0d10cbc8e000c4cb9443e38b546aac80648f520543c SHA512 7818d6774071a49874c4f553f86a9de399eb4a74e8a8f7f1aec55bf1bf14acf9058661e8e7b70ecbeb446a656501dc90c3ce3d23da048e91f2fba07740aa49f3
diff --git a/dev-python/boto3/boto3-1.43.7.ebuild b/dev-python/boto3/boto3-1.43.7.ebuild
new file mode 100644
index 000000000000..11cadb4f704f
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.7.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.17.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 533cd76ecf25..8e5b2dc015d8 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.42.91.gh.tar.gz 16138871 BLAKE2B b5090d9707e20d83bdcc2757f13f655
DIST botocore-1.42.96.gh.tar.gz 16190988 BLAKE2B c63dbf335904dd9fd56d2881428fab2500ef36104fee2f979fb8394860eb30743022db17ffaabfe14bb896bed2b03728e32f0d0f8e7e6f1979abefb171f87a7c SHA512 d3f55cb1c05cb587b89f83eb3ca58fc002d67187e958deb25d8bd571bac89802e63231da4e6b9261616003e6cb3972291697141ad4208cec76ce39769aa81fc4
DIST botocore-1.43.2.gh.tar.gz 16233880 BLAKE2B f35f27344dd853b1c6e7c1049d501f034c378149ccff13ebffafa054a1f76d56f54104046804e6957f533c0db7aa49c4249af8820ad9d382e522b1c1149de65d SHA512 72cc8eaf651b0634af1d023098994db3dc8d879f8c685e75c226935010d5dee08da00577a5192d68bb0c23c928efc9573820c74f468e79594ddc1f6e96e89e61
DIST botocore-1.43.6.gh.tar.gz 16273836 BLAKE2B 42049eda3d77066f53733fb4a7df1cbc4e0c7b5e7b2f6398ded8917935935ec7fcae1dd029156eba1eaaf16a73bea6ffe2983b39036552a34b17934985f8a002 SHA512 771d17792bf1c8e75028dcd0fb618ee52fb7c0a57fe2560f564d136cfe17ecdcb1f7185486a10ef60ce80ceb0d446c518e3b2e93facf52e736030b764e8c254b
+DIST botocore-1.43.7.gh.tar.gz 16290338 BLAKE2B 0d002496b33db47ddfde7ddaf11dca94dbb6f448d0be1a1cb71af1adeaa91e9a9d21fb8e74cfe9f3810174bc9daab01fa7ade8581dd19317bb6d65189e5f6f75 SHA512 f76a811a8f0f3e1390e20350296589c8cc27850a26a647339e1125c259bca9c737862e0f113be671515cf0f0412999d75a8c7c257f65364ad61ed18d56d9f4bb
diff --git a/dev-python/botocore/botocore-1.43.7.ebuild b/dev-python/botocore/botocore-1.43.7.ebuild
new file mode 100644
index 000000000000..f6ce0d9ed8d5
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.7.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/channels/Manifest b/dev-python/channels/Manifest
index b58c0c2009cc..93bbf2713782 100644
--- a/dev-python/channels/Manifest
+++ b/dev-python/channels/Manifest
@@ -1,5 +1 @@
-DIST channels-3.0.5.gh.tar.gz 200118 BLAKE2B 7a7653f986face1e87369917317db013e5c9fc912c6e2d7c737054ffef167bd01feb48f7e2d00d0d331e7a16093478e5416645717aed59e46dfec8f9b3641a2e SHA512 b12d1aec9602b702b5a097e9ca52dccad49940f82fcbe5594890c9bd1f1879a2fcf0f29630ca53e4972a26853df8f71d07d7b2cccd876abbf2417a76dee281bf
-DIST channels-4.2.2.gh.tar.gz 197010 BLAKE2B 321bf62c68038ce511145acd43c036dd298d58056f20ab2d676c3e3a8d6360a86a4f07c8f9ed6c123f888c012d69da22cfae4fb477dd5422cf326bf2de6a4c8f SHA512 8f7c8f27981988fed8ec254db91ce0a130b24842949ef94cc9ae21b4a259a7003654ec86c4e18aa81924e26d9b81b6a2aafaac404e490cbdda6b4a100476917a
-EBUILD channels-3.0.5.ebuild 936 BLAKE2B 788d0e9a2822dd9d0ed2d1d1a62135aeb5f244710b66f7591962518a5204cde5b8e779280783dd1d1a1b1a3fa9b272a0eb457f1d88d62c8ecefc8f67384929ef SHA512 89003fa68c7ab1cdd1a329f4389ba6fe28f491217a70c03b2979a992b450d8aa1a02f024f073ad5fc0aa1d093d81c6c8b1adaa45bdc9a179f5bd1607d85c13ef
-EBUILD channels-4.2.2.ebuild 829 BLAKE2B e5946c4a0eaf9fb3ffa2092a3d5d49d3d6ee16f151483fa2b716c8bab3350eca5e330a22822f881421d8882ffb970f4c56154c613477d094319e46addf1a5537 SHA512 84ce30d87a654c1a89ac299fb0f6447ca9c736e4b63497d83fc2687384e9cbe8094ba8f5021a19f726f9bae97c6b6d11eddef6a9ee5c275efe827bf95d3848ec
-MISC metadata.xml 445 BLAKE2B b4c0a41d6caadfbc53cbba3c41f8b7689a286b3f8d285c37a88a1f79d8dc350b82fea255048c022b92091a1e0cc67bf19645d6c32183b82a6dd49cccadf5078f SHA512 380c8b98efe8d9a2513c51899b7de90b115d4a51f104f46b552ff8929c322850e511e245a2ba0e976213416ae7241a17292ca98248caacfc891fcdcf5cea5d44
+DIST channels-4.3.2.gh.tar.gz 206077 BLAKE2B c0913d67dc74bc728dd828584cf803b4ad175bab717de71ccf1e1c5b6aaca296fd15d011deb07b2876e63b7daaefab5e5ee24c323e907b3c563f5358759f14b8 SHA512 29d9c91aca721fad44143978863c45812bf596bb65cf99084803f78d85c664d5cc7ca1015df151cdc27754b822c9cfd18102989b6e5f59bc50257f6c9d8b8b3e
diff --git a/dev-python/channels/channels-3.0.5.ebuild b/dev-python/channels/channels-3.0.5.ebuild
deleted file mode 100644
index 03a4923889fe..000000000000
--- a/dev-python/channels/channels-3.0.5.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Extends Django abilities beyond HTTP protocol"
-HOMEPAGE="https://github.com/django/channels"
-SRC_URI="https://github.com/django/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DEPEND="
- >=dev-python/django-2.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/async-timeout[${PYTHON_USEDEP}]
- >=dev-python/daphne-3.0[${PYTHON_USEDEP}]
- <dev-python/daphne-4.0[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- )
-"
-
-DOCS=( README.rst )
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # https://github.com/django/channels/issues/1915
- echo 'asyncio_mode = auto' >> setup.cfg
-
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/channels/channels-4.2.2.ebuild b/dev-python/channels/channels-4.2.2.ebuild
deleted file mode 100644
index 710613a7cbd1..000000000000
--- a/dev-python/channels/channels-4.2.2.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Extends Django abilities beyond HTTP protocol"
-HOMEPAGE="https://github.com/django/channels"
-SRC_URI="https://github.com/django/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DEPEND="
- >=dev-python/asgiref-3.5.0[${PYTHON_USEDEP}]
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/async-timeout[${PYTHON_USEDEP}]
- >=dev-python/daphne-4.0.0[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-distutils_enable_sphinx docs \
- dev-python/sphinx-rtd-theme
diff --git a/dev-python/channels/channels-4.3.2.ebuild b/dev-python/channels/channels-4.3.2.ebuild
new file mode 100644
index 000000000000..ffafd1ece52b
--- /dev/null
+++ b/dev-python/channels/channels-4.3.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 #pypi
+
+DESCRIPTION="Brings async, event-driven capabilities to Django"
+HOMEPAGE="
+ https://channels.readthedocs.io/
+ https://github.com/django/channels/
+ https://pypi.org/project/channels/
+"
+# no tests in sdist
+SRC_URI="
+ https://github.com/django/channels/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.9.0[${PYTHON_USEDEP}]
+ >=dev-python/django-4.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/async-timeout[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # avoid daphne as it requires autobahn
+ tests/sample_project/tests/test_selenium.py
+ tests/security/test_websocket.py
+ tests/test_database.py
+ tests/test_generic_http.py
+ tests/test_generic_websocket.py
+ tests/test_http.py
+ tests/test_testing.py
+)
+
+EPYTEST_PLUGINS=( pytest-django pytest-asyncio )
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/channels-4.3.2-fix-install.patch
+)
+
+python_prepare_all() {
+ # avoid daphne as it requires autobahn
+ sed -e '/"daphne"/d' -i tests/sample_project/config/settings.py || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/channels/files/channels-4.3.2-fix-install.patch b/dev-python/channels/files/channels-4.3.2-fix-install.patch
new file mode 100644
index 000000000000..18eca8f75445
--- /dev/null
+++ b/dev-python/channels/files/channels-4.3.2-fix-install.patch
@@ -0,0 +1,14 @@
+diff --git a/setup.cfg b/setup.cfg
+index 742e1f6..43d8c0d 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -52,7 +52,7 @@ types =
+
+ [options.packages.find]
+ exclude =
+- tests
++ tests*
+
+ [flake8]
+ exclude = venv/*,tox/*,docs/*,testproject/*,build/*
+
diff --git a/dev-python/channels/metadata.xml b/dev-python/channels/metadata.xml
index 7093cae71294..0dec5a678a5f 100644
--- a/dev-python/channels/metadata.xml
+++ b/dev-python/channels/metadata.xml
@@ -2,11 +2,10 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>negril.nx+gentoo@gmail.com</email>
+ <name>Paul Zander</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/django/channels/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
+ <stabilize-allarches/>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/cliff/Manifest b/dev-python/cliff/Manifest
index 2e196b6e09fa..5b3ca722ce74 100644
--- a/dev-python/cliff/Manifest
+++ b/dev-python/cliff/Manifest
@@ -1 +1,2 @@
DIST cliff-4.13.3.tar.gz 89309 BLAKE2B b7ca32ff1d2c64090491a773d3374b081e1dda308844928d882a5d770cb87d46579165f304ab8eef0b60e0944992285ea5d6223839a0834c3165bc74338c92b1 SHA512 542b84b6eb6633926490939c1b4505ccf0d69ffc0e9d128352763dc6edc51aace29a53a3c68b778d30e3cb7f553726a9b46909f87a5147c0d61f55305a477f77
+DIST cliff-4.14.0.tar.gz 89670 BLAKE2B 2e7b640d333cfb8d0e08f003bef5ac28180689977e4f55d170e9e95499883d62079854ad239db9dff9e783d7b29f974cc05006535e7c83f2993f2587fef2d189 SHA512 dbd1e92a56752cb2f8b6cf2af49ad3d465b113dd937bfdf12c4a6aef4c258712328e51774c189e5dfca0f7b8146fb9b242c7ca2225677915f691061e449bcb7b
diff --git a/dev-python/cliff/cliff-4.14.0.ebuild b/dev-python/cliff/cliff-4.14.0.ebuild
new file mode 100644
index 000000000000..6e5bd41bcdc0
--- /dev/null
+++ b/dev-python/cliff/cliff-4.14.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Command Line Interface Formulation Framework"
+HOMEPAGE="
+ https://opendev.org/openstack/cliff/
+ https://github.com/openstack/cliff/
+ https://pypi.org/project/cliff/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ >=dev-python/autopage-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/cmd2-3.0.0[${PYTHON_USEDEP}]
+ dev-python/prettytable[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.12.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-5.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-5.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ local -x COLUMNS=80
+ eunittest
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 7f6463ba55f6..9b116ba9225f 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -3,3 +3,4 @@ DIST hypothesis-6.151.9.gh.tar.gz 9864451 BLAKE2B 9d9c2800cf1212e743a599c261c78c
DIST hypothesis-6.152.4.gh.tar.gz 9602982 BLAKE2B 7eb3bf424f35707fa323affc9e5e00c35716c32ac69acfdbc7981634f30abf20dee20a8271c21e561b868e24f175a12f484d0e436132ac8194ad48dc361c1ebe SHA512 8f7490051c49f1a3d7b91b00a63527600ff8aba03456bcb2360a9c6a004eea67995354cadf40eabcdaec0d7cd53ecac013963e2c6e19be3e348e79f9e40d9e8e
DIST hypothesis-6.152.5.gh.tar.gz 9603889 BLAKE2B cc892069eb1b9d28073974cd5f5d23b7c32f3679ebe127acae9783b71d5a2d9dbfb5b1390f102447f62a5c557e34717911d46de4020e9cef6f93a85a24080848 SHA512 ff36abf597a43bf527dafc85e3bce84d352419650cd6a3854bcaee5bb91443ad8651cce9b2e9a7cb2f69f076e98531e323a14fb65ae05a202142a1856dbd5756
DIST hypothesis-6.152.6.gh.tar.gz 9606311 BLAKE2B 96664ceb08b3870f71ca0b93a9214ed6150d0556660e9e20b0756c2778295af6cacd5c5a1f3b600695013880a274bb4517110cbeaf8c2dcf818ab8166814e732 SHA512 535947d3e5eecd1a0a45805a3011a82e992fc76bfa6ece63e2b8af85f22e93229a28c1746a64201886160432b087c0bb58045a38e3867efd8285c8b62e5814aa
+DIST hypothesis-6.152.7.gh.tar.gz 9606598 BLAKE2B cdb7eb39e0ae74dada61ba4573e874c2bcf1fecf4c6a03306f8fab7863793eebe1710ad0bd252939163cc561b09c0b700b64552290ba570d9deee86ea494937a SHA512 7550521047694ba84adf8fbe4f5d6f4727cead280baa6ca080c4002d1474d55091e88ca0432c70335b409e9e13a6aa513517791a312909e7603bc384f87cbc82
diff --git a/dev-python/hypothesis/hypothesis-6.152.7.ebuild b/dev-python/hypothesis/hypothesis-6.152.7.ebuild
new file mode 100644
index 000000000000..2c65b19aa496
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.152.7.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( "${CLI_COMPAT[@]}" pypy3_11 python3_{14..15} python3_{13..15}t )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+PDEPEND="
+ dev-python/hypothesis-gentoo[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" pytest-xdist )
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=(
+ # broken somehow (xdist?)
+ 'hypothesis-python/tests/pytest/test_constant_collection_timing.py::test_constant_collection_timing[True]'
+ # used to fail for a few impls, now fails everywhere
+ 'hypothesis-python/tests/cover/test_lambda_formatting.py::test_modifying_lambda_source_code_returns_unknown[False]'
+ )
+ local EPYTEST_IGNORE=(
+ # require syrupy
+ tests/cover/test_custom_reprs.py
+ )
+
+ case ${EPYTHON} in
+ python3.15*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types[sentinel]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_resolves_builtin_types[sentinel]'
+ )
+ ;;
+ esac
+
+ local -x HYPOTHESIS_NO_PLUGINS=1
+ epytest -o filterwarnings= tests/{cover,pytest,quality}
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/keystoneauth1/Manifest b/dev-python/keystoneauth1/Manifest
index 2d4c7c94ff64..19726f238a6a 100644
--- a/dev-python/keystoneauth1/Manifest
+++ b/dev-python/keystoneauth1/Manifest
@@ -1 +1,2 @@
DIST keystoneauth1-5.13.1.tar.gz 288548 BLAKE2B e07c9a7b47ca0c01594ad344fbdf473b6a46b11ffffb968e93e94421485ef6fb15287675d46037317441a13bb4202ae581e099cea0c519c7420344ea45cfdc41 SHA512 10a5277feb08bf7926c2ede4a92be30d540c6be58334f664075ba94ff6cca10cce668d75f23e6354c1927aaaa0b7e057d1b7b1018b815dd4ee6c87c69dbd075f
+DIST keystoneauth1-5.14.0.tar.gz 288739 BLAKE2B aebcb73326eb9ef9b6885de8d5bd1931216862d3aeb8f815eca44eb3a88a7624b670f9c493ec96693fb4cbd83f7959170bb0a3311917b3d0bdab4bf243964c9a SHA512 d533b164c9d99e5035ef985fde1d696f75a47af8e83ad5b7a4f335fb6bc1f44874df06cbf34583896818225d89b47c8725b0de52a15efb866cd062d4bcd89171
diff --git a/dev-python/keystoneauth1/keystoneauth1-5.14.0.ebuild b/dev-python/keystoneauth1/keystoneauth1-5.14.0.ebuild
new file mode 100644
index 000000000000..47dd31575965
--- /dev/null
+++ b/dev-python/keystoneauth1/keystoneauth1-5.14.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="This package contains tools for authenticating to an OpenStack-based cloud"
+HOMEPAGE="
+ https://opendev.org/openstack/keystoneauth/
+ https://github.com/openstack/keystoneauth/
+ https://pypi.org/project/keystoneauth1/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
+ >=dev-python/os-service-types-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/betamax-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oauthlib-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-3.13[${PYTHON_USEDEP}]
+ >=dev-python/requests-kerberos-0.8.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-mock-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fragile to test runner name
+ keystoneauth1/tests/unit/test_session.py::SessionTests::test_user_agent
+ # broken betamax
+ keystoneauth1/tests/unit/test_betamax_fixture.py::TestBetamaxFixture::test_keystoneauth_betamax_fixture
+)
+
+EPYTEST_IGNORE=(
+ # require hacking
+ keystoneauth1/tests/unit/test_hacking_checks.py
+)
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index d12ab8aeaca8..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index 271137de443d..7100f5f39dd8 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..c0f74ac187e2 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,11 +2,9 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
</maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
+
+ <origin>gentoo-guru-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index 0622b93eb4fc..778afba8834e 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -3,3 +3,5 @@ DIST matplotlib-3.10.8.tar.gz 34806269 BLAKE2B 1dc1de36b7b29c1d9b50fd464dff7054f
DIST matplotlib-3.10.8.tar.gz.provenance 9863 BLAKE2B 33b9105d073518a90bfcb4c829021f4383821fff4bdda51b711aea627ec4d69f12ad9067ac28c47dd911a4a2459d9b5ae2e68db46941f43b7f4f0534fe645a3d SHA512 4125dfe66b33c8c5d00b588600ba92c4e0f6fc310478b65fcc8f602c3a38baf9897f5347513bbc24249e01e061a5039ba10bc5eca21584b9391be148e0ba2285
DIST matplotlib-3.10.9.tar.gz 34811233 BLAKE2B 93a2b76390f68f366ad9e761e32a8fd2e85c95ac53ed1359bbfa3aef29c368a1c74284b65113b6f503109d4e1c72f899728afd1c327d62ce80cfb3e7583bbfce SHA512 432b234e78e416d779cb1c5c7924f2e68997d9da8a204e7bd5b199aeaafdc900a93e492a464d21daccb11124c01567437c440c4d3ddbf3f772834e4217460a1f
DIST matplotlib-3.10.9.tar.gz.provenance 9742 BLAKE2B 0c46e3818add6d952b1e1a7b45ec523fb7637bb030bb83b89d2b9f60cf2cc41c728ed3bb537db396fe88a436f0bcd33d656e5d68aa04e23651aa44c31b6725c2 SHA512 e86e176981d5736517a14b8eb0be633068bff2d24d4028d2eb5a1a4612a24cba98d9cef884cd98daa57252cdff4db5419be5bdc4b4b3aae8d778fd16e954a1fe
+DIST matplotlib-3.11.0rc2.tar.gz 33206182 BLAKE2B 54ec520fa553e94ba916a7e4a0c081e91b65f570891995707fef71e3e34af740ee5786b7cca18ce416d8cf37d98d6ae977ab6d52c3e01a7ab81e1ad17724b09a SHA512 8ded3dcaf3abf52640b11d1560b5a0b673cc864ff082020255b84699772c4ed4f4695f46dc5b5d9e9a0fc136051b63cb7255c323b59943768f502eeddf43d2e1
+DIST matplotlib-3.11.0rc2.tar.gz.provenance 9981 BLAKE2B 65b5efa306d4ae7c107a3b69404748b414bf8f3f4b1eae1ca01880e7160bdeb07a034905e0cba6cab45b8664c5132797566fea94610a33d870ec15339ca3dcbb SHA512 d36424ad521cec542d71589d2135c4728fc3a7bcf40d35c32a94e002355a014827350882598ef0ecfddf94b2f9dbf66c4c51e6d5a5526b08c3a8e7cfae6f8263
diff --git a/dev-python/matplotlib/matplotlib-3.11.0_rc2.ebuild b/dev-python/matplotlib/matplotlib-3.11.0_rc2.ebuild
new file mode 100644
index 000000000000..4c1fb4245373
--- /dev/null
+++ b/dev-python/matplotlib/matplotlib-3.11.0_rc2.ebuild
@@ -0,0 +1,266 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYPI_VERIFY_REPO=https://github.com/matplotlib/matplotlib-release
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Pure python plotting library with matlab like syntax"
+HOMEPAGE="
+ https://matplotlib.org/
+ https://github.com/matplotlib/matplotlib/
+ https://pypi.org/project/matplotlib/
+"
+
+# Main license: matplotlib
+# Some modules: BSD
+# matplotlib/backends/qt4_editor: MIT
+# Fonts: BitstreamVera, OFL-1.1
+LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
+SLOT="0"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+fi
+IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
+
+LATEX_DEPEND="
+ virtual/latex-base
+ app-text/dvipng
+ app-text/ghostscript-gpl
+ app-text/poppler[cairo,png,utils]
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-luatex
+ dev-texlive/texlive-xetex
+"
+
+DEPEND="
+ media-libs/freetype:2
+ >=media-libs/raqm-0.10.4:=
+ >=media-libs/qhull-2013:=
+ >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
+"
+# internal copy of pycxx highly patched
+# dev-python/pycxx
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
+ >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
+ media-fonts/dejavu
+ media-fonts/stix-fonts
+ media-libs/libpng:0
+ virtual/imagemagick-tools[jpeg,tiff]
+ cairo? (
+ dev-python/cairocffi[${PYTHON_USEDEP}]
+ )
+ excel? (
+ dev-python/xlwt[${PYTHON_USEDEP}]
+ )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ latex? (
+ ${LATEX_DEPEND}
+ )
+ qt6? (
+ $(python_gen_cond_dep '
+ || (
+ dev-python/pyqt6[gui,widgets,${PYTHON_USEDEP}]
+ dev-python/pyside:6[gui,widgets,${PYTHON_USEDEP}]
+ )
+ ' 'python3*')
+ )
+ webagg? (
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ )
+ wxwidgets? (
+ $(python_gen_cond_dep '
+ dev-python/wxpython:*[${PYTHON_USEDEP}]
+ ' python3_{10..12})
+ )
+"
+
+BDEPEND="
+ ${RDEPEND}
+ dev-python/pybind11[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ test? (
+ $(python_gen_impl_dep 'tk')
+ ${LATEX_DEPEND}
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
+ !hppa? ( !s390? (
+ || (
+ media-video/ffmpeg[openh264]
+ media-video/ffmpeg[x264]
+ )
+ ) )
+ gtk3? (
+ >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
+ x11-libs/gtk+:3[introspection]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=3
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # Increase lock timeout to 30 s.
+ sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
+ # Upstream uses 'x86_64' condition to require exact matches no their CI
+ # which doesn't match results from other x86_64 systems.
+ # Apparently Darwin is given higher tolerances too.
+ find -name 'test_*.py' -exec sed -i \
+ -e "s:if platform.machine() == 'x86_64' else:if False else:" \
+ -e "s:if sys.platform == 'darwin' else:if True else:" \
+ {} + || die
+
+ # Enable installing test data.
+ # TODO: do it only for the test phase?
+ sed -i -e '/--tags/d' pyproject.toml || die
+}
+
+src_configure() {
+ # Affects installed _version.py, bug #854600
+ export SETUPTOOLS_SCM_PRETEND_VERSION=${PV/_}
+
+ unset DISPLAY # bug #278524
+ export XDG_RUNTIME_DIR="${T}/runtime-dir"
+ mkdir "${XDG_RUNTIME_DIR}" || die
+ chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+ DISTUTILS_ARGS=(
+ -Dsystem-freetype=true
+ -Dsystem-libraqm=true
+ -Dsystem-qhull=true
+ -Dmacosx=false
+ )
+}
+
+src_test() {
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # broken by -Wdefault
+ tests/test_testing.py::test_warn_to_fail
+ tests/test_legend.py::test_legend_nolabels_warning
+ # TODO: timezone mismatch? DST?
+ tests/test_dates.py::test_auto_date_locator_intmult_tz
+ # TODO: some latex error
+ 'tests/test_backend_pdf.py::test_font_heuristica[pdf]'
+ )
+
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO: warning isn't passed through
+ tests/test_image.py::test_large_image
+ # TODO: regression in 7.3.18+
+ tests/test_axes.py::test_axes_clear_reference_cycle
+ # TODO
+ tests/test_text.py::test_metrics_cache2
+ )
+ ;;
+ esac
+
+ # TODO: recheck these
+ case ${ABI} in
+ hppa)
+ EPYTEST_DESELECT+=(
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
+ 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_quiver.py::test_barbs_pivot[png]'
+ 'tests/test_quiver.py::test_barbs_flip[png]'
+ 'tests/test_text.py::test_parse_math'
+ 'tests/test_text.py::test_parse_math_rcparams'
+ )
+ ;;
+ arm)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_ps.py::test_savefig_to_stringio
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ sparc64)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_pgf.py::test_pdf_pages_metadata_check
+ tests/test_backend_pgf.py::test_minus_signs_with_tex
+ )
+ ;;
+ x86)
+ EPYTEST_DESELECT+=(
+ 'tests/test_tightlayout.py::test_tight_layout2[png]'
+ 'tests/test_patches.py::test_wedge_range[pdf]'
+ 'tests/test_tightlayout.py::test_tight_layout3[png]'
+ 'tests/test_quiver.py::test_barbs[png]'
+ 'tests/test_axes.py::test_fill_between_interpolate_decreasing[png]'
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ # NB: The overlap here is deliberate. We copy the same deselect
+ # to the blocks above, but if we remove others, it will fall back here.
+ alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
+ EPYTEST_DESELECT+=(
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ *)
+ ;;
+ esac
+
+ # pretend we're on CI to increase timeouts
+ local -x CI=1
+ nonfatal epytest --pyargs matplotlib -m "not network" \
+ -o tmp_path_retention_policy=all || die
+}
diff --git a/dev-python/mdit-py-plugins/Manifest b/dev-python/mdit-py-plugins/Manifest
index abc94d1cf437..65c7bee828eb 100644
--- a/dev-python/mdit-py-plugins/Manifest
+++ b/dev-python/mdit-py-plugins/Manifest
@@ -1,2 +1,3 @@
DIST mdit-py-plugins-0.5.0.gh.tar.gz 66467 BLAKE2B 17c95adb7ff1ae627b0491d2e02dd864ce06cc70ad05b00088bdcfafa2d254344e2aa830f16166ba35eae01561a93ba7021ffa6597c5c1b44d52e80bc4dc5098 SHA512 2da41e32000ba735466969cc890e0d8f07d6e5ef6cb604b9cf7c02cf4187849fcd9734cef38807afcdd492c7a43795386798fbb86885b2e7ea522bc28b3d0796
DIST mdit-py-plugins-0.6.0.gh.tar.gz 79769 BLAKE2B 9a38b89b619f06412ecc1fe19f108c7d16a07a0cb009134ad618350971925ad105af57b39f9262153035d274dae2752286351312779ab67cc2684e2be1780131 SHA512 5e9a1cc90d65fd92b25aef7c59b32ebf4da8b33c6b787b22b407d44c4c80126ed20e966c346f0da565ace73f0179cdd61ffca6cc52d54c6eb8e6471adf4de03b
+DIST mdit-py-plugins-0.6.1.gh.tar.gz 80137 BLAKE2B 8562b80e03c59703fb32ed6f8e34becc578b9d7709235eec1e23839fb32cd91c655d8e85e82d5954afb9c173089e8cd4dc33f1d91abdefb3a782c0dac552109d SHA512 5ad01008fd930a945f9c9bd44d690f23646f08df23ccc4bd5a44e312496f592addfd87e954e511cf6fb207b7758e3044e1fb9acf2821a4285d07bfe527e2ec17
diff --git a/dev-python/mdit-py-plugins/mdit-py-plugins-0.6.1.ebuild b/dev-python/mdit-py-plugins/mdit-py-plugins-0.6.1.ebuild
new file mode 100644
index 000000000000..14f989d39201
--- /dev/null
+++ b/dev-python/mdit-py-plugins/mdit-py-plugins-0.6.1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Collection of plugins for markdown-it-py"
+HOMEPAGE="
+ https://pypi.org/project/mdit-py-plugins/
+ https://github.com/executablebooks/mdit-py-plugins/
+"
+SRC_URI="
+ https://github.com/executablebooks/mdit-py-plugins/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/markdown-it-py-5[${PYTHON_USEDEP}]
+ >=dev-python/markdown-it-py-4.1.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-{datadir,regressions,timeout} )
+distutils_enable_tests pytest
diff --git a/dev-python/myst-parser/Manifest b/dev-python/myst-parser/Manifest
index 8a85ed988f17..77488569c34d 100644
--- a/dev-python/myst-parser/Manifest
+++ b/dev-python/myst-parser/Manifest
@@ -1 +1,2 @@
DIST MyST-Parser-5.0.0.gh.tar.gz 830837 BLAKE2B ecad12739d924d7af7f37bdf23f4c8ccd90112d1a59e6208fd63056684883482574cab0c008da955fdddc9a14d53a2653659f8905c39fbbe7cce5fcf7a95262d SHA512 765385bcb0716fa8d9a42c6860846d504e75b1aa3bc32b4a2cfd1f1717555872e5c35da687a47ae7ece2043aed37d84ee9f0609e078f250e640149a9bb7487a8
+DIST MyST-Parser-5.1.0.gh.tar.gz 836550 BLAKE2B 7bd8695cec837587089e81eeb019d018b15dee1618e8902e9f80032f4cc736336206aedf451466df9f1aa029eca9f9dc2e57412087fd7df3b1fbef4ddbd4b7e1 SHA512 db3c9b2173f0e3ca1c53053c4b5150291436dc50203e6c93660d0b9aafb2e0b27f06765dfb18b1147ec5629ca11a5fcb8b83862783c58099ee214c4d4b9a60a0
diff --git a/dev-python/myst-parser/myst-parser-5.1.0.ebuild b/dev-python/myst-parser/myst-parser-5.1.0.ebuild
new file mode 100644
index 000000000000..79a4857fd289
--- /dev/null
+++ b/dev-python/myst-parser/myst-parser-5.1.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P=MyST-Parser-${PV}
+DESCRIPTION="Extended commonmark compliant parser, with bridges to Sphinx"
+HOMEPAGE="
+ https://github.com/executablebooks/MyST-Parser/
+ https://pypi.org/project/myst-parser/
+"
+SRC_URI="
+ https://github.com/executablebooks/MyST-Parser/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/docutils-0.20[${PYTHON_USEDEP}]
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ <dev-python/markdown-it-py-5[${PYTHON_USEDEP}]
+ >=dev-python/markdown-it-py-4.2[${PYTHON_USEDEP}]
+ <dev-python/mdit-py-plugins-0.7[${PYTHON_USEDEP}]
+ >=dev-python/mdit-py-plugins-0.6.1[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ <dev-python/sphinx-10[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-8[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/defusedxml[${PYTHON_USEDEP}]
+ <dev-python/linkify-it-py-3[${PYTHON_USEDEP}]
+ >=dev-python/linkify-it-py-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-7.3[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{datadir,param-files,regressions} sphinx-pytest )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # docutils warning
+ 'tests/test_renderers/test_fixtures_docutils.py::test_link_resolution[121-explicit>implicit]'
+)
+
+src_prepare() {
+ default
+
+ # unpin docutils
+ sed -i -e '/docutils/s:,<[0-9.]*::' pyproject.toml || die
+}
diff --git a/dev-python/pillow/pillow-12.2.0-r1.ebuild b/dev-python/pillow/pillow-12.2.0-r1.ebuild
index 9bc308a40218..4d6ee2bf6e00 100644
--- a/dev-python/pillow/pillow-12.2.0-r1.ebuild
+++ b/dev-python/pillow/pillow-12.2.0-r1.ebuild
@@ -35,7 +35,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="HPND"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="~alpha ~amd64 ~arm64 ~x86"
IUSE="avif examples imagequant +jpeg jpeg2k lcms raqm test tiff tk truetype webp xcb zlib"
REQUIRED_USE="
raqm? ( truetype )
diff --git a/dev-python/pymdown-extensions/Manifest b/dev-python/pymdown-extensions/Manifest
index 46224cee0bb0..0355a10994eb 100644
--- a/dev-python/pymdown-extensions/Manifest
+++ b/dev-python/pymdown-extensions/Manifest
@@ -1,2 +1,4 @@
DIST pymdown_extensions-10.21.2.tar.gz 853922 BLAKE2B 8fd57fe59b7f781fce5de51f046e64d6c54e3ca54f72914842ceab88d1fc1f89c53e6bd4edc5995ccfcce57815820d76479f7d9a5580058ddd02833301e46fdd SHA512 429fe9379e98905631df92235323be7125195502f98b0da4fd56910f76fa5499b2d633d9373467b5a3e0fc602f2bf51c6294ed983f37d3105e82d53c2a671eb9
DIST pymdown_extensions-10.21.2.tar.gz.provenance 9793 BLAKE2B a78252e2abd66f941497f13788bc89afc2fe0bd6507ded373a1ad928afdb0ce8d709d2921e90fd1e57d4adc26f229994bd08c7d509f12e517f2fb54f194f560e SHA512 f75ce990b1918e3c23f38f05a1922a47de4450cc047f3a9a77a0aea046931d61288803937b45b944613bfea1a71f8dbf60f7a14e0ef2cd2bb0f526ac087ef1cb
+DIST pymdown_extensions-10.21.3.tar.gz 854140 BLAKE2B 931b33c568c4bc5fdafbaed14ec28afb7c54c2328bf68b1a8b8551a601cda6f79523f90f8ed46381e23b9390a5193f02e1389ca297ce8fa3e190dc856433415f SHA512 a7f480509eb4d589b17364b70eddc2aed506bc7507577e4738b6099cf4384177a21364f4b9c11e871d2d4d99e2227f461801f92388874a10aac3adbc76b513b3
+DIST pymdown_extensions-10.21.3.tar.gz.provenance 9926 BLAKE2B c862c2499b076eded65d8998885cce57be5838a13e9804bb1e789a1fa2eab41c27aa3fda8f2b7157597fe5b67964c8fd01e255fd7a4877a08021584549c0b98f SHA512 e4b9c754314128907cc0a5684243614449e38ccc2055d24e8745c10e197d8b3681c5c48b156e1da7657dd499fb2a4f7c0d34e42f512845b3e89c8981bc854f88
diff --git a/dev-python/pymdown-extensions/pymdown-extensions-10.21.3.ebuild b/dev-python/pymdown-extensions/pymdown-extensions-10.21.3.ebuild
new file mode 100644
index 000000000000..0a030a308fbd
--- /dev/null
+++ b/dev-python/pymdown-extensions/pymdown-extensions-10.21.3.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2026 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=( python3_{10..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/pytest-rerunfailures/Manifest b/dev-python/pytest-rerunfailures/Manifest
index 7d3de49360c2..ac8190f873d2 100644
--- a/dev-python/pytest-rerunfailures/Manifest
+++ b/dev-python/pytest-rerunfailures/Manifest
@@ -1 +1,2 @@
DIST pytest_rerunfailures-16.1.tar.gz 30889 BLAKE2B 05e4f4a209371b33acfc469a95e5b9ca6a80f97f7529355bf315a78f384e79c60895f6aace0df223591d041015bb280c3ee4c24db9fb97eb44a5b6268042d60c SHA512 ad5d55b7d7dfa9ea3f488a021b1ab3624f297ff723ee99f7a4bf77c402f7e9770b81d7590d6e2701c19fa744b8e1695c96b8272d9c2de0625309489a4337a223
+DIST pytest_rerunfailures-16.2.tar.gz 32121 BLAKE2B f4beff5202f72734be455b60dd0f597f437fe5bedade220a1c863df907d1f058c6692268029e15395aadc9c53d48b7ad78321b038b9b8f5d6005a086a79ef052 SHA512 e31ebdd258a43211ef8c3f789eb217b413a4ee1e0a31fb037e6642dad6a247f596ab537896d50ff069a06b72c89f2c1e3a65dc1394bf4d81753ccdb25f79a124
diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.2.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.2.ebuild
new file mode 100644
index 000000000000..5a6221a28f38
--- /dev/null
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.2.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin to re-run tests to eliminate flaky failures"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-rerunfailures/
+ https://pypi.org/project/pytest-rerunfailures/
+"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-17.1[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGIN_LOAD_VIA_ENV=1
+EPYTEST_PLUGINS=( "${PN}" )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
diff --git a/dev-python/python-neutronclient/Manifest b/dev-python/python-neutronclient/Manifest
index f275c1746ea8..00117a3ae978 100644
--- a/dev-python/python-neutronclient/Manifest
+++ b/dev-python/python-neutronclient/Manifest
@@ -1 +1,2 @@
DIST python_neutronclient-11.8.0.tar.gz 213135 BLAKE2B fc38678c2e5f922096e84f4c11f4a6bb07ec4dff3caac94d1a858ea29e0e28c934312c0c0ca9fc7534decd5509904a58dc346dd74256152acc7ce72d01fffee6 SHA512 2b83f4cd336190f4872e5dc53a3b0bbdf8736d6e1704c07dac83fc5f218b0b213105067cdbd35e2f1f76062909304da0bf4efd0482f2fe7ab3b2a7cd1fe10143
+DIST python_neutronclient-12.0.0.tar.gz 185697 BLAKE2B 18e21a98eef52f487796a6d4a517d1468bf7140f49426cb2b7e70dcff7245d47565944b5981f29ca2bbfda35a8d2c872639064b04369780b07f43a3074cff908 SHA512 e85793c58cd55974be6fe215d9b08d1776111c523e0dcf3d5c93718cb7d8387e0dc91714971adcdd21e33f9d4fb583640f46a7700a506c76fc16f6493c1628da
diff --git a/dev-python/python-neutronclient/python-neutronclient-12.0.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-12.0.0.ebuild
new file mode 100644
index 000000000000..70b7c643d9b2
--- /dev/null
+++ b/dev-python/python-neutronclient/python-neutronclient-12.0.0.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack Quantum API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-neutronclient/
+ https://github.com/openstack/python-neutronclient/
+ https://pypi.org/project/python-neutronclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/cliff-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
+ >=dev-python/openstacksdk-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/osc-lib-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.8.0[${PYTHON_USEDEP}]
+ >=dev-python/python-keystoneclient-3.8.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ test? (
+ dev-python/bandit[${PYTHON_USEDEP}]
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/oslotest[${PYTHON_USEDEP}]
+ dev-python/python-openstackclient[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ # Needs osprofile
+ rm neutronclient/tests/unit/test_http.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b neutronclient.tests.unit
+}
+
+python_install() {
+ distutils-r1_python_install
+ # stupid stupid stupid
+ local SITEDIR="${D}$(python_get_sitedir)" || die
+ cd "${SITEDIR}" || die
+ local egg=( python_neutronclient*.dist-info )
+ [[ -d ${egg[0]} ]] || die "python_quantumclient*.dist-info not found"
+ ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
+ ln -s neutronclient quantumclient || die
+ ln -s neutron quantumclient/quantum || die
+}
diff --git a/dev-python/python-novaclient/Manifest b/dev-python/python-novaclient/Manifest
index c2aa83dcf38c..75e44c6c69d1 100644
--- a/dev-python/python-novaclient/Manifest
+++ b/dev-python/python-novaclient/Manifest
@@ -1 +1,2 @@
DIST python_novaclient-18.12.0.tar.gz 340638 BLAKE2B 00505d69408eba728a8567df4e81291a1ecfa17f8f11bd10486c3d64f022339a6590915cecffae5c4831219c98ab6dccb4d457ce3e56567e718e9b7def61463e SHA512 d8d159dc58ea37bd68f98a5db633dd4972bdfceebe92d1324c5e9525c9f50d173ea31885a4ba5d72a934ee25c8bf51f9851bf56e72221fe717af5c1f76d5224b
+DIST python_novaclient-18.13.0.tar.gz 340695 BLAKE2B 23f9de0a7d3e93a544311b5b17a81a7bc5ffe448b1aa0c1eddd4a5dde595293e39cdd8828e974000783ea6947e98273d8eac1986bf03872cb70003ff80ee8909 SHA512 88f9b447700fb89ccebf0078423dd12b6d45c72549fef0bb15b2d9bb05813c126b6bd301f55e9c1913b0b28f4d17144d49b38a26caf785a5501762c8bfe23c12
diff --git a/dev-python/python-novaclient/python-novaclient-18.13.0.ebuild b/dev-python/python-novaclient/python-novaclient-18.13.0.ebuild
new file mode 100644
index 000000000000..f61857f92df4
--- /dev/null
+++ b/dev-python/python-novaclient/python-novaclient-18.13.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A client for the OpenStack Nova API"
+HOMEPAGE="
+ https://opendev.org/openstack/python-novaclient/
+ https://github.com/openstack/python-novaclient/
+ https://pypi.org/project/python-novaclient/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
+ >=dev-python/keystoneauth1-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
+ >=dev-python/prettytable-0.7.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.12.2[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-2.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/openstacksdk[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ dev-python/testtools[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ sed -e 's/test_osprofiler/_&/' -i novaclient/tests/unit/test_shell.py || die
+ sed -e 's/novaclient\.tests\.unit\.//' -i novaclient/tests/unit/test_api_versions.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # functional tests require cloud instance access
+ eunittest -b novaclient/tests/unit
+}
diff --git a/dev-python/requests/Manifest b/dev-python/requests/Manifest
index cd00b980b2c7..c24c914e6df8 100644
--- a/dev-python/requests/Manifest
+++ b/dev-python/requests/Manifest
@@ -2,3 +2,5 @@ DIST requests-2.33.1.tar.gz 134120 BLAKE2B 290c77a0f0d90d04638be623f9a3295590286
DIST requests-2.33.1.tar.gz.provenance 9256 BLAKE2B 5257b1e8dac44c85b121e04d9591b73d8e2a95ba8ad7d5a45e954d0d676a44b877da0f800bcf934e843ceaf19522bb81eb616c646ad4ac56ee6c3b7ef74a5913 SHA512 5239edd498ff5c27a92a950b75985da8c59064f7abc04809ab71c54e7f3b8b82a268a291b0431560e5fe70266f0fe5a6151fb804c093a9f99c6a6138ba6b80fb
DIST requests-2.34.0.tar.gz 142436 BLAKE2B 3aa791f8ebc58f6cd0f51883653a6860ba6503071abdd267d3473e6fa9d325aeb3bef46890d4551f946d867482b2396a2328653b08ea4a8e1ef4a7a5a4c7fbbd SHA512 4e3b5c40489b682225667cf46e36058bc22dce6b580e3d01962ea7fa46517e15a775458ebeb970b53fb2f87048f3f09bf09ac599b66c36827622fea7c17e83b6
DIST requests-2.34.0.tar.gz.provenance 9389 BLAKE2B b25418a2b8160ac911e40d74d6f5e5359752ed956c683acb06e6dc90b13eac198cce8f389f9e6a1ed68f5f7a0317e29bb3723fbfc4a71e6bcf08f604adc15d39 SHA512 8b6387f8c81e3b1d160498992af49991e50f9c85f064a9d4b88b2346f9524d5cc6e1f996b2b347a351b9681d51e1ba28cffb8d51c53d7143fdea99943d953ad1
+DIST requests-2.34.1.tar.gz 142783 BLAKE2B 868efc2e60868d71437b007fc7bab44b344e573ed94a9dd551dd7d675924de581aa9e940ced50f60305c944b38c5be89ef2832904ea19ce2f36b994c70be8093 SHA512 1e734caa69e99c120cfff2bd5aade24feaa0000684f5499fcad94ae246aa68720724ab7acbdd611df14ca6d20f705c906fa27b808f6cf6b97fc325e41abb4dae
+DIST requests-2.34.1.tar.gz.provenance 9503 BLAKE2B cffe5ceda2925e220b2af586bcc8363ad0ace0cb045e5a40d7a620ab8c4a43ab600c82d3579d7c6ef52eec9521c938c9fed5e823c5dba0089de09a70355f082e SHA512 ea1ec91731c4e70fa348b5acbcc88a9e9d0b46058e74d771565ad99704c4f48d8c7f511d94c3ff59ccd43c12d4a3014f8bb7c3cdb8610f7610322aef18940f40
diff --git a/dev-python/requests/requests-2.34.1.ebuild b/dev-python/requests/requests-2.34.1.ebuild
new file mode 100644
index 000000000000..6914a45b50a2
--- /dev/null
+++ b/dev-python/requests/requests-2.34.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/psf/requests
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="HTTP library for human beings"
+HOMEPAGE="
+ https://requests.readthedocs.io/
+ https://github.com/psf/requests/
+ https://pypi.org/project/requests/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="socks5 test-rust"
+
+RDEPEND="
+ >=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}]
+ <dev-python/charset-normalizer-4[${PYTHON_USEDEP}]
+ <dev-python/idna-4[${PYTHON_USEDEP}]
+ <dev-python/urllib3-3[${PYTHON_USEDEP}]
+ socks5? ( >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}] )
+"
+
+BDEPEND="
+ test? (
+ dev-python/httpbin[${PYTHON_USEDEP}]
+ >=dev-python/pysocks-1.5.6[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/trustme[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{httpbin,mock} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # remove useless dependency check spam
+ sed -i -e '/urllib3_version_list =/i\
+ return' src/requests/__init__.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet (doctests)
+ requests/__init__.py::requests
+ requests/api.py::requests.api.request
+ requests/models.py::requests.models.PreparedRequest
+ requests/sessions.py::requests.sessions.Session
+ # require IPv4 interface in 10.* range
+ tests/test_requests.py::TestTimeout::test_connect_timeout
+ tests/test_requests.py::TestTimeout::test_total_timeout_connect
+ )
+
+ if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/test_requests.py::TestRequests::test_https_warnings
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index c08d5ae3c4ad..2eff36ded9dc 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,2 +1,2 @@
-DIST sqlglot-30.6.0.tar.gz 5835307 BLAKE2B 1475d1c601a1de820fd7395b1c4da05e27edd09adfa74261c767dc941fe1685352f4991d99cf4e50b949fb453363ca76df6fbbb521ee642cd1935337b53022d8 SHA512 4d5f9495445248c81e85b6cc21108de07b35b53711b7c8643b9f6dfa8ce462a03c1247458cd1d114d8db5e9dcb81d8dd2bd3fca0a90c9a8a65ba4d6b63d15127
DIST sqlglot-30.7.0.tar.gz 5860425 BLAKE2B 0d6812c1857b0927b6f2a7e22d21967de694a0face5b368ab494ed0148054dae289c4b8cb0728690f1776191e723ef128798784cd843b110391673fd6e8f65fa SHA512 8bb0e1739203f23483ebf1ff4a35ccf6c99b4ec49bab6f694c7648839f15867adaa058b66beb9393ad617fd74225f0e217a3bcf5c37ff811cec7d41550a2dfc5
+DIST sqlglot-30.8.0.tar.gz 5869750 BLAKE2B c6345dc83e51eb0a20bd09743653f4103af45d8a8d11832b5c461afa3dc4be664cf7c4b3574350f1a0214e9e0dabe8cd706fa089b387d42488fff86cec2fabbf SHA512 4647e2d605d68ed424608a648d369e0dc7ffcc111c5f909bd236f8ff7c1491484f2934b177463199701fab91a5623084d50427a7e86b88a8dd66675f38fa39c3
diff --git a/dev-python/sqlglot/sqlglot-30.6.0.ebuild b/dev-python/sqlglot/sqlglot-30.8.0.ebuild
index 3216536fae1c..3216536fae1c 100644
--- a/dev-python/sqlglot/sqlglot-30.6.0.ebuild
+++ b/dev-python/sqlglot/sqlglot-30.8.0.ebuild
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index 8802a30a797b..c0eb717a33e1 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -6,3 +6,5 @@ DIST virtualenv-21.3.1.tar.gz 7613791 BLAKE2B a62d25304dfb3feff7932b7135ff5c6c9f
DIST virtualenv-21.3.1.tar.gz.provenance 9480 BLAKE2B 5322a3f210b2dbf92684bf0d2e99a9326b375e46135c1c7f3281b94a71d417cff696ea919b1602e61ae16d92642e3dc629c3948c609b115a0a45502fa8f2135e SHA512 665acafd07adb9594a8be6696987eceaa3702bc850c29c27f7e203cb56666fc3715a5419bb49e2b219756b1c880412afc314f7528c9ae2230501fa40fa99d4e8
DIST virtualenv-21.3.2.tar.gz 7613810 BLAKE2B 3e218849f44b3d9801b610a480712af7da589ea67921cf99b65b08bcbba556b2325823039ec238f60868345b81676386286a70cde963ab3bc48bd29742d21dd6 SHA512 506668a1f6a62712f62a712ce65515c619dd60b19899e6555ebbc15453ef294a81048f7728e22e1275d374a132d980a5b3e8590025539cb7615b11228cef9c5e
DIST virtualenv-21.3.2.tar.gz.provenance 9249 BLAKE2B 08c7750b78743dcbde4371f3c7fa15aed1f9d3e5f38d7c83ce098909f296908c82dbcb2a0501bfd00fd2b027ff3df1680145e64ab07fc6e1d9d95aa3f102ac36 SHA512 8dee68c63faab7e8fa78dd300e690b5ccba1b2589f1af5c1d2e846bea21802028c16e001af14a75e14d94d026f61b552fe7448525c0110ac67b5f45baa3d85c0
+DIST virtualenv-21.3.3.tar.gz 7613784 BLAKE2B b196f2e02c44aca34d53f1e0208bb8b6a10523dc6f59cb4a7dca0b6141c807dd807f61e05832ec5efc027af3d8823cbb5c3e09a9c2ea834fec694571f863b140 SHA512 f3e7c71f2fafa0bff05aba89bc0cb2e2eede0c6ed5373fb253a6ac59f103505108671e5c19866562146723ea9630fc472dade53498c4fb97d6ec5c8e1c125d19
+DIST virtualenv-21.3.3.tar.gz.provenance 9284 BLAKE2B 87ae9b8009c397d949d9fafecafd4690e1bf034edd70287b589ca0a96476087ceba27fffe608a60361a370f80d3b3b9e89cd801a8a41f89441cf24464105b655 SHA512 8c957c4dcaa13886bb03fb52a5a29ad632fa48effbdd7273baf6985c376d760a0b00b5dd0fca6a641baf91b1431b7319beee2916676926ee9c2d57cf49bd778d
diff --git a/dev-python/virtualenv/virtualenv-21.3.3.ebuild b/dev-python/virtualenv/virtualenv-21.3.3.ebuild
new file mode 100644
index 000000000000..8a11435847a4
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.3.3.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2026 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/pypa/virtualenv
+PYTHON_TESTED=( python3_{11..14} pypy3_11 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.3.1[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ >=dev-python/ensurepip-setuptools-70.1
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' python3_{11..14})
+ $(python_gen_cond_dep '
+ >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
+ ' 'pypy3*')
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-21.2.4-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ # Internet
+ tests/unit/create/test_creator.py::test_create_distutils_cfg
+ # we do not use bundled wheels
+ tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
+ )
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # these don't like the executable called pypy3.11?
+ tests/unit/activation/test_bash.py::test_bash
+ tests/unit/activation/test_fish.py::test_fish
+ tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
+ )
+ ;;
+ esac
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
+ if [[ ${EPYTHON} == pypy3* ]]; then
+ EPYTEST_PLUGINS+=( pytest-freezer )
+ else
+ EPYTEST_PLUGINS+=( time-machine )
+ fi
+ local EPYTEST_RERUNS=5
+ local EPYTEST_TIMEOUT=180
+ local EPYTEST_XDIST=1
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}