From patchwork Tue Mar 8 14:30:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 4935 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 EBA47C43217 for ; Tue, 8 Mar 2022 14:30:40 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.8696.1646749839836237730 for ; Tue, 08 Mar 2022 06:30:40 -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 D2FE9139F for ; Tue, 8 Mar 2022 06:30:38 -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 7DCB53FA58 for ; Tue, 8 Mar 2022 06:30:37 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 1/6] flit_core: respect PIP_INSTALL_DIST_PATH Date: Tue, 8 Mar 2022 14:30:30 +0000 Message-Id: <20220308143035.3569559-1-ross.burton@arm.com> X-Mailer: git-send-email 2.25.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 ; Tue, 08 Mar 2022 14:30:40 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/162924 pip_install_wheel expects the wheels to be in PIP_INSTALL_DIST_PATH but this class was writing to the same directory through chance not design. Respect PIP_INSTALL_DIST_PATH as the output directory, and use [cleandirs] to ensure that it exists and is empty. Also call the flit_core.wheel module directly as this is a public entry point to the wheel building logic. Signed-off-by: Ross Burton --- meta/classes/flit_core.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/flit_core.bbclass b/meta/classes/flit_core.bbclass index a7667795fe..3481bb5089 100644 --- a/meta/classes/flit_core.bbclass +++ b/meta/classes/flit_core.bbclass @@ -8,8 +8,8 @@ flit_core_do_configure () { # TODO: ideally this uses pypa/build flit_core_do_compile () { - mkdir -p ${S}/dist - nativepython3 -c "from flit_core import buildapi; buildapi.build_wheel('./dist')" + nativepython3 -mflit_core.wheel --outdir ${PIP_INSTALL_DIST_PATH} } +do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}" EXPORT_FUNCTIONS do_configure do_compile From patchwork Tue Mar 8 14:30:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 4938 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 C28EBC433EF for ; Tue, 8 Mar 2022 14:30:44 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web09.8702.1646749843760048857 for ; Tue, 08 Mar 2022 06:30:44 -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 6A3A5139F for ; Tue, 8 Mar 2022 06:30:43 -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 105533FA61 for ; Tue, 8 Mar 2022 06:30:37 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 2/6] setuptools3: respect PIP_INSTALL_DIST_PATH Date: Tue, 8 Mar 2022 14:30:31 +0000 Message-Id: <20220308143035.3569559-2-ross.burton@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220308143035.3569559-1-ross.burton@arm.com> References: <20220308143035.3569559-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 ; Tue, 08 Mar 2022 14:30:44 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/162928 pip_install_wheel expects the wheels to be in PIP_INSTALL_DIST_PATH but this class was writing to the same directory through chance not design. Respect PIP_INSTALL_DIST_PATH as the output directory. Signed-off-by: Ross Burton --- meta/classes/setuptools3.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/setuptools3.bbclass b/meta/classes/setuptools3.bbclass index 1b1a8aac76..dcf3561b8d 100644 --- a/meta/classes/setuptools3.bbclass +++ b/meta/classes/setuptools3.bbclass @@ -17,11 +17,11 @@ setuptools3_do_compile() { STAGING_INCDIR=${STAGING_INCDIR} \ STAGING_LIBDIR=${STAGING_LIBDIR} \ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \ - bdist_wheel --verbose ${SETUPTOOLS_BUILD_ARGS} || \ + bdist_wheel --verbose --dist-dir ${PIP_INSTALL_DIST_PATH} ${SETUPTOOLS_BUILD_ARGS} || \ bbfatal_log "'${PYTHON_PN} setup.py bdist_wheel ${SETUPTOOLS_BUILD_ARGS}' execution failed." } setuptools3_do_compile[vardepsexclude] = "MACHINE" -do_compile[cleandirs] += "${SETUPTOOLS_SETUP_PATH}/dist" +do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}" setuptools3_do_install() { pip_install_wheel_do_install From patchwork Tue Mar 8 14:30:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 4933 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 E03A9C4332F for ; Tue, 8 Mar 2022 14:30:40 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.8612.1646749840226651308 for ; Tue, 08 Mar 2022 06:30:40 -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 EFA2C1516 for ; Tue, 8 Mar 2022 06:30:38 -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 96AF43FA7A for ; Tue, 8 Mar 2022 06:30:38 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 3/6] setuptools_build_meta: respect PIP_INSTALL_DIST_PATH Date: Tue, 8 Mar 2022 14:30:32 +0000 Message-Id: <20220308143035.3569559-3-ross.burton@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220308143035.3569559-1-ross.burton@arm.com> References: <20220308143035.3569559-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 ; Tue, 08 Mar 2022 14:30:40 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/162925 pip_install_wheel expects the wheels to be in PIP_INSTALL_DIST_PATH but this class was writing to the same directory through chance not design. Respect PIP_INSTALL_DIST_PATH as the output directory, and use [cleandirs] to ensure that it exists and is empty. Signed-off-by: Ross Burton --- meta/classes/setuptools_build_meta.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/setuptools_build_meta.bbclass b/meta/classes/setuptools_build_meta.bbclass index 0651cca0a0..18ae2e6004 100644 --- a/meta/classes/setuptools_build_meta.bbclass +++ b/meta/classes/setuptools_build_meta.bbclass @@ -8,8 +8,8 @@ setuptools_build_meta_do_configure () { # TODO: ideally this uses pypa/build setuptools_build_meta_do_compile () { - mkdir -p ${S}/dist - nativepython3 -c "from setuptools import build_meta; build_meta.build_wheel('./dist')" + nativepython3 -c "from setuptools import build_meta; build_meta.build_wheel('${PIP_INSTALL_DIST_PATH}')" } +do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}" EXPORT_FUNCTIONS do_configure do_compile From patchwork Tue Mar 8 14:30:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 4936 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 DE98BC433FE for ; Tue, 8 Mar 2022 14:30:40 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.8702.1646749839887746095 for ; Tue, 08 Mar 2022 06:30:40 -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 804D01650 for ; Tue, 8 Mar 2022 06:30:39 -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 2CB483FA58 for ; Tue, 8 Mar 2022 06:30:39 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 4/6] flit_core: add variable to control where pyproject.toml is located Date: Tue, 8 Mar 2022 14:30:33 +0000 Message-Id: <20220308143035.3569559-4-ross.burton@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220308143035.3569559-1-ross.burton@arm.com> References: <20220308143035.3569559-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 ; Tue, 08 Mar 2022 14:30:40 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/162923 The PEP517[1] pyproject.toml doesn't have to be located at the top-level of the source tree (for example, in recipes with multiple components), so add a variable PEP517_SOURCE_PATH to set where the file is. In the future there should be a pep517.bbclass to centralise the common logic, but for now this can be defined in each of the relevant classes. [1] https://www.python.org/dev/peps/pep-0517/ Signed-off-by: Ross Burton --- meta/classes/flit_core.bbclass | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta/classes/flit_core.bbclass b/meta/classes/flit_core.bbclass index 3481bb5089..7b578967a9 100644 --- a/meta/classes/flit_core.bbclass +++ b/meta/classes/flit_core.bbclass @@ -6,8 +6,12 @@ flit_core_do_configure () { : } +# Where to execute the build process from +PEP517_SOURCE_PATH ?= "${S}" + # TODO: ideally this uses pypa/build flit_core_do_compile () { + cd ${PEP517_SOURCE_PATH} nativepython3 -mflit_core.wheel --outdir ${PIP_INSTALL_DIST_PATH} } do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}" From patchwork Tue Mar 8 14:30:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 4934 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 DE8D8C433F5 for ; Tue, 8 Mar 2022 14:30:40 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web08.8396.1646749840393774173 for ; Tue, 08 Mar 2022 06:30:40 -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 12B381655 for ; Tue, 8 Mar 2022 06:30:40 -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 B48E43FA58 for ; Tue, 8 Mar 2022 06:30:39 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 5/6] setuptools_build_meta: add variable to control where pyproject.toml is located Date: Tue, 8 Mar 2022 14:30:34 +0000 Message-Id: <20220308143035.3569559-5-ross.burton@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220308143035.3569559-1-ross.burton@arm.com> References: <20220308143035.3569559-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 ; Tue, 08 Mar 2022 14:30:40 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/162926 The PEP517[1] pyproject.toml doesn't have to be located at the top-level of the source tree (for example, in recipes with multiple components), so add a variable PEP517_SOURCE_PATH to set where the file is. In the future there should be a pep517.bbclass to centralise the common logic, but for now this can be defined in each of the relevant classes. [1] https://www.python.org/dev/peps/pep-0517/ Signed-off-by: Ross Burton --- meta/classes/setuptools_build_meta.bbclass | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta/classes/setuptools_build_meta.bbclass b/meta/classes/setuptools_build_meta.bbclass index 18ae2e6004..787fbd5f36 100644 --- a/meta/classes/setuptools_build_meta.bbclass +++ b/meta/classes/setuptools_build_meta.bbclass @@ -2,12 +2,16 @@ inherit pip_install_wheel setuptools3-base DEPENDS += "python3-setuptools-native python3-wheel-native" +# Where to execute the build process from +PEP517_SOURCE_PATH ?= "${S}" + setuptools_build_meta_do_configure () { : } # TODO: ideally this uses pypa/build setuptools_build_meta_do_compile () { + cd ${PEP517_SOURCE_PATH} nativepython3 -c "from setuptools import build_meta; build_meta.build_wheel('${PIP_INSTALL_DIST_PATH}')" } do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}" From patchwork Tue Mar 8 14:30:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 4937 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 C3ECAC433EF for ; Tue, 8 Mar 2022 14:30:41 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.8703.1646749840906692608 for ; Tue, 08 Mar 2022 06:30: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 9AD95139F for ; Tue, 8 Mar 2022 06:30:40 -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 474B43FA58 for ; Tue, 8 Mar 2022 06:30:40 -0800 (PST) From: Ross Burton To: openembedded-core@lists.openembedded.org Subject: [PATCH 6/6] python3-flit-core: improve recipe Date: Tue, 8 Mar 2022 14:30:35 +0000 Message-Id: <20220308143035.3569559-6-ross.burton@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220308143035.3569559-1-ross.burton@arm.com> References: <20220308143035.3569559-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 ; Tue, 08 Mar 2022 14:30:41 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/162927 flit_core can bootstrap itself, so the python3-flit-core recipe can just inherit flit_core and set PEP517_SOURCE_PATH to the flit_core submodule. Also setting FILES:${PN} is redundant. Signed-off-by: Ross Burton --- .../python/python3-flit-core_3.7.1.bb | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb b/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb index f5e7506d5d..55ce256550 100644 --- a/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb +++ b/meta/recipes-devtools/python/python3-flit-core_3.7.1.bb @@ -10,31 +10,22 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=41eb78fa8a872983a882c694a8305f08" SRC_URI[sha256sum] = "3c9bd9c140515bfe62dd938c6610d10d6efb9e35cc647fc614fe5fb3a5036682" -inherit pip_install_wheel python3native python3-dir pypi setuptools3-base +inherit pypi flit_core +# Need to install by hand as there's a dependency loop DEPENDS:remove:class-native = " python3-pip-native" DEPENDS:append:class-native = " unzip-native" # We need the full flit tarball PYPI_PACKAGE = "flit" - +PEP517_SOURCE_PATH = "${S}/flit_core" PIP_INSTALL_PACKAGE = "flit_core" -PIP_INSTALL_DIST_PATH = "${S}/flit_core/dist" - -do_compile () { - nativepython3 flit_core/build_dists.py -} do_install:class-native () { install -d ${D}${PYTHON_SITEPACKAGES_DIR} - unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ./flit_core/dist/flit_core-${PV}-py3-none-any.whl + unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/flit_core*.whl } -FILES:${PN} += "\ - ${PYTHON_SITEPACKAGES_DIR}/flit_core/* \ - ${PYTHON_SITEPACKAGES_DIR}/flit_core-${PV}.dist-info/* \ -" - PACKAGES =+ "${PN}-tests" FILES:${PN}-tests += "\ @@ -42,4 +33,3 @@ FILES:${PN}-tests += "\ " BBCLASSEXTEND = "native nativesdk" -