diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest index b4acf0a816be1..408a037feb307 100644 --- a/dev-python/uv-build/Manifest +++ b/dev-python/uv-build/Manifest @@ -6,3 +6,4 @@ DIST uv_build-0.11.24.tar.gz 401361 BLAKE2B cdafaca66f3a6dd5db0f9e7520428790b1eb DIST uv_build-0.11.25.tar.gz 404894 BLAKE2B 6922a5e91c5c657ca5ed90edb0250cbd7192d208cdc135d8c5de74c04de8b91c10d7c0d52d58224a6cb60c7114ecbdcbc2181ac18b0b69cf41d88fd007329a36 SHA512 9315f67c76004b6b45e08d8cad53e5ac4f04a2342e18768523e71f9dc2f7e81aec599f968983df3237d1ad3dc9b87b088f99d2ea79994543fa3623ab21ae5730 DIST uv_build-0.11.26.tar.gz 405178 BLAKE2B c59258a222a8346543ab8bde8d425600c9a575a1da4b5c96b7470cb5b8f3830168d513e1d6337d00e79e94766a6604b0946e5bf2fce192800a8f1aa5576b2e5a SHA512 3331e4195fc72543fb546f4a86e2eeb036277ceebba37151a3faaefb921c8508d99e8bc25dacd57eb26a8744b1b76f2b90df4dff97450e97518fcd5ca80fe287 DIST uv_build-0.11.27.tar.gz 406474 BLAKE2B bb3c669e37059b2777c51120578caae84db54379f765c13a946b2fdc5e502e3c67ee7e30f7d2e1dde649961c6f2d0a10e758bf9b6b1835cb600f2400925ac627 SHA512 e7a7f461cf1ae899b24fcedc08fd739f352347eacb1f215026745a6b170e552504ed712b91519cff170ae81e36d6b7403a0270e9766e2cdf644411b51e62cf9c +DIST uv_build-0.11.28.tar.gz 408697 BLAKE2B 2c318b2f6f734f1da4bed3ea0bba8fa4ef51e76853be25dc19277b5347f8b45eb22a923f0a20575982dd9eac0dfaecf15c2a6bcbcd2357a75e6bcedf6a64231d SHA512 c502494cde643e2a5e45e34ba3be3132720f6ec4c7e4c966c02a673308d44f1ee313d84ab267ffb6cb88cb0227075b88369381bbe89b9b6333b1f4eb89bc0724 diff --git a/dev-python/uv-build/uv-build-0.11.28.ebuild b/dev-python/uv-build/uv-build-0.11.28.ebuild new file mode 100644 index 0000000000000..ec8ac56f327ac --- /dev/null +++ b/dev-python/uv-build/uv-build-0.11.28.ebuild @@ -0,0 +1,99 @@ +# 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_{12..15} ) + +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 +}