From patchwork Thu Jan 12 11:23:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 18069 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D9C3C54EBD for ; Thu, 12 Jan 2023 11:23:47 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.52584.1673522621529190636 for ; Thu, 12 Jan 2023 03:23:41 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1994FAD7; Thu, 12 Jan 2023 03:24:23 -0800 (PST) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 83CA03F67D; Thu, 12 Jan 2023 03:23:40 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH 1/4] python3-pyproject-hooks: add new recipe Date: Thu, 12 Jan 2023 11:23:33 +0000 Message-Id: <20230112112336.2254765-1-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 12 Jan 2023 11:23:47 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/175791 This used to be known as python3-pep517 and is a key library used to build modern Python code. It is currently vendored into python3-picobuild but I plan to remove that. Signed-off-by: Ross Burton --- meta/conf/distro/include/maintainers.inc | 1 + .../python/python3-pyproject-hooks_1.0.0.bb | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 508d10e091a..83966a250b1 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -662,6 +662,7 @@ RECIPE_MAINTAINER:pn-python3-pygments = "Oleksandr Kravchuk X-Patchwork-Id: 18068 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A15A5C677F1 for ; Thu, 12 Jan 2023 11:23:47 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.52585.1673522622029114318 for ; Thu, 12 Jan 2023 03:23:42 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B665BFEC; Thu, 12 Jan 2023 03:24:23 -0800 (PST) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 30F613F67D; Thu, 12 Jan 2023 03:23:41 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH 2/4] python3-build: add 0.10.0 Date: Thu, 12 Jan 2023 11:23:34 +0000 Message-Id: <20230112112336.2254765-2-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230112112336.2254765-1-ross.burton@arm.com> References: <20230112112336.2254765-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 12 Jan 2023 11:23:47 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/175792 This is the PEP517 build frontend blessed by the Python Packaging Authority, and now that Python 3.11 has been released and enough packages have ported to flit, it can be used without a huge bootstraping problem. Signed-off-by: Ross Burton --- meta/conf/distro/include/maintainers.inc | 1 + .../python/python3-build_0.10.0.bb | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 meta/recipes-devtools/python/python3-build_0.10.0.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 83966a250b1..7254c749c51 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -600,6 +600,7 @@ RECIPE_MAINTAINER:pn-python3-atomicwrites = "Tim Orling X-Patchwork-Id: 18067 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E63FC61DB3 for ; Thu, 12 Jan 2023 11:23:47 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.52586.1673522622681963492 for ; Thu, 12 Jan 2023 03:23:42 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 62ED9AD7; Thu, 12 Jan 2023 03:24:24 -0800 (PST) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D1CDA3F67D; Thu, 12 Jan 2023 03:23:41 -0800 (PST) From: Ross Burton 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 Message-Id: <20230112112336.2254765-3-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230112112336.2254765-1-ross.burton@arm.com> References: <20230112112336.2254765-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 12 Jan 2023 11:23:47 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/175793 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 --- 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 +} From patchwork Thu Jan 12 11:23:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 18066 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAACCC54EBC for ; Thu, 12 Jan 2023 11:23:47 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.52337.1673522623343447339 for ; Thu, 12 Jan 2023 03:23:43 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0F63FFEC; Thu, 12 Jan 2023 03:24:25 -0800 (PST) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7E3B93F67D; Thu, 12 Jan 2023 03:23:42 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH 4/4] python3-picobuild: remove Date: Thu, 12 Jan 2023 11:23:36 +0000 Message-Id: <20230112112336.2254765-4-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230112112336.2254765-1-ross.burton@arm.com> References: <20230112112336.2254765-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 12 Jan 2023 11:23:47 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/175794 We've moved to using python3-build, so this can be removed. Signed-off-by: Ross Burton --- meta/conf/distro/include/maintainers.inc | 1 - .../python/python3-picobuild_0.2.bb | 23 ------------------- 2 files changed, 24 deletions(-) delete mode 100644 meta/recipes-devtools/python/python3-picobuild_0.2.bb diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 7254c749c51..fbcb025c954 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -647,7 +647,6 @@ RECIPE_MAINTAINER:pn-python3-packaging = "Tim Orling " RECIPE_MAINTAINER:pn-python3-pathlib2 = "Tim Orling " RECIPE_MAINTAINER:pn-python3-pathspec = "Ross Burton " RECIPE_MAINTAINER:pn-python3-pbr = "Zang Ruochen " -RECIPE_MAINTAINER:pn-python3-picobuild = "Ross Burton " RECIPE_MAINTAINER:pn-python3-pip = "Zang Ruochen " RECIPE_MAINTAINER:pn-python3-pluggy = "Tim Orling " RECIPE_MAINTAINER:pn-python3-ply = "Tim Orling " diff --git a/meta/recipes-devtools/python/python3-picobuild_0.2.bb b/meta/recipes-devtools/python/python3-picobuild_0.2.bb deleted file mode 100644 index 99e4cb87618..00000000000 --- a/meta/recipes-devtools/python/python3-picobuild_0.2.bb +++ /dev/null @@ -1,23 +0,0 @@ -SUMMARY = "Library and tool for installing Python wheels" -HOMEPAGE = "https://gitlab.com/rossburton/picobuild" -LICENSE = "MIT & ( Apache-2.0 | BSD-2-Clause)" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=6c811a9fbdf5641ff0b0d43fbbb440e5 \ - file://picobuild/vendored/packaging/LICENSE.APACHE;md5=2ee41112a44fe7014dce33e26468ba93 \ - file://picobuild/vendored/packaging/LICENSE.BSD;md5=7bef9bf4a8e4263634d0597e7ba100b8 \ - file://picobuild/vendored/pep517/LICENSE;md5=aad69c93f605003e3342b174d9b0708c \ - file://picobuild/vendored/pyparsing/LICENSE;md5=657a566233888513e1f07ba13e2f47f1 \ - file://picobuild/vendored/tomli/LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5 \ - " - -SRC_URI = "git://gitlab.com/rossburton/picobuild.git;protocol=https;branch=main" -SRCREV = "ed3b16ce48d91df181e5f5d77b9bbc2577b3fd9d" -PV .= "+git${SRCPV}" - -S = "${WORKDIR}/git" - -inherit python_flit_core - -DEPENDS:remove:class-native = "python3-picobuild-native" - -BBCLASSEXTEND = "native nativesdk"