summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-06 19:05:03 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-10-06 19:05:03 +0000
commit9d8f7d0265a06ecdb9079d124b3cf9ffc5451f42 (patch)
treecfb23f97729f3be1b70636b642ab210c9b215ef4 /dev-python
parent5adf31c7f4ba4bf418e6f726223a9217cf460a89 (diff)
downloadbaldeagleos-repo-9d8f7d0265a06ecdb9079d124b3cf9ffc5451f42.tar.gz
baldeagleos-repo-9d8f7d0265a06ecdb9079d124b3cf9ffc5451f42.tar.xz
baldeagleos-repo-9d8f7d0265a06ecdb9079d124b3cf9ffc5451f42.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/asgiref/Manifest1
-rw-r--r--dev-python/asgiref/asgiref-3.10.0.ebuild23
-rw-r--r--dev-python/astroid/Manifest3
-rw-r--r--dev-python/astroid/astroid-4.0.0.ebuild (renamed from dev-python/astroid/astroid-4.0.0_beta2.ebuild)7
-rw-r--r--dev-python/astroid/astroid-4.0.0_beta3.ebuild73
-rw-r--r--dev-python/django-filter/Manifest1
-rw-r--r--dev-python/django-filter/django-filter-25.2.ebuild41
-rw-r--r--dev-python/gherkin-official/Manifest2
-rw-r--r--dev-python/gherkin-official/gherkin-official-34.0.0.ebuild31
-rw-r--r--dev-python/gherkin-official/gherkin-official-35.0.0.ebuild31
-rw-r--r--dev-python/greenstalk/Manifest1
-rw-r--r--dev-python/greenstalk/greenstalk-2.1.1.ebuild33
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch13
-rw-r--r--dev-python/langdetect/langdetect-1.0.9.ebuild6
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/moto/Manifest2
-rw-r--r--dev-python/moto/moto-5.1.14.ebuild114
-rw-r--r--dev-python/pylint/Manifest1
-rw-r--r--dev-python/pylint/pylint-3.3.9.ebuild89
-rw-r--r--dev-python/pyside/Manifest1
-rw-r--r--dev-python/pyside/metadata.xml4
-rw-r--r--dev-python/pyside/pyside-6.9.3.ebuild554
-rw-r--r--dev-python/pyside/pyside-6.9999.ebuild97
-rw-r--r--dev-python/python-json-logger/Manifest1
-rw-r--r--dev-python/python-json-logger/python-json-logger-4.0.0.ebuild29
-rw-r--r--dev-python/pyzstd/Manifest1
-rw-r--r--dev-python/pyzstd/pyzstd-0.18.0.ebuild51
-rw-r--r--dev-python/tifffile/Manifest2
-rw-r--r--dev-python/tifffile/tifffile-2025.10.4.ebuild (renamed from dev-python/tifffile/tifffile-2025.9.20.ebuild)0
-rw-r--r--dev-python/types-docutils/Manifest5
-rw-r--r--dev-python/types-docutils/types-docutils-0.22.0.20250814.ebuild16
-rw-r--r--dev-python/types-docutils/types-docutils-0.22.0.20250914.ebuild16
-rw-r--r--dev-python/types-docutils/types-docutils-0.22.1.20250923.ebuild16
-rw-r--r--dev-python/types-docutils/types-docutils-0.22.2.20251006.ebuild (renamed from dev-python/types-docutils/types-docutils-0.22.0.20250822.ebuild)0
-rw-r--r--dev-python/wrapt/Manifest3
-rw-r--r--dev-python/wrapt/wrapt-1.17.2.ebuild40
-rw-r--r--dev-python/wrapt/wrapt-2.0.0_rc4.ebuild (renamed from dev-python/wrapt/wrapt-2.0.0_rc2.ebuild)0
-rw-r--r--dev-python/yarl/Manifest1
-rw-r--r--dev-python/yarl/yarl-1.21.0.ebuild63
40 files changed, 1096 insertions, 288 deletions
diff --git a/dev-python/asgiref/Manifest b/dev-python/asgiref/Manifest
index 7102620b29fe..e9c3020c88b5 100644
--- a/dev-python/asgiref/Manifest
+++ b/dev-python/asgiref/Manifest
@@ -1,2 +1,3 @@
+DIST asgiref-3.10.0.tar.gz 37483 BLAKE2B 33e0197d77f4ca7626b328a75664225f3cfd951ba0408e200c4a00391a724b5ffb50eb078fabcb52b2e424ec7eaa7aabb74aa833b8c5f33665843cbb158eb8fa SHA512 cb7e691cf5c59f25f5e6389fccf6f601aee6efc034ceb74434dacb3e55cc8dd6836230fd2598a65e41b44737cf3a359791f2262acf50e092e04f5c214a67bbbd
DIST asgiref-3.9.1.tar.gz 36870 BLAKE2B d4883a95c2c363388a63114eeff92af96f5989e528e8bb496ac965aa0c686117cf38cf7968d16006bfa2529be84b5cc80c957128acee447ecbd5857db28b8377 SHA512 bc1a947dc7026fbd95970c71e699462856752b48024e2adf3ab5298dd8fb3fcee2e02a95eb97c5e8fe51ba77763b07f8e2922656ecac5b4205e03054663f9bbc
DIST asgiref-3.9.2.tar.gz 36894 BLAKE2B 60dd3313486f2776e4518adf26c2eb45765be3a4fdc2e625972372ed2dfd8e34d2c79c5c94c05b2f8d3e47edcb25798c7ee217ec379e8cd453bd385bf86e7f92 SHA512 386fd3c74dd94afc758ff8d6a00e429415391f0e65e529b82a561a16f9cd253e7d8cc243654a820ddd9a3bd11cc8e6474fc58f61aaa0575e1ed6d6f14306871e
diff --git a/dev-python/asgiref/asgiref-3.10.0.ebuild b/dev-python/asgiref/asgiref-3.10.0.ebuild
new file mode 100644
index 000000000000..30e0e9bcc2f1
--- /dev/null
+++ b/dev-python/asgiref/asgiref-3.10.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="ASGI utilities (successor to WSGI)"
+HOMEPAGE="
+ https://asgi.readthedocs.io/en/latest/
+ https://github.com/django/asgiref/
+ https://pypi.org/project/asgiref/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=( pytest-asyncio )
+distutils_enable_tests pytest
diff --git a/dev-python/astroid/Manifest b/dev-python/astroid/Manifest
index ef0f11988066..76ea7f70ecb9 100644
--- a/dev-python/astroid/Manifest
+++ b/dev-python/astroid/Manifest
@@ -1,4 +1,3 @@
DIST astroid-3.3.11.gh.tar.gz 469464 BLAKE2B cb2ad429fa303e1049de685079d814696f9a907f75d85e0eb6aadef34d791ca2564e2727aff604e1f15b8bdd262b6c5dbfaa64193bac008d39e9bb7e642254cc SHA512 7dd0fae9fa6135abb505af567731f9062ea5f45b5c2e9c613fd1c5cbeeb409779a620cde3ecc42cd8a0733ccebc58b5e8e66baa1a38b6f46b1d3fcf2e33914b5
-DIST astroid-4.0.0_beta2.gh.tar.gz 469767 BLAKE2B d3f03cd34e7a1fc667eecf0fd68fd58ece838bfccbabce13ad3a1020999d0e984c865d11100bfb514cc5034863b8df77db9fb8e7132fd2ec74035c8ba8a39108 SHA512 eabf3e08677894e3f4d843ad602fdf957518c143f42ad5e5c81ab679175e6717a339a6b78d7c377576d75f30a56cfc59045a47d23d18e10835df69f9656f588c
-DIST astroid-4.0.0_beta3.gh.tar.gz 472369 BLAKE2B 53e36752a4e6ed9c9d8e25cd7143d1bd3fadba1a1c151cd6e9c7a8fed2c6fbd05f2fe9eab6489e93897efcc2ac62a6b09074d656f1cb60d9bf26c854191a79b4 SHA512 37316cfdf7285eb6471e52e534ffe34456b6e7be9d07288ec62a78cc20de1f6189a1220fd098579213c29b2bfacd5ff20bc08b7dc519b04a36b24dfb6f34f706
+DIST astroid-4.0.0.gh.tar.gz 475111 BLAKE2B b63a0af12dddf9fa25d0c1e3c883187f23ea91110b10cae177b7682a3a591c5709777394ee4d41186988a049e85e1db7ec7ea051dec4fb9675394bbfd2457ecb SHA512 4eb1e3f81bed11f2513ddf5f55593b8a78df57606ac6c24754d588c2616ccc2bfc2b4fa7515c9d34d5e8e30c598b97f27d8dee7b88a45844479ad0147774b450
DIST astroid-4.0.0_rc0.gh.tar.gz 474866 BLAKE2B 4a722d135579a0e01c32ceff21c824ff4f6009a4e3acecf5df20ff83dd67fffd93fe86fe4b9c2687792d15664d9a509e1da2152cdbc10a5c70b00eed9cb57f7c SHA512 855893700b47514716589295a42920e21734110ac98e65affb83dd303edb10495e1a9daabe5ddee298a9c686120cfdb3283cbc184db2752f0fedae18355d08f7
diff --git a/dev-python/astroid/astroid-4.0.0_beta2.ebuild b/dev-python/astroid/astroid-4.0.0.ebuild
index f091c14f43c9..a107a22b0016 100644
--- a/dev-python/astroid/astroid-4.0.0_beta2.ebuild
+++ b/dev-python/astroid/astroid-4.0.0.ebuild
@@ -8,20 +8,21 @@ PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
inherit distutils-r1
-MY_P=${P/_beta/b}
+MY_P=${P/_/}
DESCRIPTION="Abstract Syntax Tree for logilab packages"
HOMEPAGE="
https://github.com/pylint-dev/astroid/
https://pypi.org/project/astroid/
"
SRC_URI="
- https://github.com/pylint-dev/astroid/archive/v${PV/_beta/b}.tar.gz
+ https://github.com/pylint-dev/astroid/archive/v${PV/_/}.tar.gz
-> ${P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="LGPL-2.1+"
SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
# dev-python/regex isn't available for pypy
BDEPEND="
@@ -61,6 +62,8 @@ python_test() {
# old pythons only
tests/brain/test_dataclasses.py::test_pydantic_field
tests/test_regrtest.py::NonRegressionTests::test_numpy_distutils
+ # -Werror, sigh
+ tests/test_nodes.py::test_deprecated_nodes_import_from_toplevel
)
if ! has_version "dev-python/mypy[${PYTHON_USEDEP}]"; then
diff --git a/dev-python/astroid/astroid-4.0.0_beta3.ebuild b/dev-python/astroid/astroid-4.0.0_beta3.ebuild
deleted file mode 100644
index f091c14f43c9..000000000000
--- a/dev-python/astroid/astroid-4.0.0_beta3.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1
-
-MY_P=${P/_beta/b}
-DESCRIPTION="Abstract Syntax Tree for logilab packages"
-HOMEPAGE="
- https://github.com/pylint-dev/astroid/
- https://pypi.org/project/astroid/
-"
-SRC_URI="
- https://github.com/pylint-dev/astroid/archive/v${PV/_beta/b}.tar.gz
- -> ${P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="LGPL-2.1+"
-SLOT="0"
-
-# dev-python/regex isn't available for pypy
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/attrs[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.17.0[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/regex[${PYTHON_USEDEP}]
- ' 'python*')
- )
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
-
-export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
-python_test() {
- local EPYTEST_IGNORE=()
- local EPYTEST_DESELECT=(
- # hangs randomly
- tests/test_nodes.py::AsStringTest::test_recursion_error_trapped
- # no clue why they're broken
- tests/test_modutils.py::GetModulePartTest::test_known_values_get_builtin_module_part
- # TODO
- tests/test_builder.py::BuilderTest::test_data_build_error_filename
- # numpy-2 (https://github.com/pylint-dev/astroid/issues/2442)
- tests/brain/numpy/test_core_einsumfunc.py::test_numpy_function_calls_inferred_as_ndarray
- tests/brain/numpy/test_core_fromnumeric.py::BrainNumpyCoreFromNumericTest::test_numpy_function_calls_inferred_as_ndarray
- tests/brain/numpy/test_core_multiarray.py::BrainNumpyCoreMultiarrayTest::test_numpy_function_calls_inferred_as_ndarray
- tests/brain/numpy/test_core_numerictypes.py::NumpyBrainCoreNumericTypesTest::test_datetime_astype_return
- tests/brain/numpy/test_core_numerictypes.py::NumpyBrainCoreNumericTypesTest::test_generic_types_are_subscriptables
- tests/brain/numpy/test_core_umath.py::NumpyBrainCoreUmathTest::test_numpy_core_umath_functions_return_type
- tests/brain/numpy/test_core_umath.py::NumpyBrainCoreUmathTest::test_numpy_core_umath_functions_return_type_tuple
- # old pythons only
- tests/brain/test_dataclasses.py::test_pydantic_field
- tests/test_regrtest.py::NonRegressionTests::test_numpy_distutils
- )
-
- if ! has_version "dev-python/mypy[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- tests/test_raw_building.py
- )
- fi
-
- epytest
-}
diff --git a/dev-python/django-filter/Manifest b/dev-python/django-filter/Manifest
index 83a0bed0ecd5..2729169e0852 100644
--- a/dev-python/django-filter/Manifest
+++ b/dev-python/django-filter/Manifest
@@ -1 +1,2 @@
DIST django-filter-25.1.gh.tar.gz 139657 BLAKE2B 765b804b997dacdd31c682fec4e64333d9de6d14c5a9aa62d5884ff0ac92e3ae9ed96aee9853ca6c84134b7254216ee63cd0f58b9f4bb28da145de640d95ef6a SHA512 9b1893b83d84918e8d91043e838f559fecd96fed8c77e3ca164c18bfbb630fc5c5ee85eb3ef5834bdca8187d2693540a8a2c922f2107f1ae9a9d905ef8587428
+DIST django-filter-25.2.gh.tar.gz 140478 BLAKE2B 1d4ac9aa7023c6049d4a42cb2bc3113b7b38ac1283ad957f3b66a815a7e519fcee30ed34d69973eb329fb95d5e7ecead1505623abefab9e28b87cda7972acd8d SHA512 9bbe21af68e94974f554d1c72053bda75ae35c069b9df7066e5c8b091f90a44244cbc5340b7a8556b6a46c25d8fc26c11f2457f815378314c4bce7e8ece3765a
diff --git a/dev-python/django-filter/django-filter-25.2.ebuild b/dev-python/django-filter/django-filter-25.2.ebuild
new file mode 100644
index 000000000000..6235fe1ae47a
--- /dev/null
+++ b/dev-python/django-filter/django-filter-25.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Django app allowing declarative dynamic QuerySet filtering from URL parameters"
+HOMEPAGE="
+ https://github.com/carltongibson/django-filter/
+ https://pypi.org/project/django-filter/
+"
+SRC_URI="
+ https://github.com/carltongibson/django-filter/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/django-5.2[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/djangorestframework[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ local -x DJANGO_SETTINGS_MODULE=tests.settings
+ "${EPYTHON}" -m django test -v 2 || die
+}
diff --git a/dev-python/gherkin-official/Manifest b/dev-python/gherkin-official/Manifest
index 3e65e8d8ffa5..dd8a2fdead67 100644
--- a/dev-python/gherkin-official/Manifest
+++ b/dev-python/gherkin-official/Manifest
@@ -1,4 +1,2 @@
DIST gherkin-33.1.0.gh.tar.gz 3855072 BLAKE2B 026dc11c4451e5243dc4ede0108c19162cb29784507095642d4a2599c52143f8a594b6dba21552a4c061f62fccfe71f3ed4bb574453d68e35231f99340876e90 SHA512 176a9e8bf448f07da54a0e35095e40d82ff4a842132ef58052e4451d3ccd3a551d493319c6f44c0148ae2e6dec950e4a0baaffea5aea77c161bafc0970c18f48
-DIST gherkin-34.0.0.gh.tar.gz 3879551 BLAKE2B f1f97e9b7aef359ef7fecae6d6c6259e58e2650317d8bfac166ee0c7be60418bc2dbfa6c56aec186c27d4dd712f3c5caec769e0f908d61e54cb3903513a69a1f SHA512 4014a37df26cc5add51a4825a8ef03418560f07e4b9dbd4ccdd461ab6f519a959f6b29e8536b2aea5c5e4c2d53abae106cfefab650eccc1bc1bbbad01ee28d40
-DIST gherkin-35.0.0.gh.tar.gz 3878824 BLAKE2B 226c9b7bb53987a6d506a90d83fad0bdf975f8b23f6e89963d4733011ef3e7e1b69c2569634ce55c7a7b3579159fb12ab6dfc178ea95b74897d4b64f631425fb SHA512 10281954c537d3f03116d612a3123c06576c1ef863985ef73b98bfdb9e1c4e6168dacf4ac04962544d2496e81261abbe8cc625756fe8c540745c60514daffb4a
DIST gherkin-35.1.0.gh.tar.gz 3881632 BLAKE2B 9d0c2b3da23628c1146b684c581419026fc3c35ebbc569173301c0997ade082dd4c6153f9abf53b3eec5eb3206bf2e659e645d6455a11751f0fef634109ce73a SHA512 670ac04258e0f405eafbc7f0fb76105143807de319eda747c4ed7000ffb5061c3bb7b5a581cd338b74bbe0e99342a6b49682b3470b7b9555a55e57c260a517f1
diff --git a/dev-python/gherkin-official/gherkin-official-34.0.0.ebuild b/dev-python/gherkin-official/gherkin-official-34.0.0.ebuild
deleted file mode 100644
index 8bf417e46f2a..000000000000
--- a/dev-python/gherkin-official/gherkin-official-34.0.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2024-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=uv-build
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Gherkin parser/compiler for Python"
-HOMEPAGE="
- https://github.com/cucumber/gherkin/
- https://pypi.org/project/gherkin-official/
-"
-SRC_URI="
- https://github.com/cucumber/gherkin/archive/refs/tags/v${PV}.tar.gz
- -> gherkin-${PV}.gh.tar.gz
-"
-S=${WORKDIR}/gherkin-${PV}/python
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- dev-python/typing-extensions[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/gherkin-official/gherkin-official-35.0.0.ebuild b/dev-python/gherkin-official/gherkin-official-35.0.0.ebuild
deleted file mode 100644
index 8bf417e46f2a..000000000000
--- a/dev-python/gherkin-official/gherkin-official-35.0.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2024-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=uv-build
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="Gherkin parser/compiler for Python"
-HOMEPAGE="
- https://github.com/cucumber/gherkin/
- https://pypi.org/project/gherkin-official/
-"
-SRC_URI="
- https://github.com/cucumber/gherkin/archive/refs/tags/v${PV}.tar.gz
- -> gherkin-${PV}.gh.tar.gz
-"
-S=${WORKDIR}/gherkin-${PV}/python
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- dev-python/typing-extensions[${PYTHON_USEDEP}]
-"
-
-EPYTEST_PLUGINS=()
-distutils_enable_tests pytest
diff --git a/dev-python/greenstalk/Manifest b/dev-python/greenstalk/Manifest
index 6e80a01d19cf..844fe82d1ed6 100644
--- a/dev-python/greenstalk/Manifest
+++ b/dev-python/greenstalk/Manifest
@@ -1 +1,2 @@
DIST greenstalk-2.1.0.gh.tar.gz 14743 BLAKE2B c496caf2f873d16d840950446f4a86f51d9de4499033e3bfe5d6635fb2169768144b1c96a820ffd31ebc577d0a0c91a26851f4d018d9d6d4b9b3d0e92128337e SHA512 d2fae21af84b43431c4808e33c90b58b8acf76181e147f6a8cb993a9ff70566bbf2e972c3fe82aa0f967cc0b9cd369b7ca332d21dc8a716e00573781877e2c97
+DIST greenstalk-2.1.1.gh.tar.gz 14952 BLAKE2B 5d0dcce3865be4241722de55127d3c3cdca107a478fbf2e2b90b149003d37767758f84efdf83ea12bc8a5f4038b9703fbc658bd6c7fd3a02ed222ab30ecb06f8 SHA512 e886f8c29365ca6e7128f39ecd1990a33847e5491c1cb6412818413d9ef345d1ba1c614ae7be281f4812508d3996e850f86dba22ffffdbf8de4b57f69121d959
diff --git a/dev-python/greenstalk/greenstalk-2.1.1.ebuild b/dev-python/greenstalk/greenstalk-2.1.1.ebuild
new file mode 100644
index 000000000000..a1cadaa0dba1
--- /dev/null
+++ b/dev-python/greenstalk/greenstalk-2.1.1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python 3 client for the beanstalkd work queue"
+HOMEPAGE="
+ https://greenstalk.readthedocs.io/
+ https://github.com/justinmayhew/greenstalk/
+ https://pypi.org/project/greenstalk/
+"
+SRC_URI="
+ https://github.com/justinmayhew/greenstalk/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+BDEPEND="
+ test? (
+ app-misc/beanstalkd
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
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 98b2b0bf8d0b..56733bbffc48 100644
--- a/dev-python/langdetect/langdetect-1.0.9.ebuild
+++ b/dev-python/langdetect/langdetect-1.0.9.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 pypi
@@ -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/moto/Manifest b/dev-python/moto/Manifest
index 0a28191b77eb..001b50428fc9 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -5,5 +5,7 @@ DIST moto-5.1.12.tar.gz 7185928 BLAKE2B 1215c369631eb4a43aa499de70b17b8eda78743d
DIST moto-5.1.12.tar.gz.provenance 9568 BLAKE2B 39d6211c37523ee438679ac0f2ad94fabda5afbd54a4667d234acd95fdce76c0de8198b5993ff451b84d35ebed63281751a9d3dbd704251fc4828d1381f171a0 SHA512 ddfcdebe272d6b74108aabfc80c78375cbbe565258a8d8583bd2a554d27261bf3718919d01592a5566c45fad12a001e5cff8c90f4f169fc2a7c049e3bef4c9ec
DIST moto-5.1.13.tar.gz 7194360 BLAKE2B 464a4997defae7386611c29eb46a3fff48e2d27ae2e22dd65f5d5788c746b193df804ee16b4628536691539b3e020de8a9d736d77c92eb9de2e1bd7907a56234 SHA512 b2befd6e407432551c99083f43d19bf4ae633d5dfa2198a98c9d093b2bd50fee4182903362f79943774058f63e43d75337219b2b6ff33152a125d8fb11aa5363
DIST moto-5.1.13.tar.gz.provenance 9380 BLAKE2B 79e4254b116e18d5f568027edf26a0f716d7b3f4dc5294f9cc8d379600eff518c204fa4d402191b9a99dc6f94a97a0afa14a7e2741a8790b1e7b78aa575c18a8 SHA512 8776bd8698f27e823b84fbd77be42eb4f43cf7beec96847c26066bcf4a362306568cf7688d3d680df17e5e5c4a4550d8b64994dacca8a70e1a7c2f84c3c81b62
+DIST moto-5.1.14.tar.gz 7264025 BLAKE2B cca4fd06070ee6db7306f3f95a2fd785b53f0f7f499d15bd53cc946c5cda83ebb96bd2baf56728abcc16f3dc7806d12b38388631f6c60ba6d21d4566e2530b99 SHA512 1f59cc49a3a5e12b130b37791a9ce2141134eac54c3b16d910099b7784ce6677ca9607eca4299a641555b3284166cd5588c81ebc17a95bd65dc3b90a57b95d07
+DIST moto-5.1.14.tar.gz.provenance 9286 BLAKE2B 73c844157e33029d62fde7530a25d0557aae3f38d61df611248ba78e85925c3cf9df0b40bb9ddef93a7990c91fec6895d0c3a2c43306432a2a8f13c119254e6b SHA512 e7e5b1415d5b4cfd145f477fa49e72f39d7611a7f961735d6986aa5691e48fc6e13e3f87aeaccf5d6cd26b26b45ddd7b15ad01d89a086df2d545bf6342151503
DIST moto-5.1.8.tar.gz 7039961 BLAKE2B be2231a13036e2a5c925c7435ebce3adeea6ac03d9806d010d1c067b4e2d008f642a234fb80e082e5053332c6580d130f232ebe0b83d59c55977ea3a38364914 SHA512 fb8ad9ba2ac94a86261e2862d87d9ea632d2275c6cccf7d248ac95db96f615109add8803bf118625c828c7a2615fc6f20bcf682de1e4398f69add5eeb9fe8114
DIST moto-5.1.9.tar.gz 7041662 BLAKE2B 8121c2022e5af70e71b6d4855ca7f964234ef06f14f8b08e80bd3676c26f6e9a06e8f469e610bcf2882b5468d613a17c3108aff3c344c12dc8331a9f9582b87b SHA512 986d41cc9fa875b5ee51723fdd7669b528dacb6136b6ebb3fa72d4efb3bb89f1fbc44aaa06aa154b80d44c87bca2d93cce30ee32c1ab7c3e8d622b53e011167d
diff --git a/dev-python/moto/moto-5.1.14.ebuild b/dev-python/moto/moto-5.1.14.ebuild
new file mode 100644
index 000000000000..bbd0cd5878c5
--- /dev/null
+++ b/dev-python/moto/moto-5.1.14.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2025 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/getmoto/moto
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi toolchain-funcs
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.10.1[${PYTHON_USEDEP}]
+ dev-python/jsonpath-ng[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.1[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+: "${EPYTEST_TIMEOUT:=180}"
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_dynamodb/test_dynamodb_import_table.py
+ # require joserfc
+ tests/test_apigateway/test_apigateway.py::test_create_authorizer
+ tests/test_apigateway/test_apigateway.py::test_delete_authorizer
+ tests/test_apigateway/test_apigateway.py::test_update_authorizer_configuration
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserDeleter::test_authenticate_with_signed_out_user
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_email_is_
+ tests/test_cognitoidp/test_cognitoidp_exceptions.py::TestCognitoUserPoolDuplidateEmails::test_use_existing_email__when_username_
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_different_seed
+ tests/test_cognitoidp/test_cognitoidp_replay.py::TestCreateUserPoolWithPredeterminedID::test_same_seed
+ tests/test_cognitoidp/test_server.py::test_admin_create_user_without_authentication
+ tests/test_cognitoidp/test_server.py::test_associate_software_token
+ tests/test_cognitoidp/test_server.py::test_sign_up_user_without_authentication
+ # require py_partiql_parser
+ tests/test_dynamodb/test_dynamodb_statements.py
+ tests/test_s3/test_s3_select.py
+ # require graphql
+ tests/test_appsync/test_appsync_schema.py
+ # Internet
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ )
+ local EPYTEST_IGNORE=(
+ # require joserfc
+ tests/test_cognitoidp/test_cognitoidp.py
+ )
+
+ if ! tc-has-64bit-time_t; then
+ einfo "time_t is smaller than 64 bits, will skip broken tests"
+ EPYTEST_DESELECT+=(
+ tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
+ tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
+ tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
+ )
+ EPYTEST_IGNORE+=(
+ tests/test_route53domains/test_route53domains_domain.py
+ )
+ fi
+
+ local -x TZ=UTC
+ local -x AWS_DEFAULT_REGION=us-east-1
+
+ epytest -m 'not network and not requires_docker'
+}
diff --git a/dev-python/pylint/Manifest b/dev-python/pylint/Manifest
index 17a58af9a62f..813aa51e0d3c 100644
--- a/dev-python/pylint/Manifest
+++ b/dev-python/pylint/Manifest
@@ -1,2 +1,3 @@
DIST pylint-3.3.7.gh.tar.gz 1457480 BLAKE2B b938f673af78ec94a59f1f6aa33c5be3ba605c59df35d39f95414bce92ec33b9033d7608f0803bfdf0196e49c11eda2e2e88b692003d6f7c4e3b99df89da7653 SHA512 b9aa9510004642cd6463f66613bdcf0030cb8cf2ecbc288dbf2d6165c0d08d673bf7f2c38fa5b8c666e98f9644084e8cbbe572e9778bc56db3eefac70d145e6c
DIST pylint-3.3.8.gh.tar.gz 1460704 BLAKE2B 9444f6f98278b300744de27796afc366a53a295f101f22dab454dd0c4eb1a755954d06a71d42effb5139c7d4f3821421bf0734602c2ff0ecd520e5bb8edf44cf SHA512 be796582d8b7ffac2c1ec8be6f4c40422ad4353ccc83a43f31d149cb124ee7a29294ea81457cd173be85be37d94c0472c7599cb2b002b7188cfa3c70185c4e98
+DIST pylint-3.3.9.gh.tar.gz 1462472 BLAKE2B b32fcb6c0d910d74c157717aa7c6d43d8edb13aad93e48543a974ce4461f38062acd8033ff390e614bf1388ebe78de004698669d082f51861421667529c71b2b SHA512 c775cfc20540e189f5e11a15eec58687dc6c7fce4e0d75f3c984977404c758d3c6903f176f057234585e6fe2dd36f40ed0e70703d228b99ae465a03d2ccebf19
diff --git a/dev-python/pylint/pylint-3.3.9.ebuild b/dev-python/pylint/pylint-3.3.9.ebuild
new file mode 100644
index 000000000000..5f9b58f2a2cd
--- /dev/null
+++ b/dev-python/pylint/pylint-3.3.9.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1
+
+MY_P=${P/_beta/b}
+DESCRIPTION="Python code static checker"
+HOMEPAGE="
+ https://pypi.org/project/pylint/
+ https://github.com/pylint-dev/pylint/
+"
+SRC_URI="
+ https://github.com/pylint-dev/pylint/archive/v${PV/_beta/b}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ <dev-python/astroid-3.4[${PYTHON_USEDEP}]
+ >=dev-python/astroid-3.3.8[${PYTHON_USEDEP}]
+ >=dev-python/dill-0.3.7[${PYTHON_USEDEP}]
+ >=dev-python/isort-4.2.5[${PYTHON_USEDEP}]
+ <dev-python/isort-7[${PYTHON_USEDEP}]
+ >=dev-python/mccabe-0.6[${PYTHON_USEDEP}]
+ <dev-python/mccabe-0.8[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.10.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/gitpython-3[${PYTHON_USEDEP}]
+ ' 'python*' )
+ >=dev-python/pytest-8.3[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.12[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout)
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ 'tests/test_functional.py::test_functional[dataclass_with_field]'
+ 'tests/test_functional.py::test_functional[no_name_in_module]'
+ 'tests/test_functional.py::test_functional[shadowed_import]'
+ 'tests/test_functional.py::test_functional[unused_import]'
+ 'tests/test_functional.py::test_functional[use_yield_from]'
+ 'tests/test_functional.py::test_functional[wrong_import_order]'
+ )
+ local EPYTEST_IGNORE=(
+ # No need to run the benchmarks
+ tests/benchmark/test_baseline_benchmarks.py
+ )
+
+ if ! has_version "dev-python/gitpython[${PYTHON_USEDEP}]"; then
+ EPYTEST_IGNORE+=(
+ tests/profile/test_profile_against_externals.py
+ tests/testutils/_primer/test_package_to_lint.py
+ tests/testutils/_primer/test_primer.py
+ )
+ fi
+
+ rm -rf pylint || die
+
+ epytest
+}
+
+python_install_all() {
+ if use examples ; then
+ docompress -x "/usr/share/doc/${PF}/examples"
+ docinto examples
+ dodoc -r examples/.
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/pyside/Manifest b/dev-python/pyside/Manifest
index 9601a889f69d..7d9f1c286bde 100644
--- a/dev-python/pyside/Manifest
+++ b/dev-python/pyside/Manifest
@@ -1 +1,2 @@
DIST pyside-setup-everywhere-src-6.9.2.tar.xz 16659400 BLAKE2B baf8955d6a16b56807f202577a54737857fed5c7d7394f7d843111832a3b71978a1ae8b6561a1df041913875f32ba5a836cb219f53e8a13a218f2866a54ae9c3 SHA512 643bf42241e952ed028eb44830387864fd7343587a568d8be9d8a179af8b76b8ac5d0bb92a93db45abc83120c0cd627667312cc248f1924f4797fd74242c1808
+DIST pyside-setup-everywhere-src-6.9.3.tar.xz 16663380 BLAKE2B 10834a35c3de13657256892111e3f54dceeb4fef61618b61672018bbffa007cfac0b602bd39b3ef7a472ba47f9444c7e7cf6d43cb411de0dd26333faa0814e7a SHA512 457a447146a8e5be94940b06172a21cdc9f1407c9c48e6449d410ae3f122002f5970c3841cba6135fb4d889c58a4ed1b648f03b708f9a5cfb9f1cc93cbb9d561
diff --git a/dev-python/pyside/metadata.xml b/dev-python/pyside/metadata.xml
index 5b35e71c685f..7356ab7a25e2 100644
--- a/dev-python/pyside/metadata.xml
+++ b/dev-python/pyside/metadata.xml
@@ -6,8 +6,8 @@
<name>Nowa Ammerlaan</name>
</maintainer>
<maintainer type="person">
- <email>waebbl-gentoo@posteo.net</email>
- <name>Bernd Waibel</name>
+ <email>negril.nx+gentoo@gmail.com</email>
+ <name>Paul Zander</name>
</maintainer>
<use>
diff --git a/dev-python/pyside/pyside-6.9.3.ebuild b/dev-python/pyside/pyside-6.9.3.ebuild
new file mode 100644
index 000000000000..2e354484bcf0
--- /dev/null
+++ b/dev-python/pyside/pyside-6.9.3.ebuild
@@ -0,0 +1,554 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# NOTE: We combine here several PyPI packages, we do this because
+# pyside can and does break if it is compiled with a different
+# toolchain then was used to build shiboken. This bundling ensures
+# that we always use the same toolchain for all components.
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+LLVM_COMPAT=( {16..20} )
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+
+inherit distutils-r1 llvm-r2 multiprocessing qmake-utils virtualx
+
+MY_PN=${PN}-setup-everywhere-src
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+
+if [[ ${PV} == *.9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI=(
+ "https://code.qt.io/${PN}/${PN}-setup.git"
+ "https://github.com/qtproject/${PN}-${PN}-setup.git"
+ )
+ EGIT_BRANCH=dev
+ [[ ${PV} == 6.*.9999 ]] && EGIT_BRANCH=${PV%.9999}
+else
+ SRC_URI="https://download.qt.io/official_releases/QtForPython/${PN}6/PySide6-${PV}-src/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="|| ( GPL-2 GPL-3 LGPL-3 )"
+SLOT="6/${PV}"
+
+# If a flag enables multiple Qt modules, they should be ordered
+# according to their dependencies, e.g. for 3d, 3DCore must be first.
+# Widgets for various modules are handled as a special case later
+declare -A QT_MODULES=(
+ ["3d"]="3DCore 3DRender 3DLogic 3DInput 3DAnimation 3DExtras"
+ ["bluetooth"]="Bluetooth"
+ ["charts"]="Charts"
+ ["+concurrent"]="Concurrent"
+ ["+core"]="Core"
+ ["+dbus"]="DBus"
+ ["designer"]="Designer"
+ ["+gui"]="Gui"
+ ["help"]="Help"
+ ["httpserver"]="HttpServer"
+ ["location"]="Location"
+ ["multimedia"]="Multimedia" # plus widgets
+ ["network-auth"]="NetworkAuth"
+ ["+network"]="Network"
+ ["nfc"]="Nfc"
+ ["+opengl"]="OpenGL" # plus widgets
+ ["pdfium"]="Pdf" # plus widgets
+ ["positioning"]="Positioning"
+ ["+printsupport"]="PrintSupport"
+ ["qml"]="Qml"
+ ["quick3d"]="Quick3D"
+ ["quick"]="Quick" # plus widgets
+ ["remoteobjects"]="RemoteObjects"
+ ["scxml"]="Scxml"
+ ["sensors"]="Sensors"
+ ["serialbus"]="SerialBus"
+ ["serialport"]="SerialPort"
+ ["spatialaudio"]="SpatialAudio"
+ ["+sql"]="Sql"
+ ["svg"]="Svg" # plus widgets
+ ["speech"]="TextToSpeech"
+ ["+testlib"]="Test"
+ ["uitools"]="UiTools"
+ ["webchannel"]="WebChannel"
+ ["webengine"]="WebEngineCore" # plus widgets and quick
+ ["websockets"]="WebSockets"
+ ["webview"]="WebView"
+ ["+widgets"]="Widgets"
+ ["+xml"]="Xml"
+)
+
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep 'set.*_deps' PySide6/Qt*/CMakeLists.txt
+declare -A QT_REQUIREMENTS=(
+ ["3d"]="gui network opengl"
+ ["bluetooth"]="core"
+ ["charts"]="core gui widgets"
+ ["concurrent"]="core"
+ ["dbus"]="core"
+ ["designer"]="widgets"
+ ["gles2-only"]="gui"
+ ["gui"]="core"
+ ["help"]="widgets"
+ ["httpserver"]="core concurrent network websockets"
+ ["location"]="core positioning"
+ ["multimedia"]="core gui network"
+ ["network-auth"]="network"
+ ["network"]="core"
+ ["nfc"]="core"
+ ["opengl"]="gui"
+ ["pdfium"]="core gui network"
+ ["positioning"]="core"
+ ["printsupport"]="widgets"
+ ["qml"]="network"
+ ["quick"]="gui network qml opengl"
+ ["quick3d"]="gui network qml quick"
+ ["remoteobjects"]="core network"
+ ["scxml"]="core"
+ ["sensors"]="core"
+ ["serialbus"]="core network serialport"
+ ["serialport"]="core"
+ ["spatialaudio"]="core gui network multimedia"
+ ["speech"]="core multimedia"
+ ["sql"]="widgets"
+ ["svg"]="gui"
+ ["testlib"]="widgets"
+ ["uitools"]="widgets"
+ ["webchannel"]="core"
+ ["webengine"]="core gui network printsupport quick webchannel"
+ ["websockets"]="network"
+ ["webview"]="gui quick webengine"
+ ["widgets"]="gui"
+ ["xml"]="core"
+)
+
+IUSE="${!QT_MODULES[*]} debug doc gles2-only numpy test tools"
+RESTRICT="!test? ( test )"
+
+# majority of QtQml tests require QtQuick support
+REQUIRED_USE="
+ test? (
+ qml? ( quick )
+ )
+"
+for requirement in "${!QT_REQUIREMENTS[@]}"; do
+ REQUIRED_USE+=" ${requirement}? ( ${QT_REQUIREMENTS[${requirement}]} ) "
+done
+
+# Minimal supported version of Qt.
+QT_PV="$(ver_cut 1-3)*:6"
+
+# WebEngine needs sound support, so enable either pulseaudio or alsa
+RDEPEND="
+ =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
+ 3d? ( =dev-qt/qt3d-${QT_PV}[qml?,gles2-only=] )
+ bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
+ charts? ( =dev-qt/qtcharts-${QT_PV} )
+ designer? ( =dev-qt/qttools-${QT_PV}[designer,widgets,gles2-only=] )
+ gui? (
+ =dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
+ x11-libs/libxkbcommon
+ )
+ help? ( =dev-qt/qttools-${QT_PV}[assistant,gles2-only=] )
+ httpserver? ( =dev-qt/qthttpserver-${QT_PV} )
+ location? ( =dev-qt/qtlocation-${QT_PV} )
+ multimedia? ( =dev-qt/qtmultimedia-${QT_PV}[widgets(+)?] )
+ network? ( =dev-qt/qtbase-${QT_PV}[ssl] )
+ network-auth? ( =dev-qt/qtnetworkauth-${QT_PV} )
+ nfc? ( =dev-qt/qtconnectivity-${QT_PV}[nfc] )
+ numpy? ( >=dev-python/numpy-2.1.3[${PYTHON_USEDEP}] )
+ pdfium? ( =dev-qt/qtwebengine-${QT_PV}[pdfium(-),widgets?] )
+ positioning? ( =dev-qt/qtpositioning-${QT_PV} )
+ printsupport? ( =dev-qt/qtbase-${QT_PV}[gui,widgets] )
+ qml? ( =dev-qt/qtdeclarative-${QT_PV}[opengl?,widgets?] )
+ quick3d? ( =dev-qt/qtquick3d-${QT_PV}[opengl?] )
+ remoteobjects? ( =dev-qt/qtremoteobjects-${QT_PV} )
+ scxml? ( =dev-qt/qtscxml-${QT_PV} )
+ sensors? ( =dev-qt/qtsensors-${QT_PV}[qml?] )
+ speech? ( =dev-qt/qtspeech-${QT_PV} )
+ serialbus? ( =dev-qt/qtserialbus-${QT_PV} )
+ serialport? ( =dev-qt/qtserialport-${QT_PV} )
+ svg? ( =dev-qt/qtsvg-${QT_PV} )
+ testlib? ( =dev-qt/qtbase-${QT_PV}[gui] )
+ tools? (
+ =dev-qt/qtbase-${QT_PV}
+ =dev-qt/qtdeclarative-${QT_PV}[qmlls]
+ =dev-qt/qttools-${QT_PV}[assistant,designer,linguist]
+ dev-python/pkginfo[${PYTHON_USEDEP}]
+ )
+ uitools? ( =dev-qt/qttools-${QT_PV}[gles2-only=,widgets] )
+ webchannel? ( =dev-qt/qtwebchannel-${QT_PV} )
+ webengine? ( || (
+ =dev-qt/qtwebengine-${QT_PV}[alsa,widgets?]
+ =dev-qt/qtwebengine-${QT_PV}[pulseaudio,widgets?]
+ )
+ )
+ websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
+ webview? ( =dev-qt/qtwebview-${QT_PV} )
+ !dev-python/pyside:0
+ !dev-python/shiboken6
+ !dev-python/pyside6-tools
+"
+
+DEPEND="${RDEPEND}
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ ')
+ dev-util/vulkan-headers
+ test? ( =dev-qt/qtbase-${QT_PV}[gui] )
+" # testlib is toggled by the gui flag on qtbase
+
+BDEPEND="
+ dev-build/cmake
+ dev-python/distro[${PYTHON_USEDEP}]
+ <dev-python/wheel-0.46.0[${PYTHON_USEDEP}]
+ dev-util/patchelf
+ doc? (
+ >=dev-libs/libxml2-2.6.32
+ >=dev-libs/libxslt-1.1.19
+ media-gfx/graphviz
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+"
+
+PATCHES=(
+ # Needs porting to newer wheel and setuptools
+ "${FILESDIR}/${PN}-6.8.2-quick-fix-build-wheel.patch"
+)
+
+# Build system duplicates system libraries. TODO: fix
+QA_PREBUILT=(
+ "/usr/lib/python*/site-packages/PySide6/*"
+)
+
+python_prepare_all() {
+ distutils-r1_python_prepare_all
+
+ # Shiboken6 assumes Vulkan headers live under either "$VULKAN_SDK/include"
+ # or "$VK_SDK_PATH/include" rather than "${EPREFIX}/usr/include/vulkan".
+ sed -i -e "s~\bdetectVulkan(&headerPaths);~headerPaths.append(HeaderPath{QByteArrayLiteral(\"${EPREFIX}/usr/include/vulkan\"), HeaderType::System});~" \
+ sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp || die
+
+ # Shiboken6 assumes the "/usr/lib/clang/${CLANG_NEWEST_VERSION}/include/"
+ # subdirectory provides Clang builtin includes (e.g., "stddef.h") for the
+ # currently installed version of Clang, where ${CLANG_NEWEST_VERSION} is
+ # the largest version specifier that exists under the "/usr/lib/clang/"
+ # subdirectory. This assumption is false in edge cases, including when
+ # users downgrade from newer Clang versions but fail to remove those
+ # versions with "emerge --depclean". See also:
+ # https://github.com/leycec/raiagent/issues/85
+ #
+ # Sadly, the clang-* family of functions exported by the "toolchain-funcs"
+ # eclass are defective, returning nonsensical placeholder strings if the
+ # end user has *NOT* explicitly configured their C++ compiler to be Clang.
+ # PySide6 does *NOT* care whether the end user has done so or not, as
+ # PySide6 unconditionally requires Clang in either case. See also:
+ # https://bugs.gentoo.org/619490
+ sed -e \
+ 's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${LLVM_SLOT}"'/include"))~' \
+ -i sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp || die
+
+ sed -e \
+ 's~set(libclang_directory_suffix "lib")~set(libclang_directory_suffix "'"$(get_libdir)"'")~' \
+ -i sources/shiboken6/cmake/ShibokenHelpers.cmake || die
+
+ # blacklist.txt works like XFAIL
+ cat <<- EOF >> build_history/blacklist.txt || die
+ # segfaults with QOpenGLContext::create
+ [pysidetest::qapp_like_a_macro_test]
+ linux
+ # no mypy
+ [pysidetest::mypy_correctness_test]
+ linux
+ # Tries to execute pip install
+ [pyside6-deploy::test_pyside6_deploy]
+ linux
+ [pyside6-android-deploy::test_pyside6_android_deploy]
+ linux
+ # Behavior changed and test not changed to accomodate
+ # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-3135
+ [registry::existence_test]
+ linux
+ # Doesn't appear to play well with virtualx as it tries to use wayland
+ [QtUiTools::loadUiType_test]
+ linux
+ EOF
+
+ if ! use numpy; then
+ cat <<- EOF >> build_history/blacklist.txt || die
+ # Requires numpy support to pass
+ [sample::array_numpy]
+ linux
+ [sample::nontypetemplate]
+ linux
+ [QtGui::qpainter_test]
+ linux
+ EOF
+ fi
+}
+
+python_configure_all() {
+ export LLVM_INSTALL_DIR="$(get_llvm_prefix)"
+
+ ENABLED_QT_MODULES=()
+
+ # The order matters, dependencies must come first so process
+ # REQUIRED_USE and recursively enable modules
+ enable_qt_mod() {
+ local flag=${1}
+ local modules=${QT_MODULES[${flag}]}
+ if [[ -z ${modules} ]]; then
+ die "incorrect flag=${flag}, not registered"
+ fi
+ local dependencies=${QT_REQUIREMENTS[${flag//+}]}
+ if [[ -n ${dependencies} ]]; then
+ local depflag
+ for depflag in ${dependencies}; do
+ if use "${depflag}"; then
+ if [[ -z ${QT_MODULES[${depflag}]} ]]; then
+ depflag=+${depflag}
+ fi
+ enable_qt_mod "${depflag}"
+ else
+ die "${depflag} is required but not enabled"
+ fi
+ done
+ fi
+ if [[ "${ENABLED_QT_MODULES[*]}" != *${modules}* ]]; then
+ ENABLED_QT_MODULES+=( "${modules}" )
+ fi
+ }
+ # Enable specified qt modules
+ local flag
+ for flag in "${!QT_MODULES[@]}"; do
+ if use "${flag//+}"; then
+ enable_qt_mod "${flag}"
+ fi
+ done
+
+ # Special cases
+ if use widgets; then
+ use multimedia && ENABLED_QT_MODULES+=( MultimediaWidgets )
+ use opengl && ENABLED_QT_MODULES+=( OpenGLWidgets )
+ use pdfium && ENABLED_QT_MODULES+=( PdfWidgets )
+ use quick && ENABLED_QT_MODULES+=( QuickWidgets )
+ use svg && ENABLED_QT_MODULES+=( SvgWidgets )
+ use webengine && ENABLED_QT_MODULES+=( WebEngineWidgets )
+ fi
+ if use quick; then
+ use webengine && ENABLED_QT_MODULES+=( WebEngineQuick )
+ use testlib && ENABLED_QT_MODULES+=( QuickTest )
+ fi
+
+ # Arguments listed in options.py
+ MAIN_DISTUTILS_ARGS=(
+ --cmake="${ESYSROOT}/usr/bin/cmake"
+ --ignore-git
+ --limited-api=no
+ --module-subset="$(printf '%s,' "${ENABLED_QT_MODULES[@]}")"
+ --no-strip
+ --no-size-optimization
+ --openssl="${ESYSROOT}/usr/bin/openssl"
+ --qt="$(ver_cut 1-3)"
+ --qtpaths="$(qt6_get_bindir)/qtpaths"
+ --verbose-build
+ --parallel="$(makeopts_jobs)"
+ "$(usex debug "--debug" "--relwithdebinfo")"
+ "--$(usex doc "build" "skip")-docs"
+ "--$(usex numpy "enable" "disable")-numpy-support"
+ )
+
+ if use test; then
+ MAIN_DISTUTILS_ARGS+=(
+ "--build-tests"
+ "--use-xvfb"
+ )
+ fi
+
+ if ! use tools; then
+ MAIN_DISTUTILS_ARGS+=(
+ "--no-qt-tools"
+ )
+ fi
+}
+
+python_compile() {
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --build-type=shiboken6
+ )
+ distutils-r1_python_compile
+
+ # The build system uses its own build dir, find the name of this dir.
+ local pyside_build_dir
+ read -r pyside_build_dir < <(
+ find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" \
+ -maxdepth 1 -type d -name 'qfp*-py*-qt*-*' -printf "%f\n"
+ )
+ export pyside_build_id="${pyside_build_dir#"qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-"}"
+
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
+ --build-type=shiboken6-generator
+ )
+ distutils-r1_python_compile
+ # If no pyside modules enabled, build just shiboken
+ if [[ ${#ENABLED_QT_MODULES[@]} -gt 0 ]]; then
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --shiboken-target-path="${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))/${pyside_build_dir}/install"
+ --build-type=pyside6
+ )
+ distutils-r1_python_compile
+ fi
+
+ # Link libraries to the usual location for backwards compatibility
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)" >/dev/null ||
+ die
+ mkdir -p "${BUILD_DIR}/install/usr/$(get_libdir)" || die
+ local lib
+ for lib in */*.cpython-*.so
+ do
+ local base=${lib##*/}
+ ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so" ||
+ die
+ done
+ for lib in */*.cpython-*.so."$(ver_cut 1-2)"
+ do
+ local base=${lib##*/}
+ ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so.$(ver_cut 1-2)" ||
+ die
+ done
+ for lib in */*.so*; do
+ ln -s "../../$(python_get_sitedir)/${lib}" \
+ "${BUILD_DIR}/install/usr/$(get_libdir)/${lib#*/}" || die
+ done
+ popd >/dev/null || die
+
+ # Symlinks for compatibility with pypi wheels
+ local dir
+ if [[ -d ${BUILD_DIR}/install/$(python_get_sitedir)/PySide6 ]]
+ then
+ pushd "${BUILD_DIR}/install/$(python_get_sitedir)/PySide6" \
+ >/dev/null || die
+ mkdir -p "${BUILD_DIR}/install/usr/share/PySide6" || die
+ for dir in doc glue typesystems; do
+ ln -s "../../../$(python_get_sitedir)/PySide6/${dir}" \
+ "${BUILD_DIR}/install/usr/share/PySide6/${dir}" ||
+ die
+ done
+ popd >/dev/null || die
+ fi
+ mkdir -p "${BUILD_DIR}/install/usr/include"
+ for dir in PySide6 shiboken6_generator; do
+ if [[ -d ${BUILD_DIR}/install/$(python_get_sitedir)/${dir}/include ]]
+ then
+ ln -s "../../$(python_get_sitedir)/${dir}/include" \
+ "${BUILD_DIR}/install/usr/include/${dir//_generator}" ||
+ die
+ fi
+ done
+
+ # Install misc files from inner install dir
+ find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install -type f \
+ -name libPySidePlugin.so -exec \
+ mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
+ -exec \
+ cp "{}" "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
+ || die
+
+ for dir in cmake pkgconfig; do
+ find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install -type d -name "${dir}" \
+ -exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
+ || die
+ done
+
+ # Uniquify the pkgconfigs file for the current Python target,
+ # preserving an unversioned "shiboken6.pc" file arbitrarily
+ # associated with the last Python target.
+ if [[ -f ${BUILD_DIR}/install/usr/lib/pkgconfig/shiboken6.pc ]]
+ then
+ sed -e 's~prefix=.*~prefix=/usr~g' \
+ -e 's~exec_prefix=.*~exec_prefix=${prefix}~g' \
+ -e "s~libdir=.*~libdir=$(python_get_sitedir)/shiboken6~g" \
+ -e "s~includedir=.*~includedir=$(python_get_sitedir)/shiboken6_generator/include~g" \
+ -i "${BUILD_DIR}/install/usr/lib/pkgconfig/shiboken6.pc" || die
+ cp "${BUILD_DIR}/install/usr/lib/pkgconfig/"shiboken6{,-${EPYTHON}}.pc || die
+ fi
+ if [[ -f ${BUILD_DIR}/install/usr/lib/pkgconfig/pyside6.pc ]]
+ then
+ sed -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
+ -e 's~prefix=.*~prefix=/usr~g' \
+ -e 's~exec_prefix=.*~exec_prefix=${prefix}~g' \
+ -e "s~libdir=.*~libdir=$(python_get_sitedir)/PySide6~g" \
+ -e "s~includedir=.*~includedir=$(python_get_sitedir)/PySide6/include~g" \
+ -e "s~typesystemdir=.*~typesystemdir=$(python_get_sitedir)/PySide6/typesystems~g" \
+ -e "s~gluedir=.*~gluedir=$(python_get_sitedir)/PySide6/glue~g" \
+ -e "s~pythonpath=.*~pythonpath=$(python_get_sitedir)~g" \
+ -i "${BUILD_DIR}/install/usr/lib/pkgconfig/pyside6.pc" || die
+ cp "${BUILD_DIR}/install/usr/lib/pkgconfig/"pyside6{,-${EPYTHON}}.pc || die
+ fi
+
+ sed \
+ -e "s~/lib/libshiboken6\.cpython~/$(get_libdir)/libshiboken6\.cpython~g" \
+ -e "s~/lib/libpyside6\.cpython~/$(get_libdir)/libpyside6\.cpython~g" \
+ -e "s~/lib/libpyside6qml\.cpython~/$(get_libdir)/libpyside6qml\.cpython~g" \
+ -e "s~libshiboken6\.cpython.*\.so\.$(ver_cut 1-3)~libshiboken6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6\.cpython.*\.so\.$(ver_cut 1-3)~libpyside6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6qml\.cpython.*\.so\.$(ver_cut 1-3)~libpyside6qml\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libshiboken6\.cpython.*\.so\.$(ver_cut 1-2)~libshiboken6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6\.cpython.*\.so\.$(ver_cut 1-2)~libpyside6\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -e "s~libpyside6qml\.cpython.*\.so\.$(ver_cut 1-2)~libpyside6qml\${PYTHON_CONFIG_SUFFIX}\.so\.$(ver_cut 1-2)~g" \
+ -i "${BUILD_DIR}/install/usr/lib/cmake/"*/*.cmake || die
+ local file
+ for file in "${BUILD_DIR}/install/usr/lib/cmake/"*/*.cpython-*.cmake
+ do
+ local base=${file##*/}
+ ln -s "${base}" "${file%/*}/${base%%.*}-${EPYTHON}.cmake" ||
+ die
+ done
+}
+
+python_test() {
+ # Otherwise it picks the last built directory breaking assumption for multi target builds
+ local pyside_build_dir="qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-${pyside_build_id}"
+
+ local buildno=$(find "${BUILD_DIR}"/build* -name "${pyside_build_dir}" | sort -V | tail -n1)
+ if [[ -z "${buildno}" ]]; then
+ die "could not find any build directories for ${pyside_build_dir}"
+ fi
+
+ buildno="${buildno#"${BUILD_DIR}/build"}"
+ buildno="${buildno%"/${pyside_build_dir}"}"
+
+ local -x PYTHONPATH="${BUILD_DIR}/install$(python_get_sitedir)"
+ local -x QTEST_ENVIRONMENT=ci
+
+ # test shiboken6 build
+ virtx ${EPYTHON} testrunner.py test --buildno "$((buildno - 1))" --projects=shiboken6 ||
+ die "Tests failed with ${EPYTHON}"
+
+ if use core; then
+ # test pyside6 build
+ virtx ${EPYTHON} testrunner.py test --buildno "${buildno}" --projects=pyside6 ||
+ die "Tests failed with ${EPYTHON}"
+ fi
+}
+
+pkg_preinst() {
+ # Avoid symlinks being blocked by directories
+ rm -rf "${EROOT}/usr/include/"{PySide6,shiboken6} || die
+ rm -rf "${EROOT}/usr/share/PySide6" || die
+}
diff --git a/dev-python/pyside/pyside-6.9999.ebuild b/dev-python/pyside/pyside-6.9999.ebuild
index 8d370bb985d9..2e354484bcf0 100644
--- a/dev-python/pyside/pyside-6.9999.ebuild
+++ b/dev-python/pyside/pyside-6.9999.ebuild
@@ -13,7 +13,7 @@ LLVM_COMPAT=( {16..20} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_EXT=1
-inherit distutils-r1 llvm-r1 multiprocessing qmake-utils virtualx
+inherit distutils-r1 llvm-r2 multiprocessing qmake-utils virtualx
MY_PN=${PN}-setup-everywhere-src
MY_P=${MY_PN}-${PV}
@@ -128,7 +128,7 @@ declare -A QT_REQUIREMENTS=(
["xml"]="core"
)
-IUSE="${!QT_MODULES[@]} debug doc gles2-only numpy test tools"
+IUSE="${!QT_MODULES[*]} debug doc gles2-only numpy test tools"
RESTRICT="!test? ( test )"
# majority of QtQml tests require QtQuick support
@@ -137,7 +137,7 @@ REQUIRED_USE="
qml? ( quick )
)
"
-for requirement in ${!QT_REQUIREMENTS[@]}; do
+for requirement in "${!QT_REQUIREMENTS[@]}"; do
REQUIRED_USE+=" ${requirement}? ( ${QT_REQUIREMENTS[${requirement}]} ) "
done
@@ -257,11 +257,18 @@ python_prepare_all() {
's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${LLVM_SLOT}"'/include"))~' \
-i sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp || die
+ sed -e \
+ 's~set(libclang_directory_suffix "lib")~set(libclang_directory_suffix "'"$(get_libdir)"'")~' \
+ -i sources/shiboken6/cmake/ShibokenHelpers.cmake || die
+
# blacklist.txt works like XFAIL
cat <<- EOF >> build_history/blacklist.txt || die
# segfaults with QOpenGLContext::create
[pysidetest::qapp_like_a_macro_test]
linux
+ # no mypy
+ [pysidetest::mypy_correctness_test]
+ linux
# Tries to execute pip install
[pyside6-deploy::test_pyside6_deploy]
linux
@@ -290,6 +297,8 @@ python_prepare_all() {
}
python_configure_all() {
+ export LLVM_INSTALL_DIR="$(get_llvm_prefix)"
+
ENABLED_QT_MODULES=()
# The order matters, dependencies must come first so process
@@ -304,25 +313,25 @@ python_configure_all() {
if [[ -n ${dependencies} ]]; then
local depflag
for depflag in ${dependencies}; do
- if use ${depflag}; then
+ if use "${depflag}"; then
if [[ -z ${QT_MODULES[${depflag}]} ]]; then
depflag=+${depflag}
fi
- enable_qt_mod ${depflag}
+ enable_qt_mod "${depflag}"
else
die "${depflag} is required but not enabled"
fi
done
fi
if [[ "${ENABLED_QT_MODULES[*]}" != *${modules}* ]]; then
- ENABLED_QT_MODULES+=( ${modules} )
+ ENABLED_QT_MODULES+=( "${modules}" )
fi
}
# Enable specified qt modules
local flag
- for flag in ${!QT_MODULES[@]}; do
- if use ${flag//+}; then
- enable_qt_mod ${flag}
+ for flag in "${!QT_MODULES[@]}"; do
+ if use "${flag//+}"; then
+ enable_qt_mod "${flag}"
fi
done
@@ -342,23 +351,34 @@ python_configure_all() {
# Arguments listed in options.py
MAIN_DISTUTILS_ARGS=(
- --cmake="${EPREFIX}/usr/bin/cmake"
+ --cmake="${ESYSROOT}/usr/bin/cmake"
--ignore-git
--limited-api=no
--module-subset="$(printf '%s,' "${ENABLED_QT_MODULES[@]}")"
--no-strip
--no-size-optimization
- --openssl="${EPREFIX}/usr/bin/openssl"
- --qt=$(ver_cut 1-3)
- --qtpaths=$(qt6_get_bindir)/qtpaths
+ --openssl="${ESYSROOT}/usr/bin/openssl"
+ --qt="$(ver_cut 1-3)"
+ --qtpaths="$(qt6_get_bindir)/qtpaths"
--verbose-build
- --parallel=$(makeopts_jobs)
- $(usex debug "--debug" "--relwithdebinfo")
- $(usex doc "--build-docs" "--skip-docs")
- $(usex numpy "--enable-numpy-support" "--disable-numpy-support")
- $(usex test "--build-tests --use-xvfb" "")
- $(usex tools "" "--no-qt-tools")
+ --parallel="$(makeopts_jobs)"
+ "$(usex debug "--debug" "--relwithdebinfo")"
+ "--$(usex doc "build" "skip")-docs"
+ "--$(usex numpy "enable" "disable")-numpy-support"
)
+
+ if use test; then
+ MAIN_DISTUTILS_ARGS+=(
+ "--build-tests"
+ "--use-xvfb"
+ )
+ fi
+
+ if ! use tools; then
+ MAIN_DISTUTILS_ARGS+=(
+ "--no-qt-tools"
+ )
+ fi
}
python_compile() {
@@ -369,8 +389,12 @@ python_compile() {
distutils-r1_python_compile
# The build system uses its own build dir, find the name of this dir.
- local pyside_build_dir=$(find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" -maxdepth 1 -type d -name 'qfp*-py*-qt*-*' -printf "%f\n")
- export pyside_build_id=${pyside_build_dir#qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-}
+ local pyside_build_dir
+ read -r pyside_build_dir < <(
+ find "${BUILD_DIR}/build$((${#DISTUTILS_WHEELS[@]}-1))" \
+ -maxdepth 1 -type d -name 'qfp*-py*-qt*-*' -printf "%f\n"
+ )
+ export pyside_build_id="${pyside_build_dir#"qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-"}"
DISTUTILS_ARGS=(
"${MAIN_DISTUTILS_ARGS[@]}"
@@ -401,7 +425,7 @@ python_compile() {
ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so" ||
die
done
- for lib in */*.cpython-*.so.$(ver_cut 1-2)
+ for lib in */*.cpython-*.so."$(ver_cut 1-2)"
do
local base=${lib##*/}
ln -s "${base}" "${lib%/*}/${base%%.*}-${EPYTHON}.so.$(ver_cut 1-2)" ||
@@ -438,7 +462,7 @@ python_compile() {
done
# Install misc files from inner install dir
- find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type f \
+ find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install -type f \
-name libPySidePlugin.so -exec \
mkdir -p "${BUILD_DIR}/install/$(qt6_get_plugindir)/designer/" \; \
-exec \
@@ -446,7 +470,7 @@ python_compile() {
|| die
for dir in cmake pkgconfig; do
- find "${BUILD_DIR}"/build*/${pyside_build_dir}/install -type d -name ${dir} \
+ find "${BUILD_DIR}"/build*/"${pyside_build_dir}"/install -type d -name "${dir}" \
-exec cp -r "{}" "${BUILD_DIR}/install/usr/lib/" \; \
|| die
done
@@ -499,13 +523,28 @@ python_compile() {
python_test() {
# Otherwise it picks the last built directory breaking assumption for multi target builds
- mkdir -p build_history/9999-99-99_999999/ || die
- local pyside_build_dir=qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-${pyside_build_id}
- echo "$(ls -d "${BUILD_DIR}"/build*/${pyside_build_dir}/build | sort -V | tail -n 1)" > build_history/9999-99-99_999999/build_dir.txt || die
- echo "${pyside_build_dir}" >> build_history/9999-99-99_999999/build_dir.txt || die
+ local pyside_build_dir="qfp$(usev debug d)-py${EPYTHON#python}-qt$(ver_cut 1-3)-${pyside_build_id}"
+
+ local buildno=$(find "${BUILD_DIR}"/build* -name "${pyside_build_dir}" | sort -V | tail -n1)
+ if [[ -z "${buildno}" ]]; then
+ die "could not find any build directories for ${pyside_build_dir}"
+ fi
- virtx ${EPYTHON} testrunner.py test --projects=shiboken6 $(usev core '--projects=pyside6') ||
+ buildno="${buildno#"${BUILD_DIR}/build"}"
+ buildno="${buildno%"/${pyside_build_dir}"}"
+
+ local -x PYTHONPATH="${BUILD_DIR}/install$(python_get_sitedir)"
+ local -x QTEST_ENVIRONMENT=ci
+
+ # test shiboken6 build
+ virtx ${EPYTHON} testrunner.py test --buildno "$((buildno - 1))" --projects=shiboken6 ||
die "Tests failed with ${EPYTHON}"
+
+ if use core; then
+ # test pyside6 build
+ virtx ${EPYTHON} testrunner.py test --buildno "${buildno}" --projects=pyside6 ||
+ die "Tests failed with ${EPYTHON}"
+ fi
}
pkg_preinst() {
diff --git a/dev-python/python-json-logger/Manifest b/dev-python/python-json-logger/Manifest
index 8a2cc5226004..e97290f8a96e 100644
--- a/dev-python/python-json-logger/Manifest
+++ b/dev-python/python-json-logger/Manifest
@@ -1,2 +1,3 @@
DIST python_json_logger-3.3.0.tar.gz 16642 BLAKE2B 79f7271815af3a6f29e4f9cfda58b7bae2c08d0aef7a6e5bbab04dedbd8db2973addd40361c58e6a47e0ef765d15f0b0c262f41cf74b2c4e20d08478250d7e00 SHA512 6779464281fd8b7e4171adcf50aedc7f362df62d99bbd1982b5bef657a3a2f1e2191c4aa0f5acd688dd3554af547f5d72e785e493e21dbaa342127c92da5daa5
+DIST python_json_logger-4.0.0.tar.gz 17683 BLAKE2B 50161322569c7cad4cab322fe61bad86b09a8eb33a4ed9d46e5d073feb6c5feb09379cb3abaff7b7c26f5e98986002e3822c23576752cc0ec0958baf6bf5b47c SHA512 bdbd900e5b44badec8279f98a017769296eef92e23d25b97cc71eb5da2791f096c4af7bb1c5f0f9b0a691d3006e8be12dd546ac3f1c010c8c0244a6d2b0addf2
DIST python_json_logger-4.0.0rc1.tar.gz 17679 BLAKE2B d5c87ca4612f66851930a69a6b4b8319cc20a40244aa38ced383d5f3a66884cd2dce713bff51eff43473cd31c467df3f98fe9cacd7210a7a1304530f88ef8b5e SHA512 13214dc657bb5afc472e6f53c32fce60c29beb9b0ae003ed0428917b869c123e94df57bcbea4a5b78371a52c71fbf3474109e3b609282c7faf86540d5f1b16f9
diff --git a/dev-python/python-json-logger/python-json-logger-4.0.0.ebuild b/dev-python/python-json-logger/python-json-logger-4.0.0.ebuild
new file mode 100644
index 000000000000..2a84ade0960f
--- /dev/null
+++ b/dev-python/python-json-logger/python-json-logger-4.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Standard python logging to output log data as json objects"
+HOMEPAGE="
+ https://github.com/madzak/python-json-logger/
+ https://pypi.org/project/python-json-logger/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/tzdata[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/pyzstd/Manifest b/dev-python/pyzstd/Manifest
index a90baf8edcf1..a3162874ba1e 100644
--- a/dev-python/pyzstd/Manifest
+++ b/dev-python/pyzstd/Manifest
@@ -1 +1,2 @@
DIST pyzstd-0.17.0.tar.gz 1212160 BLAKE2B df758d02d4cb8df504538b0ff9de059a86d15ca1fe362879932f916db9ac057eaa34efb342fcca9c206a8f463201b8f774978727c209cd8799e51152b7ff90c0 SHA512 932bd4b7df026c40aa24c1548237b3decf44109897572b8933d4a2284036998d7bb320d355a71f9ab04509333204072ed78098f6e6c05b997a80f268763a4b28
+DIST pyzstd-0.18.0.tar.gz 806048 BLAKE2B a2154d215a6164358b9ed0195bf3a37d707fce029949fbf4ffadf14f8c4462110674cc0d91ca115361ef1db67bef29c15721963870bd2ce08e8077365db02f43 SHA512 0031b5c6f893a5c265a00e55cdc5519a3d2bd191d943917761129dd4d8a49ab1c8912b559e9e10a3aeef25b01fbefe33ae6674a55554ff7c16e2dd31795b7bbc
diff --git a/dev-python/pyzstd/pyzstd-0.18.0.ebuild b/dev-python/pyzstd/pyzstd-0.18.0.ebuild
new file mode 100644
index 000000000000..a35ec2ac03a4
--- /dev/null
+++ b/dev-python/pyzstd/pyzstd-0.18.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_UPSTREAM_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python bindings to Zstandard (zstd) compression library"
+HOMEPAGE="
+ https://github.com/Rogdham/pyzstd/
+ https://pypi.org/project/pyzstd/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+DEPEND="
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.11 3.12)
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ sed -i "s/'-g0', '-flto'//" setup.py || die
+
+ distutils-r1_src_prepare
+
+ DISTUTILS_ARGS=(
+ --dynamic-link-zstd
+ --multi-phase-init
+ )
+}
+
+python_test() {
+ eunittest tests
+}
diff --git a/dev-python/tifffile/Manifest b/dev-python/tifffile/Manifest
index ada0a2e95f65..ef3aa378b241 100644
--- a/dev-python/tifffile/Manifest
+++ b/dev-python/tifffile/Manifest
@@ -1,2 +1,2 @@
-DIST tifffile-2025.9.20.gh.tar.gz 359328 BLAKE2B 4180d84b85d58ae2d1be15a0eea5ff53ecfe06181e7c3444f54a5b3d9e3f911d07d7a9fda8762847ba6002fe0f0a9ec3d29306f104ca23665ad52a8946886e04 SHA512 4e1f849f35fed303e6aeed13fb594a1665f82412ad77d28dcd7b044869b942dfff1c19ad63a6c64b87721a11ebc0eb1b9538dfede716711a74603e148f34ec0a
+DIST tifffile-2025.10.4.gh.tar.gz 359732 BLAKE2B 5dd69e8a8fbaf39f18c7ed1edc25aaf1e2c12fdaf6593c84b4346dd58471e9ed13c7ca491ead1321c87e98128c19d68c8504aefb5440a2d52766ced942512f6c SHA512 20c3786d8d85eac2a52f38f4e578ef24dfa8eaa2a60bf200a061742af0dc8fcc278939f542ea9a225add02b563932d17f07d160e3a1d5e34ba26502b58b3d52e
DIST tifffile-2025.9.30.gh.tar.gz 359562 BLAKE2B accdc42dce218781d61b29b8931a73ebf4889f54e517940f5d00f897f07f3c175bd8e39aafa27c03e3eda624e8687dcb1ab1827878759edb2a1fef6ce07acec3 SHA512 77de77c7f3f013adcf5760353f20236180176282a958d3390161bcc456fdc47231883d86325a064b156fcb7e14acc48cb2b4b109d11a79ab298a1c6b6ef622bb
diff --git a/dev-python/tifffile/tifffile-2025.9.20.ebuild b/dev-python/tifffile/tifffile-2025.10.4.ebuild
index a1d2d3800bb1..a1d2d3800bb1 100644
--- a/dev-python/tifffile/tifffile-2025.9.20.ebuild
+++ b/dev-python/tifffile/tifffile-2025.10.4.ebuild
diff --git a/dev-python/types-docutils/Manifest b/dev-python/types-docutils/Manifest
index 20b3bcd0d463..6961c1890fbb 100644
--- a/dev-python/types-docutils/Manifest
+++ b/dev-python/types-docutils/Manifest
@@ -1,6 +1,3 @@
-DIST types_docutils-0.22.0.20250814.tar.gz 56376 BLAKE2B 75690dfe8d479fdb97b39391e813e4858feead0604dcba94355a66641100ac6a45ca61f6e231bde7cbcdfabb1e2866d30b1ea8bb98cf3e19b7b85eeaddb57813 SHA512 a064c117929e85fdae33276dfd72caa268aef9620c3144000f2660dd0e3d900d169534896599cad1f295a7bbb1de176a65da71f7096dbce5015c895eaefb7cab
-DIST types_docutils-0.22.0.20250822.tar.gz 56487 BLAKE2B 2d6fcf0bee2ff56f08fcbb2ef1b51140926410c3ff51f7139bf3cd4a4a0999e5555ebcbd668daabd9cf7b1bef6e31b562092af14f1a571d13223aed1afa4b0e0 SHA512 ae4d8927c0c5d423b004cd84f8fed20408f2944105b06c95c67248a7cd0a049da519d3aeeb6f05fdcc58ee178fcb3d0aecab8ea6333e0d3b8776b3406272a60a
-DIST types_docutils-0.22.0.20250914.tar.gz 56496 BLAKE2B 0c9f9321506821a1732bdef41ccdf3cc617a87f18c2d9343f0eddba143456b0647a6ca0b6dc9e6ea245310b6019e2672cdc8aeea702ad1a61105201efec253de SHA512 3207655dd257f5274fffcb0213fcdef9dbfd564f027b84563366b2f79f3df2001f88317ac27a6e89fca18b4ebab7296de8f8e53d656e3ffcb558ed2ab770a653
DIST types_docutils-0.22.0.20250919.tar.gz 56554 BLAKE2B dce038821d21f58bd2a2d93348b3685c2b44a909b9036407089d4974e7774b7a6e97826758616562d7f5f87869a3aa23860f420d3fb722ba147d6df892f11304 SHA512 c37792c851284c173ccf07d7f9821bff16a9bd550a62bfb885201f009959836421adb30471b376fe89454857636e789ebf1a3bed5ee5cddfc7084ca6e8f90857
-DIST types_docutils-0.22.1.20250923.tar.gz 56652 BLAKE2B 016be0aed7e1ec70e2dc7ad57abd7002a496276fbc3112a0797ec69eb22a963ffe7bc71c81611c6e1c18088276382a322e8753d1f4bab2d19e449331a4c37a87 SHA512 5a18c7a6f13f7599a1c6ef76f30c8687522ad1a8ed0f252047d2b6af5afcbe21e6da363033975b4d4d4182e4f3d83a7aea9cd1194a275b61d113ebdf841e1661
DIST types_docutils-0.22.2.20250924.tar.gz 56679 BLAKE2B 326dceb05c6226bf2fed62ad89b7bfb7b38da2f9bcacfaae84abf59d8614558361e290ba9659e10132ae13db75757e39ab554726a65cc174db5b3b329b43aa01 SHA512 bdb1b1eebb40c7d5b474ab1b35e863a11889cba8ccbb697116393fa970fa6b4c81d8d1c05f847a6d804d0de89277288160facbbbe75797dcc4676f8580c086af
+DIST types_docutils-0.22.2.20251006.tar.gz 56658 BLAKE2B 85eddde6d9e4237d846430a0c5b38991c54b7052fe6d55c278e3108c44cbfcdf6c9cebff109b682346906ddff0e35e0e67755b3691d9805551b1ef2be6372d56 SHA512 f1b82d8b773b7c40c84ec7da9a818b31bd44d9b122ee19c276ef740856636a54a2f8aacc25183b748c57c540cdedb282922eb9a39e5e06e02900a41fe52428a8
diff --git a/dev-python/types-docutils/types-docutils-0.22.0.20250814.ebuild b/dev-python/types-docutils/types-docutils-0.22.0.20250814.ebuild
deleted file mode 100644
index 29b3eac5da76..000000000000
--- a/dev-python/types-docutils/types-docutils-0.22.0.20250814.ebuild
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2022-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Typing stubs for docutils"
-HOMEPAGE="https://pypi.org/project/types-docutils/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
diff --git a/dev-python/types-docutils/types-docutils-0.22.0.20250914.ebuild b/dev-python/types-docutils/types-docutils-0.22.0.20250914.ebuild
deleted file mode 100644
index 9fdbbf2b35dd..000000000000
--- a/dev-python/types-docutils/types-docutils-0.22.0.20250914.ebuild
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2022-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Typing stubs for docutils"
-HOMEPAGE="https://pypi.org/project/types-docutils/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
diff --git a/dev-python/types-docutils/types-docutils-0.22.1.20250923.ebuild b/dev-python/types-docutils/types-docutils-0.22.1.20250923.ebuild
deleted file mode 100644
index 9fdbbf2b35dd..000000000000
--- a/dev-python/types-docutils/types-docutils-0.22.1.20250923.ebuild
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2022-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Typing stubs for docutils"
-HOMEPAGE="https://pypi.org/project/types-docutils/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
diff --git a/dev-python/types-docutils/types-docutils-0.22.0.20250822.ebuild b/dev-python/types-docutils/types-docutils-0.22.2.20251006.ebuild
index 9fdbbf2b35dd..9fdbbf2b35dd 100644
--- a/dev-python/types-docutils/types-docutils-0.22.0.20250822.ebuild
+++ b/dev-python/types-docutils/types-docutils-0.22.2.20251006.ebuild
diff --git a/dev-python/wrapt/Manifest b/dev-python/wrapt/Manifest
index 8a0a1241a67e..3154e69365bf 100644
--- a/dev-python/wrapt/Manifest
+++ b/dev-python/wrapt/Manifest
@@ -1,4 +1,3 @@
-DIST wrapt-1.17.2.gh.tar.gz 140660 BLAKE2B 58e9da7bb250a614717d18a20c61a0f6f45e77aa9c90e13be21e8e4094a1d24516d6388e15997cbbca296abb976bac0ce42f720f74fe4946d000dd570bca0da4 SHA512 12a6e610f180ce34a7edad39225b54f62d58d487e8b3379321e00e0d0c1b265a5a570de15ec5e5a6b38748052617dbb486f802ae924ab48b51b3ccd40d1170bf
DIST wrapt-1.17.3.gh.tar.gz 140900 BLAKE2B 88c4cd718cd98a97c866c4f0b9f7e095347fe6fa5fed60c54e389329c89f9f07099c8fb79561cf5e12c19c44a4067d81e805c55b54a74429e6b75913dedd6b3f SHA512 1a1f7419f20faa461a9e23ad09cc98d381ef2c48b3b24ed1dfe98d42d16857a958252301e78dd41b7fa8ef37eea379f9244cace2b396b49718c44cbc701308a3
-DIST wrapt-2.0.0rc2.gh.tar.gz 172612 BLAKE2B dd5cf512bab623d591226bbff0c3339763ca0c5a215f1aa10f330b65292e196132bfd2ab003cb912c034bc6723fb142f5b495151b328a7064419c34190e910e2 SHA512 6d9ba92bfce02f219e99bdde466d24565d119388372ef6ef032160010760dbda27f99252812fa8e78df749346c961fc514b1a014d146f77b9024d9b3ff37755b
DIST wrapt-2.0.0rc3.gh.tar.gz 177421 BLAKE2B 85759f3859ac1cf2e3acfe07af4c38f154e9f2a290666e060629c41ab24f4a1f370e70885e266d12888a8f707eaa67e2e439ffb21653c98f871ec6440bb697b1 SHA512 e76bc6e0a28fb0a3081085c98331a1cedd783d4c06d1a803dab581c2b88863a22f9cba76ad8e9623e6f84ef87fae8bde07677d5844aa5b9634acfc3c7da322ed
+DIST wrapt-2.0.0rc4.gh.tar.gz 177839 BLAKE2B cf93d4ef525aa8e323f7fc2b939a63944ae06af0a18c4d01e64b82519bafc6c0b88262ebf239a64c9037627f145ae870b3bad088074aa337edd8179970068568 SHA512 7e2a7376293eefeda1c15a3dd4f2daa2744d6fecef5b1430b1f52c1f04ccc65aaa79e620190aeafb0d24c72fed3393e67d32d55a173a21f8c3e276a5ece7799e
diff --git a/dev-python/wrapt/wrapt-1.17.2.ebuild b/dev-python/wrapt/wrapt-1.17.2.ebuild
deleted file mode 100644
index 57b635871d4b..000000000000
--- a/dev-python/wrapt/wrapt-1.17.2.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1
-
-MY_P=${P/_}
-DESCRIPTION="Module for decorators, wrappers and monkey patching"
-HOMEPAGE="
- https://github.com/GrahamDumpleton/wrapt/
- https://pypi.org/project/wrapt/
-"
-SRC_URI="
- https://github.com/GrahamDumpleton/wrapt/archive/${PV/_}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-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 ~x64-macos"
-IUSE="+native-extensions"
-
-distutils_enable_tests pytest
-distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
-
-python_compile() {
- local -x WRAPT_INSTALL_EXTENSIONS=$(usex native-extensions true false)
- distutils-r1_python_compile
-}
-
-python_test() {
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/wrapt/wrapt-2.0.0_rc2.ebuild b/dev-python/wrapt/wrapt-2.0.0_rc4.ebuild
index b5a59ade82de..b5a59ade82de 100644
--- a/dev-python/wrapt/wrapt-2.0.0_rc2.ebuild
+++ b/dev-python/wrapt/wrapt-2.0.0_rc4.ebuild
diff --git a/dev-python/yarl/Manifest b/dev-python/yarl/Manifest
index 68dd6b15694f..3527492da14b 100644
--- a/dev-python/yarl/Manifest
+++ b/dev-python/yarl/Manifest
@@ -1 +1,2 @@
DIST yarl-1.20.1.tar.gz 186428 BLAKE2B 904bc2fba743d7cc0f313166477ff93288816853d7831ed25b3589749878b78c5c10ccb0bb8d11cbad66cea8c5c8eab4fa32ff0542351cf1351a7de5c235ebd6 SHA512 2e7d2c69ddf07f04468b40dc929f5c54bcc3026386fa5fe98bc7f8b8f8aafee05d1df00a42377767e8a9e839f76b8cf569b8e373b3e94af6a954e68a4031fcc1
+DIST yarl-1.21.0.tar.gz 187069 BLAKE2B cab583d33154cacb73bc0297a0a53e220dbde17f9d4812b8a6a4b1e69d8589c102710a2f6694f802b6ee944fc21a69a941bb8ce333a9c5bafecda9d11c4c4050 SHA512 e37316deae6e503b7cdb8b01c767d725776cedbb189735575d18376480a6de875307b436fcbe2dba46095b4ca340c57e51d6247b452c00a9f9dd54477b70d483
diff --git a/dev-python/yarl/yarl-1.21.0.ebuild b/dev-python/yarl/yarl-1.21.0.ebuild
new file mode 100644
index 000000000000..9776d49e5af3
--- /dev/null
+++ b/dev-python/yarl/yarl-1.21.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Yet another URL library"
+HOMEPAGE="
+ https://github.com/aio-libs/yarl/
+ https://pypi.org/project/yarl/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+RDEPEND="
+ >=dev-python/idna-2.0[${PYTHON_USEDEP}]
+ >=dev-python/multidict-4.0[${PYTHON_USEDEP}]
+ >=dev-python/propcache-0.2.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ native-extensions? (
+ dev-python/cython[${PYTHON_USEDEP}]
+ )
+ dev-python/expandvars[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( hypothesis )
+distutils_enable_tests pytest
+
+python_compile() {
+ local -x YARL_NO_EXTENSIONS=0
+ if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ YARL_NO_EXTENSIONS=1
+ fi
+ distutils-r1_python_compile
+}
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # benchmarks
+ tests/test_quoting_benchmarks.py
+ tests/test_url_benchmarks.py
+ )
+
+ local opts=()
+ # note different boolean logic than for backend (sigh)
+ local -x YARL_NO_EXTENSIONS=
+ if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then
+ YARL_NO_EXTENSIONS=1
+ fi
+
+ rm -rf yarl || die
+ epytest -o addopts= "${opts[@]}"
+}