* [meta-python2][zeus][PATCH] python-backports-init: Add helper class and recipe
@ 2019-12-03 15:40 Tim Orling
0 siblings, 0 replies; only message in thread
From: Tim Orling @ 2019-12-03 15:40 UTC (permalink / raw)
To: openembedded-devel
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 <ticotimo@gmail.com>
---
classes/python-backports-init.bbclass | 7 ++++++
...ython-backports-functools-lru-cache_1.5.bb | 2 +-
.../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 00000000..727bc4a8
--- /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 825444ff..11c15338 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 00000000..febdb2f8
--- /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 00000000..29e712a6
--- /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 <ticotimo@gmail.com>"
+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 45492daa..8be16039 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 69f045db..859dbd78 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
--
2.24.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2019-12-03 15:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-03 15:40 [meta-python2][zeus][PATCH] python-backports-init: Add helper class and recipe Tim Orling
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.