diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest index 84dc2e3f984ae..f8cbb2fe3a187 100644 --- a/dev-python/uv-build/Manifest +++ b/dev-python/uv-build/Manifest @@ -1,3 +1,4 @@ DIST uv_build-0.8.24.tar.gz 332743 BLAKE2B de8e695ab1b41139dd6a8d78ae8f895ae4e464f7956019c1f32a9a39109517332ed4e783cc99dddb16c89215d49488081c2139a5edb7f9a7a602d712f1580e9f SHA512 cdeeead6b94e27edf6ebcd5997419032266f4f3fe6deef22c3b850220d5cb5c5416c4d13cbaca543facf417ec12f749bf2f2cac63894047464a3b54275d1a988 DIST uv_build-0.8.6.tar.gz 318772 BLAKE2B faf4f36b32cf308d3c70d52b84bd135d108db4018bc4c7eadf193448e422fe8b0deb1cf68f7264413152697708f9a15748a017d0ece151c19c1677916b3727b9 SHA512 da83c3ba7f2daa1c39a8bac5b18635eff4afc93460ea23b770518ebaf44bef573654e272c117e257f4126124c71a5b661f2751ff36be792c03ee28f257d1eddc DIST uv_build-0.9.3.tar.gz 332769 BLAKE2B 8e813d289d59d2bf8ad4eaffaeb1c8525acaa36215ff9d8e1088ec4fd2ba6d7ac971251c144748805950c0934c24e9c141a860e5ef7332e71d049080852817f1 SHA512 bc1231a3aaaf77b80404281675241b8a27a328100128ec12160f29b574c1f6505a021d18bb5d8a4a23017d73cb8804d6bca5b1c8f27deba823d248744a231cc8 +DIST uv_build-0.9.4.tar.gz 332506 BLAKE2B 3b65cc80192cf3abc33bcf01735c8b7f937a12f2dcd0557d0ae255ce8bd4cb7dbb15522e73802be0e17ac10c4acad6f9075f12d5f853bb1881b0c13f1d120b33 SHA512 c3be52cfbc1cf5a229df91d9e1125925a534e3fca3041e29a16edd2334fa28b055c73e21a6bd1a3d1d63924cf8f112645300530e8cb6139fb549499ca672070f diff --git a/dev-python/uv-build/uv-build-0.9.4.ebuild b/dev-python/uv-build/uv-build-0.9.4.ebuild new file mode 100644 index 0000000000000..8d74c706f39b6 --- /dev/null +++ b/dev-python/uv-build/uv-build-0.9.4.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=( pypy3_11 python3_{11..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" +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 +}