All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ross Burton <ross.burton@arm.com>
To: openembedded-core@lists.openembedded.org
Cc: nd@arm.com
Subject: [PATCH 3/4] python_pep517: use python3-build, not picobuild
Date: Thu, 12 Jan 2023 11:23:35 +0000	[thread overview]
Message-ID: <20230112112336.2254765-3-ross.burton@arm.com> (raw)
In-Reply-To: <20230112112336.2254765-1-ross.burton@arm.com>

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 <ross.burton@arm.com>
---
 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



  parent reply	other threads:[~2023-01-12 11:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-12 11:23 [PATCH 1/4] python3-pyproject-hooks: add new recipe Ross Burton
2023-01-12 11:23 ` [PATCH 2/4] python3-build: add 0.10.0 Ross Burton
2023-01-12 11:23 ` Ross Burton [this message]
2023-01-12 11:23 ` [PATCH 4/4] python3-picobuild: remove Ross Burton
2023-01-13  7:51   ` [OE-core] " Khem Raj
2023-01-13 10:36     ` Ross Burton
2023-01-13 12:30       ` Ross Burton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230112112336.2254765-3-ross.burton@arm.com \
    --to=ross.burton@arm.com \
    --cc=nd@arm.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.