summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-02-04 06:53:00 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-02-04 06:53:00 +0000
commitedfa25bc92511e83cda46637440f1813add05b25 (patch)
treec8a083ff8dd0e649870e8c338b5661afdbcfe0a9 /dev-python
parent3517a84243eae72744de4d2fdeda9f541f332ebb (diff)
downloadbaldeagleos-repo-edfa25bc92511e83cda46637440f1813add05b25.tar.gz
baldeagleos-repo-edfa25bc92511e83cda46637440f1813add05b25.tar.xz
baldeagleos-repo-edfa25bc92511e83cda46637440f1813add05b25.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiosqlite/Manifest1
-rw-r--r--dev-python/aiosqlite/aiosqlite-0.21.0.ebuild30
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.36.12.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.36.12.ebuild67
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.125.1.ebuild104
-rw-r--r--dev-python/jupyter-events/Manifest1
-rw-r--r--dev-python/jupyter-events/jupyter-events-0.12.0.ebuild42
-rw-r--r--dev-python/libtmux/Manifest1
-rw-r--r--dev-python/libtmux/libtmux-0.42.0.ebuild56
-rw-r--r--dev-python/marshmallow/Manifest1
-rw-r--r--dev-python/marshmallow/marshmallow-3.26.1.ebuild32
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.0.ebuild2
-rw-r--r--dev-python/mkdocs-material/Manifest1
-rw-r--r--dev-python/mkdocs-material/mkdocs-material-9.6.2.ebuild67
-rw-r--r--dev-python/mkdocstrings-python/Manifest2
-rw-r--r--dev-python/mkdocstrings-python/mkdocstrings-python-1.14.3.ebuild (renamed from dev-python/mkdocstrings-python/mkdocstrings-python-1.12.2.ebuild)20
-rw-r--r--dev-python/mkdocstrings/Manifest1
-rw-r--r--dev-python/mkdocstrings/mkdocstrings-0.28.0.ebuild55
-rw-r--r--dev-python/nuitka/Manifest1
-rw-r--r--dev-python/nuitka/nuitka-2.6.3.ebuild55
-rw-r--r--dev-python/orderly-set/Manifest2
-rw-r--r--dev-python/orderly-set/orderly-set-5.3.0.ebuild (renamed from dev-python/orderly-set/orderly-set-5.2.2.ebuild)10
-rw-r--r--dev-python/paramiko/Manifest1
-rw-r--r--dev-python/paramiko/paramiko-3.5.1.ebuild72
-rw-r--r--dev-python/pyside/Manifest (renamed from dev-python/pyside6/Manifest)1
-rw-r--r--dev-python/pyside/files/pyside-6.3.1-no-strip.patch (renamed from dev-python/pyside6/files/pyside6-6.3.1-no-strip.patch)0
-rw-r--r--dev-python/pyside/files/pyside-6.6.0-no-qtexampleicons.patch (renamed from dev-python/pyside6/files/pyside6-6.6.0-no-qtexampleicons.patch)0
-rw-r--r--dev-python/pyside/files/pyside-6.8.2-no-qtexampleicons.patch10
-rw-r--r--dev-python/pyside/files/pyside-6.8.2-quick-fix-build-wheel.patch17
-rw-r--r--dev-python/pyside/metadata.xml (renamed from dev-python/pyside6/metadata.xml)5
-rw-r--r--dev-python/pyside/pyside-6.8.1.1.ebuild (renamed from dev-python/pyside6/pyside6-6.8.1.1.ebuild)6
-rw-r--r--dev-python/pyside/pyside-6.8.1.ebuild (renamed from dev-python/pyside6/pyside6-6.8.1.ebuild)6
-rw-r--r--dev-python/pyside/pyside-6.8.2.ebuild440
-rw-r--r--dev-python/pyside6-tools/pyside6-tools-6.8.1.1.ebuild2
-rw-r--r--dev-python/pyside6-tools/pyside6-tools-6.8.1.ebuild2
-rw-r--r--dev-python/pytest-qt/pytest-qt-4.4.0.ebuild8
-rw-r--r--dev-python/qtpy/metadata.xml3
-rw-r--r--dev-python/qtpy/qtpy-2.4.2-r1.ebuild29
-rw-r--r--dev-python/qtpy/qtpy-2.4.2.ebuild54
-rw-r--r--dev-python/reportlab/Manifest1
-rw-r--r--dev-python/reportlab/reportlab-4.3.0.ebuild53
-rw-r--r--dev-python/rtslib-fb/Manifest1
-rw-r--r--dev-python/rtslib-fb/rtslib-fb-2.2.2.ebuild31
-rw-r--r--dev-python/sqlglot/Manifest1
-rw-r--r--dev-python/sqlglot/sqlglot-26.4.1.ebuild177
-rw-r--r--dev-python/uv/Manifest4
-rw-r--r--dev-python/uv/uv-0.5.27.ebuild171
-rw-r--r--dev-python/webtest/Manifest1
-rw-r--r--dev-python/webtest/webtest-3.0.4.ebuild45
52 files changed, 1663 insertions, 85 deletions
diff --git a/dev-python/aiosqlite/Manifest b/dev-python/aiosqlite/Manifest
index 20158f857948..5d91d13b16f6 100644
--- a/dev-python/aiosqlite/Manifest
+++ b/dev-python/aiosqlite/Manifest
@@ -1 +1,2 @@
DIST aiosqlite-0.20.0.tar.gz 21691 BLAKE2B 2cfa096fa10e4964eb73b0fa698bad07311a78a66258d38864d3d8957df5280fd3a4bf8cb497c9b6f3e0f3bc513a439790f3df81f7736736f73717cf60df54e4 SHA512 b0421d2b8acf90a38e33f68d8af7f0d11194c59413f074dcf7d676924adf30f0ba27dcf45e061ba1aad58c2aae49c523bfb6dc3e3fd85bf6c64052151c300be5
+DIST aiosqlite-0.21.0.tar.gz 13454 BLAKE2B cd6bb6670732e05628a2724abc2675063fd2822912751077550572bfb3971c02548ee7a681c68d8e69365ad8cf534c47ca1996e2e4c204eea8bc4371180375fa SHA512 64d65c8b683687559f698b191697f765db18719318259a6c9d778f7577d23eec5e0f382f71f63f7aba9aedcb3189bc5d946cd6382ae6c2f16af7a553b8a8c9e2
diff --git a/dev-python/aiosqlite/aiosqlite-0.21.0.ebuild b/dev-python/aiosqlite/aiosqlite-0.21.0.ebuild
new file mode 100644
index 000000000000..86eb301e927e
--- /dev/null
+++ b/dev-python/aiosqlite/aiosqlite-0.21.0.ebuild
@@ -0,0 +1,30 @@
+# 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} )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="asyncio bridge to the standard sqlite3 module"
+HOMEPAGE="
+ https://aiosqlite.omnilib.dev
+ https://pypi.org/project/aiosqlite/
+ https://github.com/omnilib/aiosqlite
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+# AttributeError: 'str' object has no attribute 'supported'
+#distutils_enable_sphinx docs dev-python/m2r
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 5ac4f8e24fac..3fdeaaa7c88f 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,3 +1,4 @@
DIST boto3-1.36.11.gh.tar.gz 896841 BLAKE2B 092cfaeb6dc6f6d3f523fe4e0b600817e6145a224c2b43b6dd47376d6aa1a586bf3784b2960f4179b271128d20c3edd5b435cabd6e3ddc2330f0b0ad5ce306d9 SHA512 6f17d0b6f67ace0485fbc2d809f013fddd4cf1211eb6c9a1fe0ed7c0bc117aedc9e4b7db4d4570818907db6344b19331d8a7b6246928ed5c5e294b9b5a9504dc
+DIST boto3-1.36.12.gh.tar.gz 896941 BLAKE2B 1b28a8f5326898b5459e4ad7e09a159e8d59979ffa3c06182549508b2b409497dced1c0817608d7294e98c3a1e994ae62f3bb8f2883ee20be5681e4e44578ca3 SHA512 32dcd697bd6f997899f78314eb7de020f165e2ca7897c62fb12e51a9b295b6da5273f88006730a9c50ed5a3afd92975cbca102e50bd16a0d30db5fe5b270bd8d
DIST boto3-1.36.2.gh.tar.gz 923432 BLAKE2B 91f19eb6e1451923adbf323688d89cfadd384009fbc3fdcae688b48dee54d9a3f14956cedaed07b15f2cdc3badaf0533a6ec1e1baf5cedc88e91580104834eb2 SHA512 e9e14f4aacd0814952198d5446050f0cf822baac0b3ce3604c40dbb6b122c431624b46b144ea4699be7328f6236e099981905a4be6a9de3400750800d8d40e60
DIST boto3-1.36.6.gh.tar.gz 925646 BLAKE2B 71db3ff552033c187e19b699d193e4834649b80d2c0dd2ed35496bfef798371f7794e58d445aeeafcc3e4aef50d4dc6e17347b04ae82b4f3b7778a1a5e419daf SHA512 c638903cb3afff4867dbee7295e387f5ce91d9d3d9f37b28c103ead87883377a69fbccfce34850da5c77186ced0bb56f5dc5f4549e84871d10a9134c731d4c36
diff --git a/dev-python/boto3/boto3-1.36.12.ebuild b/dev-python/boto3/boto3-1.36.12.ebuild
new file mode 100644
index 000000000000..dfe05b3d9a81
--- /dev/null
+++ b/dev-python/boto3/boto3-1.36.12.ebuild
@@ -0,0 +1,53 @@
+# 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 84417918b4b4..2492cefd0a63 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,3 +1,4 @@
DIST botocore-1.36.11.gh.tar.gz 14197086 BLAKE2B 471c4d4d8433c5ce577b76e3dc70e9cbc0aee52f8c06765c1d965b437e75b44b4d62ea472abf612266ebf718300aca11f39fce90abe5d5811a37bcbe686d09de SHA512 0cf405e0fd7466a631bfbf3c4d0ad46b7c6da787715d9d70362cd5ed869ecfcf26ce7465daec220c9ffb858a1171439088e42a72665726ba5b511ef551cdcf3a
+DIST botocore-1.36.12.gh.tar.gz 14196487 BLAKE2B da045773e32f6a7b76f23cb68a8492fd61410e6c374968662612ead08f970624c685cdc14e6eebf01c77b4c0cac6b859313fd7d59c98b34786c863baa4a397cc SHA512 8909e431349634326ed2a88defade4c1c55969fffebcad8fc7acac0425cb7d6ae072b864d6102c8cdc898192af6e1f8fa990c877056bcba4fcc0b3fade7cb752
DIST botocore-1.36.2.gh.tar.gz 14197789 BLAKE2B 21441cd52052d117ce05e425c13f34941dcc1ca26a03e2e7eefb6c82584d7faffb548435ebb6b716b72db8149cfe6a3378b79f9174c676fd193c194501b0c844 SHA512 45d9515c493b238a003e5ad264b152b68a62e7ca140ea13111865a4b7c674a7b309a0f550f9782c37966b95c114136b8788f00ba0c83ed4bc61521b593376594
DIST botocore-1.36.6.gh.tar.gz 14173329 BLAKE2B 1eea293adad312439f2c60e0f73f721fa207439af2918fb5db98304a565e44d33f953f517e5526e865cbf58751892be4a6cc275545f295638109ee4051d2a276 SHA512 bcd1077bfeb5709e8c6224560f7974d70a884310539b531f520b20446aeaf3aa5d9aba6cbd19d75526d34dd7ab68be578f5ece7bddf7986997f9f5bbd5cee905
diff --git a/dev-python/botocore/botocore-1.36.12.ebuild b/dev-python/botocore/botocore-1.36.12.ebuild
new file mode 100644
index 000000000000..df85ee0d220c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.36.12.ebuild
@@ -0,0 +1,67 @@
+# 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} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index ac5c79e2d348..f1e57b3d1bd6 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -3,3 +3,4 @@ DIST hypothesis-6.124.3.gh.tar.gz 9510786 BLAKE2B d4104ce7cbe009ce1e0d2d6fa04db8
DIST hypothesis-6.124.7.gh.tar.gz 9507487 BLAKE2B d0160dedfd78443724a7388020fa093ba95e8621403f4fa69f04c324a5be8d49b51c3cae4cca488a86046818b6762a3f9703b1963186ae82daed2c8cdf0f8f70 SHA512 c9c699d830082ccfb056c42817592ad3736b3e1c2294bed889d9e581dc8d4b093a86a949b24e3fa842941daf18933c55c6a479cd6768c30cde0cecb94777a620
DIST hypothesis-6.124.9.gh.tar.gz 9507981 BLAKE2B 469448e2c97b0a798293d53d2ae1ea328c61c94245245b989a33a3520a903dbb6a4a468192dc7837dfe75bde5d9a010ffb7d4b8f16c7c8462bab8da4f183f310 SHA512 0c0f48a88a748d4bf1fc0763b4e464166536d4d16461f06a2090a2f5f54464730fff8eb7892ff60584c2135853aab7a56253db83dfd90a8e679fa3f37d4fb6a9
DIST hypothesis-6.125.0.gh.tar.gz 9508026 BLAKE2B 1c1816de7cc2be2ac541671ce8a8172b9c75e2fcd79eb219888f5815ff84b2438088c7f63921fffb58a3c0c7db8b1f31437a0de7b4c12ef6947787608cde4ff0 SHA512 8eb92e945772b48d9ae2ed67d4a1f17b63222e2aa7755e0e3e2f9a93d5610ade79e5f13b1e9a50d72f21f3f1142ee2f05eb1fa13b9dfd94c51211a9c90308433
+DIST hypothesis-6.125.1.gh.tar.gz 9508746 BLAKE2B 807aa5aa4e0e023bbc890930903f711372b391d87a4ee89332fb6140141b5adceb4b47824c093c7beddea6fc42e52d35619dfc97ba6dd480f73b4063f5de215e SHA512 6d6d27122dc6b75d092145dcec7c3e8047136258927e82d1096ed177eebf696619887f2b4b3549efac5937ac515e3e54b469c8abab69fecbcbafe342c7aead6d
diff --git a/dev-python/hypothesis/hypothesis-6.125.1.ebuild b/dev-python/hypothesis/hypothesis-6.125.1.ebuild
new file mode 100644
index 000000000000..b67bbcacc7ba
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.125.1.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( pypy3 python3_{10..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
+ ' 3.9 3.10)
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ pypy3)
+ EPYTEST_DESELECT+=(
+ # failing due to warnings from numpy/cython
+ hypothesis-python/tests/pytest/test_fixtures.py::test_given_plus_overridden_fixture
+ )
+ ;;
+ esac
+
+ epytest -o filterwarnings= -p rerunfailures --reruns=5 \
+ tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/jupyter-events/Manifest b/dev-python/jupyter-events/Manifest
index 8b75a25da0e7..724862a36baa 100644
--- a/dev-python/jupyter-events/Manifest
+++ b/dev-python/jupyter-events/Manifest
@@ -1 +1,2 @@
DIST jupyter_events-0.11.0.tar.gz 62039 BLAKE2B 0a6d4598c763c59595d66e8ea30c0c056e48600a024e138258a6d0b306a002b10bf2eabaad78bb7ca1280b214660cd682737518c503437ba4921451473cb0d92 SHA512 a19458ca9e2b9c44af1a7b4b80259aa4f67b318a5bf6ca7a9b4e24c6e6923b64947b6de8f9476e354b090542bfd9af5b7db2479df0e08ff3617d7c0f32cc267e
+DIST jupyter_events-0.12.0.tar.gz 62196 BLAKE2B 8c9c46a0c7a932a27b176abb0805b5e7aeff256ec6e3e1b76e8608fb8bd0eda6729608be2d9a28e76c37c6c8f62ecdcb1be497ccf57c5b93679d900b298fb9ea SHA512 8f105e4bc8aae65170127bc2d9a0f49ace7bff23e93e99219a41444d83501e32a0dc9b637de5b7a7d085f192f775d4197ec0d1e3bf0a0fc9c15787c82978f42c
diff --git a/dev-python/jupyter-events/jupyter-events-0.12.0.ebuild b/dev-python/jupyter-events/jupyter-events-0.12.0.ebuild
new file mode 100644
index 000000000000..f17ef375bddd
--- /dev/null
+++ b/dev-python/jupyter-events/jupyter-events-0.12.0.ebuild
@@ -0,0 +1,42 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Jupyter Event System library"
+HOMEPAGE="
+ https://jupyter.org/
+ https://github.com/jupyter/jupyter_events/
+ https://pypi.org/project/jupyter-events/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+# jsonschema[format-nongpl] deps are always on in our ebuild
+RDEPEND="
+ >=dev-python/jsonschema-4.18.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/python-json-logger-2.0.4[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.3[${PYTHON_USEDEP}]
+ dev-python/referencing[${PYTHON_USEDEP}]
+ >=dev-python/traitlets-5.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/pytest-console-scripts[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+# TODO: package jupyterlite-sphinx
+# distutils_enable_sphinx docs
+distutils_enable_tests pytest
diff --git a/dev-python/libtmux/Manifest b/dev-python/libtmux/Manifest
index 7d6c8f9b0b01..f4cca2e0fe6b 100644
--- a/dev-python/libtmux/Manifest
+++ b/dev-python/libtmux/Manifest
@@ -4,3 +4,4 @@ DIST libtmux-0.38.1.gh.tar.gz 304345 BLAKE2B f4380c813b57045cc8dcf4ad18124bcd2aa
DIST libtmux-0.39.0.gh.tar.gz 314113 BLAKE2B cfba4cf12fd2418bb917ade6f927eb905dcc767bc7554ae08f86958c0f0ca25548f0b9d90375ab80de726436bfa5032a5df2da763cc5114849f38cbbe9331565 SHA512 7e180a63e195698e540a581fa8f7dc292e8e4db830a87bbdc859d910313d1d3351886759d3198f088f047d51e993fe6ce4c8f16304edc68681c2fa6a9348bba6
DIST libtmux-0.40.0.gh.tar.gz 317064 BLAKE2B e3658560a789aa823faf2ff29cca3a0604ebe20b64ce0432359852738ae87280a87e7411ec73283e389a23b31da9da1f435b930bcf0cd250d3b455031669a535 SHA512 15187225ab8a31a04f7d6a3d036c5df133779fc73891782abce694c8a364babc0d19af1290a06dfa6939b61028a2620499551a0b2a9fccf0f7c3067868eb98c1
DIST libtmux-0.40.1.gh.tar.gz 318542 BLAKE2B 5b9e383a3c07bab3af7c25adcf5db1c6acf1c108a2508aa2de5f6c2db64f1e365829c69299568c39a19a7c18aa773b14033aa0c48087d0d1bcf180377df558f6 SHA512 6e4f0d13b375ca1b2c2f6e7c6aaad6d420927c8d55a2f27e7912738a58a7e9f0db67c84936ccff32c9557ebe1f3ac335e779b293466eaab9333a0e3fb4a4b10e
+DIST libtmux-0.42.0.gh.tar.gz 318655 BLAKE2B 5d462bd78e81bd38cfb0c42a2100287fc79b9fe31aaeccbac5c9fd124afc2df9da4ceb5cd469de1919df2995c27d4c0628629004938795b6f8731e84c23ed2bc SHA512 38e7c21bd99859add1737a1028c18852a564a2d32c27b72ea37d623bcbc0646b095ad4dd520385c11d6df4c779429ac452f6ae592a6d0ffcb4fe64bf2a4388b3
diff --git a/dev-python/libtmux/libtmux-0.42.0.ebuild b/dev-python/libtmux/libtmux-0.42.0.ebuild
new file mode 100644
index 000000000000..857888d8e1e0
--- /dev/null
+++ b/dev-python/libtmux/libtmux-0.42.0.ebuild
@@ -0,0 +1,56 @@
+# 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_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Typed library that provides an ORM wrapper for tmux, a terminal multiplexer"
+HOMEPAGE="
+ https://libtmux.git-pull.com/
+ https://github.com/tmux-python/libtmux/
+ https://pypi.org/project/libtmux/
+"
+SRC_URI="
+ https://github.com/tmux-python/libtmux/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=app-misc/tmux-3.0a
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ local issues="https://github.com/tmux-python/libtmux/issues/"
+ sed -r -i "s|:issue:\`([[:digit:]]+)\`|\`issue \1 ${issues}\1\`|" CHANGES || die
+
+ # increase timeouts for tests
+ sed -e 's/0.01/0.1/' -i tests/test_test.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ # tests/test_window.py::test_fresh_window_data fails if TMUX_PANE is set
+ # https://bugs.gentoo.org/927158
+ local -x TMUX_PANE=
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=libtmux.pytest_plugin
+
+ epytest -o addopts= -p pytest_mock -p rerunfailures --reruns=5 tests
+}
diff --git a/dev-python/marshmallow/Manifest b/dev-python/marshmallow/Manifest
index fb056b7c0119..d04f46870f67 100644
--- a/dev-python/marshmallow/Manifest
+++ b/dev-python/marshmallow/Manifest
@@ -1,2 +1,3 @@
DIST marshmallow-3.25.1.tar.gz 217295 BLAKE2B 73f6b1e7430f44bc3ea70c35ae5f5a3d219d6a89b53785ab7c32ec223714cd085822f3f41fef10e5af602ae64fab26d67ba49c2f7ef1f3ac24e8c406e3e18ff1 SHA512 7f67ec90ce4b8933d8e6b3aaac66de314d249b314cde85c2489644271426624136334daaea4aabfda638cb156bcbaf685c9a10e5fd7ecd7f008a0d4bd5a6a72d
DIST marshmallow-3.26.0.tar.gz 221490 BLAKE2B 72421900002e9c2793c3f27aacbad514d75247e6af6429deec5f9eb7a9ea46c1d2c4d393b43d4ec129b7dfdd60dcde1deeed63ca6851a909f511eb60863f94cd SHA512 6419da36379a5f62978bb66b2b0f12d22dac5b6898ef04c062f529b4327bea9de8ad004325a33a3af035d066e34a6c4ba0f5621388420450023b69cc0a8f9b41
+DIST marshmallow-3.26.1.tar.gz 221825 BLAKE2B 37ac0cb401efd046070a406cfbbfb130020dcd0f60e8244f8734b28b9c1a3c151d8550016fb54d83861dd61f7d60c6157469fa575e2df1474f45e70bed7b8cd4 SHA512 b0146313010d03d7c5e4808bfb274e2923df455c34e5d31931a35b76c713dd1e403fdb0da95ba4f0eba3bdb747a57c4f85f296aad870170380e4d54fc6824d1e
diff --git a/dev-python/marshmallow/marshmallow-3.26.1.ebuild b/dev-python/marshmallow/marshmallow-3.26.1.ebuild
new file mode 100644
index 000000000000..1fe5c6c67a45
--- /dev/null
+++ b/dev-python/marshmallow/marshmallow-3.26.1.ebuild
@@ -0,0 +1,32 @@
+# 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 pypi
+
+DESCRIPTION="A library for converting to and from native Python datatypes"
+HOMEPAGE="
+ https://github.com/marshmallow-code/marshmallow/
+ https://pypi.org/project/marshmallow/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-17.0[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/simplejson[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/matplotlib/matplotlib-3.10.0.ebuild b/dev-python/matplotlib/matplotlib-3.10.0.ebuild
index 87ccd8a53ba1..968252eb6fa6 100644
--- a/dev-python/matplotlib/matplotlib-3.10.0.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.10.0.ebuild
@@ -78,7 +78,7 @@ RDEPEND="
$(python_gen_cond_dep '
|| (
dev-python/pyqt6[gui,widgets,${PYTHON_USEDEP}]
- dev-python/pyside6[gui,widgets,${PYTHON_USEDEP}]
+ dev-python/pyside:6[gui,widgets,${PYTHON_USEDEP}]
)
' 'python3*')
)
diff --git a/dev-python/mkdocs-material/Manifest b/dev-python/mkdocs-material/Manifest
index 7d1a0454cbe3..1b688d96d72b 100644
--- a/dev-python/mkdocs-material/Manifest
+++ b/dev-python/mkdocs-material/Manifest
@@ -1,2 +1,3 @@
DIST mkdocs-material-9.5.50.gh.tar.gz 14753521 BLAKE2B 3d4b98bdd89d3e106f5cbd78b4deb639164991da1adb5b0dc141c7feb1b07a08466daba7793e3cc46b7db5c26bb6c46ebe3635dfc4e9f943318eff829eced6e8 SHA512 1a24b97deb43e92de7ffac52f7b3a1139f26ae112e6a9218d1a31ac8f07e250bfd0905b95d3d01f3ad5daf12246b4aa98d852fac3cecc7e5dc60b1337b820ec7
DIST mkdocs-material-9.6.1.gh.tar.gz 14796273 BLAKE2B 3dd42a064c50149a5ec0b45594f7136825145c6f279373856fd3cb426eaf71a867c1e63ad30b108145e76cf90ad04f4b0663094adfec46abb345014b39289ebd SHA512 ac2a6815b1d934ef47d292acefabaf7d63424033800325b8fbbe8bd6812a167777e810dd6a9b6431614434b0fcba8f316f96b876f12796ec6688c3078bd3eaa7
+DIST mkdocs-material-9.6.2.gh.tar.gz 14915916 BLAKE2B fd849ff8c14c8bd865c04d205af221cf294499e65359558a7d227258dfd2fa4b5b4978eb54f4f31310473b25e9ebf2cad9cc9e9ba6695712c651ac14064822cf SHA512 7de7a8ef0b1904598071996e5e858849a37fb48e1d1339560e59ab4ff09146ae4001ae7357c1974aa3d9eb103394a6cd27e177b028753224564a80e277733e9f
diff --git a/dev-python/mkdocs-material/mkdocs-material-9.6.2.ebuild b/dev-python/mkdocs-material/mkdocs-material-9.6.2.ebuild
new file mode 100644
index 000000000000..09a2daf59272
--- /dev/null
+++ b/dev-python/mkdocs-material/mkdocs-material-9.6.2.ebuild
@@ -0,0 +1,67 @@
+# 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_{9,10,11,12,13} )
+
+DOCS_BUILDER="mkdocs"
+DOCS_DEPEND="
+ dev-python/mkdocs-material-extensions
+ dev-python/mkdocs-minify-plugin
+ dev-python/mkdocs-redirects
+"
+
+inherit distutils-r1 docs
+
+DESCRIPTION="A Material Design theme for MkDocs"
+HOMEPAGE="
+ https://github.com/squidfunk/mkdocs-material/
+ https://pypi.org/project/mkdocs-material/
+"
+SRC_URI="
+ https://github.com/squidfunk/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="social"
+
+RDEPEND="
+ >=dev-python/babel-2.10.3[${PYTHON_USEDEP}]
+ >=dev-python/colorama-0.4[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-3.0.2[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.6[${PYTHON_USEDEP}]
+ >=dev-python/markdown-3.2[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-1.5.3[${PYTHON_USEDEP}]
+ >=dev-python/paginate-0.5.6[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.16[${PYTHON_USEDEP}]
+ >=dev-python/pymdown-extensions-10.2[${PYTHON_USEDEP}]
+ >=dev-python/readtime-2.0[${PYTHON_USEDEP}]
+ >=dev-python/regex-2022.4.24[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.26[${PYTHON_USEDEP}]
+ social? (
+ >=dev-python/pillow-10.2[${PYTHON_USEDEP}]
+ >=media-gfx/cairosvg-2.5[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ >=dev-python/trove-classifiers-2023.10.18[${PYTHON_USEDEP}]
+"
+# mkdocs-material-extensions depends on mkdocs-material creating a circular dep
+PDEPEND="
+ >=dev-python/mkdocs-material-extensions-1.2[${PYTHON_USEDEP}]
+"
+
+PATCHES=(
+ # simplify pyproject to remove extra deps for metadata
+ "${FILESDIR}/${PN}-8.5.7-simplify-build.patch"
+)
+
+src_prepare() {
+ echo "__version__ = '${PV}'" > gentoo_version.py || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/mkdocstrings-python/Manifest b/dev-python/mkdocstrings-python/Manifest
index ec1378ccf7f8..6d2b276224e8 100644
--- a/dev-python/mkdocstrings-python/Manifest
+++ b/dev-python/mkdocstrings-python/Manifest
@@ -1,2 +1,2 @@
-DIST mkdocstrings_python-1.12.2.tar.gz 168207 BLAKE2B 4173a83b118f02f6d1c930aab1ef7d59f6108e73db6e5ac8f541f4d45203b0ffac7896ee4c97cca677f910dad5cf9de65bf755263fd82aadff83f75ebb05396e SHA512 19d7bcf21ab9e92be69dbb410d544c46f14bab6b2f02ad26c31a77c2aa2929c5e0044406c1a90a2bab2f27effc4bec84b4871ce9c8c3c4503773b11db1c856af
DIST mkdocstrings_python-1.13.0.tar.gz 185697 BLAKE2B e3ab2da319147a9c28bb8df7074ab6fa61616fd950bc522b9711e23ab3f0d5f6c50ee82ce193e8b4051fdfe7ce1ae110617acc89a045acf73b49c4afe0fd05a3 SHA512 0414a09000a09515e5da1d8ea5a9cd59fa405de0de15a5c225ab57cc2280f47e7bf11196d6f41bb9626c5dd632cf37000f59cc4e156c7c061c8b46fca1563d05
+DIST mkdocstrings_python-1.14.3.tar.gz 421258 BLAKE2B 2b4ae390fcc50f3fbc1ad14686af5b19b800387b6f7668a362b09bb53e43af59d1bfd44d4dd9fef93899ce6313abeec30d775104fdbbad4da018592bbe30d20b SHA512 69444e7a69f604e78a8df264ac2205ac29285871a342c2ff620f6e411112267fcd226c445acd2787d516febac442aa64349742652363651fa82430ec279fa129
diff --git a/dev-python/mkdocstrings-python/mkdocstrings-python-1.12.2.ebuild b/dev-python/mkdocstrings-python/mkdocstrings-python-1.14.3.ebuild
index e0cab3a4c2aa..e898c0c421e0 100644
--- a/dev-python/mkdocstrings-python/mkdocstrings-python-1.12.2.ebuild
+++ b/dev-python/mkdocstrings-python/mkdocstrings-python-1.14.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,11 +21,16 @@ KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
>=dev-python/griffe-0.49[${PYTHON_USEDEP}]
- >=dev-python/mkdocstrings-0.26.0[${PYTHON_USEDEP}]
+ >=dev-python/mkdocstrings-0.28[${PYTHON_USEDEP}]
>=dev-python/mkdocs-autorefs-1.2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
+ ' 3.10)
"
BDEPEND="
test? (
+ >=dev-python/beautifulsoup4-4.12.3[${PYTHON_USEDEP}]
+ >=dev-python/inline-snapshot-0.18[${PYTHON_USEDEP}]
dev-python/mkdocs-material[${PYTHON_USEDEP}]
)
"
@@ -33,3 +38,14 @@ BDEPEND="
distutils_enable_tests pytest
export PDM_BUILD_SCM_VERSION=${PV}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # "None" meaning particular formatter not installed
+ "tests/test_rendering.py::test_format_code[None-print('Hello')]"
+ "tests/test_rendering.py::test_format_code[None-aaaaa(bbbbb, ccccc=1) + ddddd.eeeee[ffff] or {ggggg: hhhhh, iiiii: jjjjj}]"
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p inline_snapshot
+}
diff --git a/dev-python/mkdocstrings/Manifest b/dev-python/mkdocstrings/Manifest
index 0333ab0c01a4..ec1b45b9b3fb 100644
--- a/dev-python/mkdocstrings/Manifest
+++ b/dev-python/mkdocstrings/Manifest
@@ -1 +1,2 @@
DIST mkdocstrings-0.26.2.tar.gz 92512 BLAKE2B e2ca2ba4d5a8916cdb77efb0db6c0fdc5f8969b27f4b0b5b199873a62c85150b5a0dde45797b48d297e08f9e082c9c5329084feb15379ae0a16821ac11aa3fed SHA512 7ea34df4204ae82faa19ddaf81a073152c57d9ef7f55f8935c1eb1b244ebc6ed749d853c72fd28e69ee5e1aa12ae7a2e4b6fff4f9965856a837d15dd0e2cc11e
+DIST mkdocstrings-0.28.0.tar.gz 3392797 BLAKE2B 9484110f80fa85602f64acd04941db1cebf2ff39d4385559f340d3837347fb51f596b7444e1d5efa26018cf8cfba200892b938c298d76ac169beb67c520b66a4 SHA512 a1dece5b99b4f82faa8b1c02a764252df7102c4e72489cff009388cb90833339c9170517373df7e449df311a5ab7dc4d19821e15a99f295065222db0809379ce
diff --git a/dev-python/mkdocstrings/mkdocstrings-0.28.0.ebuild b/dev-python/mkdocstrings/mkdocstrings-0.28.0.ebuild
new file mode 100644
index 000000000000..d012f2909764
--- /dev/null
+++ b/dev-python/mkdocstrings/mkdocstrings-0.28.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Automatic documentation from sources, for MkDocs"
+HOMEPAGE="
+ https://mkdocstrings.github.io/
+ https://github.com/mkdocstrings/mkdocstrings/
+ https://pypi.org/project/mkdocstrings/
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/jinja2-2.11.1[${PYTHON_USEDEP}]
+ >=dev-python/markdown-3.6[${PYTHON_USEDEP}]
+ >=dev-python/markupsafe-1.1[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-autorefs-1.3[${PYTHON_USEDEP}]
+ >=dev-python/mkdocs-get-deps-0.2[${PYTHON_USEDEP}]
+ >=dev-python/pymdown-extensions-6.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/markdown-exec[${PYTHON_USEDEP}]
+ dev-python/mkdocs-material[${PYTHON_USEDEP}]
+ dev-python/mkdocstrings-python[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ )
+"
+
+# mkdocstrings documentation generation requires several currently
+# unpackaged mkdocs extensions and plug-ins, and this test
+# makes use of mkdocs configuration
+EPYTEST_DESELECT=(
+ tests/test_plugin.py::test_disabling_plugin
+ # WTF, it tries to unlink installed files from installed package?!
+ tests/test_handlers.py::test_extended_templates
+ # Needs unpackaged mkdocs-callouts, mkdocs-literate-nav, and possibly more
+ tests/test_inventory.py::test_sphinx_load_mkdocstrings_inventory_file
+ # Internet
+ tests/test_inventory.py::test_load_inventory
+)
+
+distutils_enable_tests pytest
+
+export PDM_BUILD_SCM_VERSION=${PV}
diff --git a/dev-python/nuitka/Manifest b/dev-python/nuitka/Manifest
index 560ed38e8cf6..3fea288609e3 100644
--- a/dev-python/nuitka/Manifest
+++ b/dev-python/nuitka/Manifest
@@ -1,3 +1,4 @@
DIST Nuitka-2.6.1.tar.gz 3862941 BLAKE2B aab569ff14d69e48120957b822380a228d0109066fbef41e791c1f13181eba4fc4bfd2b0707888edd55a55cc700fc6eabc79ff8acaf7538a120f70318006fb2d SHA512 73143cdcba2474a0bdbd818726a6529216214efd02bb04876de06b2b30a1ffe380c080da1a9c573556443a6488fd1955e1c52fe3566c87ff4764f64af98fe852
DIST Nuitka-2.6.2.tar.gz 3865407 BLAKE2B 6cc4d00e19e8fd59f01f33f145077bfe302552a8f1d922b05c99ee28073a4cf92134ecdfd481b1fedf7cf24f28cf3416495b19d2c242a35983bf96266f62b2cf SHA512 84629c9f611a9d731231c1572ea4c91068067d1935ac2dbbfaa871c6c289bfd32aaa194e46dd461f1a3c4803eb13ca6dbaf610e3aab0bc83a9d1222c28a61509
+DIST Nuitka-2.6.3.tar.gz 3867473 BLAKE2B 77d6d173c130166b26a8cce7ce9b21658f832d86f99022bb43057d8e535d085fabecc0f4541d60eb3fc7b3c6c7785b87d7af789e2d05692408a2e6d9e0550859 SHA512 5e31812dc5351afeb8a172bb3a3b46133d34e8a569940182abe439adb929f6eb810ffdef6b50312e7a5645b97c3b7ec71f5c180ddfc4981b9f4445dc329812e7
DIST Nuitka-2.6.tar.gz 3858229 BLAKE2B 810f99da2560a302366cd2f9729fcbd1e4a0b4429cba3d4b4b43e70c91619afa8f3f4f73bf19282e246c2ec4ffbf468df8206ed3acbac09148f5302c5b67a3d9 SHA512 5194614cc8de3d3fa0f8be3769f0fb6e10b6c6f1bd45e5be0b09e96774a6a0cbe6938f6c66f903b23ad4cb480d7557aa69d14a4b8a659d12e33859f215e9a1f7
diff --git a/dev-python/nuitka/nuitka-2.6.3.ebuild b/dev-python/nuitka/nuitka-2.6.3.ebuild
new file mode 100644
index 000000000000..c97d7f3c6ae8
--- /dev/null
+++ b/dev-python/nuitka/nuitka-2.6.3.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 flag-o-matic optfeature pypi
+
+DESCRIPTION="Python to native compiler"
+HOMEPAGE="
+ https://nuitka.net/
+ https://github.com/Nuitka/Nuitka/
+ https://pypi.org/project/Nuitka/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-build/scons[${PYTHON_USEDEP}]
+ >=dev-python/ordered-set-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/zstandard-0.15[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? ( dev-util/ccache )
+"
+
+distutils-r1_src_prepare() {
+ # remove vendored version of SCons that is Python2 only
+ # this should be removed when upstream removes support for Python2
+ rm -vR "nuitka/build/inline_copy/lib/scons-2.3.2/SCons" || die
+ eapply_user
+}
+
+python_install() {
+ distutils-r1_python_install
+ doman doc/nuitka.1 doc/nuitka-run.1
+}
+
+python_test() {
+ append-ldflags -Wl,--no-warn-search-mismatch
+ ./tests/basics/run_all.py search || die
+}
+
+pkg_postinst() {
+ optfeature "support for stand-alone executables" dev-util/patchelf
+}
diff --git a/dev-python/orderly-set/Manifest b/dev-python/orderly-set/Manifest
index 66df53048a91..bb75d3fee115 100644
--- a/dev-python/orderly-set/Manifest
+++ b/dev-python/orderly-set/Manifest
@@ -1,2 +1,2 @@
-DIST orderly-set-5.2.2.gh.tar.gz 21460 BLAKE2B 5660d7550d5c79351fcc66e611ba776d6340d0fc1f3a5344f308cbc00a7b2c47045a1cfe8c6ac76c7976a65b17953362e91d60d87a7fbb02f36a5d67f074dfe9 SHA512 d480677c04f32e69cc9361dff383765fe2c9df971ad77cdcbab3b650a0bad27b9bd99144cd406d5185440d674bc838acb1c2ba3a4b115fcff2eba34c19589637
DIST orderly_set-5.2.3.tar.gz 19698 BLAKE2B 32366c106f0cd71e80f4c4d2278f6590f497ad70962eec96bb67f1cceefed5bb401408093416c8a7adc97eed333cdc657e542608581e11064581cb3d6fe613c7 SHA512 6c64086de55c6152056d8f92e35273865bc94616b90e1c56f4c88e94d6e9d39759f76d4ff57000d87abccb4ddc8faf441a71253d2b94bb9718d35b7a95342ddb
+DIST orderly_set-5.3.0.tar.gz 20026 BLAKE2B fa5f2e190d9f2ed079e16c45cf60044ba57ddaca875ae70f71a98055bf36053410985db762fbdafb94d7d9faeff906a3e240462267363f15f2f334d96ff852a8 SHA512 b7520653bf23c99ab124bde8b9e34f0c9eb14192eb09b2bfc9736b281f1c5d511964849496fe74c8f35d1000ba5857578906dbf47b581007bdfb81c9bd88c81a
diff --git a/dev-python/orderly-set/orderly-set-5.2.2.ebuild b/dev-python/orderly-set/orderly-set-5.3.0.ebuild
index 8ba07d7a2433..0b923c93070a 100644
--- a/dev-python/orderly-set/orderly-set-5.2.2.ebuild
+++ b/dev-python/orderly-set/orderly-set-5.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2024 Gentoo Authors
+# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,19 +6,13 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="A package containing multiple implementations of Ordered Set"
HOMEPAGE="
https://github.com/seperman/orderly-set/
https://pypi.org/project/orderly-set/
"
-# incomplete test directory
-# https://github.com/seperman/orderly-set/pull/3
-SRC_URI="
- https://github.com/seperman/orderly-set/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
LICENSE="MIT"
SLOT="0"
diff --git a/dev-python/paramiko/Manifest b/dev-python/paramiko/Manifest
index 15f6586be32e..e8b782900112 100644
--- a/dev-python/paramiko/Manifest
+++ b/dev-python/paramiko/Manifest
@@ -1 +1,2 @@
DIST paramiko-3.5.0.gh.tar.gz 376242 BLAKE2B 3080669e8b0d60e5b2e5aea390dc4f5f8d19ff32441d13b4e319892d1566f3fc76df714c0a063932e5077de08cd66ccf1140ac96bcb6e1c8e801c1377923aece SHA512 933a63c511fcd0a5a159faf2a9dfddbb44368ba923ea892aa1bf8dbe296777f3caedff27560113cfb15576812b994a59007caac8f297b24e70c79505f88c7d9f
+DIST paramiko-3.5.1.gh.tar.gz 376472 BLAKE2B e00c0e1ab62eb443b3dfb5b1ebfacb9ac2f0f7e4946dcb986f8a211c22e645acd6d96ceaf709a954bf1f1554e8ce57ea1c6269984184025de39d9d9c4ff909d9 SHA512 a1198f7f21cfbdbb843acb59cc431f9af0a47d687a7e9702244f36b555bb37b75149c0e22302040400f20df50dee1d83154e5acd582982ca44f6cf68ff592675
diff --git a/dev-python/paramiko/paramiko-3.5.1.ebuild b/dev-python/paramiko/paramiko-3.5.1.ebuild
new file mode 100644
index 000000000000..8435da23a1ad
--- /dev/null
+++ b/dev-python/paramiko/paramiko-3.5.1.ebuild
@@ -0,0 +1,72 @@
+# 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
+
+DESCRIPTION="SSH2 protocol library"
+HOMEPAGE="
+ https://www.paramiko.org/
+ https://github.com/paramiko/paramiko/
+ https://pypi.org/project/paramiko/
+"
+SRC_URI="
+ https://github.com/paramiko/paramiko/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="examples server"
+
+RDEPEND="
+ >=dev-python/bcrypt-3.1.3[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-2.5[${PYTHON_USEDEP}]
+ >=dev-python/pynacl-1.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # upstream doesn't really maintain the gssapi support
+ tests/test_gssapi.py
+ tests/test_kex_gss.py
+ tests/test_ssh_gss.py
+)
+
+src_prepare() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-3.2.0-nih-test-deps.patch"
+ )
+
+ if ! use server; then
+ PATCHES+=( "${FILESDIR}/${PN}-3.2.0-disable-server.patch" )
+ fi
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p rerunfailures --reruns=5
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ docinto examples
+ dodoc -r demos/*
+ fi
+}
diff --git a/dev-python/pyside6/Manifest b/dev-python/pyside/Manifest
index 68e216d91778..f8b5c86f4f41 100644
--- a/dev-python/pyside6/Manifest
+++ b/dev-python/pyside/Manifest
@@ -1,2 +1,3 @@
DIST pyside-pyside-setup-6.8.1.1.gh.tar.gz 18699613 BLAKE2B 2c16f305a746106edc770c267900b31fe480b167a615adc82496e0604cc618982bb787a0c173b069c258749364d7d2cac900d8d8b82244fc3b916744b7339537 SHA512 bd258be6e4c5f0b6b4bbdf8887e5f8ab16a90117deb00f9c46c4acb7f6bbcc36fb9f6b6e7c201403556e0ee269947a5f5b2611ff1b05e48f231f81b1eeac7bce
DIST pyside-pyside-setup-6.8.1.gh.tar.gz 18700869 BLAKE2B 5924f8ffc3e5a4f15442af9191b0531ee9f509595d41ae2759b94c2a7f8d7e08f4a70f9c7fff07f11c5252afb77084dc21ca3b22762d6c8dd66f4fca5944c9f2 SHA512 941844b1f6711859add828cbefe7c39497d45f0936f970f3050631294ed3bfe88d9d7b827a81d61ba3efbbf7920daef6ea6c28fa9c78f8e672d68b8bd3fbb2ad
+DIST pyside-pyside-setup-6.8.2.gh.tar.gz 19305680 BLAKE2B d4da8ec63d35714bf4418cdc9ff5921fe554c1635a7c5c467657b64c2140208b4bba57fc9932f0f96426e1d15c124209b0b29eb9340261d34eed194128a03545 SHA512 30691d27afaeaa3117e68b60745918d9697c8d9e4ee8941eaab51995cb5128c56d44964511f2db731f448bf32219160032e4a4cd4773d3fccc4de8c0e509d1c1
diff --git a/dev-python/pyside6/files/pyside6-6.3.1-no-strip.patch b/dev-python/pyside/files/pyside-6.3.1-no-strip.patch
index 9f3a8c396f05..9f3a8c396f05 100644
--- a/dev-python/pyside6/files/pyside6-6.3.1-no-strip.patch
+++ b/dev-python/pyside/files/pyside-6.3.1-no-strip.patch
diff --git a/dev-python/pyside6/files/pyside6-6.6.0-no-qtexampleicons.patch b/dev-python/pyside/files/pyside-6.6.0-no-qtexampleicons.patch
index f775310504f4..f775310504f4 100644
--- a/dev-python/pyside6/files/pyside6-6.6.0-no-qtexampleicons.patch
+++ b/dev-python/pyside/files/pyside-6.6.0-no-qtexampleicons.patch
diff --git a/dev-python/pyside/files/pyside-6.8.2-no-qtexampleicons.patch b/dev-python/pyside/files/pyside-6.8.2-no-qtexampleicons.patch
new file mode 100644
index 000000000000..29adbe25d479
--- /dev/null
+++ b/dev-python/pyside/files/pyside-6.8.2-no-qtexampleicons.patch
@@ -0,0 +1,10 @@
+diff --git a/sources/pyside6/CMakeLists.txt b/sources/pyside6/CMakeLists.txt
+index 2e4c701..6792258 100644
+--- a/sources/pyside6/CMakeLists.txt
++++ b/sources/pyside6/CMakeLists.txt
+@@ -41,5 +41,3 @@ if(BUILD_TESTS)
+ endif()
+
+ add_subdirectory(doc)
+-
+-add_subdirectory(qtexampleicons)
diff --git a/dev-python/pyside/files/pyside-6.8.2-quick-fix-build-wheel.patch b/dev-python/pyside/files/pyside-6.8.2-quick-fix-build-wheel.patch
new file mode 100644
index 000000000000..7cf0f46e87b1
--- /dev/null
+++ b/dev-python/pyside/files/pyside-6.8.2-quick-fix-build-wheel.patch
@@ -0,0 +1,17 @@
+diff --git a/build_scripts/wheel_override.py b/build_scripts/wheel_override.py
+index b389bb8..71de230 100644
+--- a/build_scripts/wheel_override.py
++++ b/build_scripts/wheel_override.py
+@@ -20,9 +20,9 @@ try:
+
+ from packaging import tags
+ from wheel import __version__ as wheel_version
+- from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
+- from wheel.bdist_wheel import get_abi_tag, get_platform
+- from wheel.bdist_wheel import safer_name as _safer_name
++ from wheel._bdist_wheel import bdist_wheel as _bdist_wheel
++ from wheel._bdist_wheel import get_abi_tag, get_platform
++ from wheel._bdist_wheel import safer_name as _safer_name
+
+ wheel_module_exists = True
+ except Exception as e:
diff --git a/dev-python/pyside6/metadata.xml b/dev-python/pyside/metadata.xml
index 765f9555d14d..5b35e71c685f 100644
--- a/dev-python/pyside6/metadata.xml
+++ b/dev-python/pyside/metadata.xml
@@ -15,6 +15,7 @@
<flag name="bluetooth">Build QtBluetooth module</flag>
<flag name="charts">Build QtCharts module</flag>
<flag name="concurrent">Build QtConcurrent module</flag>
+ <flag name="core">Build QtCore module, if disable then only shiboken will be built</flag>
<flag name="designer">Build QtDesigner and QtUiTools modules</flag>
<flag name="gles2-only">Build QtGui "QOpenGL*" classes</flag>
<flag name="gui">Build QtGui module</flag>
@@ -25,6 +26,7 @@
<flag name="network">Build QtNetwork module</flag>
<flag name="network-auth">Build QtNetworkAuth module</flag>
<flag name="nfc">Build QtNfc module</flag>
+ <flag name="numpy">Build with support for <pkg>dev-python/numpy</pkg></flag>
<flag name="pdfium">Build QtPdf module</flag>
<flag name="positioning">Build QtPositioning module</flag>
<flag name="printsupport">Build QtPrintSupport module</flag>
@@ -33,6 +35,7 @@
<flag name="quick3d">Build QtQuick3D and QtQuickWidgets modules</flag>
<flag name="scxml">Build QtScxml module</flag>
<flag name="sensors">Build QtSensors module</flag>
+ <flag name="serialbus">Build QtSerialBus modules</flag>
<flag name="serialport">Build QtSerialPort modules</flag>
<flag name="spatialaudio">Build QtSpatialAudio module</flag>
<flag name="speech">Build QtTextToSpeech module</flag>
@@ -40,10 +43,12 @@
<flag name="svg">Build QtSvg module</flag>
<flag name="remoteobjects">Build QtRemoteObjects module</flag>
<flag name="testlib">Build QtTest module</flag>
+ <flag name="tools">Build PySide Tools</flag>
<flag name="uitools">Build UITools module</flag>
<flag name="webchannel">Build QtWebChannel module</flag>
<flag name="webengine">Build QtWebEngine and QtWebEngineWidgets modules</flag>
<flag name="websockets">Build QtWebSockets module</flag>
+ <flag name="webview">Build QtWebView module</flag>
<flag name="widgets">Build QtWidgets module</flag>
<flag name="xml">Build QtXml module</flag>
</use>
diff --git a/dev-python/pyside6/pyside6-6.8.1.1.ebuild b/dev-python/pyside/pyside-6.8.1.1.ebuild
index a1f9754f47ba..80c36e09dccc 100644
--- a/dev-python/pyside6/pyside6-6.8.1.1.ebuild
+++ b/dev-python/pyside/pyside-6.8.1.1.ebuild
@@ -124,7 +124,7 @@ RDEPEND="${PYTHON_DEPS}
)
)
websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
- !dev-python/pyside6:0
+ !dev-python/pyside:0
"
DEPEND="${RDEPEND}
$(llvm_gen_dep '
@@ -234,12 +234,12 @@ src_install() {
# file for the current Python target. See also:
# https://github.com/leycec/raiagent/issues/73
sed -i -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
- "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}.pc || die
+ "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}6.pc || die
# Uniquify the PySide6 pkgconfig file for the current Python target,
# preserving an unversioned "pyside6.pc" file arbitrarily associated
# with the last Python target. (See the previously linked issue.)
- cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}6{,-${EPYTHON}}.pc || die
}
python_foreach_impl pyside6_install
diff --git a/dev-python/pyside6/pyside6-6.8.1.ebuild b/dev-python/pyside/pyside-6.8.1.ebuild
index cc7c604b63b5..b0ae0945d07e 100644
--- a/dev-python/pyside6/pyside6-6.8.1.ebuild
+++ b/dev-python/pyside/pyside-6.8.1.ebuild
@@ -124,7 +124,7 @@ RDEPEND="${PYTHON_DEPS}
)
)
websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
- !dev-python/pyside6:0
+ !dev-python/pyside:0
"
DEPEND="${RDEPEND}
$(llvm_gen_dep '
@@ -234,12 +234,12 @@ src_install() {
# file for the current Python target. See also:
# https://github.com/leycec/raiagent/issues/73
sed -i -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
- "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}.pc || die
+ "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}6.pc || die
# Uniquify the PySide6 pkgconfig file for the current Python target,
# preserving an unversioned "pyside6.pc" file arbitrarily associated
# with the last Python target. (See the previously linked issue.)
- cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}6{,-${EPYTHON}}.pc || die
}
python_foreach_impl pyside6_install
diff --git a/dev-python/pyside/pyside-6.8.2.ebuild b/dev-python/pyside/pyside-6.8.2.ebuild
new file mode 100644
index 000000000000..3887bd49793a
--- /dev/null
+++ b/dev-python/pyside/pyside-6.8.2.ebuild
@@ -0,0 +1,440 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+LLVM_COMPAT=( {15..19} )
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+
+inherit distutils-r1 llvm-r1 qmake-utils virtualx
+
+MY_PN=pyside-pyside-setup
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+SRC_URI="https://github.com/qtproject/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${MY_P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( GPL-2 GPL-3 LGPL-3 )"
+SLOT="6/${PV}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+
+# 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"
+ ["widgets"]="gui"
+ ["xml"]="core"
+)
+
+IUSE="${!QT_MODULES[@]} debug doc gles2-only numpy test tools"
+RESTRICT="!test? ( test )"
+
+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]
+ )
+ 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-tool
+"
+
+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-util/patchelf
+ doc? (
+ >=dev-libs/libxml2-2.6.32
+ >=dev-libs/libxslt-1.1.19
+ media-gfx/graphviz
+ )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+"
+
+PATCHES=(
+ # Needs porting to newer wheel and setuptools
+ "${FILESDIR}/${PN}-6.8.2-quick-fix-build-wheel.patch"
+ # References files not present in our dev-qt/qtbase
+ "${FILESDIR}/${PN}-6.8.2-no-qtexampleicons.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
+}
+
+python_configure_all() {
+ 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="${EPREFIX}/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
+ --verbose-build
+ $(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")
+ )
+}
+
+python_compile() {
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --build-type=shiboken6
+ )
+ distutils-r1_python_compile
+ DISTUTILS_ARGS=(
+ "${MAIN_DISTUTILS_ARGS[@]}"
+ --reuse-build
+ --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="$(find "${BUILD_DIR}/build" -type d -name cmake)/../../"
+ --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/*/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/*/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() {
+ virtx ${EPYTHON} testrunner.py test || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/pyside6-tools/pyside6-tools-6.8.1.1.ebuild b/dev-python/pyside6-tools/pyside6-tools-6.8.1.1.ebuild
index e5766fac58ad..644b792e5ea9 100644
--- a/dev-python/pyside6-tools/pyside6-tools-6.8.1.1.ebuild
+++ b/dev-python/pyside6-tools/pyside6-tools-6.8.1.1.ebuild
@@ -29,7 +29,7 @@ QT_PV="$(ver_cut 1-3)*:6"
RDEPEND="${PYTHON_DEPS}
~dev-python/shiboken6-${PV}[${PYTHON_USEDEP},${LLVM_USEDEP}]
- ~dev-python/pyside6-${PV}[quick,${PYTHON_USEDEP},${LLVM_USEDEP}]
+ ~dev-python/pyside-${PV}[quick,${PYTHON_USEDEP},${LLVM_USEDEP}]
!dev-python/pyside6-tools:0
"
DEPEND="${RDEPEND}
diff --git a/dev-python/pyside6-tools/pyside6-tools-6.8.1.ebuild b/dev-python/pyside6-tools/pyside6-tools-6.8.1.ebuild
index 1b7ed900fcbe..689a664ba0f6 100644
--- a/dev-python/pyside6-tools/pyside6-tools-6.8.1.ebuild
+++ b/dev-python/pyside6-tools/pyside6-tools-6.8.1.ebuild
@@ -29,7 +29,7 @@ QT_PV="$(ver_cut 1-3)*:6"
RDEPEND="${PYTHON_DEPS}
=dev-python/shiboken6-${QT_PV}[${PYTHON_USEDEP},${LLVM_USEDEP}]
- =dev-python/pyside6-${QT_PV}[quick,${PYTHON_USEDEP},${LLVM_USEDEP}]
+ =dev-python/pyside-${QT_PV}[quick,${PYTHON_USEDEP},${LLVM_USEDEP}]
!dev-python/pyside6-tools:0
"
DEPEND="${RDEPEND}
diff --git a/dev-python/pytest-qt/pytest-qt-4.4.0.ebuild b/dev-python/pytest-qt/pytest-qt-4.4.0.ebuild
index 7897b167cd76..8221ce43923e 100644
--- a/dev-python/pytest-qt/pytest-qt-4.4.0.ebuild
+++ b/dev-python/pytest-qt/pytest-qt-4.4.0.ebuild
@@ -6,7 +6,6 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-PYSIDE2_COMPAT=( python3_{10..11} )
inherit distutils-r1 virtualx pypi
@@ -29,10 +28,7 @@ BDEPEND="
|| (
dev-python/pyqt6[gui,testlib,widgets,${PYTHON_USEDEP}]
dev-python/pyqt5[gui,testlib,widgets,${PYTHON_USEDEP}]
- dev-python/pyside6[gui,testlib,widgets,${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- dev-python/pyside2[gui,testlib,widgets,${PYTHON_USEDEP}]
- ' "${PYSIDE2_COMPAT[@]}")
+ dev-python/pyside:6[gui,testlib,widgets,${PYTHON_USEDEP}]
)
)
"
@@ -64,7 +60,7 @@ python_test() {
)
local -x PYTEST_QT_API
- for PYTEST_QT_API in PyQt{5,6} pyside{2,6}; do
+ for PYTEST_QT_API in PyQt{5,6} "pyside:6"; do
if has_version "dev-python/${PYTEST_QT_API}[gui,testlib,widgets,${PYTHON_USEDEP}]"
then
einfo "Testing with ${EPYTHON} and ${PYTEST_QT_API}"
diff --git a/dev-python/qtpy/metadata.xml b/dev-python/qtpy/metadata.xml
index 9afab0307bea..c4d61f1c7f7d 100644
--- a/dev-python/qtpy/metadata.xml
+++ b/dev-python/qtpy/metadata.xml
@@ -18,8 +18,7 @@
<use>
<flag name="pyqt5">Use <pkg>dev-python/pyqt5</pkg> as Qt for Python implementation</flag>
<flag name="pyqt6">Use <pkg>dev-python/pyqt6</pkg> as Qt for Python implementation</flag>
- <flag name="pyside2">Use dev-python/pyside2 as Qt for Python implementation</flag>
- <flag name="pyside6">Use <pkg>dev-python/pyside6</pkg> as Qt for Python implementation</flag>
+ <flag name="pyside6">Use <pkg>dev-python/pyside</pkg> as Qt for Python implementation</flag>
<flag name="designer">Pull in bindings for the QtDesigner module and enable the designer plugin</flag>
<flag name="gui">Pull in bindings for the QtGui module</flag>
<flag name="help">Pull in bindings for the QtHelp module</flag>
diff --git a/dev-python/qtpy/qtpy-2.4.2-r1.ebuild b/dev-python/qtpy/qtpy-2.4.2-r1.ebuild
index 3df2e1441e80..88c56c1f2e61 100644
--- a/dev-python/qtpy/qtpy-2.4.2-r1.ebuild
+++ b/dev-python/qtpy/qtpy-2.4.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -62,12 +62,12 @@ RDEPEND="
)
pyside6? (
- dev-python/pyside6[${PYTHON_USEDEP}]
- dev-python/pyside6[bluetooth?,dbus?,designer?,gui?,help?,multimedia?]
- dev-python/pyside6[network?,nfc?,opengl?,pdfium?,positioning?]
- dev-python/pyside6[printsupport?,qml?,quick?,quick3d?,remoteobjects(-)?]
- dev-python/pyside6[sensors?,serialport?,spatialaudio?,speech?,sql?,svg?]
- dev-python/pyside6[testlib?,webchannel?,webengine?,websockets?,widgets?,xml?]
+ dev-python/pyside:6[${PYTHON_USEDEP},core(+)]
+ dev-python/pyside:6[bluetooth?,dbus?,designer?,gui?,help?,multimedia?]
+ dev-python/pyside:6[network?,nfc?,opengl?,pdfium?,positioning?]
+ dev-python/pyside:6[printsupport?,qml?,quick?,quick3d?,remoteobjects(-)?]
+ dev-python/pyside:6[sensors?,serialport?,spatialaudio?,speech?,sql?,svg?]
+ dev-python/pyside:6[testlib?,webchannel?,webengine?,websockets?,widgets?,xml?]
)
"
@@ -88,14 +88,13 @@ BDEPEND="
dev-qt/qtbase:6[sqlite]
)
pyside6? (
- dev-python/pyside6[${PYTHON_USEDEP}]
- dev-python/pyside6[3d,bluetooth,charts,concurrent,dbus,designer,gui]
- dev-python/pyside6[help,location,multimedia,network,network-auth]
- dev-python/pyside6[nfc,opengl,pdfium,positioning,printsupport,qml]
- dev-python/pyside6[quick,quick3d,scxml,sensors,serialport]
- dev-python/pyside6[spatialaudio,speech,sql,svg,testlib,webchannel]
- dev-python/pyside6[webengine,websockets,widgets,xml]
- dev-python/pyside6-tools[${PYTHON_USEDEP}]
+ dev-python/pyside:6[${PYTHON_USEDEP},core(+)]
+ dev-python/pyside:6[3d,bluetooth,charts,concurrent,dbus,designer,gui]
+ dev-python/pyside:6[help,location,multimedia,network,network-auth]
+ dev-python/pyside:6[nfc,opengl,pdfium,positioning,printsupport,qml]
+ dev-python/pyside:6[quick,quick3d,scxml,sensors,serialport]
+ dev-python/pyside:6[spatialaudio,speech,sql,svg,testlib,webchannel]
+ dev-python/pyside:6[webengine,websockets,widgets,xml]
dev-qt/qtbase:6[sqlite]
)
)
diff --git a/dev-python/qtpy/qtpy-2.4.2.ebuild b/dev-python/qtpy/qtpy-2.4.2.ebuild
index c0c0c1ca0e39..4089a27decc3 100644
--- a/dev-python/qtpy/qtpy-2.4.2.ebuild
+++ b/dev-python/qtpy/qtpy-2.4.2.ebuild
@@ -24,14 +24,10 @@ _IUSE_QT_MODULES="
printsupport qml quick sensors serialport speech +sql svg testlib
webchannel webengine websockets +widgets +xml
"
-IUSE="+pyqt5 +pyqt6 pyside2 pyside6 ${_IUSE_QT_MODULES}"
+IUSE="+pyqt5 +pyqt6 pyside6 ${_IUSE_QT_MODULES}"
unset _IUSE_QT_MODULES
-REQUIRED_USE="
- || ( pyqt5 pyqt6 pyside2 pyside6 )
- python_targets_python3_12? ( !pyside2 )
- python_targets_python3_13? ( !pyside2 )
-"
+REQUIRED_USE="|| ( pyqt5 pyqt6 pyside6 )"
# These flags are currently *not* common to the PySide2/6 and PyQt5/6 ebuilds
# Disable them for now, please check periodically if this is still up to date.
@@ -88,21 +84,12 @@ RDEPEND="
webengine? ( dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets?,quick?] )
)
- pyside2? (
- $(python_gen_cond_dep '
- dev-python/pyside2[${PYTHON_USEDEP}]
- dev-python/pyside2[designer?,gui?,help?,multimedia?,network?,opengl(+)?]
- dev-python/pyside2[positioning?,printsupport?,qml?,quick?,sensors?,serialport(+)?]
- dev-python/pyside2[speech?,sql?,svg?,testlib?,webchannel?,webengine?,websockets?]
- dev-python/pyside2[widgets?,xml?]
- ' python3_{10..11})
- )
pyside6? (
- dev-python/pyside6[${PYTHON_USEDEP}]
- dev-python/pyside6[designer?,gui?,help?,multimedia?,network?,opengl?]
- dev-python/pyside6[positioning?,printsupport?,qml?,quick?,sensors(-)?,serialport?]
- dev-python/pyside6[speech(-)?,sql?,svg?,testlib?,webchannel?,webengine?,websockets?]
- dev-python/pyside6[widgets?,xml?]
+ dev-python/pyside[${PYTHON_USEDEP},core(+)]
+ dev-python/pyside[designer?,gui?,help?,multimedia?,network?,opengl?]
+ dev-python/pyside[positioning?,printsupport?,qml?,quick?,sensors(-)?,serialport?]
+ dev-python/pyside[speech(-)?,sql?,svg?,testlib?,webchannel?,webengine?,websockets?]
+ dev-python/pyside[widgets?,xml?]
)
"
@@ -130,28 +117,13 @@ BDEPEND="
dev-python/pyqt6-webengine[${PYTHON_USEDEP},widgets,quick]
dev-qt/qtbase:6[sqlite]
)
- pyside2? (
- $(python_gen_cond_dep '
- dev-python/pyside2[${PYTHON_USEDEP}]
- dev-python/pyside2[3d,charts,concurrent,datavis,designer,gui,help]
- dev-python/pyside2[location,multimedia,network,opengl(+)]
- dev-python/pyside2[positioning,printsupport,qml,quick,scxml]
- dev-python/pyside2[sensors,serialport(+),speech,sql,svg,testlib]
- dev-python/pyside2[webchannel,webengine,websockets,widgets,x11extras]
- dev-python/pyside2[xml,xmlpatterns]
- dev-qt/qtsql:5[sqlite]
- dev-python/pyside2-tools[${PYTHON_USEDEP}]
- ' python3_{10..11})
- dev-qt/qtsql:5[sqlite]
- )
pyside6? (
- dev-python/pyside6[${PYTHON_USEDEP}]
- dev-python/pyside6[3d(-),bluetooth(-),concurrent,dbus,designer,gui,help]
- dev-python/pyside6[location(-),multimedia,network,nfc(-),opengl,positioning,pdfium(-)]
- dev-python/pyside6[printsupport,qml,quick,quick3d,scxml(-),sensors(-)]
- dev-python/pyside6[serialport,spatialaudio(-),speech(-),sql,svg,testlib,webchannel]
- dev-python/pyside6[webengine,websockets,widgets,xml]
- dev-python/pyside6-tools[${PYTHON_USEDEP}]
+ dev-python/pyside[${PYTHON_USEDEP},core(+)]
+ dev-python/pyside[3d(-),bluetooth(-),concurrent,dbus,designer,gui,help]
+ dev-python/pyside[location(-),multimedia,network,nfc(-),opengl,positioning,pdfium(-)]
+ dev-python/pyside[printsupport,qml,quick,quick3d,scxml(-),sensors(-)]
+ dev-python/pyside[serialport,spatialaudio(-),speech(-),sql,svg,testlib,webchannel]
+ dev-python/pyside[webengine,websockets,widgets,xml]
dev-qt/qtbase:6[sqlite]
)
)
diff --git a/dev-python/reportlab/Manifest b/dev-python/reportlab/Manifest
index 573f2fdcd721..8d047c21c916 100644
--- a/dev-python/reportlab/Manifest
+++ b/dev-python/reportlab/Manifest
@@ -1,2 +1,3 @@
DIST pfbfer-20070710.zip 677333 BLAKE2B 100214476a361a5e5d1f3da0999591345f6e3a3f8c6bc3f6a3e9eca734190c6259758a43302c6e41254d33491fe535eb7d5dd07aa9727c912424bebc31fc18df SHA512 6fd4a5d955464b10d13a7b748703450c1fe120d5ed09e8cfa1b4dfa9c183c59fe001df29433af551796b0df62544b7ddc364f9bb1bdcc2cd300434340ffcc4f2
DIST reportlab-4.2.5.tar.gz 3581379 BLAKE2B 560175a5180f3e991a3bed26f40b1c73b80a0f7dde9a30be2693ca0008d5272a3c1903fa930112e5f023e433a45c6ce384f9f239335c12400434a390a25ca501 SHA512 1daf01a03dd12770d40dbc1be66f0128a63953eebc97175d5cdf9a30cc6f827bc7a50e4f12cf0def8edecd3798fdc1fe009b3b92b0a252ca8a1395f83d6e970f
+DIST reportlab-4.3.0.tar.gz 3499157 BLAKE2B 0f8e38d637f136b341fb85f8c479eea8bce18ce359fd96b62dd72692eab8fdb9890aa1e91348c400e2d389c3302545044163dd58d10e61d1b2a2878d36cd303f SHA512 5c7e7d25016bf3bddf1060c2c72ce138a0aa81a47571474f62d760a4ce7415c355905c81b92960900d51da390cb28c1d8d74e9a0b84a0ec6ab1ee6e246e7e9e9
diff --git a/dev-python/reportlab/reportlab-4.3.0.ebuild b/dev-python/reportlab/reportlab-4.3.0.ebuild
new file mode 100644
index 000000000000..04c9bc850c66
--- /dev/null
+++ b/dev-python/reportlab/reportlab-4.3.0.ebuild
@@ -0,0 +1,53 @@
+# 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} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Tools for generating printable PDF documents from any data source"
+HOMEPAGE="
+ https://www.reportlab.com/
+ https://pypi.org/project/reportlab/
+"
+SRC_URI+="
+ https://www.reportlab.com/ftp/fonts/pfbfer-20070710.zip
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/chardet[${PYTHON_USEDEP}]
+ dev-python/pillow[tiff,truetype,jpeg(+),${PYTHON_USEDEP}]
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+distutils_enable_sphinx docs/source
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ cd ${P}/src/reportlab/fonts || die
+ unpack pfbfer-20070710.zip
+}
+
+src_configure() {
+ cat > local-setup.cfg <<-EOF || die
+ [OPTIONS]
+ no-download-t1-files = 1
+ EOF
+}
+
+python_test() {
+ pushd tests >/dev/null || die
+ "${EPYTHON}" runAll.py --post-install --verbosity=2 ||
+ die "Testing failed with ${EPYTHON}"
+ popd >/dev/null || die
+}
diff --git a/dev-python/rtslib-fb/Manifest b/dev-python/rtslib-fb/Manifest
index 8a9091481aeb..27ea264f8279 100644
--- a/dev-python/rtslib-fb/Manifest
+++ b/dev-python/rtslib-fb/Manifest
@@ -1,2 +1,3 @@
DIST rtslib-fb-2.1.76.tar.gz 78055 BLAKE2B df22093072a7e7b12a080db8253eff9e6aff1efb44a8bdb6c37a21601fd10beea03b665d1e1621904a9a0c1d1299e7f9e5f61682669f75a06f4e050c503da9a7 SHA512 fee3087702e44ede59b9635d7cbe7af06da104d6aeffc3fbb584ce6e8170b7856650a006ee574940448801a67e9f7d9610ccb9ad632dd6d0c378fe7c6cd1c159
DIST rtslib_fb-2.2.1.tar.gz 45483 BLAKE2B 9d255199eff27929dc47d8f141b11bf14e53bcf9c08e0b97d24ff7e5eb5d84b223fa9765e39838318a509960d2d8919ff59a9d982b1a176391af8a935e4f4753 SHA512 4c997a5a481fd19a9c7e2f841f06bd8b60091ed46bca3af4b13dee13729f8abbe8d7363736f7ab36c3c122d648cb5adfdb7029796844f7f50ef6075b35b5c8c1
+DIST rtslib_fb-2.2.2.tar.gz 45508 BLAKE2B e233bd7b346e7da98d8d6237f1cfc976a4963a13802c06175612c9c5497b20fb708228561b8a7a03dfd31e24359c1c339bae9c09228d2c3df5f1a5d9fbad6b08 SHA512 e64b0cc32520c19747c4e752a33aef9e27557f34a695d321b699bfd12feaba9749b32b5e292c96258bf0e6bf87fc4bb56287257691a7dccd786d12c9bec72964
diff --git a/dev-python/rtslib-fb/rtslib-fb-2.2.2.ebuild b/dev-python/rtslib-fb/rtslib-fb-2.2.2.ebuild
new file mode 100644
index 000000000000..98700b7b9191
--- /dev/null
+++ b/dev-python/rtslib-fb/rtslib-fb-2.2.2.ebuild
@@ -0,0 +1,31 @@
+# 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_{9,10,11,12,13} )
+
+inherit distutils-r1 systemd pypi
+
+DESCRIPTION="A Python object API for managing the Linux LIO kernel target"
+HOMEPAGE="
+ https://github.com/open-iscsi/rtslib-fb/
+ https://pypi.org/project/rtslib-fb/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/pyudev[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests import-check
+
+src_install() {
+ distutils-r1_src_install
+ systemd_dounit "${FILESDIR}/target.service"
+}
diff --git a/dev-python/sqlglot/Manifest b/dev-python/sqlglot/Manifest
index 7fc8745a777a..7a7bf59059bb 100644
--- a/dev-python/sqlglot/Manifest
+++ b/dev-python/sqlglot/Manifest
@@ -57,6 +57,7 @@ DIST serde_derive-1.0.216.crate 57674 BLAKE2B 12a9228679c16288c08c8b256707e276ae
DIST serde_json-1.0.133.crate 150739 BLAKE2B 7891eb5b8edcc7fd09ab1e15d3881ffdcb629aa39f2bd758c0505700a5f2dfabd85b1b66c3b094268bc1627b346e204c792f4ca61efa76c54ab9cd5744fb0ee2 SHA512 20e65ec87bff319897a141960d13deb5cadcf821209c1ee8799f1dc7f458ce432bc62c16df5bdada1c8d3cc01ff23b8125e8fa0a03545d4614f32efd687dc69f
DIST sqlglot-26.3.8.tar.gz 19957402 BLAKE2B c4dd2a2f64c7b8fa537d0d81b0915b0b2c044ae4cb1e6da8824cdb43e116313d61f93ddb3c0faaac83b6f624d595573c55686d0dd2cc103f716eab2f564e2ec6 SHA512 d1853353d60674a91d13cebcc3329d227fa7c998e2cfd689a3de77bea4fe5b1bd86dc167f790c929a1617b882962060bc84d923fc6f93f0356145438dcb8433c
DIST sqlglot-26.3.9.tar.gz 5311903 BLAKE2B 0637f47170c53b22a8672b4d35a16b5d22c696a1568b22b0474d9075b82534c18f54a66b06010a426ff8121be64934041871d97f78c5a1951ad200849ab5c5a0 SHA512 3fb7ba3a0fe583837a7aed0f18a66eefa06fa193f0f97484eca60fc13bb2700c27b7dd1b4d0a54d64adf8ea2b4009057a091534b5d52aa36a5d499c861e2b2a8
+DIST sqlglot-26.4.1.tar.gz 5315460 BLAKE2B d96c6927f24ba10cff61c4a56542fe689c372e10e2af5c05829e856bf36ead667e56a37b5c8fcacbeaa3c08f302e8ec0f78a2896c7ee659ff419e8b023cf6e0a SHA512 0a17247b060a4d631799aa23e5722eb2b40676a1482207b0a9c5ee3c88b965e31e79b10855c174a918f4e2f32bde1b37dcbf45511d7814446a1fa1405f59e0d8
DIST syn-2.0.87.crate 278076 BLAKE2B 93385f64103fdb482bec34c7912474ae7a5935948715e6eb9a54907e0db5c39f089f6cd393bab33c935c59a1bbb0f4099431f206343811c1a450554d96a35756 SHA512 bcfff545d6dfefd81e09f8f30a86bdd85759b3a7d4093ef3365ed02718e10dbd604c52b94c9d7fa955d339fdc5b6c079940c6f345b5a48c52b5c8607794ca6f2
DIST target-lexicon-0.12.16.crate 26488 BLAKE2B e7950e4a302059a1bfc9bc15618a3c1b971a17cffae117a6e8f5f63a0d82fd2bd02680301d15338612d5426d349dd24cfee30ee787a15a7d3187f2a6825e69ce SHA512 092639957c4a0391560b6442b31c47159c04d12e971010f730a6ec9cb5389e4be903ef3d7daa06db95e64dc78b6970731fb647179ebaad2b12e9ed5e9b24da27
DIST tinytemplate-1.2.1.crate 26490 BLAKE2B af39d96f33f63238e455a4e38fde1d1730fd9661ae68be7b05df6ef9d2ab1a04db1332cc4ec9deb6da3a8e22b124df81b0fa8916d8491b808742bb733c8e48be SHA512 0cc080057e096f0796e72004343e1a8332c2e8a12e43f6ade150ebf632e9c29c7ad04de0b940cd57df81efdc4d07a6607da9b86a30d8383e39ac3d7be185edb9
diff --git a/dev-python/sqlglot/sqlglot-26.4.1.ebuild b/dev-python/sqlglot/sqlglot-26.4.1.ebuild
new file mode 100644
index 000000000000..8807dc7fd20d
--- /dev/null
+++ b/dev-python/sqlglot/sqlglot-26.4.1.ebuild
@@ -0,0 +1,177 @@
+# Copyright 2023-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} )
+
+CARGO_OPTIONAL=1
+CRATES="
+ aho-corasick@1.1.3
+ anes@0.1.6
+ anstyle@1.0.10
+ autocfg@1.1.0
+ bumpalo@3.16.0
+ cast@0.3.0
+ cfg-if@1.0.0
+ ciborium-io@0.2.2
+ ciborium-ll@0.2.2
+ ciborium@0.2.2
+ clap@4.5.23
+ clap_builder@4.5.23
+ clap_lex@0.7.4
+ criterion-plot@0.5.0
+ criterion@0.5.1
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crunchy@0.2.2
+ either@1.13.0
+ half@2.4.1
+ heck@0.5.0
+ hermit-abi@0.4.0
+ indoc@2.0.4
+ is-terminal@0.4.13
+ itertools@0.10.5
+ itoa@1.0.14
+ js-sys@0.3.76
+ libc@0.2.169
+ log@0.4.22
+ memchr@2.7.4
+ memoffset@0.9.0
+ num-traits@0.2.19
+ once_cell@1.19.0
+ oorandom@11.1.4
+ plotters-backend@0.3.7
+ plotters-svg@0.3.7
+ plotters@0.3.7
+ portable-atomic@1.9.0
+ proc-macro2@1.0.89
+ pyo3-build-config@0.22.6
+ pyo3-ffi@0.22.6
+ pyo3-macros-backend@0.22.6
+ pyo3-macros@0.22.6
+ pyo3@0.22.6
+ quote@1.0.37
+ rayon-core@1.12.1
+ rayon@1.10.0
+ regex-automata@0.4.9
+ regex-syntax@0.8.5
+ regex@1.11.1
+ rustc-hash@2.1.0
+ ryu@1.0.18
+ same-file@1.0.6
+ serde@1.0.216
+ serde_derive@1.0.216
+ serde_json@1.0.133
+ syn@2.0.87
+ target-lexicon@0.12.16
+ tinytemplate@1.2.1
+ unicode-ident@1.0.12
+ unindent@0.2.3
+ walkdir@2.5.0
+ wasm-bindgen-backend@0.2.99
+ wasm-bindgen-macro-support@0.2.99
+ wasm-bindgen-macro@0.2.99
+ wasm-bindgen-shared@0.2.99
+ wasm-bindgen@0.2.99
+ web-sys@0.3.76
+ winapi-util@0.1.9
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+"
+
+inherit cargo distutils-r1 pypi optfeature
+
+DESCRIPTION="An easily customizable SQL parser and transpiler"
+HOMEPAGE="
+ https://sqlglot.com/
+ https://github.com/tobymao/sqlglot/
+ https://pypi.org/project/sqlglot/
+"
+SRC_URI+="
+ native-extensions? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+
+LICENSE="MIT"
+LICENSE+=" native-extensions? ("
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016
+"
+LICENSE+=" )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+ native-extensions? (
+ ${RUST_DEPEND}
+ dev-util/maturin[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/sqlglotrs/sqlglotrs.*.so"
+
+pkg_setup() {
+ use native-extensions && rust_pkg_setup
+}
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ if use native-extensions; then
+ local DISTUTILS_USE_PEP517=maturin
+ cd sqlglotrs || die
+ distutils-r1_python_compile
+ cd - >/dev/null || die
+ fi
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # timing, sigh
+ # https://github.com/tobymao/sqlglot/issues/3961
+ tests/test_generator.py::TestGenerator::test_generate_nested_binary
+ )
+ local EPYTEST_IGNORE=(
+ # Tests require pyspark or duckdb which aren't in the tree.
+ # Pandas would be a requirement normally, but it gets ignored by proxy.
+ "tests/dataframe/integration/test_dataframe.py"
+ "tests/dataframe/integration/test_grouped_data.py"
+ "tests/dataframe/integration/test_session.py"
+ "tests/test_executor.py"
+ "tests/test_optimizer.py"
+ )
+
+ # make sure not to use an earlier installed version
+ local -x SQLGLOTRS_TOKENIZER=$(usex native-extensions 1 0)
+ rm -rf sqlglotrs || die
+ epytest
+}
+
+pkg_postinst() {
+ optfeature "simplifying timedelta expressions" dev-python/python-dateutil
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index bb3260a4c7f5..53dfa8c31ca2 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,7 +1,11 @@
DIST pubgrub-648aa343486e5529953153781fc86025c73c4a61.gh.tar.gz 99073 BLAKE2B 86252bb78e0f832ce77040d86b188b4dd0637acd68e28c8b87fa36ab7cc23c5e296d0f634647d407bcd7fc24bf6c34d281de1744608ff0fd2741428bb0bf55a8 SHA512 8386273deca98df82c95931159848fa159ea4dbb75b8bba539cfe73f91e87340bc0e8048f1a4483148b021bb99d6a3b90275d9bb1cedccf153a7ebc29bd70e17
+DIST pubgrub-b70cf707aa43f21b32f3a61b8a0889b15032d5c4.gh.tar.gz 98983 BLAKE2B 08ad8a10a96ba7da3100f7658f38cb8d6fb0e1eca92ba0aaf1393778012db807084f047eec171f0a46836a6746367369e79ab95836d5cdf215211e321d2800ac SHA512 401ea5ca16e978d5407a1400e4e27cec9fcac11332067ee1ed8a3bc511901e08fc421ce875ebbb0990593ed549a4a5f4620914a71ae3490c7b8ae0f7b26b5937
DIST rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.gh.tar.gz 51763 BLAKE2B 59d053bc6692014d884a9247dea1b57a8789469ba2abbcc92ec21bb0022cbd74874afc463082156ab697aa6c80635019857a5d7e2dc150274e8b04d720518c36 SHA512 3a309566f4925b02496fcf19bc2865968edf6fb65082ca4079d2cee79e6b0353a1910c079f2afe656da0d0f6ddde5102052a221ea35a7dabc6d690a11218b20a
DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68
+DIST tokio-tar-ba2b140f27d081c463335f0d68b5f8df8e6c845e.gh.tar.gz 51225 BLAKE2B bfa6875edb3fe3fb98b379f4cdc3c7df78b74b8b88e8ef389678666c2ac0136ca6e04eb61e799e1691635d2bbfee82b361adbff3c66748e0d829a64e6068017b SHA512 bee8794161740b336b68514896a0c972e676a1aaf90662fe1f53961afbcccfb144eb3f5e903864f395a1be71c62ffd13ec8357c6848c0b86eb881bdf3dc55408
DIST uv-0.5.20-crates.tar.xz 53845912 BLAKE2B 3ebe6099304f4520cba49bf36a7b900146b57740c6dcf783cf2f064707b5880041eac8ee0adf2e251819cb7f3ac3f2739dd89636a48618f6220bc21bdb7fd334 SHA512 fbfb6becb1008c5dbfd571871abe053721f4a9939f98e1d0b1c3c5ad405d1d4dcdd121986e12cdaab9e1ff7a9bc0353aa69345ddb2fbb8c0ac0a427bdbb6c9f9
DIST uv-0.5.21.gh.tar.gz 3260658 BLAKE2B 064f52d4c690d2992988ca1683ce2c5183c2662961b931519b84651bebedff90a5b64fd87052b79c591b62a8fa07691997c38cf2b636e9a0facfb5683e64627b SHA512 351bf2a76cc0ec10f254f9eab0df0c0f307594a7052388e3b793c8314d9119488c2ebaa20125021fe0bf54192ce17d7e69719832c17aa4c815a5d9d69521e225
DIST uv-0.5.25-crates.tar.xz 53882356 BLAKE2B b0762449534ccf0be33d2c4d50fd9bc01823c6aeef7b82a84e4dc49e3ce92272f62632608664614d62dc5e0f40c500e3b3ca3ca0388761f3c3b50b89d0f83a42 SHA512 ec7b64d5b40d20d1d5081819b895cc18a69d008e6b27f40cc147573b99f8fabf11ee83c60a389791ad8a844a8c0965da2dd1be500f4c2ce8860724a41c37ece5
DIST uv-0.5.26.gh.tar.gz 3353978 BLAKE2B 1920825eaf2d2eca3d5e5fdaba9677e08f6bbb6d1b078a3ffe706f1344ccd9de19237c0470cc902a06f5fbfa9bad0af51c67a10141e76c9f9f182217c461c094 SHA512 e723775465594959b8e70c1bd43f0ddce0b8d64d7ddb157f28385593aa6c40153b1152b2c22534862da0605e2a0ccb7dffd1f95e07d8003eb37433bb3b887b73
+DIST uv-0.5.27-crates.tar.xz 47539520 BLAKE2B 701e7bf284a3506555a6da6ccc0f3aba5161305b4acc065f68c14ebf25f79a8bce3739589e5d3461aa8d058860d387790e6f007ce74309c03c1623574ef15c85 SHA512 fe276c9cfb0d07d4ba56427fde7067480f32cb21341b3967bfa65217e94d78992692808981dcd321731339c81ee7a44cfcd103557d63ebd727c04cbc403217fe
+DIST uv-0.5.27.gh.tar.gz 3356614 BLAKE2B 143d1ee171a46a4bdedec79767f04973233ba389ed053358383834f9b6fdbd2334ce695adc63a76f3ffcc92427739bfc4adbf57b19280f98c1904b607f2ecbc2 SHA512 ce597666983b24e85992cf7aa313506255d58b97ac0e98300c5f01f8418a71e2c7357b9fdbd2cd1b56b3a8cfff13d3014f18f740e11561cd4eea03438efec990
diff --git a/dev-python/uv/uv-0.5.27.ebuild b/dev-python/uv/uv-0.5.27.ebuild
new file mode 100644
index 000000000000..eb7a0571dafa
--- /dev/null
+++ b/dev-python/uv/uv-0.5.27.ebuild
@@ -0,0 +1,171 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [astral-tokio-tar]='https://github.com/astral-sh/tokio-tar;ba2b140f27d081c463335f0d68b5f8df8e6c845e;tokio-tar-%commit%'
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.83.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=0.5.27
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/webtest/Manifest b/dev-python/webtest/Manifest
index c555a17826a7..87bca959a761 100644
--- a/dev-python/webtest/Manifest
+++ b/dev-python/webtest/Manifest
@@ -1 +1,2 @@
DIST webtest-3.0.3.tar.gz 79391 BLAKE2B 7ac8362c325d5570446ed587d725b3e4a81e6167295de3030070078e209c692ed95c1a4a03f5db2b2a2e390cfb80ab17adf1a359ec3b349e11514f4bcd4c483d SHA512 5122fa995f9fc4a2338cfe9c3516648d56b0e843c66b8e40b869d5ba3e3ed1bd442836712ed6dd683ea1db2080ce7d5674d71f053c7a29a80812e4cc2606f1de
+DIST webtest-3.0.4.tar.gz 79395 BLAKE2B 8a0aa8fae18e7c4ac816910cf0a7e6dea8905d14a35bacca8b53351189c9d00da0016c533a74b3b0623c81e7d8504260a2ad83ca4a2cb57f7a629cb1f2067d0a SHA512 ebf7a76d18719283af5fcf0ea902285a9eee280e68892f2db35e5e48e04efd18e96e393a020e3c4ac4e001875c6da5583348572fd028c0e1a11d468695362a0b
diff --git a/dev-python/webtest/webtest-3.0.4.ebuild b/dev-python/webtest/webtest-3.0.4.ebuild
new file mode 100644
index 000000000000..9b7e8ded1897
--- /dev/null
+++ b/dev-python/webtest/webtest-3.0.4.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN="WebTest"
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Helper to test WSGI applications"
+HOMEPAGE="
+ https://docs.pylonsproject.org/projects/webtest/en/latest/
+ https://github.com/Pylons/webtest/
+ https://pypi.org/project/WebTest/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+RDEPEND="
+ dev-python/paste[${PYTHON_USEDEP}]
+ dev-python/pastedeploy[${PYTHON_USEDEP}]
+ >=dev-python/webob-1.2[${PYTHON_USEDEP}]
+ >=dev-python/waitress-3.0.2[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pyquery[${PYTHON_USEDEP}]
+ dev-python/wsgiproxy2[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/legacy-cgi[${PYTHON_USEDEP}]
+ ' 3.13)
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/webtest-2.0.33-no-pylons-theme.patch"
+)
+
+distutils_enable_sphinx docs
+distutils_enable_tests pytest