diff options
author | Ross Burton <ross@burtonini.com> | 2022-03-10 11:40:33 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-03-11 06:56:01 +0000 |
commit | 5331d29a898da61ce2df78bc1ce36dc23dcc0017 (patch) | |
tree | 22d30f9233a7997f5ca311b43b49e71a8186e7bc | |
parent | 7f1c3b4202807ea612283a16954ef0434d98bc54 (diff) | |
download | poky-5331d29a898da61ce2df78bc1ce36dc23dcc0017.tar.gz |
pip_install_wheel: add a generic do_install for bootstrapping
Several recipes are duplicating the same bootstrap logic for installing
a wheel without using any tools. Add an implementation to
pip_install_wheel to centralise the code, and remove the duplicated code
from the following recipes:
- python3-flit-core
- python3-pip
- python3-setuptools
- python3-wheel
(From OE-Core rev: d5d702a2cd06f863340f8e4cdce0904c9d86384d)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
5 files changed, 10 insertions, 11 deletions
diff --git a/meta/classes/pip_install_wheel.bbclass b/meta/classes/pip_install_wheel.bbclass index 3861dae75a..29cd544aa3 100644 --- a/meta/classes/pip_install_wheel.bbclass +++ b/meta/classes/pip_install_wheel.bbclass | |||
@@ -40,4 +40,10 @@ pip_install_wheel_do_install () { | |||
40 | done | 40 | done |
41 | } | 41 | } |
42 | 42 | ||
43 | # A manual do_install that just uses unzip for bootstrapping purposes. Callers should DEPEND on unzip-native. | ||
44 | pip_install_wheel_do_bootstrap_install () { | ||
45 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | ||
46 | unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/*.whl | ||
47 | } | ||
48 | |||
43 | EXPORT_FUNCTIONS do_install | 49 | EXPORT_FUNCTIONS do_install |
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 55ce256550..c6bc24555e 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 | |||
@@ -22,8 +22,7 @@ PEP517_SOURCE_PATH = "${S}/flit_core" | |||
22 | PIP_INSTALL_PACKAGE = "flit_core" | 22 | PIP_INSTALL_PACKAGE = "flit_core" |
23 | 23 | ||
24 | do_install:class-native () { | 24 | do_install:class-native () { |
25 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | 25 | pip_install_wheel_do_bootstrap_install |
26 | unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/flit_core*.whl | ||
27 | } | 26 | } |
28 | 27 | ||
29 | PACKAGES =+ "${PN}-tests" | 28 | PACKAGES =+ "${PN}-tests" |
diff --git a/meta/recipes-devtools/python/python3-pip_22.0.3.bb b/meta/recipes-devtools/python/python3-pip_22.0.3.bb index 50cc8206de..bce3b68861 100644 --- a/meta/recipes-devtools/python/python3-pip_22.0.3.bb +++ b/meta/recipes-devtools/python/python3-pip_22.0.3.bb | |||
@@ -19,9 +19,7 @@ SRC_URI += "file://reproducible.patch" | |||
19 | SRC_URI[sha256sum] = "f29d589df8c8ab99c060e68ad294c4a9ed896624f6368c5349d70aa581b333d0" | 19 | SRC_URI[sha256sum] = "f29d589df8c8ab99c060e68ad294c4a9ed896624f6368c5349d70aa581b333d0" |
20 | 20 | ||
21 | do_install:class-native() { | 21 | do_install:class-native() { |
22 | # Bootstrap to prevent dependency loop in python3-pip-native | 22 | pip_install_wheel_do_bootstrap_install |
23 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | ||
24 | unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/*.whl | ||
25 | 23 | ||
26 | # pip install would normally generate [console_scripts] in ${bindir} | 24 | # pip install would normally generate [console_scripts] in ${bindir} |
27 | install -d ${D}/${bindir} | 25 | install -d ${D}/${bindir} |
diff --git a/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb b/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb index 9d2c2fd744..7cd67b85f9 100644 --- a/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb +++ b/meta/recipes-devtools/python/python3-setuptools_59.5.0.bb | |||
@@ -22,9 +22,7 @@ DEPENDS:remove:class-native = "python3-pip-native python3-setuptools-native" | |||
22 | DEPENDS:append:class-native = " unzip-native" | 22 | DEPENDS:append:class-native = " unzip-native" |
23 | 23 | ||
24 | do_install:class-native() { | 24 | do_install:class-native() { |
25 | # Bootstrap to prevent dependency loop in python3-pip-native | 25 | pip_install_wheel_do_bootstrap_install |
26 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | ||
27 | unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/*.whl | ||
28 | } | 26 | } |
29 | 27 | ||
30 | RDEPENDS:${PN} = "\ | 28 | RDEPENDS:${PN} = "\ |
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 83a7c986a8..cf0d8191b4 100644 --- a/meta/recipes-devtools/python/python3-wheel_0.37.1.bb +++ b/meta/recipes-devtools/python/python3-wheel_0.37.1.bb | |||
@@ -13,9 +13,7 @@ SRC_URI += " file://0001-Backport-pyproject.toml-from-flit-backend-branch.patch" | |||
13 | DEPENDS:remove:class-native = "python3-pip-native" | 13 | DEPENDS:remove:class-native = "python3-pip-native" |
14 | 14 | ||
15 | do_install:class-native () { | 15 | do_install:class-native () { |
16 | # We need to bootstrap python3-wheel-native | 16 | pip_install_wheel_do_bootstrap_install |
17 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | ||
18 | unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PIP_INSTALL_DIST_PATH}/*.whl | ||
19 | 17 | ||
20 | # pip install would normally generate [project.scripts] in ${bindir} | 18 | # pip install would normally generate [project.scripts] in ${bindir} |
21 | install -d ${D}/${bindir} | 19 | install -d ${D}/${bindir} |