summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-22 19:15:20 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-22 19:15:20 +0000
commit3a49fd17ead72cf159fb192ce2c9988232433db4 (patch)
tree99982e97b7fa82146055de4be797db3a16501ee6 /dev-python
parent9cdbf4c3e0696ba01563ed61985819786e9ff78b (diff)
downloadbaldeagleos-repo-3a49fd17ead72cf159fb192ce2c9988232433db4.tar.gz
baldeagleos-repo-3a49fd17ead72cf159fb192ce2c9988232433db4.tar.xz
baldeagleos-repo-3a49fd17ead72cf159fb192ce2c9988232433db4.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/ansible-compat/ansible-compat-25.8.1.ebuild2
-rw-r--r--dev-python/aws-sam-translator/aws-sam-translator-1.100.0.ebuild2
-rw-r--r--dev-python/blessed/blessed-1.22.0.ebuild2
-rw-r--r--dev-python/bottleneck/bottleneck-1.6.0.ebuild2
-rw-r--r--dev-python/cattrs/cattrs-25.2.0.ebuild2
-rw-r--r--dev-python/cffi/cffi-2.0.0.ebuild2
-rw-r--r--dev-python/cheroot/cheroot-11.0.0.ebuild2
-rw-r--r--dev-python/coverage/coverage-7.10.6.ebuild2
-rw-r--r--dev-python/cython/cython-3.1.4.ebuild2
-rw-r--r--dev-python/dnspython/dnspython-2.8.0.ebuild2
-rw-r--r--dev-python/elasticsearch/elasticsearch-9.1.1.ebuild2
-rw-r--r--dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild2
-rw-r--r--dev-python/fonttools/fonttools-4.60.0.ebuild2
-rw-r--r--dev-python/fsspec/fsspec-2025.9.0.ebuild2
-rw-r--r--dev-python/grpcio-status/Manifest1
-rw-r--r--dev-python/grpcio-status/grpcio-status-1.76.0.ebuild46
-rw-r--r--dev-python/gssapi/gssapi-1.10.0.ebuild2
-rw-r--r--dev-python/hcloud/hcloud-2.6.0.ebuild2
-rw-r--r--dev-python/id/id-1.5.0.ebuild2
-rw-r--r--dev-python/isal/isal-1.8.0.ebuild2
-rw-r--r--dev-python/jupyterlab/jupyterlab-4.4.7.ebuild2
-rw-r--r--dev-python/krb5/krb5-0.8.0.ebuild2
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild4
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/more-itertools/more-itertools-10.8.0.ebuild2
-rw-r--r--dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild2
-rw-r--r--dev-python/mypy/mypy-1.18.1.ebuild2
-rw-r--r--dev-python/numexpr/numexpr-2.12.1.ebuild2
-rw-r--r--dev-python/openstacksdk/openstacksdk-4.7.1.ebuild2
-rw-r--r--dev-python/opentelemetry-api/opentelemetry-api-1.37.0.ebuild2
-rw-r--r--dev-python/opentelemetry-sdk/opentelemetry-sdk-1.37.0.ebuild2
-rw-r--r--dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.37.0.ebuild2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2025.09.18.ebuild2
-rw-r--r--dev-python/phonenumbers/phonenumbers-9.0.14.ebuild2
-rw-r--r--dev-python/protobuf/Manifest2
-rw-r--r--dev-python/protobuf/protobuf-5.29.4-r2.ebuild29
-rw-r--r--dev-python/protobuf/protobuf-5.29.5.ebuild156
-rw-r--r--dev-python/protobuf/protobuf-6.32.1-r1.ebuild2
-rw-r--r--dev-python/psutil/psutil-7.1.0.ebuild2
-rw-r--r--dev-python/psycopg/psycopg-3.2.10.ebuild2
-rw-r--r--dev-python/pybind11/pybind11-3.0.1.ebuild2
-rw-r--r--dev-python/pycares/pycares-4.11.0.ebuild2
-rw-r--r--dev-python/pyeclib/pyeclib-1.7.0.ebuild2
-rw-r--r--dev-python/pyenchant/pyenchant-3.3.0.ebuild2
-rw-r--r--dev-python/pyglet/pyglet-2.1.9.ebuild2
-rw-r--r--dev-python/pylsqpack/pylsqpack-0.3.22.ebuild2
-rw-r--r--dev-python/pymysql/pymysql-1.1.2.ebuild2
-rw-r--r--dev-python/pynacl/pynacl-1.6.0.ebuild2
-rw-r--r--dev-python/pynvim/pynvim-0.6.0.ebuild2
-rw-r--r--dev-python/pyopengl-accelerate/pyopengl-accelerate-3.1.10.ebuild2
-rw-r--r--dev-python/pyperclip/pyperclip-1.10.0.ebuild2
-rw-r--r--dev-python/pyqt6-webengine/Manifest1
-rw-r--r--dev-python/pyqt6-webengine/files/pyqt6-webengine-6.8.0-qvariant.patch15
-rw-r--r--dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild67
-rw-r--r--dev-python/pyqt6/Manifest1
-rw-r--r--dev-python/pyqt6/pyqt6-6.10.0.ebuild193
-rw-r--r--dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.4.0.ebuild2
-rw-r--r--dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild2
-rw-r--r--dev-python/python-glanceclient/python-glanceclient-4.10.0.ebuild2
-rw-r--r--dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild2
-rw-r--r--dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild2
-rw-r--r--dev-python/pyzmq/pyzmq-27.1.0.ebuild2
-rw-r--r--dev-python/regex/Manifest1
-rw-r--r--dev-python/regex/regex-2025.10.23.ebuild37
-rw-r--r--dev-python/regex/regex-2025.9.18.ebuild2
-rw-r--r--dev-python/reportlab/reportlab-4.4.4.ebuild2
-rw-r--r--dev-python/scikit-learn/scikit-learn-1.7.2.ebuild2
-rw-r--r--dev-python/selenium/selenium-4.35.0.ebuild2
-rw-r--r--dev-python/setproctitle/setproctitle-1.3.7.ebuild2
-rw-r--r--dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild2
-rw-r--r--dev-python/siphash24/siphash24-1.8.ebuild2
-rw-r--r--dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-2.0.0.ebuild2
-rw-r--r--dev-python/toolz/toolz-1.0.0-r1.ebuild2
-rw-r--r--dev-python/trimesh/trimesh-4.8.2.ebuild2
-rw-r--r--dev-python/twine/twine-6.2.0.ebuild2
-rw-r--r--dev-python/uv-build/uv-build-0.9.4.ebuild2
-rw-r--r--dev-python/uv/uv-0.9.4.ebuild2
-rw-r--r--dev-python/xcffib/xcffib-1.10.0.ebuild2
-rw-r--r--dev-python/xmltodict/xmltodict-1.0.2.ebuild2
-rw-r--r--dev-python/xvfbwrapper/xvfbwrapper-0.2.14.ebuild2
-rw-r--r--dev-python/yt-dlp-ejs/Manifest2
-rw-r--r--dev-python/yt-dlp-ejs/metadata.xml11
-rw-r--r--dev-python/yt-dlp-ejs/yt-dlp-ejs-0.1.0.ebuild37
-rw-r--r--dev-python/zc-lockfile/zc-lockfile-4.0.ebuild2
-rw-r--r--dev-python/zeroconf/zeroconf-0.147.2.ebuild2
-rw-r--r--dev-python/zipstream-ng/zipstream-ng-1.9.0.ebuild2
-rw-r--r--dev-python/zlib-ng/zlib-ng-1.0.0.ebuild2
-rw-r--r--dev-python/zope-deprecation/zope-deprecation-6.0.ebuild2
-rw-r--r--dev-python/zope-i18nmessageid/zope-i18nmessageid-8.0.ebuild2
-rw-r--r--dev-python/zope-interface/zope-interface-8.0.ebuild2
-rw-r--r--dev-python/zope-testing/zope-testing-6.0.ebuild2
-rw-r--r--dev-python/zstandard/zstandard-0.25.0.ebuild2
94 files changed, 638 insertions, 140 deletions
diff --git a/dev-python/ansible-compat/ansible-compat-25.8.1.ebuild b/dev-python/ansible-compat/ansible-compat-25.8.1.ebuild
index b835a23d2b52..93644af8c775 100644
--- a/dev-python/ansible-compat/ansible-compat-25.8.1.ebuild
+++ b/dev-python/ansible-compat/ansible-compat-25.8.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
+KEYWORDS="amd64 ~arm64 ~riscv"
RDEPEND="
>=app-admin/ansible-core-2.18.6[${PYTHON_USEDEP}]
diff --git a/dev-python/aws-sam-translator/aws-sam-translator-1.100.0.ebuild b/dev-python/aws-sam-translator/aws-sam-translator-1.100.0.ebuild
index 57cc1ea14950..934ccfd5832b 100644
--- a/dev-python/aws-sam-translator/aws-sam-translator-1.100.0.ebuild
+++ b/dev-python/aws-sam-translator/aws-sam-translator-1.100.0.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
RDEPEND="
<dev-python/boto3-2[${PYTHON_USEDEP}]
diff --git a/dev-python/blessed/blessed-1.22.0.ebuild b/dev-python/blessed/blessed-1.22.0.ebuild
index 5a17bce61d6c..dffecdec6a31 100644
--- a/dev-python/blessed/blessed-1.22.0.ebuild
+++ b/dev-python/blessed/blessed-1.22.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
dev-python/wcwidth[${PYTHON_USEDEP}]
diff --git a/dev-python/bottleneck/bottleneck-1.6.0.ebuild b/dev-python/bottleneck/bottleneck-1.6.0.ebuild
index 4645a55afa8e..6548ebf6ca34 100644
--- a/dev-python/bottleneck/bottleneck-1.6.0.ebuild
+++ b/dev-python/bottleneck/bottleneck-1.6.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
DEPEND="
>=dev-python/numpy-1.9.1:=[${PYTHON_USEDEP}]
diff --git a/dev-python/cattrs/cattrs-25.2.0.ebuild b/dev-python/cattrs/cattrs-25.2.0.ebuild
index 62c7fc845f2c..3ad018719ee0 100644
--- a/dev-python/cattrs/cattrs-25.2.0.ebuild
+++ b/dev-python/cattrs/cattrs-25.2.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/cffi/cffi-2.0.0.ebuild b/dev-python/cffi/cffi-2.0.0.ebuild
index 3deba4e9e64f..592af547e46e 100644
--- a/dev-python/cffi/cffi-2.0.0.ebuild
+++ b/dev-python/cffi/cffi-2.0.0.ebuild
@@ -20,7 +20,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
# Needs recent libffi for HPPA fixes
DEPEND="
diff --git a/dev-python/cheroot/cheroot-11.0.0.ebuild b/dev-python/cheroot/cheroot-11.0.0.ebuild
index 8ae3b7ab8633..d8b66edb8f5b 100644
--- a/dev-python/cheroot/cheroot-11.0.0.ebuild
+++ b/dev-python/cheroot/cheroot-11.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
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"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/coverage/coverage-7.10.6.ebuild b/dev-python/coverage/coverage-7.10.6.ebuild
index 327235669a93..f02a62e5901d 100644
--- a/dev-python/coverage/coverage-7.10.6.ebuild
+++ b/dev-python/coverage/coverage-7.10.6.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/cython/cython-3.1.4.ebuild b/dev-python/cython/cython-3.1.4.ebuild
index 4b6e1d8c4744..e6eef8863cab 100644
--- a/dev-python/cython/cython-3.1.4.ebuild
+++ b/dev-python/cython/cython-3.1.4.ebuild
@@ -21,7 +21,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="test test-full"
RESTRICT="!test? ( test )"
diff --git a/dev-python/dnspython/dnspython-2.8.0.ebuild b/dev-python/dnspython/dnspython-2.8.0.ebuild
index 047bf32ea379..da808d16a723 100644
--- a/dev-python/dnspython/dnspython-2.8.0.ebuild
+++ b/dev-python/dnspython/dnspython-2.8.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~m68k ppc ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="dnssec examples https quic"
RDEPEND="
diff --git a/dev-python/elasticsearch/elasticsearch-9.1.1.ebuild b/dev-python/elasticsearch/elasticsearch-9.1.1.ebuild
index 724941d322ff..1dd2f1eb3e02 100644
--- a/dev-python/elasticsearch/elasticsearch-9.1.1.ebuild
+++ b/dev-python/elasticsearch/elasticsearch-9.1.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
RDEPEND="
<dev-python/aiohttp-4[${PYTHON_USEDEP}]
diff --git a/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild b/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild
index 331bf3c1e475..a65c8062c10a 100644
--- a/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild
+++ b/dev-python/electrum-ecc/electrum-ecc-0.0.6.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
# check ecc_fast.py for supported SOVERSIONS
RDEPEND="
diff --git a/dev-python/fonttools/fonttools-4.60.0.ebuild b/dev-python/fonttools/fonttools-4.60.0.ebuild
index 03579088ee95..9874d4cc7223 100644
--- a/dev-python/fonttools/fonttools-4.60.0.ebuild
+++ b/dev-python/fonttools/fonttools-4.60.0.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="BSD"
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"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/fsspec/fsspec-2025.9.0.ebuild b/dev-python/fsspec/fsspec-2025.9.0.ebuild
index ebe416c30466..9d26e7b7908d 100644
--- a/dev-python/fsspec/fsspec-2025.9.0.ebuild
+++ b/dev-python/fsspec/fsspec-2025.9.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
diff --git a/dev-python/grpcio-status/Manifest b/dev-python/grpcio-status/Manifest
index 0d2e168032b6..ae536fd14de6 100644
--- a/dev-python/grpcio-status/Manifest
+++ b/dev-python/grpcio-status/Manifest
@@ -2,3 +2,4 @@ DIST grpc-1.73.1.gh.tar.gz 14876868 BLAKE2B 6321e16b4ebee97c8482be8756700de6409b
DIST grpc-1.74.0.gh.tar.gz 15014902 BLAKE2B 1c024dd44053cc076d8c3d42b9aa642120222ba36fb816a7be31b9e72b12fe1c14e2d8d81db38c1ea89a57589ebc6153d6089b32c0cbc4100d8b70b579bb42fe SHA512 2b8e726743336ad33157705761159ae4f096209781d7c05cf0b2699852604dde28878f60f3028e08f19db7d8f7c003dc342594a387a9da55db67d39180fdc010
DIST grpc-1.75.0.gh.tar.gz 15248921 BLAKE2B 4f26e82e2af806545622d45efaac07e1cb271edb6335fc6a1a968f0f2789a82c4c1713ad11ff61a0abf72b5fe9e91ab671c457e5c650d877c8a57d2fd2e11be7 SHA512 8cd7854185e2b8156860ed6f652b81041986fb7aee6cfb4cc35a9b63a218ae849c79a7de4fa003e89b1aa4e0e0a89f01630ab5f259ee34e4e1882d8d9c4cd4b0
DIST grpc-1.75.1.gh.tar.gz 15252613 BLAKE2B 5919ed80a7d723875b586ec9ed46e9f2921223dc459403184c35502a7768d9d7ead978a302b4b9d15fa3645c088a6344c6488d519ea7e9f9a7889465264a0467 SHA512 ffc3fde817f60e151cb2d2c0980485faf15270c12f2ec5f1228ef595d019ddf3c5e977f974cb8d5911010e0083652edddade1e999155a2fa2e72c3fd3a1aefb2
+DIST grpc-1.76.0.gh.tar.gz 15387277 BLAKE2B 529effe73d8a8f0a07b18127c05f3d9752294ffbba9b44470974905ce6a458bd2d7cbb70be59c1c22d32b56151a3f2c891b815b5eb0d8a381bf7744ceb513d0a SHA512 6338448d7c0fc78c38480f1fafd7605d031b600a702df3771a9d1b1236da7bf97a93dbdbc2d93d12d395411dc2f2ac57587ad1b697c4b2a5ac56fb8af1184501
diff --git a/dev-python/grpcio-status/grpcio-status-1.76.0.ebuild b/dev-python/grpcio-status/grpcio-status-1.76.0.ebuild
new file mode 100644
index 000000000000..6483dc16d222
--- /dev/null
+++ b/dev-python/grpcio-status/grpcio-status-1.76.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1
+
+MY_P=grpc-${PV}
+DESCRIPTION="Reference package for GRPC Python status proto mapping"
+HOMEPAGE="
+ https://grpc.io/
+ https://github.com/grpc/grpc/
+ https://pypi.org/project/grpcio-status/
+"
+SRC_URI="
+ https://github.com/grpc/grpc/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/src/python/grpcio_status
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/grpcio-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/googleapis-common-protos-1.5.5[${PYTHON_USEDEP}]
+ <dev-python/protobuf-7[${PYTHON_USEDEP}]
+ >=dev-python/protobuf-6.31.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/coverage[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ cd "${WORKDIR}/${MY_P}/src/python/grpcio_tests" || die
+ epytest tests{,_aio}/status
+}
diff --git a/dev-python/gssapi/gssapi-1.10.0.ebuild b/dev-python/gssapi/gssapi-1.10.0.ebuild
index ed5019110618..56f3baacca4b 100644
--- a/dev-python/gssapi/gssapi-1.10.0.ebuild
+++ b/dev-python/gssapi/gssapi-1.10.0.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}"/python-${P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/decorator[${PYTHON_USEDEP}]
diff --git a/dev-python/hcloud/hcloud-2.6.0.ebuild b/dev-python/hcloud/hcloud-2.6.0.ebuild
index d477ef6d2702..a8951e3c4d2a 100644
--- a/dev-python/hcloud/hcloud-2.6.0.ebuild
+++ b/dev-python/hcloud/hcloud-2.6.0.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/id/id-1.5.0.ebuild b/dev-python/id/id-1.5.0.ebuild
index 2c7e06c1d4cd..f3eb4c73336a 100644
--- a/dev-python/id/id-1.5.0.ebuild
+++ b/dev-python/id/id-1.5.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
diff --git a/dev-python/isal/isal-1.8.0.ebuild b/dev-python/isal/isal-1.8.0.ebuild
index 75902614cda7..b85330cf5a01 100644
--- a/dev-python/isal/isal-1.8.0.ebuild
+++ b/dev-python/isal/isal-1.8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
dev-libs/isa-l:=
diff --git a/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild b/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild
index b77ca22b08ca..9c02dd7628ed 100644
--- a/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild
+++ b/dev-python/jupyterlab/jupyterlab-4.4.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD MIT GPL-3 Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
RDEPEND="
>=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/krb5/krb5-0.8.0.ebuild b/dev-python/krb5/krb5-0.8.0.ebuild
index 503f59aedaf0..f7314f1bcfb7 100644
--- a/dev-python/krb5/krb5-0.8.0.ebuild
+++ b/dev-python/krb5/krb5-0.8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
virtual/krb5
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..d12ab8aeaca8 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
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
deleted file mode 100644
index 637368d2f237..000000000000
--- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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 7100f5f39dd8..271137de443d 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,6 +19,4 @@ 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 c0f74ac187e2..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,9 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>pastalian46@gmail.com</email>
- <name>Takuya Wakazono</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/more-itertools/more-itertools-10.8.0.ebuild b/dev-python/more-itertools/more-itertools-10.8.0.ebuild
index 237d77440611..34d7be67a3b5 100644
--- a/dev-python/more-itertools/more-itertools-10.8.0.ebuild
+++ b/dev-python/more-itertools/more-itertools-10.8.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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
distutils_enable_sphinx docs \
dev-python/furo
diff --git a/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild b/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild
index 73e010f09b6f..f0680b62816f 100644
--- a/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild
+++ b/dev-python/mpmath/mpmath-1.4.0_alpha7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~mips ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="test-full"
BDEPEND="
diff --git a/dev-python/mypy/mypy-1.18.1.ebuild b/dev-python/mypy/mypy-1.18.1.ebuild
index 9e7bfa046522..c522176f213f 100644
--- a/dev-python/mypy/mypy-1.18.1.ebuild
+++ b/dev-python/mypy/mypy-1.18.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="+native-extensions"
# stubgen collides with this package: https://bugs.gentoo.org/585594
diff --git a/dev-python/numexpr/numexpr-2.12.1.ebuild b/dev-python/numexpr/numexpr-2.12.1.ebuild
index 9ca9fc66d7d3..31d80fd5c7c1 100644
--- a/dev-python/numexpr/numexpr-2.12.1.ebuild
+++ b/dev-python/numexpr/numexpr-2.12.1.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
DEPEND="
>=dev-python/numpy-2.0.0_rc:=[${PYTHON_USEDEP}]
diff --git a/dev-python/openstacksdk/openstacksdk-4.7.1.ebuild b/dev-python/openstacksdk/openstacksdk-4.7.1.ebuild
index 736d04194df1..b922d7ad626b 100644
--- a/dev-python/openstacksdk/openstacksdk-4.7.1.ebuild
+++ b/dev-python/openstacksdk/openstacksdk-4.7.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/cryptography-2.7[${PYTHON_USEDEP}]
diff --git a/dev-python/opentelemetry-api/opentelemetry-api-1.37.0.ebuild b/dev-python/opentelemetry-api/opentelemetry-api-1.37.0.ebuild
index 9458397b663e..2e0505edce37 100644
--- a/dev-python/opentelemetry-api/opentelemetry-api-1.37.0.ebuild
+++ b/dev-python/opentelemetry-api/opentelemetry-api-1.37.0.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}/${PN}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/importlib-metadata-6.0[${PYTHON_USEDEP}]
diff --git a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.37.0.ebuild b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.37.0.ebuild
index 9484c573b9eb..2b117048192f 100644
--- a/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.37.0.ebuild
+++ b/dev-python/opentelemetry-sdk/opentelemetry-sdk-1.37.0.ebuild
@@ -24,7 +24,7 @@ S="${WORKDIR}/${MY_P}/${PN}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.37.0.ebuild b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.37.0.ebuild
index 4015971e8096..b622343e0735 100644
--- a/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.37.0.ebuild
+++ b/dev-python/opentelemetry-semantic-conventions/opentelemetry-semantic-conventions-1.37.0.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}/${PN}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
~dev-python/opentelemetry-api-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/pbs-installer/pbs-installer-2025.09.18.ebuild b/dev-python/pbs-installer/pbs-installer-2025.09.18.ebuild
index 36b920a80926..fd3b0f756829 100644
--- a/dev-python/pbs-installer/pbs-installer-2025.09.18.ebuild
+++ b/dev-python/pbs-installer/pbs-installer-2025.09.18.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
BDEPEND="
dev-python/zstandard[${PYTHON_USEDEP}]
diff --git a/dev-python/phonenumbers/phonenumbers-9.0.14.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.14.ebuild
index e2a1efa5ccaf..51df4f44bd31 100644
--- a/dev-python/phonenumbers/phonenumbers-9.0.14.ebuild
+++ b/dev-python/phonenumbers/phonenumbers-9.0.14.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}/python
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/protobuf/Manifest b/dev-python/protobuf/Manifest
index a408c54b8b3c..22f39a7438e8 100644
--- a/dev-python/protobuf/Manifest
+++ b/dev-python/protobuf/Manifest
@@ -1,7 +1,7 @@
+DIST protobuf-29.5.gh.tar.gz 9351493 BLAKE2B bb591ebe69cc76830ac84e4af10a3de3cc5c760ffd682a9b9d6bab6f838d4bcb32c361118b41fdc6c6a6e6c3eb00657b0a345d8cc709d95c9635e76dd71494af SHA512 fb35f36145356fbc65a5c9a9501ea9d1e089fc1cd4dd2c8098068b7f10a378efff5b04429bc500347e98cf2b239d49f8c503c60bd35ddaad3d4f6b0a076ebabf
DIST protobuf-32.0.gh.tar.gz 9692366 BLAKE2B 37e09bec62a5c35a3ca45d4bd4fd27e719a4f04b95f049b265ca7c231459d8333eafc13cfd1126dda5ccf799ab2e2e9f305fcae5525a64b4b1eb45b1fb3a897b SHA512 89806b219fa2132e46bf01b7a5831c2977ad7ebe06750956d0e17bcdc028498e883704445fca56bb813f4b78e935709f67f8fa1b46b597840c58a843483cdafb
DIST protobuf-32.1.gh.tar.gz 9694736 BLAKE2B 37a310799eaa58b14f67c62410f1e150c031b94db5a499ceeda749bd13a1165403a5d4c86ffa45729ae333080697ce0619b29a51d2bc345de012f99a3ce5dd20 SHA512 840239f4fb57450ffe61f2cdc73daf5f1f3ea317b1ab1135a90303783e62722cfa410ff27bb2c5c6d3106be39ccdc95cdfbc5bf271ba79f935ab85f9b8ce3075
DIST protobuf-33.0.gh.tar.gz 6869946 BLAKE2B ee9a600d67873f129138cb3ab13b3d5197301e8cfc682f194317c8389f7115d10bab73e410116570f8f0ccfe2dc20f8f629b47c90f7b31a3df54acfacda18506 SHA512 365f975f2e982dd2d5588dc0ff435316bf6e50d272e419c01793e4d02f1a9f1e98026fc854ec73f1ee4eb0391701201ae82c7af9b18f3b677d451dd3dd78c468
-DIST protobuf-5.29.4.py.tar.gz 424902 BLAKE2B 54941b008ff5ebd007076448828564128d98e9a6a4613c87057c359124940d341358fe28107b929e3e842ac7e1b34ed54c30219ed95cbb418826592e2458a01f SHA512 634faf103ed8320762593689796d26e6b988e1b40277b12dc7356983c07d5d1da8cac1530e4f16c0a1494abfb885f26bf9884988029e863515cf535c62d96c77
DIST protobuf-5.29.5.py.tar.gz 425226 BLAKE2B 1d7461e94ba8bc097d6f52170678665e3cd97ef44e4757e6c20bcb1bdfbfe673d26cd4a63f8e6972af964e381dfffedeb9a4959ec7a7d5a3a3f87f917c8aa329 SHA512 cbb39efe7f6499362b3e4cc9f073df921c8b83d3aafde245a2ca3432f3e744a428e946799c48b2797e08312342e164eced0bf2b8865b8d042b54913855abb1c8
DIST protobuf-6.30.2.gh.tar.gz 9523913 BLAKE2B d3950abfe8b3b61dc2bb61f683b014de29451252c46b670dee75a81eb0b8ed30a3209227aa9483800244af16058469deb281521609d769a3456a798ca8a9a4a3 SHA512 f2ee857a36b49f87257a306b3f3c361770d74aaf24c4650b9d00994e1e1a0b09079fb0ce5ffb4d5a4a32d8ca46e3247d6db454918fa0b104fc8d58e8a0546a96
DIST protobuf-6.30.2.py.tar.gz 429315 BLAKE2B 6b56e23a8a962ce9da282ec49c4807877f4bfb677ad84bb6930b83cc436e9839f5791cfb19105678881c8361e27d62d3dde51e5e6c42f7a0e146d9e469282780 SHA512 48ddb2b63acc91759ba4243926c50bb0d16601aace9019129975701634b77a59415659751c69b06464afe994a0fbbd8da6640a208b743ba7df8bf6d60c5ec2b9
diff --git a/dev-python/protobuf/protobuf-5.29.4-r2.ebuild b/dev-python/protobuf/protobuf-5.29.4-r2.ebuild
deleted file mode 100644
index e5030dcf37df..000000000000
--- a/dev-python/protobuf/protobuf-5.29.4-r2.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2008-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Default implementation currently is upb, which doesn't match dev-libs/protobuf
-# https://github.com/protocolbuffers/protobuf/blob/main/python/README.md#implementation-backends
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..14} )
-PYPI_PN="protobuf"
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Google's Protocol Buffers - Python bindings"
-HOMEPAGE="
- https://protobuf.dev/
- https://pypi.org/project/protobuf/
-"
-
-# Rename sdist to avoid conflicts with dev-libs/protobuf
-SRC_URI="
- $(pypi_sdist_url) -> ${P}.py.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0/$(ver_cut 1-3)"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
diff --git a/dev-python/protobuf/protobuf-5.29.5.ebuild b/dev-python/protobuf/protobuf-5.29.5.ebuild
new file mode 100644
index 000000000000..d6a77c824251
--- /dev/null
+++ b/dev-python/protobuf/protobuf-5.29.5.ebuild
@@ -0,0 +1,156 @@
+# Copyright 2008-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Default implementation currently is upb, which doesn't match dev-libs/protobuf
+# https://github.com/protocolbuffers/protobuf/blob/main/python/README.md#implementation-backends
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+GH_PV=$(ver_cut 2-3)
+GH_P=${PN}-${GH_PV}
+
+DESCRIPTION="Google's Protocol Buffers - Python bindings"
+HOMEPAGE="
+ https://protobuf.dev/
+ https://pypi.org/project/protobuf/
+"
+# Rename sdist to avoid conflicts with dev-libs/protobuf
+SRC_URI="
+ $(pypi_sdist_url) -> ${P}.py.tar.gz
+ test? (
+ https://github.com/protocolbuffers/protobuf/archive/v${GH_PV}.tar.gz
+ -> ${GH_P}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+# need protobuf compiler
+BDEPEND="
+ test? (
+ dev-libs/protobuf
+ dev-python/absl-py[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pytest-forked[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_unpack() {
+ unpack "${P}.py.tar.gz"
+
+ if use test; then
+ mkdir "${WORKDIR}/test" || die
+ cd "${WORKDIR}/test" || die
+ unpack "${GH_P}.gh.tar.gz"
+ fi
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # strip old-style namespace
+ rm google/__init__.py || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=()
+ local EPYTEST_IGNORE=(
+ # TODO: figure out how to build the pybind11 test extension
+ google/protobuf/internal/recursive_message_pybind11_test.py
+ )
+
+ case ${EPYTHON} in
+ python3.11)
+ EPYTEST_IGNORE+=(
+ # syntax error...
+ google/protobuf/internal/json_format_test.py
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ # exception message mismatch
+ google/protobuf/internal/json_format_test.py::JsonFormatTest::testInvalidTimestamp
+ google/protobuf/internal/well_known_types_test.py::TimeUtilTest::testInvalidTimestamp
+ )
+ ;;
+ esac
+
+ cp -r "${BUILD_DIR}"/{install,test} || die
+ local -x PATH="${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}"
+ cd "${BUILD_DIR}/test$(python_get_sitedir)" || die
+
+ # copy test files from the source tree
+ cp -r "${WORKDIR}/test/${GH_P}/python/google/protobuf/internal/." \
+ google/protobuf/internal/ || die
+ # link the test data for text_format_test.py
+ # (it traverses directories upwards until to finds src/google...)
+ ln -s "${WORKDIR}/test/${GH_P}/src" ../src || die
+
+ # compile test-related protobufs
+ local test_protos=(
+ # from src
+ any_test.proto
+ map_proto2_unittest.proto
+ map_unittest.proto
+ unittest.proto
+ unittest_custom_options.proto
+ unittest_delimited.proto
+ unittest_delimited_import.proto
+ unittest_features.proto
+ unittest_import.proto
+ unittest_import_public.proto
+ unittest_legacy_features.proto
+ unittest_mset.proto
+ unittest_mset_wire_format.proto
+ unittest_no_field_presence.proto
+ unittest_no_generic_services.proto
+ unittest_proto3.proto
+ unittest_proto3_arena.proto
+ unittest_proto3_extensions.proto
+ unittest_retention.proto
+ util/json_format.proto
+ util/json_format_proto3.proto
+ # from python
+ internal/descriptor_pool_test1.proto
+ internal/descriptor_pool_test2.proto
+ internal/factory_test1.proto
+ internal/factory_test2.proto
+ internal/file_options_test.proto
+ internal/import_test_package/import_public.proto
+ internal/import_test_package/import_public_nested.proto
+ internal/import_test_package/inner.proto
+ internal/import_test_package/outer.proto
+ internal/message_set_extensions.proto
+ internal/missing_enum_values.proto
+ internal/more_extensions.proto
+ internal/more_messages.proto
+ internal/no_package.proto
+ internal/packed_field_test.proto
+ internal/self_recursive.proto
+ internal/test_bad_identifiers.proto
+ internal/test_proto2.proto
+ internal/test_proto3_optional.proto
+ internal/well_known_types_test.proto
+ )
+ local proto
+ for proto in "${test_protos[@]}"; do
+ protoc --python_out=. -I"${WORKDIR}/test/${GH_P}/src" -I. \
+ "google/protobuf/${proto}" || die
+ done
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ # pytest-forked prevents segfault on py3.13
+ # https://github.com/protocolbuffers/protobuf/issues/22067
+ epytest -p pytest_forked --forked
+}
diff --git a/dev-python/protobuf/protobuf-6.32.1-r1.ebuild b/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
index d6dee88ffdd4..1aaa2a3f5276 100644
--- a/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
+++ b/dev-python/protobuf/protobuf-6.32.1-r1.ebuild
@@ -31,7 +31,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0/$(ver_cut 1-3)"
-KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~sparc ~x86"
# need protobuf compiler
BDEPEND="
diff --git a/dev-python/psutil/psutil-7.1.0.ebuild b/dev-python/psutil/psutil-7.1.0.ebuild
index 8a330f3f7a14..c8965b4f7b73 100644
--- a/dev-python/psutil/psutil-7.1.0.ebuild
+++ b/dev-python/psutil/psutil-7.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
EPYTEST_PLUGINS=( pytest-subtests )
distutils_enable_tests pytest
diff --git a/dev-python/psycopg/psycopg-3.2.10.ebuild b/dev-python/psycopg/psycopg-3.2.10.ebuild
index 79e32b6a2362..b2898e2ced7c 100644
--- a/dev-python/psycopg/psycopg-3.2.10.ebuild
+++ b/dev-python/psycopg/psycopg-3.2.10.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="LGPL-3+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="+native-extensions"
DEPEND="
diff --git a/dev-python/pybind11/pybind11-3.0.1.ebuild b/dev-python/pybind11/pybind11-3.0.1.ebuild
index b6a006d3ee81..efbb4b717d25 100644
--- a/dev-python/pybind11/pybind11-3.0.1.ebuild
+++ b/dev-python/pybind11/pybind11-3.0.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
dev-cpp/eigen:3
diff --git a/dev-python/pycares/pycares-4.11.0.ebuild b/dev-python/pycares/pycares-4.11.0.ebuild
index 289941e545f2..18c52709822f 100644
--- a/dev-python/pycares/pycares-4.11.0.ebuild
+++ b/dev-python/pycares/pycares-4.11.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test"
# Tests fail with network-sandbox, since they try to resolve google.com
PROPERTIES="test_network"
diff --git a/dev-python/pyeclib/pyeclib-1.7.0.ebuild b/dev-python/pyeclib/pyeclib-1.7.0.ebuild
index aff6ff2cbf44..87f47f13307a 100644
--- a/dev-python/pyeclib/pyeclib-1.7.0.ebuild
+++ b/dev-python/pyeclib/pyeclib-1.7.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 x86"
DEPEND="
dev-libs/liberasurecode
diff --git a/dev-python/pyenchant/pyenchant-3.3.0.ebuild b/dev-python/pyenchant/pyenchant-3.3.0.ebuild
index f34535008c91..751cdda6086a 100644
--- a/dev-python/pyenchant/pyenchant-3.3.0.ebuild
+++ b/dev-python/pyenchant/pyenchant-3.3.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="
app-text/enchant:*
diff --git a/dev-python/pyglet/pyglet-2.1.9.ebuild b/dev-python/pyglet/pyglet-2.1.9.ebuild
index 4a9758d80638..5b69d70e279a 100644
--- a/dev-python/pyglet/pyglet-2.1.9.ebuild
+++ b/dev-python/pyglet/pyglet-2.1.9.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
IUSE="examples image +sound"
RDEPEND="
diff --git a/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild b/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
index 8a3018529dd7..806aa05a2cce 100644
--- a/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
+++ b/dev-python/pylsqpack/pylsqpack-0.3.22.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm ~arm64 ppc ppc64 ~riscv x86"
distutils_enable_tests pytest
diff --git a/dev-python/pymysql/pymysql-1.1.2.ebuild b/dev-python/pymysql/pymysql-1.1.2.ebuild
index 35581bf899e4..24817a14e3ea 100644
--- a/dev-python/pymysql/pymysql-1.1.2.ebuild
+++ b/dev-python/pymysql/pymysql-1.1.2.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
# TODO: support other mysql variants
BDEPEND="
diff --git a/dev-python/pynacl/pynacl-1.6.0.ebuild b/dev-python/pynacl/pynacl-1.6.0.ebuild
index 0587a2c6f167..951cbb37051b 100644
--- a/dev-python/pynacl/pynacl-1.6.0.ebuild
+++ b/dev-python/pynacl/pynacl-1.6.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-libs/libsodium:=
diff --git a/dev-python/pynvim/pynvim-0.6.0.ebuild b/dev-python/pynvim/pynvim-0.6.0.ebuild
index f04d74a3cd97..2f62f3005a78 100644
--- a/dev-python/pynvim/pynvim-0.6.0.ebuild
+++ b/dev-python/pynvim/pynvim-0.6.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~x86"
RDEPEND="
>=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pyopengl-accelerate/pyopengl-accelerate-3.1.10.ebuild b/dev-python/pyopengl-accelerate/pyopengl-accelerate-3.1.10.ebuild
index 0cfb211138f7..7b1e8380552a 100644
--- a/dev-python/pyopengl-accelerate/pyopengl-accelerate-3.1.10.ebuild
+++ b/dev-python/pyopengl-accelerate/pyopengl-accelerate-3.1.10.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
IUSE="numpy"
DEPEND="
diff --git a/dev-python/pyperclip/pyperclip-1.10.0.ebuild b/dev-python/pyperclip/pyperclip-1.10.0.ebuild
index 58d51028d507..ca0ed60cbca5 100644
--- a/dev-python/pyperclip/pyperclip-1.10.0.ebuild
+++ b/dev-python/pyperclip/pyperclip-1.10.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
|| (
diff --git a/dev-python/pyqt6-webengine/Manifest b/dev-python/pyqt6-webengine/Manifest
index 715b7fed03ed..10a02f137884 100644
--- a/dev-python/pyqt6-webengine/Manifest
+++ b/dev-python/pyqt6-webengine/Manifest
@@ -1 +1,2 @@
+DIST pyqt6_webengine-6.10.0.tar.gz 37053 BLAKE2B b87f4f12de50fe124a310ae2a121f908f8e70a3c6bc70011368a9b79934614f46d2d7441448ec1971827cae6f0942ab7adcd360f6e191fa0b2793140a6baa871 SHA512 d331203281be2a5d176abe3dca8868a021acbc66e37e73952c6f706a7131d56d2caf66453b048720d4cc217f9db0d731cf49890048bcef3f207f25a8595f64aa
DIST pyqt6_webengine-6.9.0.tar.gz 34616 BLAKE2B ce6143b16e60ad133c827996f03b310008b025f616739d4c7949dc8916513dfd24bcb44d269465a1bffe1a608728f77d381a15363d3761815d54622ab7490a33 SHA512 3e84439fa7f2ab1c231eac556545968d37e7bef30779d09376eedb5861ab47f9a83e72c8834fbfa4aef27a61e4ff2d797615e3f80362bcd1613954d27af8c6a8
diff --git a/dev-python/pyqt6-webengine/files/pyqt6-webengine-6.8.0-qvariant.patch b/dev-python/pyqt6-webengine/files/pyqt6-webengine-6.8.0-qvariant.patch
deleted file mode 100644
index bdb7d4c2a202..000000000000
--- a/dev-python/pyqt6-webengine/files/pyqt6-webengine-6.8.0-qvariant.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-This was removed between 6.8.0.dev2411020930 and 6.8.0 final, but
-results in a build failure if missing (or at least with Qt6.8.1).
-
-qwebengineframe.sip:52:64: error: invalid use of incomplete type 'class QVariant'
---- a/sip/QtWebEngineCore/qwebengineframe.sip
-+++ b/sip/QtWebEngineCore/qwebengineframe.sip
-@@ -29,4 +29,8 @@
- %End
-
-+%TypeCode
-+#include <QVariant>
-+%End
-+
- public:
- bool isValid() const;
diff --git a/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild b/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild
new file mode 100644
index 000000000000..4e72ef02558c
--- /dev/null
+++ b/dev-python/pyqt6-webengine/pyqt6-webengine-6.10.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=sip
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 flag-o-matic multiprocessing pypi qmake-utils
+
+QT_PV=$(ver_cut 1-2):6
+
+DESCRIPTION="Python bindings for QtWebEngine"
+HOMEPAGE="https://www.riverbankcomputing.com/software/pyqtwebengine/"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="debug quick +widgets"
+
+RDEPEND="
+ >=dev-python/pyqt6-${QT_PV%:*}[gui,ssl,webchannel,${PYTHON_USEDEP}]
+ >=dev-qt/qtbase-${QT_PV}[gui,widgets?]
+ >=dev-qt/qtwebengine-${QT_PV}[widgets]
+ quick? (
+ dev-python/pyqt6[qml]
+ >=dev-qt/qtwebengine-${QT_PV}[qml]
+ )
+ widgets? ( dev-python/pyqt6[network,printsupport,widgets] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-python/pyqt-builder-1.19[${PYTHON_USEDEP}]
+ >=dev-python/sip-6.13.1[${PYTHON_USEDEP}]
+ >=dev-qt/qtbase-${QT_PV}
+"
+
+src_prepare() {
+ default
+
+ # hack: PyQt-builder runs qmake without our arguments and calls g++
+ # or clang++ depending on what qtbase was built with, not used for
+ # building but fails with -native-symlinks
+ mkdir "${T}"/cxx || die
+ local cxx
+ ! cxx=$(type -P "${CHOST}"-g++) || ln -s -- "${cxx}" "${T}"/cxx/g++ || die
+ ! cxx=$(type -P "${CHOST}"-clang++) || ln -s -- "${cxx}" "${T}"/cxx/clang++ || die
+ PATH=${T}/cxx:${PATH}
+}
+
+python_configure_all() {
+ append-cxxflags -std=c++17 # for old gcc / clang that use <17 (bug #892331)
+ append-cxxflags ${CPPFLAGS} # respect CPPFLAGS notably for DISTUTILS_EXT=1
+
+ DISTUTILS_ARGS=(
+ --jobs="$(makeopts_jobs)"
+ --qmake="$(qt6_get_bindir)"/qmake
+ --qmake-setting="$(qt6_get_qmake_args)"
+ --verbose
+
+ --enable=QtWebEngineCore
+ $(usex quick --{enable,disable}=QtWebEngineQuick)
+ $(usex widgets --{enable,disable}=QtWebEngineWidgets)
+
+ $(usev debug '--debug --qml-debug --tracing')
+ )
+}
diff --git a/dev-python/pyqt6/Manifest b/dev-python/pyqt6/Manifest
index 8b4c3483f93f..8ffec94ca687 100644
--- a/dev-python/pyqt6/Manifest
+++ b/dev-python/pyqt6/Manifest
@@ -1 +1,2 @@
+DIST pyqt6-6.10.0.tar.gz 1079921 BLAKE2B bd3b3fd2a109920320079c885d1b6cc25e5a8b74f38a84b22fcbb57406a8ba586fab6f345bd4f961527f95bcb34e5a63cba636e9279310a83e753e036da8a64b SHA512 ef88adff167ea2ff7c946500371168c5dd9fc8d7c0f9d8ab8b43aedcbfa1bf80cf6d4ef3fc5f3969a1e3a76db90f9c1bd5755ae9739cb86b3f924c4ba8f66d96
DIST pyqt6-6.9.1.tar.gz 1067230 BLAKE2B 93b301fca3a7d97f872ca96f00eb27d434378f49dd19da6ffd5c26dbce378a7ea01786c0e7de34ce24620a14fa036b2187c5f7b0a4efa5a908ceaf557f748e9d SHA512 e2f10d6dc1ea9f420857abe248bfd488f8945e9c6c84887745f072815875ce7e806788a9048a57215266fa561b1489c3b092c276816062323262e6911271c552
diff --git a/dev-python/pyqt6/pyqt6-6.10.0.ebuild b/dev-python/pyqt6/pyqt6-6.10.0.ebuild
new file mode 100644
index 000000000000..85c918c7190f
--- /dev/null
+++ b/dev-python/pyqt6/pyqt6-6.10.0.ebuild
@@ -0,0 +1,193 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=sip
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 flag-o-matic multiprocessing pypi qmake-utils
+
+# can work with older Qt depending on the features the ebuild enables,
+# but a same major.minor version lower bound is simpler to manage/test
+QT_PV=$(ver_cut 1-2):6
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+# defaults match what is provided with qtbase by default (except testlib),
+# reduces the need to set flags but does increase build time a fair amount
+IUSE="
+ +X bluetooth +dbus debug designer examples gles2-only +gui help
+ multimedia +network nfc opengl pdfium positioning +printsupport
+ qml quick quick3d remoteobjects scxml serialport sensors
+ spatialaudio speech +sql +ssl svg testlib webchannel websockets
+ vulkan wayland +widgets +xml
+"
+# see `grep -r "%Import " sip` and `grep qmake_QT project.py`
+REQUIRED_USE="
+ designer? ( gui widgets )
+ help? ( gui widgets )
+ multimedia? ( gui network )
+ opengl? ( gui )
+ pdfium? ( gui )
+ printsupport? ( gui widgets )
+ qml? ( network )
+ quick3d? ( gui qml )
+ quick? ( gui qml )
+ remoteobjects? ( network )
+ scxml? ( gui )
+ spatialaudio? ( multimedia )
+ sql? ( widgets )
+ svg? ( gui )
+ testlib? ( gui widgets )
+ vulkan? ( gui )
+ webchannel? ( network )
+ websockets? ( network )
+ widgets? ( gui )
+"
+
+# may use qt private symbols wrt qtbase's :=
+# non-trivially broken with Qt6.8 wrt upper bound, waiting for PyQt6-6.8.0
+COMMON_DEPEND="
+ >=dev-qt/qtbase-${QT_PV}=[X?,dbus?,gles2-only=,gui?,network?,opengl?,sql?,ssl=,vulkan?,wayland?,widgets?,xml?]
+ bluetooth? ( >=dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ sys-apps/dbus
+ )
+ designer? ( >=dev-qt/qttools-${QT_PV}[designer] )
+ help? ( >=dev-qt/qttools-${QT_PV}[assistant] )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ nfc? ( >=dev-qt/qtconnectivity-${QT_PV}[nfc] )
+ opengl? (
+ gles2-only? ( media-libs/libglvnd )
+ )
+ pdfium? ( >=dev-qt/qtwebengine-${QT_PV}[pdfium,widgets?] )
+ positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
+ qml? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] )
+ quick3d? ( >=dev-qt/qtquick3d-${QT_PV} )
+ quick? ( >=dev-qt/qtdeclarative-${QT_PV}[opengl] )
+ remoteobjects? ( >=dev-qt/qtremoteobjects-${QT_PV} )
+ scxml? ( >=dev-qt/qtscxml-${QT_PV} )
+ sensors? ( >=dev-qt/qtsensors-${QT_PV} )
+ serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+ speech? (
+ >=dev-qt/qtdeclarative-${QT_PV}
+ >=dev-qt/qtspeech-${QT_PV}
+ )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
+ websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=dev-python/pyqt6-sip-13.8[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ vulkan? ( dev-util/vulkan-headers )
+"
+BDEPEND="
+ >=dev-python/pyqt-builder-1.19[${PYTHON_USEDEP}]
+ >=dev-python/sip-6.13.1[${PYTHON_USEDEP}]
+ >=dev-qt/qtbase-${QT_PV}
+ dbus? ( virtual/pkgconfig )
+"
+
+src_prepare() {
+ default
+
+ # hack: PyQt-builder runs qmake without our arguments and calls g++
+ # or clang++ depending on what qtbase was built with, not used for
+ # building but fails with -native-symlinks
+ mkdir "${T}"/cxx || die
+ local cxx
+ ! cxx=$(type -P "${CHOST}"-g++) || ln -s -- "${cxx}" "${T}"/cxx/g++ || die
+ ! cxx=$(type -P "${CHOST}"-clang++) || ln -s -- "${cxx}" "${T}"/cxx/clang++ || die
+ PATH=${T}/cxx:${PATH}
+}
+
+python_configure_all() {
+ append-cxxflags -std=c++17 # for old gcc / clang that use <17 (bug #892331)
+ append-cxxflags ${CPPFLAGS} # respect CPPFLAGS notably for DISTUTILS_EXT=1
+
+ pyqt_use_enable() {
+ local state=$(usex ${1} --enable= --disable=)
+ shift
+ echo ${*/#/${state}}
+ }
+
+ DISTUTILS_ARGS=(
+ --jobs="$(makeopts_jobs)"
+ --qmake="$(qt6_get_bindir)"/qmake
+ --qmake-setting="$(qt6_get_qmake_args)"
+ --verbose
+ --confirm-license
+
+ --enable=QtCore
+
+ $(pyqt_use_enable bluetooth QtBluetooth)
+ $(pyqt_use_enable dbus QtDBus)
+ $(pyqt_use_enable designer QtDesigner)
+ $(pyqt_use_enable help QtHelp)
+ $(pyqt_use_enable gui QtGui)
+ #--disable=QtLocation # force-disabled in project.py
+ $(pyqt_use_enable multimedia QtMultimedia \
+ $(usev widgets QtMultimediaWidgets))
+ $(pyqt_use_enable network QtNetwork)
+ $(pyqt_use_enable nfc QtNfc)
+ $(pyqt_use_enable opengl QtOpenGL \
+ $(usev widgets QtOpenGLWidgets))
+ $(pyqt_use_enable pdfium QtPdf \
+ $(usev widgets QtPdfWidgets))
+ $(pyqt_use_enable positioning QtPositioning)
+ $(pyqt_use_enable printsupport QtPrintSupport)
+ $(pyqt_use_enable qml QtQml)
+ $(pyqt_use_enable quick QtQuick \
+ $(usev widgets QtQuickWidgets))
+ $(pyqt_use_enable quick3d QtQuick3D)
+ $(pyqt_use_enable remoteobjects QtRemoteObjects)
+ $(pyqt_use_enable scxml QtStateMachine)
+ $(pyqt_use_enable sensors QtSensors)
+ $(pyqt_use_enable serialport QtSerialPort)
+ $(pyqt_use_enable spatialaudio QtSpatialAudio)
+ $(pyqt_use_enable sql QtSql)
+ $(pyqt_use_enable svg QtSvg \
+ $(usev widgets QtSvgWidgets))
+ $(pyqt_use_enable testlib QtTest)
+ $(pyqt_use_enable speech QtTextToSpeech)
+ $(pyqt_use_enable webchannel QtWebChannel)
+ $(pyqt_use_enable websockets QtWebSockets)
+ $(pyqt_use_enable widgets QtWidgets)
+ $(pyqt_use_enable xml QtXml)
+
+ $(usev debug '--debug --qml-debug --tracing')
+
+ $(usev !dbus --no-dbus-python)
+ # note: upstream currently intentionally skips installing these two
+ # plugins when using wheels w/ pep517 so, *if* something does need
+ # them, it will need to be handled manually
+ $(usev !designer --no-designer-plugin)
+ $(usev !qml --no-qml-plugin)
+
+ $(usev !X --disabled-feature=PyQt_XCB)
+ $(usev !gles2-only --disabled-feature=PyQt_OpenGL_ES2)
+ $(usev !opengl --disabled-feature=PyQt_OpenGL)
+ $(usev !ssl --disabled-feature=PyQt_SSL)
+ $(usev !vulkan --disabled-feature=PyQt_Vulkan)
+ $(usev !wayland --disabled-feature=PyQt_Wayland)
+
+ # intended for Windows / Android or others
+ --disable=QAxContainer
+ --disabled-feature=PyQt_Permissions
+ )
+}
+
+python_install_all() {
+ einstalldocs
+ use examples && dodoc -r examples
+}
diff --git a/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.4.0.ebuild b/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.4.0.ebuild
index cbd5b9bb4380..5b0edadd2809 100644
--- a/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.4.0.ebuild
+++ b/dev-python/pytest-lazy-fixtures/pytest-lazy-fixtures-1.4.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~mips ppc64 ~riscv ~s390 x86"
RDEPEND="
>=dev-python/pytest-7[${PYTHON_USEDEP}]
diff --git a/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild b/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild
index 0526cfff328c..6995ef468248 100644
--- a/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild
+++ b/dev-python/python-cinderclient/python-cinderclient-9.8.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/keystoneauth1-5.9.0[${PYTHON_USEDEP}]
diff --git a/dev-python/python-glanceclient/python-glanceclient-4.10.0.ebuild b/dev-python/python-glanceclient/python-glanceclient-4.10.0.ebuild
index 888c2d150129..dd3dd8bd39ce 100644
--- a/dev-python/python-glanceclient/python-glanceclient-4.10.0.ebuild
+++ b/dev-python/python-glanceclient/python-glanceclient-4.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
>=dev-python/keystoneauth1-3.6.2[${PYTHON_USEDEP}]
diff --git a/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild b/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild
index cfd33443a819..e69fba6fa434 100644
--- a/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild
+++ b/dev-python/python-ironicclient/python-ironicclient-5.13.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
RDEPEND="
>=dev-python/pbr-6.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild b/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild
index cfb985a34f7d..f9add5ca60e6 100644
--- a/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild
+++ b/dev-python/python-json-logger/python-json-logger-4.0.0_rc1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/pyzmq/pyzmq-27.1.0.ebuild b/dev-python/pyzmq/pyzmq-27.1.0.ebuild
index 1f952a59d199..dd7a7d7ad421 100644
--- a/dev-python/pyzmq/pyzmq-27.1.0.ebuild
+++ b/dev-python/pyzmq/pyzmq-27.1.0.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
IUSE="drafts"
# There are additional test failures if zeromq has the draft api enabled, but pyzmq has it disabled.
diff --git a/dev-python/regex/Manifest b/dev-python/regex/Manifest
index 6062c6f9d48f..c9840d843c43 100644
--- a/dev-python/regex/Manifest
+++ b/dev-python/regex/Manifest
@@ -1,2 +1,3 @@
+DIST regex-2025.10.23.tar.gz 401266 BLAKE2B 56441db882934d0472f8ccec3c4f50ce6b45db66ee49d5275f4b90ec2d4d4c552e68fb53b965b45bb37d4e4ce864f8cb4b0341228e92959b90a71adbf7a18ef1 SHA512 6ce878dc9950dff432d358e8a5955df8ba0ff3cada1a70c37812aa3f4f168d9ea8f4c05976b29c6bafbfdb45e2c0692a60613f5144c4d531b7dbd603a993320c
DIST regex-2025.7.34.tar.gz 400714 BLAKE2B 4eb0c5600b9ef759f1e7511d01d533a3fda7b6010b6c974c0071e7cde2f5bbd9a8c62289b7abb4f2e0d9c251a9421876f6bf0a021892073babffb181d099ae55 SHA512 d30f69559804db12d85ee4c81d7055f3aab70f9a7c86b642932b7a12295ab2a4ca8e2a9bbf3a208b0546b7f7c76c64216cbd0b3ddfb7dfbd3fff7f9d4fa1d9ec
DIST regex-2025.9.18.tar.gz 400917 BLAKE2B 0239c15afed04de12985576709abcdf294b248d084a9b9126fd3bc734ddb51df83a35578602675af04df82819b9dcf65228b918c4d39fc762106f62b470b96ad SHA512 15fa2b951045cc1fa1d11d95cf6223f33f2d0d5b51637a9e5e99966176aa973deb34cf9a8baf5c6ebe49b26e3edb64bda1432bbf4610aefa3981385a404d1f51
diff --git a/dev-python/regex/regex-2025.10.23.ebuild b/dev-python/regex/regex-2025.10.23.ebuild
new file mode 100644
index 000000000000..b0f7c524fb1f
--- /dev/null
+++ b/dev-python/regex/regex-2025.10.23.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+# pypy isn't supported upstream because of its UTF8 representation for strings
+# See https://github.com/mrabarnett/mrab-regex/issues/521#issuecomment-1936260187.
+PYTHON_COMPAT=( python3_{10..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Alternative regular expression module to replace re"
+HOMEPAGE="
+ https://github.com/mrabarnett/mrab-regex/
+ https://pypi.org/project/regex/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+IUSE="doc"
+
+distutils_enable_tests unittest
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/Features.html )
+ local DOCS=( README.rst docs/*.rst )
+
+ distutils-r1_python_install_all
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)/regex/tests" || die
+ eunittest
+}
diff --git a/dev-python/regex/regex-2025.9.18.ebuild b/dev-python/regex/regex-2025.9.18.ebuild
index 7f018049f16b..d846433accde 100644
--- a/dev-python/regex/regex-2025.9.18.ebuild
+++ b/dev-python/regex/regex-2025.9.18.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="doc"
distutils_enable_tests unittest
diff --git a/dev-python/reportlab/reportlab-4.4.4.ebuild b/dev-python/reportlab/reportlab-4.4.4.ebuild
index 1fbe29a93fe8..e42d7fd13226 100644
--- a/dev-python/reportlab/reportlab-4.4.4.ebuild
+++ b/dev-python/reportlab/reportlab-4.4.4.ebuild
@@ -20,7 +20,7 @@ SRC_URI+="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
RDEPEND="
dev-python/charset-normalizer[${PYTHON_USEDEP}]
diff --git a/dev-python/scikit-learn/scikit-learn-1.7.2.ebuild b/dev-python/scikit-learn/scikit-learn-1.7.2.ebuild
index 97b415011225..adfd9aa73963 100644
--- a/dev-python/scikit-learn/scikit-learn-1.7.2.ebuild
+++ b/dev-python/scikit-learn/scikit-learn-1.7.2.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${P/_}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="amd64 ~arm64 ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
IUSE="examples"
DEPEND="
diff --git a/dev-python/selenium/selenium-4.35.0.ebuild b/dev-python/selenium/selenium-4.35.0.ebuild
index d8b35ede8cc8..7b1259788eac 100644
--- a/dev-python/selenium/selenium-4.35.0.ebuild
+++ b/dev-python/selenium/selenium-4.35.0.ebuild
@@ -29,7 +29,7 @@ SRC_URI+="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test test-rust"
RESTRICT="!test? ( test )"
diff --git a/dev-python/setproctitle/setproctitle-1.3.7.ebuild b/dev-python/setproctitle/setproctitle-1.3.7.ebuild
index 38c84ce75566..132c3d4ef85e 100644
--- a/dev-python/setproctitle/setproctitle-1.3.7.ebuild
+++ b/dev-python/setproctitle/setproctitle-1.3.7.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild b/dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild
index 257db94f3892..6dece5367f9c 100644
--- a/dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild
+++ b/dev-python/setuptools-scm/setuptools-scm-9.2.0.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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
# there's an optional dep on rich for cute logs
RDEPEND="
diff --git a/dev-python/siphash24/siphash24-1.8.ebuild b/dev-python/siphash24/siphash24-1.8.ebuild
index 0971cb22ff4b..f271c086050e 100644
--- a/dev-python/siphash24/siphash24-1.8.ebuild
+++ b/dev-python/siphash24/siphash24-1.8.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 LGPL-2.1+ )"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+KEYWORDS="amd64 arm64 ~ppc64 ~riscv"
DEPEND="
dev-libs/c-siphash
diff --git a/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-2.0.0.ebuild b/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-2.0.0.ebuild
index e40d74394481..9fa59464a073 100644
--- a/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-2.0.0.ebuild
+++ b/dev-python/sphinxcontrib-websupport/sphinxcontrib-websupport-2.0.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-solaris"
RDEPEND="
dev-python/jinja2[${PYTHON_USEDEP}]
diff --git a/dev-python/toolz/toolz-1.0.0-r1.ebuild b/dev-python/toolz/toolz-1.0.0-r1.ebuild
index 5d8e0fad2b91..b9a8b65386d2 100644
--- a/dev-python/toolz/toolz-1.0.0-r1.ebuild
+++ b/dev-python/toolz/toolz-1.0.0-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/trimesh/trimesh-4.8.2.ebuild b/dev-python/trimesh/trimesh-4.8.2.ebuild
index cf6811ae02ec..d60d6495d1fa 100644
--- a/dev-python/trimesh/trimesh-4.8.2.ebuild
+++ b/dev-python/trimesh/trimesh-4.8.2.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
RDEPEND="
dev-python/charset-normalizer[${PYTHON_USEDEP}]
diff --git a/dev-python/twine/twine-6.2.0.ebuild b/dev-python/twine/twine-6.2.0.ebuild
index cb7ec9fef1f9..0dc53ce50226 100644
--- a/dev-python/twine/twine-6.2.0.ebuild
+++ b/dev-python/twine/twine-6.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/colorama-0.4.3[${PYTHON_USEDEP}]
diff --git a/dev-python/uv-build/uv-build-0.9.4.ebuild b/dev-python/uv-build/uv-build-0.9.4.ebuild
index fe8e9650d15e..f764f5ef14cf 100644
--- a/dev-python/uv-build/uv-build-0.9.4.ebuild
+++ b/dev-python/uv-build/uv-build-0.9.4.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/uv/uv-0.9.4.ebuild b/dev-python/uv/uv-0.9.4.ebuild
index 89023c39d789..cd97f92f976a 100644
--- a/dev-python/uv/uv-0.9.4.ebuild
+++ b/dev-python/uv/uv-0.9.4.ebuild
@@ -48,7 +48,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
diff --git a/dev-python/xcffib/xcffib-1.10.0.ebuild b/dev-python/xcffib/xcffib-1.10.0.ebuild
index 52f12cf70bc8..2649daeaaee5 100644
--- a/dev-python/xcffib/xcffib-1.10.0.ebuild
+++ b/dev-python/xcffib/xcffib-1.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
x11-libs/libxcb
diff --git a/dev-python/xmltodict/xmltodict-1.0.2.ebuild b/dev-python/xmltodict/xmltodict-1.0.2.ebuild
index c2f726030fc8..ef6604962a11 100644
--- a/dev-python/xmltodict/xmltodict-1.0.2.ebuild
+++ b/dev-python/xmltodict/xmltodict-1.0.2.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 ~arm64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/xvfbwrapper/xvfbwrapper-0.2.14.ebuild b/dev-python/xvfbwrapper/xvfbwrapper-0.2.14.ebuild
index 9068d1f6d108..daaf806069ee 100644
--- a/dev-python/xvfbwrapper/xvfbwrapper-0.2.14.ebuild
+++ b/dev-python/xvfbwrapper/xvfbwrapper-0.2.14.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
RDEPEND="
x11-base/xorg-server[xvfb]
diff --git a/dev-python/yt-dlp-ejs/Manifest b/dev-python/yt-dlp-ejs/Manifest
new file mode 100644
index 000000000000..6842220e5d2c
--- /dev/null
+++ b/dev-python/yt-dlp-ejs/Manifest
@@ -0,0 +1,2 @@
+DIST yt_dlp_ejs-0.1.0-py3-none-any.whl.zip 52940 BLAKE2B 70f64f63442d26c710bc9f25c8a114378310f64bb81290f5fc34fd6f4e1b3cd5ade9fd7cdfd7aaa87765e88e22b999f59aa63b4b3d3f47d8d522b5c9e36348b2 SHA512 d1dff46683a0bb6c170d970de58309abd527000f3c2f9ed6fbc6ff4625171568fe0e0031483b288a60f1454963a272bb9040cf2374fddac78cb54d9707025f99
+DIST yt_dlp_ejs-0.1.0.tar.gz 11675 BLAKE2B 23bdf9673d197648604132efe077893adc471963bc88cc715d961ca2d97bfcff9c23277982897d624eeaead8316919a5ffbd65706681be2847df062c07afaf96 SHA512 f9d2c6faa8384f2d62e7cf9ac2a6e7367aa11c723334fd5863c890c56c4915ea0cbe2a9d2ea1418175a0979f357574836ff6a6e1799837f231c4ba8fb5460c5d
diff --git a/dev-python/yt-dlp-ejs/metadata.xml b/dev-python/yt-dlp-ejs/metadata.xml
new file mode 100644
index 000000000000..786658643d66
--- /dev/null
+++ b/dev-python/yt-dlp-ejs/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ionen@gentoo.org</email>
+ <name>Ionen Wolkens</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/yt-dlp-ejs/yt-dlp-ejs-0.1.0.ebuild b/dev-python/yt-dlp-ejs/yt-dlp-ejs-0.1.0.ebuild
new file mode 100644
index 000000000000..433c166c4c1f
--- /dev/null
+++ b/dev-python/yt-dlp-ejs/yt-dlp-ejs-0.1.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{10..14} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="External JavaScript for yt-dlp supporting many runtimes"
+HOMEPAGE="https://github.com/yt-dlp/ejs/"
+SRC_URI+=" $(pypi_wheel_url --unpack)"
+
+LICENSE="Unlicense"
+LICENSE+=" ISC MIT" # .js dependencies
+SLOT="0"
+# in-sync with yt-dlp and always straight-to-stable like yt-dlp itself
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv x86 ~arm64-macos ~x64-macos"
+# tests do not use python and are troublesome due to javascript, if in
+# doubt try downloading a youtube video with yt-dlp as a basic test
+RESTRICT="test"
+
+BDEPEND="
+ app-arch/unzip
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # drop deno/npm calls and use the pre-generated .js from the .whl
+ # instead, this both prevent network use and ensures no hash
+ # mismatch given yt-dlp checks the sha512sum of the .js files
+ # (makes generating our own meaningless given can't be patched)
+ sed -i '/wheel.hooks.custom/d' pyproject.toml || die
+ mv ../yt_dlp_ejs/yt/solver/*.js yt_dlp_ejs/yt/solver/ || die
+}
diff --git a/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild b/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild
index ce46339d191b..8f0f5d07bf89 100644
--- a/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild
+++ b/dev-python/zc-lockfile/zc-lockfile-4.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="ZPL"
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"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zeroconf/zeroconf-0.147.2.ebuild b/dev-python/zeroconf/zeroconf-0.147.2.ebuild
index 613c30c341c1..59db8ec3e181 100644
--- a/dev-python/zeroconf/zeroconf-0.147.2.ebuild
+++ b/dev-python/zeroconf/zeroconf-0.147.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 x86 ~amd64-linux ~x86-linux"
IUSE="+native-extensions"
RDEPEND="
diff --git a/dev-python/zipstream-ng/zipstream-ng-1.9.0.ebuild b/dev-python/zipstream-ng/zipstream-ng-1.9.0.ebuild
index 68b8613a585b..727e2abd3e71 100644
--- a/dev-python/zipstream-ng/zipstream-ng-1.9.0.ebuild
+++ b/dev-python/zipstream-ng/zipstream-ng-1.9.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild b/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild
index 98e56f71ffc7..2365193900ec 100644
--- a/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild
+++ b/dev-python/zlib-ng/zlib-ng-1.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
DEPEND="
sys-libs/zlib-ng:=
diff --git a/dev-python/zope-deprecation/zope-deprecation-6.0.ebuild b/dev-python/zope-deprecation/zope-deprecation-6.0.ebuild
index 65848846434b..da26e39b6842 100644
--- a/dev-python/zope-deprecation/zope-deprecation-6.0.ebuild
+++ b/dev-python/zope-deprecation/zope-deprecation-6.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
distutils_enable_tests unittest
diff --git a/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.0.ebuild b/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.0.ebuild
index 170f806d33e7..3ae6f37add2c 100644
--- a/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.0.ebuild
+++ b/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
distutils_enable_tests unittest
diff --git a/dev-python/zope-interface/zope-interface-8.0.ebuild b/dev-python/zope-interface/zope-interface-8.0.ebuild
index fdb05365c7e3..460345ccc23e 100644
--- a/dev-python/zope-interface/zope-interface-8.0.ebuild
+++ b/dev-python/zope-interface/zope-interface-8.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zope-testing/zope-testing-6.0.ebuild b/dev-python/zope-testing/zope-testing-6.0.ebuild
index 6137b075cba8..b577eba14faf 100644
--- a/dev-python/zope-testing/zope-testing-6.0.ebuild
+++ b/dev-python/zope-testing/zope-testing-6.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
distutils_enable_tests unittest
diff --git a/dev-python/zstandard/zstandard-0.25.0.ebuild b/dev-python/zstandard/zstandard-0.25.0.ebuild
index 3a4e5de653af..bc0ee5d1303c 100644
--- a/dev-python/zstandard/zstandard-0.25.0.ebuild
+++ b/dev-python/zstandard/zstandard-0.25.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
DEPEND="
>=app-arch/zstd-1.5.7:=