summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/apsw/Manifest1
-rw-r--r--dev-python/apsw/apsw-3.53.0.0.ebuild53
-rw-r--r--dev-python/authlib/Manifest4
-rw-r--r--dev-python/authlib/authlib-1.6.11.ebuild68
-rw-r--r--dev-python/authlib/authlib-1.6.9-r1.ebuild68
-rw-r--r--dev-python/authlib/authlib-1.7.1.ebuild (renamed from dev-python/authlib/authlib-1.6.10.ebuild)2
-rw-r--r--dev-python/blessed/Manifest1
-rw-r--r--dev-python/blessed/blessed-1.39.0.ebuild55
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.3.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.3.ebuild67
-rw-r--r--dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild2
-rw-r--r--dev-python/dirty-equals/dirty-equals-0.11.0.ebuild2
-rw-r--r--dev-python/ensurepip-pip/Manifest1
-rw-r--r--dev-python/ensurepip-pip/ensurepip-pip-26.1.1.ebuild192
-rw-r--r--dev-python/inline-snapshot/inline-snapshot-0.29.4.ebuild2
-rw-r--r--dev-python/jupyter-server/Manifest1
-rw-r--r--dev-python/jupyter-server/jupyter-server-2.18.0.ebuild68
-rw-r--r--dev-python/mypy/mypy-1.18.2-r1.ebuild4
-rw-r--r--dev-python/mypy/mypy-1.20.2.ebuild2
-rw-r--r--dev-python/nethsm/Manifest1
-rw-r--r--dev-python/nethsm/metadata.xml10
-rw-r--r--dev-python/nethsm/nethsm-2.1.0.ebuild30
-rw-r--r--dev-python/nitrokey/Manifest2
-rw-r--r--dev-python/nitrokey/nitrokey-0.4.1.ebuild48
-rw-r--r--dev-python/nitrokey/nitrokey-0.4.2.ebuild41
-rw-r--r--dev-python/nkdfu/Manifest1
-rw-r--r--dev-python/nkdfu/metadata.xml10
-rw-r--r--dev-python/nkdfu/nkdfu-0.2.ebuild24
-rw-r--r--dev-python/numpy/numpy-2.4.4.ebuild2
-rw-r--r--dev-python/oct2py/Manifest1
-rw-r--r--dev-python/oct2py/oct2py-6.0.2.ebuild50
-rw-r--r--dev-python/openapi-schema-validator/openapi-schema-validator-0.9.0.ebuild2
-rw-r--r--dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild2
-rw-r--r--dev-python/pip/Manifest1
-rw-r--r--dev-python/pip/pip-26.1.1.ebuild206
-rw-r--r--dev-python/pipenv/Manifest1
-rw-r--r--dev-python/pipenv/pipenv-2026.5.2.ebuild113
-rw-r--r--dev-python/pulsectl/pulsectl-24.12.0.ebuild2
-rw-r--r--dev-python/pybind11/pybind11-3.0.3.ebuild2
-rw-r--r--dev-python/pydantic-settings/pydantic-settings-2.14.0.ebuild2
-rw-r--r--dev-python/pydantic/pydantic-2.12.5.ebuild2
-rw-r--r--dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild2
-rw-r--r--dev-python/pyopenssl/Manifest2
-rw-r--r--dev-python/pyopenssl/pyopenssl-26.2.0.ebuild60
-rw-r--r--dev-python/pyproject-fmt/Manifest4
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.21.2.ebuild102
-rw-r--r--dev-python/pyside/metadata.xml1
-rw-r--r--dev-python/pyside/pyside-6.11.0.ebuild31
-rw-r--r--dev-python/pyside/pyside-6.9999.ebuild31
-rw-r--r--dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild2
-rw-r--r--dev-python/python-subunit/Manifest1
-rw-r--r--dev-python/python-subunit/python-subunit-1.4.6.ebuild95
-rw-r--r--dev-python/python-tests/Manifest3
-rw-r--r--dev-python/python-tests/python-tests-0.3.14.5_rc1.ebuild75
-rw-r--r--dev-python/python-tests/python-tests-3.14.5_rc1.ebuild74
-rw-r--r--dev-python/pythonfinder/Manifest1
-rw-r--r--dev-python/pythonfinder/metadata.xml10
-rw-r--r--dev-python/pythonfinder/pythonfinder-3.0.3.ebuild32
-rw-r--r--dev-python/regress/regress-2025.10.1.ebuild2
-rw-r--r--dev-python/sigstore-models/sigstore-models-0.0.6.ebuild2
-rw-r--r--dev-python/sigstore-rekor-types/sigstore-rekor-types-0.0.18.ebuild2
-rw-r--r--dev-python/sigstore/sigstore-4.2.0.ebuild2
-rw-r--r--dev-python/sqlglot/Manifest4
-rw-r--r--dev-python/sqlglot/sqlglot-29.0.1.ebuild67
-rw-r--r--dev-python/sqlglot/sqlglot-30.4.3.ebuild53
-rw-r--r--dev-python/sqlglot/sqlglot-30.7.0.ebuild (renamed from dev-python/sqlglot/sqlglot-30.4.2.ebuild)0
-rw-r--r--dev-python/tibs/Manifest11
-rw-r--r--dev-python/tibs/tibs-0.7.0.ebuild121
-rw-r--r--dev-python/virtualenv/Manifest4
-rw-r--r--dev-python/virtualenv/virtualenv-21.3.1.ebuild (renamed from dev-python/virtualenv/virtualenv-21.2.4.ebuild)2
-rw-r--r--dev-python/wrapt/wrapt-2.1.2.ebuild2
73 files changed, 1536 insertions, 463 deletions
diff --git a/dev-python/apsw/Manifest b/dev-python/apsw/Manifest
index e26c94f8dd77..148db4858a73 100644
--- a/dev-python/apsw/Manifest
+++ b/dev-python/apsw/Manifest
@@ -1 +1,2 @@
DIST apsw-3.51.3.0.zip 2851810 BLAKE2B cb43f3425d55f23352aced5e9c07f5feec40d0ea037a2983c91e7c381e71f4ff68fcc0ca83eb444f5b37aced861d14ef6ad0c8ae91b677607ca6543ed3fe18f6 SHA512 8c729e3a4344e7b84139bdc686cb7cbbc31e00d134ac3733a27ab63269c143f79658caa899291b3ff010fa5ef7e42ba38c887e0a41b5bd2aeaabf7fe5a523e7b
+DIST apsw-3.53.0.0.zip 2862752 BLAKE2B d858e910a0d80417d50a3a9c5e41375dedf7e353317ba4680db5400d2acc728338e8ff7894ff53769bbddf2a43bbc2997406e6b405a1e314c927b67bfbee7272 SHA512 9d086f80c063bd7faf2a20fd55db0a42fa53ad999ea9bd439f63fcd23cd6be07d573adf6a5274885c45d9877ffbfbad4db2b9342825e7f468367f2ea57c74c21
diff --git a/dev-python/apsw/apsw-3.53.0.0.ebuild b/dev-python/apsw/apsw-3.53.0.0.ebuild
new file mode 100644
index 000000000000..e3bd70808045
--- /dev/null
+++ b/dev-python/apsw/apsw-3.53.0.0.ebuild
@@ -0,0 +1,53 @@
+# 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_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="APSW - Another Python SQLite Wrapper"
+HOMEPAGE="
+ https://github.com/rogerbinns/apsw/
+ https://pypi.org/project/apsw/
+"
+SRC_URI="
+ https://github.com/rogerbinns/apsw/releases/download/${PV}/${P}.zip
+"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="doc"
+
+DEPEND="
+ >=dev-db/sqlite-${PV%.*}:3
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_configure() {
+ cat >> setup.apsw <<-EOF || die
+ [build_ext]
+ use_system_sqlite_config=True
+ EOF
+}
+
+python_test() {
+ esetup.py build_test_extension
+ cd "${T}" || die
+ "${EPYTHON}" -m apsw.tests -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+ doman man/apsw.1
+ use doc && local HTML_DOCS=( doc/. )
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/authlib/Manifest b/dev-python/authlib/Manifest
index 5470d4e0e8e6..a461ddc36c54 100644
--- a/dev-python/authlib/Manifest
+++ b/dev-python/authlib/Manifest
@@ -1,4 +1,2 @@
-DIST authlib-1.6.10.gh.tar.gz 330246 BLAKE2B f07f4fa116880f4e66f5a4b11e9fd3a519f2754ae2fed91966406cb7ca7780dfaae9180dda3179c43dd3c5e7a7b80ddb69157dc4e5589f394a658aa8de9dfdc0 SHA512 ba10af251f23a8d790026fbe2f27418e86b76fbcc0171b3400cf8fe2b2bc93eaf5e49a240ee092bee10a620d43e7b22e246609d1089b590668bf1a4eac2d01f6
-DIST authlib-1.6.11.gh.tar.gz 330921 BLAKE2B 1024844f9fbe4c40962df5b8534d7be5bf5556dda80e47577b160598d315d533c21877fa05e7ced85dbddde1e7fabd97c9ae05cbff0a1f87e0bb3d5354c24f72 SHA512 177dbbd3635b314bc2d67bb5ff7c140d5b94d1affa78ba265aca5f8c6b68621215836754d057e7e742b7b14dffb85eff8a1ddfef4505aca1fbe199af37c617ea
-DIST authlib-1.6.9.gh.tar.gz 329652 BLAKE2B 0fed4ffffde554fac45519ced2ffe8d73343d9c52a3d177af5ba79714ca9bd80b08279c1f94c9521274fe994036e100d419a55acb1b86678e59a8f538f6aa82a SHA512 4e1ff409a1cae3dd6fdccd42411c832f44a1f00aaa60eb4dee77efc89b7a44813c3e674d3e785dd71d8090c29728590c7dce8073dd13c7c73569c78cdc47a3ff
DIST authlib-1.7.0.gh.tar.gz 354993 BLAKE2B 14aec891290fa8997ebcbbbb5f4c42c7993333aa05629f5d3d03461b990b878ea24d8fbe3391a33182316fadbf690196f4f18db03c7997c6ae97c212b973a332 SHA512 67682d33e7e6686e4b00171fa483b32b8dfea3ace9b329804a9243ad8b8be3d93526676105f87707d9cb88fd88e4ec656ef6952cb657bed765e3260e2846b9cd
+DIST authlib-1.7.1.gh.tar.gz 355175 BLAKE2B 7c593b7b85b29ed9ece574e4e202784c00254f12cfb129057eaf1727ab20d516aea0abb92d5ca9265a32ad12abd41f9612e1fce4ac4e398212006fdb48a4bc30 SHA512 2af4f1109678a182ac7afa6f6b8fcfd3bc1ec89c3175ace3bd25ae6e49386e305b90a06547dc1f5f6557098dd52d713f690661823b87edb9fe97b1734322ecff
diff --git a/dev-python/authlib/authlib-1.6.11.ebuild b/dev-python/authlib/authlib-1.6.11.ebuild
deleted file mode 100644
index daa000fe6e55..000000000000
--- a/dev-python/authlib/authlib-1.6.11.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="A Python library in building OAuth and OpenID Connect servers and clients"
-HOMEPAGE="
- https://authlib.org/
- https://github.com/authlib/authlib/
- https://pypi.org/project/Authlib/
-"
-# pypi source distribution excludes the tests
-SRC_URI="
- https://github.com/authlib/authlib/archive/refs/tags/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="django jose test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/cryptography[${PYTHON_USEDEP}]
- django? (
- dev-python/django[${PYTHON_USEDEP}]
- )
- jose? (
- >=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}]
- )
-"
-BDEPEND="
- test? (
- dev-python/anyio[${PYTHON_USEDEP}]
- dev-python/cachelib[${PYTHON_USEDEP}]
- dev-python/django[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- >=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/starlette[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-asyncio )
-# EPYTEST_XDIST makes tests flaky
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # convert from pycryptodomex to pycryptodome
- sed -i -e 's:from Cryptodome:from Crypto:' \
- authlib/jose/drafts/_jwe_enc_cryptodome.py || die
-}
-
-python_test() {
- local -x DJANGO_SETTINGS_MODULE=tests.django_settings
- epytest tests/{core,jose,clients}
-
- # TODO: django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
- #epytest tests/django
-}
diff --git a/dev-python/authlib/authlib-1.6.9-r1.ebuild b/dev-python/authlib/authlib-1.6.9-r1.ebuild
deleted file mode 100644
index 64d61a268f43..000000000000
--- a/dev-python/authlib/authlib-1.6.9-r1.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="A Python library in building OAuth and OpenID Connect servers and clients"
-HOMEPAGE="
- https://authlib.org/
- https://github.com/authlib/authlib/
- https://pypi.org/project/Authlib/
-"
-# pypi source distribution excludes the tests
-SRC_URI="
- https://github.com/authlib/authlib/archive/refs/tags/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="django jose test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- dev-python/cryptography[${PYTHON_USEDEP}]
- django? (
- dev-python/django[${PYTHON_USEDEP}]
- )
- jose? (
- >=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}]
- )
-"
-BDEPEND="
- test? (
- dev-python/anyio[${PYTHON_USEDEP}]
- dev-python/cachelib[${PYTHON_USEDEP}]
- dev-python/django[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
- >=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- dev-python/starlette[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( pytest-asyncio )
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # convert from pycryptodomex to pycryptodome
- sed -i -e 's:from Cryptodome:from Crypto:' \
- authlib/jose/drafts/_jwe_enc_cryptodome.py || die
-}
-
-python_test() {
- local -x DJANGO_SETTINGS_MODULE=tests.django_settings
- epytest tests/{core,jose,clients}
-
- # TODO: django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
- #epytest tests/django
-}
diff --git a/dev-python/authlib/authlib-1.6.10.ebuild b/dev-python/authlib/authlib-1.7.1.ebuild
index daa000fe6e55..c55822ec8396 100644
--- a/dev-python/authlib/authlib-1.6.10.ebuild
+++ b/dev-python/authlib/authlib-1.7.1.ebuild
@@ -32,7 +32,7 @@ RDEPEND="
dev-python/django[${PYTHON_USEDEP}]
)
jose? (
- >=dev-python/pycryptodome-3.10[${PYTHON_USEDEP}]
+ dev-python/joserfc[${PYTHON_USEDEP}]
)
"
BDEPEND="
diff --git a/dev-python/blessed/Manifest b/dev-python/blessed/Manifest
index 4f7399f703bb..43e4de788d3e 100644
--- a/dev-python/blessed/Manifest
+++ b/dev-python/blessed/Manifest
@@ -1 +1,2 @@
DIST blessed-1.38.0.tar.gz 14008103 BLAKE2B 57229521e74ac0353ee50911f783d1e43c0ca1803333085da35f0ede7dc9b9dab9156f62ebfc8ce0fd6d5643ffede77d3e2f5ea5ed218bb911ba49c702e36b35 SHA512 d3db9087dea83d04683f4f1caa6927bc6fbd3ecfe0ad8cb1f60bb831ee3799c9b7cad2768cf759e41c4ecc34f2c6e37ca40edaf8ddd167cc0d6e6ba4d1a46636
+DIST blessed-1.39.0.tar.gz 14011417 BLAKE2B d2eec5e8bf8d53f2889c0b33babedadeb65a91b03de5300c3d1b8c7d3892a179342995185dae25f66db227973e84b2ca028c543613466dc3befe7cda943d7de1 SHA512 0af3ab46eb16f94985702f749d3146d570de95f21d7deb3113f80dec795fb4f786b4f4838e67297be80a056635a06c11f4b1f6cb6697d4d389077be29d3fbb25
diff --git a/dev-python/blessed/blessed-1.39.0.ebuild b/dev-python/blessed/blessed-1.39.0.ebuild
new file mode 100644
index 000000000000..fbb7688b152f
--- /dev/null
+++ b/dev-python/blessed/blessed-1.39.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Library for making terminal apps using colors, keyboard input and positioning"
+HOMEPAGE="
+ https://github.com/jquast/blessed/
+ https://pypi.org/project/blessed/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/wcwidth-0.7[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+EPYTEST_PLUGINS=()
+# tests are flaky with xdist
+distutils_enable_tests pytest
+
+# README.rst is a symlink to docs/
+DOCS=()
+
+python_prepare_all() {
+ # Skip those extensions as they don't have a Gentoo package
+ # Remove calls to scripts that generate rst files because they
+ # are not present in the tarball
+ sed -e '/sphinxcontrib.manpage/d' -e '/sphinx_paramlinks/d' \
+ -e '/^for script in/,/runpy.run_path/d' \
+ -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # fragile to timing
+ tests/test_sixel.py::test_sixel_height_and_width_fallback_to_xtwinops
+ )
+
+ # COLORTERM must not be truecolor
+ # See https://github.com/jquast/blessed/issues/162
+ local -x COLORTERM=
+ # Ignore coverage options
+ epytest --override-ini="addopts="
+}
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index aca10f376021..2b81e326dd3c 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -4,3 +4,4 @@ DIST boto3-1.42.88.gh.tar.gz 1120718 BLAKE2B f45f5c0ee3a6b262f4e49a5fe670a225c1a
DIST boto3-1.42.91.gh.tar.gz 1124704 BLAKE2B b6916ead939d892467698a93b7fa9257f094cf3095465a38010ddbd0125e8ad042a28b10c4ee260e12e2819504855ab11ce18ab4100405c95ceec5272a894e71 SHA512 f6c8fc30f6846dbf9dce51177306cea7794bd74438322566ad7f5d6bdc60ca419b23dd08c5f92ba9a73fca8c8bc017555167a68c8966a0a0d04851e81c9a7990
DIST boto3-1.42.96.gh.tar.gz 1129293 BLAKE2B 186684ffe3d8e776e6f7462b4c7fdd996febcfc84ef87b3fe7399bc44bf00578177dab353d758231d0b2437fdbbef9204fc58b2eeda8f5be95b1d74e967c0d1d SHA512 c265a94e7fb4e7ed19e2f5aa152410c83d8e171373eb95c3572e8cc03fae6371c2ee7145722adffdab4e680b8f2abd0f3c3f4ff52bbd20fdfccd932f30cb9a20
DIST boto3-1.43.2.gh.tar.gz 1133320 BLAKE2B 21890b9f6629ec5af1da155d767a6117beada74550c292ba07d6900666bef39722740493e343a4770cf7f8adbb0030462d9e41366daee4c2bc17c391f14153f2 SHA512 b807ff1e6133285f6f64a83e328b7522f18d2de63838e9d6d70b982f44316b63aed90ddf3cbc12c6c32967c35807c0ef548d647588cd76c09a363e4de0c9b1e0
+DIST boto3-1.43.3.gh.tar.gz 1134373 BLAKE2B 040db467be8b1722e99c602b7d3a23e799815506edc6970d0ca552b84efca800088ebd21a1c1a8ff9b3317cabf85d659cd7790aef01d96267c3ae03a8de824c1 SHA512 9c9c8f405b7fd501aa1c0e6b4360aa94ea2b36c81c0a32d84e528a32a3697859abe0c4d74b324ccb8bfa6b4edff34d2cbe5d83f383b3ae63bbfbc847727a49c2
diff --git a/dev-python/boto3/boto3-1.43.3.ebuild b/dev-python/boto3/boto3-1.43.3.ebuild
new file mode 100644
index 000000000000..11cadb4f704f
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.17.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 35bc420944f3..32dd6f2dcc1a 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -4,3 +4,4 @@ DIST botocore-1.42.88.gh.tar.gz 16115557 BLAKE2B cb2470ce6d16bb0e91d6976b84899ee
DIST botocore-1.42.91.gh.tar.gz 16138871 BLAKE2B b5090d9707e20d83bdcc2757f13f6555a2fe50bc10361c8bbea9fba5fe09183ac588700864fec9677ba0bc84d85337c0b2a5f8d38ab0a832068dd1292000ee95 SHA512 5c96771c9170476817b3c4fc8e4201123389867015285c14a6db09856f2a5f9b9110523cf3a757fa2182fe726e99c549871b62a2ce3dc80d6b8abf703f0103cb
DIST botocore-1.42.96.gh.tar.gz 16190988 BLAKE2B c63dbf335904dd9fd56d2881428fab2500ef36104fee2f979fb8394860eb30743022db17ffaabfe14bb896bed2b03728e32f0d0f8e7e6f1979abefb171f87a7c SHA512 d3f55cb1c05cb587b89f83eb3ca58fc002d67187e958deb25d8bd571bac89802e63231da4e6b9261616003e6cb3972291697141ad4208cec76ce39769aa81fc4
DIST botocore-1.43.2.gh.tar.gz 16233880 BLAKE2B f35f27344dd853b1c6e7c1049d501f034c378149ccff13ebffafa054a1f76d56f54104046804e6957f533c0db7aa49c4249af8820ad9d382e522b1c1149de65d SHA512 72cc8eaf651b0634af1d023098994db3dc8d879f8c685e75c226935010d5dee08da00577a5192d68bb0c23c928efc9573820c74f468e79594ddc1f6e96e89e61
+DIST botocore-1.43.3.gh.tar.gz 16242539 BLAKE2B a9942f5bce01e35ea049478c08220640bad1d224d805baabc2fb592bb942d096186a0d5ac1452a703aa242673bccfd64599b280758203572e19ee311eb289b11 SHA512 4b9741bd63db17d1ab75a68e362a2e53105a8bc040196f9bd6751d74547557ebde867534f3779facdee629de22a6eb780d97fd44c0ea05c921f0e5566d7672b3
diff --git a/dev-python/botocore/botocore-1.43.3.ebuild b/dev-python/botocore/botocore-1.43.3.ebuild
new file mode 100644
index 000000000000..f6ce0d9ed8d5
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.3.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild b/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild
index e8bd1b19f0ab..c4bcd008a932 100644
--- a/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild
+++ b/dev-python/charset-normalizer/charset-normalizer-3.4.7.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
index c0b93acbd68d..1137ef1bd515 100644
--- a/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
+++ b/dev-python/dirty-equals/dirty-equals-0.11.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/ensurepip-pip/Manifest b/dev-python/ensurepip-pip/Manifest
index 9a0bb11ace1d..a742f5daadbe 100644
--- a/dev-python/ensurepip-pip/Manifest
+++ b/dev-python/ensurepip-pip/Manifest
@@ -1,3 +1,4 @@
DIST flit_core-3.12.0-py3-none-any.whl 45594 BLAKE2B 7c6cb6eb03d45bbba27f27b3728881b57fe82dd38e03f884d3b7c46116eb2b9dd76f92bdaf7f594ef8ccbe12ec8f9a56424ff9e9fc7a839c4818a113fdf0c3d3 SHA512 790c12b1f43201e365fb3f8f2f0a54e1a578876799dfdf8bfeea679a25ea096bf62946d006618c1458ae6e37ce6d00998f37e9aba426d5ab80d32ef2d75da4e0
DIST pip-26.0.1.gh.tar.gz 9227871 BLAKE2B 96a2fab2de472b3cde570f3bcbd6bc5e5c48ef2f0808ca9b2b6c0f57a611f723cd0f5d592b6b5f553fb57a6909459f57b4130f2451cd95c3b18678e02215e0c9 SHA512 3786df7522ea65bc20fb9885ce5c2ddc60200a536a1f754a8d7dc278115c73258863e4c51ac7e9a60dda0b70263730dc194f70e1e8f8d00178a8b3c724333bf0
+DIST pip-26.1.1.gh.tar.gz 9267528 BLAKE2B 7623f0d584baf05d46f29f662ecbbb2299d82aba0204c522326e1fb7350e31e32dff660b8360bfe8505f56f38d50d0b874e84118dff95a64e9f60510a2965dc7 SHA512 777fab14b5e7e7edeffbc7ae86f4e6061e9f7cf43adcaebcb4d099c184c4f2ad6a63019a70d95b98b631821c3472713c9545fb8d65b684da67cfc31ee9293054
DIST pip-26.1.gh.tar.gz 9268351 BLAKE2B 55773ba9ead364dcb8b900fb2f196dd768f688f54ae2ef190ae1739fec3fcc22f260c25df6ffb097e3b14ad321c51535cb71a921eafe4430a3eb30b94e38cc1e SHA512 cb3dde18f1b16ffeb36a0eeec02b64a0a363e1ef50070126fdbb152ba03749830095f85a98267e552169b7953b5839558be2c3ee8f78802cb56dd4f139b72762
diff --git a/dev-python/ensurepip-pip/ensurepip-pip-26.1.1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-26.1.1.ebuild
new file mode 100644
index 000000000000..ab04cf462234
--- /dev/null
+++ b/dev-python/ensurepip-pip/ensurepip-pip-26.1.1.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+# PYTHON_COMPAT is used only for testing
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit distutils-r1 pypi
+
+FLIT_CORE_PV=3.12.0
+
+MY_P=${P#ensurepip-}
+DESCRIPTION="Shared pip wheel for ensurepip Python module"
+HOMEPAGE="
+ https://pip.pypa.io/en/stable/
+ https://pypi.org/project/pip/
+ https://github.com/pypa/pip/
+"
+SRC_URI="
+ https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz
+ test? (
+ $(pypi_wheel_url flit-core "${FLIT_CORE_PV}")
+ )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ <dev-python/ensurepip-setuptools-80
+ dev-python/ensurepip-wheel
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ )
+ dev-vcs/git
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+declare -A VENDOR_LICENSES=(
+ [cachecontrol]=Apache-2.0
+ [certifi]=MPL-2.0
+ [distlib]=PSF-2
+ [distro]=Apache-2.0
+ [idna]=BSD
+ [msgpack]=Apache-2.0
+ [packaging]="|| ( Apache-2.0 MIT )"
+ [pkg_resources]=MIT
+ [platformdirs]=MIT
+ [pygments]=BSD-2
+ [pyproject_hooks]=MIT
+ [requests]=Apache-2.0
+ [resolvelib]=ISC
+ [rich]=MIT
+ [tomli]=MIT
+ [tomli_w]=MIT
+ [truststore]=MIT
+ [urllib3]=MIT
+)
+LICENSE+=" ${VENDOR_LICENSES[*]}"
+
+python_prepare_all() {
+ local PATCHES=(
+ # remove coverage & pytest-subket wheel expectation from test suite
+ # (from dev-python/pip)
+ "${FILESDIR}/pip-26.0-test-wheels.patch"
+ )
+
+ distutils-r1_python_prepare_all
+
+ if use test; then
+ local wheels=(
+ "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
+ "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")"
+ )
+ mkdir tests/data/common_wheels/ || die
+ cp "${wheels[@]}" tests/data/common_wheels/ || die
+ fi
+
+ # Verify that we've covered licenses for all vendored packages
+ cd src/pip/_vendor || die
+ local packages=( */ )
+ local pkg missing=()
+ for pkg in "${packages[@]%/}"; do
+ if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then
+ missing+=( "${pkg}" )
+ else
+ unset "VENDOR_LICENSES[${pkg}]"
+ fi
+ done
+
+ if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then
+ [[ ${missing[@]} ]] &&
+ eerror "License missing for packages: ${missing[*]}"
+ [[ ${VENDOR_LICENSES[@]} ]] &&
+ eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}"
+ die "VENDOR_LICENSES outdated"
+ fi
+
+ local upstream_count=$(wc -l < vendor.txt || die)
+ if [[ ${#packages[@]} -ne ${upstream_count} ]]; then
+ eerror "VENDOR_LICENSES: ${#packages[@]}"
+ eerror "vendor.txt: ${upstream_count}"
+ die "Not all vendored packages matched"
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ tests/functional/test_inspect.py::test_inspect_basic
+ # Internet
+ tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
+ tests/functional/test_install.py::test_double_install_fail
+ tests/functional/test_install.py::test_install_sdist_links
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ tests/functional/test_lock.py::test_lock_archive
+ tests/functional/test_lock.py::test_lock_vcs
+ # broken by system site-packages use
+ tests/functional/test_freeze.py::test_freeze_with_setuptools
+ tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
+ tests/functional/test_uninstall.py::test_basic_uninstall_distutils
+ tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
+ tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
+ tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
+ )
+ local EPYTEST_IGNORE=(
+ # from upstream options
+ src/pip/_vendor
+ tests/tests_cache
+ # requires proxy.py
+ tests/functional/test_proxy.py
+ )
+
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # unexpected tempfiles?
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ # wrong path
+ tests/functional/test_install.py::test_install_editable_with_prefix_setup_py
+ # wrong exception assumptions
+ tests/unit/test_utils_datetime.py::test_parse_iso_datetime_invalid
+ # TODO
+ tests/functional/test_install.py::test_install_warns_on_unexpected_post_install_import
+ )
+ ;;
+ esac
+
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/functional/test_install.py::test_install_sends_client_cert
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ )
+ fi
+
+ local -x PIP_DISABLE_PIP_VERSION_CHECK=1
+ # rerunfailures because test suite breaks if packages are installed
+ # in parallel
+ epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \
+ --use-venv
+}
+
+src_install() {
+ if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then
+ die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}"
+ fi
+ # TODO: compress it?
+ insinto /usr/lib/python/ensurepip
+ doins "${DISTUTILS_WHEEL_PATH}"
+}
diff --git a/dev-python/inline-snapshot/inline-snapshot-0.29.4.ebuild b/dev-python/inline-snapshot/inline-snapshot-0.29.4.ebuild
index 797f1ebf0a60..03bf5cc0b17a 100644
--- a/dev-python/inline-snapshot/inline-snapshot-0.29.4.ebuild
+++ b/dev-python/inline-snapshot/inline-snapshot-0.29.4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/asttokens-2.0.5[${PYTHON_USEDEP}]
diff --git a/dev-python/jupyter-server/Manifest b/dev-python/jupyter-server/Manifest
index f61aebd1628f..11a5cc40554c 100644
--- a/dev-python/jupyter-server/Manifest
+++ b/dev-python/jupyter-server/Manifest
@@ -1 +1,2 @@
DIST jupyter_server-2.17.0.tar.gz 731949 BLAKE2B e15b8e385f620549ce965a553a49f4606180fc782cd1617b4cc723a5a6443c2a0a7e3c19c9f00577afd125ea9f8e8a68e60eb42d2e73c09b69e0181f6fc8b790 SHA512 9eb386bee25e2fa28ef30a2d00178fcbe3a6ab0b3033c461863cfabb78433701fe7c856af27084e57d312d092610c7d50890637114c90c126e39b9f78bc15355
+DIST jupyter_server-2.18.0.tar.gz 751152 BLAKE2B 7f34be2b9466fdccea015036ba2f91a408f57c728d17e83589ea6a41f7f41b46a834d7acaf2ce210017c7570c30bd804f62e0ab107ccb40f070693865c2af39a SHA512 d959a59bb121c10dd453f8398ababcd1a4bb49976fcd35b3012bc62e95db10bf63a4539db5d1e19d214dbcfddd45494be7bd3bfaf72bd5c86c8475cf3e924037
diff --git a/dev-python/jupyter-server/jupyter-server-2.18.0.ebuild b/dev-python/jupyter-server/jupyter-server-2.18.0.ebuild
new file mode 100644
index 000000000000..d1516490badf
--- /dev/null
+++ b/dev-python/jupyter-server/jupyter-server-2.18.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core services, APIs, and REST endpoints to Jupyter web applications"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter-server/jupyter_server/
+ https://pypi.org/project/jupyter-server/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/anyio-3.1.0[${PYTHON_USEDEP}]
+ >=dev-python/argon2-cffi-21.1[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-client-7.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-core-5.1.0[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-terminals-0.4.4[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-events-0.11.0[${PYTHON_USEDEP}]
+ >=dev-python/nbconvert-6.4.4[${PYTHON_USEDEP}]
+ >=dev-python/nbformat-5.3.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/overrides-5.0[${PYTHON_USEDEP}]
+ ' 3.11)
+ >=dev-python/packaging-22.0[${PYTHON_USEDEP}]
+ >=dev-python/prometheus-client-0.9[${PYTHON_USEDEP}]
+ >=dev-python/pyzmq-24[${PYTHON_USEDEP}]
+ >=dev-python/send2trash-1.8.2[${PYTHON_USEDEP}]
+ >=dev-python/terminado-0.8.3[${PYTHON_USEDEP}]
+ >=dev-python/tornado-6.2[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.6.0[${PYTHON_USEDEP}]
+ >=dev-python/websocket-client-1.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{console-scripts,jupyter,timeout,tornasync} )
+EPYTEST_RERUNS=5
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # This fails if your terminal is zsh (and maybe other non-bash as well?)
+ tests/test_terminal.py
+ # Fails because above is ignored
+ tests/auth/test_authorizer.py
+ # Fails with additional extensions installed
+ tests/extension/test_app.py::test_stop_extension
+ )
+
+ # FIXME: tests seem to be affected by previously installed version
+ epytest -o tmp_path_retention_policy=all
+}
diff --git a/dev-python/mypy/mypy-1.18.2-r1.ebuild b/dev-python/mypy/mypy-1.18.2-r1.ebuild
index 6ff802af2d04..c778dc502005 100644
--- a/dev-python/mypy/mypy-1.18.2-r1.ebuild
+++ b/dev-python/mypy/mypy-1.18.2-r1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="native-extensions"
# stubgen collides with this package: https://bugs.gentoo.org/585594
@@ -95,6 +95,8 @@ python_test() {
# TODO
mypy/test/meta/test_parse_data.py
mypy/test/meta/test_update_data.py
+ # Unknown SIGBUS, bug #967850
+ mypyc/test/test_run.py::TestRun::run-classes.test::testBufferRoundTrip_native_libs
)
case ${EPYTHON} in
python3.14)
diff --git a/dev-python/mypy/mypy-1.20.2.ebuild b/dev-python/mypy/mypy-1.20.2.ebuild
index 933468266cfc..118d184efebf 100644
--- a/dev-python/mypy/mypy-1.20.2.ebuild
+++ b/dev-python/mypy/mypy-1.20.2.ebuild
@@ -99,6 +99,8 @@ python_test() {
# TODO
mypy/test/meta/test_parse_data.py
mypy/test/meta/test_update_data.py
+ # Unknown SIGBUS, bug #967850
+ mypyc/test/test_run.py::TestRun::run-classes.test::testBufferRoundTrip_native_libs
)
case ${EPYTHON} in
diff --git a/dev-python/nethsm/Manifest b/dev-python/nethsm/Manifest
new file mode 100644
index 000000000000..ca613b615bb8
--- /dev/null
+++ b/dev-python/nethsm/Manifest
@@ -0,0 +1 @@
+DIST nethsm-2.1.0.gh.tar.gz 307311 BLAKE2B 704e102348dbe93f00b38c19f500bd5c30b98e0b7d52f4cd7a8d54adbbf4960aa506b2ec7930cf93219a4dc3b37ad748ab92523833d0a1f57b52541fc655ddc7 SHA512 ee2f37b548cc0737dbb2e07793e7ecec781580f95a1679bfdcda62acf15a1e3e28ef175b90ca1323a5585a53c5110925146a6e5553971475665df8b385eb913a
diff --git a/dev-python/nethsm/metadata.xml b/dev-python/nethsm/metadata.xml
new file mode 100644
index 000000000000..cd44a6e544d5
--- /dev/null
+++ b/dev-python/nethsm/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jernej.jakob@gmail.com</email>
+ <name>Jernej Jakob</name>
+ </maintainer>
+
+ <origin>gentoo-guru-overlay</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/nethsm/nethsm-2.1.0.ebuild b/dev-python/nethsm/nethsm-2.1.0.ebuild
new file mode 100644
index 000000000000..062d171624c4
--- /dev/null
+++ b/dev-python/nethsm/nethsm-2.1.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1
+
+DESCRIPTION="Python client for NitroKey NetHSM"
+HOMEPAGE="https://github.com/Nitrokey/nethsm-sdk-py"
+MY_PN="nethsm-sdk-py"
+MY_P="${MY_PN}-${PV}"
+SRC_URI="https://github.com/Nitrokey/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-41[${PYTHON_USEDEP}]
+ =dev-python/python-dateutil-2*[${PYTHON_USEDEP}]
+ =dev-python/typing-extensions-4*[${PYTHON_USEDEP}]
+ =dev-python/urllib3-2*[${PYTHON_USEDEP}]
+"
+
+# tests require docker (provision a NetHSM instance in a container from a prebuilt image)
+RESTRICT="test"
diff --git a/dev-python/nitrokey/Manifest b/dev-python/nitrokey/Manifest
index 4e32a76ebf82..bcac2ad81ff5 100644
--- a/dev-python/nitrokey/Manifest
+++ b/dev-python/nitrokey/Manifest
@@ -1 +1 @@
-DIST nitrokey-0.4.1.gh.tar.gz 1234954 BLAKE2B e095673defa106072a05286a0144b8a02b581fc3836b783960ebda3c47770eeaf0761ac76111b7368d6f739e42c45191de92f652162a2b76c4b25bd6dfab7cbb SHA512 af88c7b4a59f11a5d54496c2f2cd3e808d711935b87b0fe21de62a34159f000dacf63f4a8b46be37dd6ba540c3a04d41328bf09e81f02dc2634de05e16c4d498
+DIST nitrokey-0.4.2.gh.tar.gz 1235069 BLAKE2B ee2d08363eb7ccb2e72fb73bd2d45e01c00f3c6784bbd5ea2f5b185a4c358c3502e2200796fdcb0c98cc1037324d4cb7e8b7cca97e3a53d5122049040ad778b6 SHA512 04003651240361e736e4a3a4f3c7f172a86f06eab7a0a6bd862e20fd8b22aa7918e130fd918ee10f906322949bd8ad292b03e0dc708c928c951e236c6650c680
diff --git a/dev-python/nitrokey/nitrokey-0.4.1.ebuild b/dev-python/nitrokey/nitrokey-0.4.1.ebuild
deleted file mode 100644
index e623458eab99..000000000000
--- a/dev-python/nitrokey/nitrokey-0.4.1.ebuild
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=poetry
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python SDK for Nitrokey devices"
-HOMEPAGE="https://github.com/Nitrokey/nitrokey-sdk-py https://pypi.org/project/nitrokey/"
-SRC_URI="https://github.com/Nitrokey/nitrokey-sdk-py/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-S="${WORKDIR}/nitrokey-sdk-py-${PV}"
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- >=dev-python/crcmod-1.7[${PYTHON_USEDEP}]
- <dev-python/crcmod-2[${PYTHON_USEDEP}]
- >=dev-python/cryptography-41[${PYTHON_USEDEP}]
- >=dev-python/fido2-1.1.2:=[${PYTHON_USEDEP}]
- <dev-python/fido2-3:=[${PYTHON_USEDEP}]
- >=dev-python/hidapi-0.14[${PYTHON_USEDEP}]
- <dev-python/hidapi-0.15[${PYTHON_USEDEP}]
- >=dev-python/poetry-core-2[${PYTHON_USEDEP}]
- <dev-python/poetry-core-3[${PYTHON_USEDEP}]
- >=dev-python/protobuf-5.26:=[${PYTHON_USEDEP}]
- <dev-python/protobuf-7:=[${PYTHON_USEDEP}]
- >=dev-python/pyserial-3.5[${PYTHON_USEDEP}]
- <dev-python/pyserial-4[${PYTHON_USEDEP}]
- >=dev-python/requests-2.16[${PYTHON_USEDEP}]
- <dev-python/requests-3[${PYTHON_USEDEP}]
- >=dev-python/semver-3[${PYTHON_USEDEP}]
- <dev-python/semver-4[${PYTHON_USEDEP}]
- >=dev-python/tlv8-0.10[${PYTHON_USEDEP}]
- <dev-python/tlv8-0.11[${PYTHON_USEDEP}]
- >=dev-python/types-protobuf-5.26[${PYTHON_USEDEP}]
- <dev-python/types-protobuf-7[${PYTHON_USEDEP}]
- >=dev-python/types-requests-2.16[${PYTHON_USEDEP}]
- <dev-python/types-requests-3[${PYTHON_USEDEP}]
- >=dev-python/typing-extensions-4.1[${PYTHON_USEDEP}]
- <dev-python/typing-extensions-5[${PYTHON_USEDEP}]
-"
-
-distutils_enable_sphinx docs
-distutils_enable_tests pytest
diff --git a/dev-python/nitrokey/nitrokey-0.4.2.ebuild b/dev-python/nitrokey/nitrokey-0.4.2.ebuild
new file mode 100644
index 000000000000..64e9723b081e
--- /dev/null
+++ b/dev-python/nitrokey/nitrokey-0.4.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1
+
+DESCRIPTION="Python SDK for Nitrokey devices"
+HOMEPAGE="https://github.com/Nitrokey/nitrokey-sdk-py https://pypi.org/project/nitrokey/"
+
+SRC_URI="https://github.com/Nitrokey/nitrokey-sdk-py/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/nitrokey-sdk-py-${PV}"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="udev"
+
+RDEPEND="
+ >=dev-python/cryptography-41[${PYTHON_USEDEP}]
+ >=dev-python/crcmod-1.7[${PYTHON_USEDEP}]
+ <dev-python/crcmod-2[${PYTHON_USEDEP}]
+ >=dev-python/fido2-1.1.2[${PYTHON_USEDEP}]
+ <dev-python/fido2-3[${PYTHON_USEDEP}]
+ >=dev-python/hidapi-0.14[${PYTHON_USEDEP}]
+ udev? ( app-crypt/nitrokey-udev-rules )
+ =dev-python/requests-2*[${PYTHON_USEDEP}]
+ >=dev-python/tlv8-0.10[${PYTHON_USEDEP}]
+ <dev-python/tlv8-1[${PYTHON_USEDEP}]
+ >=dev-python/pyserial-3.5[${PYTHON_USEDEP}]
+ <dev-python/pyserial-4[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-5.26[${PYTHON_USEDEP}]
+ <dev-python/protobuf-7[${PYTHON_USEDEP}]
+ =dev-python/semver-3*[${PYTHON_USEDEP}]
+"
+
+distutils_enable_sphinx docs
+distutils_enable_tests pytest
diff --git a/dev-python/nkdfu/Manifest b/dev-python/nkdfu/Manifest
new file mode 100644
index 000000000000..116b7ad8b509
--- /dev/null
+++ b/dev-python/nkdfu/Manifest
@@ -0,0 +1 @@
+DIST nkdfu-0.2.gh.tar.gz 16046 BLAKE2B dbd01a333391ae94fccae6cf7cecccce2b742fcb91fab421208236cfa7576b1a31ebf21dd168813534c8ca401d964c12b73d340ddd8e6e6ca009257a1a306f5e SHA512 3b94b65115e84ca0a065746f92415d7be436484fd9a949ac841955ffd98a061ec7c9016f1d9bc05af1006fcfc2ca21a94f51a0d3a036c27945cf568b75cc7d58
diff --git a/dev-python/nkdfu/metadata.xml b/dev-python/nkdfu/metadata.xml
new file mode 100644
index 000000000000..cd44a6e544d5
--- /dev/null
+++ b/dev-python/nkdfu/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jernej.jakob@gmail.com</email>
+ <name>Jernej Jakob</name>
+ </maintainer>
+
+ <origin>gentoo-guru-overlay</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/nkdfu/nkdfu-0.2.ebuild b/dev-python/nkdfu/nkdfu-0.2.ebuild
new file mode 100644
index 000000000000..0000e34a422d
--- /dev/null
+++ b/dev-python/nkdfu/nkdfu-0.2.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# officially supports only py3.11 but works on newer too
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1
+
+DESCRIPTION="Python DFU tool for updating Nitrokey firmware"
+HOMEPAGE="https://github.com/Nitrokey/nkdfu"
+SRC_URI="https://github.com/Nitrokey/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/intelhex-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/libusb1-1.9.3[${PYTHON_USEDEP}]
+ dev-python/python-fire[${PYTHON_USEDEP}]
+ dev-python/tqdm[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/numpy/numpy-2.4.4.ebuild b/dev-python/numpy/numpy-2.4.4.ebuild
index 3ce39c740e95..c14f69aeda45 100644
--- a/dev-python/numpy/numpy-2.4.4.ebuild
+++ b/dev-python/numpy/numpy-2.4.4.ebuild
@@ -22,7 +22,7 @@ HOMEPAGE="
LICENSE="BSD 0BSD MIT ZLIB CC0-1.0"
SLOT="0/2"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86"
fi
# +lapack because the internal fallbacks are pretty slow. Building without blas
# is barely supported anyway, see bug #914358.
diff --git a/dev-python/oct2py/Manifest b/dev-python/oct2py/Manifest
index 7b8f14126655..88f7e7163858 100644
--- a/dev-python/oct2py/Manifest
+++ b/dev-python/oct2py/Manifest
@@ -1 +1,2 @@
DIST oct2py-6.0.1.tar.gz 73861 BLAKE2B b8b4c28875f56c4b88f292ea98d78b71769544e036c3ae5b84b925a597cf732c6187853247dd9e3715a220fc3c15b9ab4c38a19f2f844196aa4eb3d78d598d08 SHA512 853d397eb76ba047ebd3be8fbb77e8a28851a14d413539ca24cc0049f73215a7d037805e21cbf0f46a104c78fbdc98f8925919a9690c12fa1019096cff49acea
+DIST oct2py-6.0.2.tar.gz 74126 BLAKE2B fd0d2aad24f9660175b61e49c550ba3f7289294cbd5e1ecfbeeab671623aa4afc2718081fa5e332f6c75346d1f7c4b797785a897fbce114959c4a50b033b51ad SHA512 2f5b2dc4ef8ee59aac90fc0598faef1503f88258789392746540250d8c2a6f44d44bd157a0eaecb319f59f3b9dbe07c657c22123918dd6f2f5ccf1e09cbb0310
diff --git a/dev-python/oct2py/oct2py-6.0.2.ebuild b/dev-python/oct2py/oct2py-6.0.2.ebuild
new file mode 100644
index 000000000000..d324d8359feb
--- /dev/null
+++ b/dev-python/oct2py/oct2py-6.0.2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi virtualx
+
+DESCRIPTION="Python to GNU Octave bridge"
+HOMEPAGE="
+ https://github.com/blink1073/oct2py
+ https://blink1073.github.io/oct2py/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/numpy-1.25.0[${PYTHON_USEDEP}]
+ >=dev-python/octave-kernel-1.0[${PYTHON_USEDEP}]
+ >=dev-python/pydantic-settings-2.0[${PYTHON_USEDEP}]
+ >=dev-python/scipy-0.17.1[${PYTHON_USEDEP}]
+ >=dev-python/tornado-0.5.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ipython-9.0[${PYTHON_USEDEP}]
+ dev-python/nbconvert[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( flaky )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # No graphics toolkit available: 743589
+ "oct2py/ipython/tests/test_octavemagic.py::OctaveMagicTest::test_octave_plot"
+ # TODO
+ tests/test_misc.py::TestMisc::test_func_without_docstring
+ tests/test_usage.py::TestUsage::test_pkg_load
+ )
+
+ virtx epytest
+}
diff --git a/dev-python/openapi-schema-validator/openapi-schema-validator-0.9.0.ebuild b/dev-python/openapi-schema-validator/openapi-schema-validator-0.9.0.ebuild
index 59c3b04f9120..ca967a70c134 100644
--- a/dev-python/openapi-schema-validator/openapi-schema-validator-0.9.0.ebuild
+++ b/dev-python/openapi-schema-validator/openapi-schema-validator-0.9.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
RDEPEND="
<dev-python/jsonschema-5[${PYTHON_USEDEP}]
diff --git a/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild b/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild
index d7b96ed43da2..fe4fb5dbc782 100644
--- a/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild
+++ b/dev-python/openapi-spec-validator/openapi-spec-validator-0.8.5.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_beta* ]]; then
- KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
+ KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
fi
RDEPEND="
diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest
index 9a0bb11ace1d..a742f5daadbe 100644
--- a/dev-python/pip/Manifest
+++ b/dev-python/pip/Manifest
@@ -1,3 +1,4 @@
DIST flit_core-3.12.0-py3-none-any.whl 45594 BLAKE2B 7c6cb6eb03d45bbba27f27b3728881b57fe82dd38e03f884d3b7c46116eb2b9dd76f92bdaf7f594ef8ccbe12ec8f9a56424ff9e9fc7a839c4818a113fdf0c3d3 SHA512 790c12b1f43201e365fb3f8f2f0a54e1a578876799dfdf8bfeea679a25ea096bf62946d006618c1458ae6e37ce6d00998f37e9aba426d5ab80d32ef2d75da4e0
DIST pip-26.0.1.gh.tar.gz 9227871 BLAKE2B 96a2fab2de472b3cde570f3bcbd6bc5e5c48ef2f0808ca9b2b6c0f57a611f723cd0f5d592b6b5f553fb57a6909459f57b4130f2451cd95c3b18678e02215e0c9 SHA512 3786df7522ea65bc20fb9885ce5c2ddc60200a536a1f754a8d7dc278115c73258863e4c51ac7e9a60dda0b70263730dc194f70e1e8f8d00178a8b3c724333bf0
+DIST pip-26.1.1.gh.tar.gz 9267528 BLAKE2B 7623f0d584baf05d46f29f662ecbbb2299d82aba0204c522326e1fb7350e31e32dff660b8360bfe8505f56f38d50d0b874e84118dff95a64e9f60510a2965dc7 SHA512 777fab14b5e7e7edeffbc7ae86f4e6061e9f7cf43adcaebcb4d099c184c4f2ad6a63019a70d95b98b631821c3472713c9545fb8d65b684da67cfc31ee9293054
DIST pip-26.1.gh.tar.gz 9268351 BLAKE2B 55773ba9ead364dcb8b900fb2f196dd768f688f54ae2ef190ae1739fec3fcc22f260c25df6ffb097e3b14ad321c51535cb71a921eafe4430a3eb30b94e38cc1e SHA512 cb3dde18f1b16ffeb36a0eeec02b64a0a363e1ef50070126fdbb152ba03749830095f85a98267e552169b7953b5839558be2c3ee8f78802cb56dd4f139b72762
diff --git a/dev-python/pip/pip-26.1.1.ebuild b/dev-python/pip/pip-26.1.1.ebuild
new file mode 100644
index 000000000000..3faabd1fa3ed
--- /dev/null
+++ b/dev-python/pip/pip-26.1.1.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# please bump dev-python/ensurepip-pip along with this package!
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_TESTED=( pypy3_11 python3_{11..14} )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="ssl(+),threads(+)"
+
+inherit distutils-r1 pypi shell-completion
+FLIT_CORE_PV=3.12.0
+
+DESCRIPTION="The PyPA recommended tool for installing Python packages"
+HOMEPAGE="
+ https://pip.pypa.io/en/stable/
+ https://pypi.org/project/pip/
+ https://github.com/pypa/pip/
+"
+SRC_URI="
+ https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
+ test? (
+ $(pypi_wheel_url flit-core "${FLIT_CORE_PV}")
+ )
+"
+
+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 )"
+
+# see src/pip/_vendor/vendor.txt
+RDEPEND="
+ >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}]
+ >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.9.0[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-26.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}]
+ >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.33.1[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.1.0[${PYTHON_USEDEP}]
+ >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/ensurepip-setuptools
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ dev-python/scripttest[${PYTHON_USEDEP}]
+ <dev-python/setuptools-80[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ )
+ dev-vcs/git
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ # remove coverage & pytest-subket wheel expectation from test suite
+ "${FILESDIR}/pip-26.0-test-wheels.patch"
+ # prepare to unbundle dependencies
+ "${FILESDIR}/pip-25.0.1-unbundle.patch"
+ )
+
+ distutils-r1_python_prepare_all
+
+ # unbundle dependencies
+ rm -r src/pip/_vendor || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from pip\._vendor import:import:g' \
+ -e 's:from pip\._vendor\.:from :g' \
+ {} + || die
+ sed -i -e '/_vendor.*\(COPYING\|LICENSE\)/d' pyproject.toml || die
+
+ if use test; then
+ local wheels=(
+ "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
+ "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")"
+ )
+ mkdir tests/data/common_wheels/ || die
+ cp "${wheels[@]}" tests/data/common_wheels/ || die
+ fi
+}
+
+python_configure() {
+ if use test && has_version "dev-python/pip[${PYTHON_USEDEP}]"; then
+ "${EPYTHON}" -m pip check ||
+ die "${EPYTHON} -m pip check failed, tests will fail"
+ fi
+}
+
+python_compile_all() {
+ # 'pip completion' command embeds full $0 into completion script, which confuses
+ # 'complete' and causes QA warning when running as "${PYTHON} -m pip".
+ # This trick sets correct $0 while still calling just installed pip.
+ local pipcmd='if True:
+ import sys
+ sys.argv[0] = "pip"
+ __file__ = ""
+ from pip._internal.cli.main import main
+ sys.exit(main())
+ '
+ "${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
+ "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return 0
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/functional/test_inspect.py::test_inspect_basic
+ # Internet
+ tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
+ tests/functional/test_install.py::test_double_install_fail
+ tests/functional/test_install.py::test_install_sdist_links
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ tests/functional/test_lock.py::test_lock_archive
+ tests/functional/test_lock.py::test_lock_vcs
+ # broken by system site-packages use
+ tests/functional/test_freeze.py::test_freeze_with_setuptools
+ tests/functional/test_install.py::test_install_subprocess_output_handling
+ tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
+ tests/functional/test_uninstall.py::test_basic_uninstall_distutils
+ tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
+ tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
+ tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
+ # broken by unbundling
+ "tests/functional/test_debug.py::test_debug[vendored library versions:]"
+ tests/functional/test_debug.py::test_debug__library_versions
+ tests/functional/test_freeze.py::test_freeze_multiple_exclude_with_all
+ tests/functional/test_install.py::test_install_package_with_same_name_in_curdir
+ tests/functional/test_pep517.py::test_nested_builds
+ tests/functional/test_python_option.py::test_python_interpreter
+ tests/functional/test_uninstall.py::test_basic_uninstall
+ tests/functional/test_uninstall.py::test_uninstall_non_local_distutils
+ )
+ local EPYTEST_IGNORE=(
+ # from upstream options
+ tests/tests_cache
+ # requires proxy.py
+ tests/functional/test_proxy.py
+ )
+
+ case ${EPYTHON} in
+ pypy3*)
+ EPYTEST_DESELECT+=(
+ # unexpected tempfiles?
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ # wrong path
+ tests/functional/test_install.py::test_install_editable_with_prefix_setup_py
+ # wrong exception assumptions
+ tests/unit/test_utils_datetime.py::test_parse_iso_datetime_invalid
+ # TODO
+ tests/functional/test_install.py::test_install_warns_on_unexpected_post_install_import
+ )
+ ;;
+ esac
+
+ if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
+ EPYTEST_DESELECT+=(
+ tests/functional/test_install.py::test_install_sends_client_cert
+ tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_authentication
+ tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
+ )
+ fi
+
+ local -x PIP_DISABLE_PIP_VERSION_CHECK=1
+ local EPYTEST_PLUGINS=()
+ # rerunfailures because test suite breaks if packages are installed
+ # to system site-packages while it's running
+ local EPYTEST_RERUNS=5
+ local EPYTEST_XDIST=1
+ epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \
+ --use-venv
+}
+
+python_install_all() {
+ local DOCS=( AUTHORS.txt docs/html/**/*.rst )
+ distutils-r1_python_install_all
+
+ newbashcomp completion.bash pip
+ newzshcomp completion.zsh _pip
+}
diff --git a/dev-python/pipenv/Manifest b/dev-python/pipenv/Manifest
index 4976095be537..dbd044a4a0f6 100644
--- a/dev-python/pipenv/Manifest
+++ b/dev-python/pipenv/Manifest
@@ -1,2 +1 @@
-DIST pipenv-2026.5.2.gh.tar.gz 10508957 BLAKE2B 76a31783f4653701b6ae5491df55954f567051b495cfc7fdc19a2f441618d90e0198fb2dd6c9f103d97027b17fd45e82d50e3db136ce5eeb764c9ac896cbd0e9 SHA512 4241a25af0c9aa581026e55f40f53b76411f6a264a2ef8d37298b4def19ae334d098d970c550b24e1da29003215ea34d4aa1f070de4d599d79ad7e114a5a1325
DIST pipenv-2026.6.1.gh.tar.gz 10555997 BLAKE2B 3b97269ca898f9aa7dc9cbe8c037bd637750c61481491006b20ee7a90c8c811360bacad15b52bc15100576b6eb88894c7736c23e8a3940d308197e413260b2a8 SHA512 a2d3def9d27d0ad7fed2412e772e478093af11563711d370d428917d33cdb8bfc2181e098c7bd1e98b3334829665cdb11abd59c889b68daf4c9a094979a5ecd6
diff --git a/dev-python/pipenv/pipenv-2026.5.2.ebuild b/dev-python/pipenv/pipenv-2026.5.2.ebuild
deleted file mode 100644
index 5a4addf4bb3a..000000000000
--- a/dev-python/pipenv/pipenv-2026.5.2.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python Development Workflow for Humans"
-HOMEPAGE="https://github.com/pypa/pipenv https://pypi.org/project/pipenv/"
-SRC_URI="https://github.com/pypa/pipenv/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
-
-PATCHES=(
- "${FILESDIR}/pipenv-${PV}-0001-Append-always-install-to-pip-extra-args.patch"
- "${FILESDIR}/pipenv-${PV}-0002-Inject-system-packages.patch"
-
-)
-
-RDEPEND="
- >=dev-python/importlib-metadata-8.4.0[${PYTHON_USEDEP}]
- <dev-python/importlib-metadata-9.0.0[${PYTHON_USEDEP}]
- >=dev-python/pexpect-4.8.0[${PYTHON_USEDEP}]
- ~dev-python/pipdeptree-2.30.0[${PYTHON_USEDEP}]
- ~dev-python/plette-2.1.0[${PYTHON_USEDEP}]
- >=dev-python/ptyprocess-0.7.0[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-0.21.0[${PYTHON_USEDEP}]
- >=dev-python/pythonfinder-3.0.0[${PYTHON_USEDEP}]
- dev-python/shellingham[${PYTHON_USEDEP}]
- dev-python/tomlkit[${PYTHON_USEDEP}]
- >=dev-python/virtualenv-20.0.35[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- ${RDEPEND}
- test? (
- dev-python/flaky[${PYTHON_USEDEP}]
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-# IMPORTANT: The following sed command patches the vendor direcotry
-# in the pipenv source. Attempts to simply bump the version of the
-# package without checking that it works is likely to fail
-# The vendored packages should eventually all be removed
-# see: https://bugs.gentoo.org/717666
-src_prepare() {
- sed --in-place -e \
- "s/import click, plette, tomlkit/import click\n\import tomlkit\nfrom pipenv.vendor import plette/g" \
- pipenv/project.py || die "Failed patching pipenv/project.py"
-
- local pkgName
- local packages=(
- colorama
- click
- click_didyoumean
- dotenv
- pexpect
- pipdeptree
- plette
- pythonfinder
- shellingham
- tomli
- tomlkit
- importlib_metadata
- packaging
- )
-
- for pkgName in "${packages[@]}"; do
- find ./ -type f -exec sed --in-place \
- -e "s/from pipenv.vendor import ${pkgName}/import ${pkgName}/g" \
- -e "s/from pipenv.vendor.${pkgName}\(.*\) import \(\w*\)/from ${pkgName}\1 import \2/g"\
- -e "s/import pipenv.vendor.${pkgName} as ${pkgName}/import ${pkgName}/g" \
- -e "s/from .vendor import ${pkgName}/import ${pkgName}/g" \
- -e "s/from .vendor.${pkgName}/from ${pkgName}/g" {} + || die "Failed to sed for ${pkgName}"
- done
-
- # disable coverage in tests
- sed -i -e '/\[tool\.pytest\.ini_options\]/,/\[/ { /addopts/d; /plugins/d; }' pyproject.toml || die
-
- distutils-r1_src_prepare
-
- # remove vendored versions
- for pkgName in "${packages[@]}"; do
- # Match the name directly (works for directories and files)
- # We use -o (OR) to handle both the original name and the hyphenated version
- find ./pipenv/vendor \( -name "${pkgName}" -o -name "${pkgName/_/-}" \) \
- -prune -exec rm -rvf {} + || die "Failed to remove vendored ${pkgName}"
- done
-
- find tests/ -type f -name "*.py" -exec sed -i \
- -e "s/pipenv\.vendor\.pythonfinder\.utils\.get_python_version/pythonfinder.utils.get_python_version/g" \
- -e "s/from pipenv\.vendor /from /g" \
- -e "s/import pipenv\.vendor\./import /g" \
- {} + || die "Failed to devendor tests"
-
- rm -rv examples docs benchmarks || die "Failed to remove dirs"
-
-}
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local -x PYTHONPATH="${S}:${PYTHONPATH}"
- epytest -m "not cli and not needs_internet" tests/unit/
-}
diff --git a/dev-python/pulsectl/pulsectl-24.12.0.ebuild b/dev-python/pulsectl/pulsectl-24.12.0.ebuild
index c66e980e8949..c23666148103 100644
--- a/dev-python/pulsectl/pulsectl-24.12.0.ebuild
+++ b/dev-python/pulsectl/pulsectl-24.12.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/pybind11/pybind11-3.0.3.ebuild b/dev-python/pybind11/pybind11-3.0.3.ebuild
index 411645045390..bb655bb1a019 100644
--- a/dev-python/pybind11/pybind11-3.0.3.ebuild
+++ b/dev-python/pybind11/pybind11-3.0.3.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
dev-cpp/eigen:3
diff --git a/dev-python/pydantic-settings/pydantic-settings-2.14.0.ebuild b/dev-python/pydantic-settings/pydantic-settings-2.14.0.ebuild
index 37612c5b2cf2..3bd135c98965 100644
--- a/dev-python/pydantic-settings/pydantic-settings-2.14.0.ebuild
+++ b/dev-python/pydantic-settings/pydantic-settings-2.14.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
RDEPEND="
>=dev-python/pydantic-2.7.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pydantic/pydantic-2.12.5.ebuild b/dev-python/pydantic/pydantic-2.12.5.ebuild
index e8159896a7bf..33801ea1e788 100644
--- a/dev-python/pydantic/pydantic-2.12.5.ebuild
+++ b/dev-python/pydantic/pydantic-2.12.5.ebuild
@@ -137,7 +137,7 @@ LICENSE+="
|| ( Apache-2.0 Boost-1.0 )
"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/annotated-types-0.6.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild b/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild
index 29108b53cccd..a884b2c976ed 100644
--- a/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild
+++ b/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://github.com/spyder-ide/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.ta
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 arm64 x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="dev-python/python-lsp-server[all-plugins,${PYTHON_USEDEP}]"
BDEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}] )"
diff --git a/dev-python/pyopenssl/Manifest b/dev-python/pyopenssl/Manifest
index a01e255861c2..78e12d118c68 100644
--- a/dev-python/pyopenssl/Manifest
+++ b/dev-python/pyopenssl/Manifest
@@ -2,3 +2,5 @@ DIST pyopenssl-26.0.0.tar.gz 185534 BLAKE2B 463efcbbcf3f600f0f26d3175cc242302b69
DIST pyopenssl-26.0.0.tar.gz.provenance 9119 BLAKE2B 944517f6722c8a06e880b30d1c51b7f6189c2a61195ef0d207840b8fcd0bd18b8d60bd0c6ff4331d393ccf9919c50d869b825a55dd83440bce8645dc3cde9ffe SHA512 db480457c37a5bc50e8da6882f2bb5cf86f28c25f89052d86980b87a7e6a097fbe2df652ca96b1a6493dde30062965e1a53971925a48e664e96fdee46b82dd82
DIST pyopenssl-26.1.0.tar.gz 186181 BLAKE2B 047bfcbcd21bb00bb8ae6d2e39c30f21f3925971fb199ef50d7fea4d12b3edbb9af0d74bce828f8b10a3d7f4b6739a6ba62ec3d9ae52ee83ccf8445b9b056ec8 SHA512 084117296b7013d665d7f30705b26ad5dd2758febfc7080ae656328d40a2e992b74c52abcc39b9243bc9a918b4611f1f497e56928a5789ffc63c0b521357eb9c
DIST pyopenssl-26.1.0.tar.gz.provenance 9212 BLAKE2B 2a0d770895ffd4d306f87a15b273233f3297741fc4ab0032f176d76319bdd8997868ceebdf6e6f75a4d169a69a3304de236809fe864d31374c830d4f8749bda1 SHA512 6542d8fb16868c390600c452ef99f05b831645dcf78ec0aba5a71b0504a88a5b0ac2f4467d776423ec5cc97f36020e35904a5f01d9418d69695dfc45850117a6
+DIST pyopenssl-26.2.0.tar.gz 182195 BLAKE2B aa86a2869e83fc133f0a608b6769199ecc57f7a9847dda018266c6be9fd34fb89c258eef42f42cc7f7fb392799bbe6a297148dd627d81bfccda9bc20b0b44e46 SHA512 701f205adad7384731710f572b48a41af87ea4ba7c7111421962e01079407f3e7b289dd5972feec80a6d182b818ee39e45c88464108589b16fe8239c19080265
+DIST pyopenssl-26.2.0.tar.gz.provenance 9306 BLAKE2B 114c21eafc21fcde8f3d12f84826a819d134d5ca357d9928073654027077e2cee7795200611e12d1900923e1084aff56880f39baa8f2b5badc46830adb5d8a31 SHA512 8976149e09e1dda78292578c53aa9d988004cff346a0f602fd1373c3fb209a86a3f0db3a3e5e9ae0b252275e1448e8190076a1811ff48b3ba7873cb438eb7d00
diff --git a/dev-python/pyopenssl/pyopenssl-26.2.0.ebuild b/dev-python/pyopenssl/pyopenssl-26.2.0.ebuild
new file mode 100644
index 000000000000..248fbcc4d339
--- /dev/null
+++ b/dev-python/pyopenssl/pyopenssl-26.2.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=pyOpenSSL
+PYPI_VERIFY_REPO=https://github.com/pyca/pyopenssl
+PYTHON_COMPAT=( python3_{10..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 toolchain-funcs pypi
+
+DESCRIPTION="Python interface to the OpenSSL library"
+HOMEPAGE="
+ https://www.pyopenssl.org/
+ https://github.com/pyca/pyopenssl/
+ https://pypi.org/project/pyOpenSSL/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/cryptography-49[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-46.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.9[${PYTHON_USEDEP}]
+ ' 3.{11..12})
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/cffi[${PYTHON_USEDEP}]
+ ' 'python*')
+ dev-python/pretend[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx doc \
+ dev-python/sphinx-rtd-theme
+EPYTEST_PLUGINS=( pytest-rerunfailures )
+distutils_enable_tests pytest
+
+src_test() {
+ local -x TZ=UTC
+ local EPYTEST_DESELECT=(
+ tests/test_ssl.py::TestContext::test_set_default_verify_paths
+ )
+
+ if ! tc-has-64bit-time_t; then
+ einfo "time_t is smaller than 64 bits, will skip broken tests"
+ EPYTEST_DESELECT+=(
+ tests/test_crypto.py::TestX509StoreContext::test_verify_with_time
+ )
+ fi
+
+ distutils-r1_src_test
+}
diff --git a/dev-python/pyproject-fmt/Manifest b/dev-python/pyproject-fmt/Manifest
index a26655dd845c..a038b85da07b 100644
--- a/dev-python/pyproject-fmt/Manifest
+++ b/dev-python/pyproject-fmt/Manifest
@@ -2,7 +2,11 @@ DIST pyproject_fmt-2.20.0.tar.gz 144673 BLAKE2B d2d126c87816b082210b4abc7eaca748
DIST pyproject_fmt-2.20.0.tar.gz.provenance 9797 BLAKE2B 4fe967a8bde8903c260788139105dcba0e0ece5628f1d3037ddf5eadf0ffa5a01f085c4731137f715483a858a38989af2dba201525e9e14c3565cb1471cd9185 SHA512 afa428ea723162b5a5202573d35f99be76c233189a908a9f34ac4ffce2376f7eb27e44ff9bb0d30160f228d59e1e8abbf0a814cc5e6992001a3d83873e7e5d83
DIST pyproject_fmt-2.21.1.tar.gz 152372 BLAKE2B d3c71cfad8dc645f4c02c98fccd4c417d2c7374aebf3154665383ecb735251965d8963bea055f80de67039048442a96891881efd455d97cb5107dcfe684f0975 SHA512 29096f55e51d384ca726568e58fefcf707dba6775b3b07a202ea647be9dd28897da662597a230b37d100ef929263432203aa6ea25768898284ea7c26bb53dfb5
DIST pyproject_fmt-2.21.1.tar.gz.provenance 9617 BLAKE2B d64c03acd2d43cf10e77e53f9c80cdd4fb3afdec2d4fd84ce09868dea1942a8ad4749a210ec54bbf31ff4698ef09eb71a1a4d2172cd982c299cf6d0c2cea10c7 SHA512 81a3bf26b5a6cc0bab6918f6e2ddc288f52373e91bbd337a9c8482e14b604b926e19bd4b51e43c5e44f11d7fc5dbdcd65e4654e23907e4ae3614df37e3484edc
+DIST pyproject_fmt-2.21.2.tar.gz 155067 BLAKE2B e1d5ed9ad538c934d176d54c64030312f430746e3450d383c9bce7156bb953cefeb1976b81825e8dd108ccd5c5c4b5f0af2c6986a838b9b8c206132ed5b738a1 SHA512 6e13de792660c3dcb01f4857df08c12e099a3c6ce411886f0d63d66aff126980f283428dd1de322f0f1d5fc4dcde8d23b1490bedf6e580340542895d315bd39a
+DIST pyproject_fmt-2.21.2.tar.gz.provenance 9899 BLAKE2B dd64f16733cdceab98a70dd4680d3ef603976ba1d2a7e088c2906cd0ec05f3081586dd4d09a56c772106ff3dd8d3d81ffda497e34bd205aec0eec5ec5f0b108b SHA512 2585c2ab36baa9a1fce11e11d1468c990a736c543ce4de6c7476dd7df6f754b107795c238762110555eec284aefaa53e6eddc5733fce5b5ee701344baae5d086
+DIST tombi-0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b.gh.tar.gz 10564681 BLAKE2B 1cc4e307d89ae978c8022aed63ad7a7c08e71f810e42743589a6bf44499051250102ca3a60aa2cea65292dfd187240da96f6fb963511b6d4c06559c20bbc67a3 SHA512 e398e14c9b092f2378dfa848c697ea5cb0af705bcb801f288d2ca98b8c0d4aa3abf7a71f2f5a10a4a6a77e1e8d1f7089a0359b2a3ec9b226a19bbb40f0aa0a14
DIST tombi-afbc4d39033e872c0739d43b66cb4b5c278ba11c.gh.tar.gz 10400276 BLAKE2B f697615f6538f0b47da592dc217342d915036223ecf0b97e05f6dcef15e8788e4314214dd7b624c1d6b7715df15ef5e6c480a0a9113f2016c58ab2744ec03f32 SHA512 87cfe1cf661c974dfb74382a178eb5d060cadc90eb62dbe8fe6671e3e29ff6cc77f4205be7a7ac0b15ad73be1529c2203a07e9fb383f81c72e07342705769d23
DIST tombi-d5056f9743d7e3f194158e125b90d7294aa59ad7.gh.tar.gz 10475854 BLAKE2B 6a629d533e576930e8e988662e3d350137d32ce9b517578f4ee5f20437b75d31300568adf4a4fae2e9fc7a033af1031d4fbcaafa51656a3af2b8a7e03365495e SHA512 74aa91819f15420207850951d0d6b41d61dadf3bdb38406299ae1126bb9ae597a7eb9b69a4485165bf465eb10384b67c73b0e231ce22e1910bc2db448c4eb626
DIST toml-fmt-pyproject-fmt-2.20.0-crates.tar.xz 18775804 BLAKE2B 2b977dce1adc8a43f0a6932dbb821a17a0885f570fbbb0cec6e5bf3ea8177baa6c9c6725a20e3326eeab337f7c521817f41b42225b18029baaa8d9eb2f31706c SHA512 495f714fcded00a9ad8da1deed04ed871c1ddca977c9ba0d28fc2a69a4ed693e0f2d2c0fb976417f98e2a52420d59543fbf7a0cc50599588b725f9f56c6285ef
DIST toml-fmt-pyproject-fmt-2.21.1-crates.tar.xz 18661404 BLAKE2B cb19d8ebbb7d4fb43494a89a910bc844862bbbc6f677dff27fceca27a74cc573d42f009cf2e0d979f286b7efe80bb72e88072b20da3afdc98b023b6740ccdba6 SHA512 1699771da1ee01a593d963b8d945038c8d2abdadaf40203a56504ec6a9dfbca896b1aa77a63c98ed77bed779fe3dfe365fab219eced7c3b7b222876be0a68170
+DIST toml-fmt-pyproject-fmt-2.21.2-crates.tar.xz 18776904 BLAKE2B ae748ae98a2769a78b34a2051e3237c40bc6714d88c58a22aec5af85caa86e4690e9749ddd1f87d2ebe0908a1a3f24a01a48e4abcf107fcdbd5d8322a0738c6a SHA512 474d707babc9a3f98a933ae645ffb951062491158c6863ff9dea7fee065b19f440501e092fbc28e62e4e67dce435689096a27b96c6acde3b8128b76b5890ca3e
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.21.2.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.21.2.ebuild
new file mode 100644
index 000000000000..dbcb3112fe92
--- /dev/null
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.21.2.ebuild
@@ -0,0 +1,102 @@
+# Copyright 2022-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/tox-dev/toml-fmt
+PYTHON_COMPAT=( python3_{10..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [tombi-accessor]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-accessor'
+ [tombi-ast-editor]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-ast-editor'
+ [tombi-ast]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-ast'
+ [tombi-cache]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-cache'
+ [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-comment-directive-serde'
+ [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-comment-directive-store'
+ [tombi-comment-directive]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-comment-directive'
+ [tombi-config]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-config'
+ [tombi-date-time]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-date-time'
+ [tombi-diagnostic]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-diagnostic'
+ [tombi-document-tree]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-document-tree'
+ [tombi-document]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-document'
+ [tombi-formatter]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-formatter'
+ [tombi-future]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-future'
+ [tombi-hashmap]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-hashmap'
+ [tombi-json-lexer]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-json-lexer'
+ [tombi-json-syntax]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-json-syntax'
+ [tombi-json-value]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-json-value'
+ [tombi-json]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-json'
+ [tombi-lexer]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-lexer'
+ [tombi-parser]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-parser'
+ [tombi-regex]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-regex'
+ [tombi-rg-tree]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-rg-tree'
+ [tombi-schema-store]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-schema-store'
+ [tombi-severity-level]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-severity-level'
+ [tombi-syntax]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-syntax'
+ [tombi-text]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-text'
+ [tombi-toml-text]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-toml-text'
+ [tombi-toml-version]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-toml-version'
+ [tombi-uri]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-uri'
+ [tombi-validator]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-validator'
+ [tombi-version-sort]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-version-sort'
+ [tombi-x-keyword]='https://github.com/tombi-toml/tombi;0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b;tombi-%commit%/crates/tombi-x-keyword'
+)
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Format your pyproject.toml file"
+HOMEPAGE="
+ https://github.com/tox-dev/toml-fmt/
+ https://pypi.org/project/pyproject-fmt/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+ https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
+ Unicode-3.0 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/toml-fmt-common[${PYTHON_USEDEP}]
+"
+# tox is called as a subprocess, to get targets from tox.ini
+BDEPEND="
+ test? (
+ dev-python/tox
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i -e '/strip/d' pyproject.toml || die
+}
+
+python_test_all() {
+ # default features cause linking errors because they make pyo3
+ # wrongly assume it's compiling a Python extension
+ # https://github.com/tox-dev/toml-fmt/issues/23
+ cargo_src_test --no-default-features
+}
diff --git a/dev-python/pyside/metadata.xml b/dev-python/pyside/metadata.xml
index 7356ab7a25e2..a8f7c5537d4e 100644
--- a/dev-python/pyside/metadata.xml
+++ b/dev-python/pyside/metadata.xml
@@ -18,6 +18,7 @@
<flag name="core">Build QtCore module, if disable then only shiboken will be built</flag>
<flag name="designer">Build QtDesigner and QtUiTools modules</flag>
<flag name="gles2-only">Build QtGui "QOpenGL*" classes</flag>
+ <flag name="graphs">Build QtGraphs module</flag>
<flag name="gui">Build QtGui module</flag>
<flag name="help">Build QtHelp module</flag>
<flag name="httpserver">Build QtHttpServer module</flag>
diff --git a/dev-python/pyside/pyside-6.11.0.ebuild b/dev-python/pyside/pyside-6.11.0.ebuild
index 271003a58b37..dec23b477c04 100644
--- a/dev-python/pyside/pyside-6.11.0.ebuild
+++ b/dev-python/pyside/pyside-6.11.0.ebuild
@@ -51,6 +51,7 @@ declare -A QT_MODULES=(
["+core"]="Core"
["+dbus"]="DBus"
["designer"]="Designer"
+ ["graphs"]="Graphs" # plus widgets
["+gui"]="Gui"
["help"]="Help"
["httpserver"]="HttpServer"
@@ -89,14 +90,14 @@ declare -A QT_MODULES=(
# following one-liner from within "${S}":
# $ grep -E '(set|list).*_deps' sources/pyside6/PySide6/Qt*/CMakeLists.txt
declare -A QT_REQUIREMENTS=(
- # opengl not unconditionally required but is needed to get the correct build order
- ["3d"]="gui network opengl"
+ ["3d"]="gui network"
["bluetooth"]="core"
["charts"]="core gui widgets"
["concurrent"]="core"
["dbus"]="core"
["designer"]="widgets"
["gles2-only"]="gui"
+ ["graphs"]="core network gui qml quick quick3d"
["gui"]="core"
["help"]="widgets"
["httpserver"]="core concurrent network websockets"
@@ -110,8 +111,7 @@ declare -A QT_REQUIREMENTS=(
["positioning"]="core"
["printsupport"]="widgets"
["qml"]="network"
- # opengl not unconditionally required but is needed to get the correct build order
- ["quick"]="gui network qml opengl"
+ ["quick"]="gui network qml"
["quick3d"]="gui network qml quick"
["remoteobjects"]="core network"
["scxml"]="core"
@@ -125,13 +125,18 @@ declare -A QT_REQUIREMENTS=(
["testlib"]="widgets"
["uitools"]="widgets"
["webchannel"]="core"
- # quick not unconditionally required but is needed to get the correct build order
- ["webengine"]="core gui network printsupport quick webchannel"
+ ["webengine"]="core gui network printsupport webchannel"
["websockets"]="network"
["webview"]="gui quick webengine"
["widgets"]="gui"
["xml"]="core"
)
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep 'check_qt_opengl' sources/pyside6/PySide6/Qt*/CMakeLists.txt
+declare -a CONDITIONAL_OPENGL=(
+ 3d graphs quick
+)
IUSE="${!QT_MODULES[*]} debug doc gles2-only numpy test tools"
RESTRICT="!test? ( test )"
@@ -149,11 +154,13 @@ done
# Minimal supported version of Qt.
QT_PV="$(ver_cut 1-3)*:6"
+# USE="tools" is heavily automagic based on what other qt tools are installed at build time.
+
# WebEngine needs sound support, so enable either pulseaudio or alsa
RDEPEND="
dev-libs/libxml2:=
dev-libs/libxslt
- =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
+ =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl=,sql?,widgets?,xml?]
$(llvm_gen_dep '
llvm-core/clang:${LLVM_SLOT}
')
@@ -161,6 +168,7 @@ RDEPEND="
bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
charts? ( =dev-qt/qtcharts-${QT_PV} )
designer? ( =dev-qt/qttools-${QT_PV}[designer,widgets,gles2-only=] )
+ graphs? ( =dev-qt/qtgraphs-${QT_PV}[quick3d] )
gui? (
=dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
x11-libs/libxkbcommon
@@ -313,6 +321,8 @@ python_prepare_all() {
linux
[QtCore::qrangemodel_test]
linux
+ [QtGraphs::qgraphs_numpy_test]
+ linux
EOF
fi
}
@@ -346,6 +356,10 @@ python_configure_all() {
die "${depflag} is required but not enabled"
fi
done
+ if use opengl && [[ ${CONDITIONAL_OPENGL[@]} =~ ${flag//+} ]]; then
+ # match key in QT_MODULES
+ enable_qt_mod "+opengl"
+ fi
fi
if [[ "${ENABLED_QT_MODULES[*]}" != *${modules}* ]]; then
# modules is whitespace separated. We expand implicitly.
@@ -366,6 +380,7 @@ python_configure_all() {
use opengl && ENABLED_QT_MODULES+=( OpenGLWidgets )
use pdfium && ENABLED_QT_MODULES+=( PdfWidgets )
use quick && ENABLED_QT_MODULES+=( QuickWidgets )
+ use graphs && ENABLED_QT_MODULES+=( GraphsWidgets ) # requires QuickWidgets
use svg && ENABLED_QT_MODULES+=( SvgWidgets )
use webengine && ENABLED_QT_MODULES+=( WebEngineWidgets )
fi
@@ -385,7 +400,7 @@ python_configure_all() {
--openssl="${ESYSROOT}/usr/bin/openssl"
--qt="$(ver_cut 1-3)"
--qtpaths="$(qt6_get_bindir)/qtpaths"
- --verbose-build
+ --log-level=verbose
--parallel="$(makeopts_jobs)"
"$(usex debug "--debug" "--relwithdebinfo")"
"--$(usex doc "build" "skip")-docs"
diff --git a/dev-python/pyside/pyside-6.9999.ebuild b/dev-python/pyside/pyside-6.9999.ebuild
index b887f9bf9212..ea4a8d2f0c59 100644
--- a/dev-python/pyside/pyside-6.9999.ebuild
+++ b/dev-python/pyside/pyside-6.9999.ebuild
@@ -49,6 +49,7 @@ declare -A QT_MODULES=(
["+core"]="Core"
["+dbus"]="DBus"
["designer"]="Designer"
+ ["graphs"]="Graphs" # plus widgets
["+gui"]="Gui"
["help"]="Help"
["httpserver"]="HttpServer"
@@ -87,14 +88,14 @@ declare -A QT_MODULES=(
# following one-liner from within "${S}":
# $ grep -E '(set|list).*_deps' sources/pyside6/PySide6/Qt*/CMakeLists.txt
declare -A QT_REQUIREMENTS=(
- # opengl not unconditionally required but is needed to get the correct build order
- ["3d"]="gui network opengl"
+ ["3d"]="gui network"
["bluetooth"]="core"
["charts"]="core gui widgets"
["concurrent"]="core"
["dbus"]="core"
["designer"]="widgets"
["gles2-only"]="gui"
+ ["graphs"]="core network gui qml quick quick3d"
["gui"]="core"
["help"]="widgets"
["httpserver"]="core concurrent network websockets"
@@ -108,8 +109,7 @@ declare -A QT_REQUIREMENTS=(
["positioning"]="core"
["printsupport"]="widgets"
["qml"]="network"
- # opengl not unconditionally required but is needed to get the correct build order
- ["quick"]="gui network qml opengl"
+ ["quick"]="gui network qml"
["quick3d"]="gui network qml quick"
["remoteobjects"]="core network"
["scxml"]="core"
@@ -123,13 +123,18 @@ declare -A QT_REQUIREMENTS=(
["testlib"]="widgets"
["uitools"]="widgets"
["webchannel"]="core"
- # quick not unconditionally required but is needed to get the correct build order
- ["webengine"]="core gui network printsupport quick webchannel"
+ ["webengine"]="core gui network printsupport webchannel"
["websockets"]="network"
["webview"]="gui quick webengine"
["widgets"]="gui"
["xml"]="core"
)
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep 'check_qt_opengl' sources/pyside6/PySide6/Qt*/CMakeLists.txt
+declare -a CONDITIONAL_OPENGL=(
+ 3d graphs quick
+)
IUSE="${!QT_MODULES[*]} debug doc gles2-only numpy test tools"
RESTRICT="!test? ( test )"
@@ -147,11 +152,13 @@ done
# Minimal supported version of Qt.
QT_PV="$(ver_cut 1-3)*:6"
+# USE="tools" is heavily automagic based on what other qt tools are installed at build time.
+
# WebEngine needs sound support, so enable either pulseaudio or alsa
RDEPEND="
dev-libs/libxml2:=
dev-libs/libxslt
- =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
+ =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl=,sql?,widgets?,xml?]
$(llvm_gen_dep '
llvm-core/clang:${LLVM_SLOT}
')
@@ -159,6 +166,7 @@ RDEPEND="
bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
charts? ( =dev-qt/qtcharts-${QT_PV} )
designer? ( =dev-qt/qttools-${QT_PV}[designer,widgets,gles2-only=] )
+ graphs? ( =dev-qt/qtgraphs-${QT_PV}[quick3d] )
gui? (
=dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
x11-libs/libxkbcommon
@@ -309,6 +317,8 @@ python_prepare_all() {
linux
[QtCore::qrangemodel_test]
linux
+ [QtGraphs::qgraphs_numpy_test]
+ linux
EOF
fi
}
@@ -342,6 +352,10 @@ python_configure_all() {
die "${depflag} is required but not enabled"
fi
done
+ if use opengl && [[ ${CONDITIONAL_OPENGL[@]} =~ ${flag//+} ]]; then
+ # match key in QT_MODULES
+ enable_qt_mod "+opengl"
+ fi
fi
if [[ "${ENABLED_QT_MODULES[*]}" != *${modules}* ]]; then
# modules is whitespace separated. We expand implicitly.
@@ -362,6 +376,7 @@ python_configure_all() {
use opengl && ENABLED_QT_MODULES+=( OpenGLWidgets )
use pdfium && ENABLED_QT_MODULES+=( PdfWidgets )
use quick && ENABLED_QT_MODULES+=( QuickWidgets )
+ use graphs && ENABLED_QT_MODULES+=( GraphsWidgets ) # requires QuickWidgets
use svg && ENABLED_QT_MODULES+=( SvgWidgets )
use webengine && ENABLED_QT_MODULES+=( WebEngineWidgets )
fi
@@ -381,7 +396,7 @@ python_configure_all() {
--openssl="${ESYSROOT}/usr/bin/openssl"
--qt="$(ver_cut 1-3)"
--qtpaths="$(qt6_get_bindir)/qtpaths"
- --verbose-build
+ --log-level=verbose
--parallel="$(makeopts_jobs)"
"$(usex debug "--debug" "--relwithdebinfo")"
"--$(usex doc "build" "skip")-docs"
diff --git a/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
index 97e11181b3d4..77bdc530baf1 100644
--- a/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
+++ b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 arm64 x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="all-plugins"
PLUGIN_DEP="
diff --git a/dev-python/python-subunit/Manifest b/dev-python/python-subunit/Manifest
index 736f0d9669f6..da721f275585 100644
--- a/dev-python/python-subunit/Manifest
+++ b/dev-python/python-subunit/Manifest
@@ -1,2 +1,3 @@
DIST subunit-1.4.4.gh.tar.gz 105357 BLAKE2B 5937c62357d9cb70e25242aa7678d89f79fed3d8d28fb5306bc21e28d643665e563078a84a9dd64b9192809e542d69218154227c8e5d281c861085d3175c73c4 SHA512 a666e45951afab70ea85cf9614d5e60c8884c0e2d7987e690bf7acedec5c544c412407b02134a125b4dca8772c0b1ce17fdbd9546d97ef06592119ec49b2a21f
DIST subunit-1.4.5.gh.tar.gz 105136 BLAKE2B 59ed96bbc07e0cb571aa18720012d43e260a442e7d650eadc756510c7bfbeeff756371345801c8939a2a63740f11f86d0cb1f6c3b6045142fe63e547566e9d37 SHA512 2726b175d8386302ac3f736a69363dec039b4163d423aa4a3a5480b115aa518cc3bf5efee8c0176cf7d1cd2453f8e6531253709c9e7eda7fc0f48b3d3a6c7106
+DIST subunit-1.4.6.gh.tar.gz 120837 BLAKE2B 03c3d6efa01ec285543fc38f241e517d3b10096d39078373be108c3a01c038d85f20df44650fcd1374ebd90bd9e4eae509d86d517a952c05c1ab256f286a3090 SHA512 23c96b46908c24fbf455ea67c87b1374b157190b76b1fe3875d23364b17922e30dd29e64e9c779d9440630d28e749de7c40d45bcd16b77304aa6df6f54c0a05d
diff --git a/dev-python/python-subunit/python-subunit-1.4.6.ebuild b/dev-python/python-subunit/python-subunit-1.4.6.ebuild
new file mode 100644
index 000000000000..fb737fdc9c92
--- /dev/null
+++ b/dev-python/python-subunit/python-subunit-1.4.6.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 multilib-minimal autotools
+
+MY_P=subunit-${PV}
+DESCRIPTION="A streaming protocol for test results"
+HOMEPAGE="
+ https://launchpad.net/subunit/
+ https://github.com/testing-cabal/subunit/
+ https://pypi.org/project/python-subunit/
+"
+SRC_URI="
+ https://github.com/testing-cabal/subunit/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="Apache-2.0 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="static-libs test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/testtools-0.9.34[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${RDEPEND}
+ >=dev-libs/check-0.9.11[${MULTILIB_USEDEP}]
+ >=dev-util/cppunit-1.13.2[${MULTILIB_USEDEP}]
+ >=virtual/pkgconfig-0-r1
+ test? (
+ dev-python/fixtures[${PYTHON_USEDEP}]
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/testscenarios[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/subunit-1.4.0-werror.patch"
+)
+
+src_prepare() {
+ mv all_tests.py python/ || die
+
+ distutils-r1_src_prepare
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ econf \
+ --enable-shared \
+ $(use_enable static-libs static)
+}
+
+multilib_src_compile() {
+ default
+ multilib_is_native_abi && distutils-r1_src_compile
+}
+
+python_test() {
+ cd python || die
+ "${EPYTHON}" -m testtools.run -v all_tests.test_suite ||
+ die "Testing failed with ${EPYTHON}"
+}
+
+multilib_src_test() {
+ multilib_is_native_abi && distutils-r1_src_test
+}
+
+multilib_src_install() {
+ local targets=(
+ install-include_subunitHEADERS
+ install-pcdataDATA
+ install-libLTLIBRARIES
+ )
+ emake DESTDIR="${D}" "${targets[@]}"
+
+ multilib_is_native_abi && distutils-r1_src_install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 376dc5fcd360..048e88db6d9b 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -18,6 +18,8 @@ DIST Python-3.14.3.tar.xz 23778568 BLAKE2B 9312d28b8bd44c642eeb2d608827984610154
DIST Python-3.14.3.tar.xz.sigstore 5215 BLAKE2B bb6b0aae97c9b7312b7a6f6bf3fc200a95432ae28d49e6b8bbf2ff97d6c6c65f3a60d3adad96eee3bf5f18163dda0a46768f22c6cf18b3be83fda536d73ac048 SHA512 0eda4ba0e9920ef927882507dc41e5bb35758ada6b5d54d312715ffd258a281edd776695109577f8ec54c915b5d4dcf19c2ba79efc2cb3dc3b3d85c82acf49f0
DIST Python-3.14.4.tar.xz 23855332 BLAKE2B cb96ace0b3a0316ffc8f2fca1e9b67dc8df7d9fe81c1daff1d8883634683703a0e458d6eea61f01b3641bb76997b9e39c939a0c8c28ce5edd7b166e41b2cc1f8 SHA512 89a7f8b8a31f48d150badb4751df137d47d9014c9c422649a1a55aef5618aa7f0259dd18c151e6804fa8312c6a21544332a9f630ee81150dc00505637e62bb8c
DIST Python-3.14.4.tar.xz.sigstore 5219 BLAKE2B 5d4e076139082e525c2758a64ca2cc4c05c69e601ffc9c402d5a041f8b867ee5f37264ded3bfa014cc979ccd3c573c208d2321ac5a3be93b906116bd0d8a5c37 SHA512 ec41d0d25fa3cd87cf62adcbe6b9e575cecc49f947a64ca997aa792ed22d93ef1bbc4dc2848e365dfb43b6c447dcf47417f9c68a5881d0ede8750fece9f97a87
+DIST Python-3.14.5rc1.tar.xz 23894408 BLAKE2B 7b894cc9fbc6df9255ad04aed506cc7751a8f59295a1d491e150731b34b2197802f3d12cc51c6412247c5a23c051f3f90ce69b969e0bc0a74cffb11e62de58e9 SHA512 67ede84d59046e3b413643449a7eced8cefcd908238b8a34d2ac38507d967201695c62c22464f1bfd51669daf306995262279c7bbfc5a25998ed867a3d743b38
+DIST Python-3.14.5rc1.tar.xz.sigstore 5363 BLAKE2B ad8ed1f9076ce67c33b290cdb6e24846de1642ce2deece0ec42d8adca67e7b403a53f7d64064c8c9d6d7ce05f8f1a62f5069a2cc85721160902b98cfebd254f9 SHA512 26a9129b8df1d5b83f6d81bdc49c78a5f45542ff9e56a3ecfc5b9480b5a0e0ee44b2fd3d1dd7775458c9076b4b27d891f149f3b24304f2456b5a0c5615e6ea12
DIST python-gentoo-patches-3.11.11.tar.xz 10604 BLAKE2B 6be4c66b0458f7a7085aef976cff3dcb4d114ac0b64fb27327a5693e8d41a77f7eeed718b9c5a1b1961278235ee4cd43497aa3dc27e6e6bed65804b95f667a15 SHA512 ab8113a94949cead34d976179f80c3e0a6686bf2476079a74f97b4d08c24a237500dc7ee09dc3b0ec98d2fbcb138397c73d7e2252e617a957a13999e59115158
DIST python-gentoo-patches-3.11.14.tar.xz 15968 BLAKE2B 5bd091046feee03afd59a87b72c44b3a0874b23f89eb98020cc057f5651d31857721eb095bd056dae8bef85220dbe5aff2900cf8411dceb14e8775a4a2f09a93 SHA512 760df16f98c1a91164b43c13eb36073c74169321569791125fdad8682419b818736fe02e40c1aa1232a11081b1007c923a8fd2afd002eb4fdff0800da92d03e2
DIST python-gentoo-patches-3.11.15.tar.xz 15988 BLAKE2B 16e98450749ebd1c617acbb9aba380fff50a8f7dba19f3f99edd3bd387c1a5d61d78cbf493cf003dfe03d2be59374ad89077b39fe203059bbbb881ae02a72ea5 SHA512 b705c72a585e315eb3ba69ffbf2a80836f0fc894fa8ae2c22768e6aa8ac2a23aada5def3d2635193793f58e3da81f0f10281c47bd8e129e1fd2c9167d292265b
@@ -34,3 +36,4 @@ DIST python-gentoo-patches-3.14.2.tar.xz 8008 BLAKE2B aa454e26901a36a34dedb1deab
DIST python-gentoo-patches-3.14.3.tar.xz 8012 BLAKE2B a8106360a6c77e0e19ecdf55e924b85cfd6dae65d54b7c306a793b08da5214993631b92b1cff385c2d995799055a4e4ca3a461d4e1e049ada38e97b4eae54a31 SHA512 1747a99cdc2ec29b985bc75f53f9f4cbd6f9377bfb06f6576b2970bd30ae8461a39ba870021866cf0f79320e2775047b2f70d53a06c5687ebac23b3ae68c157a
DIST python-gentoo-patches-3.14.4.tar.xz 8012 BLAKE2B 07928ae9e2c057b75edabe287e0201a9aa35ddcfbb1b35c3729c25ccea707c343214ed82e0ad5df65a0994c0e263f7f50e8dd95ebdaae37210c14e1cc1f2d492 SHA512 8c8cf86842f42fa8634c0faee2c1e6dd51c621ae42d48300b0ab185d90653ad58e30c967a6b455e237303aa52d139a2980b948f8613725884d6aa0df016e07d8
DIST python-gentoo-patches-3.14.4_p1.tar.xz 9016 BLAKE2B 39bee4db44684a087b3bf6793a22d1655c2a90fabb56ea0421ded013cf53e66ac83cb3016d469f06c5d7cab7b8d22138bc4c1e01843a174299e1af0f88e5818c SHA512 a299212bd3d4a70c83a1efe1ec155f7b13829aa10aecf638de0889cf7b8ebe5227d3f14a1d51dac18fa4ae19b1060639490e61f2c1f52deadd40065c07b317f2
+DIST python-gentoo-patches-3.14.5rc1.tar.xz 8436 BLAKE2B 527156383cba6288df15a0bb0718960ba2a30428a2367d014a11b22e598c63d2c912480e37b064233e05590d1112b6c3c4ac1fa9db392ac11a98b8ec54847d30 SHA512 8adb64ca0bc1c653fb04a71bd6b40415ae3ca4761edf578199c5cc1d1da392b239ca07af395114970467c8233027c5eefb4b869bcab4379d5a7310a286aaec53
diff --git a/dev-python/python-tests/python-tests-0.3.14.5_rc1.ebuild b/dev-python/python-tests/python-tests-0.3.14.5_rc1.ebuild
new file mode 100644
index 000000000000..c36baf7f1122
--- /dev/null
+++ b/dev-python/python-tests/python-tests-0.3.14.5_rc1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+REAL_PV=${PV#0.}
+MY_PV=${REAL_PV/_/}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 2-3)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.14.5_rc1.ebuild b/dev-python/python-tests/python-tests-3.14.5_rc1.ebuild
new file mode 100644
index 000000000000..47d65c6347a8
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.14.5_rc1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_/}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/pythonfinder/Manifest b/dev-python/pythonfinder/Manifest
new file mode 100644
index 000000000000..f3d65dee516d
--- /dev/null
+++ b/dev-python/pythonfinder/Manifest
@@ -0,0 +1 @@
+DIST pythonfinder-3.0.3.tar.gz 725812 BLAKE2B 604169a777f9971d63560c2354d4ca3da254442b21df029d21a6562b632b61b47c3a9badeb09e84f6b556765f4897b36d4115da4ab07ee502e598c0d4638d7b8 SHA512 62fe99d4a03b0727f5875eff5d0526ed4565279f8f04c42fe75b805067168a5de2557b29d3398a341c1c8a41d31310cb67b2333969b33dfa92cb5c4114b45df7
diff --git a/dev-python/pythonfinder/metadata.xml b/dev-python/pythonfinder/metadata.xml
new file mode 100644
index 000000000000..08a1a05eefad
--- /dev/null
+++ b/dev-python/pythonfinder/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>oz.tiram@gmail.com</email>
+ <name>Oz Tiram</name>
+ </maintainer>
+
+ <origin>gentoo-guru-overlay</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pythonfinder/pythonfinder-3.0.3.ebuild b/dev-python/pythonfinder/pythonfinder-3.0.3.ebuild
new file mode 100644
index 000000000000..45729667ea28
--- /dev/null
+++ b/dev-python/pythonfinder/pythonfinder-3.0.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="PythonFinder: Cross Platform Search Tool for Finding Pythons"
+HOMEPAGE="
+ https://github.com/sarugaku/pythonfinder/
+ https://pypi.org/project/pythonfinder/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+BDEPEND="
+ test? (
+ dev-python/click[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ epytest -o addopts=
+}
diff --git a/dev-python/regress/regress-2025.10.1.ebuild b/dev-python/regress/regress-2025.10.1.ebuild
index dd834a4bfa3a..54c3afb0c401 100644
--- a/dev-python/regress/regress-2025.10.1.ebuild
+++ b/dev-python/regress/regress-2025.10.1.ebuild
@@ -55,7 +55,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/sigstore-models/sigstore-models-0.0.6.ebuild b/dev-python/sigstore-models/sigstore-models-0.0.6.ebuild
index 72d80b5a3b1d..1d830aefca14 100644
--- a/dev-python/sigstore-models/sigstore-models-0.0.6.ebuild
+++ b/dev-python/sigstore-models/sigstore-models-0.0.6.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~ppc ~ppc64"
+KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
RDEPEND="
>=dev-python/pydantic-2.11.7[${PYTHON_USEDEP}]
diff --git a/dev-python/sigstore-rekor-types/sigstore-rekor-types-0.0.18.ebuild b/dev-python/sigstore-rekor-types/sigstore-rekor-types-0.0.18.ebuild
index 061489cb31c0..6085256b1b0b 100644
--- a/dev-python/sigstore-rekor-types/sigstore-rekor-types-0.0.18.ebuild
+++ b/dev-python/sigstore-rekor-types/sigstore-rekor-types-0.0.18.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~ppc ~ppc64"
+KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
RDEPEND="
>=dev-python/email-validator-2[${PYTHON_USEDEP}]
diff --git a/dev-python/sigstore/sigstore-4.2.0.ebuild b/dev-python/sigstore/sigstore-4.2.0.ebuild
index d7915fe5c651..7fd4b71ff8c6 100644
--- a/dev-python/sigstore/sigstore-4.2.0.ebuild
+++ b/dev-python/sigstore/sigstore-4.2.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~ppc ~ppc64"
+KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
RDEPEND="
>=dev-python/cryptography-42[${PYTHON_USEDEP}]
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index e55ad5c25b43..c08d5ae3c4ad 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -1,4 +1,2 @@
-DIST sqlglot-29.0.1.tar.gz 5760786 BLAKE2B e4824db4673118db7c3aefb1bebe3ea7677726844fb4bfc23599981184ac47404270cb22ce141be86c502129c4fa3d3f48d136e7044bd7094ed71761b1bc8c7c SHA512 819aa9f2816a4f6f262242f3e15656f10ce2f30fe0bec387c11994f2b77d51f9dd14552b2a59c8466800b14a725f42443aba231e62f9cf6bb704eaacfb70e423
-DIST sqlglot-30.4.2.tar.gz 5827240 BLAKE2B 676200e6f39d46feee650bdd73ce132ebf6344f5c00ec76b6e0d1612ff6cf04c80d75dd42d82fbbcd9e244b3229612c9e0e95f7f40a510ec73a0e32f8fc633ae SHA512 a3367c7382abf55eabbb2552af82e2d691f1090aaa3d9f685b942721c89f959525ae5e1770a428d7e109a55795a1912439200e501edcdf285e3cc78c266b46cb
-DIST sqlglot-30.4.3.tar.gz 5827662 BLAKE2B cc3dc2a48173b115205cdd4e31baff81068a7b28c92131834de51efabadd3ff2d806a355ce05dd4b0e7090c6a164e93816c4cafd573111e7e82db5b34177e7fb SHA512 6fb77735bdfeb5ec8042a3156f6b53237e25d468dd7beb9810d90e2c1f69f6ab501bebc8eb5cd0dba92aeb1e75e13934bea4307ff383b6ed510cc0dd72bf8df7
DIST sqlglot-30.6.0.tar.gz 5835307 BLAKE2B 1475d1c601a1de820fd7395b1c4da05e27edd09adfa74261c767dc941fe1685352f4991d99cf4e50b949fb453363ca76df6fbbb521ee642cd1935337b53022d8 SHA512 4d5f9495445248c81e85b6cc21108de07b35b53711b7c8643b9f6dfa8ce462a03c1247458cd1d114d8db5e9dcb81d8dd2bd3fca0a90c9a8a65ba4d6b63d15127
+DIST sqlglot-30.7.0.tar.gz 5860425 BLAKE2B 0d6812c1857b0927b6f2a7e22d21967de694a0face5b368ab494ed0148054dae289c4b8cb0728690f1776191e723ef128798784cd843b110391673fd6e8f65fa SHA512 8bb0e1739203f23483ebf1ff4a35ccf6c99b4ec49bab6f694c7648839f15867adaa058b66beb9393ad617fd74225f0e217a3bcf5c37ff811cec7d41550a2dfc5
diff --git a/dev-python/sqlglot/sqlglot-29.0.1.ebuild b/dev-python/sqlglot/sqlglot-29.0.1.ebuild
deleted file mode 100644
index b6e08ee97bd7..000000000000
--- a/dev-python/sqlglot/sqlglot-29.0.1.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 2023-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_{10..14} )
-
-inherit cargo distutils-r1 pypi optfeature
-
-DESCRIPTION="An easily customizable SQL parser and transpiler"
-HOMEPAGE="
- https://sqlglot.com/
- https://github.com/tobymao/sqlglot/
- https://pypi.org/project/sqlglot/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="+native-extensions"
-
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- native-extensions? (
- >=dev-python/mypy-1.0[${PYTHON_USEDEP}]
- dev-python/types-python-dateutil[${PYTHON_USEDEP}]
- )
- test? (
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_compile() {
- distutils-r1_python_compile
-
- if use native-extensions; then
- # sqlglot has PKG-INFO but sqlglotc doesn't
- local -x SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
- cd sqlglotc || die
- distutils-r1_python_compile
- cd - >/dev/null || die
- fi
-}
-
-python_test() {
- local EPYTEST_IGNORE=(
- # Tests require pyspark or duckdb which aren't in the tree.
- # Pandas would be a requirement normally, but it gets ignored by proxy.
- "tests/dataframe/integration/test_dataframe.py"
- "tests/dataframe/integration/test_grouped_data.py"
- "tests/dataframe/integration/test_session.py"
- "tests/test_executor.py"
- "tests/test_optimizer.py"
- )
-
- rm -rf sqlglot || die
- epytest
-}
-
-pkg_postinst() {
- optfeature "simplifying timedelta expressions" dev-python/python-dateutil
-}
diff --git a/dev-python/sqlglot/sqlglot-30.4.3.ebuild b/dev-python/sqlglot/sqlglot-30.4.3.ebuild
deleted file mode 100644
index 3216536fae1c..000000000000
--- a/dev-python/sqlglot/sqlglot-30.4.3.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2023-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_{10..14} )
-
-inherit cargo distutils-r1 pypi optfeature
-
-DESCRIPTION="An easily customizable SQL parser and transpiler"
-HOMEPAGE="
- https://sqlglot.com/
- https://github.com/tobymao/sqlglot/
- https://pypi.org/project/sqlglot/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-# Native extensions removed: it uses mypyc which is incredibly slow
-# and then the extension crashes anyway. Upstream uses their own mypy
-# fork which might help but that's just insane.
-
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/pytz[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_IGNORE=(
- # Tests require pyspark or duckdb which aren't in the tree.
- # Pandas would be a requirement normally, but it gets ignored by proxy.
- "tests/dataframe/integration/test_dataframe.py"
- "tests/dataframe/integration/test_grouped_data.py"
- "tests/dataframe/integration/test_session.py"
- "tests/test_executor.py"
- "tests/test_optimizer.py"
- )
-
- rm -rf sqlglot || die
- epytest
-}
-
-pkg_postinst() {
- optfeature "simplifying timedelta expressions" dev-python/python-dateutil
-}
diff --git a/dev-python/sqlglot/sqlglot-30.4.2.ebuild b/dev-python/sqlglot/sqlglot-30.7.0.ebuild
index 3216536fae1c..3216536fae1c 100644
--- a/dev-python/sqlglot/sqlglot-30.4.2.ebuild
+++ b/dev-python/sqlglot/sqlglot-30.7.0.ebuild
diff --git a/dev-python/tibs/Manifest b/dev-python/tibs/Manifest
index cc8152adccd7..76492e3878a9 100644
--- a/dev-python/tibs/Manifest
+++ b/dev-python/tibs/Manifest
@@ -4,6 +4,7 @@ DIST bitflags-2.11.0.crate 48906 BLAKE2B 35764719b3070c5f9b51d35297803306ce01823
DIST bitvec-1.0.1.crate 224375 BLAKE2B 9f109db6888cf73d69646911cc1c9e90535e54a7afc436d878bbc63ca20a30cc6e5b5b5cd42aa78c38df5a4012454769c126f9072f39d58bdd09e54887ba6d9f SHA512 83d643c5aca020ebbe9094b5aaba6a796e7c3c509228a4348444e57a06bc3a5dd042eed57a2254d91661e73bdab2bc0d1bd02be376906acc6b6d75b5354a8d8e
DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
DIST bytemuck-1.25.0.crate 53466 BLAKE2B 830e02a871cbffdce2852a474e330dbb2ac8db55e916fe77a0ad520e7ed0bd45b8c8855e75e37c20bc30cc83fb3e0694914433e0fbef11ca80e07d89a82b2b9f SHA512 9dd563be656ec3fab00017b5080022f4d0cce4b10e314129609d19c5b7595da2d5a80f9c14170bb09ed4cf712aabbe40f17f9efe5f19acff80f27065c98de5eb
+DIST cc-1.2.60.crate 97051 BLAKE2B 292350c3fe7dc3e023fe4f7cd07b3a5a7233996963b42391243948f834a17cf69781bab32cf46d62722c45437f50123450811dce8aa0e96ee63f35480cc15d90 SHA512 d67fd7400bd1d20f26f7a6743ac02ad09dba0b8002172b87907f4a7ae2487ee41feb2f24fe375ca91a3ac4fde1dc8b48b6703b74297c9eb42bd1e91ac8fe4e80
DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
DIST chacha20-0.10.0.crate 38763 BLAKE2B 84d3d12379495b724b33accdbafe0209d0ddfeec74115b59228fb03e02089f1531f1396783a408b26cfb90372670c809bee8ab056cc847102cfc92ea065656aa SHA512 97e50d8e16118070ec75c086bae3695513b63c2ad3c5d43e3fb57892f21c9634977bc506c0c094aeb61bc8864518cee3eabf6b81504128ab0a876b2f6860b43a
DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2
@@ -12,10 +13,12 @@ DIST crunchy-0.2.4.crate 3887 BLAKE2B f957597c82795eb10d43a6a98f7575e19b9484dcdf
DIST crypto-common-0.1.7.crate 9619 BLAKE2B b9a31ed6f3f06e0709e7c5a86a146018c9ef67e366f27c1d4fe07461d97810951eec60e92ec1531e365bfb9ab1b4cfbdd86b6cefd8b06ef2aa170c38f3c9cae0 SHA512 dcf3a6fc81f2b6528696dc762427fb198faa9b5effe1ee9fbda795da08b0560cfd6c286b55f1360864e95284bd9a52edabcf39fa9bcce71ff0621dbfef538c82
DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
+DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
DIST foldhash-0.1.5.crate 21901 BLAKE2B 22c3a266becac17995ac996f5c9caa8dea77e36786c50464e4e7750d8f3f13321a0a1abd3a9abcfd6ff441ddea257066b2dfb7fc6fcf7468f537dbd1b0db737d SHA512 3a634fdec410d87ffced8aa1bf8dacd9316a04c51424563d60b4dd611617041f09085edfd0ec96e6bb0e0db74a0e950b0616d1fb94a31667af35af1637604c22
DIST foldhash-0.2.0.crate 23329 BLAKE2B 49af83a79ca7954f05d8a52566d7d20cbe057c89c2c767ef76b4c8d83bf099196d053054c8fbaac74da7fd5eb0224fe43731102f2f0bcb18ccdbc0c8150774c3 SHA512 1495281089a8a1b7bbacf8004a5e8051bb00bf37718e9ddce9d43e4e198f529135f864b6850ee4422456b0d4731ae58647f0a1aaae0d67921c389f5d108fc163
DIST funty-2.0.0.crate 13160 BLAKE2B db6315d63fffe9f70698da0b1b0e4aea4b509242c60e6639f00303dad8d2ba60c6c1c04fe9289695b7aa2d7a0c90c31fba72656afa7ad111b77358772b14a9f5 SHA512 691e1c275b648110ef42c4adece8178cf037bad40d469780280eb2ebe07aa4b0406737c5ba02c9f9f63ee57a99fec27e5e51712e2113655f7522c8678f689155
DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST getrandom-0.3.4.crate 50932 BLAKE2B 34165a6994877aeaf3063affd48eb499512371a1fdc0d890feee598b5e22c14cb8347642a0e9374cd5d8a59a8281db839e45923769260312379321bef54c687d SHA512 43c44ec3ba0668f388519b2cefbee63f959f0e078730b3f7563742522e5f4b120472024b95fc94aeb90900a15d327c3573271bb26b2de4785e589a8bc1bc9da8
DIST getrandom-0.4.1.crate 53686 BLAKE2B 3b6dd1e30a5b9e771efa0a3d87da99c8c0da5f3be368859b1ba6f883c9a7ab4926c3713149cec3524766070d8fffd284ab5c382c29b74e0aeb54682d4643eaba SHA512 120649af83beaf0ae68e28e47838c11ab7def55f683c16fb4cade1f13bdb38316a1823e93f420ac9a5d928868d09f376b9b079dda2a639eb1c2f931c09ba43f4
DIST half-2.7.1.crate 61040 BLAKE2B bd78abf71b1b0ae219d2293f8edd5084fa630150016c95786d0af38a898d2775ff73ce848c4b2bbf02c2ea2dc8a610b2e045df78892d2b1de28981e8033625a7 SHA512 f47cc8bfb4c754a8585d4e8eca1a35039dc0879e87e59acb72e91bf2d33eca8c4f8dd17b3a56e8953bcba62cb08122120866e9d4b3ab9f008847d86a5f81716d
DIST hashbrown-0.15.5.crate 140908 BLAKE2B 6a360eaa2e174ddd1e9761bc19edc4b57b80f84c36bb5d64003c7206755d4175a05f39c001acaf000ec69ced9e28c3853bd64702e2927aa7c38527a53abf2201 SHA512 654682535882733b56dad632851fed93a17ad0b2d3e13e3390d7802450781501e275b0e0b39fa32a6eae092132858ed79b305238cd5771c08987c5d26af6d692
@@ -25,12 +28,15 @@ DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc
DIST id-arena-2.3.0.crate 12883 BLAKE2B 2a7f498c3ea5632af4a369d46f90106e642bccbb8e36ac7fe37be05c2125989ea2cf625db92a782408ecb5f68d3efbf3006413b5b748815ee42b9dcfb28d0ba2 SHA512 99652279014e63680d66bc8022ec3d2373d6e476646ee5551346fc9e62d1fd94b28c945bfc30df14c85d085aefc7fbb9051fe11012f63a9254bc11f03133f116
DIST indexmap-2.13.0.crate 102206 BLAKE2B 7f3d070b645741f5960647f64759840b1941c1e28f61ee04d44d7eba0d8f600949cf139bec5fddb1507e4d5a9e12fb709a16415aa014eaff8f5e87cce41a9394 SHA512 f5efe0010603a3f1da8955f5f97c9a39e4d2c5042c0829c057ad739687d990c100d1276022dec23e7cd70efecceca07ad735693bd8a1b21b507b8892110198ad
DIST itoa-1.0.17.crate 15905 BLAKE2B 105796a6438bfccbb4676cc0beefd89abb05dedf077794dae48dcebd63cc745bfa4664c0eaf7bacaf989ea9051c98703e7ce85683f5c8c234fd1639c391aa3fb SHA512 4f1b09fd0152a8c837c40045c46779c992b8b5a4737565b8ce3a92bf2fb884bc6609bc597c2b54c33855bd108311adf46471b5ed5ff7ce32549b8c72c8119c04
+DIST jobserver-0.1.34.crate 29013 BLAKE2B 4d89234147386d61e8402872e577c52c60fba41b21831acbc6934ec7668b22dd9b876cf78180f5a06b2b26b642a0d7e02c9a67dc36ae7d3aa3b95125dec3d7de SHA512 42fe03eaa4caac030c40b167c742aa104151a126505de9ff4c52ab97ac13cdd2b7219268bff414f1d09061f3f9e36be01bdd6255597b957e18589f9ef4a65549
DIST leb128fmt-0.1.0.crate 14138 BLAKE2B 6353a2520bb93e0a3cfaade09ffbd8cf981d2cf75579e865941f3fea0dc745c54472b369873b1ef4f26dd7f356860e563bc7ca6e7615d600b272c698a55e54eb SHA512 82fbc7f0786185453fbf11fb3ae58e71fce9780f81eb6a56d7b559e3a0c6825751dd8b64f1266aab73fe65f7483a206e42f31ee1a1b7b1801246c6dc9c2ea817
DIST libc-0.2.182.crate 814873 BLAKE2B a5fae27ee77495d8638297523d7428eda4a608109e7e1b67db1ba621f7700761f8131710a49bbd24bedf62f8df7ecdeaedb5def47201146a05b4288ee2f92515 SHA512 7923eeb0ee1db8b5b00a6a4352cf5fd3f877a2f727af5857ca49ceeab2dc7519137eb3a982f5a763ae61fbe422ba8f0fe83d92dcabcfa18c23fae619960f96db
DIST log-0.4.29.crate 51515 BLAKE2B 3f5dc889e895428f27ef107a63004c1b321793b865c29b20293adca81db4e25443e24354af37018c9a60dff1d54897c3b7b2c014a64280523f4a3586a7eeed24 SHA512 31bcf1669c27980f0a8500082c4d0cc500f6cc943518a3dacacc3ad4d8a0c238517f23c2c1969e5a22dbb5d25614adbf4e914c0557e45e1ebc8e7385b2ed14b3
DIST lru-0.16.3.crate 16743 BLAKE2B 0574e82714425293593e399930903da1004062ce84e5b90126c66d004e872ac580c6f474f7c39e1a8eafc9f78c6fe7a3049b50f248e8f3a9ecd03e9f04133b9b SHA512 5092b87dfbb7666e224dc6d8ed01fb8276929a2d1a31173034155afadb90e0762dbe6d5ce263bbf0353c079bb249027eff71dcac87228514a5406ef67dd06c15
+DIST memchr-2.7.6.crate 97616 BLAKE2B 3429786e97f1aa078892e417c8ed8198ec727969517309049b842e44097e58038583508aa974e6246888c18e11f9d23863c1bb012b542c5685250fe34e250d7b SHA512 38843817334da88ad74ce679b4401cf948cf8138815f3acc5eb0d005da3aabceb2216e20887e79344396569a2fa136e3aa1f7f3251a00d07dd6934cee79f4fad
DIST memchr-2.8.0.crate 97780 BLAKE2B 228ce0b6fe8b168f5c31031690a5eb44466609b64c5c221e0b3f56fe331b4f25c0124d613c94ef030b225000978953641f5b07458d530c1d50eec3e1d54e4274 SHA512 8089238153493a0ff6adf980efd1ea2ba10eeff9f33fff200268692662d24152a8c14a4dac37fbc6a55dca741701fd256174f10a9838ca66f038f08e090de12f
DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
+DIST pkg-config-0.3.33.crate 21590 BLAKE2B 576349a975cd4b9ff08c7f797f300cb2774425c72ed7baced19e0ba6231246f4479939c61bcc9efeb9174a2d6917bf009f02e93c26800c65e798b9e51ccf4d8b SHA512 af931d889e72f51e0ae41c880a1f5aa6215b93148cf7041378664e4ba013d0c83d654e560a73c9d7b301b5a008c221e48ac81b413d1123786e003c97f7fff63a
DIST portable-atomic-1.13.1.crate 197001 BLAKE2B 6d0898c2a537a9bf204b7749cca5f5fddf280772b56eb7ce8fdd9cf7d71561137b26ef89f415c40277a1c89981333eef78e5bb4624515a294ba28fdaeb4c70ea SHA512 2a1b31ac9814af884640b3398ab824a9795c72d260527a0966b193113808cfbb3345d50cd1beaebb45863437c3d06c8706d34b26efecceefc649319a4bc274a3
DIST prettyplease-0.2.37.crate 72033 BLAKE2B 997c8d855023ba6dcc7aa3a8f1c0ac6f6ca72dab2804cfcfb0987832ae044ffc5f5d7541e66d7ff5b0679065e5217078a832333e6cb92d89a93660aedaf0b447 SHA512 3273621f42cd2f4f892ee81e130f50e7d30f7254f922a84e55e454c0157bd0a59c678ee352e05007fdb0a62cdab2d7693185990354b81d2b1f5d08b51cff77d0
DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
@@ -50,11 +56,13 @@ DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171
DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003
DIST serde_json-1.0.149.crate 155994 BLAKE2B 7564c287a05c95feeba2b3a17e2e43ba047b0132b40fc4dd0c09141c2aac559c00bf4c63cbd24c17f12f5e6b49cf38b240d2c6c66677ee7a9edb197aba7d57fd SHA512 85fa8cb7b479f8241a4fd2255dd80e346fa5cde103aa7f25c14ccbcdf0e3276578fd0645e1d2542ee07c7e08c32058ff662bbf03926cd796c38622a12f423d43
DIST sha2-0.10.9.crate 29271 BLAKE2B 1d614e0efe085cdb40e05726578a9b4ca6bce93f6d3324f5dc0444cb37054912cdaf5d28d468eac2c0046030d920fced2ccd006953b80865ce8a2d43ef3daa81 SHA512 963adeeb4ed8b0e7fc19085e8721ea13e9b3aea5d115ca1b3dbca495ad14810c6450991dd3753807c293c415aaeb1054b8b4124c72e7090cd9e86f09fcbb4f80
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
DIST tap-1.0.1.crate 11316 BLAKE2B 60786fd5f12c2f06097330c26809fdcfce62716586d2e1985f8c01406d356ed0ab730a04dfe72ee3e1d6208a53c76c66883d45a76130750b41ba5b82aa721b83 SHA512 d69ff11a46e2fbc276212511878f48eb93640c0b147df6578ea057b23625f9366a7fc3926693fc3809688537af5ca919c91605beed364decf83c35a032310995
DIST target-lexicon-0.13.5.crate 26928 BLAKE2B f8c62cb91f68a635e6ce3fc254df9ce378b5e8f62c1147404c967484b9ed97fb33d7993b4671611db76566063e999d658d201f856f70196ec678d72cc758cf6d SHA512 956df27c01e1186c5356117ffd07810fc0b62fb919d5bfd215955ba85be00ef675212a3c0dc36679986be7b825442fec5c93c7643b7e1e19c04572e6463546fc
DIST tibs-0.5.7.tar.gz 78255 BLAKE2B 0555d64ae3255b5fc1e2f488977802e8f51b99d14000debbf9d8e90f9d7435fc90bfd5eae3ee0a70230bb9c71248f9b3f226c8ef7dd46fa1e71593ceb045e24d SHA512 f67cb56949102635c6f8914407677befd96595ac3d721f7651e1aecc50509ca6e0e87b61c6d4afab9caf173c6b97ee5d1666fb6cfea5d9a1d36a0ac60b681f1e
DIST tibs-0.6.0.tar.gz 86160 BLAKE2B f94b636b3cacbf631d1a06d0c64052ebd09d1357f734cd6e69f890bbc312daaa8f221f794590f62c8562fbaae0187f3d8e5561906c4891349baacfd9b06f6d4e SHA512 a3755057ccc0bc516bc1a97b1a60e4a84aa902a30567fa0eec4b42ab5866b73c3d686ec5300e40b7e2c868094406a2cd34d6a1f19670800b2ad7b8a103929b82
+DIST tibs-0.7.0.tar.gz 1296097 BLAKE2B 362c3b4ff0dc86ffcb2456e248ff85e155935f9f7efaba96439824b272071df303159ab5b18d8742cc4be4fa182b7fdd72d050977337a98e7ab3b851ea38e6ec SHA512 7572772fd8156719f2020e6460eff2e4e8a08492744782b6922749ec802724d325f5954a6a652fe15825c50f09ad27f0dfe0dbc78f4061a59ee2c861923f3acc
DIST typenum-1.19.0.crate 76414 BLAKE2B 8083988e0bf1d7927377112b8939607f32af098f198a2bfcc2c5302170d9f6e5b29cf02d3cab16c1ecd0fb9f0a45ea3c6bd4a4e4baaf2dfdf8f694093300deeb SHA512 09ebcd7a2cc11f422469cf4fe706f1988bcd81d628e2bab3f54ae82b0aa5486d03a4392187a3736c13dc0c2027053387f89ac656caff72f36365c8be38bc7ff4
DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
@@ -74,3 +82,6 @@ DIST wyz-0.5.1.crate 18790 BLAKE2B 07ac1435a812d2f50309348ef8378ea4955c001f01eda
DIST zerocopy-0.8.40.crate 254858 BLAKE2B fc5a362da28b18b52fc9e934371abeaf578d4eb663061bc08d1199eea99447e9cd9d581c2377c381776950f2e8d5f7bcac305e152be690bec8808328406a979a SHA512 d1a531387eb4e5fa523e70f07f36d945027aec2232b7a281b7163729801ed103beab568793cbbd1ff1082e5a20263ea3b40dc3874c9f32577e95d9f9aecfedb4
DIST zerocopy-derive-0.8.40.crate 97724 BLAKE2B 33d32bca4e50c9ab49b82adac015e036515adca235bbab744955a3d88ed71df113b17923692732263ea55fa842dea3627ee7f888b4018eb2b97844e0a469c17a SHA512 5cc4beb4b411f3b4b41197e48c433f346118cdd3be175d803c79a549e509cec4912c65fe21f5c7ae97a9377f62e5cdecdc95c9dcdce904c96ce3f574118f46b4
DIST zmij-1.0.21.crate 26665 BLAKE2B e958b58e2213ad13185ec6df55d07e6c80169afa56133038fa66cefb4a9f49aa786249a486dc09b2d0a2f74e41c0d0d713135f38a84dff8f6239636a6bf3cadb SHA512 a488f11ec8721ddfe42e61d028a128818551de8fccd69d7824504e4ae2efccdc38f716fa5a10ef4de07a8a087e75e819c4a1e0790817e8539b5db697bde14585
+DIST zstd-0.13.3.crate 30514 BLAKE2B f849d794a4e9157c95d7fcce57551a0fe25098348759086219adab57f37b328e9701b65994da30d8756adf12feae4407f5be92f6c1ca43a57807097520fcd04f SHA512 07e1589ebf2aa169cdc50381f5078012574e3613cc89f3d02914b286d37a9028124c6d40ee8efd75ecc50f31e51a24d2ad0a6e83e669d7dc6477fc43878d4751
+DIST zstd-safe-7.2.4.crate 29350 BLAKE2B d14a28f39faf7ed77b9dc11d79cc3b0b79f904a2cf2e78b184a0e57f02bb4a5c49c71c6693352a4f1e6d4653e570c491d52a4dca80293a7f98f49659d1d2ca82 SHA512 b4f3a4dc63814a2a088e549a0fa0bdeeba3e5ab3416c414207eb9ec1772f8913002f3b94ccf0675b651af94ed12eda427cc90dd40a8e81b3ed565ce80f4db1de
+DIST zstd-sys-2.0.16+zstd.1.5.7.crate 775620 BLAKE2B e2e7e887605e84f9feaef0ce121c52f72620b56b1a892c3cb42ae7630109f37f5a687cb18a5993bd54ea5a18870771edf275330ead43d0db77436e5605669599 SHA512 4bd56e78003a084a27d916ce845f90ae4657725c0f34d56290a8b0c463309e10d2980d1ee6350d6a913cb7906950271ef3da7f25f56b47d02e4b4a5d902ac7ac
diff --git a/dev-python/tibs/tibs-0.7.0.ebuild b/dev-python/tibs/tibs-0.7.0.ebuild
new file mode 100644
index 000000000000..d0f6d1bc408b
--- /dev/null
+++ b/dev-python/tibs/tibs-0.7.0.ebuild
@@ -0,0 +1,121 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{10..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+ allocator-api2@0.2.21
+ anyhow@1.0.102
+ bitflags@2.11.0
+ bitvec@1.0.1
+ block-buffer@0.10.4
+ bytemuck@1.25.0
+ cc@1.2.60
+ cfg-if@1.0.4
+ chacha20@0.10.0
+ cpufeatures@0.2.17
+ cpufeatures@0.3.0
+ crunchy@0.2.4
+ crypto-common@0.1.7
+ digest@0.10.7
+ equivalent@1.0.2
+ find-msvc-tools@0.1.9
+ foldhash@0.1.5
+ foldhash@0.2.0
+ funty@2.0.0
+ generic-array@0.14.7
+ getrandom@0.3.4
+ getrandom@0.4.1
+ half@2.7.1
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ heck@0.5.0
+ hex@0.4.3
+ id-arena@2.3.0
+ indexmap@2.13.0
+ itoa@1.0.17
+ jobserver@0.1.34
+ leb128fmt@0.1.0
+ libc@0.2.182
+ log@0.4.29
+ lru@0.16.3
+ memchr@2.7.6
+ once_cell@1.21.3
+ pkg-config@0.3.33
+ portable-atomic@1.13.1
+ prettyplease@0.2.37
+ proc-macro2@1.0.106
+ pyo3-build-config@0.28.2
+ pyo3-ffi@0.28.2
+ pyo3-macros-backend@0.28.2
+ pyo3-macros@0.28.2
+ pyo3@0.28.2
+ quote@1.0.44
+ r-efi@5.3.0
+ radium@0.7.0
+ rand@0.10.0
+ rand_core@0.10.0
+ semver@1.0.27
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ sha2@0.10.9
+ shlex@1.3.0
+ syn@2.0.117
+ tap@1.0.1
+ target-lexicon@0.13.5
+ typenum@1.19.0
+ unicode-ident@1.0.24
+ unicode-xid@0.2.6
+ version_check@0.9.5
+ wasip2@1.0.2+wasi-0.2.9
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ wyz@0.5.1
+ zerocopy-derive@0.8.40
+ zerocopy@0.8.40
+ zmij@1.0.21
+ zstd-safe@7.2.4
+ zstd-sys@2.0.16+zstd.1.5.7
+ zstd@0.13.3
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="A sleek Python library for your binary data"
+HOMEPAGE="
+ https://github.com/scott-griffiths/tibs/
+ https://pypi.org/project/tibs/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64"
+
+EPYTEST_PLUGINS=( hypothesis )
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ tests/test_benchmarks.py
+)
+
+QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/tibs/tibs.abi3.*"
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index 34a496ce89d9..4e9ac3c084ed 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -1,6 +1,6 @@
DIST virtualenv-20.39.1.tar.gz 5870061 BLAKE2B 30fb2c107616c080935ede0ea2e72e5b70bc184d46d7eb26e08f612f8cc6be26dde2a8c53c8d415b586904749e5dd4bfc5f82ff6c186cdc51815a480e1dbbe80 SHA512 8d8fb281cd55bf60065b4d57e37963a90bf116e46e67eb3688177f40d975da93a558e1ad67b6d7ee8ecfd1a005cd3d4dccc4c50c72569fad221634136a61e23d
DIST virtualenv-20.39.1.tar.gz.provenance 9445 BLAKE2B 39909e09db2ab5b8fdd9a192943e3e8279a16efd2c55a88dca6c2f76bb86b78d569d6e9a8a6ef8415a6805d42a0967f0862609eb9a59a5ef7bf35dbfb3a55a51 SHA512 6c7f752fc702cfb00005215186fc6062a30f319d5d22457abc7a98ee9fbc8e7e466aa6b0af319ff3a98dde013e98759f16100003012c00e644ae91982ceaf157
-DIST virtualenv-21.2.4.tar.gz 5850742 BLAKE2B 1aa6aee759d79e1d108d8564f1a797daf67d078a8ceb6ce3fa706788a3c1eaa8a8ee590320dc3de404061024e80ccc1925df94ed18b7998133c37237096725af SHA512 59cd373c7b149ab83609f2a331fb6ffa95792647d939d129b661cb12aa02686e1b789ccdf2ecf9ab959e3645c42df303ddb5a277e0600b156f6567f797fc49ff
-DIST virtualenv-21.2.4.tar.gz.provenance 9343 BLAKE2B 5458056abadcd9cf65f307c82460dab3501e38a9f4d688a0dd3c718e9b3aa401357fd45a1b679cacca9675fd501ba115d2fda76929bfe753ba644f4d1eb24571 SHA512 dc4ad98f34b6e4f15943ec3a8bc07d0335d60943cacb7f1ed08f6a5c0ee34c115c304ffb34a2fd89c19f3d1c59db9f3ee24e3c6a39d7c90f8e251f60d4d7bcb8
DIST virtualenv-21.3.0.tar.gz 7614069 BLAKE2B fb7a290013284aced812db3101d767876b3fc2ced24afd7f246d2859aed4ff90e94f7a093fa4f2d2cbebcdf719085bd991ae9fdb6c5b2dfb7a2ed3301b0757fc SHA512 34a9aceb0524563527cb03b5e6ba89320e5b18db6849fd9fb965ed8a268d161eb24477f31140c56535881ef55b3552c2828f62b3ec0144c61e4893685d63e972
DIST virtualenv-21.3.0.tar.gz.provenance 9425 BLAKE2B 00eeaae90e82280ae4aae553f7ca9839f3b3040970e6e2c4891ee5e8831c0fef3965e57af13ee5c27926cbb80fbfee0efc2dc5d9ffa6ad173f1ddc78645dac59 SHA512 c0ae0f1c862596be9c669ba1d97b5f7d0f713efdb1e48d0cecb1ca968205f71754c5a86cfa2c0ba39be8d5ae6b9b11677fa3990d3027067b687eb7e377c9e92f
+DIST virtualenv-21.3.1.tar.gz 7613791 BLAKE2B a62d25304dfb3feff7932b7135ff5c6c9f536a9548c171387201d88d931d5ea33d39c3da92efe0a9a62ca3d77cd9905126030f8e58ad919effd47fb291cd1b52 SHA512 2e445492b2c02e47c57db39bdf7d3506dcf09958a73a814c4629e1e32281d9ca337c381cc61b3da46b583f08a77d7729eb3a655471b0f70196cff90daf4f24a0
+DIST virtualenv-21.3.1.tar.gz.provenance 9480 BLAKE2B 5322a3f210b2dbf92684bf0d2e99a9326b375e46135c1c7f3281b94a71d417cff696ea919b1602e61ae16d92642e3dc629c3948c609b115a0a45502fa8f2135e SHA512 665acafd07adb9594a8be6696987eceaa3702bc850c29c27f7e203cb56666fc3715a5419bb49e2b219756b1c880412afc314f7528c9ae2230501fa40fa99d4e8
diff --git a/dev-python/virtualenv/virtualenv-21.2.4.ebuild b/dev-python/virtualenv/virtualenv-21.3.1.ebuild
index 585a76648569..ffe84dada404 100644
--- a/dev-python/virtualenv/virtualenv-21.2.4.ebuild
+++ b/dev-python/virtualenv/virtualenv-21.3.1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/wrapt/wrapt-2.1.2.ebuild b/dev-python/wrapt/wrapt-2.1.2.ebuild
index 8f65b86d36a6..cc0504001c78 100644
--- a/dev-python/wrapt/wrapt-2.1.2.ebuild
+++ b/dev-python/wrapt/wrapt-2.1.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
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"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
fi
IUSE="+native-extensions"