summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/agent-client-protocol/agent-client-protocol-0.12.1.ebuild1
-rw-r--r--dev-python/ast-serialize/Manifest3
-rw-r--r--dev-python/ast-serialize/ast-serialize-0.11.1.ebuild47
-rw-r--r--dev-python/awscrt/Manifest1
-rw-r--r--dev-python/awscrt/awscrt-0.36.1.ebuild64
-rw-r--r--dev-python/bibtexparser/Manifest1
-rw-r--r--dev-python/bibtexparser/bibtexparser-2.0.1.ebuild26
-rw-r--r--dev-python/boto3/Manifest2
-rw-r--r--dev-python/boto3/boto3-1.43.91.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.43.92.ebuild53
-rw-r--r--dev-python/botocore/Manifest2
-rw-r--r--dev-python/botocore/botocore-1.43.91.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.43.92.ebuild67
-rw-r--r--dev-python/build/Manifest1
-rw-r--r--dev-python/build/build-1.6.1.ebuild78
-rw-r--r--dev-python/cfn-lint/Manifest8
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.2.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.56.1.ebuild)0
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.3.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.53.3.ebuild)5
-rw-r--r--dev-python/elasticsearch/Manifest2
-rw-r--r--dev-python/elasticsearch/elasticsearch-9.5.1.ebuild (renamed from dev-python/elasticsearch/elasticsearch-9.4.1.ebuild)2
-rw-r--r--dev-python/electrum-ecc/Manifest1
-rw-r--r--dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild40
-rw-r--r--dev-python/fakeredis/Manifest2
-rw-r--r--dev-python/fakeredis/fakeredis-2.38.0.ebuild133
-rw-r--r--dev-python/fonttools/Manifest1
-rw-r--r--dev-python/fonttools/fonttools-4.65.0.ebuild62
-rw-r--r--dev-python/funcy/Manifest1
-rw-r--r--dev-python/funcy/funcy-2.1.ebuild28
-rw-r--r--dev-python/google-auth/Manifest6
-rw-r--r--dev-python/google-auth/google-auth-2.55.2.ebuild64
-rw-r--r--dev-python/google-auth/google-auth-2.58.0.ebuild (renamed from dev-python/google-auth/google-auth-2.57.0.ebuild)0
-rw-r--r--dev-python/multidict/Manifest1
-rw-r--r--dev-python/multidict/multidict-6.8.0.ebuild67
-rw-r--r--dev-python/oslo-log/Manifest1
-rw-r--r--dev-python/oslo-log/oslo-log-8.3.2.ebuild52
-rw-r--r--dev-python/phonenumbers/Manifest2
-rw-r--r--dev-python/phonenumbers/phonenumbers-9.0.39.ebuild (renamed from dev-python/phonenumbers/phonenumbers-9.0.36.ebuild)2
-rw-r--r--dev-python/portalocker/metadata.xml4
-rw-r--r--dev-python/psycopg/Manifest1
-rw-r--r--dev-python/psycopg/psycopg-2.9.13.ebuild61
-rw-r--r--dev-python/pure-eval/Manifest1
-rw-r--r--dev-python/pure-eval/pure-eval-0.2.4.ebuild22
-rw-r--r--dev-python/py-landlock/py-landlock-0.1.1.ebuild2
-rw-r--r--dev-python/pygobject/Manifest7
-rw-r--r--dev-python/pygobject/pygobject-3.52.3.ebuild102
-rw-r--r--dev-python/pygobject/pygobject-3.52.4.ebuild102
-rw-r--r--dev-python/pygobject/pygobject-3.54.5.ebuild82
-rw-r--r--dev-python/pygobject/pygobject-3.58.0.ebuild (renamed from dev-python/pygobject/pygobject-3.56.2.ebuild)9
-rw-r--r--dev-python/pykeepass/pykeepass-4.2.0.ebuild2
-rw-r--r--dev-python/pymongo/Manifest1
-rw-r--r--dev-python/pymongo/pymongo-4.18.1.ebuild201
-rw-r--r--dev-python/regex/Manifest1
-rw-r--r--dev-python/regex/regex-2026.9.10.ebuild37
-rw-r--r--dev-python/scikit-learn/Manifest2
-rw-r--r--dev-python/scikit-learn/scikit-learn-1.9.1.ebuild (renamed from dev-python/scikit-learn/scikit-learn-1.9.0_rc1.ebuild)0
-rw-r--r--dev-python/selenium/Manifest3
-rw-r--r--dev-python/selenium/selenium-4.49.0.ebuild151
-rw-r--r--dev-python/sip/sip-6.16.1-r1.ebuild2
-rw-r--r--dev-python/snakeoil/snakeoil-0.11.6.ebuild2
-rw-r--r--dev-python/tox/Manifest2
-rw-r--r--dev-python/tox/tox-4.61.4.ebuild84
-rw-r--r--dev-python/uv-build/Manifest8
-rw-r--r--dev-python/uv-build/uv-build-0.11.23.ebuild99
-rw-r--r--dev-python/uv-build/uv-build-0.11.29.ebuild99
-rw-r--r--dev-python/uv-build/uv-build-0.12.1.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.12.12.ebuild (renamed from dev-python/uv-build/uv-build-0.12.11.ebuild)0
-rw-r--r--dev-python/uv-build/uv-build-0.12.13.ebuild (renamed from dev-python/uv-build/uv-build-0.12.6.ebuild)0
-rw-r--r--dev-python/uv-build/uv-build-0.12.8.ebuild100
-rw-r--r--dev-python/uv/Manifest16
-rw-r--r--dev-python/uv/uv-0.11.23.ebuild163
-rw-r--r--dev-python/uv/uv-0.11.29.ebuild163
-rw-r--r--dev-python/uv/uv-0.12.1.ebuild149
-rw-r--r--dev-python/uv/uv-0.12.12.ebuild (renamed from dev-python/uv/uv-0.12.11.ebuild)0
-rw-r--r--dev-python/uv/uv-0.12.13.ebuild (renamed from dev-python/uv/uv-0.12.6.ebuild)0
-rw-r--r--dev-python/uv/uv-0.12.8.ebuild151
-rw-r--r--dev-python/wrapt/Manifest2
-rw-r--r--dev-python/wrapt/wrapt-2.4.1.ebuild40
77 files changed, 1431 insertions, 1486 deletions
diff --git a/dev-python/agent-client-protocol/agent-client-protocol-0.12.1.ebuild b/dev-python/agent-client-protocol/agent-client-protocol-0.12.1.ebuild
index 911bffd552df..c6ade4b59bc3 100644
--- a/dev-python/agent-client-protocol/agent-client-protocol-0.12.1.ebuild
+++ b/dev-python/agent-client-protocol/agent-client-protocol-0.12.1.ebuild
@@ -32,6 +32,7 @@ BDEPEND="
test? (
>=dev-python/h2-3[${PYTHON_USEDEP}]
>=dev-python/httpx-0.27[${PYTHON_USEDEP}]
+ >=dev-python/uvicorn-0.30[${PYTHON_USEDEP}]
>=dev-python/websockets-12.0[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/ast-serialize/Manifest b/dev-python/ast-serialize/Manifest
index 996fc8ef010f..776c87decd84 100644
--- a/dev-python/ast-serialize/Manifest
+++ b/dev-python/ast-serialize/Manifest
@@ -17,6 +17,9 @@ DIST ast_serialize-0.10.0.tar.gz.provenance 9976 BLAKE2B b53ba5b18e7de1ef6494299
DIST ast_serialize-0.11.0-crates.tar.xz 8982344 BLAKE2B 1c5a26985bbca3537808e0c49a11af37f4666194b9f757d3039d55ca895bd7932bf50d4a7944fad85973a4c88d2ea5680313241abe56dfe81c25f98a7a37ffc7 SHA512 aed9985a44ff14b227d2c67e89358d1dfdd13d728fc1347d6b139d65f1ed4a8a8c5c461a80a5862525aa12c07f8ee86162aad0a722f30221e38e26bfc4163d69
DIST ast_serialize-0.11.0.tar.gz 953724 BLAKE2B f20f1f3a2a916c71d39807d796037ce8c4dbef9cf99617cf786bccab86d54041077824a4135db94c5c235bfc110b4e229b37414def4d6c51b81a1d52d85797ef SHA512 be177f88c945cf939e858dbebf11fbeac8d824815f9d6b37ca258d50674bcabbbff610daa990d77b13572bfeaa81289a444ae8fab2e0b84e8e3956816ad61c8b
DIST ast_serialize-0.11.0.tar.gz.provenance 10019 BLAKE2B 8d8ba1f83b9b0f4db9526d090c5688d11e1344fdd1b8e80c9954e075100f8b3ec5b6cdf4b7a406293ef330945cd0f7582de514e5707f8fa9bb2a3c742b29c55f SHA512 ce40b3ba3044877f356f9b18fa0b9b61ade4d4bc5fa7bfb3dbc9c7dace592a7fe8b5a87f935da77c1f1a012dbf243d67f348edecf1622e39eb5ade0c1720121a
+DIST ast_serialize-0.11.1-crates.tar.xz 8982344 BLAKE2B 1c5a26985bbca3537808e0c49a11af37f4666194b9f757d3039d55ca895bd7932bf50d4a7944fad85973a4c88d2ea5680313241abe56dfe81c25f98a7a37ffc7 SHA512 aed9985a44ff14b227d2c67e89358d1dfdd13d728fc1347d6b139d65f1ed4a8a8c5c461a80a5862525aa12c07f8ee86162aad0a722f30221e38e26bfc4163d69
+DIST ast_serialize-0.11.1.tar.gz 953785 BLAKE2B e52bb557b4bbd9d7700f91a4cfcfb5188e4f4fdbf50fa9355df535b82af6b333068cfb4ab717ac6a01f33a177a85b82da7ff237f7311e513634bf155465bf228 SHA512 67f23270ca382aaa821bd95bc9169b648666b820fdd33dd325237d0f5e20cd136e98bc0ca0161fcb7ae3c003f9505f5aa0547a38ceaaa61aff5c82c0de07db22
+DIST ast_serialize-0.11.1.tar.gz.provenance 10074 BLAKE2B 834034ae00d3c4c9c85ae032365adb6bf219a5e15212096b6cb05b6d8325707c58872f1bf4ecaaf5dca53aafea4336b4bc904e24971a84e4e8c2e3eaed8129ee SHA512 3cfbb8c3d1e1f923140744067e89425ea2a51b7bf1ce279ecaf20826b67a6b106e8768b745ad22333f4ef0041c1f37c2185a91050a6ef7c5841dd297f2eb38c0
DIST ast_serialize-0.7.0.tar.gz 845507 BLAKE2B 2ae173ce25210a8fa69917acef2eb6de3dec5f3bc3ea0cddf1fd962f654b5ed9b7fb3ac3d39f089fa8c9c058dd366d48a49543d97f706164b8459f243259fdb3 SHA512 b50d29b37640939e0b7e6f05ee46e7f8fb0e5f2e7a2cdec91c7093e01015d0ce9d23e1734594be2435fb17e6111ec88f40c3d8297a520edd7e95516b17ca6940
DIST ast_serialize-0.7.0.tar.gz.provenance 9942 BLAKE2B b6c2a9796d9079900d1b1b729c3488a8bed445d3f22410112dceb7c2991d699e29dac56e3674fa059064d6908f28401e442b2dc7e6bb00ba01871d085726a68a SHA512 4775c8a45e5c5cfaf87486fe468c1b115172dcfd21e5fe459033c8d604b157158d12689d7a0ea4134ef4c91a0fb5ac934d51f11e47f6cf51d995e82122b5d202
DIST ast_serialize-0.8.0.tar.gz 845638 BLAKE2B 9b09fb82f073c3ae73486dab703c22e80cb2c5973adc94faa747d01923221d79b06f17b5b300adf13e59fa5e64b3d0fb31d7beecf1e84b0a7b692d1ae79ae8ea SHA512 5ccb2f87da07e432e6f7f3790c6c9adb9403fb90c60a223a2fc598c6a931e44b88b504b1f3e45bcef5b51f2f75349fd0e3718d7f484addd046f566b3b1045315
diff --git a/dev-python/ast-serialize/ast-serialize-0.11.1.ebuild b/dev-python/ast-serialize/ast-serialize-0.11.1.ebuild
new file mode 100644
index 000000000000..7142c24913c5
--- /dev/null
+++ b/dev-python/ast-serialize/ast-serialize-0.11.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYPI_VERIFY_REPO=https://github.com/mypyc/ast_serialize
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.95.0"
+CRATES="
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Python bindings for mypy AST serialization"
+HOMEPAGE="
+ https://github.com/mypyc/ast_serialize/
+ https://pypi.org/project/ast-serialize/
+"
+SRC_URI+="
+ https://github.com/gentoo-crate-dist/ast_serialize/releases/download/v${PV}/ast_serialize-${PV}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0
+ Unicode-DFS-2016 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ crates
+)
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/ast_serialize/ast_serialize.*"
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_gen_config
+}
diff --git a/dev-python/awscrt/Manifest b/dev-python/awscrt/Manifest
index af31b6126a0a..0838de46a99d 100644
--- a/dev-python/awscrt/Manifest
+++ b/dev-python/awscrt/Manifest
@@ -1,2 +1 @@
-DIST awscrt-0.36.1.tar.gz 37073487 BLAKE2B e2807fe2a0c0389c420c610fbbbdb9f1e43d130a85a8c20e85f4abcf0dd42200a9a8779b1ff4970378200cabee8822f7cfd158964142633dd2b5728dbe6404cb SHA512 bc0663307af5694318dd3b7733598aa7826cec9ed5904bd798a32c6aa0544112516634ab1c8f7f3558547fcd7f38ee0c1cb5348b1b0726e242f9852562b7e5c3
DIST awscrt-0.36.2.tar.gz 37121147 BLAKE2B d75e83e023c7be0ed351df02056337bb6541dbbd8364e8e1037adf9644dbb0418f06a78789ed7d3823d9a30348dea77bd870b0af9bf3735f41f8f43b50a37d76 SHA512 e58de9bc41cdf7b70e15517da3025f1494e27a3eddf207fe571975e02a63b7a447900fc81b5fcf5c9876bd9ce514da02c7c7d8a39e90948d5cd03b96d644726a
diff --git a/dev-python/awscrt/awscrt-0.36.1.ebuild b/dev-python/awscrt/awscrt-0.36.1.ebuild
deleted file mode 100644
index b5723a03c1c4..000000000000
--- a/dev-python/awscrt/awscrt-0.36.1.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2026 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_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A common runtime for AWS Python projects"
-HOMEPAGE="
- https://github.com/awslabs/aws-crt-python/
- https://pypi.org/project/awscrt/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-DEPEND="
- dev-libs/aws-c-common:=
- dev-libs/aws-c-auth:=
- dev-libs/aws-c-sdkutils:=
- dev-libs/aws-c-cal:=
- dev-libs/aws-c-io:=
- dev-libs/aws-c-compression:=
- dev-libs/aws-c-event-stream:=
- dev-libs/aws-c-http:=
- dev-libs/aws-c-auth:=
- dev-libs/aws-c-mqtt:=
- dev-libs/aws-c-s3:=
- dev-libs/aws-checksums:=
- dev-libs/openssl:=
- dev-libs/s2n-tls:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- test? (
- dev-python/h2[${PYTHON_USEDEP}]
- dev-python/websockets[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests unittest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # remove bundled libs
- rm -r crt || die
- export AWS_CRT_BUILD_USE_SYSTEM_LIBS=1
-
- # Internet/DNS
- sed -e 's:test_h2_remote_end_stream_ordering:_&:' \
- -e 's:test_cross_thread_http2_client:_&:' \
- -e 's:test_h2_client:_&:' \
- -e 's:test_h2_manual_write_exception:_&:' \
- -e 's:test_h2_remote_end_stream_ordering:_&:' \
- -i test/test_{aio,}http_client.py || die
-}
diff --git a/dev-python/bibtexparser/Manifest b/dev-python/bibtexparser/Manifest
index ce35a4df7c6b..58f3b38ebb5e 100644
--- a/dev-python/bibtexparser/Manifest
+++ b/dev-python/bibtexparser/Manifest
@@ -1,2 +1,3 @@
DIST bibtexparser-1.4.4.gh.tar.gz 97227 BLAKE2B 53ba09d456e339d5c58254c2403629ca2fccbef79800f5c3a0f2bb1e961399f764b5e4ef9391463f0421338ce8c140f247471f1220f840d431db3c36cda3c9a7 SHA512 fe853847215c2d363ad2238afbc310b2e5946630092b86ff010c1053e1afa9acbed81ee4954fb1793d11a9bb19627f31f56bdb59c429c1d520aa4deffb454599
DIST bibtexparser-2.0.0.tar.gz 88017 BLAKE2B a3ad59546a7a3c5c5ba736d70e77a07c6d6aaf60139a129ee77e3676bceecae3a90e3011395130ed678f9a0792fb3d730864f7345dd5dd5e73ef4f4172cc5dd4 SHA512 044e18c30fd6147dffd7d0b4b5f15fccc0ec443c62503ddd3f18d13270df0a9eb65b8eb1a0ba8ed01a362397781d59820ee20415f1c9a4cc79e9e0e7a1acdbd1
+DIST bibtexparser-2.0.1.tar.gz 88449 BLAKE2B a53ee76ab6d301d55bbc0ea19a2899cb565ebe728890b9543ecd5df30e8eebb081f8bfa49ec899fbc1005ab73a294ec56b165bf739e1adb0e63c359bcc45de75 SHA512 a8cb17d27c85d3e22cb292fd7ef19b12b4f0cab509e266004907a9a02aa9f2b6d6fde5152156c68ffe564ea9f076131e3521382007ac8bc76a73ccc2af6f6605
diff --git a/dev-python/bibtexparser/bibtexparser-2.0.1.ebuild b/dev-python/bibtexparser/bibtexparser-2.0.1.ebuild
new file mode 100644
index 000000000000..9fd150062431
--- /dev/null
+++ b/dev-python/bibtexparser/bibtexparser-2.0.1.ebuild
@@ -0,0 +1,26 @@
+# 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A BibTeX parser written in Python"
+HOMEPAGE="
+ https://github.com/sciunto-org/python-bibtexparser/
+ https://pypi.org/project/bibtexparser/
+"
+
+LICENSE="|| ( BSD LGPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/pylatexenc-2.10[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index aedef680c72b..d10526f854ec 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -11,3 +11,5 @@ DIST boto3-1.43.78.gh.tar.gz 1213393 BLAKE2B b3e4188ba53609873bf6613d5667792d246
DIST boto3-1.43.83.gh.tar.gz 1218064 BLAKE2B 0758e28dd9b086615b045e107aece2ef46bee541110e51fdcd231c60cac0452f4cdfec58ea4041757835c195cd2b8becb3c4e9fd24ad7bc306d90b16af082f63 SHA512 ed110edd551138c5d63ab7ead46a4c9ddb410dea1b5e642045102936af22c4208f357f79fc994434fc6a7df7c16aba99052508103bad7599f8cc558ae1c5f842
DIST boto3-1.43.89.gh.tar.gz 1225424 BLAKE2B 625bb37a542644c8fe37aab42a115bf8be2e36373d7f6149dcc7e150e327c75b334ef480897be1d4954809b233a47e02854d7b28b4a3904f0e5cdcea3f0440d7 SHA512 1c04fd6df819abbe60d551c6d706f7254fe6d6758e95fd53ec70d4dd892b6f7bf69981cb001fc6ca5bc5885f083718b80a4fd045b146e7f4add16a50ac3a9d38
DIST boto3-1.43.90.gh.tar.gz 1226424 BLAKE2B 027f90499bd5b8e3389b65dbe06b3221efae0df3809b7b364edaec6e7c33082043fbcf8ae69f48b55ab46fb161a7c707c17a61558ce503a9ebf1ab883857967a SHA512 aa68333b98d43e4fe04b1f8fc23098bb252286e6cc57332e592a26b551ec75f75165e790ddbf37a15ca406b7ba82a24c470a11f46377c10a58b0da1a470cd34d
+DIST boto3-1.43.91.gh.tar.gz 1227750 BLAKE2B cc3273f932ae1c6f5a75211f52fcf2b1b7c33562a7c71d4cb3efeb4b20f8da47ae503f2e7542d925913e4107cb7340d2e2ebcf7e1f7ea6424481b9e06a0e405d SHA512 9aa16e9b42ca0b5fcfed14f1f5db0ddb5e1950c04da80231b25d3374ca770a146cabda3e7052b358ca721d17b29dbb2496bdee44201022001ccacf4cd7d7ee29
+DIST boto3-1.43.92.gh.tar.gz 1229218 BLAKE2B 1286e2d3a0d6e9f557660c6ad611e149d63fdaab11224ee9eb3bbae72a1108253cc631f44307d0790a3296f0ae99a8d4572a77c353d42a69527f9929dad0b51e SHA512 fd2caee8ba3d5a7fe7299496068d2e46d2b8a247ca5e554602d4dea81a4261f7b412fa6c8f0377bc08b9ac6b4e9ff87a8814951059f2fcec86ae4f7bdbe31cf6
diff --git a/dev-python/boto3/boto3-1.43.91.ebuild b/dev-python/boto3/boto3-1.43.91.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.91.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_{13..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.19.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/boto3/boto3-1.43.92.ebuild b/dev-python/boto3/boto3-1.43.92.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.92.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_{13..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.19.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 e70856b2c527..0e72a7eb8657 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -11,3 +11,5 @@ DIST botocore-1.43.78.gh.tar.gz 17008224 BLAKE2B 137656d64f62025ca47f03c48ba84aa
DIST botocore-1.43.83.gh.tar.gz 17038145 BLAKE2B f74b399b04f9b259e1a2f424719c4b80cc279627174ac96f9b79d85418ecc0442fbd27d7e79ccdf12526ac02489fde4254e360f216103f3cd5ff050b3cf1a838 SHA512 618c0ef0fc89879ee6900606e3378b2876901c4a63ede52529de12898a65e34fc41a8f0ad8ab682b7788626176f9b86904e257b63d88be9d58c53116918b1d12
DIST botocore-1.43.89.gh.tar.gz 17111395 BLAKE2B 25837125b5d9477b011c065594ffa1b49a2f5d0cf76e1c664aa5401d50dfe8dd9573d0ab3a60f739c796c32965a7dd7608e302a284bfcc97d9f7f4a8a2b698e3 SHA512 c9c0b7636fb7595d4ff3ee2ec7e1ef8ad3000e9e453ce6edb827a1152109fc2fb6b226bd08f27653fc1436444c39be6f160fa4f7c34eb50a7384988686933590
DIST botocore-1.43.90.gh.tar.gz 17119827 BLAKE2B ade6107a22be148042c1c67dfd60445c819e021f112d62d696bd2d25409a1ce256a5d91fad193c152c408c247a046045fc6bb21cc8f4adff98c5d25e26136e14 SHA512 c072f119ce927495fa9720de11bfa95e7dfbef8f68c87689af248eabed4a3451d6adb20e1d9b4c17eace231d38f5bee5395efc7861f39951078b7873abb625ab
+DIST botocore-1.43.91.gh.tar.gz 17127799 BLAKE2B 7746ea5a5eccb1142bd440dfed2524cdea8bd37c558ef79645d173cf87404784b8ebc420a9e868da7465951ce907e2c33438ad78465c0082d5a2ff363df053cf SHA512 0e095317d1d77ae4a7f6e7605fd92b809f27034fee9e6414470fbc379e9a0bfffe00580e88c14ab96250c8ad39ecc105b7a7417a4f526807cf8f523516031606
+DIST botocore-1.43.92.gh.tar.gz 17135217 BLAKE2B 90d05a69153bc9ce4c1879dbc0af44fd876fb64439c94877e9ddbaceef1c6ef0b237807826a9b1fa67f706855ed87f20406e5b3c1de0e5a39197e2ae67c5a20f SHA512 2f2d7d6ec7b9309f0e95b2d8f84c701755ba28027c0ef0e340fe0f3e1bd78148c8fe8eb43a3bf7b036af4784dbb59076900e52702c43ff3c92e35065959616f1
diff --git a/dev-python/botocore/botocore-1.43.91.ebuild b/dev-python/botocore/botocore-1.43.91.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.91.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_{13..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/botocore/botocore-1.43.92.ebuild b/dev-python/botocore/botocore-1.43.92.ebuild
new file mode 100644
index 000000000000..a3a161f78545
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.92.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_{13..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/build/Manifest b/dev-python/build/Manifest
index 8c3b868e8f99..3269e600d412 100644
--- a/dev-python/build/Manifest
+++ b/dev-python/build/Manifest
@@ -1,2 +1,3 @@
DIST build-1.5.1.gh.tar.gz 119395 BLAKE2B bcf8d2e9abb06e8bda1e39667a3e29d562821fb2015ddcb6569de82e6a790c16f5a429a8cc2c58685287666d7759e462426168cbd65c28709fb967f713542e34 SHA512 d1ef87a2559ff29c0de4436ca2b9ed4e1f27660f81673afd40318586ff8fee581dc85936a00bf4b1afef8160746c0378a6a99c6c6887d64772450adc8387b2a3
DIST build-1.6.0.gh.tar.gz 121558 BLAKE2B e53a281ce4b19d9ff192f8d99d310c6619bf2741794b695828ddbb2e326b2cc7c3c93ec05ffd5713a8b0a592c33392e931371dffd713eb0b6ef249bf7fde4d20 SHA512 42105517da9e685f64cf65da082251a77a8a82048d15f7ac517dd1d80819c4ed9dacbc2ec92ee9561ae276de03c65afd8bb1c7ae03f03748de09af2d3820bcd0
+DIST build-1.6.1.gh.tar.gz 121156 BLAKE2B b7b96f5c4a2de6f57f59aa647a8eb35c2df3a47c12aa9a186d9cdb05bb50c8009955ed3d59c22f7e89fc3119445459fe66c4040b61712f8ea8da504a4453d0a5 SHA512 83a3a49fc92bdd717ad64fe3772489ba72c7f362484e7bb9baf7f5a68a167c876abe1222778691599e40f021c993223b9336437bcfab752d754b110651e2e11b
diff --git a/dev-python/build/build-1.6.1.ebuild b/dev-python/build/build-1.6.1.ebuild
new file mode 100644
index 000000000000..a3b1f60dbd00
--- /dev/null
+++ b/dev-python/build/build-1.6.1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+MY_P=${P/_p/.post}
+DESCRIPTION="A simple, correct PEP517 package builder"
+HOMEPAGE="
+ https://pypi.org/project/build/
+ https://github.com/pypa/build/
+"
+SRC_URI="
+ https://github.com/pypa/build/archive/${PV/_p/.post}.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"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/packaging-24.0[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-6[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ >=dev-python/filelock-3.20.1[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.3[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-2[${PYTHON_USEDEP}]
+ >=dev-python/pytest-rerunfailures-9.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-1.34[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-56.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20.36.1[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.36.0[${PYTHON_USEDEP}]
+ test-rust? (
+ !s390? ( !sparc? ( >=dev-python/uv-0.1.18 ) )
+ )
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+python_test() {
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # broken by uv being installed outside venv
+ tests/test_env.py::test_external_uv_detection_success
+ # Internet
+ 'tests/test_main.py::test_main_sdist_input_end_to_end[False]'
+ )
+
+ if ! has_version "dev-python/uv"; then
+ EPYTEST_DESELECT+=(
+ tests/test_env.py::test_uv_impl_install_cmd_well_formed
+ 'tests/test_env.py::test_venv_creation[uv-venv+uv-None]'
+ )
+ fi
+
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
+ local EPYTEST_XDIST=1
+ epytest -m "not network"
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index cb678d99d6a8..9caf20049e2d 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,10 +1,10 @@
-DIST cfn_lint-1.53.3.tar.gz 4614920 BLAKE2B 3243d3c1ce7a96cb8d19d2f648ebc933f54b4fbb821f69d4e3787c51427c3cd2dc4d7a1de93f60ff41b717a15d3e610351fa36fedb13d105d65ad3df901d7fa4 SHA512 2f9dd8c3472e954cb9fd2c44659bedb6ad7b490578cbf954d6624d50fa75adb375c549d1cbc0536acf546b8f285d9409885b01e50566be6ead3d21408963994f
-DIST cfn_lint-1.53.3.tar.gz.provenance 9707 BLAKE2B e7589b6c5b808a0f752fa91e603b62b5042757307d0bc7383cc8d380bd5f945a7391b3a357fd494d466ed542017b358658b9f2fc18e07abb390ce5ae6ae77427 SHA512 d70c96e40039e6ae1adfe788e5cea1c4453b788b1ea9392ee289426419b1264a5da3fb0e4064ad029c599fe22ef69e97302f17b89adb8aec4ed3f05bc0934dc7
DIST cfn_lint-1.54.0.tar.gz 4584764 BLAKE2B e901d2eef452cd3b059e413c0cf095b3c846adf4a07f1b32f8e04f064d7fd0dd08a23b6630d546a70d49327423524e69dd04c5a413674c2d1770a0a906aaaeee SHA512 6d64cecf3ece86a1941d0e587ee5875ceaeb84dacaed9b34dd9fab8fcfdec3f419d519b54848d5c0deb29d7e3e87f1460fd302ed7e690a2d3e979086a9b8aacc
DIST cfn_lint-1.54.0.tar.gz.provenance 9942 BLAKE2B 33e3aab9c9812b942847e3c1e66501cb732a7c2d787e076eb0e54a1f762010a7470c679bd1b57e47f724c60b601bf29647907832cac56f23cfe2a46320e553f0 SHA512 c62230d36ceb34ecae3422d00ada9813480942db887c2ff53a5c817e07d5fc7e54b36023e334c4edfc3fee4bea1010393d81289426cf1d24acd53eb8ec5aadfa
DIST cfn_lint-1.55.1.tar.gz 4646651 BLAKE2B d3ca76fb15a3695019334345897423e26ac0341a7c352a9c4b5a0407b37f9398f1f9e37372603d0a541760eb5e1506dc4bec7a48fa3b480f17e28bf2c42bc0b9 SHA512 b3f9968911ee841322d482c83238dd157f28639dec1088141ac06be7c88d88d94e500f70b912ed72f50993bbb7236d33ed19fdd270f00cd28f16c0791d5efbca
DIST cfn_lint-1.55.1.tar.gz.provenance 10179 BLAKE2B bee20ea785698e115569fa307d03ca09f1d6e8fcacaf418dfe0fc91553f3a7be127c1bff39804930c7d900007efe4cb31f1fb943064e28fad760d38990e7c729 SHA512 c71b2a1463cd290bb0532868b7f7f0ce047a7acdf18304240a15d3b472d8926a09a58665a89cd5a70913604bf27f0d75d93a567f42c8ebf20e2dcb6e9c71337d
DIST cfn_lint-1.56.0.tar.gz 4741346 BLAKE2B 610ed9da227212846ff36caf13e01031e0dfd2021fa9a0a5e619cca7196669ad833878707016a7870e53cb18abb0d57a407b2c62e8ab0f8ebe5506667eaf8659 SHA512 d6514d0c6e0b51d0c9a24d1ecb8965c78923027529fcf964c5146c70efca493eb76ead77c633c1f9e11cf2486decc2afd4f945e64f2aacd0275714303480c6dc
DIST cfn_lint-1.56.0.tar.gz.provenance 10175 BLAKE2B f0086aa9fb5358d28982dc5920e5d2658fcef45383f7fc6d0daf5d8be5d40251767203f8af17c3fbbddf581917b824f6e87a5f1ce0542c0f3d56a6ef57f0bb84 SHA512 07d7e71bdd6d201ccf6bd5edba4b8aa10729acd84a1ab82ef0725039c44b6dd990037dbf79eb73b4abc1989e5573b7e904ed467d2e6b7886993f3756c858d6a8
-DIST cfn_lint-1.56.1.tar.gz 4764990 BLAKE2B e7128b864c06a51d4356d42f2336584c872ab4c3a9967dafb8599eb3bce4a379beb7601f6d6cd1cef23a8be75311cb995b588969f376840c2222edbde860fd8e SHA512 47707daa1ef22a8f97c4a8ae56c9139ae5ecb6de2ec8d52359ae4d87be80f28ff34b766ac0e8b5092f187c353d4dfeaa3c9d1aeeb0468e0cc981994cd8f47867
-DIST cfn_lint-1.56.1.tar.gz.provenance 10085 BLAKE2B 02224c865a6555230d84bce06398da10f9a87e322164d97fe85e02d609bd3f0a52bd132de998f4c8fe3658dd20297980973900accf6067168de0207d82609741 SHA512 124e7b36867a463829b1c0416fc787ece9a1817a7d1aab7906681fda8310b127f92000d12e3890e1b60d27d0e032e1ff149120a1bc06d68201ebd0ebbf789131
+DIST cfn_lint-1.56.2.tar.gz 4773622 BLAKE2B 977497b65c624b8366bcef94a9fa40185f6ac5a6b2ca508d3599ea7e18b058f185bd7033a3e7c471498e5293c35c772569372ce4797fc5b3d9feca8002c75269 SHA512 b9f0bb1a42fb798033cce9a9839ea5c008a6550291861171e6edbf43a1d8d877c9c558126af36b10f9ea249c358b47247d9cfc6c9b2f47b9d19f52a86752c38a
+DIST cfn_lint-1.56.2.tar.gz.provenance 10128 BLAKE2B baba49ad3c761a126e8530604d67593a2ed1fc9162f0da6bf48c1e67c4193c5bcdd4d0e035384c51955d60c45f63ecc2b884f4eda227c3edb2492997a1004482 SHA512 eb8685efe89858b80d36f7e85c5bb1ad4577d7903eb9455e92da03b0b6afe1ff85261826ed3d117ff6f411186891e49ba547592523e7ad05fa01724ee45607a4
+DIST cfn_lint-1.56.3.tar.gz 4782328 BLAKE2B 4428f330d2e21fefd7254c3e062b6af231874224afe96d2bd225303b590616456a1e10b2384b1fa7c1e2aac58dde3ba96707119d31b9cab75c9c32b960d76a7e SHA512 3f5a347ad05c675adbae23f2a94c63727a30a2ffe9b862d147488da990c160f86574d34812ed3936457ee506c43f28d0d5d286d11af13652ec946d8db75ec073
+DIST cfn_lint-1.56.3.tar.gz.provenance 10034 BLAKE2B 40af29c8024029066a39c6dfb07380e26fedc4dd75d4a89f7e6e6edacac35a6fa6534f68a09e2b93b74ac1a1d829e4c0c14cd94ce077921b37e761f65e6097b8 SHA512 24f89afdcc5afec8a258297b474cfc5798a2c0cdeb414c5ef3cd3dad382f8606d8832501eb8042326f906dd2de46c5387a4b74159505b697ead87f2fcf60007e
diff --git a/dev-python/cfn-lint/cfn-lint-1.56.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.2.ebuild
index 60bfe8f96df0..60bfe8f96df0 100644
--- a/dev-python/cfn-lint/cfn-lint-1.56.1.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.56.2.ebuild
diff --git a/dev-python/cfn-lint/cfn-lint-1.53.3.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.3.ebuild
index b19b07f08df7..60bfe8f96df0 100644
--- a/dev-python/cfn-lint/cfn-lint-1.53.3.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.56.3.ebuild
@@ -17,10 +17,9 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
- >=dev-python/aws-sam-translator-1.111.0[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
>=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
<dev-python/jsonschema-5[${PYTHON_USEDEP}]
@@ -52,6 +51,8 @@ python_test() {
test/unit/module/test_api.py::TestLintByConfig::test_graph
# scripts missing from sdist
test/unit/module/maintenance/test_update_specs_from_pricing.py
+ # Internet
+ test/unit/module/schema/test_manager.py::TestUpdateResourceSchemas::test_update_force
)
# from tox.ini
diff --git a/dev-python/elasticsearch/Manifest b/dev-python/elasticsearch/Manifest
index e0b176abb802..38930564629f 100644
--- a/dev-python/elasticsearch/Manifest
+++ b/dev-python/elasticsearch/Manifest
@@ -1,2 +1,2 @@
-DIST elasticsearch-py-9.4.1.gh.tar.gz 2556895 BLAKE2B 56563f06057450c071cd2c3a70d96d457d7b03ee5a6e421721cbd2b684a1667b5d4d41e079cfc54105da338f6985c5526a30599817fdb8da9b3e7d83dc8d2d89 SHA512 a8513c2340bb596b1f648509fccbc9855644e8bee3b9aa3f655a85e0ce1a037a07c47ce5e24fe07ed8bd33069806953535c46c52d0e0c05224ab2126c424cbed
DIST elasticsearch-py-9.5.0.gh.tar.gz 2572641 BLAKE2B 0b5e532c108853b8f8e8065e68c7af33d4b9041db28e3c32eb11b30bca4168757fe75f1bdfa954c253f931fa7dfe444bb9d33301371e571da35bba4b2d9e5a88 SHA512 c3a4b36e0e97d4b2793f37b2032912cd3e6b1b64cd0240c204bc4d9a0b5a0f46ca59dd626de29ba89812ae547ea84192ac90fb2eff02c31dc5e0a2bc51ca5d5c
+DIST elasticsearch-py-9.5.1.gh.tar.gz 2581214 BLAKE2B 94f9f25b943d23cb583aa7f7790242b83d64d7dadd0a6fa1f4bf7d679f286ea56b0731e16435f35b7dd194d9860e1fcea276c717533435ea6a76dc96cb992f9e SHA512 4d668bc1c338a26e0268dbad380ed74bb7cee7ec220f636f3bc8c70a838f108e624f4fad9c9be96a949dad46ccfd60504f542a4a332cff08e87dcd1a6ae64076
diff --git a/dev-python/elasticsearch/elasticsearch-9.4.1.ebuild b/dev-python/elasticsearch/elasticsearch-9.5.1.ebuild
index 5129f7d2f2bd..8fdfeaa220e6 100644
--- a/dev-python/elasticsearch/elasticsearch-9.4.1.ebuild
+++ b/dev-python/elasticsearch/elasticsearch-9.5.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="amd64 arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~x86"
RDEPEND="
<dev-python/aiohttp-4[${PYTHON_USEDEP}]
diff --git a/dev-python/electrum-ecc/Manifest b/dev-python/electrum-ecc/Manifest
index 2104e7de4d0f..93e19379c927 100644
--- a/dev-python/electrum-ecc/Manifest
+++ b/dev-python/electrum-ecc/Manifest
@@ -1 +1,2 @@
DIST electrum_ecc-0.0.7.tar.gz 2162053 BLAKE2B 750350ae0e990842bb677e654cd3ac4e63b39fa2e7294ef026072570eaf8505d2b34c3577eae267b6da26e79ce900bf0f2af9c860254b7029c7966c2cfd647a4 SHA512 936ef40f5d141b05bc2924cb9a2c6cbfded964fc34e224b5bc2a5d58040ba60733ef98ada18415204d3e1403e96c9aa9dc66bbc0531738a98e229a47178c205e
+DIST electrum_ecc-0.0.8.tar.gz 2451647 BLAKE2B fa17a7f399ac1764e774199324314c31fe9c5054e1358ebda42d45137e656c9bb05e96cf02e2a0fe412c4e52f16ac1612dde91a800a2d5598dbdf67ac3f51489 SHA512 e91b418c827be0b625303f441bd54438eed6c099c1f84bab5a9370890455f8b2fdc2b252f360c242bf5734aa22e59402ab9c6b287b3acec4b0271f2df9c1035e
diff --git a/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild b/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild
new file mode 100644
index 000000000000..3df52efd172c
--- /dev/null
+++ b/dev-python/electrum-ecc/electrum-ecc-0.0.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure python ctypes wrapper for libsecp256k1"
+HOMEPAGE="
+ https://github.com/spesmilo/electrum-ecc/
+ https://pypi.org/project/electrum-ecc/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+# ecc_fast.py KNOWN_COMPATIBLE_ABI_VERSIONS
+RDEPEND="
+ || (
+ dev-libs/libsecp256k1:0/6
+ dev-libs/libsecp256k1:0/5
+ dev-libs/libsecp256k1:0/2
+ )
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+export ELECTRUM_ECC_DONT_COMPILE=1
+
+python_test() {
+ cd tests || die
+ eunittest
+}
diff --git a/dev-python/fakeredis/Manifest b/dev-python/fakeredis/Manifest
index 339f7c031ef7..944ad57e7079 100644
--- a/dev-python/fakeredis/Manifest
+++ b/dev-python/fakeredis/Manifest
@@ -4,3 +4,5 @@ DIST fakeredis-2.36.2.tar.gz 213336 BLAKE2B 23c6333b945ff35d482c9b04b81e067106f0
DIST fakeredis-2.36.2.tar.gz.provenance 10085 BLAKE2B 15ceb7fb92e07a882c3b313d62b39bb30032bc4f951b84903cd969d4905fc987fb3267f0ef0d1a7913b72a10cb4d3f091d15a20f4bc04da0809724247bb447e3 SHA512 b03494bd124e64dd11da4256a8d994a9fb4fe779b3fce08f242c49a7518261623495300a97cb6a0fbead6380c00bd27b709599485051359969b01eacffe6588c
DIST fakeredis-2.37.1.tar.gz 238182 BLAKE2B 48755cfc378a0e6199f902d58bee2b9d1e1be5fc1e516121307761e1e1fa2f6c4c5b4b6c118f6f9ac1dcd0a7026cbe7cbf72659b8f1771ee35f8a4fee2fed797 SHA512 b03249a375b9b8c7ab2d2483ebb9307a26bb14664d6c0f89a38418bd3e4aa890285a530159d00f70623d8e33412a29e560ed3e70e80b1a93fc4df054cfc3ad73
DIST fakeredis-2.37.1.tar.gz.provenance 9609 BLAKE2B 0d8e0083615dd76de483c88fcbcb125b4dbd9d32c8d139e4cf3d9d6a9c965c88b937cb4b11cfc58f154da9ffd5eec943938176557792a7b65b2d99d667834b97 SHA512 168051305b87497761bcda3d1627c26d33f30a520de8ae2e8a50d2c3e87260a68c99833031d89195ded134661d94a5a08cbd00f125fcc2d1ba1e0b0eddb95dd8
+DIST fakeredis-2.38.0.tar.gz 271116 BLAKE2B c16d21d194a2589363a753737fbbe0729ead7fd4f192610b5e170cbfde8dc09c5edf2534f74ca87ea022b58ac8c3f8fc94622934efeeb5dea4ae15b6eaf3ec08 SHA512 f8020da63b3ec516329b517f39fa1fa5224efb6ccebb9c1c6ffccc3906711d0d5dfc5bf73fb0ea7137481a345e3028ff1eb6c56b26e13437384d215771ffd20f
+DIST fakeredis-2.38.0.tar.gz.provenance 9942 BLAKE2B e29e23b6ec2a64fcbbe8c078ea0b01aa728d81a63e6c4898971187184aa59bfb219c072d8933bc4ae64040db6d89b7ad334b4489b6da8e2d640c639200e33fa2 SHA512 18400e533c3471d087e8429a41d5cb664a023a5bc12276f0021aeb9616dd7c18523284716f9a89c93ac3f30019f6540bb3935c6a7073f43fd59d4644afb499ba
diff --git a/dev-python/fakeredis/fakeredis-2.38.0.ebuild b/dev-python/fakeredis/fakeredis-2.38.0.ebuild
new file mode 100644
index 000000000000..49c990501ba6
--- /dev/null
+++ b/dev-python/fakeredis/fakeredis-2.38.0.ebuild
@@ -0,0 +1,133 @@
+# Copyright 2020-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/cunla/fakeredis-py
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Fake implementation of redis API for testing purposes"
+HOMEPAGE="
+ https://github.com/cunla/fakeredis-py/
+ https://pypi.org/project/fakeredis/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/redis-4.3[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-db/redis
+ dev-db/valkey
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/valkey[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{asyncio,mock} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not install duplicate license
+ sed -i -e '\@fakeredis/LICENSE@d' pyproject.toml || die
+}
+
+wait_for_status() {
+ local expected=${1}
+
+ local i
+ for i in {1..50}; do
+ "${server}-cli" -p "${redis_port}" ping
+ [[ ${?} -eq ${expected} ]] && return
+ sleep 0.2
+ done
+
+ die "Timeout while waiting for ${1}-server to start/stop"
+}
+
+src_test() {
+ local server
+ for server in redis valkey; do
+ local redis_pid="${T}/${server}.pid"
+ local redis_port=6390
+ local redis_log="${T}/${server}.log"
+ local redis_db="${T}/${server}.db"
+
+ einfo "Running ${server} server tests"
+ "${EPREFIX}/usr/sbin/${server}-server" - <<- EOF || die "Unable to start ${server} server"
+ daemonize yes
+ pidfile ${redis_pid}
+ port ${redis_port}
+ logfile ${redis_log}
+ dir ${redis_db%/*}
+ dbfilename ${redis_db##*/}
+ bind 127.0.0.1
+ EOF
+
+ # wait for the server to start
+ wait_for_status 0
+
+ distutils-r1_src_test
+
+ "${server}-cli" -p "${redis_port}" shutdown || die "Unable to stop ${server} server"
+
+ # wait for the server to stop
+ wait_for_status 1
+ done
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # json ext
+ test/test_stack/test_json.py
+ test/test_stack/test_json_arr_commands.py
+ test/test_stack/test_json_fpha.py
+ # TODO
+ "test/test_mixins/test_pubsub_commands.py::test_published_message_to_shard_channel[Strict3]"
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict2]"
+ "test/test_mixins/test_pubsub_commands.py::test_pubsub_shardnumsub[Strict3]"
+ )
+
+ local EPYTEST_IGNORE=(
+ # these tests fail a lot...
+ test/test_hypothesis
+ test/test_hypothesis_joint.py
+ )
+
+ case ${server} in
+ redis)
+ EPYTEST_DESELECT+=(
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict2]"
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[Strict3]"
+
+ "test/test_async/test_redis_only.py::test_async_lock[fake_resp2]"
+ "test/test_async/test_redis_only.py::test_async_lock[fake_resp3]"
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict2]"
+ "test/test_mixins/test_set_commands.py::test_smismember_wrong_type[FakeStrict3]"
+ )
+
+ # run fake tests only once
+ epytest -m "not real"
+ ;;
+ valkey)
+ EPYTEST_DESELECT+=(
+ test/test_stack/test_vectorset.py
+ )
+ ;;
+ esac
+
+ # we can run "fake" tests in parallel, but "real" seem to share
+ # the same connection
+ EPYTEST_XDIST= epytest -m "real"
+}
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
index 1b87ea79407f..84cc02a758ee 100644
--- a/dev-python/fonttools/Manifest
+++ b/dev-python/fonttools/Manifest
@@ -1,2 +1,3 @@
DIST fonttools-4.63.0.gh.tar.gz 4031830 BLAKE2B 8cdb1d9018a44898fd792ee538c88443ecda34d7c896d280578d96b80c2f80064ad057b1e4bcb4a865dd706eb3605e86768eb141317fdcf5947a99fc873a7421 SHA512 a2d8df4fd11f36c45e838953d6c8bf1e25999382422d5fc3fe3418c985c06f30b52073f738278cb2a7b19da6e227e5ae709f016661a17e7ae96023b7a762365e
DIST fonttools-4.64.0.gh.tar.gz 4106541 BLAKE2B 5bdddac2b811e47567948a48bef0de7c74510b3334bf0710d08986c41f2c9b4d41a16fbc2266ed55923197602b2ecc8525ed0ebfd4636518eb64ee13db4fee9b SHA512 1cf3d8ab10931e6eca3f54e2d365a946413d90e2a8fe0405252db14a51e2908c109c6a65f7b0fb5fabaeb0e30eb27b5b737bf2d1b75a3137806bc88f140a0faa
+DIST fonttools-4.65.0.gh.tar.gz 4113728 BLAKE2B a8315b819ae12417b6757956d237fa9fffb4a2e75dc893c00be0dafe529880e161070f9496594b3414a0ef0932fe84092d1910ca2f292acc6cf9f1ba07506347 SHA512 b6066e438e5237ff18e9b44343d3533ccd4468ac4e685b066a1f5da035161c082468c025ff79832eec534e29a8bbac7cc558301b13abdb763c61f91d0ceecafa
diff --git a/dev-python/fonttools/fonttools-4.65.0.ebuild b/dev-python/fonttools/fonttools-4.65.0.ebuild
new file mode 100644
index 000000000000..fdf4877e363d
--- /dev/null
+++ b/dev-python/fonttools/fonttools-4.65.0.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2026 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_{13..14} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 virtualx
+
+DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
+HOMEPAGE="
+ https://github.com/fonttools/fonttools/
+ https://pypi.org/project/fonttools/
+"
+SRC_URI="
+ https://github.com/fonttools/fonttools/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ' 'python*')
+ )
+ test? (
+ dev-python/brotlicffi[${PYTHON_USEDEP}]
+ dev-python/munkres[${PYTHON_USEDEP}]
+ app-arch/zopfli
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-rerunfailures )
+# woff2 tests are extremely flaky
+EPYTEST_RERUNS=20
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
+ [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
+ distutils-r1_python_compile
+}
+
+src_test() {
+ # virtualx used when matplotlib is installed causing plot module tests to run
+ virtx distutils-r1_src_test
+}
+
+python_test() {
+ # nonfatal for virtx
+ nonfatal epytest Tests fontTools ||
+ die -n "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/funcy/Manifest b/dev-python/funcy/Manifest
index 7ae997b987c3..33218dbe35ad 100644
--- a/dev-python/funcy/Manifest
+++ b/dev-python/funcy/Manifest
@@ -1 +1,2 @@
DIST funcy-2.0.tar.gz 537931 BLAKE2B cd5d56bba777b9fefff0088daa8ab903bf51520a9cc9ce856eaf4eddbe06a2916b09d2e9f023e32c77f6b308d4291c3154347e921f1c3b78a513f11390226149 SHA512 3abd76296aa03d6c3fa0583cd1c3912a47ce04c340f668d7321e2c4191a61a1679f1a419b787c92680cbbae5757e1fabc5918a6a80130c244b4018c28751e01e
+DIST funcy-2.1.tar.gz 981169 BLAKE2B b9ec627c2543b7f898c7dc2a0a966db54595e8d1a7ff1357927a7e9e4fb1decb48ac2ed9b8ed3fdbd00ed528fa9b49b3a62a562b8b6b017a86597d5fe97d21e1 SHA512 40267e3a9b8f3b4069dfd5ad212e5b7b02a97fc32ae09b4bd1e2bd938f9d7365839c6a2c64dd1f1ccc4f3b8b754e2334b8690798b80bbf2aeaf75fa8292ef10d
diff --git a/dev-python/funcy/funcy-2.1.ebuild b/dev-python/funcy/funcy-2.1.ebuild
new file mode 100644
index 000000000000..a67aae0bd841
--- /dev/null
+++ b/dev-python/funcy/funcy-2.1.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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A collection of fancy functional tools focused on practicality"
+HOMEPAGE="
+ https://github.com/Suor/funcy/
+ https://pypi.org/project/funcy/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ test? (
+ >=dev-python/whatever-0.7[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index 229766c16e9e..1340911a2007 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -1,8 +1,6 @@
-DIST google_auth-2.55.2.tar.gz 361414 BLAKE2B 80b63272ca8ec47562d969119381e3ed08c4de2b4a62e5eeaaa9c27a7ab2a88c31745f948d5682f9c36d94f9f2dcc4e55eff0138ceb87b366df45e0eb428732d SHA512 e5829bccb7b9632bb73322df755a32ddd237591b9d51a2028888c92efb42bf95688697aa94cb76115209efabc4d04fe4f76c86ad114104e71461f04f36c769b0
-DIST google_auth-2.55.2.tar.gz.provenance 6134 BLAKE2B 121e1ebefe3d4885000f1c998b7b4114249f8a4eaa73ea3577846d721b1a0b78e68d90848a21ac4d74495ea167a274a1c8b393e712791fc87f1a8b3f0030438b SHA512 8f4d8b65027519afdc8063edaadc77d65a00a74cffdb140ee0a34fcb4f5c1ea681111a67afc530e5f456c7b974886ed2cee078ac4dbc9f32e8d0924fe1045936
DIST google_auth-2.56.3.tar.gz 367110 BLAKE2B d1c415d18e686ca7f0fd30f463261a9132f07645a455c21688964b723f4eec5ddd0fcdff73cb1811a6f6f6254d2e0f52a827166f03804534d7d7cb1b6dcec511 SHA512 8505e8109cbe0447cc4cd511b06e6a53a42fc5b2bdbfd210bbe317794d5805a8354ce206f46453d2e4048f039e2895cfd1de17a8e602593c723ac0dcd7339603
DIST google_auth-2.56.3.tar.gz.provenance 5911 BLAKE2B 33eeb083308a9f009de72cf9e50a16f7ab06729b9b60a575d5f4086eb43d980bda64a167a8333f318e540d5c35325231ced0c5a2d01b6aaa554806f7dc1801f1 SHA512 c339ee649742bc69d8bd2b447d90dc953475ad805677f3718c80d9f742e1f8e7552379b84579d958b648172030b039cadd8dd45a28dc1776a3be540841474d4d
-DIST google_auth-2.57.0.tar.gz 370794 BLAKE2B 6ba872c80505223bf510547702abcb016abcb85e6d30fa6d819bc29e27b0700b2d41c29b4dd4e8b1965e8026ccdc683ff996ded74c32b82ae1283689127be873 SHA512 8aa4d2054273ce7c7f4b0ad771d19f1aa857ac7e47757bdf3e2e57184978cb57ad21479a335402e1b152deaa7caf3dc3e68a6c76eede687e81c6609e36ae3b7a
-DIST google_auth-2.57.0.tar.gz.provenance 6089 BLAKE2B c62f6c80cc0ed0c5395d8e7a46462121ecc1adaaca6c440a1e9d4868373240157a4be21442f76088febccf0450741875ce433079b0d4205c6dc55293f3590432 SHA512 088c42769c686e08aebe04e3a70979f2e85ea9e360446448f12d59697176e051e839ca7d616d29f04a75fc323dd8f7fffd2e50b0225838eeb2f71dd0eb8ccaf8
DIST google_auth-2.57.1.tar.gz 372426 BLAKE2B 55f44f41186b6fa55254c2bb50ca088fabc7263923fd0cf5be73c83f1e7a7f63ac3eefaa8016e87139529b23b875d098b62661164171a1bd82c274c1c90bbcac SHA512 355df27135280e6b7d1ee8741eb2fa57717146e6f56e1cb094bf5e0e88eedaae3efc0a01d619dd31e1c4323cc1321625ec9f25fa60712a7643bf4a3cd7cea21a
DIST google_auth-2.57.1.tar.gz.provenance 6136 BLAKE2B 3f723f6b4ba7e50c326e24d4b4277a9c5e82c812a7c05680118ffa2071ed1034adf70f8ac0697d546330e784233ebd2b5efa8418625be0bea07c1f3bba182309 SHA512 b90e933a30f62868d9cd748c506d552023568c7713e76cd78bcd9dd6e26ebce3326117fb8ab0b63f4ac388d91d28b3b6cdfe1d88d77a78e588acfaeca0aa3d47
+DIST google_auth-2.58.0.tar.gz 380018 BLAKE2B 7c78844e9a180221a7d4b666bf3126d36e109f42e799ac71ce947da40d670b87e4285da11b1ba5fb30f18bd8be4084a4f11a76e0ce805443084d8c6d3678b731 SHA512 842b708281760e24cdb15f2ffb3363b37b1139676f00032e88a0b483cb8ca0e15b577221e6b497424af04386e520111855a3c4e10072eca177a27dfc5e49eddb
+DIST google_auth-2.58.0.tar.gz.provenance 5866 BLAKE2B 6adc541e80e6d127a03000cefb2de80c607e606463e2bc6c81b7be5350dbf1762723f999c5bbd97fda4a7bac536b1d3c76eb6068105f0fddb5e704535c112952 SHA512 a3d0c6d024fc9eee6fff677a81bc27028a4aac2d7cf281a32f84d961d885a8c5da015a12e29b2bf8de22e22d1ed731b590674aa89a22dd5dc8fe593c04d70289
diff --git a/dev-python/google-auth/google-auth-2.55.2.ebuild b/dev-python/google-auth/google-auth-2.55.2.ebuild
deleted file mode 100644
index 95d9098b6dcd..000000000000
--- a/dev-python/google-auth/google-auth-2.55.2.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=gcp:google-cloud-sdk-py@oss-exit-gate-prod.iam.gserviceaccount.com
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Google Authentication Library"
-HOMEPAGE="
- https://github.com/googleapis/google-auth-library-python/
- https://pypi.org/project/google-auth/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-
-# TODO: rsa is now optional
-RDEPEND="
- >=dev-python/cryptography-38.0.3[${PYTHON_USEDEP}]
- >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
- >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
- >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/aioresponses[${PYTHON_USEDEP}]
- dev-python/flask[${PYTHON_USEDEP}]
- dev-python/freezegun[${PYTHON_USEDEP}]
- >=dev-python/pyjwt-2.0[${PYTHON_USEDEP}]
- dev-python/pyopenssl[${PYTHON_USEDEP}]
- dev-python/pyu2f[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/responses[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-{asyncio,localserver} )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # tests are broken with up-to-date pyopenssl
- tests/transport/test__mtls_helper.py::TestDecryptPrivateKey::test_success
- # modern aiohttp
- tests/transport/aio/test_aiohttp.py::TestRequest::test_request_clone_with_active_session
-)
-
-EPYTEST_IGNORE=(
- # these are compatibility tests with oauth2client
- # disable them to unblock removal of that package
- tests/test__oauth2client.py
-)
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # unpin deps
- sed -i -e 's:,<[0-9.]*::' setup.py || die
-}
diff --git a/dev-python/google-auth/google-auth-2.57.0.ebuild b/dev-python/google-auth/google-auth-2.58.0.ebuild
index e460c792a87a..e460c792a87a 100644
--- a/dev-python/google-auth/google-auth-2.57.0.ebuild
+++ b/dev-python/google-auth/google-auth-2.58.0.ebuild
diff --git a/dev-python/multidict/Manifest b/dev-python/multidict/Manifest
index d9edaf612cc2..d2677fbb79e0 100644
--- a/dev-python/multidict/Manifest
+++ b/dev-python/multidict/Manifest
@@ -1 +1,2 @@
DIST multidict-6.7.1.gh.tar.gz 120010 BLAKE2B db03d9be850b3d2b042ecaa5484fd692fdb47a626862b57e2b218beeba90ae7b12a5e204bd3fdf20a4a125abf1dffb88c52cfc449c0daa31cfed585a74782a3f SHA512 4009a310dac4732c48cc9654fbd55468dda5a6d18a05ef013ff90b030d3124459620d6d6ae4f85e88ef6cefa0b9bccea1b745f3acbfa0b351eb2c92cc8812b89
+DIST multidict-6.8.0.gh.tar.gz 149210 BLAKE2B b8ef7da3fb565110418796c01258a71ba1ae2d8309868193ae6d73cf2c768f759578583c2d4436ca2127618e6a0f45815be259720f5a9f5d732c1968aff3df0b SHA512 1a978331fd0d7deabae84db7710258f5d7956197a2f1b97933fba523631077d732ab42f65e4f43477cc07e60ddd180807b73326ad660e2ba6fd8e9ba5b7f196b
diff --git a/dev-python/multidict/multidict-6.8.0.ebuild b/dev-python/multidict/multidict-6.8.0.ebuild
new file mode 100644
index 000000000000..a5daabfae483
--- /dev/null
+++ b/dev-python/multidict/multidict-6.8.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 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_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="multidict implementation"
+HOMEPAGE="
+ https://github.com/aio-libs/multidict/
+ https://pypi.org/project/multidict/
+"
+SRC_URI="
+ https://github.com/aio-libs/${PN}/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+ test? (
+ dev-python/objgraph[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't enable coverage or other pytest settings
+ sed -i -e '/cov/d' pytest.ini || die
+ # don't mangle CFLAGS
+ sed -i -e 's/^CFLAGS = .*/CFLAGS = []/' setup.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile() {
+ if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
+ local -x MULTIDICT_NO_EXTENSIONS=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ tests/isolated
+ tests/test_multidict_benchmarks.py
+ tests/test_views_benchmarks.py
+ )
+
+ rm -rf multidict || die
+
+ local cext=--c-extensions
+ if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then
+ cext=--no-c-extensions
+ fi
+ epytest "${cext}"
+}
diff --git a/dev-python/oslo-log/Manifest b/dev-python/oslo-log/Manifest
index e8f6a40c6023..747cd1ef3626 100644
--- a/dev-python/oslo-log/Manifest
+++ b/dev-python/oslo-log/Manifest
@@ -1,2 +1,3 @@
DIST oslo_log-8.3.0.tar.gz 101332 BLAKE2B e4ef0708b620755a9d867b9d7ea5a02f3b753578a7e909e257a9705d7475a0fa70ee06aa9cb81337da280e5b33acc1985d3c22fa6809d19504e5c421b094e137 SHA512 9beff02def8a5f1423951b441c9c51199bef7a75876d316a4dea685334a51e6a204e404876bfd6ebc796f738f0065baa4457e7001261fb0f608099f59bc447fd
DIST oslo_log-8.3.1.tar.gz 101704 BLAKE2B 131f5416c201752ee6043d573dd4ba40c6b93956a213034fb25bdbaf5ecac8f702858fae628cdc93c1841a472e97d95936aa655ec5847282953e20a755f297fc SHA512 d75fe5ca479dc30394592abf3ffb1102a1853c4d4b6306cff6349ed20713fa4e33971c73dc6db3b0f490b5f83afbe4022aadb7658c1f151e9a8896721b357790
+DIST oslo_log-8.3.2.tar.gz 101842 BLAKE2B 54f8ce1f2f4399ed68c9719b55d351188b3283ed5495976937ffba93a878f841f74dd260773b7168e544959326c5b3db17d1997a3628573fe761f64180a480f1 SHA512 7365b9cef9ecf96f28cc895750e128bd42c936b0b9fa47ba150162bb3e905ee4060e37948dcda846780fe9e4fd2d116389cb3dd160bd8dcfb9683631793e0ffd
diff --git a/dev-python/oslo-log/oslo-log-8.3.2.ebuild b/dev-python/oslo-log/oslo-log-8.3.2.ebuild
new file mode 100644
index 000000000000..47d42f39ad42
--- /dev/null
+++ b/dev-python/oslo-log/oslo-log-8.3.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pbr
+PYPI_PN=${PN/-/.}
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="OpenStack logging config library, configuration for all openstack projects"
+HOMEPAGE="
+ https://opendev.org/openstack/oslo.log/
+ https://github.com/openstack/oslo.log/
+ https://pypi.org/project/oslo.log/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/debtcollector-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pbr-3.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-config-5.2.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-context-2.20.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-i18n-3.20.0[${PYTHON_USEDEP}]
+ >=dev-python/oslo-utils-7.1.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/oslo-serialization-1.25.0[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.7.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pbr-3.1.1[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/testtools-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/oslotest-3.3.0[${PYTHON_USEDEP}]
+ >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+src_test() {
+ # requires eventlet
+ rm oslo_log/tests/unit/test_pipe_mutex.py || die
+ # suddenly started failing on py3.13 (also in old version)
+ sed -i -e 's:test_rate_limit:_&:' \
+ oslo_log/tests/unit/test_rate_limit.py || die
+
+ distutils-r1_src_test
+}
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 907a0a8e0a75..d274b4c06319 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,3 +1,3 @@
-DIST phonenumbers-9.0.36.tar.gz 2307271 BLAKE2B 4e9dfff9d546c15658cf3f04b8dc2d4638bb27030509a0e067452ab155782ad2c63a99b9e7a8b066bea968f7727aff94c80a60853ee224fba721f2d1175ad09b SHA512 d3cf951590ac415c5f9d60fc345d52b5d572639d3059c9c19737fac7e968c3942cc54839299388aee8729b71be250c159d28e708e8e3ecae6aa537cd47a8a752
DIST phonenumbers-9.0.37.tar.gz 2312364 BLAKE2B 4984e671af2d02392233db5213aad02324cb19f817f6f6b5fc9f977f3a0d3bd172af19d9053157ecde3acc30d9c5579337a48bc6a3b85a408e2499e0d889eb5c SHA512 69cbe0adbb91c9fbef6246151fe5f6399edd3f8087dcdc973762b64397f41dabb0e60ad2460c2213df73e9079732bcb2705a173ee516b85604f789b719f80b10
DIST phonenumbers-9.0.38.tar.gz 2311043 BLAKE2B 8d5b7a4fdfeea4552e1364e9b4631623b7320607a6c840e03969504db162e4043f889318ebde9605c18fbc631bdf08b148dd3485bb0a84ace74c109e6890ecc3 SHA512 9da0ea3de41c9e27e19ed8ca6f1afa7f87ff901300bee581b284be2f3e3f955314b9e4de0379aafab5c61a30cddb6ad6f3109db4f7f6273e0745f4a5c907b577
+DIST phonenumbers-9.0.39.tar.gz 2310991 BLAKE2B 8f6ed29affad232f085e8f9bb777b89bb66ab6e1332fbd73abed3a699eecd3c0a3d2558c261accb2b21eab7964dffeb13726efefe0d5e776d241035eefa275d5 SHA512 8e4cfdd4e5538b15bdea3b61b5223135992c57d13c77f2ba1b0c7d0717562c270a596051d7202c7aca9b1f4967acf047bd9e53ba7fa29801bd05317336d06054
diff --git a/dev-python/phonenumbers/phonenumbers-9.0.36.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.39.ebuild
index ca291505d9f2..de79c2ad9678 100644
--- a/dev-python/phonenumbers/phonenumbers-9.0.36.ebuild
+++ b/dev-python/phonenumbers/phonenumbers-9.0.39.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/portalocker/metadata.xml b/dev-python/portalocker/metadata.xml
index 3c4e89462009..5e95859f915a 100644
--- a/dev-python/portalocker/metadata.xml
+++ b/dev-python/portalocker/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <name>Florian Schmaus</name>
- <email>flow@gentoo.org</email>
- </maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest
index b114acdfdc69..9231f0126230 100644
--- a/dev-python/psycopg/Manifest
+++ b/dev-python/psycopg/Manifest
@@ -1,3 +1,4 @@
DIST psycopg-3.3.4.gh.tar.gz 611451 BLAKE2B 5c15f36c1fd291d1ef58c22fbb6af2c4da0a38e5c05cb40b50e06471b834924a7c55d322e335457f3a017cd31b3900ec5bd1694b6e293e5e3c740be68a9aa66c SHA512 4cfeeb118088d704c6ebd17f42916b77825e89827411116a5e9ad813e756b71969c800179aa7337a1fcb379efde937c8d33c828b87305d5bb63ef06e66185b83
DIST psycopg-3.3.5.gh.tar.gz 759446 BLAKE2B f565b31d28dc555f28e508ab9046f83ac39a264a0ee135b147bb7949a8a505fca24492fdfec84dfd15d783e33b0d66dba696b77bebfcab0a86a1fa48f71e1c58 SHA512 bc47fdd05060ea56e068f424ff90d41df8fb1d4f052805d41c9f5ef4bf4e37f61776ff371119f46a7702af857d782c72645d234cf6f118355c191cc81450650a
DIST psycopg2-2.9.12.tar.gz 379683 BLAKE2B bb5e5cdee0fef649c46d414b916d6f49096c27571897cfe1ecbaa9416c8c4f8c79eeff94a3475421981e3659a123e8e8852442968539d084e7cc46c54829c946 SHA512 0d37b51408298baad8b2b095af24b1c0d0b67ba99a2532ed7344a931c6f4d431be9c21c94811eace1b4418899f070f80e80266bfe0386aac2e64289ab1b8862e
+DIST psycopg2-2.9.13.tar.gz 378068 BLAKE2B 68e904c1976835b77282fde1bf29df202c25479b96896e1c98c88235eb87788911264193420a7ba2ce17b7358439614d2611bd16b3eb58df2fe61d23517778f7 SHA512 7aebcf55161b1ad60af4b64fef64f676cdf68ee1597c8c1107350c367f1eafafe37b736716d191e3a3ba4d4ea6d436d22cb606f44655b4aebc8613d4314dbc15
diff --git a/dev-python/psycopg/psycopg-2.9.13.ebuild b/dev-python/psycopg/psycopg-2.9.13.ebuild
new file mode 100644
index 000000000000..1ad3f91a9ac1
--- /dev/null
+++ b/dev-python/psycopg/psycopg-2.9.13.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN="psycopg2"
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="PostgreSQL database adapter for Python"
+HOMEPAGE="
+ https://www.psycopg.org/
+ https://github.com/psycopg/psycopg2/
+ https://pypi.org/project/psycopg2/
+"
+
+LICENSE="LGPL-3+"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=dev-db/postgresql-8.1:*"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ test? ( >=dev-db/postgresql-8.1[server] )
+"
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # fix for py3.13
+ sed -e 's:_PyInterpreterState_Get:PyInterpreterState_Get:' \
+ -i psycopg/utils.c || die
+ # broken by different encoding of IPv4-mapped addresses
+ sed -e 's:test_\(cidr\|inet\)_adapt:_&:' \
+ -i tests/test_ipaddress.py || die
+}
+
+src_test() {
+ initdb -D "${T}"/pgsql || die
+ # TODO: random port
+ pg_ctl -w -D "${T}"/pgsql start \
+ -o "-h '' -k '${T}'" || die
+ createdb -h "${T}" psycopg2_test || die
+
+ local -x PSYCOPG2_TESTDB_HOST="${T}"
+ distutils-r1_src_test
+
+ pg_ctl -w -D "${T}"/pgsql stop || die
+}
+
+python_test() {
+ "${EPYTHON}" -c "
+import tests
+tests.unittest.main(defaultTest='tests.test_suite')
+" --verbose || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/pure-eval/Manifest b/dev-python/pure-eval/Manifest
index f27351ab82b5..3d7eb0a8c96e 100644
--- a/dev-python/pure-eval/Manifest
+++ b/dev-python/pure-eval/Manifest
@@ -1 +1,2 @@
DIST pure_eval-0.2.3.tar.gz 19752 BLAKE2B 18ed36bf045ddcd351a8dd82079df409e26ed745e3c326a7743536bc3e74a880830f55fa1252113aa03b9830b5cac63601335cb6b877994861efb0b9b54a07d9 SHA512 8575f54aa7e522a3db86b80fdbe1f8518ef4ef17a160b2541f74d0853e123cffcbc9f04df9faeddfc7ed92bb6b1d27fb7b3ce2de1c66b6b13e453b7b2bf72052
+DIST pure_eval-0.2.4.tar.gz 20563 BLAKE2B 90bc412841f9c8bff1754c7cd77171a68b448c78629f06cfe21210697ef3a0691c3e0f6213b46550b19373d76fc86376560334a232c8a7dfa16b61c67cb718dc SHA512 c9eafce8a82be9bb038f4c10be3841e3cb81e1c65e3cd79abfb24ec2a00b962a67b7eb61b6739d28b2fb3555f22e813cc758a666f69d4abf7c6271a8e0714048
diff --git a/dev-python/pure-eval/pure-eval-0.2.4.ebuild b/dev-python/pure-eval/pure-eval-0.2.4.ebuild
new file mode 100644
index 000000000000..0acbf5899a52
--- /dev/null
+++ b/dev-python/pure-eval/pure-eval-0.2.4.ebuild
@@ -0,0 +1,22 @@
+# 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_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Safely evaluate AST nodes without side effects"
+HOMEPAGE="
+ https://github.com/alexmojaki/pure_eval/
+ https://pypi.org/project/pure-eval/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/py-landlock/py-landlock-0.1.1.ebuild b/dev-python/py-landlock/py-landlock-0.1.1.ebuild
index 3e4168a81efb..4454b762afcc 100644
--- a/dev-python/py-landlock/py-landlock-0.1.1.ebuild
+++ b/dev-python/py-landlock/py-landlock-0.1.1.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://github.com/SebastienWae/py-landlock/archive/refs/tags/v${PV}.ta
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
EPYTEST_DESELECT=(
# tries to load an executable, with rule not aloowing libgcc.so.1
diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest
index 129669c075b5..871b9cda4df9 100644
--- a/dev-python/pygobject/Manifest
+++ b/dev-python/pygobject/Manifest
@@ -1,9 +1,4 @@
DIST pygobject-3.50.1.tar.gz 1081846 BLAKE2B 7c6fd07e913f64d925838efc6fa0603fef2298779bee15c2c2b2325dd39942ac4856e71846077b6c89e2b05508d66ce606430433257bbb9d6388a4613436615f SHA512 5708756cbc8e2b697442953a7f3d391ace98f1b7811cb905b0d80185f020bf32a775d70c49d1620a9733e83a6862314f2a72fa1b77cb26a01e84b3bff72e068e
DIST pygobject-3.50.2.tar.gz 1085854 BLAKE2B 03dc6dc4bd6533d23b8f88705ef371faedf592d98405f91969b910a44a253b29bda6367a9d4f7b7d2dbea7d695a0d1dae6cfc004553f16ab4bbc0e2017c8b591 SHA512 2daed81cfcdcefbd0fc9ffb7ce80c1daa223ecc8266a29a535e47dffd1656fb54dcead1a06c943e08ca92d28ac58ed7916b3f40105b17be7e1f272b9f893f15f
-DIST pygobject-3.52.3.tar.gz 1235825 BLAKE2B f9d95ff9e12b6d6fb5c36d1528ff4ef45e6799316ac21b0f79364dc438bf4e0e6670489f23e0ca4325fc21d16cc2d96fe6aff61f71b8bfe768df2c487717e6df SHA512 06085df458076120017ace7a029ac6c00757ae1882a2a50041aadd7f4c2a329a0fb4d18dde02a481c1f4d3acecbc9d8f473f4ae23fbbfc4f885f75bbc7847f24
-DIST pygobject-3.52.3_0a8b2c56331a31d7f7096faaa1c1c26467b51c15_pythoncapi-compat.gh.tar.gz 50124 BLAKE2B 67bb1e60d10d72b146ae2f8ca0113939916fa67a3c71c3658343ff3742315768471e50c0254a3f9488031297d6697dbb0e8541bfe72e8b0754ede09fb9d65da8 SHA512 3fff69f471e28b47bbb537d31d182180631090c00aaf45931aad128f4cb700cdfd519ce560610b7e57132ad7d172b8f2bc4cd16cf748f218dafdadd15fc48718
-DIST pygobject-3.52.4.tar.gz 1247281 BLAKE2B eb35e3ba58d9bcfc84e724b7dded816ed3094f3b64f5b8785cc9ca656973c0f4e1518c2ad9d2008edd20da1ca6056daac0658464a4619c4b19724de6efb17618 SHA512 14779aa57ab57b62791fbe2c0e00649108e650a13ce4bb0631a5b7aece9e5094ba61c682e7ce462acecc01cd53e969ac84f783807ac5cad95e07673a1b92c1cf
-DIST pygobject-3.52.4_0a8b2c56331a31d7f7096faaa1c1c26467b51c15_pythoncapi-compat.gh.tar.gz 50124 BLAKE2B 67bb1e60d10d72b146ae2f8ca0113939916fa67a3c71c3658343ff3742315768471e50c0254a3f9488031297d6697dbb0e8541bfe72e8b0754ede09fb9d65da8 SHA512 3fff69f471e28b47bbb537d31d182180631090c00aaf45931aad128f4cb700cdfd519ce560610b7e57132ad7d172b8f2bc4cd16cf748f218dafdadd15fc48718
-DIST pygobject-3.54.5.tar.gz 1274658 BLAKE2B 7541502dd4d0f62680d12ebb00f1039c6b33e9c1996500a3d0e54c6c87d719e99e32469d68cfdb04e8e8eaed70e2461739ea176e7bf98100f2329c7084425b5e SHA512 0036068922de03dfa15335b29eb27a9cfd85310b66eae4eb6cb895c427a9fbf3c65462930e981f03b9394bede6fe97639e0bdbee640373188a9c51ad03b65041
-DIST pygobject-3.56.2.tar.gz 1409059 BLAKE2B 9d0ea5b94edc966d8355169d85e79ea0446544f7560832e2be85314c30e739ed71efa877c9111a2a08a388edc9353b6ea5a8678acf681dcc1612ed62493bcaf3 SHA512 8be3ac43fad2aba79bfea05616f66511378fe9b316fe33d9c622af5c7b1ab260e4a513a5f6efe26e261eb6c05763391b327b58563cc551cbd2f25266e8a1826a
DIST pygobject-3.56.3.tar.gz 1411853 BLAKE2B 032644b8a7b3e366e7c8ea9943f5a63ddca27a1c2c43a007c7e0e15dff7611b0f210e0ca43fd1e9ed63aa74f9d346becc489ec943bbb6fd9da6af2ed8a3b97fb SHA512 7267e04c02436fb88eddac463546275c7ebda7295f4d250c27a37114a589676d340c0876ad953523c20dd52cfd7d8883cefd5c1b3dd7115a96645f1a32ba0d99
+DIST pygobject-3.58.0.tar.gz 1408568 BLAKE2B 15b99639c01354f8dd2a2a946e00c80443b0c49e60b376b91cf0835b3e93837ab183386dff0587e5af984552cac232413e977874b0da21c2d3b49a144ce65b5d SHA512 8627b6e1f94a8a9ff4be4c6b1a585db74736d33259b84cd8eb1d38fc8e98374692658adcfb43042056b527761ce563fd66bf09ff916daba3b3384310a11a66c2
diff --git a/dev-python/pygobject/pygobject-3.52.3.ebuild b/dev-python/pygobject/pygobject-3.52.3.ebuild
deleted file mode 100644
index baf3e5dbf9a9..000000000000
--- a/dev-python/pygobject/pygobject-3.52.3.ebuild
+++ /dev/null
@@ -1,102 +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=no
-GNOME_TARBALL_SUFFIX="gz"
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org meson virtualx xdg distutils-r1
-
-DESCRIPTION="Python bindings for GObject Introspection"
-HOMEPAGE="
- https://pygobject.gnome.org/
- https://gitlab.gnome.org/GNOME/pygobject/
-"
-COMMIT=0a8b2c56331a31d7f7096faaa1c1c26467b51c15
-SRC_URI+="
- https://github.com/python/pythoncapi-compat/archive/${COMMIT}.tar.gz -> \
- ${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz
-"
-LICENSE="LGPL-2.1+"
-SLOT="3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="+cairo test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.80:2
- >=dev-libs/gobject-introspection-1.84:=
- dev-libs/libffi:=
- cairo? (
- >=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}]
- x11-libs/cairo[glib]
- )
-"
-DEPEND="
- ${RDEPEND}
- test? (
- >=app-accessibility/at-spi2-core-2.46.0[introspection]
- dev-python/pytest[${PYTHON_USEDEP}]
- x11-libs/gdk-pixbuf:2[introspection,jpeg]
- x11-libs/gtk+:3[introspection]
- x11-libs/pango[introspection]
- )
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/Skip-test-using-dbus-in-sandbox.patch"
- "${FILESDIR}/Skip-test-detecting-cycle-among-base-classes-typeerr.patch"
-)
-
-src_unpack() {
- default
- unpack "${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz"
-}
-
-src_prepare() {
- default
- find "${S}/subprojects/pythoncapi-compat" -mindepth 1 ! -name meson.build -exec rm -vrf {} + || die
- mv -v "${WORKDIR}/pythoncapi-compat-${COMMIT}"/* "${S}/subprojects/pythoncapi-compat" || die
-}
-
-python_configure() {
- local emesonargs=(
- $(meson_feature cairo pycairo)
- $(meson_use test tests)
- -Dpython="${EPYTHON}"
- )
- meson_src_configure
-}
-
-python_compile() {
- meson_src_compile
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
- local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
-
- if [[ ${EPYTHON} == python3.14* ]] ; then
- # https://gitlab.gnome.org/GNOME/pygobject/-/issues/694
- local -x PYTEST_ADDOPTS="-k 'not (ref_count or has_two_refs)'"
- fi
-
- meson_src_test --timeout-multiplier 3 || die "test for ${EPYTHON}"
-}
-
-python_install() {
- meson_src_install
- python_optimize
-}
diff --git a/dev-python/pygobject/pygobject-3.52.4.ebuild b/dev-python/pygobject/pygobject-3.52.4.ebuild
deleted file mode 100644
index e19e9d9c4b8c..000000000000
--- a/dev-python/pygobject/pygobject-3.52.4.ebuild
+++ /dev/null
@@ -1,102 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=no
-GNOME_TARBALL_SUFFIX="gz"
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org meson virtualx xdg distutils-r1
-
-DESCRIPTION="Python bindings for GObject Introspection"
-HOMEPAGE="
- https://pygobject.gnome.org/
- https://gitlab.gnome.org/GNOME/pygobject/
-"
-COMMIT=0a8b2c56331a31d7f7096faaa1c1c26467b51c15
-SRC_URI+="
- https://github.com/python/pythoncapi-compat/archive/${COMMIT}.tar.gz -> \
- ${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz
-"
-LICENSE="LGPL-2.1+"
-SLOT="3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="+cairo test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.80:2
- >=dev-libs/gobject-introspection-1.84:=
- dev-libs/libffi:=
- cairo? (
- >=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}]
- x11-libs/cairo[glib]
- )
-"
-DEPEND="
- ${RDEPEND}
- test? (
- >=app-accessibility/at-spi2-core-2.46.0[introspection]
- dev-python/pytest[${PYTHON_USEDEP}]
- x11-libs/gdk-pixbuf:2[introspection,jpeg]
- x11-libs/gtk+:3[introspection]
- x11-libs/pango[introspection]
- )
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/Skip-test-using-dbus-in-sandbox.patch"
- "${FILESDIR}/Skip-test-detecting-cycle-among-base-classes-typeerr.patch"
-)
-
-src_unpack() {
- default
- unpack "${P}_${COMMIT}_pythoncapi-compat.gh.tar.gz"
-}
-
-src_prepare() {
- default
- find "${S}/subprojects/pythoncapi-compat" -mindepth 1 ! -name meson.build -exec rm -vrf {} + || die
- mv -v "${WORKDIR}/pythoncapi-compat-${COMMIT}"/* "${S}/subprojects/pythoncapi-compat" || die
-}
-
-python_configure() {
- local emesonargs=(
- $(meson_feature cairo pycairo)
- $(meson_use test tests)
- -Dpython="${EPYTHON}"
- )
- meson_src_configure
-}
-
-python_compile() {
- meson_src_compile
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
- local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
-
- if [[ ${EPYTHON} == python3.14* ]] ; then
- # https://gitlab.gnome.org/GNOME/pygobject/-/issues/694
- local -x PYTEST_ADDOPTS="-k 'not (ref_count or has_two_refs)'"
- fi
-
- meson_src_test --timeout-multiplier 3 || die "test for ${EPYTHON}"
-}
-
-python_install() {
- meson_src_install
- python_optimize
-}
diff --git a/dev-python/pygobject/pygobject-3.54.5.ebuild b/dev-python/pygobject/pygobject-3.54.5.ebuild
deleted file mode 100644
index effe3d38c6ae..000000000000
--- a/dev-python/pygobject/pygobject-3.54.5.ebuild
+++ /dev/null
@@ -1,82 +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=no
-GNOME_TARBALL_SUFFIX="gz"
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org meson virtualx xdg distutils-r1
-
-DESCRIPTION="Python bindings for GObject Introspection"
-HOMEPAGE="
- https://pygobject.gnome.org/
- https://gitlab.gnome.org/GNOME/pygobject/
-"
-
-LICENSE="LGPL-2.1+"
-SLOT="3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="+cairo test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-libs/glib-2.80:2
- >=dev-libs/gobject-introspection-1.84:=
- dev-libs/libffi:=
- cairo? (
- >=dev-python/pycairo-1.16.0[${PYTHON_USEDEP}]
- x11-libs/cairo[glib]
- )
-"
-DEPEND="
- ${RDEPEND}
- test? (
- >=app-accessibility/at-spi2-core-2.46.0[introspection]
- dev-python/pytest[${PYTHON_USEDEP}]
- x11-libs/gdk-pixbuf:2[introspection,jpeg]
- x11-libs/gtk+:3[introspection]
- x11-libs/pango[introspection]
- )
-"
-BDEPEND="
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}/Skip-test-using-dbus-in-sandbox.patch"
- "${FILESDIR}/Skip-test-detecting-cycle-among-base-classes-typeerr.patch"
-)
-
-python_configure() {
- local emesonargs=(
- $(meson_feature cairo pycairo)
- $(meson_use test tests)
- -Dpython="${EPYTHON}"
- )
- meson_src_configure
-}
-
-python_compile() {
- meson_src_compile
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local -x GIO_USE_VFS="local" # prevents odd issues with deleting ${T}/.gvfs
- local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
-
- meson_src_test --timeout-multiplier 3 || die "test for ${EPYTHON}"
-}
-
-python_install() {
- meson_src_install
- python_optimize
-}
diff --git a/dev-python/pygobject/pygobject-3.56.2.ebuild b/dev-python/pygobject/pygobject-3.58.0.ebuild
index 925f280900e9..044d707349d2 100644
--- a/dev-python/pygobject/pygobject-3.56.2.ebuild
+++ b/dev-python/pygobject/pygobject-3.58.0.ebuild
@@ -67,6 +67,15 @@ python_test() {
local -x GIO_USE_VOLUME_MONITOR="unix" # prevent udisks-related failures in chroots, bug #449484
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x XDG_CACHE_HOME="${T}/${EPYTHON}"
+ local _PYTEST_ADDOPTS=(
+ # see epytest in python-utils-r1.eclass
+ -vv -ra -l -o filterwarnings=
+ # test_python_calls_sync: timeout
+ --deselect tests/test_gdbus.py::TestGDBusClient::test_python_calls_sync
+ # test_pointer_array_struct_with_guint8: broken on BE but test is dodgy anyway, bug #978759
+ --deselect tests/test_gi.py::TestStructure::test_pointer_array_struct_with_guint8
+ )
+ local -x PYTEST_ADDOPTS="${_PYTEST_ADDOPTS[@]}"
meson_src_test --timeout-multiplier 3 || die "test for ${EPYTHON}"
}
diff --git a/dev-python/pykeepass/pykeepass-4.2.0.ebuild b/dev-python/pykeepass/pykeepass-4.2.0.ebuild
index 08f3ae9e441d..5f07582d0f8d 100644
--- a/dev-python/pykeepass/pykeepass-4.2.0.ebuild
+++ b/dev-python/pykeepass/pykeepass-4.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
RDEPEND="
>=dev-python/argon2-cffi-18.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index f02309dd42d3..fae28521b0e4 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1,3 +1,4 @@
DIST mongo-python-driver-4.16.0.gh.tar.gz 2569546 BLAKE2B 7e81fd259f6ed21d4a600f41b6945f520b650bcde2764cdafab85664143dbe76b2d9e1a1db0306bc39afdcd62afc3e250c6e04031b01ffd9dacda8b968786c21 SHA512 38e347599fe26cbe9846ef7f1e0e4adb3aea5dc949d0e8a4bd61806dc00808804e1c34e9213f09c30aab75d26243dd2ed54ab5014e604b127a5c71337855195f
DIST mongo-python-driver-4.17.0.gh.tar.gz 2597488 BLAKE2B ad733542ca37f1de3e267ef58b5d4c23a4ee10f1b7a9e43ad95adc8602b427cee4ed4126632618c2f1f7134da3d51ee31bed27c36aab47c9f0ee1ebb47e5e6ce SHA512 da3d2d6136e9e4c697f6f5a9a38010bcd6f00a5cbf018de7b6afb3bc9e459ce9a8fcc95db79422eb2ef5d677baa564934db01a5ca4e2909a63c4538098986ab7
DIST mongo-python-driver-4.18.0.gh.tar.gz 2821886 BLAKE2B a7905ba2c5ef44ffc0d3d9ab3da8b59445358652a7a0ded6b1929bf36dfcc0bda63fad52b6f5c80a1bc746433521dc8690c064c10d312f07e2b28658f88ec217 SHA512 c4d2ded2148f98e2a510547b2e14d2aa4bd566d5b7c89e03a787d30be068c78278f5ff90edf4160a875df7bb6342773bc73cf14ac4cae2b66d679661ef6ed918
+DIST mongo-python-driver-4.18.1.gh.tar.gz 2824031 BLAKE2B 16147601da6004c0c87adefe9bf74ce21bcda1a3cf25c0c0ab9d5dc1542b92c1581fa1bb1c6f7024615990e8142ab87bc3fe665ec8cac6df9f48b0accaf9acc7 SHA512 2dd0b300cbfdbc8de197fd5ee21f5bca210b5df1efb1223dd3aa50cddae34b87fd16799450d8126769e50c97ce203d69e9bb1aa4b67a16f63e53a933db88a707
diff --git a/dev-python/pymongo/pymongo-4.18.1.ebuild b/dev-python/pymongo/pymongo-4.18.1.ebuild
new file mode 100644
index 000000000000..fcae8c8a4cfd
--- /dev/null
+++ b/dev-python/pymongo/pymongo-4.18.1.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit check-reqs distutils-r1
+
+MY_P=mongo-python-driver-${PV}
+DESCRIPTION="Python driver for MongoDB"
+HOMEPAGE="
+ https://github.com/mongodb/mongo-python-driver/
+ https://pypi.org/project/pymongo/
+"
+SRC_URI="
+ https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc kerberos +native-extensions +test-full"
+
+RDEPEND="
+ <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
+ kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ test-full? (
+ >=dev-db/mongodb-2.6.0
+ )
+ )
+"
+
+distutils_enable_sphinx doc
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+reqcheck() {
+ if use test && use test-full; then
+ # During the tests, database size reaches 1.5G.
+ local CHECKREQS_DISK_BUILD=1536M
+
+ check-reqs_${1}
+ fi
+}
+
+pkg_pretend() {
+ reqcheck pkg_pretend
+}
+
+pkg_setup() {
+ reqcheck pkg_setup
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ # we do not want hatch-requirements-txt and its ton of NIH deps
+ sed -i -e '/requirements/d' pyproject.toml || die
+}
+
+python_compile() {
+ # causes build errors to be fatal
+ local -x TOX_ENV_NAME=whatever
+ local DISTUTILS_ARGS=()
+ # unconditionally implicitly disabled on pypy3
+ if ! use native-extensions; then
+ export NO_EXT=1
+ else
+ export PYMONGO_C_EXT_MUST_BUILD=1
+ unset NO_EXT
+ fi
+
+ distutils-r1_python_compile
+
+ # upstream forces setup.py build_ext -i in their setuptools hack
+ find -name '*.so' -delete || die
+}
+
+python_test() {
+ rm -rf bson pymongo || die
+
+ local EPYTEST_DESELECT=(
+ # network-sandbox
+ test/asynchronous/test_async_loop_unblocked.py::TestClientLoopUnblocked::test_client_does_not_block_loop
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
+ test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
+ test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
+ test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
+ test/test_client.py::ClientUnitTest::test_detected_environment_logging
+ test/test_client.py::ClientUnitTest::test_detected_environment_warning
+ test/test_client.py::TestClient::test_service_name_from_kwargs
+ test/test_client.py::TestClient::test_srv_max_hosts_kwarg
+ test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
+ test/asynchronous/test_dns.py::IsolatedAsyncioTestCaseInsensitive::test_connect_case_insensitive
+ test/test_srv_polling.py
+ test/asynchronous/test_srv_polling.py
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
+ test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
+
+ # broken regularly by changes in mypy
+ test/test_typing.py::TestMypyFails::test_mypy_failures
+
+ # fragile to timing? fails because we're getting too many logs
+ test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
+
+ # hangs?
+ test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
+
+ # broken async tests?
+ test/asynchronous/test_encryption.py
+
+ # -Werror
+ test/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
+ test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated
+
+ # fragile to timing? Internet?
+ test/test_client.py::TestClient::test_repr_srv_host
+ test/asynchronous/test_client.py::TestClient::test_repr_srv_host
+ test/asynchronous/test_ssl.py::TestSSL::test_pyopenssl_ignored_in_async
+ )
+
+ if ! use test-full; then
+ # .invalid is guaranteed to return NXDOMAIN per RFC 6761
+ local -x DB_IP=mongodb.invalid
+ epytest -p asyncio
+ return
+ fi
+
+ # Yes, we need TCP/IP for that...
+ local -x DB_IP=127.0.0.1
+ local -x DB_PORT=27000
+
+ local dbpath=${TMPDIR}/mongo.db
+ local logpath=${TMPDIR}/mongod.log
+
+ local failed=
+ mkdir -p "${dbpath}" || die
+ while true; do
+ ebegin "Trying to start mongod on port ${DB_PORT}"
+
+ # mongodb is extremely inefficient
+ # https://www.mongodb.com/docs/manual/reference/ulimit/#review-and-set-resource-limits
+ ulimit -n 64000 || die
+
+ local mongod_options=(
+ --dbpath "${dbpath}"
+ --bind_ip "${DB_IP}"
+ --port "${DB_PORT}"
+ --unixSocketPrefix "${TMPDIR}"
+ --logpath "${logpath}"
+ --fork
+
+ # try to reduce resource use
+ --wiredTigerCacheSizeGB 0.25
+ )
+
+ LC_ALL=C mongod "${mongod_options[@]}" && sleep 2
+
+ # Now we need to check if the server actually started...
+ if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
+ # yay!
+ eend 0
+ break
+ elif grep -q 'Address already in use' "${logpath}"; then
+ # ay, someone took our port!
+ eend 1
+ : $(( DB_PORT += 1 ))
+ continue
+ else
+ eend 1
+ eerror "Unable to start mongod for tests. See the server log:"
+ eerror " ${logpath}"
+ die "Unable to start mongod for tests."
+ fi
+ done
+
+ nonfatal epytest -m "default or default_async or encryption" || failed=1
+
+ mongod --dbpath "${dbpath}" --shutdown || die
+
+ [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
+
+ rm -rf "${dbpath}" || die
+}
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index 72a92b682279..0219d39795a9 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,3 +1,4 @@
DIST regex-2026.7.19.tar.gz 416440 BLAKE2B c7e922fca496731dba5130bd7f572df56adfd5c31db6812f935ede24060b3fb6abca57836f3d0a0ad7bcee6433e1520b14611657495e6e844fc2d5d99d6dba32 SHA512 807b987dd5fa12f5fdb95c79955823f263f03f23059c8ec1783958bab5dadb1c38dab022a3e519ebb6810b6e03692c14b4d354506ff7a00a7323ee79d61f4e34
DIST regex-2026.8.31.tar.gz 416646 BLAKE2B b151ab7f142878e3e84bf32d42451fe47aa70802f252ac55902eebe07d413a117c68d889a561d2255adf1cf4565347e1cbbe4953682b87ef5a23b910e78744c3 SHA512 1f0191caa4e9c2e5e9b848ba2f85d2e48a678d6ba4ec9bf3c530b201c9edf54059e517946839df86bb00cfdf64111f8d8943abb2bc9df68d1ddf4489e110ba87
+DIST regex-2026.9.10.tar.gz 417072 BLAKE2B dcaa82df983b22c64fe5a48354cfe3a0cc9a47bb8d8ea707e66e40003ba6d9ca616c847efcbf7617a5af3f753f0ff56568bf678b0bc6fb1efeaf688cf846c1be SHA512 ec7c1b2d6c549941ac6731a5490936e8fd3deffe8c34f12600b23c73dacb3818c02fc27fa88eb34aab6b3279ef6554d269565ffeb5530fd0707caad02b2d3c1d
DIST regex-2026.9.3.tar.gz 416720 BLAKE2B c9a5bf8a95e03708e4b0bfd789d565aea8a5b36a33d3d5754351d5d14ec2e29dc77aeb6331e1cc88b44a9ab95d3a5f134ed2f0cacf0253c152d924a0cd72aede SHA512 e0608fcd9bfa1b61a8bbdd1299ffac7ab310a2e88ad3f11297780efe300e1bbd62904e5234b8692e3e7fda9063502b6d7c0faf11df3c378af34d8751bf8a9130
diff --git a/dev-python/regex/regex-2026.9.10.ebuild b/dev-python/regex/regex-2026.9.10.ebuild
new file mode 100644
index 000000000000..f45afd466843
--- /dev/null
+++ b/dev-python/regex/regex-2026.9.10.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+# pypy isn't supported upstream because of its UTF8 representation for strings
+# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="
+ https://github.com/mrabarnett/mrab-regex/
+ https://pypi.org/project/regex/
+"
+
+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="doc"
+
+distutils_enable_tests unittest
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/Features.html )
+ local DOCS=( README.rst docs/*.rst )
+
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
+ eunittest
+}
diff --git a/dev-python/scikit-learn/Manifest b/dev-python/scikit-learn/Manifest
index 2e8e39cfd5e6..173c579cef84 100644
--- a/dev-python/scikit-learn/Manifest
+++ b/dev-python/scikit-learn/Manifest
@@ -1,3 +1,3 @@
DIST scikit-learn-1.8.0.gh.tar.gz 7321445 BLAKE2B 3010843f019f97a845eb4184dbb0225bc6ef36e5af374811ea08492a78a85ece7ac5cf543c6bd33bad8faf6adbb2ea2412b3ea04e3a30cb7ea6b3d63da1a95a2 SHA512 801985d472894f896e9f277bbdef76388d9a53d821eaede95c43850d8e812d0a5cbaf16c15f2e495ec569a070f727b12729e346775e278afa11c30c713effb62
DIST scikit-learn-1.9.0.gh.tar.gz 7731588 BLAKE2B 1d0861355b9a41f15b75d0cdcb2dc29e68e8d74943c2512dffca9a7f226e4306ab72c469a186e8262f97af249f3c260d7ec0d54e566e5ff1dfe7d5a41dc8e3d7 SHA512 27976d83841d3ea939c9193445d7d81a13de54d466851c94325c576e27de0959a3440347d8c342fec5c7f94476acb68b1056e4e0cca894e23a2ac783014b783f
-DIST scikit-learn-1.9.0rc1.gh.tar.gz 7733487 BLAKE2B 17c7241207ed29c4a9554a45ba720cf948df88ebfce0c38168073bde32e9cac0113401b6b315756a0104216d09e9918d3d45ac89fc87379100ccf62d8852eaad SHA512 e0a230be466333d27c4a75a56b64ba818a065818f7a4997278ab86c2e40f9734656898d9fe96c4e7b3bef1cd3eb9b83995c52b9051fed93b1df7e0ce7ce46c32
+DIST scikit-learn-1.9.1.gh.tar.gz 7770045 BLAKE2B 9b8fe7f7f9751f10785c994dca7d14f65229ece4bd429627c8da24791b2d4c3173e81a96adb3481cd7ced2d06efebca10bdd71fc17f537bedaaf400ed07cdadb SHA512 ec1fa2101205e97354f265e5d667fa496c8d77c8f75602c93f63d48ef0093b5268f58e34477cc50323037a7d8dc1c57079d1e97aa666c21ef4e5677b77b5535e
diff --git a/dev-python/scikit-learn/scikit-learn-1.9.0_rc1.ebuild b/dev-python/scikit-learn/scikit-learn-1.9.1.ebuild
index f3d779913db2..f3d779913db2 100644
--- a/dev-python/scikit-learn/scikit-learn-1.9.0_rc1.ebuild
+++ b/dev-python/scikit-learn/scikit-learn-1.9.1.ebuild
diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest
index 9b5408eab629..00246b02cb9b 100644
--- a/dev-python/selenium/Manifest
+++ b/dev-python/selenium/Manifest
@@ -6,8 +6,11 @@ DIST selenium-4.47.0.tar.gz 1014095 BLAKE2B 09377d2e0e7161d59e56ba9b1c4eb23295c7
DIST selenium-4.47.0.tar.gz.provenance 9602 BLAKE2B 26f363c77fcc2dfa1e4f65775f5cdd002c5667b1a06d6ea7ba29cd3d947afb23aca02a8c01d79c91a3d2462b46478d235bc5d371fbf3077638c381e12722e1ec SHA512 85710e3d327b1d8e4160e4245ec2e8ed2b2455dcae2439be8b476a850878a995b8ab12d6af7d4a2bf178aa824c6234a5decd76a5d721ef1e53210af918dbad7d
DIST selenium-4.48.0.tar.gz 1055269 BLAKE2B b32ee5a3173349ea84a1e02a0597c97b16bab9cf6befc06f7c25819dcb386aa6a261a31094f2f34472516b02b6ac082f025596a017f1a2fa010a8682dff7e254 SHA512 a53099b8928f34de45ebb56c2d400897997d5d3f91b9dd8d986cfc8b82fb7b4843464b5de4a5610b0741af596f23c3195fa9d2d4a20739ace48c7b8147efa289
DIST selenium-4.48.0.tar.gz.provenance 9510 BLAKE2B 64930b11f482d836deb355698076bc7b6d69503cc71210ac287d6b666d7ba7af2a489732fbd05ecb745b4ae6d4427f10ab5417f160f9ad5bcdbaf576026620fe SHA512 39b4104f5e9bc8df64e100a20113558496913a344c27610fa558507d97c17cba78c76e181eacdcd7317c1473d09eed5946a85479fbe48402e13a923c906d5886
+DIST selenium-4.49.0.tar.gz 1059027 BLAKE2B 9e35fb89dc9966c22ea1577ce7bc0aa3911528cb303255320e757ab6a4d8be66212616aa0ce8cea75441fc11efdf3cb5afa93f4b1a12d6c610c4bd18dbbf6c1c SHA512 c570250edd551bfb1629543c53c360619e6ed214dcb31f9abab43d5ff34f6b52909ac72d362fa9d7fec078df0bf7f73ae193acdd2016e1a42655c2f300c4053b
+DIST selenium-4.49.0.tar.gz.provenance 9690 BLAKE2B bbaccc4cba8a4da1c8c5278eb5e4ff2e765920721530eaf041d6b834d14fc60911db530fa93d0b9f9048381627e34e0ca9bf590527354b3a7af233e67095bf49 SHA512 0544fd467dc562e65ffb0125df2d424047890dcae01cd28639c2eabea73be7892d05be6095f4cb739d1f1a239f1d187c0afc0b083bfebbce9ed877660ab7a890
DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef SHA512 5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba
DIST selenium-selenium-4.35.0.gh.tar.gz 52550104 BLAKE2B b7ed0fb513cfb2ed24aa8393497b349f930739c3d24a330e5942fbaa5505f31d7086396a430776a3a28a5f65927b92bf27c0a32e8c36d893b5d62ef73151d5ef SHA512 dc73829e3b0fcb7fb7ee1cc04574b95b63d23f67974575dbd66338e14a5cb2b06f983145ce874be0d7124e8828b0a41b99c75d3befb19e04cbf8d027d0bb983a
DIST selenium-selenium-4.46.0.gh.tar.gz 43968307 BLAKE2B 83554d041f8fb060d74e326494ada681c27dcf1457d705e7c6c91b92f7342cd8675c2954cf34ffabec445d542f824d88bf610e27778dd5363a713bf96b9ee89a SHA512 4a5317252dfaf90bac5689b0df83a19cb9e1dfd03fdb7de1f6d1ec03c50803c444cf89f231e34d6d26971f7275ab30179bcb35883533dc132d49beba9d96462c
DIST selenium-selenium-4.47.0.gh.tar.gz 44062095 BLAKE2B d6ce15ce857d3dd0e796935981e419be5357d49921ff76d5bcdf508408022234a2f96859e961b29e62666d3f28875910384900701629a4646b809f1b9c0e8617 SHA512 bb8dc827715fcb276211dd9800e8a375fa2b59b4e42a2952091946c7df2dabe226517633191da3b134d7fdd1554b0643added277be577fe4985dc54d141fad5d
DIST selenium-selenium-4.48.0.gh.tar.gz 44169864 BLAKE2B 6c3073b38b660f73fbfd1b683403d851c62ef1fd13a8d6f4e2df60e562e895ea323cdd999686e70d22b3a40e2cd0194b27cd88a4b4bbbe2dd4795ece30496659 SHA512 f1e5a02d9b2946586263b50be33aea75c3cc98013bafcbe52f8c787f497011528c25d392c0af3af0b3a0023ddfe1a87ab10eb3e813eef6feff3bd9bbe285cd77
+DIST selenium-selenium-4.49.0.gh.tar.gz 44228222 BLAKE2B 3efebe68d3b3b70e5089225d86b693357154d8c66d0ec6545d77012edc54edcc1ecde69b92f4e7bb110ce734c49a1766cb8d8fcb13814bac9d0b7dbd49a41567 SHA512 f5aba633816adf0d57814ce62832d3d0ec70ad75c466af4696c47b904f69411afc7a23464544d699b6b1f7d5b927c18e817c45e993c57c98b9f37299949bf625
diff --git a/dev-python/selenium/selenium-4.49.0.ebuild b/dev-python/selenium/selenium-4.49.0.ebuild
new file mode 100644
index 000000000000..6bc9836d962e
--- /dev/null
+++ b/dev-python/selenium/selenium-4.49.0.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/SeleniumHQ/selenium
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+# base releases are usually ${P}, followups ${P}-python
+TEST_TAG=${P}
+[[ ${PV} != *.0 ]] && TEST_TAG+=-python
+TEST_P=selenium-${TEST_TAG}
+
+DESCRIPTION="Python language binding for Selenium Remote Control"
+HOMEPAGE="
+ https://seleniumhq.org/
+ https://github.com/SeleniumHQ/selenium/tree/trunk/py/
+ https://pypi.org/project/selenium/
+"
+SRC_URI+="
+ test? (
+ https://github.com/SeleniumHQ/selenium/archive/${TEST_TAG}.tar.gz
+ -> ${TEST_P}.gh.tar.gz
+ )
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/certifi-2026.1.4[${PYTHON_USEDEP}]
+ >=dev-python/trio-0.31.0[${PYTHON_USEDEP}]
+ >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2.6.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep "
+ dev-python/filetype[\${PYTHON_USEDEP}]
+ dev-python/pytest-mock[\${PYTHON_USEDEP}]
+ dev-python/rich[\${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[\${PYTHON_USEDEP}]
+ >=dev-util/selenium-manager-${PV}
+ net-misc/geckodriver
+ || (
+ www-client/firefox
+ www-client/firefox-bin
+ )
+ )
+ " "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not build selenium-manager implicitly
+ sed -e 's:\[tool\.setuptools-rust:[tool.ignore-me:' \
+ -i pyproject.toml || die
+ # unpin deps
+ sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+ # remove nonsense typing deps
+ sed -i -e '/types/d' -e '/typing/d' pyproject.toml || die
+}
+
+python_test() {
+ # NB: xdist is causing random pytest crashes with high job numbers
+
+ if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ local EPYTEST_IGNORE=()
+ local EPYTEST_DESELECT=(
+ # expects vanilla certifi
+ test/unit/selenium/webdriver/remote/remote_connection_tests.py::test_get_connection_manager_for_certs_and_timeout
+ )
+ local pytest_args=(
+ # https://github.com/SeleniumHQ/selenium/blob/selenium-4.8.2-python/py/test/runner/run_pytest.py#L20-L24
+ # seriously?
+ -o "python_files=*_tests.py test_*.py"
+ )
+ if use test-rust; then
+ local -x PATH=${T}/bin:${PATH}
+ local -x SE_MANAGER_PATH="$(type -P selenium-manager)"
+
+ local EPYTEST_RERUNS=5
+ pytest_args+=(
+ --driver=firefox
+ --browser-binary="$(type -P firefox || type -P firefox-bin)"
+ --driver-binary="$(type -P geckodriver)"
+ --headless
+ )
+
+ EPYTEST_IGNORE+=(
+ # throws some error that pytest doesn't even show
+ test/selenium/webdriver/firefox/ff_installs_addons_tests.py
+ test/selenium/webdriver/common/bidi/
+ )
+ EPYTEST_DESELECT+=(
+ # expects prebuilt executables for various systems
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_windows
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_linux
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_mac
+ test/selenium/webdriver/common/selenium_manager_tests.py::test_errors_if_invalid_os
+
+ # TODO: these don't respect --*-binary and try to fetch versions
+ test/selenium/webdriver/firefox/
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestIntegration::test_we_can_pass_options
+ test/selenium/webdriver/marionette/mn_set_context_tests.py::test_we_can_switch_context_to_chrome
+
+ # TODO
+ 'test/selenium/webdriver/common/devtools_tests.py::test_check_console_messages[firefox]'
+ test/selenium/webdriver/common/_bidi/
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_binary
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_ctor
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_prefs
+ test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_to_capabilities
+ test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_element_with_custom_locator
+ test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_elements_with_custom_locator
+
+ # Internet
+ test/selenium/webdriver/remote/remote_server_tests.py::test_download_latest_server
+ test/selenium/webdriver/remote/remote_hub_connection_tests.py::test_command_executor_ssl_certificate_is_verified
+ )
+ else
+ EPYTEST_IGNORE+=(
+ test/selenium
+ )
+ fi
+
+ cd "${WORKDIR}/${TEST_P}/py" || die
+ rm -rf selenium || die
+ epytest "${pytest_args[@]}"
+}
diff --git a/dev-python/sip/sip-6.16.1-r1.ebuild b/dev-python/sip/sip-6.16.1-r1.ebuild
index f18bc365fc4a..d87b369ec78c 100644
--- a/dev-python/sip/sip-6.16.1-r1.ebuild
+++ b/dev-python/sip/sip-6.16.1-r1.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="BSD-2 BSD"
SLOT="5"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/snakeoil/snakeoil-0.11.6.ebuild b/dev-python/snakeoil/snakeoil-0.11.6.ebuild
index d94789eb023a..dbbff9d252f1 100644
--- a/dev-python/snakeoil/snakeoil-0.11.6.ebuild
+++ b/dev-python/snakeoil/snakeoil-0.11.6.ebuild
@@ -15,7 +15,7 @@ if [[ ${PV} == *9999 ]] ; then
https://github.com/pkgcore/snakeoil.git"
inherit git-r3
else
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
inherit pypi
fi
diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest
index 2497c827019d..c65b40b1ea11 100644
--- a/dev-python/tox/Manifest
+++ b/dev-python/tox/Manifest
@@ -8,3 +8,5 @@ DIST tox-4.61.2.tar.gz 306825 BLAKE2B 71159dd79aef91c04aed340bc56cbb7cb1bc9b0e11
DIST tox-4.61.2.tar.gz.provenance 9818 BLAKE2B b6f6d6d2ac83a7c5598df9ba0942a87a7830ea1b2ba5936fd2653db6febde47187a4f9e705504d4a42d7c898b2b850bc005709d9ffc24f787f4ce0dd62977a78 SHA512 c452837d29391310bdba4fc82ea7d0d6464efa394ed5a6629bb997db9578c9f97bf9322174aafb66212f88c69349f85cf73c587029aa501f7d475a4ecc90227b
DIST tox-4.61.3.tar.gz 307979 BLAKE2B 895d2b3bf0131a71a51afefa3daee9713121acfeff739af079c00e66400203eb65277a8855e064b7d39fb9de7169ec543310ca2f00da601c772efcb6245dd400 SHA512 83e1f61f28cc865935b3329f5a9d11405ce2622facf5648206e5043cd77aef4fe602c36f12f0f26e21eddb4eda3325f84fd0dbf9cc0cb4c123007e1f729e1c46
DIST tox-4.61.3.tar.gz.provenance 9438 BLAKE2B 5b7114d82ba2b6435eb2197d18f484a8bb5e9f75ce1c4fa8e68da2d154cac45da4a3a421c95d3a04bfb85cb798fe8842bdeb31fb994f00457b10b8b1c78bfd0e SHA512 379a14692ffc7649d74271c21dae7eee460dd040b7f33d047248c1648449680c4a317acb400f2360ca44764605e5ce6d29359dfa25889e666b5c0e2078a68080
+DIST tox-4.61.4.tar.gz 308140 BLAKE2B ae284f0ac7fcca7d4bcb0ff7442c97b19e8b783d1218336b02e65ba6916cbcdf9a9aa1560b92d0c250d421fa7547e5d15aacc6ebb39989f79ee507e0ea1838b0 SHA512 6fbaa3f0380dc55d90d23a4dc204ef691085970902dedb99a1d9dbcd3713f784896a8cbe33fc367daeb044c367d4fc968da31829f0033e9091a2ef3c1dea5a71
+DIST tox-4.61.4.tar.gz.provenance 9548 BLAKE2B 3fe6f9b3f0fb5461b30dbcba77407ebdb420858c31f12a69e78dc3f8b5490f35ae0df658a2e6222686829064a247975bd7747d29531e7dc0309a7ab636c341a6 SHA512 f3c144d2ffcbb8407f2a516a5d8b068e44e862bf163f62ba00bca73e6e543aa765afd0f18f5dbc97591bc4e640b14c68377b29729c0b69c54aadee9b24bad439
diff --git a/dev-python/tox/tox-4.61.4.ebuild b/dev-python/tox/tox-4.61.4.ebuild
new file mode 100644
index 000000000000..8eb35c40185e
--- /dev/null
+++ b/dev-python/tox/tox-4.61.4.ebuild
@@ -0,0 +1,84 @@
+# 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/tox-dev/tox
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="virtualenv-based automation of test activities"
+HOMEPAGE="
+ https://tox.readthedocs.io/
+ https://github.com/tox-dev/tox/
+ https://pypi.org/project/tox/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ dev-python/cachetools[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/filelock[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pluggy[${PYTHON_USEDEP}]
+ dev-python/pyproject-api[${PYTHON_USEDEP}]
+ dev-python/python-discovery[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.15[${PYTHON_USEDEP}]
+ ' 3.12)
+"
+BDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/distlib[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/re-assert[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{mock,rerunfailures,timeout,xdist} time-machine )
+EPYTEST_RERUNS=3
+# upstream timeouts are quite short
+: ${EPYTEST_TIMEOUT:=180}
+# xdist seems to mess up state between successive implementation runs
+distutils_enable_tests pytest
+
+src_prepare() {
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # devpi_process is not packaged, and has lots of dependencies
+ cat > "${T}"/devpi_process.py <<-EOF || die
+ def IndexServer(*args, **kwargs): raise NotImplementedError()
+ EOF
+
+ local -x PYTHONPATH=${T}:${PYTHONPATH}
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external
+ tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz
+ tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_installpkg_pep517_envs
+ # require tombi
+ tests/session/cmd/test_schema.py::test_schema_tombi_lint
+ )
+ local EPYTEST_IGNORE=(
+ # requires devpi*
+ tests/test_provision.py
+ )
+
+ epytest -o addopts=
+}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 6c072c9ae249..88bc0aad12bb 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -1,11 +1,7 @@
-DIST uv_build-0.11.23.tar.gz 402105 BLAKE2B af9b72353cf82896795545201e911ed7a26f690bce392597bf8ba602594637cdd0562bccbac56d34ca0b2bee274cd533af1c8b79a73e5177711ef8b62e0b7a53 SHA512 730ceaad2e1ea092dfc37ac46ba631cf9e549415240e223e93d56afa1738b1bcdaa79427336ca13d273645ac8e5e9adb8ea6edbefa62c76b1380c7f663f8c77d
DIST uv_build-0.11.25.tar.gz 404894 BLAKE2B 6922a5e91c5c657ca5ed90edb0250cbd7192d208cdc135d8c5de74c04de8b91c10d7c0d52d58224a6cb60c7114ecbdcbc2181ac18b0b69cf41d88fd007329a36 SHA512 9315f67c76004b6b45e08d8cad53e5ac4f04a2342e18768523e71f9dc2f7e81aec599f968983df3237d1ad3dc9b87b088f99d2ea79994543fa3623ab21ae5730
-DIST uv_build-0.11.29.tar.gz 411484 BLAKE2B 4a9250bd8ecb4967c222f5ed0842c6415963a3423b593f59dfb87a2fa343839abb0d77f1cb1f90d69ac45c54722cde8ff68e3e567478f54a0b21ba74fd4d55fd SHA512 c9722cb2575d9d0b50ba36b53b8cb2eae35f18e2da92ea7eab74743354e8b17034172f2c932e381cf158d2d748103d9bcb97ba383e465f7770efc2dc11ae2dc6
-DIST uv_build-0.12.1.tar.gz 412371 BLAKE2B b5eb43ce1af6d78dbb68b2445329b90520ac6e9269ff6711270763d43d09cdd3a66ac9cbeab4f52964feea3b0d08559c133cd2510f65403dbf678d7bae3e5588 SHA512 5dda5acdf4a665cbc59a24c657921c81a6a5622fef463da255df2372d48186aed56806311824ede70337f64e8dde797b82386fa4aa2ed11b82fb11047ec2ec67
DIST uv_build-0.12.10.tar.gz 423598 BLAKE2B 363ee130a5da490859d0a2f0122be340f36904218998d332c4d925cd76e5f3fda2218dad501455d602b77bbb50f68463dc4186ad61ee78713aca9c77eead8137 SHA512 759ef57aa5c74698b11c0cd8c6c2b729f2ba31f5966a7ebce61f06b46e260c314d4ef99412875544c6f784fa5df8e4df30ca7ebf3907ee5619916e412dd9dd63
-DIST uv_build-0.12.11.tar.gz 424313 BLAKE2B daa6e52372e12a3985d2d51b7d5dea07a6f79f227a1267e131cc95319556c163abede0d4443e5f48c89e1a35970bade29c6c3cf2ee3178360598933263878902 SHA512 9ac0d0f512fc7262ae5fbecdc95dfef273e05a12ed6cccca7d9053d19e0a7d72c7aa94332d5c4a4a166450c97a5b73661de4c8c686e69924c0f77640840f2a81
+DIST uv_build-0.12.12.tar.gz 424423 BLAKE2B c7ed255923f884467ecaf8d70be044bea5c39db61611d320105d2a5c4c8e885a674ed22fa285ed398abbcaa229d9cca339f31f7d2e022adf099b5e0fe175d4c8 SHA512 38b91b29112af0e9677ae666125356b1735d8608ecdbcfae1d87ceff2b8cb8f61d5ecf917292a620d0e9c6f6d3ac121994fba2a0d7d076e18cd52e813fc1e2b2
+DIST uv_build-0.12.13.tar.gz 424846 BLAKE2B 9fee11946f1067045349d28ba05b6dae8aaea430fdbbe19970c286d20f758d03343ed9a6afd2166f85ecfee3009fb66c7429f6ee8c58a6453e0203f2a3fca38a SHA512 77bf75208e6932b791b42d2a9dc199901a981d3ab8881e58cd5604e3207aef020538ff120770e0eb31646c1c0b7e972c816932c9d3bb0defc6b9583763607584
DIST uv_build-0.12.3.tar.gz 414444 BLAKE2B f226c1c2bf0b2af538f66095e20c02ad1933afdee62a07eff5f1135692bab47e286f67e7a8f5882e98c61fbb6bf831a85dd56a2d5af2bee6d62d8857a59e56bc SHA512 90d9af3e1a1ff1d7dda21fa38c0ac2d94536e73697ddabb408fb38e2d381498b2401007af0ab31c39cbf3b632aeca2991b3a66d7108e1c5eb7294b3fba8fe107
-DIST uv_build-0.12.6.tar.gz 419593 BLAKE2B f6de34befe98b15e30e4a067993fa1763cb9769612e8ed518080fcb91a994cc0d86a0a08b9e784fa5ddf9ab343e4889e2615548b94003835512b2e9ac8495259 SHA512 c609f89b8c0f1decdf64c056084354ae04d6337e27dbd22297b5d462fcba0f0ce29f5a0a40b8f274ac5668f4805d9971b1da5509d10071ee2354f6fe78cc65ee
DIST uv_build-0.12.7.tar.gz 418759 BLAKE2B 94aa33b2644f849a686d80d7f7d365ca8433615d93f27209fca5b21747363cd349d11e887d090420102f06a49977ce963b8f19c24a4280bf82a09943ba08885b SHA512 135f845b3ee6d1925f740917f83f94ec1a7e95aab5ed2db0aa70516c712ab0a143a0e427d3c172fac0bb1fabaa9103718bb2a26c31c9a287e3af65ac0175a245
-DIST uv_build-0.12.8.tar.gz 423420 BLAKE2B 35f99b89540d3fdab189d9d0df9367f98cf427e893748bbd06bf55c4eb515a17211d517ac06977d08e87863e3ba6f5691e5ca5d9863d01b94cf2127ed113ca65 SHA512 e391cc931ff27730eed9dab0cbfc16de8958e744cd172eedc3f0e11f2a2593967b47a71cf183f0d6b94e9ba64e365e61511a5d9d0bd157f21322d3cc6e7debfa
DIST uv_build-0.12.9.tar.gz 423446 BLAKE2B 8f32f7527633f5853a11a0f798a2aa075f9e96c2b34144f986a639dbd042bac7c5e33853287ef43273352a3ee84da852062c42daead1f188281295b635694177 SHA512 3aa6ea5b4e60218e7cbc3c5ed8ff7fbeeace36eb0d2c75627fb7a0ce7c060e8d6405378e9713f7164319cce55dc96b1a335ccb3032cfc7e9e60e99862295e79e
diff --git a/dev-python/uv-build/uv-build-0.11.23.ebuild b/dev-python/uv-build/uv-build-0.11.23.ebuild
deleted file mode 100644
index 84fe1c8f0a60..000000000000
--- a/dev-python/uv-build/uv-build-0.11.23.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.11.29.ebuild b/dev-python/uv-build/uv-build-0.11.29.ebuild
deleted file mode 100644
index 14a005943d84..000000000000
--- a/dev-python/uv-build/uv-build-0.11.29.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.1.ebuild b/dev-python/uv-build/uv-build-0.12.1.ebuild
deleted file mode 100644
index 366b24c98c86..000000000000
--- a/dev-python/uv-build/uv-build-0.12.1.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.11.ebuild b/dev-python/uv-build/uv-build-0.12.12.ebuild
index 65d94f2051ae..65d94f2051ae 100644
--- a/dev-python/uv-build/uv-build-0.12.11.ebuild
+++ b/dev-python/uv-build/uv-build-0.12.12.ebuild
diff --git a/dev-python/uv-build/uv-build-0.12.6.ebuild b/dev-python/uv-build/uv-build-0.12.13.ebuild
index 65d94f2051ae..65d94f2051ae 100644
--- a/dev-python/uv-build/uv-build-0.12.6.ebuild
+++ b/dev-python/uv-build/uv-build-0.12.13.ebuild
diff --git a/dev-python/uv-build/uv-build-0.12.8.ebuild b/dev-python/uv-build/uv-build-0.12.8.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.12.8.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index 419b46cc14a9..8eb4c697ed56 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,22 +1,14 @@
-DIST uv-0.11.23-crates.tar.xz 43596924 BLAKE2B deeafbb1c13c2ae42f4ba12e7c220f518997ea41b95817778d60608b6b111d108a6660baa10737c4a121570e4794f0f6544feff2b246ad1f8a9b9496d3bdff5f SHA512 b6ded3c40033b2cd610b510aa47ca20b1866d4302ec0de8892f2c1017ae48fa6795277ef5cdcb448f8f4c25cb604eee6e60bcc035650a3537951765715c4c9bd
-DIST uv-0.11.23.gh.tar.gz 5488941 BLAKE2B 0d54f3f8568787cc2c6e9d1eb5dbd6f94d2d408f3872d4ca3557989f38def6ed11380e90583ab9ee162a9a2a60e1f47311f7ed3c93096117d044b580fa9a1de7 SHA512 4d40479ca540294fbdb346ca8c2dcb91fef572d1e663951ffea2370f9d09f12140aed2029be1178332874ac80150155b88774798c6424686badf7eeef646ce3f
DIST uv-0.11.25-crates.tar.xz 43779192 BLAKE2B ae9d16ba3f8a5a719b6f52980c3b8ce6f874494f861cdad065ead5f3a19b80794bc4dda451710f061b45bdaa05a5587aacb5a583d01dd7cb74d800be4d5e3293 SHA512 0dc611e6aef1fa0861fbc63eba94e588022cb3974aa788c3e595cea04adf0c4165316e6cacb8cf073acc22db84bc61da7de0218ac51665b0e6aa215b6a1cc1e8
DIST uv-0.11.25.gh.tar.gz 5538598 BLAKE2B 47198e379339a963a90b394b29271e2b276ced739f4320daf279eabc53cd0bab1698a57f336ed3270a4b8f40fa4f6a8f8b201603ed3952d282d220b0e290418a SHA512 9b993ae026d55ee8dfe13101e0fdbe026d81b77ff42b20ad42ff72c9708f2d767cde94010e69cd4f65fa8821c43958bc665893761119770deba70823d895298c
-DIST uv-0.11.29-crates.tar.xz 43221288 BLAKE2B fdb0beeeb0eb6afd6c5e6a401f34dd733466d038579565529c2ff794f568daca1b2f3b20e9dc64f7e164c1329970901e64320ada771d98db9fdb97d95375fe7d SHA512 d64272bf1ce46f4627e03f83fa7c5c23e5e50a56805bb7d66dd27431cd57ce2b00cb6db45ec4b162d004638cc0f7cfe7d6346b8020d66f5869f1e786356c5f7f
-DIST uv-0.11.29.gh.tar.gz 7390745 BLAKE2B c4366c7fe66a14246ed95734d605e8c02f2da336b3b5e93be67a0d7dae99afd3b9d15c9e59b79ae17ffb2d43f90718a72e6160a6cd422423c149fce5c45b2e77 SHA512 27d5f0f40aed962468bd3d80f04f792ec4698db9ec0930564dae25ba7a743430b04b4aa5b2cca92883b7544369200a32956337b04bd558dcc8b1ae4c5a3b1a0d
-DIST uv-0.12.1-crates.tar.xz 42260544 BLAKE2B decb42423e6d5804ff4b12c956e678b14e067263e3711acf8ab7577ba87226a35501c463fbbf9ff0fa149d6a76bffb9c5a46a355dfc4a26f7e7c49f1d4e4accb SHA512 277a830b7de031f27d11973c8503d6311a6521b7a7b7df310b9445e690ce672ac5b880a506c8ace998ea28e1721dc0cf7fc17d43538a63318159634dbd9773c5
-DIST uv-0.12.1.gh.tar.gz 7231201 BLAKE2B d83bab24879f3b92ef842150f3af3d8c08850155f8b7d120c1c4a16f463911b55fe2b2ab6c3e928d654ab1c2db56062094f9ae994bf7f67252ee7ec9d3dc74a4 SHA512 15c84d4b719295c1d9fca178025317d1b808f4c34a572609b78e35382bb12abdc4ba7a3b2bd1bc5576763b655b34b222be15f99c3481419f92a5f74e460ef96f
DIST uv-0.12.10-crates.tar.xz 44161200 BLAKE2B ef5f654005a5c074a2c251471bfe91db9e172b5733ede5e9b5f48a3464194f50e288aeb8afdbd2f0923106380812490bb800506c3c10dca916e994c2c6548a6c SHA512 26676348002e1c3ddfdc772ce6a429ab0d69fe7641a539dba2694a0e946c2f23789e5c8d6ceeaef407efbd20ec4b0fe889463d94c498514462bc19f0d85fff7d
DIST uv-0.12.10.gh.tar.gz 8739701 BLAKE2B afbe730771deffa2a3bf51417700433e050eae158b25f61d3027ce179591a7bd6bf27cebb01f154814d3baa42d1b6fee18e23cf634894c653b56da092f621ee2 SHA512 e9b4cb1bf5f7e65d666f1e4f9a957964508f0f7b531f682e75b9a64a58cf0fe0ead1b1639e0f8ed37df8cbf39cde42fa02d7df2e6cecec3615034907d85127a2
-DIST uv-0.12.11-crates.tar.xz 44156404 BLAKE2B aa6233aef300c43cca0c8cff35e79b0a654daf276fe60624ebad6b2679f4a4521a1c200412c36d8bcd21c684d68527e2f5ca4adcb4ef2483f41bb1f122470772 SHA512 055932bcae92331d5ad7b0127171f3a978b237e3715b72aaf6a0916dbd07b1c3e8ac04cd86819ba236941302ddde1bbdddbe747e3a97ff70a9ed3d15b5e47fe9
-DIST uv-0.12.11.gh.tar.gz 8759415 BLAKE2B c6b761109324bfc95a3f10de8c02cc4be53a6749c731f56cf8d3223a80951b20c7ca5f08d4293e8533fe5af62bccbba851a08caf6aace8fd2874deee3ee81d98 SHA512 a30bb73c80581828520c2e59dfda4ed5022ffd8d9e384e4d2263f67ff1f57d9948d300717dc74d13292042f008632c066afce5d21a24505c9454c85574378e2d
+DIST uv-0.12.12-crates.tar.xz 44156404 BLAKE2B aa6233aef300c43cca0c8cff35e79b0a654daf276fe60624ebad6b2679f4a4521a1c200412c36d8bcd21c684d68527e2f5ca4adcb4ef2483f41bb1f122470772 SHA512 055932bcae92331d5ad7b0127171f3a978b237e3715b72aaf6a0916dbd07b1c3e8ac04cd86819ba236941302ddde1bbdddbe747e3a97ff70a9ed3d15b5e47fe9
+DIST uv-0.12.12.gh.tar.gz 8768173 BLAKE2B d584d2489f914f20042a90f25920b8a67b11612b58a31b26e170e88511adee074cfa91c661cf8efe88cdd07d466e07b1ddf75ac5f02c60c918bce1178d22bb84 SHA512 9242adfa1f0508db02215766d62d6129043b8cfc6b488ba4d7a3889c334786f58717559625187f38ce9f53060f1a2063b8ea59a71d63c8c7a836bc73a99be6d5
+DIST uv-0.12.13-crates.tar.xz 44176012 BLAKE2B 5a2459d28a794edf2a049c973916c6af95984d7fd706b0c517ad58f0a964fd2fe7dde62e2b4fb7afd725fe9fdd144021713bbff779abdf9ebd9f14487a390cf0 SHA512 8960412783a8028b634f5b535577a97d13159e0d515f18c8092504934d55d3ebb93b8951469f34eddda33fd6e89542add3ea6ef4444e367828783237f2a732da
+DIST uv-0.12.13.gh.tar.gz 8784071 BLAKE2B afb0acdf733efe4937ba5e7a8ca5257e9f3c6651e13adf5b44e96985be9f0abebd2167aec84bf285385b8c984636c0c9ff0f4c6077188088cff27af40334fa78 SHA512 e8a03cde57914007d932c55d017be780a9aaeac62d1b5831a3fd62f8c44299d6c8bc01582eb3e6c06c92b3edfbd519e1ea4d8d95fbb2cd0bdffd85b1cd36a137
DIST uv-0.12.3-crates.tar.xz 42197452 BLAKE2B 996bb294d37774e0cb5529c34552d20877cd82a3d063b6e4dc1f6feff05a7822a91c44408a970f038d3045312be0edd4c9e8d34f6eebc04d71bd4d2ffa0184ee SHA512 8de33956c5a603fb4aa1bb5ab6db68c537d7523a84f3092057f562b1209bc976b0bc64cc6ed76cbf1b0edb4981b6a41765fa5e2729a487e4e2322052aa08b8a4
DIST uv-0.12.3.gh.tar.gz 7273161 BLAKE2B 706a2297090b13c6f731d25f55ae8c2225e3b9bd820c61814f512c1e04d98d2e46ce5bfac6ec6ea346dbce1663aea644384b37663b53d64a08a90b48217bdb0d SHA512 a4933b9b9b852dee2485800ad82ee3be111a4a5a437ab32d5064cfd4004e124ba733294a546a097379c74cf1fc234d1da0488aec7725037c7b967ec1aa862a71
-DIST uv-0.12.6-crates.tar.xz 44170700 BLAKE2B 915b68dc4355b944c10c497cd500fce7ceccbabfc9fb8dc4291fa91932737e8fe88c24022b4f2bd28b8bd64aed7568c88a25757619efdb04c8f6e2de9522c1a5 SHA512 d4d5bce3625ce937c6237ad12ef89fd46ad5c17573c7278db7ff41ca069bfe19f22593a8e63ca32e4d7344ffce0ec18b11be11354db956f5657759bd5e037a54
-DIST uv-0.12.6.gh.tar.gz 8667534 BLAKE2B 0987a8ed390e98dadbe854805503b30b3193e88662d311e5d20c849cd1ea7f5c5d37fc87c10c86a8ecbf963808af6586a5d0c044c0ed1e6f220b2dfa75ce880d SHA512 afe6f5788468168f9380122073a8e96b88c14def80df8cd253cd64e4cc28f16da76137d90a73b8bd1e6cd93c0858701002161e53235f55749ac11eaa14b14000
DIST uv-0.12.7-crates.tar.xz 44143088 BLAKE2B 075113e8cbafd99a1c70c4ce53678f2ceb13ce31dc7cafb5773e32ae9dfa14144390380e0149219912a0c4b92e6d3b9d0a0a0016cdd4c69097bf75adf1b8a716 SHA512 f9dbdad7cbddd3238c7cc9fbcbec4e92fc8c8c66bc7247ccc8159bb186223c199e3bd411ad9148750ec1fa258775dcec1e2bb6bc3287fca7aeb6ffa7ba4d6b44
DIST uv-0.12.7.gh.tar.gz 8659716 BLAKE2B ab7d74e16821dbbefeb247cf80926ae23f75b5f309a8864070b3a01344044a966f772685cb864470b4c30877f8e03715ec675b658862bd04906e740866ebffd1 SHA512 7f9bd1aef6c285aedd3fe588a5f70e0458f85f6db14f0368ea24c5524fd66990510e0d5624a7faf48091a3dc73ff66ac52ab9a6ed571a10cca272b9588fb1aff
-DIST uv-0.12.8-crates.tar.xz 44173544 BLAKE2B acdbb473c57cebddedc908d0e4e2e4b69ce233ffe7afe5dde2ef01bf0025a089e4be2a2c95e48e57176f08d3f970b82d0fc7f14c1dc23228d846a26c33bed410 SHA512 9974e7f5fa53b5848986f20147560b096a8812c4e5f4af619bcfe3f29f50e3edde6d05a959f906064e81316f81e4d4a4b8b4f0de315774d7f5f05bdf97003a2b
-DIST uv-0.12.8.gh.tar.gz 8678426 BLAKE2B 71c97c50ca10bba766e0cb0877792a1e9aee1821f3de0eca7964522eacc870b62df50e6a5820e75e9daef559cbc24905c9dd01596e98488bbba348cb12e467be SHA512 ecac878e03791c00875b7d1f0a1849ed165435e94d1ce999b4158be2bd305111ee69c418f4e75bb15541089a29a15a86e4201a56b024cdcf522554b925829e49
DIST uv-0.12.9-crates.tar.xz 44161200 BLAKE2B ef5f654005a5c074a2c251471bfe91db9e172b5733ede5e9b5f48a3464194f50e288aeb8afdbd2f0923106380812490bb800506c3c10dca916e994c2c6548a6c SHA512 26676348002e1c3ddfdc772ce6a429ab0d69fe7641a539dba2694a0e946c2f23789e5c8d6ceeaef407efbd20ec4b0fe889463d94c498514462bc19f0d85fff7d
DIST uv-0.12.9.gh.tar.gz 8688302 BLAKE2B 0ec1ded90f77ad7b9eb0e0a5c8001b26e10b7485ffa6e709638130173ded90d92969a54f10a455e8a0c032d5872881a3f527a6d4b612d378f283349dea816cab SHA512 18d35675a3e15531a9542c951b265866da4b762e0f2ba91f66dcc8b55ba5352ec97638ee2dc7fd3a908639201b27a442112a75c67053f9d861840c041e0b5290
diff --git a/dev-python/uv/uv-0.11.23.ebuild b/dev-python/uv/uv-0.11.23.ebuild
deleted file mode 100644
index 1e55722e956b..000000000000
--- a/dev-python/uv/uv-0.11.23.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.94.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
-
- # bzip2-sys requires a pkg-config file
- # https://github.com/alexcrichton/bzip2-rs/issues/104
- mkdir "${T}/pkg-config" || die
- export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
- cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
- Name: bzip2
- Version: 9999
- Description:
- Libs: -lbz2
- EOF
-
- # uv is now forcing bundled liblzma, sigh
- sed -i -e '/xz/s:"static"::' Cargo.toml || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.11.29.ebuild b/dev-python/uv/uv-0.11.29.ebuild
deleted file mode 100644
index 2c72484f59f1..000000000000
--- a/dev-python/uv/uv-0.11.29.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.95.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
-
- # bzip2-sys requires a pkg-config file
- # https://github.com/alexcrichton/bzip2-rs/issues/104
- mkdir "${T}/pkg-config" || die
- export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
- cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
- Name: bzip2
- Version: 9999
- Description:
- Libs: -lbz2
- EOF
-
- # uv is now forcing bundled liblzma, sigh
- sed -i -e '/xz/s:"static"::' Cargo.toml || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.1.ebuild b/dev-python/uv/uv-0.12.1.ebuild
deleted file mode 100644
index cd2c66a46cd0..000000000000
--- a/dev-python/uv/uv-0.12.1.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.95.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.11.ebuild b/dev-python/uv/uv-0.12.12.ebuild
index 9826f9045941..9826f9045941 100644
--- a/dev-python/uv/uv-0.12.11.ebuild
+++ b/dev-python/uv/uv-0.12.12.ebuild
diff --git a/dev-python/uv/uv-0.12.6.ebuild b/dev-python/uv/uv-0.12.13.ebuild
index 9826f9045941..9826f9045941 100644
--- a/dev-python/uv/uv-0.12.6.ebuild
+++ b/dev-python/uv/uv-0.12.13.ebuild
diff --git a/dev-python/uv/uv-0.12.8.ebuild b/dev-python/uv/uv-0.12.8.ebuild
deleted file mode 100644
index 9826f9045941..000000000000
--- a/dev-python/uv/uv-0.12.8.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.96.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
index c515e30610cf..d604b131f528 100644
--- a/dev-python/wrapt/Manifest
+++ b/dev-python/wrapt/Manifest
@@ -2,3 +2,5 @@ DIST wrapt-2.3.0.tar.gz 131509 BLAKE2B 6cbc4c7af17e1dbaccaa0c9999331fe7219b9bd8d
DIST wrapt-2.3.0.tar.gz.provenance 10335 BLAKE2B f941e218d992f29ac5cf5027c17951f490482fdb7d3234faedde6d20e9a5ba54c290c66cd8d8bff336fd38c27cdb7573c3134891f0af206c508ce3339d8e2d6e SHA512 7e945775ace3936f825bd7f79b1bd58f2f0f8c40a2fc410e3ddfad18838fcbe0e35475f9af0240538fb3a76bbb257c02400b2d0db1375cb6539cd4bbf32ba1c4
DIST wrapt-2.4.0.tar.gz 161179 BLAKE2B 436b7709ba58271889ef7efd76ef52c4b5e0a12e445d3720e7c9ebdb0f3270bbd5e96327403665257e9e6a2ccdd8d3fc25c8b5f2463cfe1ac1074b184c374e1d SHA512 7d832d4600dfccf3813c19e37879688fe4bc136bdcb357f53ce3b32029b46a088dc8423328dd2bc875eee564618a5e078a4deaad8826c9f215c71d226fdfbb43
DIST wrapt-2.4.0.tar.gz.provenance 10106 BLAKE2B 70d792b847ca5413793015d6596710f729bc52c6b0837504d0416e9272d7d19f2ea9b45fb68b92ec6b3a3eafefa6c0062c80347d508f3f2a3e3a507d7fd75e0d SHA512 4ed5691a21d12fa1262a65f0d9f7759da01990944cdd986e88c7ae583165097ac72bd6944d3847bbc2c9a6d4fe8fec282c309e31989e97d4e68b1cfe5da20170
+DIST wrapt-2.4.1.tar.gz 164597 BLAKE2B f57172218de2427dc80de48ee70a80f2494314508c6db94bd61af4042b9e3a26d387b18a8b3b875f4d92fd69d85d61f55b00b01755bd508b0b19ebecdccb81e3 SHA512 c996422b1dd73687609cfae475cf32d4ba2960686fb6a7ad28edd5314d62d944c13f4ec83e1cd6daa2542aac0d2b9e3fadaa1718da753dce4a8486a92688f880
+DIST wrapt-2.4.1.tar.gz.provenance 10200 BLAKE2B 87a295822dc8b22c80f67adba6c2e0edb916062fe9a8a32b2ddca918d3fb6ac7b88a00a91c47a070a8a9939489129d3a52368d2186e42331e64a61f90acd433b SHA512 81db83085d80fa25dc8bb848dc196b3f1644734c24e4c050f6a2b5ced006b3db8890ef7d7887d05574546e2e3f6744d5c72e4ec4780469a574bf33a7c60d940b
diff --git a/dev-python/wrapt/wrapt-2.4.1.ebuild b/dev-python/wrapt/wrapt-2.4.1.ebuild
new file mode 100644
index 000000000000..c0b172cb4e24
--- /dev/null
+++ b/dev-python/wrapt/wrapt-2.4.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/GrahamDumpleton/wrapt
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+MY_P=${P/_}
+DESCRIPTION="Module for decorators, wrappers and monkey patching"
+HOMEPAGE="
+ https://github.com/GrahamDumpleton/wrapt/
+ https://pypi.org/project/wrapt/
+"
+
+LICENSE="BSD"
+SLOT="0"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+IUSE="+native-extensions"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # skip mypy tests, they are fragile
+ rm -r tests/mypy || die
+}
+
+python_compile() {
+ local -x WRAPT_INSTALL_EXTENSIONS=$(usex native-extensions true false)
+ distutils-r1_python_compile
+}