Now that the bootstrap sequence for pypa/build is just
python3-packaging, and python3-pyproject-hooks, we can use build instead
of picobuild.

The only change visible outside of this class is that the variable
PEP517_PICOBUILD_OPTS is now PEP517_BUILD_OPTS, but I'm only aware of one
recipe that used that variable.

Signed-off-by: Ross Burton <[email protected]>
---
 meta/classes-recipe/python_pep517.bbclass             |  7 ++++---
 meta/recipes-devtools/python/python3-build_0.10.0.bb  | 11 ++++++++++-
 .../python/python3-flit-core_3.8.0.bb                 |  2 +-
 .../python/python3-installer_0.6.0.bb                 |  2 +-
 .../recipes-devtools/python/python3-packaging_22.0.bb |  7 +++++++
 .../python/python3-pyproject-hooks_1.0.0.bb           |  7 +++++++
 6 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/meta/classes-recipe/python_pep517.bbclass 
b/meta/classes-recipe/python_pep517.bbclass
index 202dde0bc31..a1659c5f628 100644
--- a/meta/classes-recipe/python_pep517.bbclass
+++ b/meta/classes-recipe/python_pep517.bbclass
@@ -10,7 +10,7 @@
 # This class will build a wheel in do_compile, and use pypa/installer to 
install
 # it in do_install.
 
-DEPENDS:append = " python3-picobuild-native python3-installer-native"
+DEPENDS:append = " python3-build-native python3-installer-native"
 
 # Where to execute the build process from
 PEP517_SOURCE_PATH ?= "${S}"
@@ -18,7 +18,8 @@ PEP517_SOURCE_PATH ?= "${S}"
 # The directory where wheels will be written
 PEP517_WHEEL_PATH ?= "${WORKDIR}/dist"
 
-PEP517_PICOBUILD_OPTS ?= ""
+# Other options to pass to build
+PEP517_BUILD_OPTS ?= ""
 
 # The interpreter to use for installed scripts
 PEP517_INSTALL_PYTHON = "python3"
@@ -36,7 +37,7 @@ python_pep517_do_configure () {
 # When we have Python 3.11 we can parse pyproject.toml to determine the build
 # API entry point directly
 python_pep517_do_compile () {
-    nativepython3 -m picobuild --source ${PEP517_SOURCE_PATH} --dest 
${PEP517_WHEEL_PATH} --wheel ${PEP517_PICOBUILD_OPTS}
+    nativepython3 -m build --no-isolation --wheel --outdir 
${PEP517_WHEEL_PATH} ${PEP517_SOURCE_PATH} ${PEP517_BUILD_OPTS}
 }
 do_compile[cleandirs] += "${PEP517_WHEEL_PATH}"
 
diff --git a/meta/recipes-devtools/python/python3-build_0.10.0.bb 
b/meta/recipes-devtools/python/python3-build_0.10.0.bb
index bebc00a437d..770a32023d8 100644
--- a/meta/recipes-devtools/python/python3-build_0.10.0.bb
+++ b/meta/recipes-devtools/python/python3-build_0.10.0.bb
@@ -7,7 +7,16 @@ SRC_URI[sha256sum] = 
"d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca
 
 inherit pypi python_flit_core
 
-DEPENDS += "python3-packaging-native python3-pyproject-hooks-native"
+DEPENDS += "python3-pyproject-hooks-native"
+
+DEPENDS:remove:class-native = "python3-build-native"
+
+# Skip dependencies as we're doing a minimal build to bootstrap
+PEP517_BUILD_OPTS:class-native = "--skip-dependency-check"
+
+do_compile:prepend:class-native() {
+    export PYTHONPATH="${S}/src"
+}
 
 RDEPENDS:${PN} += "python3-packaging python3-pyproject-hooks"
 
diff --git a/meta/recipes-devtools/python/python3-flit-core_3.8.0.bb 
b/meta/recipes-devtools/python/python3-flit-core_3.8.0.bb
index 3d815d53163..2e5b1e80695 100644
--- a/meta/recipes-devtools/python/python3-flit-core_3.8.0.bb
+++ b/meta/recipes-devtools/python/python3-flit-core_3.8.0.bb
@@ -13,7 +13,7 @@ SRC_URI[sha256sum] = 
"d0f2a8f4bd45dc794befbf5839ecc0fd3830d65a57bd52b5997542fac5
 inherit pypi python_flit_core
 
 # Need to install by hand as there's a dependency loop
-DEPENDS:remove:class-native = " python3-picobuild-native 
python3-installer-native"
+DEPENDS:remove:class-native = " python3-build-native python3-installer-native"
 DEPENDS:append:class-native = " unzip-native"
 
 # We need the full flit tarball
diff --git a/meta/recipes-devtools/python/python3-installer_0.6.0.bb 
b/meta/recipes-devtools/python/python3-installer_0.6.0.bb
index e728e47cecb..a2130a4507a 100644
--- a/meta/recipes-devtools/python/python3-installer_0.6.0.bb
+++ b/meta/recipes-devtools/python/python3-installer_0.6.0.bb
@@ -13,7 +13,7 @@ SRC_URI[sha256sum] = 
"f3bd36cd261b440a88a1190b1becca0578fee90b4b62decc796932fdd5
 inherit pypi python_flit_core
 
 # Bootstrap the native build
-DEPENDS:remove:class-native = "python3-picobuild-native 
python3-installer-native"
+DEPENDS:remove:class-native = "python3-build-native python3-installer-native"
 
 INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode"
 
diff --git a/meta/recipes-devtools/python/python3-packaging_22.0.bb 
b/meta/recipes-devtools/python/python3-packaging_22.0.bb
index bcf077d2c71..22f066416b7 100644
--- a/meta/recipes-devtools/python/python3-packaging_22.0.bb
+++ b/meta/recipes-devtools/python/python3-packaging_22.0.bb
@@ -8,3 +8,10 @@ SRC_URI[sha256sum] = 
"2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41d
 inherit pypi python_flit_core
 
 BBCLASSEXTEND = "native nativesdk"
+
+# Bootstrap the native build
+DEPENDS:remove:class-native = "python3-build-native"
+
+do_compile:class-native () {
+    python_flit_core_do_manual_build
+}
diff --git a/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb 
b/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
index 10d8225c3d5..9aca5918ec1 100644
--- a/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
+++ b/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
@@ -10,3 +10,10 @@ inherit pypi python_flit_core
 PYPI_PACKAGE = "pyproject_hooks"
 
 BBCLASSEXTEND = "native nativesdk"
+
+# Bootstrap the native build
+DEPENDS:remove:class-native = "python3-build-native"
+
+do_compile:class-native () {
+    python_flit_core_do_manual_build
+}
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#175793): 
https://lists.openembedded.org/g/openembedded-core/message/175793
Mute This Topic: https://lists.openembedded.org/mt/96220393/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to