diff options
author | Ross Burton <ross.burton@arm.com> | 2023-01-12 11:23:35 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-01-13 17:32:46 +0000 |
commit | adedac2b3392a86422c5b94fe0ec761304742a9e (patch) | |
tree | 8f2aeb7081739e9019a44a16b1e290ab1840d95f | |
parent | 1faf47e9e63bc6a136dccae938aa1ba5769d2857 (diff) | |
download | poky-adedac2b3392a86422c5b94fe0ec761304742a9e.tar.gz |
python_pep517: use python3-build, not picobuild
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.
(From OE-Core rev: 202c2e3c9481a8841af2556862a76e27d703246d)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6 files changed, 30 insertions, 6 deletions
diff --git a/meta/classes-recipe/python_pep517.bbclass b/meta/classes-recipe/python_pep517.bbclass index 202dde0bc3..a1659c5f62 100644 --- a/meta/classes-recipe/python_pep517.bbclass +++ b/meta/classes-recipe/python_pep517.bbclass | |||
@@ -10,7 +10,7 @@ | |||
10 | # This class will build a wheel in do_compile, and use pypa/installer to install | 10 | # This class will build a wheel in do_compile, and use pypa/installer to install |
11 | # it in do_install. | 11 | # it in do_install. |
12 | 12 | ||
13 | DEPENDS:append = " python3-picobuild-native python3-installer-native" | 13 | DEPENDS:append = " python3-build-native python3-installer-native" |
14 | 14 | ||
15 | # Where to execute the build process from | 15 | # Where to execute the build process from |
16 | PEP517_SOURCE_PATH ?= "${S}" | 16 | PEP517_SOURCE_PATH ?= "${S}" |
@@ -18,7 +18,8 @@ PEP517_SOURCE_PATH ?= "${S}" | |||
18 | # The directory where wheels will be written | 18 | # The directory where wheels will be written |
19 | PEP517_WHEEL_PATH ?= "${WORKDIR}/dist" | 19 | PEP517_WHEEL_PATH ?= "${WORKDIR}/dist" |
20 | 20 | ||
21 | PEP517_PICOBUILD_OPTS ?= "" | 21 | # Other options to pass to build |
22 | PEP517_BUILD_OPTS ?= "" | ||
22 | 23 | ||
23 | # The interpreter to use for installed scripts | 24 | # The interpreter to use for installed scripts |
24 | PEP517_INSTALL_PYTHON = "python3" | 25 | PEP517_INSTALL_PYTHON = "python3" |
@@ -36,7 +37,7 @@ python_pep517_do_configure () { | |||
36 | # When we have Python 3.11 we can parse pyproject.toml to determine the build | 37 | # When we have Python 3.11 we can parse pyproject.toml to determine the build |
37 | # API entry point directly | 38 | # API entry point directly |
38 | python_pep517_do_compile () { | 39 | python_pep517_do_compile () { |
39 | nativepython3 -m picobuild --source ${PEP517_SOURCE_PATH} --dest ${PEP517_WHEEL_PATH} --wheel ${PEP517_PICOBUILD_OPTS} | 40 | nativepython3 -m build --no-isolation --wheel --outdir ${PEP517_WHEEL_PATH} ${PEP517_SOURCE_PATH} ${PEP517_BUILD_OPTS} |
40 | } | 41 | } |
41 | do_compile[cleandirs] += "${PEP517_WHEEL_PATH}" | 42 | do_compile[cleandirs] += "${PEP517_WHEEL_PATH}" |
42 | 43 | ||
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 bebc00a437..770a32023d 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 | |||
7 | 7 | ||
8 | inherit pypi python_flit_core | 8 | inherit pypi python_flit_core |
9 | 9 | ||
10 | DEPENDS += "python3-packaging-native python3-pyproject-hooks-native" | 10 | DEPENDS += "python3-pyproject-hooks-native" |
11 | |||
12 | DEPENDS:remove:class-native = "python3-build-native" | ||
13 | |||
14 | # Skip dependencies as we're doing a minimal build to bootstrap | ||
15 | PEP517_BUILD_OPTS:class-native = "--skip-dependency-check" | ||
16 | |||
17 | do_compile:prepend:class-native() { | ||
18 | export PYTHONPATH="${S}/src" | ||
19 | } | ||
11 | 20 | ||
12 | RDEPENDS:${PN} += "python3-packaging python3-pyproject-hooks" | 21 | RDEPENDS:${PN} += "python3-packaging python3-pyproject-hooks" |
13 | 22 | ||
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 3d815d5316..2e5b1e8069 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 | |||
13 | inherit pypi python_flit_core | 13 | inherit pypi python_flit_core |
14 | 14 | ||
15 | # Need to install by hand as there's a dependency loop | 15 | # Need to install by hand as there's a dependency loop |
16 | DEPENDS:remove:class-native = " python3-picobuild-native python3-installer-native" | 16 | DEPENDS:remove:class-native = " python3-build-native python3-installer-native" |
17 | DEPENDS:append:class-native = " unzip-native" | 17 | DEPENDS:append:class-native = " unzip-native" |
18 | 18 | ||
19 | # We need the full flit tarball | 19 | # 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 e728e47cec..a2130a4507 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 | |||
13 | inherit pypi python_flit_core | 13 | inherit pypi python_flit_core |
14 | 14 | ||
15 | # Bootstrap the native build | 15 | # Bootstrap the native build |
16 | DEPENDS:remove:class-native = "python3-picobuild-native python3-installer-native" | 16 | DEPENDS:remove:class-native = "python3-build-native python3-installer-native" |
17 | 17 | ||
18 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" | 18 | INSTALL_WHEEL_COMPILE_BYTECODE:class-native = "--no-compile-bytecode" |
19 | 19 | ||
diff --git a/meta/recipes-devtools/python/python3-packaging_22.0.bb b/meta/recipes-devtools/python/python3-packaging_22.0.bb index bcf077d2c7..22f066416b 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 | |||
8 | inherit pypi python_flit_core | 8 | inherit pypi python_flit_core |
9 | 9 | ||
10 | BBCLASSEXTEND = "native nativesdk" | 10 | BBCLASSEXTEND = "native nativesdk" |
11 | |||
12 | # Bootstrap the native build | ||
13 | DEPENDS:remove:class-native = "python3-build-native" | ||
14 | |||
15 | do_compile:class-native () { | ||
16 | python_flit_core_do_manual_build | ||
17 | } | ||
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 10d8225c3d..9aca5918ec 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 | |||
10 | PYPI_PACKAGE = "pyproject_hooks" | 10 | PYPI_PACKAGE = "pyproject_hooks" |
11 | 11 | ||
12 | BBCLASSEXTEND = "native nativesdk" | 12 | BBCLASSEXTEND = "native nativesdk" |
13 | |||
14 | # Bootstrap the native build | ||
15 | DEPENDS:remove:class-native = "python3-build-native" | ||
16 | |||
17 | do_compile:class-native () { | ||
18 | python_flit_core_do_manual_build | ||
19 | } | ||