On Tue, Mar 1, 2022 at 1:42 AM Konrad Weihmann <[email protected]>
wrote:

> - replace python3 prefix when guessing the wheel name
>   as there are still plenty of recipes out there that do use
>   python3 prefixes
> - remove all previously generated wheels matching the glob
>   to avoid installing any outdated blob
> - don't use PV in glob, as PV doesn't necessarily align with the
>   version used inside of the setuptools configuration.
>   this will avoid having the user set PYPA_WHEEL in a lot
>   of recipes
> - respect SETUPTOOLS_SETUP_PATH in PIP_INSTALL_DIST_PATH
>   and use B as a fallback only (in case this class is inherited
>   without setuptools3 class being there as well).
>   recipes like python3-smbus run in a subfolder of the
>   workspace and were failing in before this adjustment
>
> Thank you. These are patterns that were never seen during development, but
are painfully obvious now.
The wheel spec (PEP-427) allows for, for instance, dev/pre-release wheels
which we see with the
python3-dtc recipe from meta-virtualization.


> Signed-off-by: Konrad Weihmann <[email protected]>

Reviewed-by: Tim Orling <[email protected]>

>

---
> v3: remove in prepend to compile, not in install for obvious reasons
> v2: fix python3 prefix string
>
>  meta/classes/pip_install_wheel.bbclass | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/meta/classes/pip_install_wheel.bbclass
> b/meta/classes/pip_install_wheel.bbclass
> index 5b7e5cd706..789c25b68c 100644
> --- a/meta/classes/pip_install_wheel.bbclass
> +++ b/meta/classes/pip_install_wheel.bbclass
> @@ -1,12 +1,13 @@
>  DEPENDS:append = " python3-pip-native"
>
>  def guess_pip_install_package_name(d):
> +    import re
>      '''https://www.python.org/dev/peps/pep-0491/#escaping-and-unicode'''
> -    return (d.getVar('PYPI_PACKAGE') or d.getVar('BPN')).replace('-', '_')
> +    return (d.getVar('PYPI_PACKAGE') or re.sub(r"^python3-", "",
> d.getVar('BPN')).replace('-', '_'))
>
>  PIP_INSTALL_PACKAGE ?= "${@guess_pip_install_package_name(d)}"
> -PIP_INSTALL_DIST_PATH ?= "${B}/dist"
> -PYPA_WHEEL ??=
> "${PIP_INSTALL_DIST_PATH}/${PIP_INSTALL_PACKAGE}-${PV}-*.whl"
> +PIP_INSTALL_DIST_PATH ?= "${@d.getVar('SETUPTOOLS_SETUP_PATH') or
> d.getVar('B')}/dist"
> +PYPA_WHEEL ??= "${PIP_INSTALL_DIST_PATH}/${PIP_INSTALL_PACKAGE}-*-*.whl"
>
>  PIP_INSTALL_ARGS ?= "\
>      -vvvv \
> @@ -45,4 +46,9 @@ pip_install_wheel_do_install () {
>      done
>  }
>
> +do_compile:prepend() {
> +    # cleanup previously generated files
> +    rm -f ${PYPA_WHEEL}
> +}
> +
>  EXPORT_FUNCTIONS do_install
> --
> 2.25.1
>
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#162559): 
https://lists.openembedded.org/g/openembedded-core/message/162559
Mute This Topic: https://lists.openembedded.org/mt/89472354/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to