A fixup failed to land in this, v2 incoming.

Ross

On Fri, 11 Mar 2022 at 12:02, Ross Burton via lists.openembedded.org
<[email protected]> wrote:
>
> pip_install_wheel shouldn't restricted to just using Pip to install
> wheels (the installer module is simplier and likely a better option),
> and in the future may be extended to also provide do_compile() using
> the build module.
>
> Signed-off-by: Ross Burton <[email protected]>
> ---
>  meta/classes/flit_core.bbclass                |  6 ++---
>  ...ll_wheel.bbclass => python_pep517.bbclass} | 27 ++++++++++---------
>  meta/classes/setuptools3.bbclass              |  8 +++---
>  meta/classes/setuptools_build_meta.bbclass    |  6 ++---
>  .../python/python3-flit-core_3.7.1.bb         |  2 +-
>  .../python/python3-wheel_0.37.1.bb            |  2 +-
>  6 files changed, 27 insertions(+), 24 deletions(-)
>  rename meta/classes/{pip_install_wheel.bbclass => python_pep517.bbclass} 
> (56%)
>
> diff --git a/meta/classes/flit_core.bbclass b/meta/classes/flit_core.bbclass
> index ce162bb75b..1ef8ce9429 100644
> --- a/meta/classes/flit_core.bbclass
> +++ b/meta/classes/flit_core.bbclass
> @@ -1,4 +1,4 @@
> -inherit pip_install_wheel python3native python3-dir setuptools3-base
> +inherit python_pep517 python3native python3-dir setuptools3-base
>
>  DEPENDS += "python3 python3-flit-core-native"
>
> @@ -12,8 +12,8 @@ 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}
> +    nativepython3 -mflit_core.wheel --outdir ${PEP517_WHEEL_PATH}
>  }
> -do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}"
> +do_compile[cleandirs] += "${PEP517_WHEEL_PATH}"
>
>  EXPORT_FUNCTIONS do_configure do_compile
> diff --git a/meta/classes/pip_install_wheel.bbclass 
> b/meta/classes/python_pep517.bbclass
> similarity index 56%
> rename from meta/classes/pip_install_wheel.bbclass
> rename to meta/classes/python_pep517.bbclass
> index 29cd544aa3..76660e70f8 100644
> --- a/meta/classes/pip_install_wheel.bbclass
> +++ b/meta/classes/python_pep517.bbclass
> @@ -1,9 +1,12 @@
> +# Common infrastructure for Python packages that use PEP-517 compliant 
> packaging.
> +# https://www.python.org/dev/peps/pep-0517/
> +
>  DEPENDS:append = " python3-pip-native"
>
>  # The directory where wheels should be written too. Build classes
>  # will ideally [cleandirs] this but we don't do that here in case
>  # a recipe wants to install prebuilt wheels.
> -PIP_INSTALL_DIST_PATH ?= "${WORKDIR}/dist"
> +PEP517_WHEEL_PATH ?= "${WORKDIR}/dist"
>
>  PIP_INSTALL_ARGS = "\
>      -vvvv \
> @@ -15,24 +18,24 @@ PIP_INSTALL_ARGS = "\
>      --prefix=${prefix} \
>  "
>
> -PIP_INSTALL_PYTHON = "python3"
> -PIP_INSTALL_PYTHON:class-native = "nativepython3"
> +PEP517_INSTALL_PYTHON = "python3"
> +PEP517_INSTALL_PYTHON:class-native = "nativepython3"
>
> -pip_install_wheel_do_install () {
> -    COUNT=$(find ${PIP_INSTALL_DIST_PATH} -name '*.whl' | wc -l)
> +python_pep517_do_install () {
> +    COUNT=$(find ${PEP517_WHEEL_PATH} -name '*.whl' | wc -l)
>      if test $COUNT -eq 0; then
> -        bbfatal No wheels found in ${PIP_INSTALL_DIST_PATH}
> +        bbfatal No wheels found in ${PEP517_WHEEL_PATH}
>      elif test $COUNT -gt 1; then
> -        bbfatal More than one wheel found in ${PIP_INSTALL_DIST_PATH}, this 
> should not happen
> +        bbfatal More than one wheel found in ${PEP517_WHEEL_PATH}, this 
> should not happen
>      fi
>
> -    nativepython3 -m pip install ${PIP_INSTALL_ARGS} 
> ${PIP_INSTALL_DIST_PATH}/*.whl
> +    nativepython3 -m pip install ${PIP_INSTALL_ARGS} 
> ${PEP517_WHEEL_PATH}/*.whl
>
>      cd ${D}
>      for i in ${D}${bindir}/* ${D}${sbindir}/*; do
>          if [ -f "$i" ]; then
> -            sed -i -e "1s,#!.*nativepython3,#!${USRBINPATH}/env 
> ${PIP_INSTALL_PYTHON}," $i
> -            sed -i -e "s:${PYTHON}:${USRBINPATH}/env\ 
> ${PIP_INSTALL_PYTHON}:g" $i
> +            sed -i -e "1s,#!.*nativepython3,#!${USRBINPATH}/env 
> ${PEP517_INSTALL_PYTHON}," $i
> +            sed -i -e "s:${PYTHON}:${USRBINPATH}/env\ 
> ${PEP517_INSTALL_PYTHON}:g" $i
>              sed -i -e "s:${STAGING_BINDIR_NATIVE}:${bindir}:g" $i
>              # Not everything we find may be Python, so ignore errors
>              nativepython3 -mpy_compile $(realpath --relative-to=${D} $i) || 
> true
> @@ -41,9 +44,9 @@ pip_install_wheel_do_install () {
>  }
>
>  # A manual do_install that just uses unzip for bootstrapping purposes. 
> Callers should DEPEND on unzip-native.
> -pip_install_wheel_do_bootstrap_install () {
> +python_pep517_do_bootstrap_install () {
>      install -d ${D}${PYTHON_SITEPACKAGES_DIR}
> -    unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/*.whl
> +    unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PEP517_WHEEL_PATH}/*.whl
>  }
>
>  EXPORT_FUNCTIONS do_install
> diff --git a/meta/classes/setuptools3.bbclass 
> b/meta/classes/setuptools3.bbclass
> index dcf3561b8d..556bc801af 100644
> --- a/meta/classes/setuptools3.bbclass
> +++ b/meta/classes/setuptools3.bbclass
> @@ -1,4 +1,4 @@
> -inherit setuptools3-base pip_install_wheel
> +inherit setuptools3-base python_pep517
>
>  # bdist_wheel builds in ./dist
>  #B = "${WORKDIR}/build"
> @@ -17,14 +17,14 @@ setuptools3_do_compile() {
>          STAGING_INCDIR=${STAGING_INCDIR} \
>          STAGING_LIBDIR=${STAGING_LIBDIR} \
>          ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
> -        bdist_wheel --verbose --dist-dir ${PIP_INSTALL_DIST_PATH} 
> ${SETUPTOOLS_BUILD_ARGS} || \
> +        bdist_wheel --verbose --dist-dir ${PEP517_WHEEL_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] += "${PIP_INSTALL_DIST_PATH}"
> +do_compile[cleandirs] += "${PEP517_WHEEL_PATH}"
>
>  setuptools3_do_install() {
> -        pip_install_wheel_do_install
> +        python_pep517_do_install
>  }
>
>  EXPORT_FUNCTIONS do_configure do_compile do_install
> diff --git a/meta/classes/setuptools_build_meta.bbclass 
> b/meta/classes/setuptools_build_meta.bbclass
> index 787fbd5f36..424be85608 100644
> --- a/meta/classes/setuptools_build_meta.bbclass
> +++ b/meta/classes/setuptools_build_meta.bbclass
> @@ -1,4 +1,4 @@
> -inherit pip_install_wheel setuptools3-base
> +inherit setuptools3-base python_pep517
>
>  DEPENDS += "python3-setuptools-native python3-wheel-native"
>
> @@ -12,8 +12,8 @@ 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}')"
> +    nativepython3 -c "from setuptools import build_meta; 
> build_meta.build_wheel('${PEP517_WHEEL_PATH}')"
>  }
> -do_compile[cleandirs] += "${PIP_INSTALL_DIST_PATH}"
> +do_compile[cleandirs] += "${PEP517_WHEEL_PATH}"
>
>  EXPORT_FUNCTIONS do_configure do_compile
> 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 1f14345d50..b12b8e42d7 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
> @@ -21,7 +21,7 @@ PYPI_PACKAGE = "flit"
>  PEP517_SOURCE_PATH = "${S}/flit_core"
>
>  do_install:class-native () {
> -    pip_install_wheel_do_bootstrap_install
> +    python_pep517_do_bootstrap_install
>  }
>
>  PACKAGES =+ "${PN}-tests"
> diff --git a/meta/recipes-devtools/python/python3-wheel_0.37.1.bb 
> b/meta/recipes-devtools/python/python3-wheel_0.37.1.bb
> index cf0d8191b4..a339e65824 100644
> --- a/meta/recipes-devtools/python/python3-wheel_0.37.1.bb
> +++ b/meta/recipes-devtools/python/python3-wheel_0.37.1.bb
> @@ -13,7 +13,7 @@ SRC_URI += " 
> file://0001-Backport-pyproject.toml-from-flit-backend-branch.patch"
>  DEPENDS:remove:class-native = "python3-pip-native"
>
>  do_install:class-native () {
> -    pip_install_wheel_do_bootstrap_install
> +    python_pep517_do_bootstrap_install
>
>      # pip install would normally generate [project.scripts] in ${bindir}
>      install -d ${D}/${bindir}
> --
> 2.25.1
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#163050): 
https://lists.openembedded.org/g/openembedded-core/message/163050
Mute This Topic: https://lists.openembedded.org/mt/89708482/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to