[06/19] pip_install_wheel.bbclass: add helper class

Message ID 9104cb801378efce74bc32462816fe885b4bcb7f.1645405471.git.tim.orling@konsulko.com
State Accepted, archived
Commit 32a61afde0e7d8df6634b88525d8c3e8c6c3516e
Headers show
Series [01/19] python3-wheel: move 0.37.0 from meta-python | expand

Commit Message

Tim Orling Feb. 21, 2022, 1:27 a.m. UTC
Provide a helper class to use pip to install wheels built by either
bdist_wheel or a PEP-517 backend.

By passings --no-deps and --no-index we avoid finicky dependency
checking (pip expects wheels in its cache) and avoid trying to fetch
wheels from pypi.org. This is basically the same behavior we have now,
the dependencies should be declared in the recipe.

[YOCTO #14638]

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
 meta/classes/pip_install_wheel.bbclass | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100644 meta/classes/pip_install_wheel.bbclass

Patch

diff --git a/meta/classes/pip_install_wheel.bbclass b/meta/classes/pip_install_wheel.bbclass
new file mode 100644
index 00000000000..e6a6801227f
--- /dev/null
+++ b/meta/classes/pip_install_wheel.bbclass
@@ -0,0 +1,18 @@ 
+DEPENDS:append = " python3-pip-native"
+
+PIP_INSTALL_PACKAGE ?= "${PYPI_PACKAGE}"
+PIP_INSTALL_DIST_PATH ?= "${B}/dist"
+PYPA_WHEEL ??= "${PIP_INSTALL_DIST_PATH}/${PIP_INSTALL_PACKAGE}-${PV}-*.whl"
+
+pip_install_wheel_do_install:prepend () {
+    install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+}
+
+export PYPA_WHEEL
+
+pip_install_wheel_do_install () {
+    nativepython3 -m pip install -vvvv --no-deps --no-index --target ${D}${PYTHON_SITEPACKAGES_DIR} ${PYPA_WHEEL} ||
+    bbfatal_log "Failed to pip install wheel. Check the logs."
+}
+
+EXPORT_FUNCTIONS do_install