From: Tim Orling <ticotimo@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: [meta-python2][zeus][PATCH] python-backports-init: Add helper class and recipe
Date: Tue, 3 Dec 2019 07:40:16 -0800 [thread overview]
Message-ID: <20191203154016.24251-1-ticotimo@gmail.com> (raw)
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
reply other threads:[~2019-12-03 15:40 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191203154016.24251-1-ticotimo@gmail.com \
--to=ticotimo@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.