summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/bitstring/bitstring-4.4.0-r1.ebuild38
-rw-r--r--dev-python/channels/Manifest6
-rw-r--r--dev-python/channels/channels-3.0.5.ebuild41
-rw-r--r--dev-python/channels/channels-4.2.2.ebuild34
-rw-r--r--dev-python/channels/channels-4.3.2.ebuild62
-rw-r--r--dev-python/channels/files/channels-4.3.2-fix-install.patch14
-rw-r--r--dev-python/channels/metadata.xml21
-rw-r--r--dev-python/dulwich/Manifest2
-rw-r--r--dev-python/dulwich/dulwich-1.2.6.ebuild128
-rw-r--r--dev-python/ensurepip-pip/Manifest1
-rw-r--r--dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild192
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.30.0.ebuild98
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild6
-rw-r--r--dev-python/langdetect/metadata.xml20
-rw-r--r--dev-python/packaging/Manifest2
-rw-r--r--dev-python/packaging/packaging-26.0.ebuild40
-rw-r--r--dev-python/pip/Manifest1
-rw-r--r--dev-python/pip/pip-26.1.2.ebuild206
-rw-r--r--dev-python/python-multipart/Manifest1
-rw-r--r--dev-python/python-multipart/python-multipart-0.0.30.ebuild40
-rw-r--r--dev-python/sphinx-autodoc-typehints/Manifest2
-rw-r--r--dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild44
-rw-r--r--dev-python/tavern/Manifest1
-rw-r--r--dev-python/tavern/tavern-3.6.0.ebuild71
-rw-r--r--dev-python/tibs/Manifest5
-rw-r--r--dev-python/tibs/tibs-0.5.7.ebuild112
-rw-r--r--dev-python/tibs/tibs-0.6.0.ebuild112
-rw-r--r--dev-python/tibs/tibs-0.9.0.ebuild (renamed from dev-python/tibs/tibs-0.7.0.ebuild)4
-rw-r--r--dev-python/tifffile/Manifest2
-rw-r--r--dev-python/tifffile/tifffile-2026.6.1.ebuild (renamed from dev-python/tifffile/tifffile-2026.5.2.ebuild)0
-rw-r--r--dev-python/virtualenv/Manifest2
-rw-r--r--dev-python/virtualenv/virtualenv-21.4.2.ebuild136
-rw-r--r--media-libs/libsdl3/Manifest2
-rw-r--r--media-libs/libsdl3/libsdl3-3.4.10.ebuild (renamed from media-libs/libsdl3/libsdl3-3.4.2.ebuild)2
-rw-r--r--profiles/package.mask/liguros-workarounds1
38 files changed, 1047 insertions, 418 deletions
diff --git a/dev-python/bitstring/bitstring-4.4.0-r1.ebuild b/dev-python/bitstring/bitstring-4.4.0-r1.ebuild
deleted file mode 100644
index 28bb84e5e34f..000000000000
--- a/dev-python/bitstring/bitstring-4.4.0-r1.ebuild
+++ /dev/null
@@ -1,38 +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_{12..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A pure Python module for creation and analysis of binary data"
-HOMEPAGE="
- https://github.com/scott-griffiths/bitstring/
- https://pypi.org/project/bitstring/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64"
-
-RDEPEND="
- =dev-python/bitarray-3*[${PYTHON_USEDEP}]
- >=dev-python/gfloat-0.1[${PYTHON_USEDEP}]
- =dev-python/tibs-0.5*[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=( hypothesis )
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # https://github.com/scott-griffiths/bitstring/issues/363
- tests/test_fp8.py::TestConversionToFP8::test_compare_8bit_floats_with_gfloat
- tests/test_fp8.py::test_rounding_consistent_to_gfloat
-)
-
-EPYTEST_IGNORE=(
- tests/test_benchmarks.py
-)
diff --git a/dev-python/channels/Manifest b/dev-python/channels/Manifest
index b58c0c2009cc..93bbf2713782 100644
--- a/dev-python/channels/Manifest
+++ b/dev-python/channels/Manifest
@@ -1,5 +1 @@
-DIST channels-3.0.5.gh.tar.gz 200118 BLAKE2B 7a7653f986face1e87369917317db013e5c9fc912c6e2d7c737054ffef167bd01feb48f7e2d00d0d331e7a16093478e5416645717aed59e46dfec8f9b3641a2e SHA512 b12d1aec9602b702b5a097e9ca52dccad49940f82fcbe5594890c9bd1f1879a2fcf0f29630ca53e4972a26853df8f71d07d7b2cccd876abbf2417a76dee281bf
-DIST channels-4.2.2.gh.tar.gz 197010 BLAKE2B 321bf62c68038ce511145acd43c036dd298d58056f20ab2d676c3e3a8d6360a86a4f07c8f9ed6c123f888c012d69da22cfae4fb477dd5422cf326bf2de6a4c8f SHA512 8f7c8f27981988fed8ec254db91ce0a130b24842949ef94cc9ae21b4a259a7003654ec86c4e18aa81924e26d9b81b6a2aafaac404e490cbdda6b4a100476917a
-EBUILD channels-3.0.5.ebuild 936 BLAKE2B 788d0e9a2822dd9d0ed2d1d1a62135aeb5f244710b66f7591962518a5204cde5b8e779280783dd1d1a1b1a3fa9b272a0eb457f1d88d62c8ecefc8f67384929ef SHA512 89003fa68c7ab1cdd1a329f4389ba6fe28f491217a70c03b2979a992b450d8aa1a02f024f073ad5fc0aa1d093d81c6c8b1adaa45bdc9a179f5bd1607d85c13ef
-EBUILD channels-4.2.2.ebuild 829 BLAKE2B e5946c4a0eaf9fb3ffa2092a3d5d49d3d6ee16f151483fa2b716c8bab3350eca5e330a22822f881421d8882ffb970f4c56154c613477d094319e46addf1a5537 SHA512 84ce30d87a654c1a89ac299fb0f6447ca9c736e4b63497d83fc2687384e9cbe8094ba8f5021a19f726f9bae97c6b6d11eddef6a9ee5c275efe827bf95d3848ec
-MISC metadata.xml 445 BLAKE2B b4c0a41d6caadfbc53cbba3c41f8b7689a286b3f8d285c37a88a1f79d8dc350b82fea255048c022b92091a1e0cc67bf19645d6c32183b82a6dd49cccadf5078f SHA512 380c8b98efe8d9a2513c51899b7de90b115d4a51f104f46b552ff8929c322850e511e245a2ba0e976213416ae7241a17292ca98248caacfc891fcdcf5cea5d44
+DIST channels-4.3.2.gh.tar.gz 206077 BLAKE2B c0913d67dc74bc728dd828584cf803b4ad175bab717de71ccf1e1c5b6aaca296fd15d011deb07b2876e63b7daaefab5e5ee24c323e907b3c563f5358759f14b8 SHA512 29d9c91aca721fad44143978863c45812bf596bb65cf99084803f78d85c664d5cc7ca1015df151cdc27754b822c9cfd18102989b6e5f59bc50257f6c9d8b8b3e
diff --git a/dev-python/channels/channels-3.0.5.ebuild b/dev-python/channels/channels-3.0.5.ebuild
deleted file mode 100644
index 665c500dc5e9..000000000000
--- a/dev-python/channels/channels-3.0.5.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..11} )
-
-inherit distutils-r1
-
-DESCRIPTION="Extends Django abilities beyond HTTP protocol"
-HOMEPAGE="https://github.com/django/channels"
-SRC_URI="https://github.com/django/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DEPEND="
- >=dev-python/django-2.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/async-timeout[${PYTHON_USEDEP}]
- >=dev-python/daphne-3.0[${PYTHON_USEDEP}]
- <dev-python/daphne-4.0[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- )
-"
-
-DOCS=( README.rst )
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # https://github.com/django/channels/issues/1915
- echo 'asyncio_mode = auto' >> setup.cfg
-
- distutils-r1_python_prepare_all
-}
diff --git a/dev-python/channels/channels-4.2.2.ebuild b/dev-python/channels/channels-4.2.2.ebuild
deleted file mode 100644
index 70ba31ef7266..000000000000
--- a/dev-python/channels/channels-4.2.2.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..13} )
-
-inherit distutils-r1
-
-DESCRIPTION="Extends Django abilities beyond HTTP protocol"
-HOMEPAGE="https://github.com/django/channels"
-SRC_URI="https://github.com/django/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DEPEND="
- >=dev-python/asgiref-3.5.0[${PYTHON_USEDEP}]
- >=dev-python/django-4.2[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/async-timeout[${PYTHON_USEDEP}]
- >=dev-python/daphne-4.0.0[${PYTHON_USEDEP}]
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- dev-python/pytest-django[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-distutils_enable_sphinx docs \
- dev-python/sphinx-rtd-theme
diff --git a/dev-python/channels/channels-4.3.2.ebuild b/dev-python/channels/channels-4.3.2.ebuild
new file mode 100644
index 000000000000..df1bc7ea623f
--- /dev/null
+++ b/dev-python/channels/channels-4.3.2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit distutils-r1 #pypi
+
+DESCRIPTION="Brings async, event-driven capabilities to Django"
+HOMEPAGE="
+ https://channels.readthedocs.io/
+ https://github.com/django/channels/
+ https://pypi.org/project/channels/
+"
+# no tests in sdist
+SRC_URI="
+ https://github.com/django/channels/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.9.0[${PYTHON_USEDEP}]
+ >=dev-python/django-4.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/async-timeout[${PYTHON_USEDEP}]
+ dev-python/selenium[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # avoid daphne as it requires autobahn
+ tests/sample_project/tests/test_selenium.py
+ tests/security/test_websocket.py
+ tests/test_database.py
+ tests/test_generic_http.py
+ tests/test_generic_websocket.py
+ tests/test_http.py
+ tests/test_testing.py
+)
+
+EPYTEST_PLUGINS=( pytest-django pytest-asyncio )
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}"/channels-4.3.2-fix-install.patch
+)
+
+python_prepare_all() {
+ # avoid daphne as it requires autobahn
+ sed -e '/"daphne"/d' -i tests/sample_project/config/settings.py || die
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/channels/files/channels-4.3.2-fix-install.patch b/dev-python/channels/files/channels-4.3.2-fix-install.patch
new file mode 100644
index 000000000000..18eca8f75445
--- /dev/null
+++ b/dev-python/channels/files/channels-4.3.2-fix-install.patch
@@ -0,0 +1,14 @@
+diff --git a/setup.cfg b/setup.cfg
+index 742e1f6..43d8c0d 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -52,7 +52,7 @@ types =
+
+ [options.packages.find]
+ exclude =
+- tests
++ tests*
+
+ [flake8]
+ exclude = venv/*,tox/*,docs/*,testproject/*,build/*
+
diff --git a/dev-python/channels/metadata.xml b/dev-python/channels/metadata.xml
index 7093cae71294..cccc43500076 100644
--- a/dev-python/channels/metadata.xml
+++ b/dev-python/channels/metadata.xml
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/django/channels/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
-</pkgmetadata> \ No newline at end of file
+ <maintainer type="person">
+ <email>negril.nx+gentoo@gmail.com</email>
+ <name>Paul Zander</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="github">django/channels</remote-id>
+ <remote-id type="pypi">channels</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest
index 09eedaf57a19..dc814cc977e8 100644
--- a/dev-python/dulwich/Manifest
+++ b/dev-python/dulwich/Manifest
@@ -6,6 +6,8 @@ DIST dulwich-1.2.4.tar.gz 1243653 BLAKE2B 7d898010b1c4effd5b0e03bce42b1c6fb432fc
DIST dulwich-1.2.4.tar.gz.provenance 9886 BLAKE2B 03ff5ca49763c79747c14b8c810627cbd8cc7c4d9da4935b70d9640aaff89db1199c59f47fc5dc9bcaf449a5cf771e1182070e5619835abff089b85eacbe392f SHA512 9ddbf0c3ab0eed77873d74fc5eb1455a51f8f227c740d24d37a3e64016b19828ab23a44fcb357c75bc14a2aa88e235b0df11b20888bd44944bda3133923a506e
DIST dulwich-1.2.5.tar.gz 1253230 BLAKE2B ec505b0d77c35dc1f169e6467bc9585519f7b01d2a642a125e259413b52f404de1d839170596ff646f9009ec8af24adcf1227f854aa49ae8f6cee20f54c189bf SHA512 60a4bded1e8cb8cbb3139b74fdc3f0610398cd41337b3076728e3b9b9977416731149b7945ca8422c43c0c426870efc609dae3a1008083478edcec5df4e6232a
DIST dulwich-1.2.5.tar.gz.provenance 9988 BLAKE2B 1a2c4451068808b82772943e02ee5e006b10baa2e44910994411e39786eb4e7c0ed26767675d3bcfd9a94f926985e68e1c4e89fa33bdfcb5849ba6f595122eb7 SHA512 f3e9ef5b28568bbc32212b4765f770811c089bb322c9927ef210e90e178f31e6b5344ae8ad78534ae631058cbf5ec79b55e96e16b90f65c6f29b84006dce8430
+DIST dulwich-1.2.6.tar.gz 1257895 BLAKE2B 73362d94f9d4823ec36fe30e956c96d7de7504cdd4db61fbf43f283d3ae97abe2c2c40ec68693d87e4b06d02717733ac24d6a61b22fa5e577f233df32432459e SHA512 5be90b5fa1d806970e6fd3c5a70749e48c9639d614b199b25afd5f3725d8fe201b43cfd69a8f45840bf883df3f0e4f5db1bf54ebf3b6dab3caf1373e265eab7d
+DIST dulwich-1.2.6.tar.gz.provenance 9894 BLAKE2B 0e3dc11b5dd2dd1c7de37b5d19da9927d1fc6ef7dfda8ee2256e3d74871de03c9ead52bbab472833e5f34f50c509df116c4e2c591bc2263363144e8e9839e535 SHA512 f8148280fcc34d2730fe3783043592dd78b710cca3898c13180dea306c81b342e447a1fda5a4a8d360224dbe21f059e622f7c50b39ced72870f34cb1a4fe1323
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73
DIST libc-0.2.182.crate 814873 BLAKE2B a5fae27ee77495d8638297523d7428eda4a608109e7e1b67db1ba621f7700761f8131710a49bbd24bedf62f8df7ecdeaedb5def47201146a05b4288ee2f92515 SHA512 7923eeb0ee1db8b5b00a6a4352cf5fd3f877a2f727af5857ca49ceeab2dc7519137eb3a982f5a763ae61fbe422ba8f0fe83d92dcabcfa18c23fae619960f96db
diff --git a/dev-python/dulwich/dulwich-1.2.6.ebuild b/dev-python/dulwich/dulwich-1.2.6.ebuild
new file mode 100644
index 000000000000..3630c647c997
--- /dev/null
+++ b/dev-python/dulwich/dulwich-1.2.6.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/jelmer/dulwich
+PYTHON_COMPAT=( python3_{11..14} )
+
+RUST_MIN_VER="1.85.0"
+CRATES="
+ bstr@1.12.1
+ heck@0.5.0
+ libc@0.2.185
+ memchr@2.8.0
+ once_cell@1.21.4
+ portable-atomic@1.13.1
+ proc-macro2@1.0.106
+ pyo3-build-config@0.28.3
+ pyo3-ffi@0.28.3
+ pyo3-macros-backend@0.28.3
+ pyo3-macros@0.28.3
+ pyo3@0.28.3
+ quote@1.0.45
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ similar@3.1.0
+ syn@2.0.117
+ target-lexicon@0.13.5
+ unicode-ident@1.0.24
+"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
+HOMEPAGE="
+ https://github.com/jelmer/dulwich/
+ https://pypi.org/project/dulwich/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="GPL-2+ Apache-2.0"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions Unicode-3.0
+ || ( MIT Unlicense )
+"
+LICENSE+=" )"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="doc examples +native-extensions test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.11)
+"
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-python/setuptools-rust[${PYTHON_USEDEP}]
+ )
+ test? (
+ ${RDEPEND}
+ dev-python/fastimport[${PYTHON_USEDEP}]
+ dev-python/gpgmepy[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
+ dev-python/merge3[${PYTHON_USEDEP}]
+ dev-python/paramiko[${PYTHON_USEDEP},server(+)]
+ )
+"
+
+distutils_enable_sphinx docs
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so"
+
+pkg_setup() {
+ # avoid rust_pkg_setup which will die when there's no Rust found
+ if use native-extensions ; then
+ rust_pkg_setup # implicitly inherited through cargo
+ fi
+}
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+python_compile() {
+ # make extension build errors fatal
+ local -x CIBUILDWHEEL=1
+ unset PURE
+ if ! use native-extensions; then
+ local -x PURE=1
+ fi
+
+ distutils-r1_python_compile
+}
+
+python_test() {
+ # remove interference from the tests that do stuff like user.name
+ unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
+ unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
+ unset EMAIL
+ # Do not use make check which rebuilds the extension and uses -Werror,
+ # causing unexpected failures.
+ "${EPYTHON}" -m unittest -v tests.test_suite ||
+ die "tests failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ if use examples; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ dodoc -r examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/ensurepip-pip/Manifest b/dev-python/ensurepip-pip/Manifest
index a742f5daadbe..520eb0768a8d 100644
--- a/dev-python/ensurepip-pip/Manifest
+++ b/dev-python/ensurepip-pip/Manifest
@@ -1,4 +1,5 @@
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.2.gh.tar.gz 9268753 BLAKE2B 8cbf0ecf25a2bdd148506ca0e2e778b9053759cf5fed3914b915454bd8810b1d7a27e3b2efb5fd29c4e6b189c7e8050f0da15ae6c259712446b5a35f44018ee0 SHA512 e29c98a7da5e329183b7eef86a66f9d6c3473051f64aa6e762714306148547eb0de4220824484071822a9a62bd01a62a09ab16bba4c26e4b847bfc2609728608
DIST pip-26.1.gh.tar.gz 9268351 BLAKE2B 55773ba9ead364dcb8b900fb2f196dd768f688f54ae2ef190ae1739fec3fcc22f260c25df6ffb097e3b14ad321c51535cb71a921eafe4430a3eb30b94e38cc1e SHA512 cb3dde18f1b16ffeb36a0eeec02b64a0a363e1ef50070126fdbb152ba03749830095f85a98267e552169b7953b5839558be2c3ee8f78802cb56dd4f139b72762
diff --git a/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.ebuild
new file mode 100644
index 000000000000..648305376db3
--- /dev/null
+++ b/dev-python/ensurepip-pip/ensurepip-pip-26.1.2.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=( pypy3_11 python3_{11..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/hatchling/Manifest b/dev-python/hatchling/Manifest
index 6042bd813905..40d28131840e 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1 +1,2 @@
DIST hatch-hatchling-v1.29.0.gh.tar.gz 5301488 BLAKE2B d1e36649483f213c56488caf018ad3a3310fafa944e11484ae613021e081999a80321d353c68cfb64bc149558e2c996b788f7b11a228d2f658175165d515bdcd SHA512 321f9ab996dcab54341653e2abf5bdb893c4ac307c62aa9f0dd222609a18f82cd502fb0d0ac598f109d519a0dc8ab40866a37d1ea4023d7d58fe442da7c32ff9
+DIST hatch-hatchling-v1.30.0.gh.tar.gz 5333904 BLAKE2B a3a728ad442a87e9b1461a4c5cfed5a870be935316fd3e1ed9ed4c86494245fd0c9d4309838b48e49ac37cc147cda32518fc2860e78109cc3bbc4a968ee53d57 SHA512 4b0baa12baac528663abb634397aa0a91b6df80937e8f12edffd50f93d3e37b5166bd97ab05d4b1838145daabff74ac3aaf18ec389cf37213796f6a7438c2c3b
diff --git a/dev-python/hatchling/hatchling-1.30.0.ebuild b/dev-python/hatchling/hatchling-1.30.0.ebuild
new file mode 100644
index 000000000000..4dc6cab42e77
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.30.0.ebuild
@@ -0,0 +1,98 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( pypy3_11 python3_{11..14} )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{13..15}t )
+
+inherit distutils-r1
+
+TAG=${P/-/-v}
+MY_P=hatch-${TAG}
+DESCRIPTION="Modern, extensible Python build backend"
+HOMEPAGE="
+ https://pypi.org/project/hatchling/
+ https://github.com/pypa/hatch/
+"
+SRC_URI="
+ https://github.com/pypa/hatch/archive/${TAG}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/backend
+
+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"
+RESTRICT="!test? ( test )"
+
+# deps are listed in backend/src/hatchling/ouroboros.py
+# editables are optional but required for editable installs
+RDEPEND="
+ >=dev-python/editables-0.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
+ dev-python/trove-classifiers[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/atomicwrites[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_test() {
+ # top-level "tests" directory contains tests both for hatch
+ # and hatchling
+ cd "${WORKDIR}/${MY_P}" || die
+
+ # sigh; standalone test suites are overrated, right?
+ echo "__version__ = '${PV}'" > src/hatch/_version.py || die
+ local -x PYTHONPATH="src:${PYTHONPATH}"
+
+ # do not require uv for portability, sigh
+ mkdir "${T}/bin" || die
+ cat > "${T}/bin/uv" <<-EOF || die
+ #!/bin/sh
+ exit 127
+ EOF
+ chmod +x "${T}/bin/uv" || die
+ local -x PATH=${T}/bin:${PATH}
+
+ # tests mock cargo subprocess call but the backend raises if CARGO
+ # is not set and shutil.which() can't find it
+ local -x CARGO=cargo
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x EPYTEST_DESELECT=(
+ # most of these run uv to install stuff
+ # the few remaining tests aren't worth running
+ tests/backend/dep/test_core.py
+ # broken if CARGO is set
+ tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo
+ )
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ epytest tests/backend
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index d12ab8aeaca8..a11d7c268c91 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1,3 +1 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
-EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e
-MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
new file mode 100644
index 000000000000..637368d2f237
--- /dev/null
+++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
@@ -0,0 +1,13 @@
+Fix "Package 'langdetect.profiles' is absent from the `packages` configuration."
+
+--- a/setup.py
++++ b/setup.py
+@@ -18,7 +18,7 @@ setup(
+ author_email='michal.danilak@gmail.com',
+ url='https://github.com/Mimino666/langdetect',
+ keywords='language detection library',
+- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'],
++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'],
+ include_package_data=True,
+ install_requires=['six'],
+ license='MIT',
diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild
index d11bbb54110b..af2dce063d86 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{10..13} pypy3 )
+PYTHON_COMPAT=( python3_{12..14} )
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 pypi
@@ -19,4 +19,6 @@ KEYWORDS="~amd64"
RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" )
+
distutils_enable_tests unittest
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index 020e07f2a3dd..7ba11d811d5b 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>marcin.deranek@slonko.net</email>
- <name>Marcin Deranek</name>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
- </upstream>
- <origin>slonko-overlay</origin>
-</pkgmetadata> \ No newline at end of file
+ <maintainer type="person">
+ <email>pastalian46@gmail.com</email>
+ <name>Takuya Wakazono</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="pypi">langdetect</remote-id>
+ <remote-id type="github">Mimino666/langdetect</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-python/packaging/Manifest b/dev-python/packaging/Manifest
index 06dc17dc8a72..706f61df2b9a 100644
--- a/dev-python/packaging/Manifest
+++ b/dev-python/packaging/Manifest
@@ -1,5 +1,3 @@
-DIST packaging-26.0.tar.gz 143416 BLAKE2B 0f64797c7dc0c1d452bef437f3c61959efe17db4d0281ca475a45a433b349693a6e2a5183c17921cc233086da765d5af6cd902e4c3cba8975d42908de553a389 SHA512 27a066a7d65ba76189212973b6a0d162f3d361848b1b0c34a82865cf180b3284a837cc34206c297f002a73feae414e25a26c5960bb884a74ea337f582585f1d2
-DIST packaging-26.0.tar.gz.provenance 9319 BLAKE2B 95a46bf39757ebc5daa5a847413936dbf9067c50129009cca898b3010d2cc7d7175b1091ba4b8b3f5c13106a9f9da0b6dc858ab65fd0dbe7164e2c99752c539b SHA512 b1280f2554b17244745ac2c566922c1bb2b68e45a18020633d52c12a0e6be784506f10c0dfcf9a528ff6dedb7a4bfac0f240367fe26707435ee7cc15fb4c45a8
DIST packaging-26.1.tar.gz 215519 BLAKE2B de311aea3af5d7fe1414c6c3aa667b7835d47949c26d5298e1172c1bbb6c9f75646f99f4b7a633f7d2b1b13677a19d6f497912a35531baf6b7d0edb0db1e4075 SHA512 37dfdc50da2701016ff8caf7053c7d06ed3c8762ed22e43f8001c12b99b00251f960d50e8bfa0294e37069091135ef6006c7b3b92d05fde2b934cf336f0fbe1d
DIST packaging-26.1.tar.gz.provenance 9178 BLAKE2B acb6131b39570cc582506163fd2b84802c36fd29c3b3c2b61470bf12fb352f77498429d54efc32e469a5189f94ba28df9334ba5febbbc0fde46e201d9962cc36 SHA512 46873132db3e0cec2c383965e68d495645a44e16059758fb88287c2e4b8e6d06f309f03a9658b21381a89b2dbb0265123a99e42059816dbc7f33b2c6d5766828
DIST packaging-26.2.tar.gz 228134 BLAKE2B 5d19304c33c560fdc5e1784c2cc0ce8b7033957c2484ff00d7b07110e2d49c84c14c40066c93a9fada23dbc47a864ac4de16afec5588031c38b084a9198d40e8 SHA512 cefa0ac8cfade3e86d73c62e79aff75e7e24337495f6e675c20ddd3fa3f3431eb48764a34e5ab0bcdacc0d2204afdc0088686d1f3f6880e9a8ae055da4867f15
diff --git a/dev-python/packaging/packaging-26.0.ebuild b/dev-python/packaging/packaging-26.0.ebuild
deleted file mode 100644
index ecbe60e92e28..000000000000
--- a/dev-python/packaging/packaging-26.0.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYPI_VERIFY_REPO=https://github.com/pypa/packaging
-PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Core utilities for Python packages"
-HOMEPAGE="
- https://github.com/pypa/packaging/
- https://pypi.org/project/packaging/
-"
-
-LICENSE="|| ( Apache-2.0 BSD-2 )"
-SLOT="0"
-if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
-fi
-
-RDEPEND="
- !<dev-python/setuptools-67
-"
-DEPEND="
- test? (
- dev-python/pretend[${PYTHON_USEDEP}]
- dev-python/tomli-w[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-python_test() {
- epytest --capture=no
-}
diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest
index a742f5daadbe..520eb0768a8d 100644
--- a/dev-python/pip/Manifest
+++ b/dev-python/pip/Manifest
@@ -1,4 +1,5 @@
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.2.gh.tar.gz 9268753 BLAKE2B 8cbf0ecf25a2bdd148506ca0e2e778b9053759cf5fed3914b915454bd8810b1d7a27e3b2efb5fd29c4e6b189c7e8050f0da15ae6c259712446b5a35f44018ee0 SHA512 e29c98a7da5e329183b7eef86a66f9d6c3473051f64aa6e762714306148547eb0de4220824484071822a9a62bd01a62a09ab16bba4c26e4b847bfc2609728608
DIST pip-26.1.gh.tar.gz 9268351 BLAKE2B 55773ba9ead364dcb8b900fb2f196dd768f688f54ae2ef190ae1739fec3fcc22f260c25df6ffb097e3b14ad321c51535cb71a921eafe4430a3eb30b94e38cc1e SHA512 cb3dde18f1b16ffeb36a0eeec02b64a0a363e1ef50070126fdbb152ba03749830095f85a98267e552169b7953b5839558be2c3ee8f78802cb56dd4f139b72762
diff --git a/dev-python/pip/pip-26.1.2.ebuild b/dev-python/pip/pip-26.1.2.ebuild
new file mode 100644
index 000000000000..3faabd1fa3ed
--- /dev/null
+++ b/dev-python/pip/pip-26.1.2.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/python-multipart/Manifest b/dev-python/python-multipart/Manifest
index 91f9bdbd135a..9ba952bc8fe6 100644
--- a/dev-python/python-multipart/Manifest
+++ b/dev-python/python-multipart/Manifest
@@ -2,3 +2,4 @@ DIST python-multipart-0.0.25.gh.tar.gz 109366 BLAKE2B 73c80b51c5bb24b30e2afdc389
DIST python-multipart-0.0.27.gh.tar.gz 111753 BLAKE2B 4fd4c14cd47d7d492edcb8ee88b78559f61ab109a92c8809430b5ae4c9b291dba48c9c8eb2a6db6deb0562249261cf319d93d4caf3ce2242f8c3eb72d2f6bf03 SHA512 75e85ed0d71ea526369e8010c92f6c0cb02f34df6064de98b2e984ffb927359ca32838eedacd1647bf2cf76a1dadb5b7026f51cacd6d0a561397a1f56d3f9f4f
DIST python-multipart-0.0.28.gh.tar.gz 123332 BLAKE2B 6351341a5dd0eea431f84759c4fb17a2753ac2bab493ec0b0c9dd4205d99aae8f221cbb0f62aade67a4001a917b3c8032bc977ff4f5d9ad7dc4b57c6f18ac8fe SHA512 6631866906882fff1b44627e28d2d3f178b2bd569e1675b10f50ea673889bd93300958834ed8947092442b622d782754020669ec6ffee981bfedd96d1229428e
DIST python-multipart-0.0.29.gh.tar.gz 123649 BLAKE2B d8ed40f744b16879dfe617fc7d4f5b6e5ecf4a9d09c95b69569b5c12e11f07f750b7741d9c6096015a1947d742ef78ab3e107bbc25727651428a707b685efbf2 SHA512 37a20b6fdb26fda1513e6911bbcc699b169a3317bd30c37536a0c3bb3333500cbca432f345c8e199d36e7134a152a9bf471dd3073e3aa48964281fb12c56f8c0
+DIST python-multipart-0.0.30.gh.tar.gz 113838 BLAKE2B 7fef19cb94d0dc5957783c829f7d8719bfba1e31fe70715f0fc5d758088eee80a8d7d5022a232294a07dfcec2d0353b4f30591e0213446954fd036acb1230058 SHA512 bc1794c2c15b71378d631fe6720541c9abb2a073dae1cab4119388bc4ab691ce2d2bdd2019317c10b33e5071275f91bb8d6afb675241cf96982c3d28a65792a4
diff --git a/dev-python/python-multipart/python-multipart-0.0.30.ebuild b/dev-python/python-multipart/python-multipart-0.0.30.ebuild
new file mode 100644
index 000000000000..ab58b5caec35
--- /dev/null
+++ b/dev-python/python-multipart/python-multipart-0.0.30.ebuild
@@ -0,0 +1,40 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( pypy3_11 python3_{11..15} )
+
+inherit distutils-r1
+
+DESCRIPTION="A streaming multipart parser for Python"
+HOMEPAGE="
+ https://github.com/Kludex/python-multipart/
+ https://pypi.org/project/python-multipart/
+"
+SRC_URI="
+ https://github.com/Kludex/python-multipart/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # do not install the backwards compatibility package
+ # we're patching revdeps instead
+ rm -r multipart || die
+}
diff --git a/dev-python/sphinx-autodoc-typehints/Manifest b/dev-python/sphinx-autodoc-typehints/Manifest
index f927c6d4a1ab..ed54a201fb14 100644
--- a/dev-python/sphinx-autodoc-typehints/Manifest
+++ b/dev-python/sphinx-autodoc-typehints/Manifest
@@ -2,3 +2,5 @@ DIST sphinx_autodoc_typehints-3.10.2.tar.gz 74241 BLAKE2B 8ba5a42b508a13d95f4a66
DIST sphinx_autodoc_typehints-3.10.2.tar.gz.provenance 10039 BLAKE2B f3f8699c481cadae8d8d416b4ab04061611f3608e0e445b7aff93c6eabd94979ffe2a82c5d90ac73112ce6197a5134d2e99ced960e0eab98e5fa977df4060f72 SHA512 fb2308cf8e1a5e59ad780e754d6b3247d609cbc4e2ae0e3c2db5bf25c11c81c50ae06fa51d22e9fc0dae3587cc9d793cf1c900c316fd9f5d22e8c95d0df79ed8
DIST sphinx_autodoc_typehints-3.10.3.tar.gz 78698 BLAKE2B 94d827a8e896e99f225cf7b91769a16e940d0eed5e93bbd39af43f2c8f0bfe478360547ecb04493f547f915950e487f848c2affc5e4af7cf9ff9530c68f18080 SHA512 1341f11612f9065ef88f698117d41d8296ec456d6198c9a55be644b666ca5bdd0015ed6999a1afdc2fe7a8c034cd470e125ffb6c21970f4b1e614d2e605cedf2
DIST sphinx_autodoc_typehints-3.10.3.tar.gz.provenance 10182 BLAKE2B 57894c2962a4bd77e549f686f81e71f3a86dc93041fdda12692f19696afb8e69bfa5e3b70faccda3a0c8fea823f06e4608d8acc31d85a2e8b5cc322b12543787 SHA512 6400a52f04923f4ffa7e6e8aae5130abdf55cb842d115632c4233ae47f9639d59c73ef3d9245e7ed839119f82c815e285df381a32da3eeb3b6d548884e24df97
+DIST sphinx_autodoc_typehints-3.10.4.tar.gz 79571 BLAKE2B 6975a7a8af4730b3db5dc03466f2d585b21721a78d63c3d698abd62d68cb8bab12171e817bf7fd26fb0d14bf0a35b61dfe6c410d620bb35fe2a08c30a01f3f4f SHA512 7613dcfb79677586090d215622dd22522813904bae7bef0da81b4869024c2e248125090016ef555c437909b9caffdec8cca0878f37c3bda156bea38a23f9d2ce
+DIST sphinx_autodoc_typehints-3.10.4.tar.gz.provenance 10233 BLAKE2B 076fde02ad406e8f49cb4da9fa1c290b0f24083a75193686896dd00fd3b091a873400bbe08fc61d35d5c14e843d3254fd1e242007b1c0f676885ed7b56a2cabc SHA512 e9447087e1725aa3d6f5bf62d3a2ea628e2405104e45b76231fd1e396d76a73fc816162fe3d2033ead92bd0fbe0de42411dd5ecc302cb49fa536cb786798faf3
diff --git a/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild
new file mode 100644
index 000000000000..f41f2d44aaee
--- /dev/null
+++ b/dev-python/sphinx-autodoc-typehints/sphinx-autodoc-typehints-3.10.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/tox-dev/sphinx-autodoc-typehints
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Type hints support for the Sphinx autodoc extension"
+HOMEPAGE="
+ https://github.com/tox-dev/sphinx-autodoc-typehints/
+ https://pypi.org/project/sphinx-autodoc-typehints/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/sphinx-9.0.4[${PYTHON_USEDEP}]
+"
+# skipping optional test dep on dev-python/nptyping as that package
+# is horribly broken and on its way out
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/attrs-25.4[${PYTHON_USEDEP}]
+ >=dev-python/numpydoc-1.10[${PYTHON_USEDEP}]
+ >=dev-python/sphobjinv-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # Internet
+ tests/test_annotations.py::test_format_annotation
+ tests/test_resolver/test_stubs.py::test_sphinx_build_stub_types_produce_crossrefs
+)
diff --git a/dev-python/tavern/Manifest b/dev-python/tavern/Manifest
index a14b37841690..5a4e682e8e09 100644
--- a/dev-python/tavern/Manifest
+++ b/dev-python/tavern/Manifest
@@ -1,3 +1,4 @@
DIST tavern-3.3.3.gh.tar.gz 723923 BLAKE2B 55566efa69187761d1d838e7e2d517d691e5f7ec33fc7cce4812ed045923626082f9434e3900b6a76cd7ce096eef5340d9aa86b26bbf5980f3ad4dee0c2b11c3 SHA512 5b4019408f8443ffeca38d89c46ffdc849a578be92d1d3b859f1efc437da13e50e427f752789d7341af3a878945f303975daedd1692a8f452c76c266d9659086
DIST tavern-3.4.0.gh.tar.gz 726374 BLAKE2B cd7c873847ba86383a8a1f54ad1d36cd837f496b6548e7c5649f901244607ee50b3c836a61d3576070c2eeb1ccfc33ac27e9c068f0e7eae390d38604c6cff067 SHA512 6629958b05c010836a7cae2586f8a7162255dfe31308347e74c81540d9058cefd728a9b954580f27a01137f40b900a90f3ee1f8e524b63e63a36204bbb69609c
DIST tavern-3.5.0.gh.tar.gz 730426 BLAKE2B f9950cad5a97a1980d53c62237f94cabe150381580fdbd433ff88c7eb1db8144c49b3b2cb0ec955ca0c83a3636041e656bdc37cda88e94d83c7fa981c2571301 SHA512 8126691c746f92e13679bc18ccdd5ec7a69d304a28c4eadb9d9bf50fcc6b907c377e7e76436eaa4fc81416dab1b2952cde981cfea6b3feb53503ed5ed5e1827f
+DIST tavern-3.6.0.gh.tar.gz 732315 BLAKE2B 08b69fadb6389448c38a902200cc097240945a921e67046857430cb046ba6d1d0abc471c97ac0348eb5a0eec2292977c94459260f36b5235ef6315feb08cd0d5 SHA512 2841c89bb178123c03cdd37352ed9146b60c88b0b531cecde4d40752a86a8354dbf95e0542d2878682b0de03129a7c5c60e28e2399c79d8ab79246b42f8ef51f
diff --git a/dev-python/tavern/tavern-3.6.0.ebuild b/dev-python/tavern/tavern-3.6.0.ebuild
new file mode 100644
index 000000000000..78a2bfe6a47d
--- /dev/null
+++ b/dev-python/tavern/tavern-3.6.0.ebuild
@@ -0,0 +1,71 @@
+# 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_{12..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="A tool, library, and Pytest plugin for testing RESTful APIs"
+HOMEPAGE="
+ https://github.com/taverntesting/tavern/
+ https://pypi.org/project/tavern/
+"
+SRC_URI="
+ https://github.com/taverntesting/tavern/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-1[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4[${PYTHON_USEDEP}]
+ dev-python/pydantic[${PYTHON_USEDEP}]
+ >=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ >=dev-python/python-box-6[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
+ >=dev-python/simpleeval-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/stevedore-4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/faker[${PYTHON_USEDEP}]
+ dev-python/paho-mqtt[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( "${PN}" )
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # requires grpc
+ tests/unit/test_extensions.py::TestGrpcCodes
+ # broken with paho-mqtt-2
+ tests/unit/test_mqtt.py::TestClient::test_context_connection_success
+ # TODO
+ tests/unit/response/test_mqtt_response.py::TestResponse::test_same_topic
+)
+EPYTEST_IGNORE=(
+ # require grpc*
+ tavern/_plugins/grpc
+ tests/unit/tavern_grpc
+ # require gql
+ tavern/_plugins/graphql
+ tests/unit/plugins/graphql
+)
+
+src_prepare() {
+ # strip unnecessary pins, upstream doesn't update them a lot
+ sed -i -E -e 's:,?<=?[0-9.]+::' pyproject.toml || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/tibs/Manifest b/dev-python/tibs/Manifest
index 2987124eb6ea..0ac32d883ec6 100644
--- a/dev-python/tibs/Manifest
+++ b/dev-python/tibs/Manifest
@@ -34,7 +34,6 @@ DIST libc-0.2.182.crate 814873 BLAKE2B a5fae27ee77495d8638297523d7428eda4a608109
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
@@ -60,10 +59,8 @@ DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997
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 tibs-0.8.0.tar.gz 1311748 BLAKE2B fadd47e0d93583f7993624ae1a4ebba31dcf985398ae0f077145b32f097e351199e6704f22ef67da11a376f2b69da76d1201ce2d78d283117ade8c224f22e4b0 SHA512 d5aa30a7da00a2e685e4df62b6bfe6db58d9b824bf66570b3410225afa6b3f60e0fa373242985672bf44499df783a8c3d934930d7a7fde99d98f37655d98bdbe
+DIST tibs-0.9.0.tar.gz 1319803 BLAKE2B cbe8c40d97a06b41b931a745fa01b6f7f1af4e1afe5424e0a7479b483b0fb09ddecd586acff6a0665b9162b36c4f9624c8ea66ebb79bc07885a63093d0b5ff8b SHA512 1b08d6bafe998a7adbb470a345566cea9fb3d792bf39e1689681bd5672d9cb3b14e2ba98acb622b37afa9f8a7e4684a02425e9b1d6098d7912e0c494fc6723b1
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
diff --git a/dev-python/tibs/tibs-0.5.7.ebuild b/dev-python/tibs/tibs-0.5.7.ebuild
deleted file mode 100644
index 8248a7e553fd..000000000000
--- a/dev-python/tibs/tibs-0.5.7.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( python3_{11..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
- 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
- foldhash@0.1.5
- foldhash@0.2.0
- funty@2.0.0
- generic-array@0.14.7
- 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
- leb128fmt@0.1.0
- libc@0.2.182
- log@0.4.29
- lru@0.16.3
- memchr@2.8.0
- once_cell@1.21.3
- 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
- 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
-"
-
-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 ~x86"
-
-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/tibs/tibs-0.6.0.ebuild b/dev-python/tibs/tibs-0.6.0.ebuild
deleted file mode 100644
index 6df743fea0ab..000000000000
--- a/dev-python/tibs/tibs-0.6.0.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( python3_{11..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
- 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
- foldhash@0.1.5
- foldhash@0.2.0
- funty@2.0.0
- generic-array@0.14.7
- 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
- leb128fmt@0.1.0
- libc@0.2.182
- log@0.4.29
- lru@0.16.3
- memchr@2.8.0
- once_cell@1.21.3
- 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
- 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
-"
-
-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/tibs/tibs-0.7.0.ebuild b/dev-python/tibs/tibs-0.9.0.ebuild
index 3689fb064f95..dcdfbd783ab6 100644
--- a/dev-python/tibs/tibs-0.7.0.ebuild
+++ b/dev-python/tibs/tibs-0.9.0.ebuild
@@ -5,7 +5,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=maturin
-PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_COMPAT=( python3_{11..15} )
RUST_MIN_VER="1.87.0"
CRATES="
@@ -109,7 +109,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
EPYTEST_PLUGINS=( hypothesis )
distutils_enable_tests pytest
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index 2830f8be0323..833ff788d9a5 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,2 @@
DIST tifffile-2026.5.15.gh.tar.gz 419120 BLAKE2B 74123ffec24cce3c2f5a18a26313944d2f312bdfbfd6e1e60948f94ad2c7ee92e11be9685a143a274432c7d776827ce2d9ff70f32ee8c2d76cc322578d063992 SHA512 59f29d4ff1c084c0cb897dcc8f1b41ef28798c460619bdde1af75d03d49e0590c9686cf4829c58857d342c194b3f1a3c5a4c179b81f614815338c58b23784b37
-DIST tifffile-2026.5.2.gh.tar.gz 418416 BLAKE2B 5124b18e50336d27427e8fdbc4ace8b806947c344bc19b42aad7945d2964559ca2df0ee3c9e8ce280a3346a1426f2528200cb0277bb861d2b840f4dec1e5c7d9 SHA512 bd81296ac64ef446f1ee83fd22a46d5863cf77550024027df8f6768ee4a48fab424e4d471732f975cf41f39c3604f13003a947934bbef1ad312ff39d366b4ba8
+DIST tifffile-2026.6.1.gh.tar.gz 418247 BLAKE2B 2c20840bbf901fda3b001638d93887e1821d8aa4325f903f44bfdc65e1e48eef80ea087dec7443a415f8d767859ddb588e7292dd85805e27ae86894e6463ffb1 SHA512 4296d605ce212b065acb288b8a60515f9fcd4135474523eb68261736c1861606969c54f33a75116b6908c4218a6392a0f9cba008c2409e7744ee5a19d2bb767a
diff --git a/dev-python/tifffile/tifffile-2026.5.2.ebuild b/dev-python/tifffile/tifffile-2026.6.1.ebuild
index 637e43979e1e..637e43979e1e 100644
--- a/dev-python/tifffile/tifffile-2026.5.2.ebuild
+++ b/dev-python/tifffile/tifffile-2026.6.1.ebuild
diff --git a/dev-python/virtualenv/Manifest b/dev-python/virtualenv/Manifest
index a2d1cab8016c..910e13fbdf68 100644
--- a/dev-python/virtualenv/Manifest
+++ b/dev-python/virtualenv/Manifest
@@ -4,3 +4,5 @@ DIST virtualenv-21.3.3.tar.gz 7613784 BLAKE2B b196f2e02c44aca34d53f1e0208bb8b6a1
DIST virtualenv-21.3.3.tar.gz.provenance 9284 BLAKE2B 87ae9b8009c397d949d9fafecafd4690e1bf034edd70287b589ca0a96476087ceba27fffe608a60361a370f80d3b3b9e89cd801a8a41f89441cf24464105b655 SHA512 8c957c4dcaa13886bb03fb52a5a29ad632fa48effbdd7273baf6985c376d760a0b00b5dd0fca6a641baf91b1431b7319beee2916676926ee9c2d57cf49bd778d
DIST virtualenv-21.4.1.tar.gz 7613344 BLAKE2B 5201f4cd0f15c8b2b3a4f4c1b6314c74a6fffe93d34e53668cb3f52c6a5973136dc9e1977ba472331b9186a307840e8178bf5fff19a12dffd46ed3d6cbb1bd4a SHA512 63fbf026545093eb3708e1a107ec70327300d098492dedf0e5da56da8c42ee003b74933f7bca6af5a8b7a9fcee10716e410f1879e7e435d5cd181de768ccc70d
DIST virtualenv-21.4.1.tar.gz.provenance 9418 BLAKE2B a8386626be7b4e0ef19366ce79af229fc1fe61d47e36326bd25dbe8c9d508c25043df0406392fd30a8530d258435273521893a2465f9ce9a9355a3e6ae562eb6 SHA512 d89ac037acac74cd59c08811724e34bec75539ad41d1999876612bd1f41e89f3d9469ae8ee418fcbf47f64f403330bdf31eaf2b4613236d147a4b0934b2127fc
+DIST virtualenv-21.4.2.tar.gz 7613326 BLAKE2B 227f61befd08125224ca35863d547dbb54e0dbe9629f7a777354e77af01117fc240a82c94147347f360a459335938c4105c846a26df88823f55d76bcdce81050 SHA512 5e42f3a751b274284bf3885a964d3e855c0edc24a8a0d676c58645c91f54050202540273023e21d49f0fa25a0a195777296b3cb3e3e76202f2f6328846623897
+DIST virtualenv-21.4.2.tar.gz.provenance 9743 BLAKE2B 9a5ceb18961346943e7cc937d7453dcdca8322b5ae59c2248b06f6a564f9e50e6b67dc30da7b7658a83e3ef5307da3010eebf4585798c47dee742bdbf28c75d2 SHA512 ecfa3182d925867c8fcf83773a3f2246dfd1b8bdd8a48bb92325d32bebe0d0e372dfc6c5608b0f2cf7f6926a230d098e9c7a2e57b4525680116dd42d9042531a
diff --git a/dev-python/virtualenv/virtualenv-21.4.2.ebuild b/dev-python/virtualenv/virtualenv-21.4.2.ebuild
new file mode 100644
index 000000000000..81c5cee9073b
--- /dev/null
+++ b/dev-python/virtualenv/virtualenv-21.4.2.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pypa/virtualenv
+PYTHON_TESTED=( python3_{11..14} pypy3_11 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{13..15}t )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Virtual Python Environment builder"
+HOMEPAGE="
+ https://virtualenv.pypa.io/en/stable/
+ https://pypi.org/project/virtualenv/
+ https://github.com/pypa/virtualenv/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/distlib-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-3.9.1[${PYTHON_USEDEP}]
+ >=dev-python/python-discovery-1.4[${PYTHON_USEDEP}]
+
+ dev-python/ensurepip-pip
+ >=dev-python/ensurepip-setuptools-70.1
+ dev-python/ensurepip-wheel
+"
+# coverage is used somehow magically in virtualenv, maybe it actually
+# tests something useful
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ $(python_gen_cond_dep '
+ dev-python/coverage[${PYTHON_USEDEP}]
+ >=dev-python/pip-22.2.1[${PYTHON_USEDEP}]
+ >=dev-python/pytest-mock-3.6.1[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-67.8[${PYTHON_USEDEP}]
+ dev-python/wheel[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ $(python_gen_cond_dep '
+ dev-python/time-machine[${PYTHON_USEDEP}]
+ ' python3_{11..14})
+ $(python_gen_cond_dep '
+ >=dev-python/pytest-freezer-0.4.6[${PYTHON_USEDEP}]
+ ' 'pypy3*')
+ )
+"
+
+src_prepare() {
+ local PATCHES=(
+ # use wheels from ensurepip bundle
+ "${FILESDIR}/${PN}-21.2.4-ensurepip.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # workaround test failures due to warnings from setuptools-scm, sigh
+ echo '[tool.setuptools_scm]' >> pyproject.toml || die
+
+ # remove useless pins
+ sed -i -e 's:,<[=0-9.]*::' pyproject.toml || die
+
+ # remove bundled wheels
+ rm src/virtualenv/seed/wheels/embed/*.whl || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping testing on ${EPYTHON}"
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data
+ # tests for old wheels with py3.7 support
+ tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke
+ tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support
+ # broken by different wheel versions in ensurepip
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_string
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact
+ tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest_none
+ tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output
+ # hangs on a busy system, sigh
+ tests/unit/test_util.py::test_reentrant_file_lock_is_thread_safe
+ # TODO
+ tests/unit/create/via_global_ref/test_build_c_ext.py::test_can_build_c_extensions
+ # random resource leaks or xdist
+ tests/unit/test_file_limit.py::test_too_many_open_files
+ # Internet
+ tests/unit/create/test_creator.py::test_create_distutils_cfg
+ # we do not use bundled wheels
+ tests/unit/seed/wheels/test_bundle.py::test_every_wheel_on_disk_has_sha256
+ )
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # these don't like the executable called pypy3.11?
+ tests/unit/activation/test_bash.py::test_bash
+ tests/unit/activation/test_fish.py::test_fish
+ tests/unit/discovery/py_info/test_py_info.py::test_fallback_existent_system_executable
+ )
+ ;;
+ esac
+
+ local -x TZ=UTC
+ local EPYTEST_PLUGINS=( pytest-{mock,rerunfailures} )
+ if [[ ${EPYTHON} == pypy3* ]]; then
+ EPYTEST_PLUGINS+=( pytest-freezer )
+ else
+ EPYTEST_PLUGINS+=( time-machine )
+ fi
+ local EPYTEST_RERUNS=5
+ local EPYTEST_TIMEOUT=180
+ local EPYTEST_XDIST=1
+ epytest -o addopts=
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ # remove bundled wheels, we're using ensurepip bundle instead
+ find "${ED}" -name '*.whl' -delete || die
+}
diff --git a/media-libs/libsdl3/Manifest b/media-libs/libsdl3/Manifest
index 7a961d2ffc7b..7b1430521a8a 100644
--- a/media-libs/libsdl3/Manifest
+++ b/media-libs/libsdl3/Manifest
@@ -1,5 +1,5 @@
DIST SDL3-3.2.30.tar.gz 15908113 BLAKE2B 3c0c1435662ce7a5891d28f476c92c4113b3967a9c3a0e36f8fd46069c8352c9b8f518122a761af4e64c374f3afc8476e57b19b7cb02ba282911f304ee21782a SHA512 ccb24c98095013404a7b470591aab6f7d45511580d895d6ce393df669a91d8faa1bf987a52b948fdf2c114ac41805cf6fa20eddacd470172029e1ebb7405e317
-DIST SDL3-3.4.2.tar.gz 15575883 BLAKE2B 6ff5a46b86cb09fe40f485740a59e72b447b631bd463deff72d7bb41d19738a297d23bc0895b70cfa045038ace7c3f0aefe5f70d4f6bceb5e0769d00a59136e9 SHA512 3d9e9514788ecefea586e788af2100a73befffd2b4a9aaccbbe3b3e0c8cb324605b1386b4f7a65cb59022fbaab430efda164a3d1301cbf2315987018bc110f64
+DIST SDL3-3.4.10.tar.gz 15606216 BLAKE2B c4c652e6c023ef6e8d4f1f81f0ffc2db0d620b5899a9ef23a6d46a8feaeef851135ca276435938188172939e5c4ec7a7d46738af65b5eb3bac60cc1cdc351afa SHA512 a66366071aa5dcc5949c3f48b2041dff8850cd05917c1ba5f6ae251e9eef3277d31884fe020251388051887c8c1587cd80457a02bdb96c11eb41065ac9f69958
DIST SDL3-3.4.4.tar.gz 15585523 BLAKE2B d9ac4a1d3fcca0792cdaf7aab1d24dbeaf4c38ef0b7325a4e886d56f2552fede320aca54e50c58ce5839c1b401787c6c254f3a1e63be709f40887bc5d2a139a9 SHA512 2c28a10c49f79efcfbb486156e7271b84cca028b3d6d8b436e99c3be85e5e648aa6543387817b3281ae9f4fcc6cb4046d998c7b273e62d3d9fe76e019ac91b6e
DIST SDL3-3.4.6.tar.gz 15597806 BLAKE2B f1546045e6a2443af8de12775ce3358153c943a62a86264eb64847a56243bfdc8e4e673b9e2ea08345587be090bf6c202f818f01b98e63b7b5ea449816db6084 SHA512 fcdfe5cd3b0cb1674b08a3dd3c195d2da1fc57160e70cde4639e9d4ce7702c8e110c4eb34a61b67cda7c4152587ccbca3d762e1bd5d8b7bd0ce41d86563e4b53
DIST SDL3-3.4.8.tar.gz 15597898 BLAKE2B 5bab0bc0f70aa4b83170942b2186edb29c8a382d439fa5f90a994e5cc7027093c7631ebc2f938906f333ae24af115401cd59b7c2bfaae51daa53e765109a5b07 SHA512 2fd6b0ecb46278e8c625fce85bd3e7e9813c0380c86fde3ccca4c8e608cfeb316c9c905ae471e8c881d651e3a73fce668e3b7709fb7912234e9de1588259e4a3
diff --git a/media-libs/libsdl3/libsdl3-3.4.2.ebuild b/media-libs/libsdl3/libsdl3-3.4.10.ebuild
index 5d658b5f56da..f264513b65e9 100644
--- a/media-libs/libsdl3/libsdl3-3.4.2.ebuild
+++ b/media-libs/libsdl3/libsdl3-3.4.10.ebuild
@@ -12,7 +12,7 @@ S=${WORKDIR}/SDL3-${PV}
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="
X alsa aqua bidi dbus doc ibus io-uring jack kms opengl oss
diff --git a/profiles/package.mask/liguros-workarounds b/profiles/package.mask/liguros-workarounds
index 806cadccd5de..3317dc707fce 100644
--- a/profiles/package.mask/liguros-workarounds
+++ b/profiles/package.mask/liguros-workarounds
@@ -6,5 +6,4 @@
>=net-misc/socat-2
# masking pam 1.7.0 as the passwd command fails with "Module is unknown" https://gitlab.com/liguros/bugs/-/issues/336
-# Bug fixed in 1.7.1+ — only mask the broken release
=sys-libs/pam-1.7.0