summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-07-03 06:59:57 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-07-03 06:59:57 +0000
commit42e33cc37c40f16197a8ce48e24ab1c63ff71126 (patch)
tree19007fb6b0be4002308dd6c13c8b6e74e0d606f6 /dev-python
parentbebda7c30050ad89fef551292a3ea717a38c9d74 (diff)
downloadbaldeagleos-repo-42e33cc37c40f16197a8ce48e24ab1c63ff71126.tar.gz
baldeagleos-repo-42e33cc37c40f16197a8ce48e24ab1c63ff71126.tar.xz
baldeagleos-repo-42e33cc37c40f16197a8ce48e24ab1c63ff71126.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/absl-py/absl-py-2.3.0.ebuild2
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.39.2.ebuild53
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.39.2.ebuild67
-rw-r--r--dev-python/cmd2/cmd2-2.7.0.ebuild2
-rw-r--r--dev-python/cryptography/Manifest2
-rw-r--r--dev-python/cryptography/cryptography-45.0.5.ebuild (renamed from dev-python/cryptography/cryptography-45.0.3.ebuild)0
-rw-r--r--dev-python/dj-database-url/Manifest1
-rw-r--r--dev-python/dj-database-url/dj-database-url-3.0.1.ebuild29
-rw-r--r--dev-python/django/Manifest2
-rw-r--r--dev-python/django/django-5.2.4.ebuild98
-rw-r--r--dev-python/findpython/Manifest1
-rw-r--r--dev-python/findpython/findpython-0.7.0.ebuild27
-rw-r--r--dev-python/hypothesis/Manifest1
-rw-r--r--dev-python/hypothesis/hypothesis-6.135.23.ebuild124
-rw-r--r--dev-python/mpmath/mpmath-1.4.0_alpha5-r1.ebuild2
-rw-r--r--dev-python/pbs-installer/Manifest2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2025.07.02.ebuild (renamed from dev-python/pbs-installer/pbs-installer-2025.06.26.ebuild)0
-rw-r--r--dev-python/pixelmatch-py/Manifest1
-rw-r--r--dev-python/pixelmatch-py/metadata.xml11
-rw-r--r--dev-python/pixelmatch-py/pixelmatch-py-0.3.0.ebuild20
-rw-r--r--dev-python/pynacl/pynacl-1.5.0-r4.ebuild2
-rw-r--r--dev-python/pytools/Manifest1
-rw-r--r--dev-python/pytools/pytools-2025.2.ebuild32
-rw-r--r--dev-python/rich-argparse/rich-argparse-1.7.1.ebuild2
-rw-r--r--dev-python/transitions/Manifest1
-rw-r--r--dev-python/transitions/transitions-0.9.3.ebuild47
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.7.19.ebuild99
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.7.19.ebuild183
32 files changed, 810 insertions, 7 deletions
diff --git a/dev-python/absl-py/absl-py-2.3.0.ebuild b/dev-python/absl-py/absl-py-2.3.0.ebuild
index c8c67a8bc0ba..5fa796d138a1 100644
--- a/dev-python/absl-py/absl-py-2.3.0.ebuild
+++ b/dev-python/absl-py/absl-py-2.3.0.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
dev-python/setuptools[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index b036ef434609..444850dfb6b6 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -3,3 +3,4 @@ DIST boto3-1.38.41.gh.tar.gz 959656 BLAKE2B cf74e27c26735b9a02be41df7e077aed5e3d
DIST boto3-1.38.46.gh.tar.gz 961156 BLAKE2B 36fe0a2d35176c3419f4a49148b77713e126371930dafa112aaba7f53ca483323500cf23d68fa27372130d07fb9aad090950959ad56c25ae7503f77e2a525905 SHA512 c15c90fad56f476014ef6ae8ff687e088114001750def69cefa25002d0d38a4fee60114943d2c5e7b70f7ecca497fbba987cc9b33bba5ff6637a5fe8aa079149
DIST boto3-1.39.0.gh.tar.gz 963734 BLAKE2B 5a509880acd41a3698d1e7c0d1924250bdd39df03fed534283f890f079ef4965e0ce63c41ee566832f7ff7369da7bf1f25d7c8847e8e8c9f78a255eb2a37db75 SHA512 169acf47bf3c06541a923c5bdc43eb6a8516c7cf1edcf38c95ec7cbb08e688ee563e1ce4118850502c64255dd75ca111f46da1de73541ca5423fcbbe5ac83a87
DIST boto3-1.39.1.gh.tar.gz 966365 BLAKE2B bab41fd054da7012fa9745db151aef5b405974a7b535206071168668511b9b35f49c7866d8d54d83f4e15da31ecaab83348360d94c9a37abc977463642c19db1 SHA512 e6185397790b5988f5771701e3d446052ec4b3a97538fa318867ac03c9c53d3b360bc20789f55e65afbc4b899663bb9b0622f5917eca1498555084d067eb47d4
+DIST boto3-1.39.2.gh.tar.gz 966805 BLAKE2B 0f946e319f17ff696913a95b2307e8d5b95261d9f3d5c82a8a1cf5a48f3e31e233ac15baced3866ce01c84df50688da5f209ff7bf55afd653ed82d6f1b647316 SHA512 89e5e1c7f4a6e61dbe8a07c7eba5a31dbefaa46e0fa6f5be7b5457156d776f5813800215f72fb5d8c29276d712077224e99d27d6f1f7b04f3283ac207c4b3aeb
diff --git a/dev-python/boto3/boto3-1.39.2.ebuild b/dev-python/boto3/boto3-1.39.2.ebuild
new file mode 100644
index 000000000000..bd6e26787db4
--- /dev/null
+++ b/dev-python/boto3/boto3-1.39.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.13.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index b94e19578e39..0649fe1f87c1 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -3,3 +3,4 @@ DIST botocore-1.38.41.gh.tar.gz 14788068 BLAKE2B 3bc2cfb9e45235b076266a96fd35687
DIST botocore-1.38.46.gh.tar.gz 14834968 BLAKE2B 282c6ddef03b7c4a8f88fbc4816afd65fdac8c050ed2233974dfaa985ed001feaedbdf22fc770f56c1f0aa3fbd1d10e6115289e3c11efe672e3e6ac521eaedc7 SHA512 5fb4d2001084c63caa7c8619b55815d882b6f8b0738197d82919a33634205226dc20e06356b51b0022abfbde32a1585307a9b6058a0363d3a48a612206105c93
DIST botocore-1.39.0.gh.tar.gz 14858042 BLAKE2B 5555d09f5a74e8673a4c2d1487433646c144c4fb2de8ebd3d773d8ea8414cd9c41aca25c5d8be83a97544816265863692748dfa44eafe776b140cb039a0c6c6b SHA512 b6c9e06b90bdc4b0ec4d0b32de98aa99e2731a00404ace2a354701bb7c5601f133a1366f8a7fb4f7abc2772e33644b0fcfc377550ddf1d7a6b3d193d0f3a5c3c
DIST botocore-1.39.1.gh.tar.gz 14886939 BLAKE2B 2734ec93a9fc326b3c4b0fe856049783556c6532a5d0a8081a2a89e1fe14db861ea787c4f37bb147ba56fde7b8895863c27387a84f58bc6d6b1e11e9efc4f5e9 SHA512 d7d9318daaa47fdd5cb91f3cc3a2bcd98a7edde77e2d61093798e2546d60e6e4c37f333f3763ee7f672b44d1e28490175cf3d136787ae4cea2e23d565d4bf624
+DIST botocore-1.39.2.gh.tar.gz 14888860 BLAKE2B 341b54b64683d9354e20b76a597a53aa777d7d12e46ca2337707d6456b62057dc72eb6ed98a5cc1d24fd2659838282621c6da910bf9766cfa759563424592fb6 SHA512 5e8d2512bf2ed6d4c9bcd0eaf97df1acd7a93305f849ba2fc6b38752bccfcc4f05c408cb3d03c379dbd9461db4b588056a68b675861af78b086aa88d71254d9c
diff --git a/dev-python/botocore/botocore-1.39.2.ebuild b/dev-python/botocore/botocore-1.39.2.ebuild
new file mode 100644
index 000000000000..a931fcaefec4
--- /dev/null
+++ b/dev-python/botocore/botocore-1.39.2.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cmd2/cmd2-2.7.0.ebuild b/dev-python/cmd2/cmd2-2.7.0.ebuild
index e81c3966c4d6..143913ed2791 100644
--- a/dev-python/cmd2/cmd2-2.7.0.ebuild
+++ b/dev-python/cmd2/cmd2-2.7.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc64 ~riscv ~s390 ~x86"
RDEPEND="
>=dev-python/pyperclip-1.8[${PYTHON_USEDEP}]
diff --git a/dev-python/cryptography/Manifest b/dev-python/cryptography/Manifest
index 38d821ca1000..ffd2d5869a67 100644
--- a/dev-python/cryptography/Manifest
+++ b/dev-python/cryptography/Manifest
@@ -5,8 +5,8 @@ DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9
DIST bitflags-2.9.1.crate 47913 BLAKE2B b14ee41348336981ab86459417b9feab90879a11a6524a8b43f2b89c09c844b4441c31e315c471be00ad21fa88b5dcc7671b56567fdcd72bb0790ceeaa25813b SHA512 6baeac42e4227e58030e317125a3c23997beceb44f9262f029e59c6dc36dd1733f2e88b3c3c8ad22f806245ef404512a880b16f3c8c52fa5c4aab287bb3cfe27
DIST cc-1.2.23.crate 106527 BLAKE2B 0fd9e69ad743f4df15da3d25f85e1a422ef64b81b72af491001ccfba5c0c39e448deecc92e3a553bf74574460ecd2bf8f4056a1cd05d05856a1f3f36fa25bc19 SHA512 3fced846c630c09f629854754dc247affeae3e71375953617d77947b2bdfb479369db159cec941c7b094fd9d2fee62f7d5898d6d76de920dbd70de24ee35fd0b
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
-DIST cryptography-45.0.3.tar.gz 744738 BLAKE2B 45cf4cba1babdf5cde1d22903d0e01f4796e68e4a38c6f7ef4075ea851faad4ecc1575eef1cfc3f6194aa35796a0187e5b1969ea32f9273a0c2e4a0350310cfe SHA512 e8cb59820de89d7a5b2bd2a4b79d5a040b225910eb0653ce5b89fbd694951c6b6ce928c548666e7c879fb71ec4661b426f140959bee6556c9a265c679fa51fbf
DIST cryptography-45.0.4.tar.gz 744890 BLAKE2B 34687a369894b0dfcf8a81c6d1b8cbb0b4a711fd17d4419c5368c41b7e5192cad7233295976a236a52c20493b980a5df77ff4af5a9d54925510d00e833971a22 SHA512 d5bdb21956b80675ccfae78be3d56a2e3bfe8c6ceac15c87c9a3ca470605cb798774018c6c9b9597e90a6918912c9a6b5d83eac9f446364b917d7e8888b83eee
+DIST cryptography-45.0.5.tar.gz 36156329 BLAKE2B 59bea62ee7c089f600a5c202fb260b06889d99a3adc096d83196532dd83d36522e7086ff2f87d34339f8cbd8c64946f1d08f7bc10309ca34f8ef7c8b85f56cd1 SHA512 48935be9c7c2e28bf9ea05866a08cb7702b9256fdc6c6db2d26ae40d433e865c9933b8ec4e29ee24df638c1727bcade1e0d88ed59f0ec6620f70eeee2459449a
DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
diff --git a/dev-python/cryptography/cryptography-45.0.3.ebuild b/dev-python/cryptography/cryptography-45.0.5.ebuild
index 55b3873cde21..55b3873cde21 100644
--- a/dev-python/cryptography/cryptography-45.0.3.ebuild
+++ b/dev-python/cryptography/cryptography-45.0.5.ebuild
diff --git a/dev-python/dj-database-url/Manifest b/dev-python/dj-database-url/Manifest
index 551cd7231679..4ae182fabfa3 100644
--- a/dev-python/dj-database-url/Manifest
+++ b/dev-python/dj-database-url/Manifest
@@ -1 +1,2 @@
DIST dj_database_url-3.0.0.tar.gz 12594 BLAKE2B e112363e9f542506b03cd88f54c8bab0bc685e948815a162c934774c488b97041c4bace1ed0e1012c2fe41b96486461939432d80fd6c2c7e30fb1c924e113dac SHA512 c5ce3e57c115b72311b581f388b7665f070ca82cac2bf828cf610e6c7f52cf34ae379247dea99fcd133276ad110994bdd9e02ae288a5a8df7c14a1245a447f8f
+DIST dj_database_url-3.0.1.tar.gz 12556 BLAKE2B a0c9fc78c1f37f7f08addc111178636250706feb65e7200e1403c12916a619eb16fcddb11f8d59f528df8b5aa7816217fa0abcf1ee77f55811f264e5aaa50eda SHA512 7a7bb8b4f30659bf88f95b698b4147a3767c52a21996c39367267f516abe8d623954d9a9921cb3995e617478d22a2c6d56c30e1b80ad543933c1f0dbfe3e46bd
diff --git a/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild b/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild
new file mode 100644
index 000000000000..04d67aaed141
--- /dev/null
+++ b/dev-python/dj-database-url/dj-database-url-3.0.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Use Database URLs in your Django Application"
+HOMEPAGE="
+ https://github.com/jazzband/dj-database-url/
+ https://pypi.org/project/dj-database-url/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/django-4.2[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ eunittest -s tests
+}
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index be33df77ce34..526935d504f4 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -7,6 +7,7 @@ DIST Django-5.1.9.checksum.txt 2535 BLAKE2B 12a08519b2f179df7435597233adc9fc281a
DIST Django-5.2.1.checksum.txt 2535 BLAKE2B e839f319f2845909cf1141f91ffa4817f41d7b43976daebdd7728b82d03bd82a1abedbe76de39c6107547ae92a0b05a817880d319202c27ecee48f1bf43519f9 SHA512 8a158d21fb94de396c39391766c603de5159783df88cd8bbe53c1352b7f48718092dcfaa1521fadc3fa3efa18129bed7347de84a43649a921343abdd783ae005
DIST Django-5.2.2.checksum.txt 2536 BLAKE2B 2f90934e9ed1fb7527648b7e06978fd520ed09e4d7cebe7aa09b9c2ef95c5779070760c0c877f7d682f5c6b4b56ee054a5c7f34ed4c772bc4d5d8911349a7deb SHA512 6a68c066486a5db7eb9757a38832dd51760f9daf16ffd0b545fcc44259c552a2ca4ea06b140a599a0212c1f9334657efaaf6f6d62ade10acc9c49c3ce25097bd
DIST Django-5.2.3.checksum.txt 2374 BLAKE2B d692c2ddabc44cb9f6855b58b23e99bcef15cc703da004c2d35f109b34016b6e7880992f02b678836b87a4a0d7bbe0c231b2174f83989d255eb80a7622805f5d SHA512 ca50b695a32acfd4d033183a294bcf492389c66e6fca44bfa533b17a68a8890198e9eb2a0c391ccedb41f415bae54a8ae1635e74121a813e4027951c09d6b20d
+DIST Django-5.2.4.checksum.txt 2536 BLAKE2B 112467d2065f70700ee7f52e672f9208a4b96d8015ef8f11ec15f06fd62f8dd90e08690099a4ab859a2056ce16b033bd04162dbcbd590fa33f64af617bf225d8 SHA512 e8f1b971c4097996e3513d088a93b6bfc89280fc400aa908324041691f1f794d2e329d5e8ccadbbddfa7cba31823376651ea157b031efe5e2b74b38177ed7a6b
DIST django-4.2.17-pypy3.patch.xz 5900 BLAKE2B 2a564fc31d8e2f3def5a532d3bca1a4426a496c659192f602d659e0c1a5f5882978baedb384cc3b67fda8c836513ce43aece80db1528c8e8b6e9ca420f7572ce SHA512 9c9d935aff6db7230a26931b5e7f5f94f3b5ff4fc8f7d4201178571de9d9c7929a0e1e558cc2d9b54b8ee91f85819a5680d24fad6251620515a4a020e3b2d66d
DIST django-4.2.21.tar.gz 10424638 BLAKE2B c76170139e0b8926911d19a9b2319d85bcc577ebd36f55e80d5543da115baf31c7935eace893e8673ab338d97680d5f6f4e35bacc20a168188af363799c7bd83 SHA512 762201e56fff658b90d715545ba52420682f5382ebcb38602f25b921c82bce3877dcc54d07578c3b5bfcef62d5ce7836f19b7d638bb3230a5ca4987cc6e70f8e
DIST django-4.2.22.tar.gz 10427236 BLAKE2B ddd3d64707d1d2d48c2cf2d6f52be0bf7b303548f6bc1649867be34d27a92d8d94cf047cf6cdeeaeaa560d0b4f96ff12266981e972d6de9b8dd8d463c6c4284f SHA512 e008b87b5d8398e447cd35871693f3acd449452127fede1e965a93be412f9f4afb9236ee988c9469635065f644e2ae55bee4fbf6eb050fa12a5ed68d24224a01
@@ -17,3 +18,4 @@ DIST django-5.1.9.tar.gz 10710887 BLAKE2B b6caa00ef55d904209c0c20548963ccc91368d
DIST django-5.2.1.tar.gz 10818735 BLAKE2B 583f78402534157d665a48a1569554ad31f0637c335d206f8dad384860971f27868184cfe0750cdc03d39879c736f88aace2d65ac8f25e60a16b8489fe51d5cf SHA512 b97fc3221f2bcb499e2f55ea5fa8da61da9062266255a31e8d0a54afb7a41ea049dbe4b370ad7e8ca3b5105ab1d5a15f1fe3e48af4251590d27bc032fef17d25
DIST django-5.2.2.tar.gz 10827542 BLAKE2B 188e4290236371c1fca73a2485897afd8e06f631900dcad298b2062d88e1405b958dd8bc77994eb0f32b59f61fe1565d6c0150f9bc76632924e23294afb9861a SHA512 b4d5be87bd0daf68df76e2f79781b72dc7cbe372148edd83aa1ab9ffbbda8785ee85e63309a06ea454d233ce23972ae51213680dcdd9824177cef8c3285ec439
DIST django-5.2.3.tar.gz 10850303 BLAKE2B 2b6e2d493480a05be3b89f323e4e5ae9c32431437f4b4be802dabff3704819bff7d8cc1fb8a839ba482200a09939d70191e0166d512fb65d32ac157c60c64ee2 SHA512 255da3b0fde2df7294c3c76a09002d78fde795a6829138687a8308aef55d6ed8d6d52d20860022f78dd44d1f4893bd54e1d61b887b52945c90363a494d5046e3
+DIST django-5.2.4.tar.gz 10831909 BLAKE2B 3dac27659b23698142b4b9163fe3a916a2352ab9f079ade10cdf0304229ab1109818befdf29f42864fed2409b1af5b777836c2f63cbbf98f7af09920507fcdc6 SHA512 af2ec6cfa6e17c6b348c165947ac76287f51e5ab6edc90682b57f8412ec22aaa0cd326516f65b63438d2ef48a70d306a59bfb7a235adeae0e753b654a3b0059c
diff --git a/dev-python/django/django-5.2.4.ebuild b/dev-python/django/django-5.2.4.ebuild
new file mode 100644
index 000000000000..2dca97580558
--- /dev/null
+++ b/dev-python/django/django-5.2.4.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+DESCRIPTION="High-level Python web framework"
+HOMEPAGE="
+ https://www.djangoproject.com/
+ https://github.com/django/django/
+ https://pypi.org/project/Django/
+"
+SRC_URI="
+ https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
+"
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-2.11.0[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
+ >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
+ sys-devel/gettext
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-django-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.patch
+)
+
+distutils_enable_sphinx docs --no-autodoc
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
+
+src_unpack() {
+ if use verify-sig; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ "${P^}.checksum.txt" sha256 "${P}.tar.gz"
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+}
+
+python_test() {
+ # Tests have non-standard assumptions about PYTHONPATH,
+ # and don't work with ${BUILD_DIR}/lib.
+ PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
+ -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
+ die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ newbashcomp extras/django_bash_completion ${PN}-admin
+ bashcomp_alias ${PN}-admin django-admin.py
+
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature_header "Additional Backend support can be enabled via:"
+ optfeature "MySQL backend support" dev-python/mysqlclient
+ optfeature "PostgreSQL backend support" dev-python/psycopg:0
+ optfeature_header
+ optfeature "GEO Django" "sci-libs/gdal[geos]"
+ optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
+ optfeature "ImageField Support" dev-python/pillow
+ optfeature "Password encryption" dev-python/bcrypt
+}
diff --git a/dev-python/findpython/Manifest b/dev-python/findpython/Manifest
index 6a1f580add58..2de8e862dec6 100644
--- a/dev-python/findpython/Manifest
+++ b/dev-python/findpython/Manifest
@@ -1 +1,2 @@
DIST findpython-0.6.3.tar.gz 17827 BLAKE2B 6ade39d51f8209192e703ee19510133c837bf3bd4d7897c2d83c1e0b50947c5646e264a72dc5287faf50ac10fbbd61cfe7721240365db8a04f89ac38e032023f SHA512 111a8b5895a122e6e845de5afdec7a476fabbfdc64af289417ec8c168b45fb0832a0a30e07abf48b6e63c74ff8938796509e3d9d8b8f97b3463427dd49203e80
+DIST findpython-0.7.0.tar.gz 18858 BLAKE2B 9ad9b6680e654e928629f37bbac107602f904af7ee6b668566d1826d57e90faa53ea32a85145614ef69ac0e46b7b30c55f648200004431c432e0373f342e82cd SHA512 d9b77c2b35e2f85c2a9941095878730d3741be84f4bbc3a22d25944dc0731521269e739124c1c111466bc72591a6638bac7f8511e97cde9aa680869e0440c0e3
diff --git a/dev-python/findpython/findpython-0.7.0.ebuild b/dev-python/findpython/findpython-0.7.0.ebuild
new file mode 100644
index 000000000000..8bb1f051f4fe
--- /dev/null
+++ b/dev-python/findpython/findpython-0.7.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A utility to find python versions on your system"
+HOMEPAGE="
+ https://github.com/frostming/findpython/
+ https://pypi.org/project/findpython/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/packaging-20[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.3.6[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest
index 90a17bf8020a..6e89555970f1 100644
--- a/dev-python/hypothesis/Manifest
+++ b/dev-python/hypothesis/Manifest
@@ -1,4 +1,5 @@
DIST hypothesis-6.135.14.gh.tar.gz 9580007 BLAKE2B deb23f73931fea93e30892a936f0035a6ea405610c42df1be571285dbabc2319c76db0d8b9a28b766da3d621f6ac419b133bd868e4756d43a3791befa5e5ea39 SHA512 269f54cd85d88fa177bd6e81e9d75e23797b208e5b9043f0d80b292545cd40896f4db56b68889336a55e0a5fb0879e8080e89fa498786877b2cf9f1c80775a08
DIST hypothesis-6.135.16.gh.tar.gz 9580500 BLAKE2B de250a17a6929aaef171f85277a695207f7c202790342cc8c23746e58f5be74c9cea3b23d19a6d80d83fedea5c99d228d3f31643505398f3bf63f2828df4cc10 SHA512 176f929d01fc95d9429774e1f073ac7c54fb9d6cb964f571609d755dfa58f2530647bc30c6ac94d3f8247cb0dbfe9e1be96c1d8fa9173947d41dcfd41531c154
DIST hypothesis-6.135.20.gh.tar.gz 9589950 BLAKE2B ad3e94e1dc35c9cca9693e3f06e68e0c12ddfed3f5c4d3eac98ef4197d2e3b8ae9c4d19615735189be24811d3c19a13ce77f469605616e03d3ca46738c084548 SHA512 0ef179049c18499f908b63e638c6daaaab8aa42ba54ce0f024d5c1997a14c4e6d95c0cf3930d6d1c52f527885bf2ccb74d346b3032698bb1ab8d0ef880275841
+DIST hypothesis-6.135.23.gh.tar.gz 9590903 BLAKE2B 5da2895abeb9cfd2edbdfc4b67e0a9ae30ba0424f4f2f3ae46fa750b6a250b1a74f4525ee8c6e0701b76d1261ea6146674eeec1728c1c5fa8ce1babd3f7989d0 SHA512 bcbe588d076384d0a08ca28d34a3f77137a0ee4f32bab4316b2a4824096d2467dd792e35375403391b3ed455a0a791fe7126c2286b20d29a6008c86e97676019
DIST hypothesis-6.135.9.gh.tar.gz 9578130 BLAKE2B fc0619685edd2c06d77d95ee0bb7244f62b0b262621e399e3ff7a1ef13a36c80f6d60c8b333011e9387bf04095f40519b072f1b69407e5b0a83c46d2fd7acc40 SHA512 bc69855f5d68bfd68a4915d2085505d815159d5b0757104f7634cdd3db2a2e9c5a7e8c68826864aeb15aae5b16bdb99cbafdab3e443349c3edfa86c964110bce
diff --git a/dev-python/hypothesis/hypothesis-6.135.23.ebuild b/dev-python/hypothesis/hypothesis-6.135.23.ebuild
new file mode 100644
index 000000000000..f6fc81dd010d
--- /dev/null
+++ b/dev-python/hypothesis/hypothesis-6.135.23.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+CLI_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE="threads(+),sqlite"
+
+inherit distutils-r1 optfeature
+
+TAG=hypothesis-python-${PV}
+MY_P=hypothesis-${TAG}
+DESCRIPTION="A library for property based testing"
+HOMEPAGE="
+ https://github.com/HypothesisWorks/hypothesis/
+ https://pypi.org/project/hypothesis/
+"
+SRC_URI="
+ https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${MY_P}/hypothesis-python"
+
+LICENSE="MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="cli"
+
+RDEPEND="
+ >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}]
+ >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
+ cli? (
+ $(python_gen_cond_dep '
+ dev-python/black[${PYTHON_USEDEP}]
+ dev-python/click[${PYTHON_USEDEP}]
+ ' "${CLI_COMPAT[@]}")
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ >=dev-python/pytest-8[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-rerunfailures )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ # NB: paths need to be relative to pytest.ini,
+ # i.e. start with hypothesis-python/
+ local EPYTEST_DESELECT=()
+ case ${EPYTHON} in
+ python3.13t)
+ EPYTEST_DESELECT+=(
+ # TODO: missing warning
+ 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns'
+ )
+ ;;
+ python3.14*)
+ EPYTEST_DESELECT+=(
+ 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]'
+ 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]'
+ hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds
+ hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence
+ hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression
+ hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types
+ hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic
+ hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic
+ hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense
+ hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns
+ hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope
+ hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type
+ hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref
+ )
+ ;;
+ esac
+
+ # subtests are broken by warnings from random plugins
+ local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin
+ local -x HYPOTHESIS_NO_PLUGINS=1
+
+ epytest -o filterwarnings= --reruns=5 \
+ tests/cover tests/pytest tests/quality
+}
+
+src_install() {
+ local HAD_CLI=
+
+ distutils-r1_src_install
+
+ if [[ ! ${HAD_CLI} ]]; then
+ rm -r "${ED}/usr/bin" || die
+ fi
+}
+
+python_install() {
+ distutils-r1_python_install
+ if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
+ HAD_CLI=1
+ else
+ rm -r "${D}$(python_get_scriptdir)" || die
+ fi
+}
+
+pkg_postinst() {
+ optfeature "datetime support" dev-python/pytz
+ optfeature "dateutil support" dev-python/python-dateutil
+ optfeature "numpy support" dev-python/numpy
+ optfeature "django support" dev-python/django dev-python/pytz
+ optfeature "pandas support" dev-python/pandas
+ optfeature "pytest support" dev-python/pytest
+}
diff --git a/dev-python/mpmath/mpmath-1.4.0_alpha5-r1.ebuild b/dev-python/mpmath/mpmath-1.4.0_alpha5-r1.ebuild
index 7c6972a27bda..92578e019bcb 100644
--- a/dev-python/mpmath/mpmath-1.4.0_alpha5-r1.ebuild
+++ b/dev-python/mpmath/mpmath-1.4.0_alpha5-r1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="test-full"
BDEPEND="
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index b9c767fcb5d6..1a8040ac077d 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -1,2 +1,2 @@
-DIST pbs-installer-2025.06.26.gh.tar.gz 90533 BLAKE2B 831f762e320fd7930c4d59f5ddafc423e5218cc1bec8ceb34b45694eb37a304deab39548ab21b95b754a7e25499f89c964f547f8c7c3ae3fbf82a08000a0ce78 SHA512 be386e129c03bdd4410b6ddfc20f2077f3bc68fc487521ea3119c3a0f17d9c86694e740074302f364433744792011d2868a4997df6c90c73abff2274bc6f701b
DIST pbs-installer-2025.06.30.gh.tar.gz 90780 BLAKE2B f6ab4645b02842727d8cb40c748919ee57debff29806fb5e73587a6e5873b4c58233eb07a7c722626f4b2c8841fb53f13fe9b8b629ff24efc11b13b4e012881c SHA512 d790533534ceb49ec2b2e076f5a71911cacf2021410d3e4073261350bec1500885c65e5c75259e08424970e340f1258bb394ee3e28b0e827deea18aecfb08125
+DIST pbs-installer-2025.07.02.gh.tar.gz 90802 BLAKE2B c92e28fbf2b28c6cb11803a898a3b18225cc8d2a5ff7ddf21b0e51fe1301ad46a0694e1cf4cccb0fc7234637aaacb6e1c19f0915f977565d2a46c7b08b695f16 SHA512 d03ec1f0ec446ce1d7d27566141ac4575cce803f2372be9eb6da61963e4f7f2a07ee88a544ca6362d0f6599f510841d7a36d3faa75fbb0a61c7486bfe3a71b61
diff --git a/dev-python/pbs-installer/pbs-installer-2025.06.26.ebuild b/dev-python/pbs-installer/pbs-installer-2025.07.02.ebuild
index 272948979211..272948979211 100644
--- a/dev-python/pbs-installer/pbs-installer-2025.06.26.ebuild
+++ b/dev-python/pbs-installer/pbs-installer-2025.07.02.ebuild
diff --git a/dev-python/pixelmatch-py/Manifest b/dev-python/pixelmatch-py/Manifest
new file mode 100644
index 000000000000..71286116b4b2
--- /dev/null
+++ b/dev-python/pixelmatch-py/Manifest
@@ -0,0 +1 @@
+DIST pixelmatch-py-0.3.0.gh.tar.gz 22919 BLAKE2B 92f878293a95194805b01e8074f897d87ea9ecf92038246c18930c66dbb8c967b4e27db7aef9717269a8cad6e21b512b5cce37f82ba1c424e9ef67628f64cefe SHA512 433b26440a34616e5422afe9a8a39887424def4893f37d0575f604aef95c9dea628237bc494e9dd2b0d3836e9221d79f1c67ab9d71864eac73707f3bf2fa203c
diff --git a/dev-python/pixelmatch-py/metadata.xml b/dev-python/pixelmatch-py/metadata.xml
new file mode 100644
index 000000000000..0225857e75c2
--- /dev/null
+++ b/dev-python/pixelmatch-py/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tupone@gentoo.org</email>
+ <name>Tupone Alfredo</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+ <stabilize-allarches/>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/pixelmatch-py/pixelmatch-py-0.3.0.ebuild b/dev-python/pixelmatch-py/pixelmatch-py-0.3.0.ebuild
new file mode 100644
index 000000000000..89ff916b6640
--- /dev/null
+++ b/dev-python/pixelmatch-py/pixelmatch-py-0.3.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{12..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="A fast pixel-level image comparison library"
+HOMEPAGE="https://pypi.org/project/pixelmatch/"
+SRC_URI="https://github.com/whtsky/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+distutils_enable_tests import-check
diff --git a/dev-python/pynacl/pynacl-1.5.0-r4.ebuild b/dev-python/pynacl/pynacl-1.5.0-r4.ebuild
index 5a6a93a9fc33..f94c68a0cef3 100644
--- a/dev-python/pynacl/pynacl-1.5.0-r4.ebuild
+++ b/dev-python/pynacl/pynacl-1.5.0-r4.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
DEPEND="
dev-libs/libsodium:=
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index 0a929a5233b0..65856fbc3061 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -1,2 +1,3 @@
DIST pytools-2025.1.6.tar.gz 96212 BLAKE2B f9f538f262158d40aed408d094562cad162a60a330b2bf002b898d473a1085c9f7861c5039770733adb938d67327bfb9d11e130a0385c6f6fc9b79fe732e2927 SHA512 b9602d4a4182fd898a7ff1169cd00c6f886a779655b21b1d42f6fd100cc53df2f3c70fed8a3981a57f63f36122ea224b0f17816eb59e85ed3d625c0ae331de99
DIST pytools-2025.1.7.tar.gz 82709 BLAKE2B c76c9feb16a2f580c2b456ade3952a744d234fc984726704455c04fa0adac9882adebad9c80c70f1a1423a33a04cac2edf4d88058c106735d017b9a9d7720a14 SHA512 0ec0f7011051fee05668b92a639ffaa289b2ca03f0e20c0b2d2e2461535b971ccedf9b1134f4923e9989c96ee5fcc0b96d46a3354129952b5869c6059d8af904
+DIST pytools-2025.2.tar.gz 83961 BLAKE2B 17083c3e64de11d42d940d3f844aee5bb852dd426d5a5a9830c187d1fc2962d3c3e7480b8200a5b9e87a291626eb5e12e7d20cbdaaab923b465e56c81ff383eb SHA512 bb8d8c290ed55e2c6309d417eb842c5f04c9e4ac05c8883d34e855097be1ba0808c5d49bfbe970345349e897ec68c362f01edac6668ed94e96185491e618b673
diff --git a/dev-python/pytools/pytools-2025.2.ebuild b/dev-python/pytools/pytools-2025.2.ebuild
new file mode 100644
index 000000000000..84c30e41a6c7
--- /dev/null
+++ b/dev-python/pytools/pytools-2025.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{11..14} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+
+# NB: numpy are an "extra" (optional) deps
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/siphash24-1.6[${PYTHON_USEDEP}]
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/rich-argparse/rich-argparse-1.7.1.ebuild b/dev-python/rich-argparse/rich-argparse-1.7.1.ebuild
index 4c651f2bab85..2be8fd1c9eb4 100644
--- a/dev-python/rich-argparse/rich-argparse-1.7.1.ebuild
+++ b/dev-python/rich-argparse/rich-argparse-1.7.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc64 ~riscv ~s390 ~x86"
RDEPEND="
>=dev-python/rich-11.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/transitions/Manifest b/dev-python/transitions/Manifest
index 0c1917a9b33a..26921b9bc6da 100644
--- a/dev-python/transitions/Manifest
+++ b/dev-python/transitions/Manifest
@@ -1 +1,2 @@
DIST transitions-0.9.2.gh.tar.gz 1133297 BLAKE2B 9acb83355236941d49bbdc1877e352e1f86d2b95302455fc5ea2e13d9014f8e6c9dc67e04b70c03c40e3d10b9bcae97900420bfb7549decd7c2186284d9f7389 SHA512 7fa392b185b001b0224b449d65b345f71afa27f80a88d862456f637e5876644f09ca861ce8bd2ff93f91a7846e337a996f256645140a0892b526cd6c1f58ce7f
+DIST transitions-0.9.3.gh.tar.gz 1136264 BLAKE2B b2d146ce4403e5e6bea89495ccaa8ad1fc024439d56446374f2221063e5b727acdce613adcc285934a03f61a79b1bbe7420e2db3a1c336520da97e755a3dfc72 SHA512 4c9aec72a7643d1188c2a1ea66252be90a7b76008c35102425204c3a7e2ff84e7cb3467e33b763536b59fba0a59e7737aa0293b6696c35a581ebd0ac02cc1744
diff --git a/dev-python/transitions/transitions-0.9.3.ebuild b/dev-python/transitions/transitions-0.9.3.ebuild
new file mode 100644
index 000000000000..20d1a9e3ab8c
--- /dev/null
+++ b/dev-python/transitions/transitions-0.9.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517="setuptools"
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="A lightweight, object-oriented state machine implementation in Python"
+HOMEPAGE="https://github.com/pytransitions/transitions"
+SRC_URI="
+ https://github.com/pytransitions/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="examples"
+
+RDEPEND="
+ || (
+ dev-python/pygraphviz[${PYTHON_USEDEP}]
+ dev-python/graphviz[${PYTHON_USEDEP}]
+ )
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/dill[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_IGNORE=(
+ # pycodestyle, mypy, etc.
+ tests/test_codestyle.py
+)
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_install() {
+ distutils-r1_src_install
+ use examples && dodoc examples/*.ipynb
+}
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 615844d35bf4..237834c35991 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -6,5 +6,6 @@ DIST uv_build-0.7.15.tar.gz 309520 BLAKE2B a8d629b77b599f186a9d61052224bd71dc35d
DIST uv_build-0.7.16.tar.gz 309576 BLAKE2B d358ab8c0b90e07162dc8d1550ba79948cb2d86633ccfcd8509ba4f0aca8c9d4da4140958297fd0bdc4240d009de34416bfa3cdeb96f53574ef6f7c91bd71cfb SHA512 b3a115491ec8d522cc93071bdc58b4f40471f0bb27ba9186b8c7d111d069ad3276448d17baba409f7dd4f446978880faca1c137f376907f4ad201649f64df4c8
DIST uv_build-0.7.17.tar.gz 309375 BLAKE2B 633c0e4a325a674aa46cc263cb8dbd653268d8dd61fff41dc022ddd13f35046bee3fb055c778a25a88b147e23d7fc41ede2a73d906819de97a1e911e00b258ef SHA512 433484666d7734a5086556a0f0eff92e7b6e1a0b16eda9b08e58fa7b2f97c15f30701d060f797ada4d0d0b9707a90914f661fc50cfba9fedcf32c01289184d9d
DIST uv_build-0.7.18.tar.gz 310469 BLAKE2B 9cdc765b5aad32e9fc338bb2355f4f882557393b67f5c4cb39cf6573ac367d3af9ef1f9c2e35e2125278eb9de539aa8becd05c9dfe26d8f0f6e337709a85cdc1 SHA512 6915b264fbd93b2977157e0c8d17e4f0652a82112f025f5ff2d2b84c3764343323eca22a1219a6610387168d8b399d346af990192ef3752a817823d83c700dc5
+DIST uv_build-0.7.19.tar.gz 311467 BLAKE2B a7e85c3bbaee786ed9729b1331e5506eeb95d4ee875502814555956611449501f6b1c62284945640a2ce95f225a1b1c151b47d17c0d303599fe69bffc4ab8e5c SHA512 c3bc554dd9d86bfdb1e9ebf042d8c00987a790da9d386eb371dcc1bc7cd1c0000ae69a4d1e5f1759ed723d78eed73a461bae26d5047bdb0c0bb75f450fdc009a
DIST uv_build-0.7.8.tar.gz 305609 BLAKE2B 89d2e7ff95f4375d4fff758463c1cf918c3ec475a1e0de04fcc51b4bd0fefe1aca50ea223b3cc456c5944f0673702ab971374829fb568e4521129acb0a770506 SHA512 bde37f82ae781531e50425ff247219e4e2908c7e46200a65a74e8e2b8b48a0d5cd60476138c160bd1d07aa8c9a581f5da01e79fd7883d018f10617ddba8b8349
DIST uv_build-0.7.9.tar.gz 308177 BLAKE2B 38bd8d4640a239dac740503929c7b31ba591e101e0778cbd5e3c9db6513082f0382bc982affc7cf3a5af3998647ae58ebf870388dc0d67e2ed7fda5764cc9176 SHA512 f316aae21cbf15dc281d79eaa10af1b56efd70d484ae37b831d7216c268e03c6a46c50a212e617e932a6cf0805f2cb114e91caf92afe1c1d994ba06209255e90
diff --git a/dev-python/uv-build/uv-build-0.7.19.ebuild b/dev-python/uv-build/uv-build-0.7.19.ebuild
new file mode 100644
index 000000000000..6156796bc3d2
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.7.19.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2025 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_{9,10,11,12,13} pypy3 )
+
+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"
+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/Manifest b/dev-python/uv/Manifest
index a2816f6bf91a..fac51b826140 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -19,6 +19,8 @@ DIST uv-0.7.17-crates.tar.xz 58052104 BLAKE2B 95a97abf28acd579fd796c71e664233fae
DIST uv-0.7.17.gh.tar.gz 4105381 BLAKE2B 1f83651b8a844812acc27742571855b84d017bdc823073b38f2b5b4b5996b8ca6fe3fd029e0dbc620dcf0d3f9edf4ca8324ba1b2c0d57385d27af241a59fb66a SHA512 e26ecd29fc52b68fe01d396424d8fd48666396001a4b4a1f9a384a8cfb83e029f5003db9910227f7fbe4462e037f12a746cda8859006e73cd7a22b082e8008e0
DIST uv-0.7.18-crates.tar.xz 58207040 BLAKE2B 0e8761c020d5931f3ed134482fac5130b27e5e8f4a713faef225264f8f4d4a734fa6ce4a1ba97c771890ebf71549c7f6e1fe2353c6e763a60081393135091049 SHA512 1264bf6604f41902367e570615e5663850c3264753f100e3dee92be7bb83e3f9a4455727dbfdaa09ec736570d99ddf342bffed14e1ae65ddc4e362a9217d28c5
DIST uv-0.7.18.gh.tar.gz 4114273 BLAKE2B 6661f6fcf88d2e53829e503df439f60de195f28e0f940f0baa0ae0980456cbf59db050d69ee84b36b334fce4e067388886bce7e16842b3e2bfeb282a6244147c SHA512 f9bb13c75e679a362994f6782bc8ac7194038d77e2d47ad7afbead649745c411fa2337cb95b76eab65b068e29119fc8530e1243c039c3f165d6894439684910b
+DIST uv-0.7.19-crates.tar.xz 58207040 BLAKE2B 0e8761c020d5931f3ed134482fac5130b27e5e8f4a713faef225264f8f4d4a734fa6ce4a1ba97c771890ebf71549c7f6e1fe2353c6e763a60081393135091049 SHA512 1264bf6604f41902367e570615e5663850c3264753f100e3dee92be7bb83e3f9a4455727dbfdaa09ec736570d99ddf342bffed14e1ae65ddc4e362a9217d28c5
+DIST uv-0.7.19.gh.tar.gz 4120134 BLAKE2B 39fc4a5e9ac753f3bd328f715ca8e3e06177ffefda73eff41e565bd58e4d0c48e2f89d5e887f8efab4de73d1d51cd37c3de106d7b29e5bd2d496e993a05d078d SHA512 c86cd70422a4ac2eb549258c1ab763e12b8cc32afb30a4ca7ec926f7b40b352468c3bf9fddb14fcf4e3c043be088211c37ee43d384d5651ca39922de927a1372
DIST uv-0.7.8-crates.tar.xz 45495772 BLAKE2B f8b9587302dfd96ba15b540f0897b9720ea06434d2d2e93e795793df874179ef79e544a07b9e158e890d119fa2d3beee9d0a884a3c78540ec6c8abe2cc902bba SHA512 78586fd9fbe4cd9e0b737609a8b8c438ac422be1dbcde7a8553234981ee4be8136efe50b2c14b6863b6256a337cab977948641bb196e5f718188a66b25f1f5f5
DIST uv-0.7.8.gh.tar.gz 3993156 BLAKE2B a11245cb77ceab214ee021d973515c164048938afb67d878bf282e26f8c1f190187ef7a52af966247298d6a758baa97e36fce0a556c9ac145b3f01c8aea18d56 SHA512 109821612a9a07bf0fdadcc942893a8e024ef828f22f25b5d3f2a10088882892cb84a8b1e37874e7346c9a0815dcd15cb736a2a768ff525c6198482fe7aba3ff
DIST uv-0.7.9-crates.tar.xz 45526908 BLAKE2B 66951afc70feb4719c5af415c0503c6e8daff850227d9773406f6e4c0c9bb960a56573675327b04297437481852cc9236bdf240476cf1c151e52ff4caf170c72 SHA512 6ea0d4e02e28edc47d420c095b426136aeb1e4af2c3181e104f67405b180d6ce51f1db122cc6d49ac876a68711d43aa2fdae5fd710523c03d6d302d41da47e02
diff --git a/dev-python/uv/uv-0.7.19.ebuild b/dev-python/uv/uv-0.7.19.ebuild
new file mode 100644
index 000000000000..14f6f1ae7451
--- /dev/null
+++ b/dev-python/uv/uv-0.7.19.ebuild
@@ -0,0 +1,183 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;ad8b9d332d1773fde8b4cd008486de5973e0a3f8;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;ad8b9d332d1773fde8b4cd008486de5973e0a3f8;reqwest-middleware-%commit%/reqwest-retry'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;06ec5a5f59ffaeb6cf5079c6cb184467da06c9db;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.85.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 Boost-1.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 ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.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
+
+ # replace upstream crate substitution with our crate substitution, sigh
+ local pkg
+ for pkg in reqwest-middleware reqwest-retry; do
+ local dep=$(grep "^${pkg}" "${ECARGO_HOME}"/config.toml || die)
+ sed -i -e "/\[patch\.crates-io\]/,\$s;^${pkg}.*$;${dep};" Cargo.toml || die
+ done
+
+ # 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
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}