From 3a233b5efc5d16ed7d775128375e93a3457978f1 Mon Sep 17 00:00:00 2001 From: Tim Orling Date: Sat, 30 Nov 2019 14:50:31 -0800 Subject: python-backports-init: Add helper class and recipe Recipes that install in the backports namespace have a tendency to conflict in the installation of .../site-packages/backports/__init__.py Add a class and recipe to help avoid the conflict. Modify recipes that are affected: - python-backports-functools-lru-cache - python-backports-ssl - python-configparser Signed-off-by: Tim Orling --- classes/python-backports-init.bbclass | 7 ++++++ .../python-backports-functools-lru-cache_1.5.bb | 2 +- .../python-backports-init/backports/__init__.py | 5 +++++ .../python/python-backports-init_1.0.bb | 25 ++++++++++++++++++++++ .../python/python-backports-ssl_3.5.0.1.bb | 3 ++- .../python/python-configparser_3.8.1.bb | 2 +- 6 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 classes/python-backports-init.bbclass create mode 100644 recipes-devtools/python/python-backports-init/backports/__init__.py create mode 100644 recipes-devtools/python/python-backports-init_1.0.bb diff --git a/classes/python-backports-init.bbclass b/classes/python-backports-init.bbclass new file mode 100644 index 0000000..727bc4a --- /dev/null +++ b/classes/python-backports-init.bbclass @@ -0,0 +1,7 @@ +inherit python-dir + +RDEPENDS_${PN} += "python-backports-init" + +do_install_prepend() { + rm -rf $(find . -path "*/backports/__init__.py" -type f) +} diff --git a/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb b/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb index 825444f..11c1533 100644 --- a/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb +++ b/recipes-devtools/python/python-backports-functools-lru-cache_1.5.bb @@ -11,7 +11,7 @@ SRC_URI[sha256sum] = "9d98697f088eb1b0fa451391f91afb5e3ebde16bbdb272819fd091151f DEPENDS += "python-setuptools-scm-native" -inherit setuptools pypi +inherit setuptools pypi python-backports-init RDEPENDS_${PN} += "\ ${PYTHON_PN}-pickle \ diff --git a/recipes-devtools/python/python-backports-init/backports/__init__.py b/recipes-devtools/python/python-backports-init/backports/__init__.py new file mode 100644 index 0000000..febdb2f --- /dev/null +++ b/recipes-devtools/python/python-backports-init/backports/__init__.py @@ -0,0 +1,5 @@ +# A Python "namespace package" http://www.python.org/dev/peps/pep-0382/ +# This always goes inside of a namespace package's __init__.py + +from pkgutil import extend_path +__path__ = extend_path(__path__, __name__) diff --git a/recipes-devtools/python/python-backports-init_1.0.bb b/recipes-devtools/python/python-backports-init_1.0.bb new file mode 100644 index 0000000..29e712a --- /dev/null +++ b/recipes-devtools/python/python-backports-init_1.0.bb @@ -0,0 +1,25 @@ +SUMMARY = "Helper package to avoid backports/__init__.py conflicts" +DETAIL = "backports packages in python2 suffer from a flaw in the namespace \ +implementation and can conflict with each other. For OE purposes, at least \ +fix the conflicting install of .../site-packages/backports/__init__.py" +AUTHOR = "Tim Orling " +SECTION = "devel/python" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "file://backports/__init__.py" + +inherit python-dir + +# provide to avoid warnings +do_compile() { + : +} + +do_install() { + install -d ${D}${PYTHON_SITEPACKAGES_DIR}/backports + install ${WORKDIR}/backports/__init__.py ${D}${PYTHON_SITEPACKAGES_DIR}/backports/ +} + +FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/backports/__init__.py" diff --git a/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb b/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb index 45492da..8be1603 100644 --- a/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb +++ b/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb @@ -13,6 +13,7 @@ SRC_URI[md5sum] = "c03fc5e2c7b3da46b81acf5cbacfe1e6" SRC_URI[sha256sum] = "502ad98707319f4a51fa2ca1c677bd659008d27ded9f6380c79e8932e38dcdf2" PYPI_PACKAGE = "backports.ssl_match_hostname" -inherit pypi setuptools + +inherit pypi setuptools python-backports-init RDEPENDS_${PN} += "${PYTHON_PN}-pkgutil" diff --git a/recipes-devtools/python/python-configparser_3.8.1.bb b/recipes-devtools/python/python-configparser_3.8.1.bb index 69f045d..859dbd7 100644 --- a/recipes-devtools/python/python-configparser_3.8.1.bb +++ b/recipes-devtools/python/python-configparser_3.8.1.bb @@ -1,2 +1,2 @@ -inherit setuptools +inherit setuptools python-backports-init require python-configparser.inc -- cgit 1.2.3-korg