summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/uv-build/Manifest1
-rw-r--r--dev-python/uv-build/uv-build-0.9.2.ebuild99
2 files changed, 100 insertions, 0 deletions
diff --git a/dev-python/uv-build/Manifest b/dev-python/uv-build/Manifest
index 10df370529ad..c7d4a8d34451 100644
--- a/dev-python/uv-build/Manifest
+++ b/dev-python/uv-build/Manifest
@@ -10,3 +10,4 @@ DIST uv_build-0.8.24.tar.gz 332743 BLAKE2B de8e695ab1b41139dd6a8d78ae8f895ae4e46
DIST uv_build-0.8.6.tar.gz 318772 BLAKE2B faf4f36b32cf308d3c70d52b84bd135d108db4018bc4c7eadf193448e422fe8b0deb1cf68f7264413152697708f9a15748a017d0ece151c19c1677916b3727b9 SHA512 da83c3ba7f2daa1c39a8bac5b18635eff4afc93460ea23b770518ebaf44bef573654e272c117e257f4126124c71a5b661f2751ff36be792c03ee28f257d1eddc
DIST uv_build-0.9.0.tar.gz 332461 BLAKE2B 422c100a5eec0d8973e676be25cdee06c2cfb7e5be1509a4dc1eeb60293633a8e541396125f884809af0e6b5f5135b7841bee7951207d0052a354c61aa5eca4a SHA512 2eaac5ab194e222bd12d569611fc3c1f1238f90f0fc634b529bed004979b8782db506f110563995ad1df0d960246d5db85260f772db62098ece178325ed6f5b0
DIST uv_build-0.9.1.tar.gz 332775 BLAKE2B 29808da2a83560a3d75d233dd5671a93b532881366dac9fc7963cf8a85b2c84cd8085b7ec9f6275adf1bef75c81700f39ea36f0d713f1ab0a028d9365cd231da SHA512 4dfb14ece44d6f8ed8a9381306d69161e6acea58800c12299af051ede93274869591b482f64023ae4b2f525e5f91b579dbcfef688279f8551988bd563df64944
+DIST uv_build-0.9.2.tar.gz 332728 BLAKE2B b2f6d546cfddf19f53ec10d144ed4f46dcf60f28a85271877742f19668056277fbff51838fc56c6dba7a2dca52524bf07895d264937c7a100913908c82cb87f3 SHA512 71321eb3485b1056b0a152c82765932379ca9f33de19ad4dcaa760e34d1217558fb3367724a9f1ee99324d9fc828445a80969e20536bc192b4715a02c37663d6
diff --git a/dev-python/uv-build/uv-build-0.9.2.ebuild b/dev-python/uv-build/uv-build-0.9.2.ebuild
new file mode 100644
index 000000000000..8d74c706f39b
--- /dev/null
+++ b/dev-python/uv-build/uv-build-0.9.2.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
+}