summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorCrucible <crucible@localhost>2026-10-21 17:46:18 -0500
committerCrucible <crucible@localhost>2026-10-21 17:46:18 -0500
commitdd7c7f0914b2eb83ac283441de30766578426392 (patch)
tree70f6a0ebb66404cccfe9f4dea292bf5482cda401 /dev-python
parent7f39132ab3dd3cb51fa99aabd48800725855dfbb (diff)
downloadsrcux-dd7c7f0914b2eb83ac283441de30766578426392.tar.gz
srcux-dd7c7f0914b2eb83ac283441de30766578426392.tar.xz
srcux-dd7c7f0914b2eb83ac283441de30766578426392.zip
Publish srcux candidate 0000000776-20261021-173123
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/isort/Manifest3
-rw-r--r--dev-python/isort/isort-8.0.1.ebuild73
-rw-r--r--dev-python/isort/isort-9.0.1-r1.ebuild (renamed from dev-python/isort/isort-9.0.1.ebuild)4
-rw-r--r--dev-python/isort/isort-9.0.2-r1.ebuild (renamed from dev-python/isort/isort-9.0.0.ebuild)4
-rw-r--r--dev-python/isort/isort-9.0.2.ebuild69
-rw-r--r--dev-python/jpype/Manifest2
-rw-r--r--dev-python/jpype/files/jpype-1.7.1-jar-location.patch36
-rw-r--r--dev-python/jpype/files/jpype-1.7.1-java-release.patch32
-rw-r--r--dev-python/jpype/jpype-1.6.0.ebuild24
-rw-r--r--dev-python/jpype/jpype-1.7.1.ebuild60
-rw-r--r--dev-python/jpype/metadata.xml4
-rw-r--r--dev-python/mistune/mistune-3.4.0.ebuild4
-rw-r--r--dev-python/packaging/packaging-26.3.ebuild3
-rw-r--r--dev-python/python-tests/Manifest9
-rw-r--r--dev-python/python-tests/python-tests-0.3.14.9.ebuild75
-rw-r--r--dev-python/python-tests/python-tests-0.3.15.1.ebuild75
-rw-r--r--dev-python/python-tests/python-tests-3.13.17.ebuild71
-rw-r--r--dev-python/python-tests/python-tests-3.14.9.ebuild74
-rw-r--r--dev-python/python-tests/python-tests-3.15.1.ebuild74
-rw-r--r--dev-python/uv-build/Manifest8
-rw-r--r--dev-python/uv-build/uv-build-0.11.25.ebuild99
-rw-r--r--dev-python/uv-build/uv-build-0.12.13.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.12.19.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.12.23.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.12.7.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.12.9.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.13.1.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.13.3.ebuild100
-rw-r--r--dev-python/uv-build/uv-build-0.13.4.ebuild2
-rw-r--r--dev-python/uv/Manifest16
-rw-r--r--dev-python/uv/uv-0.11.25.ebuild163
-rw-r--r--dev-python/uv/uv-0.12.13.ebuild151
-rw-r--r--dev-python/uv/uv-0.12.17-r1.ebuild (renamed from dev-python/uv/uv-0.12.17.ebuild)5
-rw-r--r--dev-python/uv/uv-0.12.19.ebuild151
-rw-r--r--dev-python/uv/uv-0.12.23.ebuild151
-rw-r--r--dev-python/uv/uv-0.12.7.ebuild151
-rw-r--r--dev-python/uv/uv-0.12.9.ebuild151
-rw-r--r--dev-python/uv/uv-0.13.1.ebuild151
-rw-r--r--dev-python/uv/uv-0.13.4-r1.ebuild (renamed from dev-python/uv/uv-0.13.3.ebuild)7
-rw-r--r--dev-python/uv/uv-0.13.4.ebuild156
-rw-r--r--dev-python/uv/uv-9999.ebuild5
41 files changed, 539 insertions, 2224 deletions
diff --git a/dev-python/isort/Manifest b/dev-python/isort/Manifest
index 387755a6aa2f..672a32d7eba4 100644
--- a/dev-python/isort/Manifest
+++ b/dev-python/isort/Manifest
@@ -1,6 +1,3 @@
-DIST isort-8.0.1.gh.tar.gz 773936 BLAKE2B c4fd4183995295fd7cf4afa7da7e3f0377490be2207c278bf5f3135256475476777755ed77a8f901ae2c5ced5bdc126d38a8f16a75fd12df64b93529c080f574 SHA512 97c6e6ceea3fc5ddfa573214c2019774cb5a5012fd3127b6c80c3f43d7e1bfc87c559cda2d7d626aedc9e4ae5bb28f96b2f77a6161ad94879f070e285fd460b0
-DIST isort-9.0.0.tar.gz 665294 BLAKE2B 892eee505354e52121b10ee4b65ab331420605a412562c383a1bf92599477239da2197246efa840fd05bc14ec51e657c7705449307e5399860c6f3bc542c367f SHA512 8bde3f75fab572c28f7151c05023162f29a3e957b2acac6c803d08d3e06e887e2b7760a707a0381b4fb0b33451423c9e2649ce73cf43efb92debd695c6149046
-DIST isort-9.0.0.tar.gz.provenance 9605 BLAKE2B 02cb3f45398da5dd432c719c12d5456055ff94c89cb3a1bafcbcdfdfa4010f305c8e8fe9fe740ab534edaece1972052510d0531cf56637983f6dd38e23c8ca00 SHA512 b386487e2e2667d14c2efa638230323c91d817b5d509161da794dc9727f1275b4fef6c51aa5f720a32b32a8644be97067b0516d56398fda9534fc7ce86fd6a2e
DIST isort-9.0.1.tar.gz 667724 BLAKE2B 78892358e7e8c21a442541ef212517fef1742bba45b890cb7f1a38a25a8115edd1ceb1e5974345804b0cf145db6bc35d49a50c91da15e0dab4b73e965450a0e1 SHA512 edf386ec3497c1b9e540015dea76f8328593f43d2aa391acad459f175fe1b3a552d4ca0e75187bc92ef1319cb4c77bb774cb22ef9b46cf89daacc754bb454f93
DIST isort-9.0.1.tar.gz.provenance 9323 BLAKE2B 4910211d4f53834fae20740638f32b117ba19260c73e7408b5ca4d26ed65246571d35d9d3636b5213e3270c0406e70ba404812f85604f8c90c371a5f9775d8d0 SHA512 1b5e6ce351db6a9dae510eb4525f2f1cd6083ff55673d055be73367b02a92bd66fb47727e92a8189aff617bf857fb2632a490145f49762673a16706698ab7c57
DIST isort-9.0.2.tar.gz 685196 BLAKE2B 5b45c7dba7a7a313716acc5dc2c26a50ddb7993879beff746dc80f558098f9bedfdebb92890a3e946d2f1a6fff757df19358562a440ef9d2555a6748fea2b1bf SHA512 78274fb9876684abed3821673245d061bf3fb2b884fca487c8920a96736fed573fa7747284dd6c075f2712b83513de08352d46697d4b7b863b63d4fbbb21322a
diff --git a/dev-python/isort/isort-8.0.1.ebuild b/dev-python/isort/isort-8.0.1.ebuild
deleted file mode 100644
index b618e42faec1..000000000000
--- a/dev-python/isort/isort-8.0.1.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=hatchling
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1
-
-DESCRIPTION="A python utility/library to sort imports"
-HOMEPAGE="
- https://github.com/PyCQA/isort/
- https://pypi.org/project/isort/
-"
-SRC_URI="
- https://github.com/PyCQA/isort/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- dev-python/black[${PYTHON_USEDEP}]
- >=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
- dev-python/natsort[${PYTHON_USEDEP}]
- dev-vcs/git
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-mock )
-distutils_enable_tests pytest
-
-src_prepare() {
- # unbundle tomli
- sed -i -e 's:from ._vendored ::' isort/settings.py || die
- rm -r isort/_vendored || die
-
- distutils-r1_src_prepare
-
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-}
-
-python_test() {
- cp -a "${BUILD_DIR}"/{install,test} || die
- local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
-
- # Install necessary plugins
- local p
- for p in example*/; do
- pushd "${p}" >/dev/null || die
- distutils_pep517_install "${BUILD_DIR}"/test
- popd >/dev/null || die
- done
-
- local EPYTEST_IGNORE=(
- # Excluded from upstream's test script
- tests/unit/test_deprecated_finders.py
- )
-
- if ! has_version "dev-python/pylama[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- tests/unit/test_importable.py
- tests/unit/test_pylama_isort.py
- )
- fi
-
- epytest tests/unit
-}
diff --git a/dev-python/isort/isort-9.0.1.ebuild b/dev-python/isort/isort-9.0.1-r1.ebuild
index 1489af06d3e3..f714fcb33935 100644
--- a/dev-python/isort/isort-9.0.1.ebuild
+++ b/dev-python/isort/isort-9.0.1-r1.ebuild
@@ -19,12 +19,14 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+RDEPEND="
+ >=dev-python/mypy-extensions-1.1.0[${PYTHON_USEDEP}]
+"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
dev-python/black[${PYTHON_USEDEP}]
>=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
- >=dev-python/mypy-extensions-1.1.0[${PYTHON_USEDEP}]
dev-python/natsort[${PYTHON_USEDEP}]
dev-vcs/git
)
diff --git a/dev-python/isort/isort-9.0.0.ebuild b/dev-python/isort/isort-9.0.2-r1.ebuild
index f0e75dd60fda..934c34da7d87 100644
--- a/dev-python/isort/isort-9.0.0.ebuild
+++ b/dev-python/isort/isort-9.0.2-r1.ebuild
@@ -19,12 +19,14 @@ LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+RDEPEND="
+ >=dev-python/mypy-extensions-1.1.0[${PYTHON_USEDEP}]
+"
BDEPEND="
dev-python/hatch-vcs[${PYTHON_USEDEP}]
test? (
dev-python/black[${PYTHON_USEDEP}]
>=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
- >=dev-python/mypy-extensions-1.1.0[${PYTHON_USEDEP}]
dev-python/natsort[${PYTHON_USEDEP}]
dev-vcs/git
)
diff --git a/dev-python/isort/isort-9.0.2.ebuild b/dev-python/isort/isort-9.0.2.ebuild
deleted file mode 100644
index f0e75dd60fda..000000000000
--- a/dev-python/isort/isort-9.0.2.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# 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/PyCQA/isort
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="A python utility/library to sort imports"
-HOMEPAGE="
- https://github.com/PyCQA/isort/
- https://pypi.org/project/isort/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-BDEPEND="
- dev-python/hatch-vcs[${PYTHON_USEDEP}]
- test? (
- dev-python/black[${PYTHON_USEDEP}]
- >=dev-python/colorama-0.4.6[${PYTHON_USEDEP}]
- >=dev-python/mypy-extensions-1.1.0[${PYTHON_USEDEP}]
- dev-python/natsort[${PYTHON_USEDEP}]
- dev-vcs/git
- )
-"
-
-EPYTEST_PLUGINS=( hypothesis pytest-mock )
-distutils_enable_tests pytest
-
-src_prepare() {
- # unbundle tomli
- sed -i -e 's:from ._vendored ::' isort/settings.py || die
- rm -r isort/_vendored || die
-
- distutils-r1_src_prepare
-}
-
-python_test() {
- cp -a "${BUILD_DIR}"/{install,test} || die
- local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH}
-
- # Install necessary plugins
- local p
- for p in example*/; do
- pushd "${p}" >/dev/null || die
- distutils_pep517_install "${BUILD_DIR}"/test
- popd >/dev/null || die
- done
-
- local EPYTEST_IGNORE=(
- # Excluded from upstream's test script
- tests/unit/test_deprecated_finders.py
- )
-
- if ! has_version "dev-python/pylama[${PYTHON_USEDEP}]"; then
- EPYTEST_IGNORE+=(
- tests/unit/test_importable.py
- tests/unit/test_pylama_isort.py
- )
- fi
-
- epytest tests/unit
-}
diff --git a/dev-python/jpype/Manifest b/dev-python/jpype/Manifest
index 0d6d64aa739c..308057869528 100644
--- a/dev-python/jpype/Manifest
+++ b/dev-python/jpype/Manifest
@@ -1 +1 @@
-DIST v1.6.0.tar.gz 801839 BLAKE2B cdbb1f52156848d492a6e4ca3a224e2e8da94da00617aac014ad6daa031655d05228f00b9e7a3f044d3e6f5c31147f7d3175bddf5da042fecee3b6b46c2ebf56 SHA512 5849509334ab4eb63546b584eb32a0d61a9da2b5b303acc380f0be2742b96b32a2bd900b2a080e62ed32d7a7c5029a3d59c55fd9f7018ddd37e968e58df32707
+DIST jpype-1.7.1.gh.tar.gz 802748 BLAKE2B 035a91bd55d761e334a230bc550068829a72929ef9aad71c8bddf13f7866605b2d2abf95e42c9f03522fd1e698e381b77595db60fec8d8bd49f06e19bf53c173 SHA512 e02cfb72cfea61e445f8d448a559f58cf0016bccf689fe137ab4d75d6e5c8a640d774eadef09489b3ea3113725010a8c3251dfffe194b9c91250c9040923869c
diff --git a/dev-python/jpype/files/jpype-1.7.1-jar-location.patch b/dev-python/jpype/files/jpype-1.7.1-jar-location.patch
new file mode 100644
index 000000000000..f904a5d8c220
--- /dev/null
+++ b/dev-python/jpype/files/jpype-1.7.1-jar-location.patch
@@ -0,0 +1,36 @@
+QA marks the stray top-level jar in site-packages.
+Lookup adjusted to the new location.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,7 +26,7 @@
+
+ if(SKBUILD)
+ message(DEBUG "SKBuild invocation")
+- set(DEST_JAR ${SKBUILD_PLATLIB_DIR})
++ set(DEST_JAR ${SKBUILD_PLATLIB_DIR}/jpype)
+ set(DEST_EXTENSION ${SKBUILD_PLATLIB_DIR})
+ else()
+ # in-place build, set output to cmakes output dir.
+--- a/jpype/_core.py
++++ b/jpype/_core.py
+@@ -313,7 +313,7 @@
+ # extra_jvm_args += ['--module-path=%s'%mp ]
+
+ # Get the support library
+- support_lib_p = Path(__file__).resolve().parent.parent / "org.jpype.jar"
++ support_lib_p = Path(__file__).resolve().parent / "org.jpype.jar"
+ if not support_lib_p.exists(): # pragma: no cover
+ raise RuntimeError(
+ f"Unable to find org.jpype.jar support library at {support_lib_p}")
+--- a/jpype/_pyinstaller/hook-jpype.py
++++ b/jpype/_pyinstaller/hook-jpype.py
+@@ -6,6 +6,6 @@
+
+ fspath = getattr(os, 'fspath', str)
+
+-jar_path = Path(jpype.__file__).parent.parent.joinpath('org.jpype.jar')
++jar_path = Path(jpype.__file__).parent.joinpath('org.jpype.jar')
+
+-datas = [[fspath(jar_path), '.']]
++datas = [[fspath(jar_path), 'jpype']]
diff --git a/dev-python/jpype/files/jpype-1.7.1-java-release.patch b/dev-python/jpype/files/jpype-1.7.1-java-release.patch
new file mode 100644
index 000000000000..c60a4939ec46
--- /dev/null
+++ b/dev-python/jpype/files/jpype-1.7.1-java-release.patch
@@ -0,0 +1,32 @@
+Upstream uses URLDecoder.decode(String, Charset) - unavailable in Java 9
+
+--- a/native/build.xml
++++ b/native/build.xml
+@@ -1,7 +1,7 @@
+ <project default="all" name="JPype - Native">
+
+ <!-- JAVA_VERSION must match the oldest supported Java version -->
+- <property name="JAVA_VERSION" value="9" />
++ <property name="JAVA_VERSION" value="11" />
+
+ <!-- src can't be "java" as it breaks nose tests -->
+ <property name="src" location="jpype_module/src/main/java"/>
+@@ -17,16 +17,14 @@
+ <mkdir dir="${build}/classes/META-INF/versions/0"/>
+ <mkdir dir="${build}/lib"/>
+ <javac destdir="${build}/classes"
+- source="${JAVA_VERSION}"
+- target="${JAVA_VERSION}"
++ release="${JAVA_VERSION}"
+ excludes="**/Reflector0.java"
+ includeantruntime="false"
+ >
+ <src path="${src}"/>
+ </javac>
+ <javac destdir="${build}/classes/META-INF/versions/0"
+- source="${JAVA_VERSION}"
+- target="${JAVA_VERSION}"
++ release="${JAVA_VERSION}"
+ includes="**/Reflector0.java"
+ includeantruntime="false"
+ >
diff --git a/dev-python/jpype/jpype-1.6.0.ebuild b/dev-python/jpype/jpype-1.6.0.ebuild
deleted file mode 100644
index 1caaef3f3492..000000000000
--- a/dev-python/jpype/jpype-1.6.0.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2024 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="Bridge to allow Python programs full access to Java class libraries"
-HOMEPAGE="https://github.com/jpype-project/jpype/"
-SRC_URI="https://github.com/jpype-project/jpype/archive/refs/tags/v${PV}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="virtual/jdk"
-
-src_prepare() {
- sed -i "s/'-g0', //g;s/, '-O2'//g" "${S}"/setupext/platform.py || die
- default
-}
diff --git a/dev-python/jpype/jpype-1.7.1.ebuild b/dev-python/jpype/jpype-1.7.1.ebuild
new file mode 100644
index 000000000000..407fa516aaa2
--- /dev/null
+++ b/dev-python/jpype/jpype-1.7.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=scikit-build-core
+PYTHON_COMPAT=( python3_{13..14} )
+EPYTEST_PLUGINS=()
+
+inherit java-pkg-2 distutils-r1
+
+DESCRIPTION="Bridge to allow Python programs full access to Java class libraries"
+HOMEPAGE="https://github.com/jpype-project/jpype/"
+SRC_URI="
+ https://github.com/jpype-project/jpype/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=virtual/jre-11:*
+"
+
+DEPEND=">=virtual/jdk-11:*"
+
+BDEPEND="
+ ${DEPEND}
+ >=dev-python/scikit-build-core-0.9[${PYTHON_USEDEP}]
+ dev-java/ant
+ test? (
+ dev-python/jedi[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${P}-java-release.patch"
+ "${FILESDIR}/${P}-jar-location.patch"
+)
+
+python_compile() {
+ local DISTUTILS_ARGS=( -DBUILD_TEST_HARNESS=$(usex test ON OFF) )
+ distutils-r1_python_compile
+}
+
+python_test() {
+ cd test || die
+
+ epytest jpypetest --checkjni \
+ --ignore=jpypetest/test_sql_h2.py \
+ --ignore=jpypetest/test_sql_hsqldb.py \
+ --ignore=jpypetest/test_sql_sqlite.py
+}
diff --git a/dev-python/jpype/metadata.xml b/dev-python/jpype/metadata.xml
index 3e664c81ed3f..bb2b36e77133 100644
--- a/dev-python/jpype/metadata.xml
+++ b/dev-python/jpype/metadata.xml
@@ -5,5 +5,9 @@
<email>ivan.lloro.boada@gmail.com</email>
<name>Ivan Lloro</name>
</maintainer>
+ <maintainer type="person">
+ <email>mit.mis@gmail.com</email>
+ <name>Michal Andrzejczak</name>
+ </maintainer>
<origin>srcux</origin>
</pkgmetadata>
diff --git a/dev-python/mistune/mistune-3.4.0.ebuild b/dev-python/mistune/mistune-3.4.0.ebuild
index e62e57f6822b..e30f80fa9f8c 100644
--- a/dev-python/mistune/mistune-3.4.0.ebuild
+++ b/dev-python/mistune/mistune-3.4.0.ebuild
@@ -23,6 +23,8 @@ EPYTEST_PLUGINS=()
distutils_enable_tests pytest
EPYTEST_DESELECT=(
- # unreliable timing test
+ # unreliable timing tests
tests/test_misc.py::TestMiscCases::test_deeply_indented_list_does_not_scale_quadratically
+ tests/test_security_formatting.py::TestFormattingSecurity::test_repeated_unclosed_formatting_markers_are_near_linear
+ tests/test_security_inline.py::TestInlineParserSecurity::test_adjacent_ruby_tokens_do_not_recurse_forever
)
diff --git a/dev-python/packaging/packaging-26.3.ebuild b/dev-python/packaging/packaging-26.3.ebuild
index e9fdbf3eac47..d5f29e8d2af3 100644
--- a/dev-python/packaging/packaging-26.3.ebuild
+++ b/dev-python/packaging/packaging-26.3.ebuild
@@ -26,7 +26,8 @@ fi
RDEPEND="
!<dev-python/setuptools-67
"
-DEPEND="
+BDEPEND="
+ >=dev-python/flit-core-3.12.0[${PYTHON_USEDEP}]
test? (
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
diff --git a/dev-python/python-tests/Manifest b/dev-python/python-tests/Manifest
index 703e04b30ac8..e48ac98b7b01 100644
--- a/dev-python/python-tests/Manifest
+++ b/dev-python/python-tests/Manifest
@@ -6,20 +6,29 @@ DIST Python-3.13.15.tar.xz 23160540 BLAKE2B 919260666d5e641fa174de3f9ce4dace7bc2
DIST Python-3.13.15.tar.xz.asc 833 BLAKE2B daba95f5977f80a155effdfba3e1a8a744a739f0aa0d1f4f7d2e410cd91833c1faad1186ef50d1979ec061e4a9f0c71444955612a75b4874898c9cf571019a01 SHA512 662c00be95f62e80db43cf42099fef91f764ff7a4433cadf7eb19dedb5e4775adb12878d5ed2295fcea187731de186163ad9672ab72cde62a2335ca58ec1ad86
DIST Python-3.13.16.tar.xz 23225704 BLAKE2B 1a3912f93d51e86ae7c2ab6478a7286121a0e3410e2f6b67028aafb3e5bf49289e2c79d0f7af9264ee09374fdcfec136554f15e979330904a37b57c37f60a618 SHA512 7283884583b181161aff5ce523c0cdf03904a1d7a172db2727f7d3f42ae6e4d44f1ac86f7960df4a0203740cc04ab5adba3f404aafd562afe761d9052cc4f32c
DIST Python-3.13.16.tar.xz.asc 833 BLAKE2B efa3967a6164038003e30f9c6300a2a72fa0a2b65227064df8d9bd93ac84b84730f29c3a5ea10ac0385188ca22fa3b12cd2bdec19876ec75b49ca0033c397b27 SHA512 14f2ff2a5820d9e4410d4ac5a56aafa2a7e2b2ca8a9f5f6517bc839d61837a27522950999de4a422de4f6499fcec91015f27d940d88b3766bd0ad5d90d46ee92
+DIST Python-3.13.17.tar.xz 23233336 BLAKE2B 088471d7e6eb5d25225c9db7f80ac75d56b28dd2cc3a8a110dcd09c84f7ecd155201028842b26b03c592c32593079e94dfca2c87eb400fcff0fefbb0a78e23fb SHA512 461df4bca8b11cb2f76250ab38df3afdeb937a920132b3f8569c52261281d64d64ef8ba663c426ff613ad37dbcd1de871c5e15cc31f1b865982b8508adf986d9
+DIST Python-3.13.17.tar.xz.asc 833 BLAKE2B e052cba2e0b4ead0b2042e5f53c6e4d44cead34a24f95db74fcd9aa74df39635f3bb8cbafe2d6c3c3acb256fe77f000a28f29bca7b7b4ba45534815455302f0e SHA512 b1e13f16afd364024f827b7b7b55bf3b8aa2e3bc17bf6fb7fb128d102c441be73bf76649c24391c053d2983413a5df4698b2361f322521732d111478a50edff0
DIST Python-3.14.7.tar.xz 24053924 BLAKE2B 7d6988f906a402dbfc87b690f228b5fc53de024602bb459360e0482c1e323e212c71ff389b2c37bcc35248df9d9aa3bf710d3745484048cce7d4a41e5b3ea937 SHA512 3d4e2e2f983b320dec47005c408d7178d3656a6de0c4430ce21514797174b972f461200898b25d3dfac2a455019ef87e45d0fb2bb6ec2ca887124d10037a2a07
DIST Python-3.14.7.tar.xz.sigstore 7101 BLAKE2B 9c016780aad594596b5f4782e755f211bf6c635026c2c854d6594aba2254c84eeb78f0e90eae4b0ba218168c2162999b2e9327184031c43d8b111fb72e95f888 SHA512 6e56084d4c45712d2ce21c4f16008513e4daa22f2a6174b4d715c2bcf80a2fa9a1356ea6c4ecb8470ab2f08117ef79301da666b53b264bac53ae0801e410d189
DIST Python-3.14.8.tar.xz 24130644 BLAKE2B c357ff7ad35ed9daac86cf8b9ba05c2735104aaedd3b4e942e16f4f76ea4990d678f932da11b7d3e8677df5e3e848ed28d89b172844c53675cf09c86b2289903 SHA512 f9e6809b0c45d90fcc174b8051e15058a3037981c9136c598d110a118a22cbbb8263fbd677e07b2b9d93e1aa83cd9cb835b61b6af898fd301d1080a29c2156fe
DIST Python-3.14.8.tar.xz.sigstore 7489 BLAKE2B 9815b29e63c481ecb5bdd37f2f8da2d1a363adb1fc138ac00fec37732ecd5dcb34e010c2aaed4dea3aa688543768870aad17cd7999006b8b7974ed05e125e4e2 SHA512 cc030677f2b22287ed42974cd5d2654d1eadec38d66080b04b4a5bf468e9055aeff127dbd5cce508d31c977a38d84a0e87eb3c6375b2b924e03f7883e1d602a9
+DIST Python-3.14.9.tar.xz 24176992 BLAKE2B 58c55b36f1f2ae36161a2cd7c685467884205535300a2bb4ae8c719518c73e590ad8d4270719a6d689eea10117ea028abee704cf2607ced12867d315e27784d3 SHA512 2bf44a9efc3f056f7358fe8d6bd3c105cdb420705cefee2f45a3739fb07af923dbe4e7b38ff21acd9f306b55cb00c6a34f34c5e46ca859d8d820113081dc4714
+DIST Python-3.14.9.tar.xz.sigstore 7130 BLAKE2B 9bcb10b92e994df5f7a8ded0c110af4a8cb0fc0b8567555cfec87af402bc9ad103dd96a05714c3cb4c857b6d480483c06c482c6577805238fa8b36bef606d165 SHA512 a535f5444c8b85d081abd552d8672ba93184f65adc7ee44185167ae720d1ff56636774480cda8f7b52faf7cc381e6662ccedb680888961ffb07332e4829809cb
DIST Python-3.15.0.tar.xz 35688820 BLAKE2B fd061cceb89dc512b0e68f32189ba6d89e5707b633d5606215bdfa173ed67918127c195cbde6c0d759cb1197ebbbb030129f0520ef59eec83554d5d810257983 SHA512 293cbdbb20076c8d9f1ddfb9b72796974b00802f96691843af3924e55e2a7cbd89c1cd85ebd8e35a474eda9e7a878b6622238178ef2de4427e4e34ef70d04265
DIST Python-3.15.0.tar.xz.sigstore 7310 BLAKE2B dc13104044018b770628b085b3baabba2e06decfb0f5d31573fc847c6ca0f933a5a8bf3ff8241fe948009c6a190ea1b3aaf9d787c8b6b8a89dd15bade6a60096 SHA512 995e0bc6732c27a8c18a4f8d0db957fbe6b8e777d7e0b92669e03918aeabbade5443429ff5070bf02a5e03f8c873db1e92fa83e5bf63340b10d8653550ee4bd6
+DIST Python-3.15.1.tar.xz 35789408 BLAKE2B b26abe7b64cb055f77cd1f4931fe880907761d3289829803ec6cc6313b9e3e0ac7f9bf5e74be91eda411409d0bc5f29dd9f79bb6c72900e477389d1896ed0514 SHA512 6903df8c553f8bda2b5f807b21f1a948076522ffa5b17d9e8b452099294f78a085929565df7b2b79af153fc0e638928d87cccb35b48e505280ffa2c3e2b735ec
+DIST Python-3.15.1.tar.xz.sigstore 7177 BLAKE2B 67e60e2e054f4028b6818c30a7f48294732ff74d31cf277073e9f4cf252ff6939d3f5cab0995637cd2a74629ba5eefde2b89af4d52f101b01961a3b1e34cab87 SHA512 1183eaf7c46baaaa059e84c7b5b5d52177b76164e37189bae0327d5205bf7ab9b8f9ebccdcbdba659631c72381eccaa144e6389b335c194c5f8798e3249fb2e2
DIST python-gentoo-patches-3.12.13_p1.tar.xz 12408 BLAKE2B 2b232c2742eafcb803713c837b4ddaa38f45c88e707ec272571739570f9e2e5c94644681369d887992eadf5f0c1178489f1aa3a7d8163a2aa4ce6a86732e73da SHA512 e06d78ad24c9fbc3fa9c47b25ba722342ddd140aa30f624b41d605dae40d00ab956d879a247db2d7980c063a1472de40587a0d3cd6947e560aa7e8d0e4f89309
DIST python-gentoo-patches-3.12.14.tar.xz 14296 BLAKE2B aa38928fedcdca5b681f5b1d7cb227038a60202c91c561f2dd3dd40e80167e683676670b7a3fb791ad37f92801d23a429b5adc869eb5566f4223057e932d2f2f SHA512 aafa1c59b54c131efa7fc7db5e64ab01f6c15b4d9d6bedf44bed747b3b06610dc731c4d527b91b321205e83eba944da4b687f23628155468cfc4c8b531a822c0
DIST python-gentoo-patches-3.12.15.tar.xz 14288 BLAKE2B 7542fe0812f67d5b77e22c8af05468960695d1581469d3aee8a8aa569b0a56f75dc264242c8e90f4be5c47488389263f4a61a847448862e253926744055101c3 SHA512 f8e78c98ce383045aedf4d637fb4ae0c435db115c30eb96dafc0150a813e6849ca23b0fc5cb04f9530d92dafd604ee41b50e1edae228f7ed32c8b62ce623e252
DIST python-gentoo-patches-3.13.14.tar.xz 9360 BLAKE2B 257a43992b857d44881174b36b0940fab3f879060938fe6e6464ae671832a3af624a0cc6f012e44ee344a34d0a8da0c898a29176029bfab70086434fbd3c3b99 SHA512 0084ffc35ff81a7056dd7a3624083ed957fbe482b1cbca9e401ef5851e0046b82b9102f4cf358f2974d7a7dfb3e21e96dcafe6c207417fa01834b9d10a2ee8d6
DIST python-gentoo-patches-3.13.15.tar.xz 9364 BLAKE2B 03cc93d5d89db0fedf92dc80e1a758b408fea4d718c7ef653b5068b791327a0d416870a362a652f21066abf17b15f682850f71473adf8e2bfc86ede4677738e5 SHA512 319805f8dad220b89c6d52bd76ba031f1c8c780c7338fdbe7fd35af685a8ee75ca2568d77863a67de64398e92c4b73beb581481846f81c24eb9f0317b81a848a
DIST python-gentoo-patches-3.13.16.tar.xz 9364 BLAKE2B 7eb7072f782955041d5d1284a66312269671a4ef38b38d4b9e3e9fe65f6f4ae2fc1aaa3dae623743903acf38b99b6e15c3a11dd1a7892d6f1d34c3f33c81b7de SHA512 2ba2b6bb9c785ea78a88326ca4185d171a8f5c209a41269e0a70c244d037cae871be60a76c237d54f78720882cefe9fee8f8d3b132fed725b2beaf18765d3ed4
+DIST python-gentoo-patches-3.13.17.tar.xz 9364 BLAKE2B 367558e56f8b8545ca7c44ac24a1f28b14fcbc13ab314dd102d4c3408b01d062d26ae9333f87fc8e8743d2d9ee55bfd62714deda16e20c9a16927c91bf87bd7a SHA512 fe2492e1bc21ab884c4c747d8816acb3215ccc78da0c66ad12d214e5cadde665903e897490ca08ea6df6636e2e4b108f46fb226bc841812af78ba70945fb1282
DIST python-gentoo-patches-3.14.6_p1.tar.xz 12032 BLAKE2B 315de6cb5f346c6406e12d4cb6ccbc986e6a39dc334e5ceb4d1ba4922a336d77f0bd0167fb7ef4d1c40ce0829e03248e838dbfbd0a46c0e4e0f6cf9e999e09e8 SHA512 2ac689aa6cff138782440ce1104bf21eace756fd1a72e22590c14157390937f7f50cd1e1ca774bb5a1ff08404b74901fb55d703c39a6ff9c9165e420d1b045e9
DIST python-gentoo-patches-3.14.7.tar.xz 10304 BLAKE2B df9214b27caaef53da93e5468faae24186d5f37b675a86289ae0161539935a509d60635cde4569efd03769e228fb7d450e396bf731db2b49d4a46e0f70df4a87 SHA512 d8313edbf5126df6ed59d4e06fb813574e4dd672ccd433e6de776a06757deda0e0495bb92e59508d86bb5ee84d2fab8141c5446f6541104b1bd80c8647a1f705
DIST python-gentoo-patches-3.14.8.tar.xz 10300 BLAKE2B d03992cf3aa224c03bdff6bb837879fac6c935265a384170c4139d09a9e3fb246cd7822ae171ed88999d6120512e7f49bd04c1d3f7ccee1967e194e1186ce7b3 SHA512 9d05432b04718ddaa5d09a0fc99d2498078398e94f00470b48f19c1779cc86997917825a1d2ac539e2170d8f0a9ade82a9b8909ae221db395a6f9fdbde3a24f6
+DIST python-gentoo-patches-3.14.9.tar.xz 8432 BLAKE2B 33d7260c4e8257675989db5ec94c6553ffc9169ccdf5f989ca293483d3e1f019f5285c899e50beae66dbbdb260abca979aab159f28c40e13d55d5f3458387387 SHA512 a4effaafe1588c3e27c9b69db6a1e9ff5ffda7560ac2ac0ab64870aeab4761249f84cfb776cf7cb501e81d535f9cb672b9ea9e4488ffb9351780be2effc5c3db
DIST python-gentoo-patches-3.15.0.tar.xz 4624 BLAKE2B 844b76e97fe4564613e4a00d02f77b18ef63a1b731ee7112789f9067d973decbcab05aeca2da32945b2c1f03e81705e7b102d4281b43287db948a3483e702f35 SHA512 0b0df753ab876f579e59b351d72b80279562236a1f5b36016eff133e4e3a7bdac7705af53a2f3a8ec4a0836c9357ceb5ea236047e3b12ceedb8ed593267f6cfe
DIST python-gentoo-patches-3.15.0b3.tar.xz 3432 BLAKE2B 994e9339e00dfa4b40395e763f25dde4813d791151787028dafcf2e5159c38bbe88d4b56d07fc4c7454a09bd55edfda94b9cb8cf5c0ff0ffe7db4bb1a8eea8b6 SHA512 8c3a8dea43fc42179679b1f6811979dabb4e1c34821b4aecd894d661842df26e7592f5c74787157f36ccddf9ce233994c774fbe8381dc0ccaff3dfcff0c6c572
+DIST python-gentoo-patches-3.15.1.tar.xz 3432 BLAKE2B 0e054d03af93b778f3c2c81b05bcd302d37ebde076ac193f2bcf39a0c0d6c96e36181371628336b3c9391aea4058d4dbc85a4da9de12a946fcbcaa1b50bd34ef SHA512 ed9cd83e7f87058c5c6e82688206ca68594d4eb3ad39764e7680af2470e370e7cb5a36a7a860a00433e6fcaf9153b23ada2758ea0a1fdf5b90c8bc46c1cff8c6
diff --git a/dev-python/python-tests/python-tests-0.3.14.9.ebuild b/dev-python/python-tests/python-tests-0.3.14.9.ebuild
new file mode 100644
index 000000000000..5eb635e5eab7
--- /dev/null
+++ b/dev-python/python-tests/python-tests-0.3.14.9.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+REAL_PV=${PV#0.}
+MY_PV=${REAL_PV/_/}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 2-3)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-0.3.15.1.ebuild b/dev-python/python-tests/python-tests-0.3.15.1.ebuild
new file mode 100644
index 000000000000..f3a756fe9c02
--- /dev/null
+++ b/dev-python/python-tests/python-tests-0.3.15.1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+REAL_PV=${PV#0.}
+MY_PV=${REAL_PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 2-3)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.13.17.ebuild b/dev-python/python-tests/python-tests-3.13.17.ebuild
new file mode 100644
index 000000000000..4f374a4aed58
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.13.17.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+ !<dev-lang/python-3.13.0_rc1_p3-r1:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20260805 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.14.9.ebuild b/dev-python/python-tests/python-tests-3.14.9.ebuild
new file mode 100644
index 000000000000..9f9623be450f
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.14.9.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_/}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_rc* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/python-tests/python-tests-3.15.1.ebuild b/dev-python/python-tests/python-tests-3.15.1.ebuild
new file mode 100644
index 000000000000..b7e5d0c7a099
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.15.1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+VERIFY_SIG_METHOD=sigstore
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+if [[ ${PV} != *_* ]]; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+# enable by default to help CI handle it (we have no additional deps)
+IUSE="+python_targets_${PYTHON_COMPAT[0]}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+"
+
+# https://www.python.org/downloads/metadata/sigstore/
+VERIFY_SIG_CERT_IDENTITY=hugo@python.org
+VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 69bbc2faff51..a199ed0a136a 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -1,10 +1,2 @@
-DIST uv_build-0.11.25.tar.gz 404894 BLAKE2B 6922a5e91c5c657ca5ed90edb0250cbd7192d208cdc135d8c5de74c04de8b91c10d7c0d52d58224a6cb60c7114ecbdcbc2181ac18b0b69cf41d88fd007329a36 SHA512 9315f67c76004b6b45e08d8cad53e5ac4f04a2342e18768523e71f9dc2f7e81aec599f968983df3237d1ad3dc9b87b088f99d2ea79994543fa3623ab21ae5730
-DIST uv_build-0.12.13.tar.gz 424846 BLAKE2B 9fee11946f1067045349d28ba05b6dae8aaea430fdbbe19970c286d20f758d03343ed9a6afd2166f85ecfee3009fb66c7429f6ee8c58a6453e0203f2a3fca38a SHA512 77bf75208e6932b791b42d2a9dc199901a981d3ab8881e58cd5604e3207aef020538ff120770e0eb31646c1c0b7e972c816932c9d3bb0defc6b9583763607584
DIST uv_build-0.12.17.tar.gz 434807 BLAKE2B 8823907abc14637a684723b683284cc8b6a40b2467adbab74059b139388aeb1ff8870bdc09a497bad3e06af60c4e9c360c8d57cc6dd62e26e9239f4cf041f827 SHA512 a833a0578c6d543eabe51089d330f0d93d141bea5ff2bc1a194ad27a7ad4a1c7189321cdcf6012465b819bffd620affb42d4fb148bce69beeee0e32537a74668
-DIST uv_build-0.12.19.tar.gz 435379 BLAKE2B 4ded7941c9277d571757d9f49fcb124c931297bceeb9c8be168fb6a2e2bc28276d74fc377f06713058b8544d90060b4e3c6231add59687e7d0b2b0fb737e0fb9 SHA512 0a6909be77ba66d48d7b57aa6929c0448c50c9289804432c4aad058d58ea8d10a7f0ad5e1bacacde59e7d6d16758925dac3b52afb13fea3e08d9439612b2cc00
-DIST uv_build-0.12.23.tar.gz 437241 BLAKE2B 05e4750d1d540a81b36cefc7043b95ec188bdfb1096c20a9b446abb61e50ca5397bee8d121ca5aff06b3173abefdcfcb198dc1603a5878eccf9ed8bf1368546f SHA512 f9b1b74f89572fec3a36e6dab979ee64c7209c0483e531981908aeab18bf20618e441a8f150b4a0a5e6c2ad5cda39e34a604a40c1f2c39005c6f8185044fe401
-DIST uv_build-0.12.7.tar.gz 418759 BLAKE2B 94aa33b2644f849a686d80d7f7d365ca8433615d93f27209fca5b21747363cd349d11e887d090420102f06a49977ce963b8f19c24a4280bf82a09943ba08885b SHA512 135f845b3ee6d1925f740917f83f94ec1a7e95aab5ed2db0aa70516c712ab0a143a0e427d3c172fac0bb1fabaa9103718bb2a26c31c9a287e3af65ac0175a245
-DIST uv_build-0.12.9.tar.gz 423446 BLAKE2B 8f32f7527633f5853a11a0f798a2aa075f9e96c2b34144f986a639dbd042bac7c5e33853287ef43273352a3ee84da852062c42daead1f188281295b635694177 SHA512 3aa6ea5b4e60218e7cbc3c5ed8ff7fbeeace36eb0d2c75627fb7a0ce7c060e8d6405378e9713f7164319cce55dc96b1a335ccb3032cfc7e9e60e99862295e79e
-DIST uv_build-0.13.1.tar.gz 446632 BLAKE2B 543350d4a3d6ba53ea5d52f0f840245a6865f029a48f4f095d4d191b0ca502960526660f9255d60bb8e15b00c6daba9afbe7a8c19e61ca841fa5524a9b63c10b SHA512 42f4739a21e068af66b884a22f7fd57f278ebfe37a5561d5fdf95dc0c443456e5436a3ce49b26b96c70b7431c0422af37a33b529a0f6ab09e3ad108a9982350d
-DIST uv_build-0.13.3.tar.gz 464136 BLAKE2B 4bcffe9228283c2c6388627d9ded292855c506aebb97efae931a6aecafdd1c5a680dc65a47651496409dde59c896e846b76f5abf4d67e2483d024f5cd93e9ffa SHA512 2fc5b9fe0e23172636b2fb927634619f5b93f1e1173ae2a8ea3ce14b4194bd2dba7bf6da6e46723c90a945a47273b8e67114398bc958e94f68bc4895af7a6574
DIST uv_build-0.13.4.tar.gz 464427 BLAKE2B 899bd8d7628bc5a291a6f974e569484a61d1aff51745e004cb663167128470147f2dae454457e010fa495e9d9de19527e9185e90c88018e51b4352359ceca349 SHA512 2e74b38cd01468281f481fa3b1ea289e1d262986e97bf3bfd27812c08676825567c547144bc9ed090bede4eb8db3114e6e8330eeaf96a91602bdd5212ae76433
diff --git a/dev-python/uv-build/uv-build-0.11.25.ebuild b/dev-python/uv-build/uv-build-0.11.25.ebuild
deleted file mode 100644
index 9c07f3730a9f..000000000000
--- a/dev-python/uv-build/uv-build-0.11.25.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.13.ebuild b/dev-python/uv-build/uv-build-0.12.13.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.12.13.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.19.ebuild b/dev-python/uv-build/uv-build-0.12.19.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.12.19.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.23.ebuild b/dev-python/uv-build/uv-build-0.12.23.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.12.23.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.7.ebuild b/dev-python/uv-build/uv-build-0.12.7.ebuild
deleted file mode 100644
index 3805a254cf46..000000000000
--- a/dev-python/uv-build/uv-build-0.12.7.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.12.9.ebuild b/dev-python/uv-build/uv-build-0.12.9.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.12.9.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.13.1.ebuild b/dev-python/uv-build/uv-build-0.13.1.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.13.1.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.13.3.ebuild b/dev-python/uv-build/uv-build-0.13.3.ebuild
deleted file mode 100644
index 65d94f2051ae..000000000000
--- a/dev-python/uv-build/uv-build-0.13.3.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Maturin compiles uv-build executable for every impl, we do not want
-# that, so we use another backend. And since we use another backend,
-# why not dogfood it in the first place?
-DISTUTILS_USE_PEP517=standalone
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="PEP517 uv build backend"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv-build/
-"
-
-LICENSE="|| ( Apache-2.0 MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/uv-${PV}
-"
-BDEPEND="
- test? (
- app-arch/unzip
- dev-python/build[${PYTHON_USEDEP}]
- )
-"
-
-src_prepare() {
- distutils-r1_src_prepare
-
- # use the executable from dev-python/uv instead of building
- # a largely overlapping uv-build executable (at least for now)
- sed -i -e '/USE_UV_EXECUTABLE/s:False:True:' python/uv_build/__init__.py || die
-
- # replace the build-system section
- sed -i -e '/\[build-system\]/,$d' pyproject.toml || die
- cat >> pyproject.toml <<-EOF || die
- [build-system]
- requires = ["uv_build<9999"]
- build-backend = "uv_build"
- backend-path = ["src"]
- EOF
-
- # rename to make uv-build find it
- mv python src || die
-}
-
-python_test() {
- "${EPYTHON}" -m build -n || die "Self-build failed with ${EPYTHON}"
-
- local zip_result=$(
- unzip -t "dist/uv_build-${PV}-py3-none-any.whl" || die
- )
- local zip_expected="\
-Archive: dist/uv_build-${PV}-py3-none-any.whl
- testing: uv_build/ OK
- testing: uv_build/__init__.py OK
- testing: uv_build/__main__.py OK
- testing: uv_build/py.typed OK
- testing: uv_build-${PV}.dist-info/ OK
- testing: uv_build-${PV}.dist-info/WHEEL OK
- testing: uv_build-${PV}.dist-info/METADATA OK
- testing: uv_build-${PV}.dist-info/RECORD OK
-No errors detected in compressed data of dist/uv_build-${PV}-py3-none-any.whl.\
-"
- if [[ ${zip_result} != ${zip_expected} ]]; then
- eerror ".zip result:\n${zip_result}"
- eerror ".zip expected:\n${zip_expected}"
- die ".whl result mismatch"
- fi
-
- local tar_result=$(
- tar -tf "dist/uv_build-${PV}.tar.gz" || die
- )
- local tar_expected="\
-uv_build-${PV}/PKG-INFO
-uv_build-${PV}/pyproject.toml
-uv_build-${PV}/pyproject.toml.orig
-uv_build-${PV}/
-uv_build-${PV}/README.md
-uv_build-${PV}/src
-uv_build-${PV}/src/uv_build
-uv_build-${PV}/src/uv_build/__init__.py
-uv_build-${PV}/src/uv_build/__main__.py
-uv_build-${PV}/src/uv_build/py.typed\
-"
- if [[ ${tar_result} != ${tar_expected} ]]; then
- eerror ".tar.gz result:\n${tar_result}"
- eerror ".tar.gz expected:\n${tar_expected}"
- die ".tar.gz result mismatch"
- fi
-}
diff --git a/dev-python/uv-build/uv-build-0.13.4.ebuild b/dev-python/uv-build/uv-build-0.13.4.ebuild
index 65d94f2051ae..dd466669a80f 100644
--- a/dev-python/uv-build/uv-build-0.13.4.ebuild
+++ b/dev-python/uv-build/uv-build-0.13.4.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="|| ( Apache-2.0 MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index c4a745b045b1..7158f373e5c9 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,20 +1,4 @@
-DIST uv-0.11.25-crates.tar.xz 43779192 BLAKE2B ae9d16ba3f8a5a719b6f52980c3b8ce6f874494f861cdad065ead5f3a19b80794bc4dda451710f061b45bdaa05a5587aacb5a583d01dd7cb74d800be4d5e3293 SHA512 0dc611e6aef1fa0861fbc63eba94e588022cb3974aa788c3e595cea04adf0c4165316e6cacb8cf073acc22db84bc61da7de0218ac51665b0e6aa215b6a1cc1e8
-DIST uv-0.11.25.gh.tar.gz 5538598 BLAKE2B 47198e379339a963a90b394b29271e2b276ced739f4320daf279eabc53cd0bab1698a57f336ed3270a4b8f40fa4f6a8f8b201603ed3952d282d220b0e290418a SHA512 9b993ae026d55ee8dfe13101e0fdbe026d81b77ff42b20ad42ff72c9708f2d767cde94010e69cd4f65fa8821c43958bc665893761119770deba70823d895298c
-DIST uv-0.12.13-crates.tar.xz 44176012 BLAKE2B 5a2459d28a794edf2a049c973916c6af95984d7fd706b0c517ad58f0a964fd2fe7dde62e2b4fb7afd725fe9fdd144021713bbff779abdf9ebd9f14487a390cf0 SHA512 8960412783a8028b634f5b535577a97d13159e0d515f18c8092504934d55d3ebb93b8951469f34eddda33fd6e89542add3ea6ef4444e367828783237f2a732da
-DIST uv-0.12.13.gh.tar.gz 8784071 BLAKE2B afb0acdf733efe4937ba5e7a8ca5257e9f3c6651e13adf5b44e96985be9f0abebd2167aec84bf285385b8c984636c0c9ff0f4c6077188088cff27af40334fa78 SHA512 e8a03cde57914007d932c55d017be780a9aaeac62d1b5831a3fd62f8c44299d6c8bc01582eb3e6c06c92b3edfbd519e1ea4d8d95fbb2cd0bdffd85b1cd36a137
DIST uv-0.12.17-crates.tar.xz 43846848 BLAKE2B f899f093a14a7195cb93d81aa71c31d68f068050d5a3d7a299be166808ff7333e8b93884637649bcf219e2dbd3ae14f7bc68250c7249c3f9c07b5e794a88c3c0 SHA512 d3d33ea3e3fa1468442abf13afde74a6cbccb52a674086833f2075424a6c79eb75644d0fc411eae3b015eaad81d7612dbed1d8123ed05c79f8d9542beff187a7
DIST uv-0.12.17.gh.tar.gz 8706123 BLAKE2B e45aae4ea550252440e8f646a505ba4d295e1eafe94092798e79e5db26320dae4b899cc7d04d96387791996e55e4ced2cbcff6ffcd9edc056c9580f5e175751f SHA512 ae554aa9d096afa7e1c35a1e50ba11c0553cd182ba75e5dd425613add092d38c46b3cbd47b026f03674394d6d0852162d5953c4cacef511c7157378d1790b8a1
-DIST uv-0.12.19-crates.tar.xz 43866448 BLAKE2B be0edae4bf12216c1d8f7b14b987bc0f483afac80380b1425e8f153097aea5271fff65a56652c400df86181b4dce3c2b31151e97c22356d860b36d2473ff86b1 SHA512 26f88051220016fdbbd8261f74b8d752aa2ac75c31b96b361f3eb026e7bb5d1aaccfaa5be308b181838fbc1c917d55f051709f7e489748a02d3e5286ee1eb6d7
-DIST uv-0.12.19.gh.tar.gz 8735351 BLAKE2B ab7088dc33ec9ca571f599987ec379e66196d89566b88f410fb30aee8c9053a5c4f3dd844185bc4af6ca1b27b287621baf0bc25823a4f84c14cf7925a69c597f SHA512 2726729324c58d77d4b9b402b3ea465821d38642f5edb7294be3fbb509b51d53d0a5bfc8678521100c25abea7973cd7b1e48957c43b2d242039b6ff33106d4a1
-DIST uv-0.12.23-crates.tar.xz 43999028 BLAKE2B eab0cb19a8a778ce9bae824851609a3d8bfe82659cf73f9c7a475f0dfa063222eeba26c709985defad2a3c8b9e3d42f0a0755e038263df7fbab23f0b343afcab SHA512 d6f44f045ccdf77b57214614d168cad1fddf94a3ec506364eed9178c17488afbcd2ffb1660de1aeecd5d333bc7249cf093c0f214a14a85c9bbd2955fe1bc4015
-DIST uv-0.12.23.gh.tar.gz 8783832 BLAKE2B 8f41cb4a1d2075beca613d690c2a52e06d74fe3fac06e417875e23f9e6d7858cf05361c3dffe5f29f4ecf17d31d45aa8cd3c1f5ec7e481110bd0117369d6ac93 SHA512 a1d215d692fe391ba1de6fd9e9cf2d48031b1a97b4fa3aef58f5aff53df9d3df9ec1378db5e70693ba8e52e5d5479560af94802268dba54397d94ac9829a5df5
-DIST uv-0.12.7-crates.tar.xz 44143088 BLAKE2B 075113e8cbafd99a1c70c4ce53678f2ceb13ce31dc7cafb5773e32ae9dfa14144390380e0149219912a0c4b92e6d3b9d0a0a0016cdd4c69097bf75adf1b8a716 SHA512 f9dbdad7cbddd3238c7cc9fbcbec4e92fc8c8c66bc7247ccc8159bb186223c199e3bd411ad9148750ec1fa258775dcec1e2bb6bc3287fca7aeb6ffa7ba4d6b44
-DIST uv-0.12.7.gh.tar.gz 8659716 BLAKE2B ab7d74e16821dbbefeb247cf80926ae23f75b5f309a8864070b3a01344044a966f772685cb864470b4c30877f8e03715ec675b658862bd04906e740866ebffd1 SHA512 7f9bd1aef6c285aedd3fe588a5f70e0458f85f6db14f0368ea24c5524fd66990510e0d5624a7faf48091a3dc73ff66ac52ab9a6ed571a10cca272b9588fb1aff
-DIST uv-0.12.9-crates.tar.xz 44161200 BLAKE2B ef5f654005a5c074a2c251471bfe91db9e172b5733ede5e9b5f48a3464194f50e288aeb8afdbd2f0923106380812490bb800506c3c10dca916e994c2c6548a6c SHA512 26676348002e1c3ddfdc772ce6a429ab0d69fe7641a539dba2694a0e946c2f23789e5c8d6ceeaef407efbd20ec4b0fe889463d94c498514462bc19f0d85fff7d
-DIST uv-0.12.9.gh.tar.gz 8688302 BLAKE2B 0ec1ded90f77ad7b9eb0e0a5c8001b26e10b7485ffa6e709638130173ded90d92969a54f10a455e8a0c032d5872881a3f527a6d4b612d378f283349dea816cab SHA512 18d35675a3e15531a9542c951b265866da4b762e0f2ba91f66dcc8b55ba5352ec97638ee2dc7fd3a908639201b27a442112a75c67053f9d861840c041e0b5290
-DIST uv-0.13.1-crates.tar.xz 44234800 BLAKE2B 78e734286467404e4289cff568565e1ef16bf7b97eef5b01180dabca62bc8fd21bbd39b24f0fa40213b97c8a1e2a2733801c382bb271f8377f4688102c623da9 SHA512 a736dc50e05b52fed9379570415d1a18e32a3a1f23c8630af625677df73b7916ecf2f66d8b7c9d9281d1c37264e442bc16c382e0c5ea21b8be68f33a9d26e3f2
-DIST uv-0.13.1.gh.tar.gz 8877918 BLAKE2B 43c1726bf6b277b57d154a0bba917cd6762c5dd3e4fbc5293c49372725e12b6980ef34fc44013c68a0956fa9bde368d3a6f45c4e658f27fe98506f22c987a7f2 SHA512 de0bf17d6ddc081e2b3904ed04aeb6ab7e9745880dd2cf78fd9f70e01241d28701246bb2db2b524c76549a0a53af899ad291dec7e957c6a96a344c285c1c4e29
-DIST uv-0.13.3-crates.tar.xz 44006060 BLAKE2B f93beea37edc6642d352b1c497cdfbce32e2fc5d7606ebf648c9ad72b1c2a6bd000e9fe3f682794f54fa6c6968559351ddebe29ab4e1dbfc1555f401e0aa994f SHA512 d695cdc1090382cb559665e1c84f5d4f9cc7486437d0de2ac6c71669edc0bdbfa6181b617ca550b0f421ca33db7f308313b2527766f7435e4cf4f8481e769a77
-DIST uv-0.13.3.gh.tar.gz 8927836 BLAKE2B f6795d91b43ae3ea8c43b07027f8436c730476355c3e354ed72e9cb92c90e5a9d7480e4c3de008fd9ee317e5c03b257c1e9d6938af48706b530caf5c637a85c7 SHA512 7c91b766ef394fcdf562457516cb6556d29b3a25f84a52f00afd23a4c9399b74a65dec701b13fee06996b77bcec895278683ce1dc967961abd2d46228b8d34cd
DIST uv-0.13.4-crates.tar.xz 44003088 BLAKE2B 671f829d9f64a3f5aa2d1ec7e3f705eadb63529c43f65796a25ef0307f763ce4611f2ee41ee38ffeb19a2eac91d918129be4deb128c6a879c5bcd204862854ea SHA512 94d07b0fa8edbf6364366268be678055125e7baa854c8bc30aaf6721210fc63a1ef0dd5f07e0a511b2cd132f2fcf25690b6c2fa828b97b3893785ed18d40a51e
DIST uv-0.13.4.gh.tar.gz 8930524 BLAKE2B 6db88a4d14037a65f0c2f1a5e98a1a3a6c0697300906af3f753d7ce87320b4086067abe13a60fd335d713f427fc1e2bda7a4917eb1d985daf03aa795672eb188 SHA512 06bc16f6e10b31cbdf1265623990cfe52bc0e040a53edd63b952807b340aec274d412ff7f17111e235596c7f054186fb7024abb0e563f43abb03309df7070f8a
diff --git a/dev-python/uv/uv-0.11.25.ebuild b/dev-python/uv/uv-0.11.25.ebuild
deleted file mode 100644
index db64ed930c8c..000000000000
--- a/dev-python/uv/uv-0.11.25.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.94.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
-
- # bzip2-sys requires a pkg-config file
- # https://github.com/alexcrichton/bzip2-rs/issues/104
- mkdir "${T}/pkg-config" || die
- export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
- cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
- Name: bzip2
- Version: 9999
- Description:
- Libs: -lbz2
- EOF
-
- # uv is now forcing bundled liblzma, sigh
- sed -i -e '/xz/s:"static"::' Cargo.toml || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.13.ebuild b/dev-python/uv/uv-0.12.13.ebuild
deleted file mode 100644
index 9826f9045941..000000000000
--- a/dev-python/uv/uv-0.12.13.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.96.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.17.ebuild b/dev-python/uv/uv-0.12.17-r1.ebuild
index 0f29cd7a6335..f8a3705fda1d 100644
--- a/dev-python/uv/uv-0.12.17.ebuild
+++ b/dev-python/uv/uv-0.12.17-r1.ebuild
@@ -147,5 +147,10 @@ src_install() {
#
# https://docs.astral.sh/uv/reference/settings/#python-preference
python-preference = "system"
+
+ # Always use system certificates.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#system-certs
+ system-certs = true
EOF
}
diff --git a/dev-python/uv/uv-0.12.19.ebuild b/dev-python/uv/uv-0.12.19.ebuild
deleted file mode 100644
index 9826f9045941..000000000000
--- a/dev-python/uv/uv-0.12.19.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.96.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.23.ebuild b/dev-python/uv/uv-0.12.23.ebuild
deleted file mode 100644
index 23228cc55439..000000000000
--- a/dev-python/uv/uv-0.12.23.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.97.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.7.ebuild b/dev-python/uv/uv-0.12.7.ebuild
deleted file mode 100644
index 4578f13dbce9..000000000000
--- a/dev-python/uv/uv-0.12.7.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.96.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.12.9.ebuild b/dev-python/uv/uv-0.12.9.ebuild
deleted file mode 100644
index 9826f9045941..000000000000
--- a/dev-python/uv/uv-0.12.9.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.96.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.13.1.ebuild b/dev-python/uv/uv-0.13.1.ebuild
deleted file mode 100644
index a8418c9a55d5..000000000000
--- a/dev-python/uv/uv-0.13.1.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.97.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 Unicode-3.0
- Unicode-DFS-2016 ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-0.13.3.ebuild b/dev-python/uv/uv-0.13.4-r1.ebuild
index f2ffd74bfde2..92843ccbe947 100644
--- a/dev-python/uv/uv-0.13.3.ebuild
+++ b/dev-python/uv/uv-0.13.4-r1.ebuild
@@ -39,7 +39,7 @@ LICENSE+="
# ring crate
LICENSE+=" openssl"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 x86"
IUSE="test"
RESTRICT="test"
PROPERTIES="test_network"
@@ -152,5 +152,10 @@ src_install() {
#
# https://docs.astral.sh/uv/reference/settings/#python-preference
python-preference = "system"
+
+ # Always use system certificates.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#system-certs
+ system-certs = true
EOF
}
diff --git a/dev-python/uv/uv-0.13.4.ebuild b/dev-python/uv/uv-0.13.4.ebuild
deleted file mode 100644
index f2ffd74bfde2..000000000000
--- a/dev-python/uv/uv-0.13.4.ebuild
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright 2024-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-RUST_MIN_VER="1.97.0"
-
-inherit cargo check-reqs
-
-CRATE_PV=${PV}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0
- CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016
- ZLIB
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- app-arch/bzip2:=
- app-arch/xz-utils:=
- app-arch/zstd:=
-"
-RDEPEND="
- ${DEPEND}
-"
-# git/curl: https://bugs.gentoo.org/984287
-BDEPEND="
- virtual/pkgconfig
- test? (
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- dev-lang/python:3.13
- !!~dev-python/uv-0.5.0
- || (
- >=dev-vcs/git-2.57
- <net-misc/curl-8.23
- )
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
- rust_pkg_setup
-}
-
-src_prepare() {
- default
-
- # force thin lto, makes build much faster and less memory hungry
- # (i.e. makes it possible to actually build uv on 32-bit PPC)
- sed -i -e '/lto/s:fat:thin:' Cargo.toml || die
-
- # enable system libraries where supported
- export ZSTD_SYS_USE_PKG_CONFIG=1
- # TODO: unbundle tikv-jemalloc-sys?
-
- # remove unbundled sources, just in case
- find "${ECARGO_VENDOR}"/zstd-sys-*/ -name '*.c' -delete || die
-}
-
-src_configure() {
- local myfeatures=(
- test-git
- test-pypi
- test-python
- )
-
- cargo_src_configure --no-default-features
- # otherwise, rustc/llvm runs out of address space
- use arm && export RUSTFLAGS="${RUSTFLAGS} -Copt-level=0"
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- dobin "$(cargo_target_dir)"/{uv,uvx}
-
- insinto /etc/xdg/uv
- newins - uv.toml <<-EOF || die
- # These defaults match Fedora, see:
- # https://src.fedoraproject.org/rpms/uv/pull-request/18
-
- # By default ("automatic"), uv downloads missing Python versions
- # automatically and keeps them in the user's home directory.
- # Disable that to make downloading opt-in, and especially
- # to avoid unnecessarily fetching custom Python when the distro
- # package would be preferable. Python builds can still be
- # downloaded manually via "uv python install".
- #
- # https://docs.astral.sh/uv/reference/settings/#python-downloads
- python-downloads = "manual"
-
- # By default ("managed"), uv always prefers self-installed
- # Python versions over the system Python, independently
- # of versions. Since we generally expect users to use that
- # to install old Python versions not in ::gentoo anymore,
- # this effectively means that uv would end up preferring very
- # old Python versions over the newer ones that are provided
- # by the system. Default to using the system versions to avoid
- # this counter-intuitive behavior.
- #
- # https://docs.astral.sh/uv/reference/settings/#python-preference
- python-preference = "system"
- EOF
-}
diff --git a/dev-python/uv/uv-9999.ebuild b/dev-python/uv/uv-9999.ebuild
index 41ccbf53c421..39494142acfd 100644
--- a/dev-python/uv/uv-9999.ebuild
+++ b/dev-python/uv/uv-9999.ebuild
@@ -128,5 +128,10 @@ src_install() {
#
# https://docs.astral.sh/uv/reference/settings/#python-preference
python-preference = "system"
+
+ # Always use system certificates.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#system-certs
+ system-certs = true
EOF
}