summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-17 03:04:43 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-17 03:04:43 -0500
commite354c0374d2aa19224b635b0ce38bd0e6a6b5fc3 (patch)
tree0c997c882ce62ff679b033d6fe8def52afb88216 /dev-python
parent687a263b5212436c1ced6387f36d785b0a34599f (diff)
downloadbaldeagleos-repo-e354c0374d2aa19224b635b0ce38bd0e6a6b5fc3.tar.gz
baldeagleos-repo-e354c0374d2aa19224b635b0ce38bd0e6a6b5fc3.tar.xz
baldeagleos-repo-e354c0374d2aa19224b635b0ce38bd0e6a6b5fc3.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiostream/Manifest2
-rw-r--r--dev-python/aiostream/aiostream-0.8.1.ebuild (renamed from dev-python/aiostream/aiostream-0.7.2.ebuild)0
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.43.96.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.43.96.ebuild80
-rw-r--r--dev-python/braintree/Manifest2
-rw-r--r--dev-python/braintree/braintree-4.47.0.ebuild (renamed from dev-python/braintree/braintree-4.45.0.ebuild)0
-rw-r--r--dev-python/cachetools/Manifest2
-rw-r--r--dev-python/cachetools/cachetools-7.2.0.ebuild (renamed from dev-python/cachetools/cachetools-7.1.6.ebuild)2
-rw-r--r--dev-python/clang/Manifest3
-rw-r--r--dev-python/clang/clang-24.0.0_pre20260916.ebuild (renamed from dev-python/clang/clang-23.1.0.ebuild)1
-rw-r--r--dev-python/emoji/Manifest1
-rw-r--r--dev-python/emoji/emoji-2.16.0.ebuild26
-rw-r--r--dev-python/esp-pylib/esp-pylib-1.1.4.ebuild2
-rw-r--r--dev-python/flit-core/Manifest2
-rw-r--r--dev-python/flit-core/flit-core-4.1.0.ebuild37
-rw-r--r--dev-python/flit/Manifest4
-rw-r--r--dev-python/flit/flit-4.1.0.ebuild (renamed from dev-python/flit/flit-3.12.0.ebuild)2
-rw-r--r--dev-python/gst-python/gst-python-1.26.11.ebuild2
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.31.0.ebuild98
-rw-r--r--dev-python/hishel/Manifest2
-rw-r--r--dev-python/hishel/hishel-1.4.0.ebuild (renamed from dev-python/hishel/hishel-1.3.0.ebuild)10
-rw-r--r--dev-python/jupyterlab-server/Manifest1
-rw-r--r--dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch139
-rw-r--r--dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild61
-rw-r--r--dev-python/lit/Manifest3
-rw-r--r--dev-python/lit/lit-24.0.0_pre20260916.ebuild (renamed from dev-python/lit/lit-23.1.0.ebuild)1
-rw-r--r--dev-python/platformdirs/Manifest4
-rw-r--r--dev-python/platformdirs/platformdirs-4.11.9.ebuild (renamed from dev-python/platformdirs/platformdirs-4.10.1.ebuild)2
-rw-r--r--dev-python/pycurl/Manifest2
-rw-r--r--dev-python/pycurl/pycurl-7.48.0.ebuild89
-rw-r--r--dev-python/pygraphviz/Manifest2
-rw-r--r--dev-python/pygraphviz/pygraphviz-2.0.2.ebuild63
-rw-r--r--dev-python/pypdf/Manifest2
-rw-r--r--dev-python/pypdf/pypdf-6.19.0.ebuild61
-rw-r--r--dev-python/pyproject-hooks/Manifest2
-rw-r--r--dev-python/pyproject-hooks/pyproject-hooks-1.3.3.ebuild37
-rw-r--r--dev-python/python-gammu/Manifest3
-rw-r--r--dev-python/python-gammu/python-gammu-3.2.5.ebuild58
-rw-r--r--dev-python/python-gammu/python-gammu-3.5.0.ebuild (renamed from dev-python/python-gammu/python-gammu-3.4.0.ebuild)2
-rw-r--r--dev-python/python-ldap/Manifest1
-rw-r--r--dev-python/python-ldap/python-ldap-3.4.8.ebuild81
-rw-r--r--dev-python/sphinx-gallery/Manifest2
-rw-r--r--dev-python/sphinx-gallery/sphinx-gallery-0.22.0.ebuild53
-rw-r--r--dev-python/vcs-versioning/Manifest2
-rw-r--r--dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild39
48 files changed, 860 insertions, 184 deletions
diff --git a/dev-python/aiostream/Manifest b/dev-python/aiostream/Manifest
index 2daba4600343..f2e00a7b6335 100644
--- a/dev-python/aiostream/Manifest
+++ b/dev-python/aiostream/Manifest
@@ -1,2 +1,2 @@
-DIST aiostream-0.7.2.gh.tar.gz 47105 BLAKE2B c9369872a3fe2f12f3feaefbb4f267855d60af16ba3cd74b3d0d97ac4f40e3e4d9ddc6b22a5873c1faa22134e6bb65a47aae234cdc2709e5f60b3bc80ec230cd SHA512 667b9094c15be49db44444216ce7cef85e1c1298984822cc0fa800c03385b23c8c3cc3b20b95095a31e2af9e12438c774242bb1f27d0ceaa28da6b497718407c
DIST aiostream-0.8.0.gh.tar.gz 47850 BLAKE2B a40721d0a487692bad082b499a5070f6566302b6b86d55c786814194511667e3491ee1f4c398dade6aaf45091a19ff63a418535cbbcebd8d5b81797b7eefbc38 SHA512 7882e3527c3e180b8afe9d14751beabf7839faff028dc8479756eafe6374aa6cfd28a363207bc29ba512d4f742a1abf18b6b720d0417f20fcf7b8d27ded4dccc
+DIST aiostream-0.8.1.gh.tar.gz 48039 BLAKE2B 325aea7953b3a778e375bc95d44084fa0ba3d408be2c8dc97cbe067e72ee74b4d07dc320a6cb2c4c31e4064f784f0e782f1c8f73ed5538214a2afa6d37d5cd4f SHA512 f1e6c933a574e62856428c09df475bc5a8cb1b98accd29e80d65adc40ee161768bc7a007e275b89ef85b54c8e958435b32e4b28ae72e039c3a6b1718fcd6f2e3
diff --git a/dev-python/aiostream/aiostream-0.7.2.ebuild b/dev-python/aiostream/aiostream-0.8.1.ebuild
index ba7515c52bf9..ba7515c52bf9 100644
--- a/dev-python/aiostream/aiostream-0.7.2.ebuild
+++ b/dev-python/aiostream/aiostream-0.8.1.ebuild
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 7739109fafa2..3c16db45d4cd 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -5,3 +5,4 @@ DIST boto3-1.43.89.gh.tar.gz 1225424 BLAKE2B 625bb37a542644c8fe37aab42a115bf8be2
DIST boto3-1.43.93.gh.tar.gz 1230597 BLAKE2B 183d94cea0d706147a75674cb85a600ad21c2683618ba18a14e8630f23b19c94c11d0bc03ddc517194dad42dfb9445d1b34076b1f1b3ecbcec51ceccf30e5db0 SHA512 01612175497aada3b3fdf62ffcdb0626dc0fd5090d7d156d2a1f5fad4ec19b904ffecfd4b59880cf71ec07658bf00c2245bdd3c989a7513689ab59a2511e06ea
DIST boto3-1.43.94.gh.tar.gz 1231556 BLAKE2B 759bb159fb0fc616fab031fdf398482fc559d9a08f8a66bc62d7d4d5284a8a08886eae757f47482cbcc60a45f8bf55df781d963a9b79c2ca7922ee54410b991b SHA512 7c642a77a6d6f218a3eff7f3477cba09b4b4f0f750313adc8f9904639c382566412db2e9aed98353cdd8f180c7fce0a7fd9793479b3dcbe50c08c51c1b13d4c8
DIST boto3-1.43.95.gh.tar.gz 1232157 BLAKE2B 31fe611aa3023f8328a974e83b2c7599b2d0956989eee20ec4a1542b62e00f1295d67f62c0f2173ae3395d96cd5b9a03925bb2753fa3c42b96f97a9fbe79f785 SHA512 31ea41eed63b0fd6e18f76638d92ac7b22219f443b52087e779956b467bdb77c754418c4e9de462b39032988e243087c5b9d3038ec07a9e9d55772f2a2c0d2b3
+DIST boto3-1.43.96.gh.tar.gz 1232904 BLAKE2B e040695656e1eef774e3e3832864e9e4fd68d0dd7eab2f9aacf21d1e35c381c04797a2261e88cd6a7b42b4ba665aeef7039b057810256deff06180d0b3f124e9 SHA512 afc7804b902ee8c4375a68d31a871dbd44a8571899e684dba68a181c2dfda4d83690ee0479bc5bacfca30f6909e31be3d355ff2946930ccdfe2f5801a7c123da
diff --git a/dev-python/boto3/boto3-1.43.96.ebuild b/dev-python/boto3/boto3-1.43.96.ebuild
new file mode 100644
index 000000000000..93fbbe6dd59b
--- /dev/null
+++ b/dev-python/boto3/boto3-1.43.96.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.19.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 6364e95a1a18..3ce404ef7762 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -5,3 +5,4 @@ DIST botocore-1.43.89.gh.tar.gz 17111395 BLAKE2B 25837125b5d9477b011c065594ffa1b
DIST botocore-1.43.93.gh.tar.gz 17142451 BLAKE2B eec2955aa252ff8bc49c24095006f0c75669f7946dcdaece4c7f640e724910b14c1b1b0b07fb8e6661d96e95fe148201381d70b4685a7282c2c64f2656fde57a SHA512 e021322d630deb94f738aa5096a7b72ffdeffbeaf5d3f6fbc9e835b7f41afa25a738d353e37b4fbd73b5b8889334ccdf4caec64d4c63e4e966e0e245c6117cf0
DIST botocore-1.43.94.gh.tar.gz 17147633 BLAKE2B 2a872b6b2289e8a330ea901b32faaa3a1950782009103b27fdc7d54cd0d6163ce3f5fc3bc8ef722fc63fef76db805fce7c2e40854858b6b8c2bb293b264adbbf SHA512 6f63be5ab5f625c018de0c6e0046eeb2e6adfd1913bebe6b91615968309ba41c9ee1d36baa38abca6e714a43c679e88a1931a5c9fe4dde34fa98a9a562280854
DIST botocore-1.43.95.gh.tar.gz 17151488 BLAKE2B d895c9a42387b0b5425e54741d9894da2afe5d83977c079a47e4d6cdccc157e6e9395953f033f8739ce7b423f91b1522e303711cb38753af3d3fb238798c3b9c SHA512 73f2a6d6fc3a6b49e8c61a338357282b08d80e567b9c7dd025ac1a7132f7ab48e02c6f08290b1c65e09e745653605775076cc706420fbed25f216a9899e7c56b
+DIST botocore-1.43.96.gh.tar.gz 17158154 BLAKE2B 29d6f71cec5f1d9d4be88a580aae8cfbacee15252635fafa6d82ee35e8c086bafae04de57d695c18dfa23a86da212bf88b08c4e7b108bc3c629f0830b3f2d04c SHA512 623dc3218688d78c5b9bd7542ad584394aacb82117c9e7c8abf7d2531780cd965dea451fa209ae348f189746611276f9da321805adb8833b2d61f5e2c5c1b8de
diff --git a/dev-python/botocore/botocore-1.43.96.ebuild b/dev-python/botocore/botocore-1.43.96.ebuild
new file mode 100644
index 000000000000..14ad5b2d1f27
--- /dev/null
+++ b/dev-python/botocore/botocore-1.43.96.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ # The test suite can eat up a lot of memory when running via xdist,
+ # and slow down some tiny tests. Let's just run a safe subset
+ # of tests known to be slow-ish in parallel, and the rest in series.
+ local parallel_tests=(
+ tests/functional/*/
+ tests/functional/test_event_alias.py
+ tests/functional/test_[cds-z]*.py
+ tests/unit/
+ )
+
+ epytest "${parallel_tests[@]}"
+
+ local EPYTEST_IGNORE=( "${parallel_tests[@]}" )
+ EPYTEST_XDIST= epytest tests/functional
+}
diff --git a/dev-python/braintree/Manifest b/dev-python/braintree/Manifest
index 9021e37106ea..3fcdaa1731ef 100644
--- a/dev-python/braintree/Manifest
+++ b/dev-python/braintree/Manifest
@@ -1,2 +1,2 @@
-DIST braintree_python-4.45.0.gh.tar.gz 273684 BLAKE2B 70784ec41d9e6fe9f80cdf3d0ac1b8386c2b25350082fd3ccae91709abacde75bec6ded6cf16fb53aeb18ff68038e9ae515e42460d464a6deae5a26b23966965 SHA512 daf3e860b5a7c30cfbf2c58d959654ab3a18e40e4eef78f20fd3a40115f0bb50648412b8c153149816e985a01b9cce82c3c938a5ef6f51af15c75ef8eeb7c7c5
DIST braintree_python-4.46.0.gh.tar.gz 275900 BLAKE2B 656199b1c76d396a69c604a05f3fa27f23bc3536a1415fca5acd666d3e3254e4fe1d0bb683d010952ebf720b036ab550cf0db55b80c1cb0914a766288162df81 SHA512 16b8dc929ca14bf517452d2db2ee4727009461f26c61a73c99da2f754fe19b9314570ae2830192ffbc914924dfc0224e71b9b2f99b278a92bc8d4bd0a2eef9e3
+DIST braintree_python-4.47.0.gh.tar.gz 278775 BLAKE2B f57b793336d4c531d25562579eb10cc42e991152f4c1da1a6a73978a26b7b43cad1ac42fb47847873d0e6d9f73b188924761f83fe33b65c8ea63123e8353b26e SHA512 22c81042f6885e114bab51a24652a30374a5e5046a13d78543c842b591649a96337326de18348733bf7f8663e605cc6c4b44fbc2b8aabb5929dface674482d48
diff --git a/dev-python/braintree/braintree-4.45.0.ebuild b/dev-python/braintree/braintree-4.47.0.ebuild
index 376089a2bfd1..376089a2bfd1 100644
--- a/dev-python/braintree/braintree-4.45.0.ebuild
+++ b/dev-python/braintree/braintree-4.47.0.ebuild
diff --git a/dev-python/cachetools/Manifest b/dev-python/cachetools/Manifest
index cdc6742ff530..82feb4cf5853 100644
--- a/dev-python/cachetools/Manifest
+++ b/dev-python/cachetools/Manifest
@@ -1,3 +1,3 @@
-DIST cachetools-7.1.6.tar.gz 40572 BLAKE2B b11f757a9cd1e57e39484ac72518a26389f5cda85b08f461c7245e9b7b3a214a48cbe0b903538532a1fd15086215e7824bd49fd97c68066d712faeb28f238e1c SHA512 5628ee31363b6869250309ecf075289480165e4a6631105f73b4ab27892e05e55d7107e48cd339bc4e18e07f58fb07328309521d28f0e3640d83ea9a35b2ef65
DIST cachetools-7.1.7.tar.gz 40680 BLAKE2B 587de1ddfc5673655e76376d8b535a8f2fc759ae52e2be8c98921d4c1e98f1a5279bc6bb371b7410a4b3f8c01982686ef9b3d5494b282373e24458247f36ebf6 SHA512 b0ecf3cea4f94ea5297fc6ee5ab164b80154d9fc17f7cf7d8e292a8c7dfaa65b0d573c78276b41263006daae81a2e29702658d3c0a5688560fbe5058070a395a
DIST cachetools-7.1.8.tar.gz 40909 BLAKE2B 7079716f3eaaa3d2f70dbc6806920f08c971ef107c4dcdee83cf922ad22bdfbda8d1fa09b0c32c139e89c2e9390a1c8980ddddff81c100ee28fecd51a8e29ba0 SHA512 702f07689e1f6a0fd7f2bd614d198f936df85408cc0ca8ef15b96cc4e35dfb0a511377f0a62f92e3b388162e9975e45fbadf0130679b175c2cea853ace531ecf
+DIST cachetools-7.2.0.tar.gz 41129 BLAKE2B 6d3f48391d2f515ac828834851d97abea7e1f0ec00fed4bf178c5afc484f6f0f913222dcc38f8bb3ede0a71fa946f0905ed9dacecf62f741a33cca1195bb496a SHA512 10d73a168633e51af9f33f9c1326c7146f264f028d0571f42852e31cbeaedf1a1f96a29e4b37169c155ca12ad9006f7fad58fccfed2bebea56fd5b200e8ddef4
diff --git a/dev-python/cachetools/cachetools-7.1.6.ebuild b/dev-python/cachetools/cachetools-7.2.0.ebuild
index c3353be4b141..ec602b06cbfd 100644
--- a/dev-python/cachetools/cachetools-7.1.6.ebuild
+++ b/dev-python/cachetools/cachetools-7.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-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"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index bb684066886b..c1e1a95276a5 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -1,3 +1,4 @@
+DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db
DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
@@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
-DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061
-DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
diff --git a/dev-python/clang/clang-23.1.0.ebuild b/dev-python/clang/clang-24.0.0_pre20260916.ebuild
index 2a1b09426737..aa99ad725bb8 100644
--- a/dev-python/clang/clang-23.1.0.ebuild
+++ b/dev-python/clang/clang-24.0.0_pre20260916.ebuild
@@ -12,7 +12,6 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/emoji/Manifest b/dev-python/emoji/Manifest
index 4ee19be5fa9b..44abf376282f 100644
--- a/dev-python/emoji/Manifest
+++ b/dev-python/emoji/Manifest
@@ -1 +1,2 @@
DIST emoji-2.15.0.gh.tar.gz 685216 BLAKE2B 44e7754cc98d0ed55052e1340e86ddb0e826c6f75623a257afd376e277d0cc3f0e25eb00beb735812314db73dd972a236e369d390d62738c4bf2313b4dfa84a7 SHA512 6cb37f7914366d36200db8436e620ab26fcf8964c590c629ef0e47a8da875c02cff014c276edb68a62f73596eac37a12356acb3353638a19891dbd0de01a7645
+DIST emoji-2.16.0.gh.tar.gz 688266 BLAKE2B fbefdb4c92d57c5370b32f966fbd0a90272c24b0ddd20370eb8297b067e85132e13fe2eb45bc1d93d0b5d17d4d681d4bfe710d79b7465e7ca7d74e715ad75998 SHA512 6e23d93878ac2a7da1d966075dbee3f64eac45d5502dec72227805e63169655357e25fb5de24b8f88445f455edf32231d9647db5cad51560786c1d6780865308
diff --git a/dev-python/emoji/emoji-2.16.0.ebuild b/dev-python/emoji/emoji-2.16.0.ebuild
new file mode 100644
index 000000000000..d9b10c8aab96
--- /dev/null
+++ b/dev-python/emoji/emoji-2.16.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Emoji for Python"
+HOMEPAGE="
+ https://github.com/carpedm20/emoji/
+ https://pypi.org/project/emoji/
+"
+SRC_URI="
+ https://github.com/carpedm20/emoji/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
index 48ae86528e95..cccd709cbbca 100644
--- a/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
+++ b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm"
RDEPEND="
dev-python/click[${PYTHON_USEDEP}]
diff --git a/dev-python/flit-core/Manifest b/dev-python/flit-core/Manifest
index 2b8355c376e4..96fa747374a3 100644
--- a/dev-python/flit-core/Manifest
+++ b/dev-python/flit-core/Manifest
@@ -2,3 +2,5 @@ DIST flit_core-3.12.0.tar.gz 53690 BLAKE2B 2dbc8cb1803d2b05693d458ab29d141631af2
DIST flit_core-3.12.0.tar.gz.provenance 9041 BLAKE2B 565e305d207998db9d44d21a857f71e20aff110126f099800461f551bac89a3dd692eafe053c54f4f68a7d9d34b9c60c52415a80ccbce4f577963da59164cc3e SHA512 a59272bcc25fafbba551030602fc0ae7601f2d5aa912a37eedf7e364f69186719f0636cd824c4c51145f1c848b5a8005c5b886a593c9b4c46afd9f039000f04f
DIST flit_core-4.0.2.tar.gz 53083 BLAKE2B 3825bcb6dbfde73907e2705de94a33d7d128313ed19c9a264c6a8e994fc00937aa85d5c074e4958944f360f0da92b5704ec16d3dbdb3c6fb2ba3b806122ee233 SHA512 d0d3ace00529392cb69813ee975b37bbcdadbacb1ff9ad841838cb821f3732ae3c075fe3c740ca88bf7017b6d49739602382fed4603cfb0f49331f5b5da6dfb3
DIST flit_core-4.0.2.tar.gz.provenance 8836 BLAKE2B 399becda7ce362501d1526bcea33bcec6b1c45ae595fe791d9fa8d1c121b1d1a8986940792f50910584952c5eb685ab2be3a858225e2ca34f793035c5c34261f SHA512 41f37ef2a0b0f4173a0df3cbff86b92b9bf6dd1605786c2eabf33f8c881c63226a4e9beafeecdf6f6c82d07866fe05e4c20075b4317cceb1ea2986cf9c08a8ee
+DIST flit_core-4.1.0.tar.gz 54678 BLAKE2B 512c8dcc19a9b7b8a51be5f0853db96a332b02fed7c65f1e7f9ec91ed0b691b2764622a69fa680152ae7f323d479bef6f13b26a6fc43cd62044d2b51fecdf73c SHA512 a6f65a6af0c164886a35f7709684d967c24a49bf302c57590cb1a97b64a3a6f6a6bcbb488c5d3a24c927bf04db183e4f0f23fa50b3545c969fa9c50035e19bca
+DIST flit_core-4.1.0.tar.gz.provenance 9406 BLAKE2B 781f3718df13de9ea1673f8258358cd60582bbd4e89af63181d71e0f71e050a6fbaf59773865b9e2b5f0c77914239f92c0878f31cc7dae251152bbf969c9709f SHA512 1b73d3ccf54648a908f7dcb84585c3f7fae3ea3c03ad2d97587c38a789d8d43b94c4fb8f6703f07ce7a77c191b51b5771465fa99b50d99d408f4f7d98574952a
diff --git a/dev-python/flit-core/flit-core-4.1.0.ebuild b/dev-python/flit-core/flit-core-4.1.0.ebuild
new file mode 100644
index 000000000000..021aff4643d7
--- /dev/null
+++ b/dev-python/flit-core/flit-core-4.1.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2019-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=standalone
+PYPI_VERIFY_REPO=https://github.com/pypa/flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simplified packaging of Python modules (core module)"
+HOMEPAGE="
+ https://pypi.org/project/flit-core/
+ https://github.com/pypa/flit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? ( dev-python/testpath[${PYTHON_USEDEP}] )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unbundle deps
+ rm -r flit_core/vendor || die
+ sed -i -e 's:from \.vendor ::' flit_core/*.py || die
+ sed -i -e '/license-files/d' pyproject.toml || die
+}
diff --git a/dev-python/flit/Manifest b/dev-python/flit/Manifest
index f2878161df35..a3314a159f27 100644
--- a/dev-python/flit/Manifest
+++ b/dev-python/flit/Manifest
@@ -1,4 +1,4 @@
-DIST flit-3.12.0.tar.gz 155038 BLAKE2B f38d846b78a4840fb94869393c5b757fbf54cf871d0318abdfa9172ddde22e0f2848b3ea4a51df57bce8539fb185308628f78d3e88c2ecd20d9ec51f9b825df9 SHA512 f8ed1f0e53452def182453db91a44c9ded5413fe74e2678bb7d56b3640d6ba6f43cccb55ad73e939cc5ca236fa2bf7b3e0f6d77fe4a4f12f90a9e437b561edb2
-DIST flit-3.12.0.tar.gz.provenance 8986 BLAKE2B d8ba7c142ac67ddc0b711a806916bad06eb72407cfca75d7543e0963e166752f802984f975d78d430b6e8c8810d340fc9e6989d6a0b4ae9589acf7c33a249a57 SHA512 6105c8ed244c2de39cff9d8e8d9d3b480b6a6a1937e0bd1e1cd5ec6854bbee4d26f95213b76b57baa139132cc88a32f66cdee52b88e1c3db83e59f82fca12b1d
DIST flit-4.0.2.tar.gz 154725 BLAKE2B fe2b85d8cd79e33023cbdd29beb569de9afda26b452a6211905459e1421a3310e5ebc92348c62c8e3919b2fe8d80ff2a2507774e76b21511b3ffddcc287cc73f SHA512 aa26f1b817e23222cfb775a46e4d8fd64e9d3e0bc623ce0f1762ce30604df9d5c1b076fa6d806f13b058f11bcdb68b39d9d8717f2cbc7d0ffe33b7cc669abd4c
DIST flit-4.0.2.tar.gz.provenance 8875 BLAKE2B edff0f307dcd89d54c24c32067c3c6663a0d4ab3cb1722b387f6ed506d8f2784a2a827bd33ca83573e8d88f2cf893acaef71d6153f49e332bc89f85c32e93a56 SHA512 0c3a7b87e7e06cb41fe191b81ca0d493e9addbed01a4a494ca35ddbb76212315506bcea905161813caef2e837c98bba4176d7592d2252c68b209c06086e365fa
+DIST flit-4.1.0.tar.gz 157085 BLAKE2B 9fdfa02b2d079267ba51775066fb48fe8606c2cb7527c43a6eaed6ac522fa8626fca0cff3fb47198e1e44be9f733cf2c9bf00cb3a37042203b01b5b88b43de68 SHA512 3875572d922f940b5bc562b39e0c88f1166b3a819590d1ba13a73e80c2b9a43c2c237a9ab8c44e9ac405ab1d8368952e1264a1e7010e844ebb3e8faccc2b76e5
+DIST flit-4.1.0.tar.gz.provenance 9253 BLAKE2B b0d4ac5ed30ffae235250faded6857057ff40c1495bdeb5258bbad4f78dbad2d05fed8577943158fb47e46047f30c367a0fa285855cf34398c55297020b9be1f SHA512 8588c20247c9c4f1105ff08e033132cea067391971992cf37f75c666e28a676402914fbdc28dcf15bb20485d5fdb276424e47605da3f8eb495b26ef81b42dfe2
diff --git a/dev-python/flit/flit-3.12.0.ebuild b/dev-python/flit/flit-4.1.0.ebuild
index fc3006097653..c79615507f5a 100644
--- a/dev-python/flit/flit-3.12.0.ebuild
+++ b/dev-python/flit/flit-4.1.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=flit
+DISTUTILS_USE_PEP517=flit-core
PYPI_VERIFY_REPO=https://github.com/pypa/flit
PYTHON_COMPAT=( python3_{13..14} )
diff --git a/dev-python/gst-python/gst-python-1.26.11.ebuild b/dev-python/gst-python/gst-python-1.26.11.ebuild
index 6c19ba181f03..9bfb3d37b86c 100644
--- a/dev-python/gst-python/gst-python-1.26.11.ebuild
+++ b/dev-python/gst-python/gst-python-1.26.11.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="LGPL-2+"
SLOT="1.0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index 4cefa9fa14ca..cdb66f53a5a7 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1,2 +1 @@
-DIST hatch-hatchling-v1.31.0.gh.tar.gz 5336511 BLAKE2B 51a18127fa90768fd3116faa1bf500b7f95315fa995486922023ef3a55530c7f658ab6041a0f4cbb254f114086c09f3828d38493150ca6d8f54da8d862f4bbec SHA512 707efa1d72bde3e80bb5210602e9f0389f1659dfe65bac6ab33ecfa0e9b433a42c3dac1e92a86398c72dbcb72a69e9dc1db9466c2a9de38993025c52578db2f1
DIST hatch-hatchling-v1.32.0.gh.tar.gz 5360982 BLAKE2B a3eea27c39600ccf7b45e1b8de28112f3b92380f80579049013101cefde5f734225d71ac330d1b76a6c39c8f2e4a6e8b116f548b5eab305852a71d6d0b6c0094 SHA512 e8165a4444675382938502e692877cdad4a3f24e11f4b38bd0f6ae6ecc8a4fdde343ef5827719c803e5b40beddfd2a934d633270f0c200e3615c9b797038681e
diff --git a/dev-python/hatchling/hatchling-1.31.0.ebuild b/dev-python/hatchling/hatchling-1.31.0.ebuild
deleted file mode 100644
index ece352fb363d..000000000000
--- a/dev-python/hatchling/hatchling-1.31.0.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=standalone
-PYTHON_TESTED=( python3_{13..14} )
-PYTHON_COMPAT=( python3_{13..14} )
-
-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/hishel/Manifest b/dev-python/hishel/Manifest
index 73d03205f618..6f7eb9628d31 100644
--- a/dev-python/hishel/Manifest
+++ b/dev-python/hishel/Manifest
@@ -1,2 +1,2 @@
-DIST hishel-1.3.0.gh.tar.gz 820064 BLAKE2B b72932d00c848d135dc0607a1ea916ab6390faa7f75135a5e1f0bbc39a3f957ad87d04db27869abd86e21b12350225afe00c2d672f921b1367fb8dc5148d5bd5 SHA512 bf7ba8be77a73030f2f5395a3ffc46054ced3a0269b5d1bab8ff08d2d1c6561482984990946c48c58e6741281bc621f0b0a121c96fb3e9307f1858a089fe31c1
DIST hishel-1.3.1.gh.tar.gz 816578 BLAKE2B e6431600903281c6d7984b89ff3b48623310d15e0fb95f2f52cbf8b5d87e464371162754a80730c2565aa7a33a045515baaeac669aed2bd773da5ecfd0bb7f09 SHA512 c778256359d0978fdcd106e73d43a2075c68bae711c4fa62f0e025693621d1eeec67c828bc95213e1ffa1a8fe6708aadd6fa3bbfa8fd8eed9ea319d1b580d7c3
+DIST hishel-1.4.0.gh.tar.gz 820428 BLAKE2B 7d8745660a993b3279153912e488c0d1e14e69e2aa5634ac171af25cecf7c4d8cb9b16bd8e0d0e03c789f8c74a64fdcb83aa74b9dbc1115fb9b993ce1e2792b0 SHA512 255495cea3941778d13525bf8cc25f7ba406a0fc4a6986924110e4239afc79ba1ecc815b604b3b13d4163853837ca7bcda306d1b9431f77abfaa52d7e6e70729
diff --git a/dev-python/hishel/hishel-1.3.0.ebuild b/dev-python/hishel/hishel-1.4.0.ebuild
index f4a9d95ca708..67b2286f7a4b 100644
--- a/dev-python/hishel/hishel-1.3.0.ebuild
+++ b/dev-python/hishel/hishel-1.4.0.ebuild
@@ -23,9 +23,6 @@ SLOT="0"
KEYWORDS="~amd64 ~arm64"
RDEPEND="
- >=dev-python/anyio-4.9.0[${PYTHON_USEDEP}]
- >=dev-python/anysqlite-0.0.5[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.1.2[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-1.14.1[${PYTHON_USEDEP}]
"
@@ -35,9 +32,13 @@ BDEPEND="
dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
test? (
dev-db/redis
+ >=dev-python/anyio-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/anysqlite-0.0.5[${PYTHON_USEDEP}]
>=dev-python/anysqlite-0.0.5[${PYTHON_USEDEP}]
>=dev-python/boto3-1.15.3[${PYTHON_USEDEP}]
>=dev-python/fakeredis-2.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ >=dev-python/httpx2-2.9.1[${PYTHON_USEDEP}]
>=dev-python/inline-snapshot-0.28.0[${PYTHON_USEDEP}]
>=dev-python/redis-6.2.0[${PYTHON_USEDEP}]
>=dev-python/time-machine-2.19.0[${PYTHON_USEDEP}]
@@ -51,9 +52,8 @@ distutils_enable_tests pytest
src_test() {
local EPYTEST_DESELECT=(
# Internet
- tests/test_async_httpx.py
tests/test_requests.py
- tests/test_sync_httpx.py
+ tests/test_{,a}sync_httpx{,2}.py::test_simple_caching{,_ignoring_spec}
)
local redis_pid="${T}"/redis.pid
diff --git a/dev-python/jupyterlab-server/Manifest b/dev-python/jupyterlab-server/Manifest
index e34234f90b82..82c604eb04d3 100644
--- a/dev-python/jupyterlab-server/Manifest
+++ b/dev-python/jupyterlab-server/Manifest
@@ -1 +1,2 @@
DIST jupyterlab_server-2.28.0.tar.gz 76996 BLAKE2B 7242e471f7d7630facdfce3112e797576521807245dc0cbd23937c716c70eb64ce8da655981bd04bc2f879a3e4c021f4d097d393e34c2d79fe75bdf71259c290 SHA512 b12119ca8c43dce3a4bbc385d944f70c391b95b55ba79cf9c7319e90a1e1fdb13d92dbac159fea147866accf5a2e29b3cff0ae3534f81af8ff763c688af75712
+DIST jupyterlab_server-2.28.1.tar.gz 78141 BLAKE2B 9173dbcc34025e429bfc3dead11ae55f19bc3194d0d72816d1c8c6eff741f5e1a392afa59d3ea3d2173f4623587a156f0dc625d2abc0ad15381beac93e3ade9e SHA512 fdfbb5464cdb3cbce702782df5b57ab53f595115cd6a0efbe70f26909c697af027c648f9d79e6cd1c499556ce30d9e0a254fcff07888981dc6b6b90670ac842e
diff --git a/dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch b/dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch
new file mode 100644
index 000000000000..39f6a628ccc0
--- /dev/null
+++ b/dev-python/jupyterlab-server/files/jupyterlab-server-2.28.1-openapi-0.23.patch
@@ -0,0 +1,139 @@
+From 204d494f1961ada729937a4df26afe4111b5a24a Mon Sep 17 00:00:00 2001
+From: Evgeniy Martynenko <enimalojd@altlinux.org>
+Date: Mon, 17 Aug 2026 14:00:52 +0300
+Subject: [PATCH] openapi: support openapi-core 0.19 through 0.23
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+openapi-core 0.23 removed the openapi_core.spec module and its Spec class.
+
+Use the public OpenAPI API for loading specifications and validating requests
+and responses. Update the dependency constraints and add coverage for
+get_openapi_spec().
+
+Signed-off-by: Michał Górny <mgorny@gentoo.org>
+---
+ jupyterlab_server/spec.py | 8 ++++----
+ jupyterlab_server/test_utils.py | 21 ++++++++++++---------
+ pyproject.toml | 6 +++---
+ 3 files changed, 19 insertions(+), 16 deletions(-)
+
+diff --git a/jupyterlab_server/spec.py b/jupyterlab_server/spec.py
+index 94347b9..3c07466 100644
+--- a/jupyterlab_server/spec.py
++++ b/jupyterlab_server/spec.py
+@@ -9,17 +9,17 @@ import typing
+ from pathlib import Path
+
+ if typing.TYPE_CHECKING:
+- from openapi_core.spec.paths import Spec
++ from jsonschema_path import SchemaPath
+
+ HERE = Path(os.path.dirname(__file__)).resolve()
+
+
+-def get_openapi_spec() -> Spec:
++def get_openapi_spec() -> SchemaPath:
+ """Get the OpenAPI spec object."""
+- from openapi_core.spec.paths import Spec
++ from openapi_core import OpenAPI
+
+ openapi_spec_dict = get_openapi_spec_dict()
+- return Spec.from_dict(openapi_spec_dict) # type:ignore[arg-type]
++ return OpenAPI.from_dict(openapi_spec_dict).spec
+
+
+ def get_openapi_spec_dict() -> dict[str, typing.Any]:
+diff --git a/jupyterlab_server/test_utils.py b/jupyterlab_server/test_utils.py
+index 094f020..a19c022 100644
+--- a/jupyterlab_server/test_utils.py
++++ b/jupyterlab_server/test_utils.py
+@@ -7,19 +7,22 @@ from __future__ import annotations
+ import json
+ import os
+ import sys
++import typing
+ from http.cookies import SimpleCookie
+ from pathlib import Path
+ from urllib.parse import parse_qs, urlparse
+
+ import tornado.httpclient
+ import tornado.web
+-from openapi_core import V30RequestValidator, V30ResponseValidator
+-from openapi_core.spec.paths import Spec
++from openapi_core import OpenAPI
+ from openapi_core.validation.request.datatypes import RequestParameters
+ from tornado.httpclient import HTTPRequest, HTTPResponse
+ from werkzeug.datastructures import Headers, ImmutableMultiDict
+
+-from jupyterlab_server.spec import get_openapi_spec
++from jupyterlab_server.spec import get_openapi_spec_dict
++
++if typing.TYPE_CHECKING:
++ from jsonschema_path import SchemaPath
+
+ HERE = Path(os.path.dirname(__file__)).resolve()
+
+@@ -32,7 +35,7 @@ class TornadoOpenAPIRequest:
+ Converts a torando request to an OpenAPI one
+ """
+
+- def __init__(self, request: HTTPRequest, spec: Spec):
++ def __init__(self, request: HTTPRequest, spec: SchemaPath):
+ """Initialize the request."""
+ self.request = request
+ self.spec = spec
+@@ -76,7 +79,7 @@ class TornadoOpenAPIRequest:
+ # https://github.com/OAI/OpenAPI-Specification/issues/892
+ url = None
+ o = urlparse(self.request.url)
+- for path_ in self.spec["paths"]:
++ for path_ in self.spec["paths"].keys(): # noqa: SIM118
+ if url:
+ continue # type:ignore[unreachable]
+ has_arg = "{" in path_
+@@ -152,16 +155,16 @@ class TornadoOpenAPIResponse:
+
+ def validate_request(response: HTTPResponse) -> None:
+ """Validate an API request"""
+- openapi_spec = get_openapi_spec()
++ openapi = OpenAPI.from_dict(get_openapi_spec_dict())
+
+ # openapi_core 0.18 declares body, data and headers as str and Mapping in its
+ # Request and Response protocols. Tornado hands over bytes and a Headers object,
+ # and the validators read both, so the adapters above return what tornado gives.
+- request = TornadoOpenAPIRequest(response.request, openapi_spec)
+- V30RequestValidator(openapi_spec).validate(request) # type: ignore[arg-type]
++ request = TornadoOpenAPIRequest(response.request, openapi.spec)
++ openapi.validate_request(request)
+
+ torn_response = TornadoOpenAPIResponse(response)
+- V30ResponseValidator(openapi_spec).validate(request, torn_response) # type: ignore[arg-type]
++ openapi.validate_response(request, torn_response)
+
+
+ def maybe_patch_ioloop() -> None:
+diff --git a/pyproject.toml b/pyproject.toml
+index 0dd1bca..f48ecf9 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -64,15 +64,15 @@ docs = [
+ "jinja2<3.2.0"
+ ]
+ openapi = [
+- "openapi_core~=0.18.0",
++ "openapi_core>=0.19,<0.24",
+ "ruamel.yaml",
+ ]
+ test = [
+ "hatch",
+ "ipykernel",
+ "pytest-jupyter[server]>=0.6.2",
+- "openapi_core~=0.18.0",
+- "openapi-spec-validator>=0.6.0,<0.8.0",
++ "openapi_core>=0.19,<0.24",
++ "openapi-spec-validator>=0.6.0,<0.9.0",
+ "sphinxcontrib_spelling",
+ "requests_mock",
+ "ruamel.yaml",
diff --git a/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild b/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild
new file mode 100644
index 000000000000..a4fc9802b6c6
--- /dev/null
+++ b/dev-python/jupyterlab-server/jupyterlab-server-2.28.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Server components for JupyterLab and JupyterLab like applications"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyterlab/jupyterlab_server/
+ https://pypi.org/project/jupyterlab-server/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/babel-2.10[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.3[${PYTHON_USEDEP}]
+ >=dev-python/json5-0.9.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-4.18.0[${PYTHON_USEDEP}]
+ >=dev-python/packaging-21.3[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.31[${PYTHON_USEDEP}]
+ >=dev-python/jupyter-server-1.21[${PYTHON_USEDEP}]
+ <dev-python/jupyter-server-3[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/ipykernel[${PYTHON_USEDEP}]
+ dev-python/jupyter-server[${PYTHON_USEDEP}]
+ >=dev-python/openapi-core-0.19[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.7[${PYTHON_USEDEP}]
+ dev-python/requests-mock[${PYTHON_USEDEP}]
+ dev-python/ruamel-yaml[${PYTHON_USEDEP}]
+ dev-python/strict-rfc3339[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-{jupyter,tornasync,timeout} )
+distutils_enable_tests pytest
+# TODO: package autodoc_traits
+#distutils_enable_sphinx docs/source dev-python/pydata-sphinx-theme dev-python/myst-parser
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.28.1-openapi-0.23.patch"
+)
+
+EPYTEST_IGNORE=(
+ tests/test_translation_api.py
+)
+
+EPYTEST_DESELECT=(
+ # Fails if terminal not available
+ tests/test_labapp.py::test_page_config
+)
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index bb684066886b..c1e1a95276a5 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -1,3 +1,4 @@
+DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAKE2B 02c38822ff7b312014da03ec45146cc9b24d040c2b11631023b77dd1ad3ab1ebc9d8fd1dccf35ed682a78a39726d97c04e132b6a25a6a9aa8455d7b73ff0d169 SHA512 3cd7d8088958c5bcdc20f8288452060dfade7e2f4d3350e7073678c87b97a9a74907dc89b44cf5ad272600704c5002f4b76d7988283ddfce234bc8a5b40212db
DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
@@ -11,7 +12,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb2c25fd073cb5689663d6ccd5a9e4e1743d6d80822360d59b64bff7b4d7872a68a79e899bf2f75f384e55c7d313a79243576f03 SHA512 2615b20ba08534f83ab8ecc7b5ba43b5f1dfcf9cdb2534a32fcdbf0ccdd9a008b46276e45ef26ed9377f65b5e4ae89ea798f3863fd034484b5715140f3a7b35c
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
-DIST llvm-project-23.1.0.src.tar.xz 179140728 BLAKE2B 9253189469c70b1e7e326851635934fab85bf64139f1dcd44721ab261c097c9980276d48eac705b999cde0a024a362191c719646956504364534585dbf57d643 SHA512 f87a6084a4b4ddbf155949bb0a9d95592e665683d03db59c65002520634db57bb0b9e90011cbdf1dfc72bf2c649cebc5c546a1de4811c3bfc0b89620b1669061
-DIST llvm-project-23.1.0.src.tar.xz.sig 119 BLAKE2B 6bd4f681aa0926b3a8e896993fcb238749a5b29dd26f6637e5543699334c0818223d9c798da35515f27fd197cc7de370cc70de3e1bb6721e6c7cac3050879fc7 SHA512 3b1ffaf6fbc6ed08c1d0523b565fb63cbde1a76344bb3ed1a53722482927c03e2652859ef44de962ce90bdb7c5711db63f8d98559bc86cb58294a1cfc62e4b4f
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
diff --git a/dev-python/lit/lit-23.1.0.ebuild b/dev-python/lit/lit-24.0.0_pre20260916.ebuild
index 9c6e9718fe19..48b365e13379 100644
--- a/dev-python/lit/lit-23.1.0.ebuild
+++ b/dev-python/lit/lit-24.0.0_pre20260916.ebuild
@@ -13,7 +13,6 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index eda9b9a4b412..f4d8cd846a3c 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1,5 +1,3 @@
-DIST platformdirs-4.10.1.tar.gz 31678 BLAKE2B f856043d7dfd9a1b3e588bd4c5ee4d40edcfe307dd6234b3b21e0d8025e922c383c07535572c2217c04c680a263ff917b172e31c019c6d6155ffd5cf03a1aa0f SHA512 11590c5ede99cf866be4bc6eba7f3c0764b4e2a7d176ba0cb0b967934e0b72388a44e52ff07519637ab87290f7d5aac186be60b58eae65aeb72ca580ac97ff09
-DIST platformdirs-4.10.1.tar.gz.provenance 9920 BLAKE2B 514a93e710634d7f9bad01dcb53c7f00c7bf1988247b80d07582596749864647cfc00662de85035a62035b18e3e30c916733d43c540e99fc500c58c3da1a8a6e SHA512 9517b368a04da9b6cf923b96bef99179922cf4e6898cf4d48ff82cc269a6fe1fafbf019c76338d95f848aab628c789139c5768bc337b111b26d0e2ae91bd8b66
DIST platformdirs-4.11.3.tar.gz 33050 BLAKE2B c838822e0d5a9391d13fbf240c3006ade7094c2a2ad7c5b9904fce23c48ea9db6e851d04c887a80f37fee3bd0612e010ae58516751c050fb881c8ec6da1ab22e SHA512 0d90ccbb4f75bc2c0eda42223d475c688c59214fd696ff4690abd022322d9883816bc7c33765da8c9a792afc04ab21faa08c69dcbe027f7cbdcb4087e5baa2a1
DIST platformdirs-4.11.3.tar.gz.provenance 9777 BLAKE2B 9b4f683aaab5b99f085f560e4ff21e3a9533b892e974e8e39aef047ee2021ff416ff88af6db98c6fd284ef592a926b425c8b7c05f5cb0f4b8d5c23bb59ac8229 SHA512 97833d43052e8b2c303f204f8291cfb39bc1b399c2ecfbeabe18b54e5d20bb8920c802013fc43060c9e4f2ed7f359c5a5c763dc8cb14e9ba8bc52f328a64fa34
DIST platformdirs-4.11.4.tar.gz 34079 BLAKE2B daf5b088aa61382c1cbcbda0eebb23b9b4e7071472589ee1cc61c04f5386952d1be1b3090198104c4749c09c0fe5fcf8677ddfd31c1f8efe34219ef1a9708b3d SHA512 557782bd9f2af016372e9406a05a55194259303ae63ee90f684595f9a5dfbe0cc8ba11252135ebf31cb5a93bef740487581b4ca852f467ef781287cda15e4a0c
@@ -10,3 +8,5 @@ DIST platformdirs-4.11.7.tar.gz 35127 BLAKE2B 1cd3f4461c0f1c2c1c7ac62491d23a7d57
DIST platformdirs-4.11.7.tar.gz.provenance 9640 BLAKE2B 2cbc679cbcabea84ba9533d4aedd50a9339f2c727823dab79726aa8d005fb8a4e65995b65b6df3d9924290d4c8f9e3266a459353eb713509af967d4536fe0acd SHA512 814547814683965b3285c82b66747b7c712ef01ec92e90be5ef4b50d9bb0e103cbcdc848dd7b27c2aa95dccbb4f813c64bc3dd76cb51bc9ce69b518cf3540f18
DIST platformdirs-4.11.8.tar.gz 37182 BLAKE2B 223120ca204637bfa8b1f13182ea73aaf03d9d0abd6cba6a190e587fb9c3a7c27678ebe2893a662ada540e2de1fcd35e8bcd1b6caf52c0e8b0d696aeb522d6fd SHA512 eaca02bb4fd5526b68cd820cdddfbb2fc9a837d8a7c0f18afd2871b134738ec180406e9f886ad318b7c1812a751055f958756ccdd8942681fe78b0976c2f6eb5
DIST platformdirs-4.11.8.tar.gz.provenance 9930 BLAKE2B 3039cea46b90560c85320e0f6dfc5d851efb047df90b3596ea1144bc3e1f09355a355b992885571459d18d7bfd9035f30092efed476f2c1c11e0d3c5a109ac3b SHA512 ec6d06cdf399f660f639fc741839244094cc6028c037b9ab24e66cdda1e91aa2ee7819d5b02c4e3adfa651d4cd0cd37374da580bbf5424ef973719e2cfa48606
+DIST platformdirs-4.11.9.tar.gz 38345 BLAKE2B d48ceea33fc0cbdbaa072092a6dc19063bf4292cc94c41688872d3e638a99daded24abd92b1c23d0e7c45222ca88584f38459e027e33fb927d2d17a256c397b5 SHA512 c21b022f6678c87ccfc9d3a75cf9cbf31e9bc0a66436797f913ae34d52006f18113f89ec85d90baf455178fedd06acd8c1be6a4f1e0414940b83deb19342479d
+DIST platformdirs-4.11.9.tar.gz.provenance 9648 BLAKE2B 6e3c3f560bcd74f9af5e70342001ae5d3f0a06477095f60bd02a8451a3aef0bfd518784f3e5b0939006904018c5943474ed586968e0c397d84100048d7ade318 SHA512 3e38f8c53d1f173b276381d2e175585700a1eed1df478f9f64e447aa969c58a426cd8a4a92847e736bf3d2d6ea9f1f366127a447f4cf0850f65531a79a346891
diff --git a/dev-python/platformdirs/platformdirs-4.10.1.ebuild b/dev-python/platformdirs/platformdirs-4.11.9.ebuild
index efc02002085f..97987e113428 100644
--- a/dev-python/platformdirs/platformdirs-4.10.1.ebuild
+++ b/dev-python/platformdirs/platformdirs-4.11.9.ebuild
@@ -17,7 +17,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 ~x64-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
BDEPEND="
test? (
diff --git a/dev-python/pycurl/Manifest b/dev-python/pycurl/Manifest
index d7fbafc12696..8f419b1da666 100644
--- a/dev-python/pycurl/Manifest
+++ b/dev-python/pycurl/Manifest
@@ -4,3 +4,5 @@ DIST pycurl-7.46.0.tar.gz 284697 BLAKE2B 0839edc2b93ddf3a164452b5c1b312f06960d7b
DIST pycurl-7.46.0.tar.gz.provenance 9569 BLAKE2B 70d9db2f5f58586fd9cb7557f60ccb5eb5469bc17d8f42a616c754072bdf96c347e7ae09c7d706bc75835bab35e0a5fa07d74cdfe1e2bb8c1cbf90bf9f291263 SHA512 e66b4bc6c176264639485a7aa8f521783f7d95e6e05f3b7e78f5ba3a8e1845200e1aa67691d6ccf606d00791fe13e493b98d1e2e348afd4d599d2fc155ede8d6
DIST pycurl-7.47.0.tar.gz 301499 BLAKE2B 63538f5010435d3aacd4746f173d148e7aa00918f097f770850372bd145474e4b07defd423170de9be50b7934337dd7c07909bd3ce95a9b393980b003589fa0b SHA512 4dbd60c60fe6cab898a1477f144d3e7e6618939be62cbd29d3c3d675c846c0b44d518364d0b63a0c3d3255db7a31b9cb86201ccafe4b39dae23a52902be68bca
DIST pycurl-7.47.0.tar.gz.provenance 9726 BLAKE2B 9d01e77fb5ae3738629599a82532bfe80b2d33e45baea3ff172b83cb210f7ad117fe3be455f2287ef771a9466345f9eef0876a2fd280526335f33c9fda8cad35 SHA512 ae4621ac47e6f0873004ec9693e5718004c85927ff8c3509cc152ac67b5354bb1c84486a7253491075861e4995799394142b91799d1da88db04025d139491067
+DIST pycurl-7.48.0.tar.gz 320614 BLAKE2B 0506832eacf8560b96b5f286525a9ef2e27358ca68787facbe20a1f6e89570e34012ecea76dae8f52d4ad6e069b2117408f7d921673062504ee50acb57a7fd9b SHA512 2c63b3167b92e88801ca238403a3f30a6d6e3f056a2a16de3e96271ad6150eb619c7c411ab9c46023d8a3c9ea97caebdcad421c910ba9b74ec22d1e43983c677
+DIST pycurl-7.48.0.tar.gz.provenance 9672 BLAKE2B 19299d62eeed74929be75db0fc5dbb2433cd19c2d9bca3be15ae1023d2aad830633fe4412a1d71fcc5f5cf0c0ffbbeb76578e6a0fca8f0ae7e3c5a50d6680d46 SHA512 01163cc181d45306c07209366305e0c65e57ded375b2a9dda3fab33e512bfb334a02e25b382c15d6b016da7610e8c35b245fe47e15256f8e3737e6b34930828a
diff --git a/dev-python/pycurl/pycurl-7.48.0.ebuild b/dev-python/pycurl/pycurl-7.48.0.ebuild
new file mode 100644
index 000000000000..b71b7b57bf61
--- /dev/null
+++ b/dev-python/pycurl/pycurl-7.48.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pycurl/pycurl
+# broken assertions with py3.12
+# https://github.com/pycurl/pycurl/issues/1071
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi toolchain-funcs
+
+DESCRIPTION="Python bindings for curl/libcurl"
+HOMEPAGE="
+ http://pycurl.io/
+ https://github.com/pycurl/pycurl/
+ https://pypi.org/project/pycurl/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="curl_ssl_gnutls +curl_ssl_openssl examples ssl"
+
+# Depend on a curl with curl_ssl_* USE flags.
+# libcurl must not be using an ssl backend we do not support.
+# If the libcurl ssl backend changes pycurl should be recompiled.
+# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl
+# does not need to initialize gcrypt threading and we do not need to
+# explicitly link to libgcrypt.
+DEPEND="
+ >=net-misc/curl-7.25.0-r1:=[ssl=]
+ ssl? (
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-)]
+ curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0:= )
+ curl_ssl_openssl? ( dev-libs/openssl:= )
+ )
+"
+
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/websockets-12[${PYTHON_USEDEP}]
+ net-misc/curl[curl_ssl_gnutls(-)=,curl_ssl_openssl(-)=,-curl_ssl_axtls(-),-curl_ssl_cyassl(-),http2]
+ )
+"
+
+EPYTEST_PLUGINS=( flaky )
+: ${EPYTEST_TIMEOUT:=120}
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # docs installed into the wrong directory
+ sed -e "/setup_args\['data_files'\] = /d" -i setup.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ # Override faulty detection in setup.py, bug #510974.
+ export PYCURL_SSL_LIBRARY=${CURL_SSL}
+}
+
+src_test() {
+ emake -C tests/fake-curl/libcurl CC="$(tc-getCC)"
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # refcounting tests are unreliable
+ tests/memory_mgmt_test.py::test_option_refcounting
+ )
+
+ epytest tests
+}
+
+python_install_all() {
+ local HTML_DOCS=( doc/. )
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pygraphviz/Manifest b/dev-python/pygraphviz/Manifest
index 849e42a636a9..dfdd1a65a539 100644
--- a/dev-python/pygraphviz/Manifest
+++ b/dev-python/pygraphviz/Manifest
@@ -1,3 +1,5 @@
DIST pygraphviz-1.14.tar.gz 106003 BLAKE2B d56b16c6cc0fefeb258f6071424e20e38277bf76a8750ecbc1d9e2e8af5737ff79c78436bdf0d09c0e785e3b1bf90519b9bfd7014cf8373280c58e7057e2ba19 SHA512 867346303d560be21a37080e6d3ce0afe42119ee373f8cd872e853fee611d2c4cb56cc057023230fcf8ffbf03053ea92b9fc2ec6d5e682d6c6667b6727d87899
DIST pygraphviz-2.0.1.tar.gz 81998 BLAKE2B 3aa4ad0c331b745837021d13a07e77622f35e0d7d804c8bda0797ce24ae66f1bf51e22466b6b0a51ddaf91e9feec382ddf8e3dbe4eb6757815fae1d3ce2b337a SHA512 104e4a48135758daa12526b4f1aa9b32a39c4a1348e8df27c80dee96f49fcc9b316b8486ceabb1d93db7984aa1c4eade4fdad9788f35384855af9d9e2a9ceb40
DIST pygraphviz-2.0.1.tar.gz.provenance 9843 BLAKE2B d73ca166bb3eec28589d2592d806b393436dd2ec33d29d819344829191c716b480c33e1444863db6e9f089c5ec8684e2bc0819ed68f69ef343933faa6fd9ae99 SHA512 a7333e6002b78de6bf37ce0affeb63e97f565d5130daee9ea7402532e3f86c42323af2d00e398c9b15354469a6ba74ac635639ee7a923e9f23180878c514e8ee
+DIST pygraphviz-2.0.2.tar.gz 82229 BLAKE2B 9c32c8a4a5f64321250a988daea5c8f5369f697f856521ac6fc454c6abd62b42a732cb30dc7918c3307122a09ca173eedeb5948aed913fccc55a99b10289e436 SHA512 4ab5b8ade4449f1d572f5c2e2ec00c8d74a5f0df9c6b482e5ed147544d00a2d2274e9a934d9592e119169f46bdfcf3b1a8f88fb8cc062643c27a91b07b68e88e
+DIST pygraphviz-2.0.2.tar.gz.provenance 10225 BLAKE2B 06f08a01db8dcc1f94e5810862fc61422fd8eb3a2a6e80142f3e67297e9b2cea93a2728dbc6570a4436c612d84bcf354995251bbc18582a5d92221ffd836b4e9 SHA512 be0b620e5e0257420c861e3272429c993c4f04ebf5961520ef297d8f209ab320f7a5c567fd80a65f31e5b5b0a9d7456ab5d003c12221f7863b19f360d2145c5e
diff --git a/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild b/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild
new file mode 100644
index 000000000000..b248bc96c7a5
--- /dev/null
+++ b/dev-python/pygraphviz/pygraphviz-2.0.2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pygraphviz/pygraphviz
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 flag-o-matic pypi toolchain-funcs
+
+DESCRIPTION="Python wrapper for the Graphviz Agraph data structure"
+HOMEPAGE="
+ https://pygraphviz.github.io/
+ https://github.com/pygraphviz/pygraphviz/
+ https://pypi.org/project/pygraphviz/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
+
+# Note: only C API of graphviz is used, PYTHON_USEDEP unnecessary.
+# [cairo] is actually pangocairo, needed for gvplugin_pango.
+DEPEND="
+ media-gfx/graphviz:=[cairo]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ dev-lang/swig:0
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_configure() {
+ # set to a meaningless path, it hardcodes /lib anyway; at least it
+ # will stop it from adding a bunch of wrong RUNPATHs
+ export GRAPHVIZ_PREFIX=${T}
+
+ # upstream's solution to "not one of the random hardcoded paths" is
+ # literally "add a bunch of -I -L flags yourself"
+ append-cppflags $($(tc-getPKG_CONFIG) --cflags libcdt || die)
+ local libdir=$($(tc-getPKG_CONFIG) --variable=libdir libcdt || die)
+ # the build system will pass a bunch of "-l"s anyway
+ append-ldflags $($(tc-getPKG_CONFIG) --libs-only-L libcdt || die) \
+ -L"${libdir}/graphviz" -Wl,-rpath,"${libdir}/graphviz"
+}
+
+python_test() {
+ rm -rf pygraphviz || die
+ epytest --pyargs pygraphviz
+}
+
+python_install_all() {
+ dodoc -r examples
+ docompress -x /usr/share/doc/${PF}/examples
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index 52bb0a442ed7..43a50faefde0 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -6,4 +6,6 @@ DIST pypdf-6.18.0.tar.gz 7024871 BLAKE2B e14b829e0b54904c8e445b83f860d76eb306b65
DIST pypdf-6.18.0.tar.gz.provenance 9694 BLAKE2B 5aedd7c28b8e8b3e778af725f4b20e9a34deb33b60c08bce214356c7ba80da053e970fb6a61b80ac8fba2f3b89bc580c2db67ed40b4f0f33201a658eb45c26fa SHA512 273d4b8bb9da317aa85a8d7fb5c1ea03d7f466b099ada848dd239a3f75cfef018f1085a4b8da87937757440aba839699884c9c928b473c7868ae472f43287d6d
DIST pypdf-6.18.1.tar.gz 7027577 BLAKE2B 21880eb3da99e5ad432466a76abf57b2e3a3fc8bdbb4add8b4140740a0dcae70886d8a3b4d08878c74e41d1e2a6b9c9d50aada2cc7eca365257d26a915ea4b76 SHA512 c4a452e1c87ae0e7c915df75471de5efb747230d0ee4391d4c6b47dab771a78ae07e85e9ad35736092a8066429237747c48afa0fd90bc140b392aeea1838bcf6
DIST pypdf-6.18.1.tar.gz.provenance 9788 BLAKE2B 3b073bb57e7d2ea5d98083213dc594e3b147370e4e44c6c743992bdc2e09d52d2b5cee3f9f1bcb99f1293458327ed0af35699c5477aa9d6339d4ae0a194a7e66 SHA512 7c253ea25e4ded5a649d3aa811f41ed94e0dc5e5eb183ca8c5ad4affa981be7bdc1e0e0070c35b2eb4f16df92ef180d0d04755556bfe1c8df63a8eba41165ad4
+DIST pypdf-6.19.0.tar.gz 7033266 BLAKE2B 3929cdf43fce4133c13dbbf6db50a94c602f9ff5408db2e2079075162ee4df3713d621df661511ec2d046f95a8719b46315033ce4db32c005eeb6a746a2e0b2e SHA512 61bf1b941500b935966b5dc01a64778d69d2afb9b6331c707cc0b48e165f5c2b316a6b8cf7c97603ff4b836ed09569e3530f1e44e8f655e013419a0e2aac018c
+DIST pypdf-6.19.0.tar.gz.provenance 9549 BLAKE2B 3cdf57e48527696229e53909b83e48ba9e5478bea7143c7128bf4b789acd0676ee0550f933c53af8855df16b665af768b632bc4aa41e668dded7a0a7fc29fb02 SHA512 d369583aec1be36f4b79129951345f5134a18c3cb769749a729db80d0ff12dcc956bd10f471a865ede8ae0473047a21cf284784d29c7e63faef0cc7220aba38e
DIST pypdf-sample-files-818dc013ad1f537198e9fcfae8a6b0dffe25ffa3.gh.tar.gz 11850954 BLAKE2B fbd0af91de44f2d224b3266727f0dfc462efb4d23176f4ebff147cbfa37337d891859c468b545d0c00796048584e6b621dc622d667e3d45c0b89b92f29ca3030 SHA512 bc601bfaf17f31c6358f594eaf879479e97028d7f5e5825c309a5d1eb843bfea5080c9e151287a0d915ecbc3f4d4755e326ac8fa1ceeb696c76b9f5ecc0d7e9f
diff --git a/dev-python/pypdf/pypdf-6.19.0.ebuild b/dev-python/pypdf/pypdf-6.19.0.ebuild
new file mode 100644
index 000000000000..cb422e001eea
--- /dev/null
+++ b/dev-python/pypdf/pypdf-6.19.0.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/py-pdf/pypdf
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+SAMPLE_COMMIT=818dc013ad1f537198e9fcfae8a6b0dffe25ffa3
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI+="
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ >=dev-python/cryptography-3.1[${PYTHON_USEDEP}]
+ dev-python/fonttools[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ media-libs/jbig2dec[png]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # probably requires extra deps
+ tests/test_appearance_stream.py::test_appearance_stream_rtl
+ # speed test, uses tons of memory
+ tests/test_filters.py::test_flatedecode__decode_png_prediction__speed
+ # apparently we get half the limit somehow?
+ tests/generic/test_data_structures.py::test_dictionary_object__read_from_stream__missing_length__limit
+)
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}" "${S}"/sample-files || die
+ fi
+}
+
+python_test() {
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pyproject-hooks/Manifest b/dev-python/pyproject-hooks/Manifest
index 473b147afa3c..4d311cd3f107 100644
--- a/dev-python/pyproject-hooks/Manifest
+++ b/dev-python/pyproject-hooks/Manifest
@@ -1,3 +1,5 @@
DIST pyproject_hooks-1.2.0.tar.gz 19228 BLAKE2B e02864220393876639cc459918f48c02e19835b392102d117cb5900c9a4f5228bc21377421f7afdd67300ba15d131194197a3b4b1ce0ad7fef195bca9be4344b SHA512 e098e521f03cfae9a96c0ee5d2e2ef46ef832d8f38c7d8380fc17355776e09ae3a704879e6e4a2bc7999092c4dbf80267b3b56850135c74d275a12607e0ffe83
DIST pyproject_hooks-1.3.0.tar.gz 20883 BLAKE2B a2e9984a25c6f730e6f1e46a0a144bef4ad05909d389a615e6ff72019c0b06c6996ca89fea0a875e6ccc39f2414d084dc00c7a7d87a4d50ddb5d6e6d8cf2a896 SHA512 08dc8e6e92fea46da684cc1105a205ba3f657307a4219fb6f562d4cd4f269399bbbe7bd95b933a9940d63ea5af4433f48c0058c8573ff69c055a4b3cf5ffef95
DIST pyproject_hooks-1.3.0.tar.gz.provenance 9655 BLAKE2B a8b76df1718a1b065f8c798ca03a8111c20b391b283a0f0bc91dbe80f8a8ad51045f432fe55a2e12d8ff716629b8906fc563b54f7d5b0c709f4b57c33a3b8499 SHA512 3f15ea931c5ae9f2f56cda1f88ae571d667cb04813d6ae964bb80dcd17974ac4d2a6325f26a3301c75424baf67e60840122b9323e4d169628151530f1a9cffc7
+DIST pyproject_hooks-1.3.3.tar.gz 21013 BLAKE2B df81029ed0a354391ec84d020f632f2a7dd7f57cf2baa99e37054064435eef0e07b2cfb5b0e317c661be2a5609df6a7b0009c54e3169a6e86c252222770ec1b4 SHA512 02987f247af2d82729ac4814ef1a58f129496434206f65411e7dcd254a4d4d9e4d90347d70708e5e74b2a735d7995f8334fb124a8e81fcab4a10ed4c193bf29b
+DIST pyproject_hooks-1.3.3.tar.gz.provenance 9608 BLAKE2B 6c501076476e9a8d2482ebf9191948d06dd6df2237849fafcf1613aaa3d61bc4e6a22911600c11505d5c6d22a23b32022076784b0c5a39660e04dcb774a907f6 SHA512 b07ea73284aefb007275c119b4d09aa33140bebeedd339aebcd8f46065e8c67876412fdab7300a7c376631577678b28748b488964a59414dbf6ff6b2864f791c
diff --git a/dev-python/pyproject-hooks/pyproject-hooks-1.3.3.ebuild b/dev-python/pyproject-hooks/pyproject-hooks-1.3.3.ebuild
new file mode 100644
index 000000000000..d68373bb12cf
--- /dev/null
+++ b/dev-python/pyproject-hooks/pyproject-hooks-1.3.3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/pypa/pyproject-hooks
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Wrappers to build Python packages using PEP 517 hooks"
+HOMEPAGE="
+ https://pypi.org/project/pyproject-hooks/
+ https://github.com/pypa/pyproject-hooks/
+ https://pyproject-hooks.readthedocs.io/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # fails due to setuptools 70.1
+ # https://bugs.gentoo.org/936052
+ # https://github.com/pypa/pyproject-hooks/issues/203
+ tests/test_call_hooks.py::test_setup_py
+)
diff --git a/dev-python/python-gammu/Manifest b/dev-python/python-gammu/Manifest
index a0968426e53e..efb841727de0 100644
--- a/dev-python/python-gammu/Manifest
+++ b/dev-python/python-gammu/Manifest
@@ -1,3 +1,2 @@
-DIST python-gammu-3.2.5.gh.tar.gz 149125 BLAKE2B a4e3864698fd826cb16f9d20293f8d97cf0234433fcd2b8691ef8e5c5c2c9d90cd21acb9cb81d85dae404579b720f89885a491944657d9404ea6d2ce4ebd9096 SHA512 57b665636d60a463a7de25bfcf632d2b067a14426cb355ae6f57d97459229a7c9af3d274426fb9c52930cd66d0640e9e57cb00eef80ec63ebfa34678462ab2ed
-DIST python-gammu-3.4.0.gh.tar.gz 152822 BLAKE2B 42aa3ae968f81fdb7276fff82617351f84a744205d90eb4be130fa364949c1d195fe062e965bde51146fce491218f4c8b1b060df64418be652427de098d97a95 SHA512 868daeb3feb4150da69404b95b2c09559959e791d88e263c03771fe1316f8047f01dfe2575032005b4f46839b10b1f0dc96159445036505f07d3f8b438cbc358
DIST python-gammu-3.4.1.gh.tar.gz 153695 BLAKE2B 7159b635266524c5b3c4f734e28ca81d676f3009c6244cfea4b7c2cd9a00de35c3144d7d21e3f3d5b8495abe14219d76b7f77afb1cf1738f3aa5202f7add86a6 SHA512 a74056bdf9b9ab84079a08dae62563fcee8045dabcb80505116feaaacaa98ddbd1101decee33ae90af8eb71b84df6c6470ff725efe321f19377fa46258e63ded
+DIST python-gammu-3.5.0.gh.tar.gz 163017 BLAKE2B 0acc8ba0e3e3d1f7b59703f332f4a0b67b7c8a044c9fe8fb9db63c3fb4fa0bcf92263bbd5df58b28e2a89ce52c4064c33488ebfe4201f8736be185d9d0367ba1 SHA512 88b5171750a94057a42651f0f7b2df5417980104da558b1205c52e85a7886d900fd58c87f3ef44286d6f5234df38939c7709e15406332007d566dfd7343b11c0
diff --git a/dev-python/python-gammu/python-gammu-3.2.5.ebuild b/dev-python/python-gammu/python-gammu-3.2.5.ebuild
deleted file mode 100644
index b033344e1a6e..000000000000
--- a/dev-python/python-gammu/python-gammu-3.2.5.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python bindings for Gammu"
-HOMEPAGE="
- https://wammu.eu/python-gammu/
- https://github.com/gammu/python-gammu/
- https://pypi.org/project/python-gammu/
-"
-SRC_URI="
- https://github.com/gammu/python-gammu/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="examples test"
-RESTRICT="!test? ( test )"
-
-DEPEND="
- >=app-mobilephone/gammu-1.34.0
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- $(python_gen_impl_dep sqlite)
- app-mobilephone/gammu[dbi]
- )
-"
-
-DOCS=( AUTHORS NEWS.rst README.rst )
-
-distutils_enable_tests unittest
-
-python_test() {
- rm -rf gammu || die
- eunittest
-}
-
-python_install_all() {
- distutils-r1_python_install_all
- if use examples; then
- docompress -x /usr/share/doc/${P}/examples
- dodoc -r examples
- fi
-}
diff --git a/dev-python/python-gammu/python-gammu-3.4.0.ebuild b/dev-python/python-gammu/python-gammu-3.5.0.ebuild
index 221495de491c..c174431c91a2 100644
--- a/dev-python/python-gammu/python-gammu-3.4.0.ebuild
+++ b/dev-python/python-gammu/python-gammu-3.5.0.ebuild
@@ -27,7 +27,7 @@ IUSE="examples test"
RESTRICT="!test? ( test )"
DEPEND="
- >=app-mobilephone/gammu-1.44.0
+ >=app-mobilephone/gammu-1.44.1
"
RDEPEND="
${DEPEND}
diff --git a/dev-python/python-ldap/Manifest b/dev-python/python-ldap/Manifest
index 956d8d348540..926deaa2925f 100644
--- a/dev-python/python-ldap/Manifest
+++ b/dev-python/python-ldap/Manifest
@@ -1 +1,2 @@
DIST python-ldap-3.4.7.gh.tar.gz 381197 BLAKE2B 03ecb8681da5f0df821baf7bf5bd5da4ca2dad18214edb4ea475fc5b8df7535a07ba5684dc6c4ed6af5c4d39a3561dab336146a2cf157c139592726e3c2ecf50 SHA512 ecf20c6a23b32fe21cde969407287f415a091d15dd0de49d986472de23de35e2d9dd590ceb7b26353e8eb3d4f2ee4fd9c9d8c9bd6c600cd45d80ab73bcd4c8df
+DIST python-ldap-3.4.8.gh.tar.gz 383246 BLAKE2B 83b6c75e38fc91ce0c8c6a1cb16df5f16db358b441bef64c5718cf4fe393cb94439abe0826e4c36e7c7e052717304551de6483a7b496f921d21dc6d9a2eb16f8 SHA512 ba7667e450bfb9f933e4d6b1b8da956b5f80f83a5a2f4b634deeb236747bd2306abe3963960d3c44eddff092e2efaae2131e8a9b3c9e08b65c8c648fa3b9c3e1
diff --git a/dev-python/python-ldap/python-ldap-3.4.8.ebuild b/dev-python/python-ldap/python-ldap-3.4.8.ebuild
new file mode 100644
index 000000000000..3776e37fe032
--- /dev/null
+++ b/dev-python/python-ldap/python-ldap-3.4.8.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Various LDAP-related Python modules"
+HOMEPAGE="
+ https://www.python-ldap.org/en/latest/
+ https://pypi.org/project/python-ldap/
+ https://github.com/python-ldap/python-ldap/
+"
+SRC_URI="
+ https://github.com/python-ldap/python-ldap/archive/${P}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S=${WORKDIR}/${PN}-${P}
+
+LICENSE="MIT PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="examples sasl ssl"
+
+RDEPEND="
+ >=dev-python/pyasn1-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.1.5[${PYTHON_USEDEP}]
+ net-nds/openldap:=[sasl?,ssl?]
+"
+# We do not link against cyrus-sasl but we use some
+# of its headers during the build.
+DEPEND="
+ net-nds/openldap:=[sasl?,ssl?]
+ sasl? ( >=dev-libs/cyrus-sasl-2.1 )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx Doc
+
+python_prepare_all() {
+ if ! use sasl; then
+ sed -i 's/HAVE_SASL//g' setup.cfg || die
+ fi
+ if ! use ssl; then
+ sed -i 's/HAVE_TLS//g' setup.cfg || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # Run all tests which don't require slapd
+ local EPYTEST_IGNORE=(
+ t_bind.py
+ t_cext.py
+ t_edit.py
+ t_ldapobject.py
+ t_ldap_options.py
+ t_ldap_sasl.py
+ t_ldap_schema_subentry.py
+ t_ldap_syncrepl.py
+ t_slapdobject.py
+ )
+ pushd Tests >/dev/null || die
+ epytest
+ popd > /dev/null || die
+}
+
+python_install_all() {
+ if use examples; then
+ docinto examples
+ dodoc -r Demo/.
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/sphinx-gallery/Manifest b/dev-python/sphinx-gallery/Manifest
index 09170b92d33c..4b10be2ab979 100644
--- a/dev-python/sphinx-gallery/Manifest
+++ b/dev-python/sphinx-gallery/Manifest
@@ -1,2 +1,4 @@
DIST sphinx_gallery-0.21.0.tar.gz 483616 BLAKE2B 9a1c84edc63201be44f1879afdeaf3264022a2dd340b72be4d3d46c358c3496e08a063bfa6fa9019b23368494b7b355e8869638c049b94f20a7ee69f80efa33c SHA512 718c37ac4e90e06ee00afe5678fbce6db82cc117c48b10bd85b82d065a59fed49aaf8c33c047fe6574412d6c23514b3b14b7377b2b99ce2c46698fe79b83d6c0
DIST sphinx_gallery-0.21.0.tar.gz.provenance 9772 BLAKE2B 0e529fd62aeece0120e88d1953c680d815133d5e23976935f6e848dfa5d4718395ad854e0bff5dc090bcad85fa71584146708fc9765e3adcf4b5c8300542358c SHA512 1a58636031e5115d7c9bd2e155cbf6cb184d2c7543aebd3943113521d39a8b993e30f2adcdc1d4023a9a3f5b6b8bd4f090b603eefaef03075351ee446812253f
+DIST sphinx_gallery-0.22.0.tar.gz 505484 BLAKE2B 72f199e1518189f15a3ec08446a344e928f0aa6f8cbbd388434b9053545e906b2244de4c9db1ec329c8d29234ec5c6b3851b36e36866cb3bf9d845993d5ea7a9 SHA512 194e76921a3d40c3d9a690c20f2cdf38310121ee0abc23df6fd6c4397c1851d999f4c15fd47744fd6d8c6d02b5d4b07c1e5dc62bb0a197ce50387018dc8bc028
+DIST sphinx_gallery-0.22.0.tar.gz.provenance 10210 BLAKE2B cc2ca2a421d0aff688d9ea181f2e77e661bde8186c42438d7edf6bf3a741263bc8d701b46e60f0c03ff2608fcfe24552a51244bc8e35c03b25e1f6425f906cf2 SHA512 ca4f2b3682bb6bd32746564955a5d21b7db9cf0046e2cd009929dbbe3a1fd85c63b0a3006676f4d3a249de51bd1e4dfaf3a6f55f68844bfd71dc9ae8629b87e9
diff --git a/dev-python/sphinx-gallery/sphinx-gallery-0.22.0.ebuild b/dev-python/sphinx-gallery/sphinx-gallery-0.22.0.ebuild
new file mode 100644
index 000000000000..0a4ffc7301f6
--- /dev/null
+++ b/dev-python/sphinx-gallery/sphinx-gallery-0.22.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_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/sphinx-gallery/sphinx-gallery
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Sphinx extension to automatically generate an examples gallery"
+HOMEPAGE="
+ https://github.com/sphinx-gallery/sphinx-gallery/
+ https://sphinx-gallery.github.io/
+ https://pypi.org/project/sphinx-gallery/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-6[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ test? (
+ dev-python/joblib[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ sphinx_gallery/tests/test_docs_resolv.py::test_embed_code_links_get_data
+ sphinx_gallery/tests/test_full.py::test_run_sphinx
+ sphinx_gallery/tests/test_full.py::test_embed_links_and_styles
+ # require jupyterlite_sphinx
+ sphinx_gallery/tests/test_full.py
+ sphinx_gallery/tests/test_full_noexec.py
+ sphinx_gallery/tests/test_gen_gallery.py::test_create_jupyterlite_contents
+ sphinx_gallery/tests/test_gen_gallery.py::test_create_jupyterlite_contents_non_default_contents
+ sphinx_gallery/tests/test_gen_gallery.py::test_create_jupyterlite_contents_with_jupyterlite_disabled_via_config
+ )
+
+ epytest -o addopts=
+}
diff --git a/dev-python/vcs-versioning/Manifest b/dev-python/vcs-versioning/Manifest
index c8d210706d42..c95305d6107c 100644
--- a/dev-python/vcs-versioning/Manifest
+++ b/dev-python/vcs-versioning/Manifest
@@ -6,3 +6,5 @@ DIST vcs_versioning-2.3.4.tar.gz 149647 BLAKE2B 1ca6aea0effd2d743140e23828ed025b
DIST vcs_versioning-2.3.4.tar.gz.provenance 10246 BLAKE2B 562e356ece3ee4061fe5b55ffc9c7f67d621aa903c8cc8ac724789f4e8bae4f7a5044d49fed38130ac74afdaedc4f456af31aa9b9a24759e6580773c0d17d1fa SHA512 48e6903166bce3c2157f5c8622c07d254e3daa9ef14a404780fdc25d7d7bb9eea3a37a8c183c51df9fc1f0ee5d37cbaf8a2fb8454c4ea24f3b0b966f4651e02c
DIST vcs_versioning-2.4.0.tar.gz 160078 BLAKE2B ed7620ec9275d1f0e98699e37792de872b0e11b8ba5776efcab8903af45e2c0507cc2bd8b4f86d8df30d8271f4d7748f04674e231ef5e343af5c1da5d9a44c57 SHA512 4749ad4e6fd2ca3112b95f35c2f2dc1da9b29a3ae4eccc654a1838c2ac5329ad34058c52c0f32cb001eafac063d0dcc594f0d644a39875f62b084b9b9157ecf4
DIST vcs_versioning-2.4.0.tar.gz.provenance 10246 BLAKE2B 2f628fcbd6094f3b3b75bbd665854abb17cd09fa0d7f8939e7fa360ac9be5de25b8ae65a54a601790fd92fa0d2fe6b0244908f7220004a13276bc725c0343435 SHA512 939467cf501b461fa34a79c399ee14e7b49d8ae657a3c6ebc80303bc9104dd51a01b086029b43ddee9a957172dae70bada7b31240ce0a48857b2365420fdbd7b
+DIST vcs_versioning-2.4.1.tar.gz 164222 BLAKE2B 38bd466d69b9238fc4d5bbeeb0961ea7d94c11fa474a73a4c28cfbf93bcdd36066e0cf45924174331f6ba59dea060e4f1b5ccfc5d8cbc8a300587bc66c62b312 SHA512 88c60d71a654ef159ea112ba2e7459936471c61dc46ed216728f1cac31d38e4d71de303ff07a550ac7c2bc7a2104dabfbcc20aa86c6c76b0d40b0e0642445473
+DIST vcs_versioning-2.4.1.tar.gz.provenance 10152 BLAKE2B 77955dfbcc75b1b5f3c4910e6439e25d57a7ecd1d8f744d18f5ee47ea4ea040f60a1588df675f8acf76a9696de61881219e346562e7ed8160125e93018ab3203 SHA512 c8c481ee2926821ff731bb5fbc48e7da956e33b88f4c6156b6509c85b1aeb8719b97f6d15cf7cae938110488879c2071dc6500076d34f425e909f1059d351802
diff --git a/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild b/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild
new file mode 100644
index 000000000000..f253689d01b8
--- /dev/null
+++ b/dev-python/vcs-versioning/vcs-versioning-2.4.1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Core VCS versioning functionality from setuptools-scm"
+HOMEPAGE="
+ https://github.com/pypa/setuptools-scm/
+ https://pypi.org/project/vcs-versioning/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-26.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ >=dev-python/setuptools-scm-10.1.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # the usual nondescript gpg-agent failure
+ testing_vcs/test_git.py::test_git_getdate_signed_commit
+)