summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-10-28 03:06:10 -0500
committerCrucible <crucible@localhost>2026-10-28 03:06:10 -0500
commit7d34c8674b21b66fbf5d9fbe2e68f5ed96b48704 (patch)
treed07a55d723555bdd95ec7859b9e5541b454a22b9
parent2b63cb39d9a564ba73aa12da77cc6096dda76b4c (diff)
downloadsrcux-develop.tar.gz
srcux-develop.tar.xz
srcux-develop.zip
Publish srcux candidate 0000000963-20261028-030225HEADdevelop
-rw-r--r--app-office/scribus/Manifest1
-rw-r--r--app-office/scribus/scribus-1.7.4.ebuild160
-rw-r--r--dev-lang/php/php-8.4.27.ebuild2
-rw-r--r--dev-lang/php/php-8.5.12.ebuild2
-rw-r--r--dev-libs/aws-c-common/Manifest6
-rw-r--r--dev-libs/aws-c-common/aws-c-common-0.12.6.ebuild29
-rw-r--r--dev-libs/aws-c-common/aws-c-common-0.14.2.ebuild29
-rw-r--r--dev-libs/aws-c-common/aws-c-common-1.0.0.ebuild28
-rw-r--r--dev-libs/aws-c-common/aws-c-common-1.0.2.ebuild28
-rw-r--r--dev-libs/aws-c-common/aws-c-common-1.0.5.ebuild (renamed from dev-libs/aws-c-common/aws-c-common-1.0.1-r1.ebuild)11
-rw-r--r--dev-libs/aws-c-common/files/aws-c-common-1.0.1-32-bit-time_t.patch138
-rw-r--r--dev-libs/aws-c-s3/Manifest1
-rw-r--r--dev-libs/aws-c-s3/aws-c-s3-1.5.0.ebuild48
-rw-r--r--dev-libs/iniparser/iniparser-4.3.2.ebuild2
-rw-r--r--dev-libs/s2n-tls/Manifest1
-rw-r--r--dev-libs/s2n-tls/s2n-tls-1.7.13.ebuild35
-rw-r--r--dev-python/configargparse/Manifest4
-rw-r--r--dev-python/configargparse/configargparse-1.9.0.ebuild (renamed from dev-python/configargparse/configargparse-1.7.5.ebuild)12
-rw-r--r--dev-python/configupdater/Manifest2
-rw-r--r--dev-python/configupdater/configupdater-4.0.1.ebuild27
-rw-r--r--dev-python/flask/files/flask-3.1.3-pytest9.1.patch119
-rw-r--r--dev-python/flask/flask-3.1.3.ebuild7
-rw-r--r--dev-python/flit-core/Manifest2
-rw-r--r--dev-python/flit-core/flit-core-4.2.0.ebuild37
-rw-r--r--dev-python/flit/Manifest2
-rw-r--r--dev-python/flit/flit-4.2.0.ebuild60
-rw-r--r--dev-python/fonttools/Manifest3
-rw-r--r--dev-python/fonttools/fonttools-4.65.0.ebuild62
-rw-r--r--dev-python/fonttools/fonttools-4.68.0.ebuild (renamed from dev-python/fonttools/fonttools-4.64.0.ebuild)20
-rw-r--r--dev-python/hatchling/Manifest1
-rw-r--r--dev-python/hatchling/hatchling-1.33.0.ebuild99
-rw-r--r--dev-python/jupyter-builder/Manifest2
-rw-r--r--dev-python/jupyter-builder/jupyter-builder-1.2.4.ebuild (renamed from dev-python/jupyter-builder/jupyter-builder-1.2.2.ebuild)2
-rw-r--r--dev-python/moto/Manifest2
-rw-r--r--dev-python/moto/moto-5.2.5.ebuild105
-rw-r--r--dev-python/narwhals/Manifest2
-rw-r--r--dev-python/narwhals/narwhals-2.28.0.ebuild48
-rw-r--r--dev-python/pdm/Manifest2
-rw-r--r--dev-python/pdm/pdm-2.29.4.ebuild (renamed from dev-python/pdm/pdm-2.29.2.ebuild)11
-rw-r--r--dev-python/phonenumbers/Manifest2
-rw-r--r--dev-python/phonenumbers/phonenumbers-9.0.42.ebuild (renamed from dev-python/phonenumbers/phonenumbers-9.0.39.ebuild)2
-rw-r--r--dev-python/portalocker/Manifest2
-rw-r--r--dev-python/portalocker/portalocker-4.4.2.ebuild (renamed from dev-python/portalocker/portalocker-4.2.0.ebuild)3
-rw-r--r--dev-python/pyasn1/Manifest2
-rw-r--r--dev-python/pyasn1/pyasn1-0.6.5.ebuild (renamed from dev-python/pyasn1/pyasn1-0.6.3.ebuild)2
-rw-r--r--dev-python/pypdf/Manifest2
-rw-r--r--dev-python/pypdf/pypdf-6.21.3.ebuild66
-rw-r--r--dev-python/pytest-env/Manifest2
-rw-r--r--dev-python/pytest-env/pytest-env-1.8.3.ebuild40
-rw-r--r--dev-python/pytest/Manifest4
-rw-r--r--dev-python/pytest/pytest-9.2.0.ebuild (renamed from dev-python/pytest/pytest-9.0.3.ebuild)36
-rw-r--r--dev-python/python-engineio/Manifest2
-rw-r--r--dev-python/python-engineio/python-engineio-4.15.0.ebuild (renamed from dev-python/python-engineio/python-engineio-4.13.5.ebuild)0
-rw-r--r--dev-python/python-pam/Manifest2
-rw-r--r--dev-python/python-pam/python-pam-2.1.1.ebuild (renamed from dev-python/python-pam/python-pam-2.0.2-r2.ebuild)12
-rw-r--r--dev-python/python-socks/Manifest3
-rw-r--r--dev-python/python-socks/python-socks-2.8.2.ebuild41
-rw-r--r--dev-python/python-socks/python-socks-3.2.0.ebuild (renamed from dev-python/python-socks/python-socks-3.0.0.ebuild)2
-rw-r--r--dev-python/tavern/Manifest1
-rw-r--r--dev-python/tavern/tavern-3.6.3-r1.ebuild (renamed from dev-python/tavern/tavern-3.6.3.ebuild)2
-rw-r--r--dev-python/tavern/tavern-3.7.0.ebuild73
-rw-r--r--dev-python/tavern/tavern-3.7.1-r1.ebuild (renamed from dev-python/tavern/tavern-3.7.1.ebuild)2
-rw-r--r--dev-python/unearth/Manifest4
-rw-r--r--dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch30
-rw-r--r--dev-python/unearth/unearth-0.19.0.ebuild (renamed from dev-python/unearth/unearth-0.18.2.ebuild)8
-rw-r--r--virtual/httpd-php/httpd-php-8.4.ebuild2
-rw-r--r--virtual/httpd-php/httpd-php-8.5.ebuild2
67 files changed, 945 insertions, 556 deletions
diff --git a/app-office/scribus/Manifest b/app-office/scribus/Manifest
index d46d5220445b..0327ace51c4b 100644
--- a/app-office/scribus/Manifest
+++ b/app-office/scribus/Manifest
@@ -1,2 +1,3 @@
DIST scribus-1.7.3.tar.xz 98101324 BLAKE2B 4af3b3531c3eaa381c26ab5dc5d5637eb99d8886d27259042b86a9fe7ec37cd919de817a4e71f1561e9f96b953058ddd751f75bb09e306f2b9ad8a9e6b311057 SHA512 50f568b76829deb89d2fafcaa4d9f6655876dfef1bcefd3f547ede15b704a54c9c95d7de379312a6351c698893ac00f7fd56784436f0bf00631640e42e2b155e
+DIST scribus-1.7.4.tar.xz 77853844 BLAKE2B 655b09ba24a61d7bfa3252d4263b497fb656cf2418f897f087fdf9cd281f58a39af61c0710a88cf943896266bf78c795afa45fe8753dd91a8639253f614f8f7f SHA512 dac1b206cab85cbb9880bc1e783ebcf660516a81b13c0528b5b9cffd0ce98317a6a75dd108ff1586a83d8b439287256b512d627079471ae0a60183941fdc257a
DIST scribus-1.7.4_pre20260918.tar.xz 53496016 BLAKE2B c58150cfbcc4ceaca5db54a01b5214651c998aec59240af4cb0e5ba9c2fc2c4cb175131d8a3e3f123a23bf5e7cdf5796f14ac2fa0e59d3fa40082fee8ed543d8 SHA512 abcde533af071872fc25ddd954b3ab5fda9978ee35873a8604383326c837116cc837efb3ab459643e0b9087fbb0830f1e439d39b93b65aa0eca6e73d0a36e625
diff --git a/app-office/scribus/scribus-1.7.4.ebuild b/app-office/scribus/scribus-1.7.4.ebuild
new file mode 100644
index 000000000000..0ed9233c6127
--- /dev/null
+++ b/app-office/scribus/scribus-1.7.4.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="tk?"
+inherit cmake desktop flag-o-matic optfeature python-single-r1 xdg
+
+DESCRIPTION="Desktop publishing (DTP) and layout program"
+HOMEPAGE="https://www.scribus.net/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/scribusproject/scribus"
+ inherit git-r3
+else
+ if [[ ${PV} == *_p* ]] ; then
+ SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz" # r27861
+ S="${WORKDIR}/${PN^}"
+ else
+ SRC_URI="
+ https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}.tar.xz
+ https://downloads.sourceforge.net/project/${PN}/${PN}-devel/${PV}/${P}.tar.xz"
+ S="${WORKDIR}/${P}"
+ fi
+ KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="$(ver_cut 1-2)"
+IUSE="+boost debug examples graphicsmagick +jpegxl +minimal osg +pdf scripts +templates tk"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ tk? ( scripts )"
+
+# osg
+# couple of third_party libs bundled
+DEPEND="${PYTHON_DEPS}
+ app-text/hunspell:=
+ app-text/libmspub
+ app-text/libqxp
+ app-text/poppler:=
+ dev-libs/hyphen
+ dev-libs/icu:0=
+ dev-libs/librevenge
+ dev-libs/libxml2:=
+ dev-qt/qt5compat:6
+ dev-qt/qtbase:6[gui,network,opengl,X,xml,widgets]
+ dev-qt/qtsvg:6
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/harfbuzz:0=[icu]
+ media-libs/lcms:2
+ media-libs/libcdr
+ media-libs/libfreehand
+ media-libs/libjpeg-turbo:=
+ media-libs/libpagemaker
+ media-libs/libpng:0=
+ media-libs/libvisio
+ media-libs/libzmf
+ media-libs/tiff:=
+ net-print/cups
+ virtual/minizip:=
+ x11-libs/cairo[X,svg(+)]
+ x11-libs/libxcb
+ boost? ( dev-libs/boost:= )
+ graphicsmagick? ( media-gfx/graphicsmagick:= )
+ jpegxl? ( >=media-libs/libjxl-0.11.2:= )
+ osg? ( dev-games/openscenegraph:= )
+ pdf? ( app-text/podofo:0= )
+ scripts? (
+ $(python_gen_cond_dep '
+ dev-python/pillow[tk?,${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="${DEPEND}
+ app-text/ghostscript-gpl
+"
+BDEPEND="
+ dev-qt/qttools:6[linguist]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.5.8-cmake.patch # bug 886251
+ "${FILESDIR}"/${PN}-1.7.0-findhyphen.patch
+ "${FILESDIR}"/${PN}-1.7.4-dont-install-qtadvanceddocking.patch # bugs 961290, 960017
+ "${FILESDIR}"/${PN}-1.7.0-fix-icon-version.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # for safety remove files that we patched out
+ rm -r scribus/third_party/hyphen || die
+}
+
+src_configure() {
+ # bug #550818
+ append-cppflags -DHAVE_MEMRCHR
+
+ local mycmakeargs=(
+ -DTAG_VERSION="-${SLOT}"
+ -DHAVE_PYTHON=ON
+ -DWANT_DISTROBUILD=ON
+ -DWANT_CPP17=ON
+ -DDOCDIR="${EPREFIX}"/usr/share/doc/${PF}/
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DWITH_BOOST=$(usex boost)
+ -DWANT_DEBUG=$(usex debug)
+ -DWANT_NOEXAMPLES=$(usex !examples)
+ -DWANT_GRAPHICSMAGICK=$(usex graphicsmagick)
+ -DWANT_HEADERINSTALL=$(usex !minimal)
+ -DWANT_NOOSG=$(usex !osg)
+ -DWITH_PODOFO=$(usex pdf)
+ -DWANT_NOTEMPLATES=$(usex !templates)
+ $(cmake_use_find_package jpegxl JXL)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if ! use tk; then
+ rm "${ED}"/usr/share/scribus-${SLOT}/scripts/{FontSample,CalendarWizard}.py || die
+ fi
+ if use scripts; then
+ python_fix_shebang "${ED}"/usr/share/scribus-${SLOT}/scripts
+ python_optimize "${ED}"/usr/share/scribus-${SLOT}/scripts
+ else
+ rm "${ED}"/usr/share/scribus-${SLOT}/scripts/*.py || die
+ fi
+
+ mv "${ED}"/usr/share/doc/${PF}/{en,html} || die
+ ln -sf html "${ED}"/usr/share/doc/${PF}/en || die
+
+ # These files are parsed to populate the help/about window.
+ cat >> "${T}"/COPYING <<- EOF || die
+ ${PN} is licensed under the "${LICENSE}".
+ Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text.
+ EOF
+ dodoc "${T}"/COPYING
+ docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING}
+
+ local size
+ for size in 16 32 128 256 512; do
+ newicon -s $size resources/iconsets/artwork/icon_${size}x${size}.png scribus-${SLOT}.png
+ done
+ newicon -s 64 resources/iconsets/artwork/icon_32x32@2x.png scribus-${SLOT}.png
+ newicon resources/iconsets/1_7_0/scribus-icon.svg scribus-${SLOT}.png
+ newmenu scribus.desktop scribus-${SLOT}.desktop
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "MS Word .doc file import filter support" app-text/antiword
+}
diff --git a/dev-lang/php/php-8.4.27.ebuild b/dev-lang/php/php-8.4.27.ebuild
index 29a899d96347..d973ca82b3e9 100644
--- a/dev-lang/php/php-8.4.27.ebuild
+++ b/dev-lang/php/php-8.4.27.ebuild
@@ -19,7 +19,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
# We can build the following SAPIs in the given order.
ALL_SAPIS=( embed cli cgi fpm apache2 phpdbg )
diff --git a/dev-lang/php/php-8.5.12.ebuild b/dev-lang/php/php-8.5.12.ebuild
index 1bca6854140f..70704a382532 100644
--- a/dev-lang/php/php-8.5.12.ebuild
+++ b/dev-lang/php/php-8.5.12.ebuild
@@ -19,7 +19,7 @@ LICENSE="PHP-3.01
unicode? ( BSD-2 LGPL-2.1 )"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
# We can build the following SAPIs in the given order.
ALL_SAPIS=( embed cli cgi fpm apache2 phpdbg )
diff --git a/dev-libs/aws-c-common/Manifest b/dev-libs/aws-c-common/Manifest
index f2303de6331c..83ec149e23f2 100644
--- a/dev-libs/aws-c-common/Manifest
+++ b/dev-libs/aws-c-common/Manifest
@@ -1,6 +1,2 @@
-DIST aws-c-common-0.12.6.tar.gz 629851 BLAKE2B 46adc68f4ff9bcef4a130dde295259237bc9c29c565df21458ff1f08769440b70903733feb4a4cda34aa0f203a4470bbe7888d8d2ecf98a15f37ed75b78f66d9 SHA512 577fdea85ea84563e2167d70f0988ceeccc6ab298a2ca034393872d1717237a64be0d0b5e9cd2083c2278b8c294bc4afb8f8d6bcc13e144259fa0e3166af35bb
-DIST aws-c-common-0.14.2.tar.gz 642107 BLAKE2B bdd0d652bd506ee79704c86129460437e972de523836922c985ec7dd6bc6b1b1619fb1cd4574774e5eb4df2176d8d88e1f8276986fc2a075b13cf0636d0fc40f SHA512 92c21c05d4273e7e38d5ea0097b205ed3766034ee9ca9295e72e14b8ca5998dcff1d3ccefae3d19f16607b1378f335be6bb16ea66a64c6e972a68ea34c80e5e0
-DIST aws-c-common-1.0.0.tar.gz 647961 BLAKE2B 8d4d23c918ca60fa41720fa665c9a15d7b71b5be18d55eb21efcd5b379be66139c62fac48622a37780cd482f86408e911e33fec2dc8681dd242535f2db9573b8 SHA512 f9cd67637383d86353cef7d230051aad67574f9b5c72d6260713f9d8b1139d730ce56d3cc8b646bc0344d99c8cae79d3cfca86c1994207c1b74b9bb814645f4b
-DIST aws-c-common-1.0.1.tar.gz 654484 BLAKE2B 7aac6581fd831bf1205e4135168abedd0f1417c0e4dc1348516e3023aabc41f5b06a52779365d9ad84179ad9e547d12d80ea3b48b78fb6627305b42159e01553 SHA512 6c6fc420e5bcdd9b40ea05af1314b46e6186063a00e4f1b8c134099dfc34c990cd790070dec101924c9d7d42469bfe1c4a86eef90747d642d1ef0e8378e3aaf3
-DIST aws-c-common-1.0.2.tar.gz 656107 BLAKE2B d5b626e0d9f8ad1ea9a950e42581d753c79280d1f1000d37da730cfbed1f73e5f065825598c82685dee149b35f6ce482a2fea66543d8a40ed0c40f9543155fb1 SHA512 30bd2eae4cf72c3526381c780e99070e95b94669c06d16e72c82805b7732851fccefe9b5d941bd045d2e8b352446df9e19480497942e141ccdffb58ab1a0c1bd
DIST aws-c-common-1.0.3.tar.gz 656266 BLAKE2B a01bfe4e19ecc98d7c2dbee4d0b299c1e0b3080e77b566a02a6d70091b845efad5d416648acd6b62db854e386ed1382ca3d4ef753a208785ece510ddcb26308d SHA512 05cd13aa8c55762345fd7754c1c393b6db48918cb4b4335ade9a75dfbcf20802fa00f8d2e25fa2826b054ffdfe98c60bc50f6c7bb686c1d7df790741bbf8244a
+DIST aws-c-common-1.0.5.tar.gz 679093 BLAKE2B cb03554a3da15c7921a67f682713e1ffe42b9a62f08b58760f12d18ff12fa3f63ec77275ac297f0c747ba29843606d0b922cf74be21860bcb3fefdb621f1fbce SHA512 6da51b4cd6cfeeb68ae0feeb75d36c4753704da2a99475f46de96d079040643a36ea8b26aa08cce378bbd238b1c0bfab564875f03cb30571dcfd3247c5bede02
diff --git a/dev-libs/aws-c-common/aws-c-common-0.12.6.ebuild b/dev-libs/aws-c-common/aws-c-common-0.12.6.ebuild
deleted file mode 100644
index 978d41eb90ac..000000000000
--- a/dev-libs/aws-c-common/aws-c-common-0.12.6.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Core c99 package for AWS SDK for C"
-HOMEPAGE="https://github.com/awslabs/aws-c-common"
-SRC_URI="https://github.com/awslabs/aws-c-common/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-inherit cmake flag-o-matic
-
-LICENSE="Apache-2.0"
-SLOT="0/1"
-KEYWORDS="amd64"
-IUSE="test"
-
-RESTRICT="!test? ( test )"
-
-src_configure() {
- # -Werror=lto-type-mismatch
- # https://bugs.gentoo.org/967010
- # https://github.com/awslabs/aws-c-common/issues/1304
- filter-lto
-
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
diff --git a/dev-libs/aws-c-common/aws-c-common-0.14.2.ebuild b/dev-libs/aws-c-common/aws-c-common-0.14.2.ebuild
deleted file mode 100644
index 44c14e549e5e..000000000000
--- a/dev-libs/aws-c-common/aws-c-common-0.14.2.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Core c99 package for AWS SDK for C"
-HOMEPAGE="https://github.com/awslabs/aws-c-common"
-SRC_URI="https://github.com/awslabs/aws-c-common/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-inherit cmake flag-o-matic
-
-LICENSE="Apache-2.0"
-SLOT="0/1"
-KEYWORDS="~amd64 ~arm64 ~riscv"
-IUSE="test"
-
-RESTRICT="!test? ( test )"
-
-src_configure() {
- # -Werror=lto-type-mismatch
- # https://bugs.gentoo.org/967010
- # https://github.com/awslabs/aws-c-common/issues/1304
- filter-lto
-
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
diff --git a/dev-libs/aws-c-common/aws-c-common-1.0.0.ebuild b/dev-libs/aws-c-common/aws-c-common-1.0.0.ebuild
deleted file mode 100644
index 4ec20c47596d..000000000000
--- a/dev-libs/aws-c-common/aws-c-common-1.0.0.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="Core c99 package for AWS SDK for C"
-HOMEPAGE="https://github.com/awslabs/aws-c-common"
-SRC_URI="https://github.com/awslabs/aws-c-common/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-CMAKE_SKIP_TESTS=(
- # https://github.com/awslabs/aws-c-common/issues/1274
- test_file_path_read_from_offset_direct_io
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
diff --git a/dev-libs/aws-c-common/aws-c-common-1.0.2.ebuild b/dev-libs/aws-c-common/aws-c-common-1.0.2.ebuild
deleted file mode 100644
index 4ec20c47596d..000000000000
--- a/dev-libs/aws-c-common/aws-c-common-1.0.2.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="Core c99 package for AWS SDK for C"
-HOMEPAGE="https://github.com/awslabs/aws-c-common"
-SRC_URI="https://github.com/awslabs/aws-c-common/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-CMAKE_SKIP_TESTS=(
- # https://github.com/awslabs/aws-c-common/issues/1274
- test_file_path_read_from_offset_direct_io
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
diff --git a/dev-libs/aws-c-common/aws-c-common-1.0.1-r1.ebuild b/dev-libs/aws-c-common/aws-c-common-1.0.5.ebuild
index 7cac9b7ccbfb..8abe541c0a11 100644
--- a/dev-libs/aws-c-common/aws-c-common-1.0.1-r1.ebuild
+++ b/dev-libs/aws-c-common/aws-c-common-1.0.5.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit cmake
+inherit cmake flag-o-matic
DESCRIPTION="Core c99 package for AWS SDK for C"
HOMEPAGE="https://github.com/awslabs/aws-c-common"
@@ -15,16 +15,17 @@ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
-PATCHES=(
- "${FILESDIR}"/${P}-32-bit-time_t.patch
-)
-
CMAKE_SKIP_TESTS=(
# https://github.com/awslabs/aws-c-common/issues/1274
test_file_path_read_from_offset_direct_io
)
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/967010
+ # https://github.com/awslabs/aws-c-common/issues/1304
+ filter-lto
+
local mycmakeargs=(
-DBUILD_TESTING=$(usex test)
)
diff --git a/dev-libs/aws-c-common/files/aws-c-common-1.0.1-32-bit-time_t.patch b/dev-libs/aws-c-common/files/aws-c-common-1.0.1-32-bit-time_t.patch
deleted file mode 100644
index 7c6762b5e53d..000000000000
--- a/dev-libs/aws-c-common/files/aws-c-common-1.0.1-32-bit-time_t.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-https://github.com/awslabs/aws-c-common/pull/1282
-From: Arthur Zamarin <arthurzam@gentoo.org>
-Subject: [PATCH] Fix 32-bit time_t overflow in condition variable wait and
- thread sleep
-
-On platforms with a 32-bit time_t, aws_condition_variable_wait_for()
-computed the absolute deadline in seconds as a uint64_t and cast it to
-time_t. For large timeouts the value doesn't fit, wraps to a negative
-time in the past, and pthread_cond_timedwait() times out immediately
-instead of waiting.
-
-aws_thread_current_sleep() had the same truncation, so very long sleeps
-passed a wrapped tv_sec to nanosleep(), which either fails with EINVAL
-(negative) or sleeps far shorter than requested.
-
-Clamp the seconds value to the maximum time_t in both places, and add a
-regression test that waits with an INT64_MAX timeout.
-
-Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
---- a/source/posix/condition_variable.c
-+++ b/source/posix/condition_variable.c
-@@ -9,6 +9,7 @@
- #include <aws/common/mutex.h>
-
- #include <errno.h>
-+#include <limits.h>
-
- static int process_error_code(int err) {
- switch (err) {
-@@ -95,8 +96,16 @@ int aws_condition_variable_wait_for(
-
- struct timespec ts;
- uint64_t remainder = 0;
-- ts.tv_sec = (time_t)aws_timestamp_convert(
-+ uint64_t secs = aws_timestamp_convert(
- (uint64_t)(time_to_wait + current_sys_time), AWS_TIMESTAMP_NANOS, AWS_TIMESTAMP_SECS, &remainder);
-+
-+ /* time_t may be 32-bit: clamp far-future deadlines instead of letting them wrap into the past */
-+ const uint64_t time_t_max = ((uint64_t)1 << (sizeof(time_t) * CHAR_BIT - 1)) - 1;
-+ if (secs > time_t_max) {
-+ secs = time_t_max;
-+ remainder = 0;
-+ }
-+ ts.tv_sec = (time_t)secs;
- ts.tv_nsec = (long)remainder;
-
- int err_code = pthread_cond_timedwait(&condition_variable->condition_handle, &mutex->mutex_handle, &ts);
---- a/source/posix/thread.c
-+++ b/source/posix/thread.c
-@@ -478,10 +478,17 @@ bool aws_thread_thread_id_equal(aws_thread_id_t t1, aws_thread_id_t t2) {
-
- void aws_thread_current_sleep(uint64_t nanos) {
- uint64_t nano = 0;
-- time_t seconds = (time_t)aws_timestamp_convert(nanos, AWS_TIMESTAMP_NANOS, AWS_TIMESTAMP_SECS, &nano);
-+ uint64_t seconds = aws_timestamp_convert(nanos, AWS_TIMESTAMP_NANOS, AWS_TIMESTAMP_SECS, &nano);
-+
-+ /* time_t may be 32-bit: clamp long sleeps instead of letting them wrap to a negative (invalid) value */
-+ const uint64_t time_t_max = ((uint64_t)1 << (sizeof(time_t) * CHAR_BIT - 1)) - 1;
-+ if (seconds > time_t_max) {
-+ seconds = time_t_max;
-+ nano = 0;
-+ }
-
- struct timespec tm = {
-- .tv_sec = seconds,
-+ .tv_sec = (time_t)seconds,
- .tv_nsec = (long)nano,
- };
- struct timespec output;
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -52,6 +52,7 @@ add_test_case(mutex_try_lock_is_correct_test)
-
- add_test_case(conditional_notify_one)
- add_test_case(conditional_notify_all)
-+add_test_case(conditional_wait_for_max_timeout)
-
- add_test_case(error_code_cross_thread_test)
-
---- a/tests/condition_variable_test.c
-+++ b/tests/condition_variable_test.c
-@@ -146,3 +146,56 @@ static int s_test_conditional_notify_all_fn(struct aws_allocator *allocator, voi
- }
-
- AWS_TEST_CASE(conditional_notify_all, s_test_conditional_notify_all_fn)
-+
-+struct wait_for_max_test_data {
-+ struct aws_mutex mutex;
-+ struct aws_condition_variable condition_variable;
-+ bool done;
-+};
-+
-+static bool s_wait_for_max_predicate(void *arg) {
-+ struct wait_for_max_test_data *test_data = arg;
-+ return test_data->done;
-+}
-+
-+static void s_wait_for_max_thread_fn(void *arg) {
-+ struct wait_for_max_test_data *test_data = arg;
-+
-+ aws_thread_current_sleep(aws_timestamp_convert(100, AWS_TIMESTAMP_MILLIS, AWS_TIMESTAMP_NANOS, NULL));
-+
-+ aws_mutex_lock(&test_data->mutex);
-+ test_data->done = true;
-+ aws_condition_variable_notify_one(&test_data->condition_variable);
-+ aws_mutex_unlock(&test_data->mutex);
-+}
-+
-+/* Regression test: with a 32-bit time_t, a huge timeout used to wrap the deadline into the past,
-+ * so the wait timed out immediately instead of waiting to be notified. */
-+static int s_test_conditional_wait_for_max_timeout_fn(struct aws_allocator *allocator, void *ctx) {
-+ (void)ctx;
-+
-+ struct wait_for_max_test_data test_data = {
-+ .mutex = AWS_MUTEX_INIT,
-+ .condition_variable = AWS_CONDITION_VARIABLE_INIT,
-+ .done = false,
-+ };
-+
-+ ASSERT_SUCCESS(aws_mutex_lock(&test_data.mutex));
-+
-+ struct aws_thread thread;
-+ ASSERT_SUCCESS(aws_thread_init(&thread, allocator));
-+ ASSERT_SUCCESS(aws_thread_launch(&thread, s_wait_for_max_thread_fn, &test_data, NULL));
-+
-+ ASSERT_SUCCESS(aws_condition_variable_wait_for_pred(
-+ &test_data.condition_variable, &test_data.mutex, INT64_MAX, s_wait_for_max_predicate, &test_data));
-+ ASSERT_TRUE(test_data.done);
-+
-+ ASSERT_SUCCESS(aws_mutex_unlock(&test_data.mutex));
-+
-+ aws_thread_join(&thread);
-+ aws_thread_clean_up(&thread);
-+
-+ return AWS_OP_SUCCESS;
-+}
-+
-+AWS_TEST_CASE(conditional_wait_for_max_timeout, s_test_conditional_wait_for_max_timeout_fn)
diff --git a/dev-libs/aws-c-s3/Manifest b/dev-libs/aws-c-s3/Manifest
index 9fb31359d911..42d85472e91f 100644
--- a/dev-libs/aws-c-s3/Manifest
+++ b/dev-libs/aws-c-s3/Manifest
@@ -1,2 +1,3 @@
DIST aws-c-s3-1.3.1.tar.gz 571766 BLAKE2B 1cd7a362ef6f3c0651d65a9c35a95385a66ec7954502a341f54c9ed4289fe0523b41d43ab71bd3a926c65fc1620beecaa527131e016fb9dbaad1c8c18cd58652 SHA512 c69ebe6c70c57d77186c3a31a8f8c426e2236accf7e032528099f89ab901d8b2147c9bd8ac7487f51afc9135ace74851635826af0732c62c0b281620a610ac5b
DIST aws-c-s3-1.4.1.tar.gz 579749 BLAKE2B 2b51afe3fb5500e6108588f1296c13bfca6d1ce4f2e7ba8d97436463a12eaddb5f1341795b9389898bd59b09511fd3e83c23a2ea5240695d6858e9b840a05498 SHA512 19055cd4b601ac55729a4c75518c693be63cda3ae10df038e998abd968637028627b8bb313f751d3beff2110600ee6a1a5c39cf7bf2d8c635ae28055e8d0958c
+DIST aws-c-s3-1.5.0.tar.gz 596654 BLAKE2B 4fa8c3b0ef49419d3dc33250a58488c316d37c66551d55b1b51abd73023595f960cf78e3798e7c2af30efffc0061172f85d987b482e01b351a767d2f98d25457 SHA512 9af0bce45b475698d77750cf4d5e3a5d4b6ea996f7b9d0a59de7bb84ab645a8d9baaea243316a659d9a8feef14b01bebfd3bcbe3f77419e285f220360cdef918
diff --git a/dev-libs/aws-c-s3/aws-c-s3-1.5.0.ebuild b/dev-libs/aws-c-s3/aws-c-s3-1.5.0.ebuild
new file mode 100644
index 000000000000..baa3a2c3b042
--- /dev/null
+++ b/dev-libs/aws-c-s3/aws-c-s3-1.5.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="AWS C S3 async library"
+HOMEPAGE="https://github.com/awslabs/aws-c-s3"
+SRC_URI="https://github.com/awslabs/aws-c-s3/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ >=dev-libs/aws-c-auth-1.0.0:=
+ >=dev-libs/aws-c-cal-1.0.0:=
+ >=dev-libs/aws-c-common-1.0.0:=
+ >=dev-libs/aws-c-http-1.0.0:=
+ >=dev-libs/aws-c-io-1.1.1:=
+ >=dev-libs/aws-checksums-1.0.0:=
+"
+RDEPEND="${DEPEND}"
+BDEPEND="dev-libs/aws-c-common"
+
+src_configure() {
+ local mycmakeargs=(
+ -DAWS_GET_VERSION_MODULE="${ESYSROOT}/usr/$(get_libdir)/cmake/aws-c-common/modules/AwsGetVersion.cmake"
+ -DBUILD_TESTING=$(usex test)
+ )
+ use test && mycmakeargs+=(
+ -DENABLE_NET_TESTS=OFF # Network Sandbox cause these to fail.
+ )
+
+ cmake_src_configure
+}
+
+src_install()
+{
+ cmake_src_install
+
+ if use test; then
+ rm "${ED}/usr/bin/s3" || die
+ fi
+}
diff --git a/dev-libs/iniparser/iniparser-4.3.2.ebuild b/dev-libs/iniparser/iniparser-4.3.2.ebuild
index c55f13e2f22f..97a0adfaf5c3 100644
--- a/dev-libs/iniparser/iniparser-4.3.2.ebuild
+++ b/dev-libs/iniparser/iniparser-4.3.2.ebuild
@@ -12,7 +12,7 @@ S=${WORKDIR}/${PN}-v${PV}
LICENSE="MIT"
SLOT="0/4"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
IUSE="doc examples"
# tests need work, uses ruby + fetchcontent
RESTRICT="test"
diff --git a/dev-libs/s2n-tls/Manifest b/dev-libs/s2n-tls/Manifest
index 0fbeb7135db5..028550d079a9 100644
--- a/dev-libs/s2n-tls/Manifest
+++ b/dev-libs/s2n-tls/Manifest
@@ -2,4 +2,5 @@ DIST s2n-tls-1.6.0.tar.gz 5108926 BLAKE2B 3ba2e31607bf9807caa715f526171e930c10e8
DIST s2n-tls-1.7.10.tar.gz 4938244 BLAKE2B 475c343a0887f966c53e06021b73bf24401cab1d0a2ab5a55ae8a9c378a945e93c38347abbd0d27e706f56e1504647efdce30b5e03da35ff49e7a2f3024619d0 SHA512 fadd8cdd5fca93f7390fe726441f14da81093dd74ead83057fe19c5bcaae759b17b01b33f418ae09d77a22da51dd09db4debde2f5e978dfa12840b0b4a9628ac
DIST s2n-tls-1.7.11.tar.gz 4969344 BLAKE2B 21382835ffa840f38cef598b80398ee88251612044adac72fbe885792d266af6bc1fb9d7e64a02d33f1a4fbc71b845c5f4bfb08e118c65b88c2de2895db05ae3 SHA512 fa3426f1154410fa208ed2486e512daaadc9d715346a090e02ad5d8495e557184cc04ab50337def5c88b6c4cfee4dcdddfd92b1c1f5b3a05846cd3ef431a961a
DIST s2n-tls-1.7.12.tar.gz 4969027 BLAKE2B 2dce99695d63502580818ee47faba76455c2212572e62b5a63574a71d38794181df741c8b1334102e9c44cfeb263b5334b3794fee72834b7f9c09f8d43edd31d SHA512 dd1d26f446dd939c66c9f3d989048eb6fdd01f49ddcf6027c098e63b95be9a0bfca771ea65f145072e231acd5aa215fe00f41b8c3fcbd92fb02f74303f3c6a81
+DIST s2n-tls-1.7.13.tar.gz 4975331 BLAKE2B 42ba4e169ff588f9d263a37eff0025a6bcc8272fc2698d6e97a762a5749d6f396b77c146acb0bc1b3735bff0963269f35b1fef0e9f0210eda8f38dad69ef248f SHA512 d760e9f331b3b921c32e9fb5c0c3538ae01dad22bca4097378712028aa2dd5b99b544faeb2e99fe55575dc4200b78fe839f60b252da00b96cdc604fd73b06be5
DIST s2n-tls-1.7.9.tar.gz 4934186 BLAKE2B c75bfd9a658f94ba667385072c65f6c470562fd0b80f4c507b92c21d8e9a8bd84b753db55b07c78c359c43c7b51bb7364d017cc4c8afccc529fe2383a48ce4e8 SHA512 b963727d39d807ab651000f9a6bf730c1ca03065bbb44f848efc825051328e22170880af37b6d10f2117c5cf3ccf85b081db0686e79d15249d5846eae64ef90a
diff --git a/dev-libs/s2n-tls/s2n-tls-1.7.13.ebuild b/dev-libs/s2n-tls/s2n-tls-1.7.13.ebuild
new file mode 100644
index 000000000000..8a6a137a3742
--- /dev/null
+++ b/dev-libs/s2n-tls/s2n-tls-1.7.13.ebuild
@@ -0,0 +1,35 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="s2n-tls is a C99 implementation of the TLS/SSL protocols"
+HOMEPAGE="https://github.com/aws/s2n-tls"
+SRC_URI="https://github.com/aws/s2n-tls/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="dev-libs/openssl:="
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ cmake_src_prepare
+
+ # stop overwriting LDFLAGS
+ sed -i -e '/set(CMAKE_SHARED_LINKER_FLAGS/d' CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_TESTING=$(usex test ON OFF)
+ -DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-python/configargparse/Manifest b/dev-python/configargparse/Manifest
index d5527d7321b2..72c2f0a9d70e 100644
--- a/dev-python/configargparse/Manifest
+++ b/dev-python/configargparse/Manifest
@@ -1,6 +1,6 @@
-DIST configargparse-1.7.5.tar.gz 53548 BLAKE2B 4ec999d7e5ac68189b6642b15d2bd2ebac7b25816ccee6a0bfaa1e8624e12e501d614bc8a859f103a519364ff7c2d13afa86a6f9f949d545f799cd6c820a3d62 SHA512 7b6541d0e38ef54ecd3c87d4bd986d041db54b069112d01b24bcb5741d729f73826722e8b0c6bb4959c6066a8b5c6b57a4234b78526879ef8472edfd63eb5de6
-DIST configargparse-1.7.5.tar.gz.provenance 9317 BLAKE2B eb08f865429758ab64c6982f51b8d1ef4d85e1c1fd344976e4a1146bc4e98336bbc56205f8ed08ece34e314eb5459d0a00c1a96733f0c7c046025bfcf0a42f1b SHA512 f1b87d21b556e4c59ed2ce74d5507c2af296ebaba7a0dc6a31f67492ca04305a5f93d3e7f751207c3094f2526e7815ecac0080d1c3eebbe2d7e6479f1a78c0d6
DIST configargparse-1.7.7.tar.gz 73397 BLAKE2B e2362ab5e391f11fd434289e75da15143f612be75fa2bd44605006dc3ed928a03f460dfdceded173c272d5f12c497eee2b6a70361b8a7b25cd68aaac74f68dfd SHA512 3b1e21a8b4fdcdf357ab0c74fe5db09a405dab13e4b84090ef1217e90f82ed84f6e286e56124292d57e4685d47c48afae90fccaa4acb56bb6ea69e0afeb8e31c
DIST configargparse-1.7.7.tar.gz.provenance 9585 BLAKE2B df4a7c15dfbc2656a501e73af5401c554f1de40e7d632193cfbc613ea819573b92b4150fdb0a4c20bfff11b994ccef7a8038d2b724ec330a768fab85e2c56f45 SHA512 1998aa807c619bd106e86aae5243e619e8e08581968821ae7ee2c598ea2d7085d1b68503ef1eac3029dc28c50bb8de39a9c30b67c1b1d7e5fac80e3a88cf130b
DIST configargparse-1.8.0.tar.gz 74830 BLAKE2B c92939688e10e67660727a185d9baa31cd44889c469e0029f31c6dc649dfbeb41fd5f8089f77ab278f4227284fdb8db1d705d47d568b63bcdb967f07df22c4e5 SHA512 0403d793aed9357f86dd0da9208b9ac81d95bde3371560de7ddf9f836e5295786f011a47275c28ed1ce77d329e3c8f078dfeee509b17f9d112156e179ec8297d
DIST configargparse-1.8.0.tar.gz.provenance 9444 BLAKE2B 95fb404132275353d0c8adbfc6394c7d9ee288fbca600ed708adc38c76c989074724bcaf1cb921aed51343feb2c01ce6ee0592edc86a755450175862f0ab88fa SHA512 21464b1765db90ca2fb6ccfb006af7e4e77405b23193bcba28661b522855788e7b0d2ba464d4a4d23b759fa27865b78d2e1b31695dc0a1311709b332fa849ac9
+DIST configargparse-1.9.0.tar.gz 83875 BLAKE2B 3513d73357a2c348bfcafc2fa8b29698622f975f983c1d378dfd1f60d7dd71fec6462c446adc5e9f71d7d6a1e6efbf10fce3e5148e82ddf431183200bbdd5a43 SHA512 6ec6164727412724208084cc5917fbe714e3e97fe8e615c637e7a433571e8ba4dc80b93ab737074bcf10155a111bb5d374f03f511051e6959ee1741d9454c7e2
+DIST configargparse-1.9.0.tar.gz.provenance 9606 BLAKE2B 2ca4c9209d869d4e6722796438f1a1e36fec8c041b536a948b5fa8286ae6e41889e916db97edfd1654c965bf8c66cf9f1b1c70ac90f9f6caa9e76e3289d96583 SHA512 fc260de2b6b13836d51f2f847e40628bef92b41a37c84ab399b2c6a316b3fa0906fb1a2277d7c6e050e14fb77efb77d101d33547a9702edc584a877c998b7fc7
diff --git a/dev-python/configargparse/configargparse-1.7.5.ebuild b/dev-python/configargparse/configargparse-1.9.0.ebuild
index fb8e4a973efe..009ab059aa3b 100644
--- a/dev-python/configargparse/configargparse-1.7.5.ebuild
+++ b/dev-python/configargparse/configargparse-1.9.0.ebuild
@@ -16,9 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
BDEPEND="
test? (
@@ -26,9 +24,5 @@ BDEPEND="
)
"
-distutils_enable_tests unittest
-
-src_test() {
- local -x COLUMNS=80
- distutils-r1_src_test
-}
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/configupdater/Manifest b/dev-python/configupdater/Manifest
index 9a0b09c756c8..dc4c02315b7b 100644
--- a/dev-python/configupdater/Manifest
+++ b/dev-python/configupdater/Manifest
@@ -1,3 +1,5 @@
DIST configupdater-3.2.gh.tar.gz 139435 BLAKE2B c65db82b4dd2cc944772418e2166516aed610cf63bc693b16b5d62872700a6a75fefb144ea2e17300c3b665489fa66dc7dbca4396235d18f962c9ed105fedf97 SHA512 700925a27033049de6fc3ee1fbafc4968ea2cc0683ae66725da5cffeff2f5e0e85229c6560e685976023955ce7d642fe7182e67a6a8dea2d4953531cf5938812
+DIST configupdater-4.0.1.tar.gz 143715 BLAKE2B 772fb92ec555c51aa8f6e09e6ae977f81b4f5fa347d7ce1f22cae720fd3943275d0ac474f782748f67c247594861861eb1c48792299931018b9068edbb920b91 SHA512 184306f59131ca93d83ba8c3bb563ebf84682736ee6c8b1ae1ef39290eaa39dd5c7d8abd682c0ebdfdf655ccb9776340c2ea0685fcbf50e7dabbd1d5568d9a30
+DIST configupdater-4.0.1.tar.gz.provenance 9931 BLAKE2B 48e909d6b6898636624fc6cb82061129f121d3803b921e7215650e453be2be6fd5b2c9a0afb0b7579aea4c730387b6b1caa74f98d7484c6b0e0fc33872a7e2c9 SHA512 8175cc4b8870f460db11a1f3b27db9816cf6281b560cf54e2702eb7bc62caa42c4d434d36903e9ef8a3bf69b7e6cd204631eabf42b97253713343d73a8c4707b
DIST configupdater-4.0.tar.gz 142596 BLAKE2B 3b4ff5abf985aca291a2119bb0c038e99d5916ad2776cd10334fe1ab663f5284a87a32bad871752311ac3d72511f04a4512cc730151439af0cc966b6d0b3e6dd SHA512 fd78a3b75b95a297f31093e0cc3dc47332c0d12c74d1d1c8318978a827017b870faf6baa68e27dcc92b6a34b8c6a175f06af9dbdf550c6cb098eab0910ecd76d
DIST configupdater-4.0.tar.gz.provenance 10126 BLAKE2B f79fa98e7fb2ef6e663631e1cbc2ee5c6e8ebb618323a5bf47ca15bcabbf6171c4533c869b8303ba813846ff22f3ed9741375f44cb3672f18a388413f5cba30f SHA512 b2af0c664c1ef3d83e8e6f43392bab975e9ecd7abf40933f7ca663c8967a9726c114f03df624c20064c338ec027a8ad322dad11342bbd95120a3aff698f13920
diff --git a/dev-python/configupdater/configupdater-4.0.1.ebuild b/dev-python/configupdater/configupdater-4.0.1.ebuild
new file mode 100644
index 000000000000..7e04bc388099
--- /dev/null
+++ b/dev-python/configupdater/configupdater-4.0.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pyscaffold/configupdater
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Parser like ConfigParser but for updating configuration files"
+HOMEPAGE="
+ https://github.com/pyscaffold/configupdater/
+ https://pypi.org/project/ConfigUpdater/
+"
+
+LICENSE="MIT PSF-2 PYTHON"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/flask/files/flask-3.1.3-pytest9.1.patch b/dev-python/flask/files/flask-3.1.3-pytest9.1.patch
new file mode 100644
index 000000000000..8a414774b4f3
--- /dev/null
+++ b/dev-python/flask/files/flask-3.1.3-pytest9.1.patch
@@ -0,0 +1,119 @@
+From 5ce121dd841e2dc2594d0ed3954278f4101d3521 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Tue, 14 Jul 2026 12:07:37 +0200
+Subject: [PATCH] Replace the use of private `monkeypatch` fixture API
+
+---
+ tests/conftest.py | 43 +++++++++++++------------------------------
+ tests/test_cli.py | 8 ++++----
+ 2 files changed, 17 insertions(+), 34 deletions(-)
+
+diff --git a/tests/conftest.py b/tests/conftest.py
+index 214f520338..60bf5f4baf 100644
+--- a/tests/conftest.py
++++ b/tests/conftest.py
+@@ -2,43 +2,26 @@
+ import sys
+
+ import pytest
+-from _pytest import monkeypatch
+
+ from flask import Flask
+ from flask.globals import request_ctx
+
+
+-@pytest.fixture(scope="session", autouse=True)
+-def _standard_os_environ():
+- """Set up ``os.environ`` at the start of the test session to have
+- standard values. Returns a list of operations that is used by
+- :func:`._reset_os_environ` after each test.
+- """
+- mp = monkeypatch.MonkeyPatch()
+- out = (
+- (os.environ, "FLASK_ENV_FILE", monkeypatch.notset),
+- (os.environ, "FLASK_APP", monkeypatch.notset),
+- (os.environ, "FLASK_DEBUG", monkeypatch.notset),
+- (os.environ, "FLASK_RUN_FROM_CLI", monkeypatch.notset),
+- (os.environ, "WERKZEUG_RUN_MAIN", monkeypatch.notset),
+- )
+-
+- for _, key, value in out:
+- if value is monkeypatch.notset:
+- mp.delenv(key, False)
+- else:
+- mp.setenv(key, value)
+-
+- yield out
+- mp.undo()
+-
+-
+ @pytest.fixture(autouse=True)
+-def _reset_os_environ(monkeypatch, _standard_os_environ):
+- """Reset ``os.environ`` to the standard environ after each test,
+- in case a test changed something without cleaning up.
++def _standard_os_environ(monkeypatch):
++ """Set up ``os.environ`` at the start of every test to have
++ standard values.
+ """
+- monkeypatch._setitem.extend(_standard_os_environ)
++ for key in (
++ "FLASK_ENV_FILE",
++ "FLASK_APP",
++ "FLASK_DEBUG",
++ "FLASK_RUN_FROM_CLI",
++ "WERKZEUG_RUN_MAIN",
++ ):
++ monkeypatch.delenv(key, False)
++
++ yield
+
+
+ @pytest.fixture
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index e254c1dd8e..79025dda7f 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -11,7 +11,6 @@
+
+ import click
+ import pytest
+-from _pytest.monkeypatch import notset
+ from click.testing import CliRunner
+
+ from flask import Blueprint
+@@ -534,9 +533,8 @@ def dotenv_not_available():
+
+ @need_dotenv
+ def test_load_dotenv(monkeypatch):
+- # can't use monkeypatch.delitem since the keys don't exist yet
+ for item in ("FOO", "BAR", "SPAM", "HAM"):
+- monkeypatch._setitem.append((os.environ, item, notset))
++ monkeypatch.delenv(item, False)
+
+ monkeypatch.setenv("EGGS", "3")
+ monkeypatch.chdir(test_path)
+@@ -559,7 +557,7 @@ def test_load_dotenv(monkeypatch):
+ @need_dotenv
+ def test_dotenv_path(monkeypatch):
+ for item in ("FOO", "BAR", "EGGS"):
+- monkeypatch._setitem.append((os.environ, item, notset))
++ monkeypatch.delenv(item, False)
+
+ load_dotenv(test_path / ".flaskenv")
+ assert Path.cwd() == cwd
+@@ -567,6 +565,7 @@ def test_dotenv_path(monkeypatch):
+
+
+ def test_dotenv_optional(monkeypatch):
++ monkeypatch.delenv("FOO", False)
+ monkeypatch.setitem(sys.modules, "dotenv", None)
+ monkeypatch.chdir(test_path)
+ load_dotenv()
+@@ -575,6 +574,7 @@ def test_dotenv_optional(monkeypatch):
+
+ @need_dotenv
+ def test_disable_dotenv_from_env(monkeypatch, runner):
++ monkeypatch.delenv("FOO", False)
+ monkeypatch.chdir(test_path)
+ monkeypatch.setitem(os.environ, "FLASK_SKIP_DOTENV", "1")
+ runner.invoke(FlaskGroup())
diff --git a/dev-python/flask/flask-3.1.3.ebuild b/dev-python/flask/flask-3.1.3.ebuild
index 1a5bcbd89069..862265fc3c71 100644
--- a/dev-python/flask/flask-3.1.3.ebuild
+++ b/dev-python/flask/flask-3.1.3.ebuild
@@ -34,11 +34,9 @@ RDEPEND="
>=dev-python/jinja2-3.1.2[${PYTHON_USEDEP}]
>=dev-python/werkzeug-3.1.0[${PYTHON_USEDEP}]
"
-# pytest-9.1: https://github.com/pallets/flask/issues/6071
BDEPEND="
test? (
>=dev-python/asgiref-3.2[${PYTHON_USEDEP}]
- <dev-python/pytest-9.1[${PYTHON_USEDEP}]
!!dev-python/shiboken2[${PYTHON_USEDEP}]
)
"
@@ -57,6 +55,11 @@ EPYTEST_DESELECT=(
tests/test_reqctx.py::test_bad_environ_raises_bad_request
)
+PATCHES=(
+ # https://github.com/pallets/flask/pull/6095
+ "${FILESDIR}/${P}-pytest9.1.patch"
+)
+
python_install_all() {
use examples && dodoc -r examples
distutils-r1_python_install_all
diff --git a/dev-python/flit-core/Manifest b/dev-python/flit-core/Manifest
index 96fa747374a3..c8941e72e567 100644
--- a/dev-python/flit-core/Manifest
+++ b/dev-python/flit-core/Manifest
@@ -4,3 +4,5 @@ DIST flit_core-4.0.2.tar.gz 53083 BLAKE2B 3825bcb6dbfde73907e2705de94a33d7d12831
DIST flit_core-4.0.2.tar.gz.provenance 8836 BLAKE2B 399becda7ce362501d1526bcea33bcec6b1c45ae595fe791d9fa8d1c121b1d1a8986940792f50910584952c5eb685ab2be3a858225e2ca34f793035c5c34261f SHA512 41f37ef2a0b0f4173a0df3cbff86b92b9bf6dd1605786c2eabf33f8c881c63226a4e9beafeecdf6f6c82d07866fe05e4c20075b4317cceb1ea2986cf9c08a8ee
DIST flit_core-4.1.0.tar.gz 54678 BLAKE2B 512c8dcc19a9b7b8a51be5f0853db96a332b02fed7c65f1e7f9ec91ed0b691b2764622a69fa680152ae7f323d479bef6f13b26a6fc43cd62044d2b51fecdf73c SHA512 a6f65a6af0c164886a35f7709684d967c24a49bf302c57590cb1a97b64a3a6f6a6bcbb488c5d3a24c927bf04db183e4f0f23fa50b3545c969fa9c50035e19bca
DIST flit_core-4.1.0.tar.gz.provenance 9406 BLAKE2B 781f3718df13de9ea1673f8258358cd60582bbd4e89af63181d71e0f71e050a6fbaf59773865b9e2b5f0c77914239f92c0878f31cc7dae251152bbf969c9709f SHA512 1b73d3ccf54648a908f7dcb84585c3f7fae3ea3c03ad2d97587c38a789d8d43b94c4fb8f6703f07ce7a77c191b51b5771465fa99b50d99d408f4f7d98574952a
+DIST flit_core-4.2.0.tar.gz 59707 BLAKE2B 652756f46fd635c3b554ebfc82e7699e4030b409f9fac83ed48f62a9c09492b9256ce072a15c56d75421d325efc2bbda10cdd3f12558f15877e8b0e547a02cff SHA512 c1f9d4144499fa9e69567c54ca20439d21fc42705eb019c3dfd8e1ff08b56d52d0641dd65f7cd3fb42f8d7b994380371c2f27c0a4a8794b34ed1ad8354e2bdb5
+DIST flit_core-4.2.0.tar.gz.provenance 9102 BLAKE2B 3df05763a16d8459e59e614500fad7a6f8ac1f1afb25a0bd9c48ce393b31bb97b2991ce944da5af9631e26f48838968bad7595f33c2625666336dbbe449afcbc SHA512 be4f4650de83130257967ddeb59d9df841105cf5ebd877f26829e4a119905ab037bb1301b04acda528a52ba084bdf5247c66ce76b90cc1f97dc6816f5c95db92
diff --git a/dev-python/flit-core/flit-core-4.2.0.ebuild b/dev-python/flit-core/flit-core-4.2.0.ebuild
new file mode 100644
index 000000000000..021aff4643d7
--- /dev/null
+++ b/dev-python/flit-core/flit-core-4.2.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/pypa/flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simplified packaging of Python modules (core module)"
+HOMEPAGE="
+ https://pypi.org/project/flit-core/
+ https://github.com/pypa/flit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? ( dev-python/testpath[${PYTHON_USEDEP}] )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # unbundle deps
+ rm -r flit_core/vendor || die
+ sed -i -e 's:from \.vendor ::' flit_core/*.py || die
+ sed -i -e '/license-files/d' pyproject.toml || die
+}
diff --git a/dev-python/flit/Manifest b/dev-python/flit/Manifest
index a3314a159f27..849e1b8f4362 100644
--- a/dev-python/flit/Manifest
+++ b/dev-python/flit/Manifest
@@ -2,3 +2,5 @@ DIST flit-4.0.2.tar.gz 154725 BLAKE2B fe2b85d8cd79e33023cbdd29beb569de9afda26b45
DIST flit-4.0.2.tar.gz.provenance 8875 BLAKE2B edff0f307dcd89d54c24c32067c3c6663a0d4ab3cb1722b387f6ed506d8f2784a2a827bd33ca83573e8d88f2cf893acaef71d6153f49e332bc89f85c32e93a56 SHA512 0c3a7b87e7e06cb41fe191b81ca0d493e9addbed01a4a494ca35ddbb76212315506bcea905161813caef2e837c98bba4176d7592d2252c68b209c06086e365fa
DIST flit-4.1.0.tar.gz 157085 BLAKE2B 9fdfa02b2d079267ba51775066fb48fe8606c2cb7527c43a6eaed6ac522fa8626fca0cff3fb47198e1e44be9f733cf2c9bf00cb3a37042203b01b5b88b43de68 SHA512 3875572d922f940b5bc562b39e0c88f1166b3a819590d1ba13a73e80c2b9a43c2c237a9ab8c44e9ac405ab1d8368952e1264a1e7010e844ebb3e8faccc2b76e5
DIST flit-4.1.0.tar.gz.provenance 9253 BLAKE2B b0d4ac5ed30ffae235250faded6857057ff40c1495bdeb5258bbad4f78dbad2d05fed8577943158fb47e46047f30c367a0fa285855cf34398c55297020b9be1f SHA512 8588c20247c9c4f1105ff08e033132cea067391971992cf37f75c666e28a676402914fbdc28dcf15bb20485d5fdb276424e47605da3f8eb495b26ef81b42dfe2
+DIST flit-4.2.0.tar.gz 166311 BLAKE2B 3b75af75a31fec6699916dbd2d42c28445cd5e07ed554515d5203ae9b41775a5d971373483a8001b6ec424cdf0f5f34217798c437395e93e6eec809d340f96b1 SHA512 001fe8d3e6e6acb80a9e94eb9fdb75e32ba1f8af80da7aa703d0187bffb58d6183b1784c726e1396d2e196602fdf3b557776021b94c1a19277c0e620f9bdc54e
+DIST flit-4.2.0.tar.gz.provenance 9188 BLAKE2B df50605ceaa2eba4193de476315ccb497417516511481aa2e03836d922cf0272f67d075236893935830389de14bc196048d34045e2de875f5077ae1211cae5a3 SHA512 29183d1ba22d94f9450c8fdfeb2c636b786210fe012335bc130de57ebaf72c63f76dc3f692a756ae673fb455b15979e28ffbf6ec6bed786a98dc36dd216c2cb0
diff --git a/dev-python/flit/flit-4.2.0.ebuild b/dev-python/flit/flit-4.2.0.ebuild
new file mode 100644
index 000000000000..c79615507f5a
--- /dev/null
+++ b/dev-python/flit/flit-4.2.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/pypa/flit
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Simplified packaging of Python modules"
+HOMEPAGE="
+ https://github.com/pypa/flit/
+ https://flit.readthedocs.io/
+ https://pypi.org/project/flit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~mips ~x86"
+
+RDEPEND="
+ dev-python/docutils[${PYTHON_USEDEP}]
+ >=dev-python/flit-core-${PV}[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ sys-apps/grep
+ test? (
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/testpath[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_DESELECT=(
+ # requires Internet
+ tests/test_config.py::test_invalid_classifier
+ # failing due to Gentoo pip patches
+ tests/test_install.py::InstallTests::test_install_data_dir
+ tests/test_install.py::InstallTests::test_install_module_pep621
+ tests/test_install.py::InstallTests::test_symlink_data_dir
+ tests/test_install.py::InstallTests::test_symlink_module_pep621
+)
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+distutils_enable_sphinx doc \
+ dev-python/sphinxcontrib-github-alt \
+ dev-python/pygments-github-lexers \
+ dev-python/sphinx-rtd-theme
+
+src_prepare() {
+ # make sure system install is used
+ rm -r flit_core || die
+ distutils-r1_src_prepare
+}
diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest
index 8cf7701be851..807e50f499fb 100644
--- a/dev-python/fonttools/Manifest
+++ b/dev-python/fonttools/Manifest
@@ -1,5 +1,4 @@
-DIST fonttools-4.64.0.gh.tar.gz 4106541 BLAKE2B 5bdddac2b811e47567948a48bef0de7c74510b3334bf0710d08986c41f2c9b4d41a16fbc2266ed55923197602b2ecc8525ed0ebfd4636518eb64ee13db4fee9b SHA512 1cf3d8ab10931e6eca3f54e2d365a946413d90e2a8fe0405252db14a51e2908c109c6a65f7b0fb5fabaeb0e30eb27b5b737bf2d1b75a3137806bc88f140a0faa
-DIST fonttools-4.65.0.gh.tar.gz 4113728 BLAKE2B a8315b819ae12417b6757956d237fa9fffb4a2e75dc893c00be0dafe529880e161070f9496594b3414a0ef0932fe84092d1910ca2f292acc6cf9f1ba07506347 SHA512 b6066e438e5237ff18e9b44343d3533ccd4468ac4e685b066a1f5da035161c082468c025ff79832eec534e29a8bbac7cc558301b13abdb763c61f91d0ceecafa
DIST fonttools-4.66.0.gh.tar.gz 4129212 BLAKE2B d35d913e0dda168b623cff44a7fa430b5d5922e5ffdca3c0b14f7882780c26412b0e001dd2d277e806f5202fac1deb05bda12291343de45a5ac92482beb8e1db SHA512 01db954f6f895d941dbae3cbf900683e737ec8b4f46fc2b7158cdf9fab2fb350b9121724088521b5d790d2e5ec0e70939ae1757d1612c87616ecbfec2b9ae0b9
DIST fonttools-4.66.1.gh.tar.gz 4131087 BLAKE2B dd76251baec8d84b91dda84aa3abde77a58a09a3ab105f4cfe17eacfd54774ea2e4fb654aba616b5b2b355da4cfc5e5ee43d1f276a38e6daee950aef502df86d SHA512 3a9eceeb3ca630c3e8565e9a097e140c8552bd641e8db4ba4ddd4298a0df43283844d8b655d92922d3caf33d8deff25f08d558362b62184e450148a2cfc9d2ee
DIST fonttools-4.67.0.gh.tar.gz 4184076 BLAKE2B a7453ceb3709b344b32b70dd415e5bfab2d55fbf775e9f21f9228519b49b51dec640b48d6ddb12c8355928462ebf378b3ac20ac097a3099781d83c5187c59cfa SHA512 98f8b15033e6df01a2e4f85645bf70670fecadd544889d13392dd5af2b35c7f3b229f41b555120fa1f4ebfabcd63720d663ae684fc27185f3c6d805e731ade3d
+DIST fonttools-4.68.0.gh.tar.gz 4275564 BLAKE2B fb984f4240652fb54c3dc8d49c9ad6173c6aba4f9bff5f7675608abd5472215ad02ca9995662ef4a2ef4eab0baab0a32f230bc17807d7bf1659ad5c2c692bfa2 SHA512 3e0ad3524d83cf094862919b760c49f9e62f73528b7d90d8f431d386ecb36a5312402458dc6202cfba78647024f57210ad7e055b28acff5fcbdd0b2360b7517d
diff --git a/dev-python/fonttools/fonttools-4.65.0.ebuild b/dev-python/fonttools/fonttools-4.65.0.ebuild
deleted file mode 100644
index 1d2fdb7145dd..000000000000
--- a/dev-python/fonttools/fonttools-4.65.0.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="xml(+)"
-
-inherit distutils-r1 virtualx
-
-DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts"
-HOMEPAGE="
- https://github.com/fonttools/fonttools/
- https://pypi.org/project/fonttools/
-"
-SRC_URI="
- https://github.com/fonttools/fonttools/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="+native-extensions"
-
-BDEPEND="
- native-extensions? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- ' 'python*')
- )
- test? (
- dev-python/brotlicffi[${PYTHON_USEDEP}]
- dev-python/munkres[${PYTHON_USEDEP}]
- app-arch/zopfli
- )
-"
-
-EPYTEST_PLUGINS=( pytest-rerunfailures )
-# woff2 tests are extremely flaky
-EPYTEST_RERUNS=20
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_compile() {
- local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
- [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
- distutils-r1_python_compile
-}
-
-src_test() {
- # virtualx used when matplotlib is installed causing plot module tests to run
- virtx distutils-r1_src_test
-}
-
-python_test() {
- # nonfatal for virtx
- nonfatal epytest Tests fontTools ||
- die -n "Tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/fonttools/fonttools-4.64.0.ebuild b/dev-python/fonttools/fonttools-4.68.0.ebuild
index 1d2fdb7145dd..ba3df1e78639 100644
--- a/dev-python/fonttools/fonttools-4.64.0.ebuild
+++ b/dev-python/fonttools/fonttools-4.68.0.ebuild
@@ -22,14 +22,12 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="+native-extensions"
BDEPEND="
native-extensions? (
- $(python_gen_cond_dep '
- dev-python/cython[${PYTHON_USEDEP}]
- ' 'python*')
+ dev-python/cython[${PYTHON_USEDEP}]
)
test? (
dev-python/brotlicffi[${PYTHON_USEDEP}]
@@ -44,9 +42,21 @@ EPYTEST_RERUNS=20
EPYTEST_XDIST=1
distutils_enable_tests pytest
+EPYTEST_DESELECT=(
+ # length mismatches; possibly zlib-ng?
+ Tests/ttLib/woff2_test.py::WOFF2ReaderTTFTest::test_table_tags
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_calcTotalSize_no_flavorData
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_calcTotalSize_with_metaData
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_calcTotalSize_with_metaData_and_privData
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_calcTotalSize_with_privData
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_checksums
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_head_transform_flag
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_hmtx_trasform
+ Tests/ttLib/woff2_test.py::WOFF2WriterTest::test_no_transforms
+)
+
python_compile() {
local -x FONTTOOLS_WITH_CYTHON=$(usex native-extensions)
- [[ ${EPYTHON} == pypy3 ]] && FONTTOOLS_WITH_CYTHON=0
distutils-r1_python_compile
}
diff --git a/dev-python/hatchling/Manifest b/dev-python/hatchling/Manifest
index a59e8bccf95f..ccb947e79885 100644
--- a/dev-python/hatchling/Manifest
+++ b/dev-python/hatchling/Manifest
@@ -1,2 +1,3 @@
DIST hatch-hatchling-v1.32.0.gh.tar.gz 5360982 BLAKE2B a3eea27c39600ccf7b45e1b8de28112f3b92380f80579049013101cefde5f734225d71ac330d1b76a6c39c8f2e4a6e8b116f548b5eab305852a71d6d0b6c0094 SHA512 e8165a4444675382938502e692877cdad4a3f24e11f4b38bd0f6ae6ecc8a4fdde343ef5827719c803e5b40beddfd2a934d633270f0c200e3615c9b797038681e
DIST hatch-hatchling-v1.32.4.gh.tar.gz 5364548 BLAKE2B be84990cf0a04a180221fa14642e7245c2b58830f2d538ba82446e4f525812cd9af598cc41e734b9c9e158c103c8f073abf2e5f240fa6fedf83d154bd092c453 SHA512 b595da39a0a614ba9f744f743be556be9a7be29a491646d64a2c206b044f2cda020120ebbf3d2975db8418af3b2c03152a3c3c82a8c60efae5ed0b6101f7ca7e
+DIST hatch-hatchling-v1.33.0.gh.tar.gz 5366789 BLAKE2B 51390772535a9d9fbefd2a1907589c5ddde8984655c4bf315e9a3f10ba5536aaf6226f8ae8daa30ed2fcbc59242cc248308903d981f8aead8eb17f62dca99107 SHA512 e23839d3a4fcefed5d0daa6f427f08c6ab1f6e04e5d229582dad5db0371367c0da4de2581319bdb34e474e9a278fe7dd45ed2848335f57e6b679daf285a0c75a
diff --git a/dev-python/hatchling/hatchling-1.33.0.ebuild b/dev-python/hatchling/hatchling-1.33.0.ebuild
new file mode 100644
index 000000000000..1c1aa7618121
--- /dev/null
+++ b/dev-python/hatchling/hatchling-1.33.0.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{13..14} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+TAG=${P/-/-v}
+MY_P=hatch-${TAG}
+DESCRIPTION="Modern, extensible Python build backend"
+HOMEPAGE="
+ https://pypi.org/project/hatchling/
+ https://github.com/pypa/hatch/
+"
+SRC_URI="
+ https://github.com/pypa/hatch/archive/${TAG}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/backend
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# deps are listed in backend/src/hatchling/ouroboros.py
+# editables are optional but required for editable installs
+RDEPEND="
+ >=dev-python/editables-0.3[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/pathspec-0.10.1[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.11.1[${PYTHON_USEDEP}]
+ dev-python/trove-classifiers[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/atomicwrites[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/platformdirs[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ dev-python/tomli-w[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+
+src_test() {
+ # top-level "tests" directory contains tests both for hatch
+ # and hatchling
+ cd "${WORKDIR}/${MY_P}" || die
+
+ # sigh; standalone test suites are overrated, right?
+ echo "__version__ = '${PV}'" > src/hatch/_version.py || die
+ local -x PYTHONPATH="src:${PYTHONPATH}"
+
+ # do not require uv for portability, sigh
+ mkdir "${T}/bin" || die
+ cat > "${T}/bin/uv" <<-EOF || die
+ #!/bin/sh
+ exit 127
+ EOF
+ chmod +x "${T}/bin/uv" || die
+ local -x PATH=${T}/bin:${PATH}
+
+ # tests mock cargo subprocess call but the backend raises if CARGO
+ # is not set and shutil.which() can't find it
+ local -x CARGO=cargo
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ einfo "Skipping tests on ${EPYTHON}"
+ return
+ fi
+
+ local -x EPYTEST_DESELECT=(
+ # most of these run uv to install stuff
+ # the few remaining tests aren't worth running
+ tests/backend/dep/test_core.py
+ # broken if CARGO is set
+ tests/backend/builders/test_binary.py::TestBuildBootstrap::test_no_cargo
+ )
+
+ local EPYTEST_PLUGINS=( pytest-mock )
+ epytest tests/backend
+}
diff --git a/dev-python/jupyter-builder/Manifest b/dev-python/jupyter-builder/Manifest
index d9043d982b63..e42e6e0bf941 100644
--- a/dev-python/jupyter-builder/Manifest
+++ b/dev-python/jupyter-builder/Manifest
@@ -1,2 +1,2 @@
-DIST jupyter_builder-1.2.2.tar.gz 981074 BLAKE2B 6303dda06315ccc1d68c7b92be3490aabd9173e6e00ae4296b7606cc3fc955df4d6fd1ef4bf36bbf23e1a31ccb5f6afc1ca09fd588294a8e5b6150bd45167e74 SHA512 9d09f558c5e623dbcdfc74e7b4afadfa35249fb02e8ebb21f743266c6bcb7330f0ff6bf94a7dfc18899bf21e4be7f6b9fe4a85cc6116870f07b5e56d60a1dd9a
DIST jupyter_builder-1.2.3.tar.gz 1024218 BLAKE2B f4558ba99250e7eb44c5c4cd6bf4a633f24f0672f7d079acba1b17094ad431841c7115e88e3733e660b014e3c7607244a5f83ff95bf4f74950b3bbe86125ffbc SHA512 8c7025105b74851fa598b969f9db099c70b998f8ff2918f30ee0ca944997d05a09868ecf59bf02dc6a63dc6cd71432d9d5c87d7c4ee8b8868df07fdeea10df52
+DIST jupyter_builder-1.2.4.tar.gz 1026105 BLAKE2B 325a9692e094cd0f543c7d364ead541e0a92163e0b89f01db80db94be43523af797b9af59e9fb8e6369b384550a466646ecc8f56c3e256a10534aa0c76cba5cd SHA512 02d367fbaf3b999154492e2cc081a09f94320d74a80059142cf20bfdbf6ab9611cbc7db39823349138214e7d8e14a8cc3c4105a76f26f4fe46f22e4dfdfc4acb
diff --git a/dev-python/jupyter-builder/jupyter-builder-1.2.2.ebuild b/dev-python/jupyter-builder/jupyter-builder-1.2.4.ebuild
index c002cf61cc33..4ed7b8e0bb84 100644
--- a/dev-python/jupyter-builder/jupyter-builder-1.2.2.ebuild
+++ b/dev-python/jupyter-builder/jupyter-builder-1.2.4.ebuild
@@ -15,7 +15,7 @@ HOMEPAGE="
https://pypi.org/project/jupyter-builder/
"
-LICENSE="BSD MIT ISC"
+LICENSE="Apache-2.0 BSD MIT ISC"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
diff --git a/dev-python/moto/Manifest b/dev-python/moto/Manifest
index 81f1ed4bb082..e914505cee44 100644
--- a/dev-python/moto/Manifest
+++ b/dev-python/moto/Manifest
@@ -5,3 +5,5 @@ DIST moto-5.2.3.tar.gz 8785514 BLAKE2B f513836441c0977aca4711e8cefaee76cd6fa2707
DIST moto-5.2.3.tar.gz.provenance 9445 BLAKE2B 7ea74599fa7891e5e3a44620d035c86cee59892f32db8317bb042e4266dd0f027dac4a6b88e5ba80635354107b3f6b156e034acbe78b5d9c36732e7bed4a914e SHA512 dcef66ca2c70990859a6b591d01bfdbf0f2a1055e996628041d33b80207624520b34a398cb55ab5ac545c33f91f2d5e5a363e8cc4bd972a4e68d924eb6efcb2b
DIST moto-5.2.4.tar.gz 9228741 BLAKE2B e2ecb77bea9585326db7be3263a093a3a3c93f3f546e79090444464d37a709d43e47c80da85e5068b5c691dfdcaeaa02e8244809a29c44cd51a2bfc6e951cd0f SHA512 523ad0b553f4a408be35658b4949d4a17a862717c93544f8f0c01a62ef10d7dd012e80db3770c16ba9303f90ddc823cf4429540d5e6d342d2615f92e77203b58
DIST moto-5.2.4.tar.gz.provenance 9349 BLAKE2B 24344d0a9af4d3d171b7e84fd38a5d732b3785ff18ee3a53ab403be86cf4d09546a5b287e79ba8bad5f10dc21de91b1d61930102c3f7bc797bc53db1a0477e2b SHA512 ff97230b0a14ebfe719787aa4eda9d0f5d37ed188699c7dd8fef036f6486c1ec65eb612ca20869e3aa5775aa605727357767e30b7e0ecb3887ebe18b0510739b
+DIST moto-5.2.5.tar.gz 9249364 BLAKE2B 80547557e45c9f3eda886cef9d65cf068539fca41b0646b87ead26bf882c7231aba22c68c3ef826fa8693316a5389d81c23e5b68105de82cee84ab9610526039 SHA512 7580e4db9e527defa9625833222bc615f4ab17600259ec95d2abbf709de6968cdd08b97358932afd329db5cdf9b15362f39fc500dde7fd31086a278af37435cb
+DIST moto-5.2.5.tar.gz.provenance 9572 BLAKE2B 7f558049fa4659dbe7306d9d627d2bc1d6facf98d25f05d2f6fb2d41f2df6d380b9ea54bb84956534f4f66154f6d9cdd08c6ebc48dac040601c5254797f3f0d1 SHA512 08855181144eb45e23f0d3fd794a452db8c783166a3a1e92861ec7088bc2357de287f8ecb06777b31f5bd7125ae281e7333f7dae54dcdab5f42b6ec33dc622ec
diff --git a/dev-python/moto/moto-5.2.5.ebuild b/dev-python/moto/moto-5.2.5.ebuild
new file mode 100644
index 000000000000..c4730448fef9
--- /dev/null
+++ b/dev-python/moto/moto-5.2.5.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/getmoto/moto
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi toolchain-funcs
+
+DESCRIPTION="Mock library for boto"
+HOMEPAGE="
+ https://github.com/getmoto/moto/
+ https://pypi.org/project/moto/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+RDEPEND="
+ >=dev-python/aws-xray-sdk-2.10.0[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ >=dev-python/botocore-1.35.47[${PYTHON_USEDEP}]
+ >=dev-python/cfn-lint-0.40.0[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-35.0.0[${PYTHON_USEDEP}]
+ dev-python/cookies[${PYTHON_USEDEP}]
+ >=dev-python/docker-3.0.0[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/flask-cors[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.5[${PYTHON_USEDEP}]
+ dev-python/jsonpath-ng[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ >=dev-python/pyparsing-3.0.7[${PYTHON_USEDEP}]
+ >=dev-python/openapi-spec-validator-0.5.0[${PYTHON_USEDEP}]
+ dev-python/pyaml[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}]
+ dev-python/python-jose[${PYTHON_USEDEP}]
+ >=dev-python/responses-0.25.6[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.5[${PYTHON_USEDEP}]
+ dev-python/sshpubkeys[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-python/xmltodict[${PYTHON_USEDEP}]
+ dev-python/werkzeug[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/antlr4-python3-runtime[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/joserfc[${PYTHON_USEDEP}]
+ dev-python/pyotp[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+: "${EPYTEST_TIMEOUT:=180}"
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/test_dynamodb/test_dynamodb_import_table.py
+ # require py_partiql_parser
+ tests/test_dynamodb/test_dynamodb_statements.py
+ tests/test_s3/test_s3_select.py
+ # require graphql
+ tests/test_appsync/test_appsync_schema.py
+ # Internet
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url
+ tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls
+ tests/test_firehose/test_firehose_put.py::test_put_record_http_destination
+ tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination
+ # Appears to be internet issues with timing out
+ tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
+ tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
+ )
+ local EPYTEST_IGNORE=(
+ # require joserfc
+ tests/test_cognitoidp/test_cognitoidp.py
+ )
+
+ if ! tc-has-64bit-time_t; then
+ einfo "time_t is smaller than 64 bits, will skip broken tests"
+ EPYTEST_DESELECT+=(
+ tests/test_acm/test_acm.py::test_request_certificate_with_optional_arguments
+ tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header
+ tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins
+ )
+ EPYTEST_IGNORE+=(
+ tests/test_route53domains/test_route53domains_domain.py
+ )
+ fi
+
+ local -x TZ=UTC
+ local -x AWS_DEFAULT_REGION=us-east-1
+
+ # -o timeout_func_only=true: bad interaction with pytest-rerunfailures and pytest-timeout leads to a permanent hang otherwise
+ epytest -m 'not network and not requires_docker' -o timeout_func_only=true
+}
diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest
index 970c4553dc3c..7150fba54ab0 100644
--- a/dev-python/narwhals/Manifest
+++ b/dev-python/narwhals/Manifest
@@ -2,3 +2,5 @@ DIST narwhals-2.26.0.tar.gz 686970 BLAKE2B 145d115bb50f94519de8a734fc98f0473d4d7
DIST narwhals-2.26.0.tar.gz.provenance 10073 BLAKE2B e22d566a8d8004daaf6276d91a6866f186f2ed88ce17974daee46bcca0fdc5ba7466173d87ece8646a1af1886192773b2bbc1607a924ec1e13c5c6a1b01b2b07 SHA512 2cdc70379ba0b5adab29b64762584aa5de69c6f3e436922e132d7a35f0fcedb2a7743848a8149cb4a4f3c44669c82f880c764a62a1d489a29f458ed9092cd431
DIST narwhals-2.27.1.tar.gz 735013 BLAKE2B 5067a274e50309276ead99fe363022d4168d2db321fd9f2cd6cce394341f8f266eac860af581939bbbf5011396b9a4531a9da37f365ca801a47f49476908e4a9 SHA512 949a12f3b3a35a2825c3239f5b6d6aae093c4b98c81141ecf1ce8c62f506cbb0ad52f0cd9d2ea383c87dcd3124d1eaa66559ad25e2390e47300247a715f8f765
DIST narwhals-2.27.1.tar.gz.provenance 9961 BLAKE2B c01dcef1c4ae00c432704416919f6fbddbccf46d5e1d042c457023411cddb87955e08880f960920e9cf52c948bfbd800531132283f1922e51361f19cb4ca9600 SHA512 7edc3d670a7055c01cb62e4f858941bf533dbde123a0f95e490882a865dfbd81022770f325ebc83cdd0366c0df415fbb231faea8e8d3d1ce482967e7fbac2767
+DIST narwhals-2.28.0.tar.gz 754977 BLAKE2B 32338c39f8e378f99e36b2db4d541826f591d8b63e12626adcd418c7177caf9a388b997a297e0b42296bbca1206c5c6a9a59b2ad5596586dc4f876ecbf1b081c SHA512 c7dcd116c9f0973929d5abbffc869051eb027363a87e3a81f3bb51cfa458a8f1df656129d0f979388f053d4a256a23b61e5c2928840c5c5c610f985ea277e414
+DIST narwhals-2.28.0.tar.gz.provenance 10008 BLAKE2B 708c1db839ddef1003990d535550c17c68421ec6bfc817c73a698cf74d87c92a80ccefddd7714911621a5e914c110ecc78c31a0b9e4b8824dce54f3b283bc4a0 SHA512 f05cf86cd2fab96cc8a33ad2b98ee469c4c6687610637f215ae02ca8f7871c7c4591795443b001f80fc4d21422e8d9d53a93cc7c60e9a64237e697d0f8666dda
diff --git a/dev-python/narwhals/narwhals-2.28.0.ebuild b/dev-python/narwhals/narwhals-2.28.0.ebuild
new file mode 100644
index 000000000000..c406e3a45391
--- /dev/null
+++ b/dev-python/narwhals/narwhals-2.28.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=uv-build
+PYPI_VERIFY_REPO=https://github.com/narwhals-dev/narwhals
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Extremely lightweight compatibility layer between dataframe libraries"
+HOMEPAGE="
+ https://github.com/narwhals-dev/narwhals/
+ https://pypi.org/project/narwhals/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+BDEPEND="
+ test? (
+ >=dev-python/packaging-21.3[${PYTHON_USEDEP}]
+ >=dev-python/pandas-1.1.3[${PYTHON_USEDEP}]
+ >=dev-python/pyarrow-13.0.0[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-env )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # segfaults
+ # https://github.com/apache/arrow/issues/47252
+ 'tests/modern_polars/unpivot_test.py::test_unpivot[pyarrow]'
+ # fragile to parallel merges that can cause non-atomic .dist-info
+ # changes
+ tests/system_info_test.py::test_get_deps_info
+ # TODO; failing with system pandas
+ 'tests/expr_and_series/reduction_return_type_test.py::test_expr_aggregation_keeps_dtype[pandas-values-Int32-min]'
+ 'tests/expr_and_series/reduction_return_type_test.py::test_expr_aggregation_keeps_dtype[pandas-values-Int32-max]'
+ )
+
+ epytest --runslow --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow"
+}
diff --git a/dev-python/pdm/Manifest b/dev-python/pdm/Manifest
index 517c95058dac..3e81b7af89b5 100644
--- a/dev-python/pdm/Manifest
+++ b/dev-python/pdm/Manifest
@@ -1,2 +1,2 @@
-DIST pdm-2.29.2.tar.gz 2714556 BLAKE2B 5c348e415bda6d709af2e2dcf58bf564ee7fabf684d217083abdb5459736dcfb457ee7b439c415700e0cea782730c88252fcf48f27fbea2b1b0d64fcb1f6b4b7 SHA512 13751cb12b2b6353e1fdc0bfe6f388f797c2147960ddc668af906ac8b92c36295ff81e077604eec00ca3c440220d1cf770161b2e0a6d6e0dc453d59700cb5856
DIST pdm-2.29.3.tar.gz 2722866 BLAKE2B 522ffc8890231d631ec1f1a45abb24dca61f5bcaf81e685b0c1953087eeac4bab40ce58f0b36228154de4961d07a90099a3a4ab30773c68d90d3b33da456b3fc SHA512 7e60735c0b90b34455f69af7183ba7e5f962c68bf9bd161a4764cebb2810de9b69286e98cc0fddb31a480be2d15551fce1dbabcc8c0c9e2a7397923da6fd45c0
+DIST pdm-2.29.4.tar.gz 2729563 BLAKE2B de36816ecd2d600e6f50eeb9c8b51646ec0e377ab3faef6ae6c35c6f5311bd08fd29c6f3aad5c9a3ed1bf26b7cc957dbde9c1d1285ecb117dc90f2255a1406bd SHA512 ca09f09e97e75b4f8952b721caf4192d08f6e5984bb699d79903c62fecacc08df5342122cc96274f5810187d3842e8570c50e3542b7e4cd60015ebf013792020
diff --git a/dev-python/pdm/pdm-2.29.2.ebuild b/dev-python/pdm/pdm-2.29.4.ebuild
index f853dc5fa0e7..4efa9cf68b3f 100644
--- a/dev-python/pdm/pdm-2.29.2.ebuild
+++ b/dev-python/pdm/pdm-2.29.4.ebuild
@@ -19,6 +19,7 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
+# socksio for httpx2[socks]
RDEPEND="
>=dev-python/argcomplete-3.6.3[${PYTHON_USEDEP}]
dev-python/certifi[${PYTHON_USEDEP}]
@@ -27,22 +28,22 @@ RDEPEND="
>=dev-python/findpython-0.7.0[${PYTHON_USEDEP}]
dev-python/blinker[${PYTHON_USEDEP}]
dev-python/filelock[${PYTHON_USEDEP}]
- >=dev-python/hishel-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/httpcore-1.0.6[${PYTHON_USEDEP}]
- dev-python/httpx[${PYTHON_USEDEP}]
+ >=dev-python/hishel-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/httpx2-2.9.1[${PYTHON_USEDEP}]
>=dev-python/id-1.5.0[${PYTHON_USEDEP}]
>=dev-python/installer-1[${PYTHON_USEDEP}]
>=dev-python/packaging-22.1[${PYTHON_USEDEP}]
- >=dev-python/pbs-installer-2025.10.07[${PYTHON_USEDEP}]
+ >=dev-python/pbs-installer-2026.10.25[${PYTHON_USEDEP}]
dev-python/platformdirs[${PYTHON_USEDEP}]
dev-python/pyproject-hooks[${PYTHON_USEDEP}]
dev-python/python-dotenv[${PYTHON_USEDEP}]
>=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}]
dev-python/rich[${PYTHON_USEDEP}]
dev-python/shellingham[${PYTHON_USEDEP}]
+ dev-python/socksio[${PYTHON_USEDEP}]
dev-python/tomlkit[${PYTHON_USEDEP}]
>=dev-python/truststore-0.10.4[${PYTHON_USEDEP}]
- >=dev-python/unearth-0.17.5[${PYTHON_USEDEP}]
+ >=dev-python/unearth-0.19[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
"
BDEPEND="
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 32aad3988822..a3d3b7ff5f4a 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,3 +1,3 @@
-DIST phonenumbers-9.0.39.tar.gz 2310991 BLAKE2B 8f6ed29affad232f085e8f9bb777b89bb66ab6e1332fbd73abed3a699eecd3c0a3d2558c261accb2b21eab7964dffeb13726efefe0d5e776d241035eefa275d5 SHA512 8e4cfdd4e5538b15bdea3b61b5223135992c57d13c77f2ba1b0c7d0717562c270a596051d7202c7aca9b1f4967acf047bd9e53ba7fa29801bd05317336d06054
DIST phonenumbers-9.0.40.tar.gz 2311069 BLAKE2B b42ace8be8c7f8b12dbc708666b92520c0495c610c59dbb7680bce20b6c62ba780abde63dd331641033446493980adff3c6d3743dd8c076c281eb38c9cb58d1b SHA512 0352d1ab2413bf21dde85c3eccd80e042b8d9551ae4792e39a8210d47257da306386b67e67fac147ea3c4657eb39411d6c11126e07bd6c76698700d72bc3fd78
DIST phonenumbers-9.0.41.tar.gz 2311017 BLAKE2B 70487fc655fb64695a3f22db58101fd47572da30ad4673d0ae9e603186f8cba60f20546818b86be0c0886dd52501dc7c2a58deaa68e444c4f6802f345e5edf0c SHA512 4c84ad60bf621f94d075629b075fa5a2bbb553908eb225ea302d8945fb5344cf06432575df0406208147da1880b3fff8058b652d5164a45c4038190e67b6f1e6
+DIST phonenumbers-9.0.42.tar.gz 2312652 BLAKE2B e604ac2f1e716ab92fa2a6b43db8a063eb3eac64af2fe462efb88972a83ab3ac0906d732b89d4606e487326df24a6b490182b6b4fc14f084be0ba1d7acff6d8c SHA512 84c0257126358541d821c2c39947f646f34e8018e65341cba3f4a99a0e5748e78d142d141bc9212049ec4dee299fb31a1650e8fcb3531a9ed3401ae39230d864
diff --git a/dev-python/phonenumbers/phonenumbers-9.0.39.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.42.ebuild
index ca291505d9f2..de79c2ad9678 100644
--- a/dev-python/phonenumbers/phonenumbers-9.0.39.ebuild
+++ b/dev-python/phonenumbers/phonenumbers-9.0.42.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/portalocker/Manifest b/dev-python/portalocker/Manifest
index 52295ce702be..721aa83a02a2 100644
--- a/dev-python/portalocker/Manifest
+++ b/dev-python/portalocker/Manifest
@@ -1,4 +1,4 @@
-DIST portalocker-4.2.0.gh.tar.gz 309989 BLAKE2B aa9c437ed180651e0e3ab07af736f12c8eedf7b962845e6affd13295e56609378fad41f4d0aa7b1170aa2dcde81ea9ecad43c73ef024102812b0729de2188ebe SHA512 f4bc04666a4640ca4d7a871a16b0000eceda18ebe3a8606e06ba8f5a74dfd869783467efdc1c058bcfe2b2f8b073ce518c387a6fa1a03c881829e22b57985bb6
DIST portalocker-4.3.2.gh.tar.gz 304218 BLAKE2B ca36b16fc0fecc659a8e408bc4238a40b74085508836dc3e24e9919ea6d1b25aea0b41055b459fd1693085f2a597dd3f0a12cecd645a3780ea683ea941eecd7e SHA512 92bc28b6476f0cbd09ad8454e857978b4aed16d25bf9ed7f2472ff37916ae8101a462ea63692a615c1f414c9af64e7a29dc2eb26c80b9e59885350eb71bf7f81
DIST portalocker-4.4.0.gh.tar.gz 307397 BLAKE2B 2d1b6d2730aa9924b6f6e8cf79628b6d3fdc2795809c81690a7721cb6e51e40c375d4eab8df217120f129b00fc749e2b3be521bd114eb836bf30316d97bcde51 SHA512 b081870124affda5dc06393ef881208c2b08117f1c21d9036978ad6a2ee57c045ff235a2039b52841e235e4186e3fa84fad55783d5814dc0b75d9226922aa1f4
DIST portalocker-4.4.1.gh.tar.gz 308022 BLAKE2B 53b7d9b218dd5d34a26b248beda6d527bcc2d4cac378c5106620985fd6abfacdc6ae3fed55eb4326a13e235ed4a730bf3a90f9dde7428ef7c33bedd8610eb21e SHA512 d92651bb9b9cf6f12b799ecb2ffccf3c33c2d0da33ccca53f73eefbc32289c3ffa340061488058fd8169433d5ea071c9321ac4f43c2517ce423efb91ba34f368
+DIST portalocker-4.4.2.gh.tar.gz 308119 BLAKE2B b2438f55dc9580ea21818001a7b23edc23c0059df607d1672d125ef23c5ef67a02ee649e62395654983e815643e7da754c93cbd91c60948274390038bc1d341f SHA512 0e738bf255e7fbac370037f31a28e977a6aa7dbd22997333ad335825074d438a42a8c50ad134c2f1923a1a4e6901400e08fd716074f2443c82bc9b7fa7e2e670
diff --git a/dev-python/portalocker/portalocker-4.2.0.ebuild b/dev-python/portalocker/portalocker-4.4.2.ebuild
index 4afb1572868e..b3a42ce7d36d 100644
--- a/dev-python/portalocker/portalocker-4.2.0.ebuild
+++ b/dev-python/portalocker/portalocker-4.4.2.ebuild
@@ -21,13 +21,14 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64"
+KEYWORDS="~amd64"
BDEPEND="
test? (
>=dev-python/fakeredis-2.31.0[${PYTHON_USEDEP}]
dev-python/redis[${PYTHON_USEDEP}]
>=dev-python/sphinx-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}]
)
"
diff --git a/dev-python/pyasn1/Manifest b/dev-python/pyasn1/Manifest
index 67d8ff3fce23..3c3f97c606c9 100644
--- a/dev-python/pyasn1/Manifest
+++ b/dev-python/pyasn1/Manifest
@@ -1,2 +1,2 @@
-DIST pyasn1-0.6.3.tar.gz 148685 BLAKE2B 4c93301960d200473f79463faa2423566ea04d0413bc735d3ea0fff87897b059271cf90a9e59185f9c2808c18bb49d1be7f1591dd3723e892db15b49f70b17ad SHA512 c58962b3f11f486da3e73c09dbe2aff7500879b29c4a7be4295878e4edbcaaa2680d608720ad5af86a2457de7da50471ab7a9e925f717db5c467553fc552e6d6
DIST pyasn1-0.6.4.tar.gz 151262 BLAKE2B 3d71ddfa7904b3542017c1c3ce4099cc4a2ef6dc9783eda4d390e5ac21400a5cb01cd97e70bbbe2f396e6a8f75e1c30aa3265a97050b10a24a1855e9d7703703 SHA512 ce04b28d42d41fc8fa20608b773bf6691b46427f73f3fc3fb1a81c06996133bd77dcb2b4f6ba8213e27222d4203adc90adf64eeb7096ec82bc7df6e2f307657d
+DIST pyasn1-0.6.5.tar.gz 155152 BLAKE2B c8fea087be67dd669379486145f780b818fc6d70f4faf9078f7aff2d287bc9869d9dd5ad606bf55f044865248cc6317e40a5604948a02b0d1244116cb1a0d136 SHA512 c7bc9320e41a52d476fcd50c50ab23e518bfd4515f062b00887f79575b6a5f8947900ea2d95897395577b01be7ff0c37cf5b2c04d8af375e9a9a594752ba22d0
diff --git a/dev-python/pyasn1/pyasn1-0.6.3.ebuild b/dev-python/pyasn1/pyasn1-0.6.5.ebuild
index bb5339714f38..a277ccd0f5d3 100644
--- a/dev-python/pyasn1/pyasn1-0.6.3.ebuild
+++ b/dev-python/pyasn1/pyasn1-0.6.5.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
distutils_enable_tests unittest
distutils_enable_sphinx "docs/source"
diff --git a/dev-python/pypdf/Manifest b/dev-python/pypdf/Manifest
index 5af33842c8b2..c8fd110f01a1 100644
--- a/dev-python/pypdf/Manifest
+++ b/dev-python/pypdf/Manifest
@@ -10,4 +10,6 @@ DIST pypdf-6.21.1.tar.gz 7088597 BLAKE2B e3cdea6c02aca7c3f16c2531ef3c8250dbd1a0f
DIST pypdf-6.21.1.tar.gz.provenance 9621 BLAKE2B 34db44b123f964f28d53fa1e9e9d514196943e2e1e64cba2ba77bbff26a31d51cf9ef2a0f6ddffe162a10f40e45b56184bc569eab8336938dd7fff7b2fa4270b SHA512 9b34342f0cb640e5f7c293f8199d1d6a15a0422f21901651d483237983fa9c6b7d5ab44c0c0a44eecc6366822d4ccaea25903f78d758cf9de4abde69d9868b5a
DIST pypdf-6.21.2.tar.gz 7144571 BLAKE2B c50233a589b15580d36bb26f91570b117af093ee58d6d47a1874fdf5c82771c64c854465189b08f9f08a1e6df530b3cde4ad2d46fe82d91aab925c5fc3660f67 SHA512 3c2ecd1837ee6786139f40a8b9360f70752addfeb2d9696f38f86c5c5d7193842e5ce44372673fa300e913c05fda51f97118cb9833557de1384c836dd2c1e402
DIST pypdf-6.21.2.tar.gz.provenance 9715 BLAKE2B 1f06c2ee2b6d11d72b6fdd2ee246e13b9c925705089632fff0c3af666f1fd3dc7917166cd0960dae066fac3255abac6eb84c9a1b14919e147ea6a34d93678283 SHA512 bb6b414fa2d278195c4c4c0ea3e431ff309fd6632d8b8d4474ebc624448ddfbdcc0770aecba814e60f48ecf5fda9d0fca9e5a1bc0e872f87706601e9dbc72e19
+DIST pypdf-6.21.3.tar.gz 7106770 BLAKE2B 9dc60cc73be776aa0ab81f4fce58ea5b9c7dc33412918d3f56d9d3cc8b3cb632427c38f75336ba1a1acb0e56bd8edea75e72ffc00484e3fb8f6d815ebfa1281b SHA512 b2e6fd1c7b2f3b42aba71fb45454ebd8a02cd5fcff8d0dcfd5d229daf74b9a47043e734f1e9e23f3f34a61ed022fd5baace94246e4bce5fc609f5b1fcb85e2e7
+DIST pypdf-6.21.3.tar.gz.provenance 9672 BLAKE2B 1a8d3130781ea3918f8b0c8de990d9eb9abb63dada5bfe176f259230f0dc94b1c5aedfb78e1b71eba8b96c35c89e774e0fce97a230f6adbcbce34556157557ee SHA512 a36e15f4798d18a6efe99a9815a0ce2d3ba46b8ea98a94d119a10bc079ae40ebeaa0a60ba10dde8f4be305f42fa426a76edcec742be555d5939003b8d4c9556d
DIST pypdf-sample-files-818dc013ad1f537198e9fcfae8a6b0dffe25ffa3.gh.tar.gz 11850954 BLAKE2B fbd0af91de44f2d224b3266727f0dfc462efb4d23176f4ebff147cbfa37337d891859c468b545d0c00796048584e6b621dc622d667e3d45c0b89b92f29ca3030 SHA512 bc601bfaf17f31c6358f594eaf879479e97028d7f5e5825c309a5d1eb843bfea5080c9e151287a0d915ecbc3f4d4755e326ac8fa1ceeb696c76b9f5ecc0d7e9f
diff --git a/dev-python/pypdf/pypdf-6.21.3.ebuild b/dev-python/pypdf/pypdf-6.21.3.ebuild
new file mode 100644
index 000000000000..716a7acd1c4e
--- /dev/null
+++ b/dev-python/pypdf/pypdf-6.21.3.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit-core
+PYPI_VERIFY_REPO=https://github.com/py-pdf/pypdf
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+SAMPLE_COMMIT=818dc013ad1f537198e9fcfae8a6b0dffe25ffa3
+DESCRIPTION="Python library to work with PDF files"
+HOMEPAGE="
+ https://pypi.org/project/pypdf/
+ https://github.com/py-pdf/pypdf/
+"
+SRC_URI+="
+ test? (
+ https://github.com/py-pdf/sample-files/archive/${SAMPLE_COMMIT}.tar.gz
+ -> ${PN}-sample-files-${SAMPLE_COMMIT}.gh.tar.gz
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ >=dev-python/cryptography-3.1[${PYTHON_USEDEP}]
+ dev-python/fonttools[${PYTHON_USEDEP}]
+ >=dev-python/pillow-8.0.0[jpeg,jpeg2k,tiff,zlib,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ media-libs/jbig2dec[png]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-timeout )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ # probably requires extra deps
+ tests/test_appearance_stream.py::test_appearance_stream_rtl
+ # speed test, uses tons of memory
+ tests/test_filters.py::test_flatedecode__decode_png_prediction__speed
+ # apparently we get half the limit somehow?
+ tests/generic/test_data_structures.py::test_dictionary_object__read_from_stream__missing_length__limit
+ tests/generic/test_data_structures.py::test_dictionary_object__read_from_stream__read_unsized__limit
+ tests/test_configuration.py::test_apply_configuration
+ tests/test_configuration.py::test_apply_configuration__nested
+ tests/test_configuration.py::test_get_configuration
+ tests/test_configuration.py::test_overwrite_configuration
+)
+
+src_unpack() {
+ default
+ if use test; then
+ mv "sample-files-${SAMPLE_COMMIT}" "${S}"/sample-files || die
+ fi
+}
+
+python_test() {
+ epytest -o addopts= -m "not enable_socket"
+}
diff --git a/dev-python/pytest-env/Manifest b/dev-python/pytest-env/Manifest
index 9ca5cd9bb554..92fc0516c89a 100644
--- a/dev-python/pytest-env/Manifest
+++ b/dev-python/pytest-env/Manifest
@@ -4,3 +4,5 @@ DIST pytest_env-1.8.0.tar.gz 17363 BLAKE2B 63d9dce217ee3136c9ff2877f616a78567c5f
DIST pytest_env-1.8.0.tar.gz.provenance 9592 BLAKE2B a57b4704368963923000af291e77c60f267732b10c4f114ec391294724cf405045ca95954ba841f37edcdd909822a5ccb3d8502267db6e54e55f8911cb2b8d77 SHA512 a9aee2bdbe1ceb4fb27ab57bf644d5a49307a9c7f6d32e98f90d437c463d517062176d36b8c09b8f802c6f28e3ce12506bac79943491bf22ea63ed27f4788184
DIST pytest_env-1.8.1.tar.gz 17852 BLAKE2B e136556e1cb80f6c28c2312d41c892b6abbd9e7087f9f6cc8d1fb28fbb5a09089c76820c42b049f0abfb7beaf3ee7fd304e60a2508610a4b4e080dce3a0bee69 SHA512 be06ac2e0ad51107f83a7f74a6cbf4e9fa79cb88a24dfac5365e7dcdc4d865e81655b00569e8ef210e3578bb39cc1cc53224eb7a82d1123330c454b0e5a1b811
DIST pytest_env-1.8.1.tar.gz.provenance 9886 BLAKE2B 4c99dc4f0aa1439ec728168d252ea933c125c45cf0af3d5546fdcf44ebea2813bddbaf7de477d4f46c8f2efb2ba4c99fb6026df5d2fb88d60ecdb7121aa85aeb SHA512 e7722a59e9c45996891da407a183f23a22e42af3ef95a351fb127cc95635331f1782d20ae3b1dd4eab2034e64f15b6fd3c381e4b1f7f3a089ddfa6ac5cab7388
+DIST pytest_env-1.8.3.tar.gz 49380 BLAKE2B b026636ede8d208ff0ba690ba98e0c65c2393774b58eb95f1923d7830b129bc6cb5c8db7fa1b356ca7081d7bcbddc2ff5dff4c22e0969aae349b9cc738848936 SHA512 64f5ef8a6a6a0cf6ca4b4dcec0ef83500c9844253a41b970cc6181254b4755a382fe2a048e51ba095a389b0d9e5c3de82d00d0e35426a14bb8c24814d4e1988d
+DIST pytest_env-1.8.3.tar.gz.provenance 9847 BLAKE2B c890b2b6ae79085c09f1eb4a97050526e317af9c97c6f5ebc5b70dadca2f098b838f83f08a4ba7f8dea4104625ba2456cbd166f1933dbb26e7abd88ec3997723 SHA512 6ce4df7b975f35fba8a1c47f21284a963313a72066ad898f2a3622ac7a9b77ff539e6f2ec9aa49e67d848961d5eff8e316e3d2e8f6ebe48b8b836a7c5b7615c7
diff --git a/dev-python/pytest-env/pytest-env-1.8.3.ebuild b/dev-python/pytest-env/pytest-env-1.8.3.ebuild
new file mode 100644
index 000000000000..40de8b49a919
--- /dev/null
+++ b/dev-python/pytest-env/pytest-env-1.8.3.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/pytest-dev/pytest-env
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin that allows you to add environment variables"
+HOMEPAGE="
+ https://github.com/pytest-dev/pytest-env/
+ https://pypi.org/project/pytest-env/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/python-dotenv-1.2.4[${PYTHON_USEDEP}]
+ >=dev-python/pytest-9.1.1[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/hatch-vcs-0.3[${PYTHON_USEDEP}]
+ >=dev-python/hatch-fancy-pypi-readme-25.1[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # upstream lower bounds are meaningless
+ sed -i -e 's:>=[0-9.]*::' pyproject.toml || die
+}
diff --git a/dev-python/pytest/Manifest b/dev-python/pytest/Manifest
index 8d43c27013b1..e7ad4b16fca2 100644
--- a/dev-python/pytest/Manifest
+++ b/dev-python/pytest/Manifest
@@ -1,4 +1,4 @@
-DIST pytest-9.0.3.tar.gz 1572165 BLAKE2B a86001e79e630f8e7aa3007d287271702b11eef00938f50f8f404a646c90cacb2f661e9d7ce08fa6820ec1dbc858c30a0c450126b52388356ef23d138669e297 SHA512 228908e1f9718c418b5e118e7c49cb4b998b907982e277f29cdd13199383425cce9c7cee3275440bb1d0b0ae68b4a88443ef3400f506e9b787fc4d816bc47003
-DIST pytest-9.0.3.tar.gz.provenance 9379 BLAKE2B e5d6d3cfde46cfa80ddb436fbf7608e79ced8a08fad3a5841ccc30ecd40a425e37745a9994c9cf75602467934d14d23df07ed1c20ae4801ea3e60b3fde4d805b SHA512 6e93af12b5ab40e5c76ca6f42298767a9d04f1ace4af4403e4d2589962e3dc79d8a8e0c308f528a4cf8d0b60ad600bd33128982a59bbb74c2eb0ca16192b0f51
DIST pytest-9.1.1.tar.gz 1636369 BLAKE2B 5aff9a07b8473392cbd549511e15dd4de6c16da2a88c213f5ac0685316190fcd6e292967006578e8041b25eba4093ed551e8d6e0d64f96ad28bac62b2e63da38 SHA512 10065997d09e8614ccf064b673e9dde8a4048eb0d701dd1e1e45b9b3751788d1060093aded2b180779852d981b3521b6d08e27fc86fb087b31933e55f57e8292
DIST pytest-9.1.1.tar.gz.provenance 9662 BLAKE2B dd66e9bb76806471bc37335d26793804a071abb178984dd7f9402eddab5f7e134b75aa41cef28cb550f8f949f9cfbdfa7f414dd41a01ab8c256dd8e050be97ec SHA512 c3030cec79605893ff80f095ec5fb29334af83e511488270f107428f96ecdf22f086deda5e114bb80deb8f88bd529b88e708c3751f02182be5fabafde8192d29
+DIST pytest-9.2.0.tar.gz 1797555 BLAKE2B a877542ce716957133a89d560537a4681ed17193e314859eac0c43701253b9e46b1b12d1c77c8ece86a5fc9b240f186d6f88b5f8d6c3de31e32cf13f0b6439c5 SHA512 0f9275c4a1d4e8d418cdd8b3933179665712ac4059c1628e1857b5b2beeeb04fbb91bdf10e0356b29e7dda957ea4d67e0505093c520b06f11af56acafdb40839
+DIST pytest-9.2.0.tar.gz.provenance 10057 BLAKE2B 9664cbeb7b9c2de04d174cb2038f1daca3c9788848c18e26de56373abaf2ab172e5dbf71f46e4cc37bcd05d61a09d05c83ac04f972642b33a318401f465e4c9e SHA512 c93370e0e1342a655ef812e841d39e47a6485d456a54ee1ea1ff533779f21bc81e203547b874492530ed603fb23567795704f5955aef0b68ae2b5965e20a3496
diff --git a/dev-python/pytest/pytest-9.0.3.ebuild b/dev-python/pytest/pytest-9.2.0.ebuild
index a1c1a844cbac..c974e0dbc9e7 100644
--- a/dev-python/pytest/pytest-9.0.3.ebuild
+++ b/dev-python/pytest/pytest-9.2.0.ebuild
@@ -19,16 +19,16 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
- >=dev-python/iniconfig-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-22[${PYTHON_USEDEP}]
+ >=dev-python/iniconfig-2[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24[${PYTHON_USEDEP}]
<dev-python/pluggy-2[${PYTHON_USEDEP}]
- >=dev-python/pluggy-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/pygments-2.7.2[${PYTHON_USEDEP}]
+ >=dev-python/pluggy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.15[${PYTHON_USEDEP}]
"
BDEPEND="
>=dev-python/setuptools-scm-6.2.3[${PYTHON_USEDEP}]
@@ -36,10 +36,12 @@ BDEPEND="
${RDEPEND}
$(python_gen_cond_dep '
dev-python/argcomplete[${PYTHON_USEDEP}]
- >=dev-python/attrs-19.2[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-3.56[${PYTHON_USEDEP}]
+ >=dev-python/attrs-23.1[${PYTHON_USEDEP}]
+ >=dev-python/hypothesis-6.75[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/pexpect-4.9[${PYTHON_USEDEP}]
+ >=dev-python/pytest-xdist-3.5[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/xmlschema[${PYTHON_USEDEP}]
' "${PYTHON_TESTED[@]}")
@@ -98,22 +100,10 @@ python_test() {
# PDB tests seem quite flaky (they time out often)
testing/test_debugging.py::TestPDB
- )
- case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # regressions on pypy3.9
- # https://github.com/pytest-dev/pytest/issues/9787
- testing/test_skipping.py::test_errors_in_xfail_skip_expressions
- )
- ;;
- python3.14)
- EPYTEST_DESELECT+=(
- testing/test_doctest.py::TestDoctests::test_doctest_unexpected_exception
- )
- ;;
- esac
+ # TODO
+ testing/test_terminal.py::TestProgressOutputStyle::test_xdist_times
+ )
local EPYTEST_PLUGINS=()
local EPYTEST_XDIST=1
diff --git a/dev-python/python-engineio/Manifest b/dev-python/python-engineio/Manifest
index 80498c05698b..9bbf3dd68de0 100644
--- a/dev-python/python-engineio/Manifest
+++ b/dev-python/python-engineio/Manifest
@@ -1,2 +1,2 @@
-DIST python-engineio-4.13.5.gh.tar.gz 324775 BLAKE2B f6023326fd6015e72f464635e8744d5d11d07d7b6c853fe25c6d190f13261cb1a42d6230faf2abe6a5c1c572972f7eed4355896d2a261be96f8d294f8fcd1fd2 SHA512 c5f47d686c95c507a6cb02970c141774a8a360480aab0d2b340f06d27fc6b9e7258854c01f82d8dbff83f385c09f652190cfe33d883bd437caeacb3f2f280d59
DIST python-engineio-4.14.0.gh.tar.gz 326991 BLAKE2B 9bb26c1e94c2b156ec2c3d0f5e730234d08dfd1f36d130bfbe344b2209949c35bfcadc852fcd1396fd774dd7e4c96580992fb8e9918f9eb6cd2cdcecf94c7845 SHA512 9079c5c831ee11f06b35f80c562ae3182c5dfc8694d711000c8d3d72b92325b25b2ea8a08d8315da8888c8d499c11c8c8db0b4dcc8cdf65fa80ec192ffbb6122
+DIST python-engineio-4.15.0.gh.tar.gz 328139 BLAKE2B 90e081856a4dc3bbc7f2060c777af9c335a0ea436b026be1dc19a8bf765f0107d85a696b8d40294c45c22ff79fd160b346c1d96c50a96469bf395abf46e3c33f SHA512 cf55c6939f7dff0ebd833c921f749956d34dae36574de00a776a03a064c6923a9ef5e4dccc64a6b0cbbef7ed87e7c6195aa96d0cc32043e72e4509c850cae1bd
diff --git a/dev-python/python-engineio/python-engineio-4.13.5.ebuild b/dev-python/python-engineio/python-engineio-4.15.0.ebuild
index 96a2e58b62f7..96a2e58b62f7 100644
--- a/dev-python/python-engineio/python-engineio-4.13.5.ebuild
+++ b/dev-python/python-engineio/python-engineio-4.15.0.ebuild
diff --git a/dev-python/python-pam/Manifest b/dev-python/python-pam/Manifest
index 009ee875ee90..2cd361c3d9d0 100644
--- a/dev-python/python-pam/Manifest
+++ b/dev-python/python-pam/Manifest
@@ -1,2 +1,2 @@
-DIST python-pam-2.0.2.gh.tar.gz 14787 BLAKE2B 4bd9d7d57802fb30519ee755b091d8dd21da7fdac164cba2ac11fae48c8f575498562309d996a67766218e15e1b5f45f40c4cf32800de349fe0fa0cd03ae911d SHA512 eafeb753b22ffccc1c5729516ea1ae26799d3749140fe91849ddb804066cabd4b5493e9b059172977dd5b3c5d48c8b5ced6c5c944931fcf23225dda09db026f6
DIST python-pam-2.1.0.gh.tar.gz 59601 BLAKE2B 5a6efcdbef61577c17a9dc083fabe30ad14e03428b3147476064776f230ea0b2f53813a7a8f427c5954702ea04e6d3e3667d68dd9eae0e3a5d9a0ba885975019 SHA512 88ec522c8fbcae2f4a89306518d1704b305971fee58f964057b76c2da8df8ef1007a7ab057cf408c83ba1a8183701e43e99797ecccab1403e9b51afb998d2e49
+DIST python-pam-2.1.1.gh.tar.gz 63207 BLAKE2B 8ec3f2b7daa471f3a5b84b9e54593905c0c89ce4dd7329a1c260d3685c4af387f690450406cedc2ce7910fd28f5ad63ae6edd8ce73f69fcefd0d26675d5783a7 SHA512 ef1c3f904d70dea81cb6f2c5166096db226939c657ed7bb397a100718973ca2bc0f9dad5d862f2e4b6fa57ec43ddc2bc86932a16fffa03b6f769d57f8b74fc1c
diff --git a/dev-python/python-pam/python-pam-2.0.2-r2.ebuild b/dev-python/python-pam/python-pam-2.1.1.ebuild
index 6f46f2148b82..6bbfcfdf19b5 100644
--- a/dev-python/python-pam/python-pam-2.0.2-r2.ebuild
+++ b/dev-python/python-pam/python-pam-2.1.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_USE_PEP517=poetry-core
PYTHON_COMPAT=( python3_{13..14} )
inherit distutils-r1
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
@@ -28,11 +28,3 @@ RDEPEND="
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
-
-src_prepare() {
- # fix broken pytest config syntax
- sed -e '/python_files = "/d' \
- -e '/norecursedirs = "/d' \
- -i pyproject.toml || die
- distutils-r1_src_prepare
-}
diff --git a/dev-python/python-socks/Manifest b/dev-python/python-socks/Manifest
index d57ca1643496..33ced55cea55 100644
--- a/dev-python/python-socks/Manifest
+++ b/dev-python/python-socks/Manifest
@@ -1,3 +1,2 @@
-DIST python-socks-2.8.2.gh.tar.gz 33105 BLAKE2B dbc2492070ea6992552eecdfeb47cdc4299491a1350c14d04bce41695470516d5e05a0b07f4d0b0434348355c9dd32b5de30a186f5a9febee573dd737d42cd46 SHA512 0ab02015a0c409548e53b829e7af37ba8c2d88e8857aae481391fb8c86b9156ec47e155940b1cbe05692ad9a7cd02798e530e36717f02efd472ea86cae5a5865
-DIST python-socks-3.0.0.gh.tar.gz 181844 BLAKE2B 390769e03331b7e97d66496110d1414ed5494937a701ba356d81d6dd3c7d22b1bed1ae121569fe6da281b2660ce02bf50bcd60a6b04bde9ea0f7cf2faf858960 SHA512 641e4d2402212ce5eac30aea1919269dbe4d9773994b60fe08d734203b1084ea4e47df40477bb6f18117765286eeddf3bb85f39e289f7d19a3de1c56dfe6b3e7
DIST python-socks-3.1.1.gh.tar.gz 181886 BLAKE2B 88c2801fd1e3a65821bda5c91a0f79a54e3949ed03e80a4f361a4973b5833ac6c5f91915e6114569c9e9fa0092d30c92371ac53fb415cdf4f13d9c45e0df47a6 SHA512 4907f88b88054e4b7574a9d07f3e665d78cfdde37c10fa6e1a646bf77ad9273214384bc7ef9b4f44c287d0c117c40b7cd213cc99232e7408d6613796d4177d54
+DIST python-socks-3.2.0.gh.tar.gz 182564 BLAKE2B 05b293899a3f1f097dca79fac9463b6cb36676043da933a382de81e1ec2c70b415dfffde6ced79fe0b8bed3b98f2b991e8be26a3d52189bb3006bd5582699539 SHA512 5f22f68e67cf0cdc4b36af6db7f7f2b3666cd63d9ef5f12a8c0afc3589e8d101adf374a157a196acf4f75d6df70beb69c7a75b2bd02ccb9a53194fcb01069122
diff --git a/dev-python/python-socks/python-socks-2.8.2.ebuild b/dev-python/python-socks/python-socks-2.8.2.ebuild
deleted file mode 100644
index f350a3854cae..000000000000
--- a/dev-python/python-socks/python-socks-2.8.2.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2020-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="SOCKS4, SOCKS5, HTTP tunneling functionality for Python"
-HOMEPAGE="
- https://github.com/romis2012/python-socks/
- https://pypi.org/project/python-socks/
-"
-SRC_URI="
- https://github.com/romis2012/python-socks/archive/v${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-# curio is not packaged
-# asyncio is the only backend we have, so dep on its deps unconditionally
-# TODO: revisit
-BDEPEND="
- test? (
- >=dev-python/async-timeout-3.0.1[${PYTHON_USEDEP}]
- >=dev-python/flask-1.1.2[${PYTHON_USEDEP}]
- >=dev-python/tiny-proxy-0.1.1[${PYTHON_USEDEP}]
- >=dev-python/trio-0.24[${PYTHON_USEDEP}]
- >=dev-python/trustme-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/yarl-1.4.2[${PYTHON_USEDEP}]
- )
-"
-
-# Test markers exist to exclude trio etc if needed
-EPYTEST_PLUGINS=( anyio pytest-{asyncio,trio} )
-distutils_enable_tests pytest
diff --git a/dev-python/python-socks/python-socks-3.0.0.ebuild b/dev-python/python-socks/python-socks-3.2.0.ebuild
index 193a71c32cb6..364e8b802100 100644
--- a/dev-python/python-socks/python-socks-3.0.0.ebuild
+++ b/dev-python/python-socks/python-socks-3.2.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
# curio is not packaged
# asyncio is the only backend we have, so dep on its deps unconditionally
diff --git a/dev-python/tavern/Manifest b/dev-python/tavern/Manifest
index fdf67c58172a..287c3ae15acb 100644
--- a/dev-python/tavern/Manifest
+++ b/dev-python/tavern/Manifest
@@ -1,3 +1,2 @@
DIST tavern-3.6.3.gh.tar.gz 769747 BLAKE2B 7f81d9bce49f212c8855775ad98b9a5d1e9d958170bef6769057472d2a3198d45251e0a873d2efdefc61871e48d7d060066da7cecb3a7597fb46f6f50581b34d SHA512 e93454fe8e15a18baa8dae8cb727dc6da03e1125a2e8968045cd8cb44e96b2f2bf8e1e9ce04f26c6770f5cc4ed41aded7aa49c9dc5c798f0bd02a1f69f90e36d
-DIST tavern-3.7.0.gh.tar.gz 776796 BLAKE2B d1ad141f95177c7a8231b37950050ccb02f74b261989aa44b55cc46487f3fab92143e8a469b644c34eaeb6fb395d80cc00bafae9fbfb87fbc2188dd553ed48d7 SHA512 f81def1db77cf0ea6b459f5e16c2c0f3b950b5ec0ae14a809e9d9286a9cfdb348a956d1bad5fb0c891bd88267cbb89b4c639e2c21eda3a87c91505532d022cf7
DIST tavern-3.7.1.gh.tar.gz 806853 BLAKE2B 918c8cf10331c7f291d561b9cae2591fdf6d731959ba993e9f29c9b09be594ec3e1128501497bd6fa5d8c0d5902164ff7bcd17429da565e637d520bf66558ae5 SHA512 5fe85746eef5929f239e91ff247e84729f713681f10c8c92f7a5c6d4d91a6b42ac5ca038bb413f5ff7819fa97592732ec090911881fb55dbf5f495593e96261e
diff --git a/dev-python/tavern/tavern-3.6.3.ebuild b/dev-python/tavern/tavern-3.6.3-r1.ebuild
index 508d63607e75..efa18d950dce 100644
--- a/dev-python/tavern/tavern-3.6.3.ebuild
+++ b/dev-python/tavern/tavern-3.6.3-r1.ebuild
@@ -22,6 +22,7 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~arm64"
+# pytest-9.2: https://github.com/taverntesting/tavern/issues/1154
RDEPEND="
>=dev-python/hypothesis-6[${PYTHON_USEDEP}]
>=dev-python/jmespath-1[${PYTHON_USEDEP}]
@@ -29,6 +30,7 @@ RDEPEND="
dev-python/pydantic[${PYTHON_USEDEP}]
>=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
>=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
+ <dev-python/pytest-9.2[${PYTHON_USEDEP}]
>=dev-python/pytest-8[${PYTHON_USEDEP}]
>=dev-python/python-box-6[${PYTHON_USEDEP}]
>=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
diff --git a/dev-python/tavern/tavern-3.7.0.ebuild b/dev-python/tavern/tavern-3.7.0.ebuild
deleted file mode 100644
index 0cbe819120c0..000000000000
--- a/dev-python/tavern/tavern-3.7.0.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit-core
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="A tool, library, and Pytest plugin for testing RESTful APIs"
-HOMEPAGE="
- https://github.com/taverntesting/tavern/
- https://pypi.org/project/tavern/
-"
-SRC_URI="
- https://github.com/taverntesting/tavern/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-
-RDEPEND="
- >=dev-python/hypothesis-6[${PYTHON_USEDEP}]
- >=dev-python/jmespath-1[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-4[${PYTHON_USEDEP}]
- dev-python/pydantic[${PYTHON_USEDEP}]
- >=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
- >=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
- >=dev-python/pytest-8[${PYTHON_USEDEP}]
- >=dev-python/python-box-6[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
- >=dev-python/requests-2.22.0[${PYTHON_USEDEP}]
- >=dev-python/simpleeval-1.0.3[${PYTHON_USEDEP}]
- >=dev-python/stevedore-4[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/colorlog[${PYTHON_USEDEP}]
- dev-python/faker[${PYTHON_USEDEP}]
- dev-python/paho-mqtt[${PYTHON_USEDEP}]
- )
-"
-
-EPYTEST_PLUGINS=( "${PN}" )
-distutils_enable_tests pytest
-
-EPYTEST_DESELECT=(
- # requires grpc
- tests/unit/test_extensions.py::TestGrpcCodes
- # broken with paho-mqtt-2
- tests/unit/test_mqtt.py::TestClient::test_context_connection_success
- # TODO
- tests/unit/response/test_mqtt_response.py::TestResponse::test_same_topic
-)
-EPYTEST_IGNORE=(
- # require grpc*
- tavern/_plugins/grpc
- tests/unit/tavern_grpc
- # require gql
- tavern/_plugins/graphql
- tests/unit/plugins/graphql
- # require allure
- tests/unit/test_allure.py
-)
-
-src_prepare() {
- # strip unnecessary pins, upstream doesn't update them a lot
- sed -i -E -e 's:,?<=?[0-9.]+::' pyproject.toml || die
- distutils-r1_src_prepare
-}
diff --git a/dev-python/tavern/tavern-3.7.1.ebuild b/dev-python/tavern/tavern-3.7.1-r1.ebuild
index d83575dfb425..9595a8608c57 100644
--- a/dev-python/tavern/tavern-3.7.1.ebuild
+++ b/dev-python/tavern/tavern-3.7.1-r1.ebuild
@@ -22,6 +22,7 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
+# pytest-9.2: https://github.com/taverntesting/tavern/issues/1154
RDEPEND="
>=dev-python/hypothesis-6[${PYTHON_USEDEP}]
>=dev-python/jmespath-1[${PYTHON_USEDEP}]
@@ -29,6 +30,7 @@ RDEPEND="
>=dev-python/pydantic-2[${PYTHON_USEDEP}]
>=dev-python/pyjwt-2.5.0[${PYTHON_USEDEP}]
>=dev-python/pykwalify-1.8.0[${PYTHON_USEDEP}]
+ <dev-python/pytest-9.2[${PYTHON_USEDEP}]
>=dev-python/pytest-8[${PYTHON_USEDEP}]
>=dev-python/python-box-6[${PYTHON_USEDEP}]
>=dev-python/pyyaml-6.0.1[${PYTHON_USEDEP}]
diff --git a/dev-python/unearth/Manifest b/dev-python/unearth/Manifest
index e7a4ba1ed889..c33b3da430fd 100644
--- a/dev-python/unearth/Manifest
+++ b/dev-python/unearth/Manifest
@@ -1,4 +1,4 @@
-DIST unearth-0.18.2.tar.gz 285169 BLAKE2B 53e1d714276ee6c456b8d21ab12fe6abfa816dc3f8c407279f680d85e85a9a71f7e3ab841a24728a7d26a580f2bc032b2875bfe3943c500af7344ac973e27365 SHA512 a6e676ffc5ea543184ba17f7b5e355dc346147d1584fe850eea7adb69fff4e0df88d47fd8e1c0d9264f188a385d22e0759fd73d278efa9c1d6048976dad3531f
-DIST unearth-0.18.2.tar.gz.provenance 9710 BLAKE2B 6fd70dd262848f23979b7e17c90a7f4b240ec86727c0c46f899035b715b8f29d5cd7281747be578ca43e0a6295331deaec1d8ebbd64f45d542271cd6f3f8c9b1 SHA512 9f1c515d3be2b4c391a544d042ad4843833a8ad714ba7b987a570b738af578facd03c71181a1a4b7ef72117ce0ff768aef2f0d1ecdd6b9c7e7e8229aecbd1c7b
DIST unearth-0.18.3.tar.gz 286202 BLAKE2B c219a8bec7727e58884be2d4c96affca9cd3c20c4124e418221976b7cdd303ac04348b38c5c888bc573276602c7efd30f63cb40fae356057f6b8c2adeef52b74 SHA512 454babbb4c6a847b767e2c4fcadb92c5b827b54a2bfb2d3eb5316f2ab80d0f91d369f04d5adcd8c5468ab6a6880f1ef56185140ea0b4dd8fedd8ce33374b6a8f
DIST unearth-0.18.3.tar.gz.provenance 9787 BLAKE2B c782cd84fb5f5e532e8fe85cbcc54de4749f976a0416a0257b44dc445f258b9954daef0a6fa2cd7abbe6475ec5f68c01ad43bb5365cdfae71a3b093118aaa37b SHA512 b7b9dcc36d3a6694ca19b78ba02374b2e07fcea72e786a669b4a892c6f785294527dcd6fd85c654422b650f8e2441972caa121595604a6ce9ff97d646ab54178
+DIST unearth-0.19.0.tar.gz 290184 BLAKE2B 26cf4261aa6a3c01ff1e2705e67abe4b9385f25f5ff524d45b819e4a04c1d127227da64fb1d2e8412b64fe1d6504738b399d52d2b94be0a5b3c416691204d751 SHA512 eb690328ba2921fe4748586a4403cd3c230e53eb9f10f7b071e8fef5620bdc34695d720f4dbf563f4145712447a579f3b3eb03c47d6f8a67b29327a8f798e91c
+DIST unearth-0.19.0.tar.gz.provenance 9636 BLAKE2B 5a276ac270c20920477b947d6b0d309ba9c3e1a2af4fdb7eed9c495e427d432358e395ee062d1be36b96739ad7ac103be880afd87689646d6011cd21e0670459 SHA512 14c2ccabc411d7e12e905235d864fe287602f428ab881b5df26605c16e4fec00b3e07fe7cf68a1ee179ebd9254103360ae7dbccf8abf7c83d6ce73ff1974a964
diff --git a/dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch b/dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch
deleted file mode 100644
index 2475beb88ee4..000000000000
--- a/dev-python/unearth/files/unearth-0.18.2-fix-tests-packaging-26.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-https://bugs.gentoo.org/978396
-https://github.com/frostming/unearth/pull/176
-https://github.com/frostming/unearth/commit/69ece0800edeefb1daf035bb0ee348e17a4393fd
-
-From 69ece0800edeefb1daf035bb0ee348e17a4393fd Mon Sep 17 00:00:00 2001
-From: Steve Kowalik <steven@wedontsleep.org>
-Date: Mon, 9 Feb 2026 18:05:48 +1100
-Subject: [PATCH] fix: support packaging 26.0 changes (#176)
-
-packaging 26.0 changed how Specifier.contains() behaves with
-prereleases=None[0], so call it with False explicitly in the two
-tests that fail without it.
-
-0: https://github.com/pypa/packaging/issues/895
-
-Signed-off-by: Steve Kowalik <steven@wedontsleep.org>
---- a/tests/test_evaluator.py
-+++ b/tests/test_evaluator.py
-@@ -251,9 +251,9 @@ def test_evaluate_compatibility_tags(link, expected, ignore_compatibility):
- ("8.1.3", ">=8.0", None, True),
- ("7.1", ">=8.0", None, False),
- ("8.0.0a0", ">=8.0.0dev0", None, True),
-- ("8.0.0dev0", ">=7", None, False),
-+ ("8.0.0dev0", ">=7", False, False),
- ("8.0.0dev0", ">=7", True, True),
-- ("8.0.0a0", "", None, False),
-+ ("8.0.0a0", "", False, False),
- ("8.0.0a0", ">=8.0.0dev0", False, False),
- ],
- )
diff --git a/dev-python/unearth/unearth-0.18.2.ebuild b/dev-python/unearth/unearth-0.19.0.ebuild
index 5daeb1efa019..09152ba0a065 100644
--- a/dev-python/unearth/unearth-0.18.2.ebuild
+++ b/dev-python/unearth/unearth-0.19.0.ebuild
@@ -21,8 +21,8 @@ KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
- <dev-python/httpx-1[${PYTHON_USEDEP}]
- >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
+ <dev-python/httpx2-3[${PYTHON_USEDEP}]
+ >=dev-python/httpx2-2.0.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
@@ -35,7 +35,3 @@ BDEPEND="
EPYTEST_PLUGINS=( pytest-{httpserver,mock} )
distutils_enable_tests pytest
-
-PATCHES=(
- "${FILESDIR}"/unearth-0.18.2-fix-tests-packaging-26.patch
-)
diff --git a/virtual/httpd-php/httpd-php-8.4.ebuild b/virtual/httpd-php/httpd-php-8.4.ebuild
index dc70d6e00875..20fe3dba88f6 100644
--- a/virtual/httpd-php/httpd-php-8.4.ebuild
+++ b/virtual/httpd-php/httpd-php-8.4.ebuild
@@ -5,7 +5,7 @@ EAPI="8"
DESCRIPTION="Virtual to provide PHP-enabled webservers"
SLOT="${PV}"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="|| ( dev-lang/php:${SLOT}[fpm]
dev-lang/php:${SLOT}[apache2]
diff --git a/virtual/httpd-php/httpd-php-8.5.ebuild b/virtual/httpd-php/httpd-php-8.5.ebuild
index dc70d6e00875..20fe3dba88f6 100644
--- a/virtual/httpd-php/httpd-php-8.5.ebuild
+++ b/virtual/httpd-php/httpd-php-8.5.ebuild
@@ -5,7 +5,7 @@ EAPI="8"
DESCRIPTION="Virtual to provide PHP-enabled webservers"
SLOT="${PV}"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="|| ( dev-lang/php:${SLOT}[fpm]
dev-lang/php:${SLOT}[apache2]