reset upstream subtrees to HEAD

Reset the following subtrees on HEAD:
  poky: 8217b477a1(master)
  meta-xilinx: 64aa3d35ae(master)
  meta-openembedded: 0435c9e193(master)
  meta-raspberrypi: 490a4441ac(master)
  meta-security: cb6d1c85ee(master)

Squashed patches:
  meta-phosphor: drop systemd 239 patches
  meta-phosphor: mrw-api: use correct install path

Change-Id: I268e2646d9174ad305630c6bbd3fbc1a6105f43d
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-openembedded/meta-python/README b/meta-openembedded/meta-python/README
index 9c10c78..705b035 100644
--- a/meta-openembedded/meta-python/README
+++ b/meta-openembedded/meta-python/README
@@ -13,12 +13,12 @@
 
 	URI: git://git.openembedded.org/openembedded-core
 	layers: meta
-	branch: thud
+	branch: master
 	revision: HEAD
 
 	URI: git://git.openembedded.org/meta-openembedded
 	layers: meta-oe
-	branch: thud
+	branch: master
 	revision: HEAD
 
 Please follow the recommended setup procedures of your OE distribution.
@@ -35,13 +35,15 @@
 before posting.
 
 Send pull requests to openembedded-devel@lists.openembedded.org with
-'[meta-python][thud]' in the subject.
+'[meta-python]' in the subject.
 
 When sending single patches, please use something like: 
-'git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix=meta-python][thud][PATCH'
+'git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix=meta-python][PATCH'
 
 Maintenance
 -------------------------
 
-Thud Maintainers: Armin Kuster <akuster808@gmail.com>
+Layer Maintainers:
+        Tim "moto-timo" Orling <TicoTimo@gmail.com>
+        Derek Straka <derek@asterius.io>
 
diff --git a/meta-openembedded/meta-python/classes/bandit.bbclass b/meta-openembedded/meta-python/classes/bandit.bbclass
new file mode 100644
index 0000000..dc1041e
--- /dev/null
+++ b/meta-openembedded/meta-python/classes/bandit.bbclass
@@ -0,0 +1,63 @@
+# Class to scan Python code for security issues, using Bandit.
+#
+# $ bitbake python-foo -c bandit
+#
+# Writes the report to $DEPLOY_DIR/bandit/python-foo.html.
+# No output if no issues found, a warning if issues found.
+#
+# https://github.com/PyCQA/bandit
+
+# Default location of sources, based on standard distutils
+BANDIT_SOURCE ?= "${S}/build"
+
+# The report format to use.
+# https://bandit.readthedocs.io/en/latest/formatters/index.html
+BANDIT_FORMAT ?= "html"
+
+# Whether a scan should be done every time the recipe is built.
+#
+# By default the scanning needs to be done explicitly, but by setting BANDIT_AUTO
+# to 1 the scan will be done whenever the recipe it built.  Note that you
+# shouldn't set BANDIT_AUTO to 1 globally as it will then try to scan every
+# recipe, including non-Python recipes, causing circular loops.
+BANDIT_AUTO ?= "0"
+
+# Whether Bandit finding issues results in a warning (0) or an error (1).
+BANDIT_FATAL ?= "0"
+
+do_bandit[depends] = "python3-bandit-native:do_populate_sysroot"
+python do_bandit() {
+    import os, subprocess
+    try:
+        report = d.expand("${DEPLOY_DIR}/bandit/${PN}-${PV}.${BANDIT_FORMAT}")
+        os.makedirs(os.path.dirname(report), exist_ok=True)
+
+        args = ("bandit",
+                "--format", d.getVar("BANDIT_FORMAT"),
+                "--output", report,
+                "-ll",
+                "--recursive", d.getVar("BANDIT_SOURCE"))
+        subprocess.check_output(args, stderr=subprocess.STDOUT)
+        bb.note("Bandit found no issues (report written to %s)" % report)
+    except subprocess.CalledProcessError as e:
+        if e.returncode == 1:
+            if oe.types.boolean(d.getVar("BANDIT_FATAL")):
+                bb.error("Bandit found issues (report written to %s)" % report)
+            else:
+                bb.warn("Bandit found issues (report written to %s)" % report)
+        else:
+            bb.error("Bandit failed:\n" + e.output.decode("utf-8"))
+}
+
+python() {
+    before = "do_build"
+    after = "do_compile"
+
+    if oe.types.boolean(d.getVar("BANDIT_AUTO")):
+        bb.build.addtask("do_bandit", before, after, d)
+    else:
+        bb.build.addtask("do_bandit", None, after, d)
+}
+
+# TODO: store report in sstate
+# TODO: a way to pass extra args or .bandit file, basically control -ll
diff --git a/meta-openembedded/meta-python/conf/layer.conf b/meta-openembedded/meta-python/conf/layer.conf
index 321d51b..fb5cda5 100644
--- a/meta-openembedded/meta-python/conf/layer.conf
+++ b/meta-openembedded/meta-python/conf/layer.conf
@@ -14,6 +14,6 @@
 
 LAYERDEPENDS_meta-python = "core openembedded-layer"
 
-LAYERSERIES_COMPAT_meta-python = "thud"
+LAYERSERIES_COMPAT_meta-python = "thud warrior"
 
 LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
index 05fbae4..e9eebe8 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
@@ -7,7 +7,7 @@
 DEPENDS += "${PYTHON_PN}-gevent"
 RDEPENDS_${PN} += "${PYTHON_PN}-gevent ${PYTHON_PN}-msgpack ${PYTHON_PN}-gsocketpool"
 
-SRC_URI[md5sum] = "acde1f346411997d76ab89790a356823"
-SRC_URI[sha256sum] = "e8ddd47e7a2fb2d3b203fcc522443ee5be56c8f7e2c6d915c047445951cef1fb"
+SRC_URI[md5sum] = "8d97961051422f3de315613434982d3b"
+SRC_URI[sha256sum] = "3589fd127482e291b1ec314d6f0e55cc13311c12932ace356d6178ea1ca28f6a"
 
 inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.17.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb
rename to meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.17.bb
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb b/meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.17.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb
rename to meta-openembedded/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.17.bb
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-image-base.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-image-base.bb
new file mode 100644
index 0000000..81081e6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-image-base.bb
@@ -0,0 +1,7 @@
+SUMMARY = "meta-python build test image"
+
+IMAGE_INSTALL = "packagegroup-core-boot"
+
+LICENSE = "MIT"
+
+inherit core-image
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb
new file mode 100644
index 0000000..cc75fe6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-image.bb
@@ -0,0 +1,6 @@
+require  meta-python-image-base.bb
+
+SUMMARY = "meta-python build test image"
+
+IMAGE_INSTALL += "packagegroup-meta-python \
+                  packagegroup-meta-python3"
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
new file mode 100644
index 0000000..7ee1535
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
@@ -0,0 +1,5 @@
+require  meta-python-image-base.bb
+
+SUMMARY = "meta-python ptest test image"
+
+IMAGE_INSTALL += "packagegroup-meta-python-ptest"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
new file mode 100644
index 0000000..82cda58
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -0,0 +1,150 @@
+SUMMARY = "Meta-oe ptest packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+    packagegroup-meta-python \
+    packagegroup-meta-python3 \
+'
+
+RDEPENDS_packagegroup-meta-python = "\
+    packagegroup-meta-python-extended \
+    packagegroup-meta-python-connectivity \
+"
+
+RDEPENDS_packagegroup-meta-python3 = "\
+    packagegroup-meta-python3-extended \
+    packagegroup-meta-python3-connectivity \
+"
+
+RDEPENDS_packagegroup-meta-python = "\
+    python-psutil python-certifi python-flask python-pyroute2 python-pyopenssl python-pylint \
+    python-semver python-wrapt python-networkx python-behave python-dominate python-flask-user \
+    python-attrs python-humanize python-six python-flask-login python-zopeinterface python-sijax \
+    python-pyinotify python-stevedore python-pyjwt python-webdav python-twisted python-flask-sijax \
+    python-functools32 python-javaobj-py3 python-pygpgme python-future python-attr \
+    python-flask-xstatic python-m2crypto python-hyperlink python-imaging python-idna python-jinja2 \
+    python-can python-flask-bcrypt python-requests python-paste python-flask-script python-serpent \
+    python-cryptography python-pysmi python-xlrd python-appdirs python-jsonpatch python-bcrypt \
+    python-ndg-httpsclient python-pytest python-linecache2 python-visitor python-backports-abc \
+    python-setuptools-scm python-evdev python-pyjks python-jsonpointer python-cheetah python-gevent \
+    python-smbus python-sqlalchemy python-scrypt python-werkzeug python-anyjson python-pexpect \
+    python-robotframework-seriallibrary python-pyalsaaudio python-pytest-helpers-namespace \
+    python-alembic python-flask-pymongo python-slip-dbus python-pydbus python-automat python-rfc3987 \
+    python-tzlocal python-backports-ssl python-subprocess32 python-asn1crypto python-pybind11 \
+    python-ptyprocess python-babel python-passlib python-oauthlib python-sdnotify \
+    python-lazy-object-proxy python-cryptography-vectors python-crcmod python-pyusb python-vobject \
+    python-webcolors python-pyparsing python-beautifulsoup4 python-cffi python-tornado-redis \
+    python-itsdangerous python-pyasn1-modules python-netaddr python-vcversioner \
+    python-sh python-greenlet python-paho-mqtt python-traceback2 python-gdata python-dbusmock \
+    python-whoosh python-lockfile python-isort python-wtforms python-feedparser python-flask-restful \
+    python-pysnmp python-flask-babel python-pytest-tempdir python-flask-nav python-pyzmq python-pyyaml \
+    python-protobuf python-pluggy python-jsonschema python-msgpack python-pandas \
+    python-periphery python-pint python-pycryptodome python-yappi python-pycrypto python-pretend \
+    python-pyserial python-pyiface python-docutils python-grpcio-tools python-django-south \
+    python-backports-functools-lru-cache python-py python-click python-flask-migrate \
+    python-pyudev python-pystache python-blinker python-prompt-toolkit python-lxml \
+    python-unidiff python-inflection python-twofish python-prettytable python-webencodings \
+    python-mock python-pyexpect python-dnspython python-pysocks python-pynetlinux \
+    python-daemon python-djangorestframework python-typing python-monotonic python-sparts \
+    python-enum34 python-pyperclip python-flask-uploads python-pbr python-parse python-pyflakes \
+    python-pyhamcrest python-mako python-incremental python-tornado python-xstatic-font-awesome \
+    python-cmd2 python-strict-rfc3339 python-pycodestyle python-xstatic python-snakefood \
+    python-pybluez python-flask-navigation python-pyfirmata python-pymongo python-pysqlite \
+    python-progress python-flask-sqlalchemy python-pymisp python-pip python-ujson python-ply \
+    python-pep8 python-dateutil python-pycparser python-daemonize python-astroid python-pyrex \
+    python-markupsafe python-pytest-runner python-grpcio python-mccabe python-pytz python-selectors34 \
+    python-cython python-chardet python-editor python-flask-bootstrap python-html5lib \
+    python-singledispatch python-redis python-flask-mail python-funcsigs python-snimpy python-pyasn1 \
+    python-decorator python-urllib3 python-feedformatter python-matplotlib python-iso8601 \
+    python-numeric python-robotframework python-django python-simplejson python-wcwidth \
+    python-configparser python-epydoc python-intervals python-speaklater \
+    python-aws-iot-device-sdk-python python-constantly python-bitarray python-flask-wtf \
+    python-parse-type python-ipaddress python-dbus \
+    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "python-pam pamela", "", d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python-systemd", "", d)} \
+"
+
+RDEPENDS_packagegroup-meta-python3 = "\
+    python3-pyserial python3-gevent python3-alembic python3-robotframework-seriallibrary \
+    python3-rfc3987 python3-xlrd python3-bandit python3-constantly python3-inflection \
+    python3-javaobj-py3 python3-sh python3-pycrypto python3-pyasn1 python3-pydbus python3-wtforms \
+    python3-pybluez python3-babel python3-parse-type python3-bitarray python3-django-south \
+    python3-pyusb python3-prctl python3-jinja2 python3-werkzeug python3-pyjks python3-requests-ftp \
+    python3-behave python3-pyparsing python3-pyyaml python3-tzlocal python3-pretend python3-stevedore \
+    python3-sijax python3-langtable python3-requests-file python3-crcmod python3-robotframework \
+    python3-pint python3-coverage python3-iso8601 python3-ndg-httpsclient python3-yappi python3-twofish \
+    python3-speaklater python3-smbus python3-djangorestframework python3-msgpack python3-jsonpointer \
+    python3-flask-script python3-cassandra-driver python3-cython python3-ujson python3-aws-iot-device-sdk-python \
+    python3-pytest-runner python3-pyiface python3-flask-login python3-markupsafe python3-setuptools-scm \
+    python3-semver python3-sdnotify python3-flask-user python3-tornado python3-jsonpatch python3-pexpect \
+    python3-progress python3-jsonschema python3-xstatic python3-pyroute2 python3-idna python3-sqlalchemy \
+    python3-urllib3 python3-flask-mail python3-asn1crypto python3-pyinotify python3-intervals python3-pyperclip \
+    python3-flask-bootstrap python3-pyudev python3-decorator python3-pybind11 python3-pluggy python3-redis \
+    python3-pycryptodome python3-passlib python3-dominate python3-ply python3-ntplib python3-serpent python3-wrapt \
+    python3-attrs python3-appdirs python3-isort python3-evdev python3-incremental python3-click python3-flask-nav \
+    python3-webcolors python3-dateutil python3-blinker python3-hyperlink python3-lxml python3-pylint \
+    python3-flask-migrate python3-pytest-tempdir python3-flask-restful python3-feedformatter \
+    python3-pyasn1-modules python3-scapy python3-html5lib python3-dnspython python3-automat \
+    python3-itsdangerous python3-pandas python3-pyfirmata python3-protobuf  \
+    python3-flask-babel python3-anyjson python3-flask-xstatic python3-multidict python3-prompt-toolkit \
+    python3-periphery python3-greenlet python3-pytz python3-pyexpect python3-zopeinterface \
+    python3-bcrypt python3-xstatic-font-awesome python3-m2crypto python3-parse python3-attr \
+    python3-beautifulsoup4 python3-pycodestyle python3-oauthlib python3-grpcio python3-scrypt \
+    python3-pyjwt python3-astroid python3-flask-pymongo python3-wcwidth python3-lazy-object-proxy \
+    python3-websockets python3-pyzmq python3-pytest python3-chardet python3-vcversioner python3-whoosh \
+    python3-pymisp python3-certifi python3-psutil python3-flask-sqlalchemy python3-humanize \
+    python3-grpcio-tools python3-configparser python3-strict-rfc3339 python3-paho-mqtt \
+    python3-pytest-helpers-namespace python3-flask python3-flask-wtf python3-visitor python3-pynetlinux \
+    python3-requests python3-cryptography-vectors python3-spidev python3-pid python3-pymongo \
+    python3-future python3-django python3-unidiff python3-webencodings python3-can python3-pyalsaaudio \
+    python3-flask-sijax python3-cryptography python3-twisted python3-netaddr python3-pycparser \
+    python3-flask-uploads python3-pysocks python3-cffi python3-editor python3-ptyprocess \
+    python3-pyopenssl python3-ordered-set python3-simplejson python3-py \
+    ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-systemd", "", d)} \
+"
+
+RDEPENDS_packagegroup-meta-python-extended = "\
+    python-pyephem \
+    python-cson \
+    python-pywbem \
+    python-pyparted \
+"
+
+RDEPENDS_packagegroup-meta-python3-extended = "\
+    python3-pykickstart \
+    python3-meh \
+    python3-blivet \
+    python3-pywbem \
+    python3-pyparted \
+    ${@bb.utils.contains("DISTRO_FEATURES", "x11", "python3-blivetgui", "", d)} \
+"
+
+RDEPENDS_packagegroup-meta-python-connectivity = "\
+    python-pyro4 \
+    python-pytun \
+    python-mprpc \
+    python-thrift \
+    python-txws \
+    python-pyconnman \
+    python-gsocketpool \
+"
+
+RDEPENDS_packagegroup-meta-python3-connectivity = "\
+    python3-pytun \
+    python3-mprpc \
+    python3-pyconnman \
+    python3-gsocketpool \
+"
+
+RDEPENDS_packagegroup-meta-python-ptest = "\
+    python-pygpgme \
+    python-cryptography \
+    "
+
+RDEPENDS_packagegroup-meta-python3-ptest = "\
+    python3-cryptography \
+    "
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
new file mode 100644
index 0000000..2b3f3fb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
+HOMEPAGE = "https://gyp.gsrc.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
+SECTION = "devel"
+
+SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https"
+SRCREV = "8bee09f4a57807136593ddc906b0b213c21f9014"
+
+S = "${WORKDIR}/git"
+PV = "0.1+git${SRCPV}"
+
+inherit setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
index fa73ea5..d0b5697 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-attrs.inc
@@ -9,6 +9,6 @@
 inherit pypi
 
 RDEPENDS_${PN}_class-target += " \
-    ${PYTHON_PN}-cryptography \
+    ${PYTHON_PN}-crypt \
     ${PYTHON_PN}-ctypes \
-"    
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc
new file mode 100644
index 0000000..52ae318
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools.inc
@@ -0,0 +1,16 @@
+SUMMARY = "Extensible memoizing collections and decorators"
+HOMEPAGE = "https://github.com/tkem/cachetools"
+DESCRIPTION = "This module provides various memoizing \
+collections and decorators, including variants of the \
+Python 3 Standard Library @lru_cache function decorator."
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=27f7518eb6f7dc686d0f953b2f28dae5"
+
+inherit pypi
+
+SRC_URI[md5sum] = "a7b1c5eb5390d50067c62d7bcb4e875c"
+SRC_URI[sha256sum] = "9efcc9fab3b49ab833475702b55edd5ae07af1af7a4c627678980b45e459c460"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_3.1.0.bb
new file mode 100644
index 0000000..8c12ad0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cachetools_3.1.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-cachetools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
index c81545b..60bc46f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-click.inc
@@ -6,10 +6,10 @@
 sensible defaults out of the box."
 HOMEPAGE = "http://click.pocoo.org/"
 LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=09e8b7869f94ba9e9a7b260d53c65dab"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c13ed890b210a882c1778216694c98c7"
 
-SRC_URI[md5sum] = "fc4cc00c4863833230d3af92af48abd4"
-SRC_URI[sha256sum] = "f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
+SRC_URI[md5sum] = "7f53d50f7b7373ebc7963f9ff697450a"
+SRC_URI[sha256sum] = "5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"
 
 UPSTREAM_CHECK_REGEX = "click/(?P<pver>\d+(\.\d+)+)/"
 
@@ -21,3 +21,5 @@
     "
 
 BBCLASSEXTEND = "native nativesdk"
+
+PYPI_PACKAGE = "Click"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-click_6.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-click_7.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-click_6.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-click_7.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
index d1e254b..04173f0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
@@ -8,8 +8,8 @@
     ${PYTHON_PN}-cryptography \
 "
 
-SRC_URI[md5sum] = "294d44f32885a6b97d5f9cdd7ffc73a3"
-SRC_URI[sha256sum] = "356a2ded84ae379e556515eec9b68dd74957651a38465d10605bb9fbae280f15"
+SRC_URI[md5sum] = "e7f44b1678e3071e2044a32f7c353d14"
+SRC_URI[sha256sum] = "829d43e8066056de8ea7b8ad311db79e47d8d658e23d5f5fc4b0245a1b3baa74"
 
 PYPI_PACKAGE = "cryptography_vectors"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_2.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
index dbbfe2c..2c1ac1c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography.inc
@@ -10,14 +10,13 @@
     ${PYTHON_PN}-six \
 "
 
-SRC_URI[md5sum] = "a0f3f563ab1c5c3bc02fae8d4aa3ad16"
-SRC_URI[sha256sum] = "c132bab45d4bd0fff1d3fe294d92b0a6eb8404e93337b3127bdec9f21de117e6"
+SRC_URI[md5sum] = "464f180ff64622760cca7167f97b3ff4"
+SRC_URI[sha256sum] = "e85b410885addaeb31a867eabcefc9ef4a7e904ad45eac9e60a763a54b244626"
 
 RDEPENDS_${PN} += " \
     ${PYTHON_PN}-cffi \
     ${PYTHON_PN}-idna \
     ${PYTHON_PN}-asn1crypto \
-    ${PYTHON_PN}-pycparser \
     ${PYTHON_PN}-setuptools \
     ${PYTHON_PN}-six \
 "
@@ -27,7 +26,6 @@
     ${PYTHON_PN}-idna \
     ${PYTHON_PN}-numbers \
     ${PYTHON_PN}-asn1crypto \
-    ${PYTHON_PN}-pycparser \
     ${PYTHON_PN}-setuptools \
     ${PYTHON_PN}-six \
     ${PYTHON_PN}-threading \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_2.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc
index 13513f2..bc89d10 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent.inc
@@ -4,8 +4,9 @@
 HOMEPAGE = "http://www.gevent.org"
 LICENSE = "MIT & Python-2.0 & BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65 \
-                    file://NOTICE;md5=5966cd2c6582656d28ab3c33da3860f8 \
-                    file://deps/libev/LICENSE;md5=d6ad416afd040c90698edcdf1cbee347"
+                    file://NOTICE;md5=18108df3583462cafd457f024b9b09b5 \
+                    file://deps/libev/LICENSE;md5=d6ad416afd040c90698edcdf1cbee347 \
+                    "
 DEPENDS += "libevent"
 DEPENDS += "${PYTHON_PN}-greenlet"
 RDEPENDS_${PN} = "${PYTHON_PN}-greenlet \
@@ -17,10 +18,11 @@
 
 SRC_URI_append = " \
     file://libev-conf.patch;patch=1;pnum=1 \
+    file://0002-setup.py-do-not-query-for-include-dir.patch \
 "
 
-SRC_URI[md5sum] = "7f0baf355384fe5ff2ecf66853422554"
-SRC_URI[sha256sum] = "4791c8ae9c57d6f153354736e1ccab1e2baf6c8d9ae5a77a9ac90f41e2966b2d"
+SRC_URI[md5sum] = "6b9dd98917061803d9158e5258b8f412"
+SRC_URI[sha256sum] = "1eb7fa3b9bd9174dfe9c3b59b7a09b768ecd496debfc4976a9530a3e15c990d1"
 
 # The python-gevent has no autoreconf ability
 # and the logic for detecting a cross compile is flawed
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/0002-setup.py-do-not-query-for-include-dir.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/0002-setup.py-do-not-query-for-include-dir.patch
new file mode 100644
index 0000000..7536b71
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent/0002-setup.py-do-not-query-for-include-dir.patch
@@ -0,0 +1,26 @@
+From a53ed6b2f967a5f95e69d51cad3f8c120d7df65b Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 7 Feb 2019 15:21:15 +0100
+Subject: [PATCH] setup.py: do not query for include dir
+
+As this will return the native python directory erroneously.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 86d6c5a..5d22291 100755
+--- a/setup.py
++++ b/setup.py
+@@ -52,7 +52,7 @@ from _setupares import ARES
+ # Get access to the greenlet header file.
+ # The sysconfig dir is not enough if we're in a virtualenv
+ # See https://github.com/pypa/pip/issues/4610
+-include_dirs = [sysconfig.get_path("include")]
++include_dirs = []
+ venv_include_dir = os.path.join(sys.prefix, 'include', 'site',
+                                 'python' + sysconfig.get_python_version())
+ venv_include_dir = os.path.abspath(venv_include_dir)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_1.4.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-gevent_1.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc
index fcd81f6..c7c656c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet.inc
@@ -3,7 +3,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=03143d7a1a9f5d8a0fee825f24ca9c36 \
                     file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
 
-SRC_URI[md5sum] = "a87b6028c3b742b210bf5973939db595"
-SRC_URI[sha256sum] = "f1cc268a15ade58d9a0c04569fe6613e19b8b0345b64453064e2c3c6d79051af"
+SRC_URI[md5sum] = "10fa304f673fc18b28fa6d8c6658cb80"
+SRC_URI[sha256sum] = "9416443e219356e3c31f1f918a91badf2e37acf297e2fa13d24d1cc2380f8fbc"
 
 inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.15.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.14.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.15.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc
index 23d25f7..fd341f5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio.inc
@@ -5,7 +5,11 @@
 DEPENDS_append = "${PYTHON_PN}-protobuf"
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/python-grpcio:"
-SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch "
+
+SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \
+                                file://ppc-boringssl-support.patch \
+                                file://riscv64_support.patch \
+"
 
 RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \
                   ${PYTHON_PN}-setuptools \
@@ -17,8 +21,8 @@
 
 inherit pypi
 
-SRC_URI[md5sum] = "0987ae2e47b5103de3cacc437874a3c5"
-SRC_URI[sha256sum] = "4bf23666e763ca7ff6010465864e9f088f4ac7ecc1e11abd6f85b250e66b2c05"
+SRC_URI[md5sum] = "188565f150f34d1927b87e014f0f4b73"
+SRC_URI[sha256sum] = "2ddbca16c2e7b3f2ffc6e34c7cfa6886fb01de9f156ad3f77b72ad652d632097"
 
 CLEANBROKEN = "1"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
index 996597b..f17f048 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -18,11 +18,9 @@
  setup.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: grpcio-1.14.1/setup.py
-===================================================================
---- grpcio-1.14.1.orig/setup.py
-+++ grpcio-1.14.1/setup.py
-@@ -123,7 +123,7 @@ ENABLE_DOCUMENTATION_BUILD = os.environ.
+--- a/setup.py
++++ b/setup.py
+@@ -145,7 +145,7 @@ ENABLE_DOCUMENTATION_BUILD = os.environ.
  EXTRA_ENV_COMPILE_ARGS = os.environ.get('GRPC_PYTHON_CFLAGS', None)
  EXTRA_ENV_LINK_ARGS = os.environ.get('GRPC_PYTHON_LDFLAGS', None)
  if EXTRA_ENV_COMPILE_ARGS is None:
@@ -31,7 +29,7 @@
    if 'win32' in sys.platform and sys.version_info < (3, 5):
      EXTRA_ENV_COMPILE_ARGS += ' -D_hypot=hypot'
      # We use define flags here and don't directly add to DEFINE_MACROS below to
-@@ -135,7 +135,7 @@ if EXTRA_ENV_COMPILE_ARGS is None:
+@@ -157,7 +157,7 @@ if EXTRA_ENV_COMPILE_ARGS is None:
      else:
        EXTRA_ENV_COMPILE_ARGS += ' -D_ftime=_ftime64 -D_timeb=__timeb64'
    elif "linux" in sys.platform:
@@ -39,4 +37,4 @@
 +    EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions'
    elif "darwin" in sys.platform:
      EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions'
- EXTRA_ENV_COMPILE_ARGS += ' -DPB_FIELD_16BIT'
+ EXTRA_ENV_COMPILE_ARGS += ' -DPB_FIELD_32BIT'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch
new file mode 100644
index 0000000..6435abb
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/ppc-boringssl-support.patch
@@ -0,0 +1,17 @@
+Let boringSSL compile on ppc32 bit
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/third_party/boringssl/include/openssl/base.h
++++ b/third_party/boringssl/include/openssl/base.h
+@@ -95,6 +95,9 @@ extern "C" {
+ #elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN)
+ #define OPENSSL_64_BIT
+ #define OPENSSL_PPC64LE
++#elif (defined(__PPC__) || defined(__powerpc__))
++#define OPENSSL_32_BIT
++#define OPENSSL_PPC
+ #elif defined(__mips__) && !defined(__LP64__)
+ #define OPENSSL_32_BIT
+ #define OPENSSL_MIPS
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/riscv64_support.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/riscv64_support.patch
new file mode 100644
index 0000000..fef7d9e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio/riscv64_support.patch
@@ -0,0 +1,16 @@
+Add RISC-V 64bit support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/third_party/boringssl/include/openssl/base.h
++++ b/third_party/boringssl/include/openssl/base.h
+@@ -104,6 +104,9 @@ extern "C" {
+ #elif defined(__mips__) && defined(__LP64__)
+ #define OPENSSL_64_BIT
+ #define OPENSSL_MIPS64
++#elif defined(__riscv) && defined(__riscv_xlen)
++#define OPENSSL_64_BIT
++#define OPENSSL_RISCV64
+ #elif defined(__pnacl__)
+ #define OPENSSL_32_BIT
+ #define OPENSSL_PNACL
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.19.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.14.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-grpcio_1.19.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib.inc
index 0eb8bf3..a8e0fb4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib.inc
@@ -13,3 +13,5 @@
     ${PYTHON_PN}-webencodings \
     ${PYTHON_PN}-xml \
 "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc
index 519812d..13b0cdb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-idna.inc
@@ -3,8 +3,8 @@
 LICENSE = "BSD-3-Clause & Python-2.0 & Unicode"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=782775b32f96098512e283fb5d4546cd"
 
-SRC_URI[md5sum] = "0e5bb69018ddef1b9d95f681182be82c"
-SRC_URI[sha256sum] = "684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
+SRC_URI[md5sum] = "2e9ae0b4a0b26d1747c6127cdb060bc1"
+SRC_URI[sha256sum] = "c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407"
 
 RDEPENDS_${PN}_class-target = "\
     ${PYTHON_PN}-codecs \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.8.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc
new file mode 100644
index 0000000..3cb6bb8
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-isodate.inc
@@ -0,0 +1,14 @@
+SUMMARY = "ISO 8601 date/time parser"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
+
+SRC_URI[md5sum] = "0e1203fce27ce65e2d01c5f21c4d428f"
+SRC_URI[sha256sum] = "2e364a3d5759479cdb2d37cce6b9376ea504db2ff90252a2e5b7cc89cc9ff2d8"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+    ${PYTHON_PN}-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-isodate_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-isodate_0.6.0.bb
new file mode 100644
index 0000000..d48e123
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-isodate_0.6.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-isodate.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc
index 0c0bf0d..5342eb5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc
@@ -13,3 +13,5 @@
     ${PYTHON_PN}-json ${PYTHON_PN}-threading ${PYTHON_PN}-numbers"
 
 CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib-10.42.0.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib-10.42.0.inc
new file mode 100644
index 0000000..72d6a65
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-kconfiglib-10.42.0.inc
@@ -0,0 +1,8 @@
+DESCRIPTION = "Kconfiglib is a Kconfig implementation in Python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=712177a72a3937909543eda3ad1bfb7c"
+
+SRC_URI[md5sum] = "2306279a050c6a888f34a5719047f217"
+SRC_URI[sha256sum] = "0070eb9061f924e1fa7bc2b1f0aeea1d38e1ddf9bbdbd4b5c346bcf1a0848674"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
index 7f355a7..14897c0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
@@ -11,15 +11,15 @@
                     file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \
                     file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \
                     file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \
-                    file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=939e7430ce85e1242ff50c4ee9430752 \
+                    file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \
                     file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \
                     file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \
                     "
 
 DEPENDS += "libxml2 libxslt"
 
-SRC_URI[md5sum] = "31239400ca4e130b69993bb3c14204b3"
-SRC_URI[sha256sum] = "e2afbe403090f5893e254958d02875e0732975e73c4c0cdd33c1f009a61963ca"
+SRC_URI[md5sum] = "d2b2eb305bfa9ed15aebe61affb3ffa4"
+SRC_URI[sha256sum] = "da5e7e941d6e71c9c9a717c93725cda0708c2474f532e3680ac5e39ec57d224d"
 
 DISTUTILS_BUILD_ARGS += " \
                      --with-xslt-config='pkg-config libxslt' \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.3.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.2.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-lxml_4.3.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc
index 927f844..437a60c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc
@@ -10,3 +10,5 @@
 inherit pypi
 
 RDEPENDS_${PN} += "${PYTHON_PN}-stringold"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc
index fdc8926..9147c06 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack.inc
@@ -2,12 +2,12 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
 
-SRC_URI[md5sum] = "6d644c06a87a5a111bbbf5b34b4be440"
-SRC_URI[sha256sum] = "378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b"
-
-PYPI_PACKAGE = "msgpack-python"
+PYPI_PACKAGE = "msgpack"
 inherit pypi
 
+SRC_URI[md5sum] = "be3043cc2c1e3b5ebf08463ffa71cf17"
+SRC_URI[sha256sum] = "64abc6bf3a2ac301702f5760f4e6e227d0fd4d84d9014ef9a40faa9d43365259"
+
 RDEPENDS_${PN}_class-target += "\
     ${PYTHON_PN}-io \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.5.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.5.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-obd.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-obd.inc
new file mode 100644
index 0000000..f2caf64
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-obd.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "A python module for handling realtime sensor data from OBD-II vehicle ports"
+HOMEPAGE = "https://github.com/brendan-w/python-OBD"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README.rst;md5=2988a5e913eb105fa08011135c4157d4"
+
+SRC_URI[md5sum] = "93e04f825e13b7ebc97d06b6a6407807"
+SRC_URI[sha256sum] = "4b1bac95df2faac571ebf444778e4d736d050d8ed7049023c0fc929a520eba6d"
+
+inherit pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc
index f834e6f..66943ed 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt.inc
@@ -7,8 +7,9 @@
 SRCNAME = "paho-mqtt"
 
 inherit pypi
-SRC_URI[md5sum] = "2cc27d8b369700b1fc99325add0dadd2"
-SRC_URI[sha256sum] = "31911f6031de306c27ed79dc77b690d7c55b0dcb0f0434ca34ec6361d0371122"
+
+SRC_URI[md5sum] = "e3ac29cd5dc247a01083a2a8f3fddd08"
+SRC_URI[sha256sum] = "e440a052b46d222e184be3be38676378722072fcd4dfd2c8f509fb861a7b0b79"
 
 DEPENDS += "${PYTHON_PN}-pytest-runner-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.0.6.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.0.6.bb
index 6b4019f..4d5c323 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-paste_3.0.6.bb
@@ -5,10 +5,13 @@
 
 LIC_FILES_CHKSUM = "file://docs/license.txt;md5=1798f29d55080c60365e6283cb49779c"
 
-SRC_URI[md5sum] = "1231e14eae62fa7ed76e9130b04bc61e"
-SRC_URI[sha256sum] = "2346a347824c32641bf020c17967b49ae74d3310ec1bc9b958d4b84e2d985218"
+SRC_URI[md5sum] = "4e93762f24fc728ecb4ddcff2693df39"
+SRC_URI[sha256sum] = "06aacf7a40685be0a0db8b26516e7d559d7fe5ccf7a47c5cd34f15ab558a8b92"
 
 PYPI_PACKAGE = "Paste"
 inherit pypi setuptools
 
 FILES_${PN} += "/usr/lib/*"
+
+DEPENDS += "${PYTHON_PN}-pytest-runner-native"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb
index a4b56cd..3248772 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pbr_4.2.0.bb
@@ -1,3 +1,7 @@
 inherit setuptools
 # The inc file is in oe-core
 require recipes-devtools/python/python-pbr.inc
+
+SRC_URI[md5sum] = "6619780896ca81c7cd19c6e2f439b6c9"
+SRC_URI[sha256sum] = "1b8be50d938c9bb75d0eaf7eda111eec1bf6dc88a62a6412e33bf077457e0f45"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc
index b617904..54eacc0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-protobuf.inc
@@ -28,4 +28,5 @@
 "
 
 # For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser.inc
index d112d9f..47a0e0e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser.inc
@@ -3,8 +3,9 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86f1cedb4e6410a88ce8e30b91079169"
 
-SRC_URI[md5sum] = "72370da54358202a60130e223d488136"
-SRC_URI[sha256sum] = "99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226"
+SRC_URI[md5sum] = "76396762adc3fa769c83d8e202d36b6f"
+SRC_URI[sha256sum] = "a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3"
+
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.19.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.18.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.19.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
deleted file mode 100644
index 09c4394..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 2ef124e235a47dd4742813cf80e11a89cf4f02f8 Mon Sep 17 00:00:00 2001
-From: Andrew Jeffery <andrew@aj.id.au>
-Date: Thu, 3 May 2018 12:35:31 +0930
-Subject: [PATCH] ptrace: Abstract over user_regs_struct name, which differs on
- ARM32
-
-Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
----
- src/ptrace.cc |  6 +++---
- src/ptrace.h  | 10 ++++++++--
- 2 files changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/src/ptrace.cc b/src/ptrace.cc
-index 485f58e4d82e..610fabb3b8e8 100644
---- a/src/ptrace.cc
-+++ b/src/ptrace.cc
-@@ -122,8 +122,8 @@ void PtraceInterrupt(pid_t pid) {
-   DoWait(pid);
- }
- 
--struct user_regs_struct PtraceGetRegs(pid_t pid) {
--  struct user_regs_struct regs;
-+user_regs_struct PtraceGetRegs(pid_t pid) {
-+  user_regs_struct regs;
-   if (ptrace(PTRACE_GETREGS, pid, 0, &regs)) {
-     std::ostringstream ss;
-     ss << "Failed to PTRACE_GETREGS: " << strerror(errno);
-@@ -132,7 +132,7 @@ struct user_regs_struct PtraceGetRegs(pid_t pid) {
-   return regs;
- }
- 
--void PtraceSetRegs(pid_t pid, struct user_regs_struct regs) {
-+void PtraceSetRegs(pid_t pid, user_regs_struct regs) {
-   if (ptrace(PTRACE_SETREGS, pid, 0, &regs)) {
-     std::ostringstream ss;
-     ss << "Failed to PTRACE_SETREGS: " << strerror(errno);
-diff --git a/src/ptrace.h b/src/ptrace.h
-index 7083be1c4dfd..d6af8bf9f83a 100644
---- a/src/ptrace.h
-+++ b/src/ptrace.h
-@@ -23,6 +23,12 @@
- 
- #include "./config.h"
- 
-+#if defined(__arm__)
-+typedef struct user_regs user_regs_struct;
-+#else
-+typedef struct user_regs_struct user_regs_struct;
-+#endif
-+
- namespace pyflame {
- 
- int DoWait(pid_t pid, int options = 0);
-@@ -39,10 +45,10 @@ void PtraceSeize(pid_t pid);
- void PtraceInterrupt(pid_t pid);
- 
- // get regs from a process
--struct user_regs_struct PtraceGetRegs(pid_t pid);
-+user_regs_struct PtraceGetRegs(pid_t pid);
- 
- // set regs in a process
--void PtraceSetRegs(pid_t pid, struct user_regs_struct regs);
-+void PtraceSetRegs(pid_t pid, user_regs_struct regs);
- 
- // poke a long word into an address
- void PtracePoke(pid_t pid, unsigned long addr, long data);
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
deleted file mode 100644
index 3eefc9c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 007965d341349679607699d005c4af811b2c419a Mon Sep 17 00:00:00 2001
-From: Andrew Jeffery <andrew@aj.id.au>
-Date: Fri, 4 May 2018 11:23:53 +0930
-Subject: [PATCH] symbol: Account for prelinked shared objects
-
-Some projects, such as those derived from Yocto, tend to prelink their
-binaries and libraries to reduce runtime overhead. Currently this trips
-up pyflame in its symbol address calculations, and leads to ptrace
-failures due to spurious addresses:
-
-   $ pyflame -t python -c "print 'foo'"
-   Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
-   Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
-   Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
-   Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
-   Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
-   ...
-
-Add support for reading a prelinked base p_vaddr out of the ELF and
-adjust the PyAddresses values accordingly.
-
-Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
----
- src/symbol.cc | 15 +++++++++++++++
- src/symbol.h  | 29 ++++++++++++++++++++++++++++-
- 2 files changed, 43 insertions(+), 1 deletion(-)
-
-diff --git a/src/symbol.cc b/src/symbol.cc
-index 125174efeeb5..39c3e8132dd1 100644
---- a/src/symbol.cc
-+++ b/src/symbol.cc
-@@ -166,6 +166,17 @@ PyABI ELF::WalkTable(int sym, int str, PyAddresses *addrs) {
-   return abi;
- }
- 
-+addr_t ELF::GetBaseAddress() {
-+  int32_t phnum = hdr()->e_phnum;
-+  int32_t i;
-+  for (i = 0; i < phnum && phdr(i)->p_type != PT_LOAD; i++) {
-+  }
-+  if (i == phnum) {
-+    throw FatalException("Failed to find PT_LOAD entry in program headers");
-+  }
-+  return phdr(i)->p_vaddr;
-+}
-+
- PyAddresses ELF::GetAddresses(PyABI *abi) {
-   PyAddresses addrs;
-   PyABI detected_abi = WalkTable(dynsym_, dynstr_, &addrs);
-@@ -176,6 +187,10 @@ PyAddresses ELF::GetAddresses(PyABI *abi) {
-   if (abi != nullptr) {
-     *abi = detected_abi;
-   }
-+  // Handle prelinked shared objects
-+  if (hdr()->e_type == ET_DYN) {
-+    return addrs - GetBaseAddress();
-+  }
-   return addrs;
- }
- }  // namespace pyflame
-diff --git a/src/symbol.h b/src/symbol.h
-index 124853bcc1c1..bb92b9a2604b 100644
---- a/src/symbol.h
-+++ b/src/symbol.h
-@@ -28,15 +28,19 @@
- 
- #if USE_ELF64
- #define ehdr_t Elf64_Ehdr
-+#define phdr_t Elf64_Phdr
- #define shdr_t Elf64_Shdr
- #define dyn_t Elf64_Dyn
- #define sym_t Elf64_Sym
-+#define addr_t Elf64_Addr
- #define ARCH_ELFCLASS ELFCLASS64
- #else
- #define ehdr_t Elf32_Ehdr
-+#define phdr_t Elf32_Phdr
- #define shdr_t Elf32_Shdr
- #define dyn_t Elf32_Dyn
- #define sym_t Elf32_Sym
-+#define addr_t Elf32_Addr
- #define ARCH_ELFCLASS ELFCLASS32
- #endif
- 
-@@ -67,8 +71,18 @@ struct PyAddresses {
-         interp_head_hint(0),
-         pie(false) {}
- 
-+  PyAddresses operator-(const unsigned long base) const {
-+    PyAddresses res(*this);
-+    res.tstate_addr = this->tstate_addr == 0 ? 0 : this->tstate_addr - base;
-+    res.interp_head_addr =
-+        this->interp_head_addr == 0 ? 0 : this->interp_head_addr - base;
-+    res.interp_head_fn_addr =
-+        this->interp_head_fn_addr == 0 ? 0 : this->interp_head_fn_addr - base;
-+    return res;
-+  }
-+
-   PyAddresses operator+(const unsigned long base) const {
--    PyAddresses res;
-+    PyAddresses res(*this);
-     res.tstate_addr = this->tstate_addr == 0 ? 0 : this->tstate_addr + base;
-     res.interp_head_addr =
-         this->interp_head_addr == 0 ? 0 : this->interp_head_addr + base;
-@@ -113,6 +127,9 @@ class ELF {
-   // ABI.
-   PyAddresses GetAddresses(PyABI *abi);
- 
-+  // Extract the base load address from the Program Header table
-+  addr_t GetBaseAddress();
-+
-  private:
-   void *addr_;
-   size_t length_;
-@@ -122,6 +139,16 @@ class ELF {
-     return reinterpret_cast<const ehdr_t *>(addr_);
-   }
- 
-+  inline const phdr_t *phdr(int idx) const {
-+    if (idx < 0) {
-+      std::ostringstream ss;
-+      ss << "Illegal phdr index: " << idx;
-+      throw FatalException(ss.str());
-+    }
-+    return reinterpret_cast<const phdr_t *>(p() + hdr()->e_phoff +
-+                                            idx * hdr()->e_phentsize);
-+  }
-+
-   inline const shdr_t *shdr(int idx) const {
-     if (idx < 0) {
-       std::ostringstream ss;
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc
index 340aab7..d8d8349 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame.inc
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
 DEPENDS = "python"
 
-SRC_URI = "git://github.com/uber/pyflame.git;protocol=https"
+SRC_URI = "git://github.com/uber/pyflame.git;protocol=https;nobranch=1"
 S = "${WORKDIR}/git"
 
 inherit pkgconfig autotools
@@ -13,3 +13,6 @@
 COMPATIBLE_HOST_libc-musl_class-target = "null"
 COMPATIBLE_HOST_mipsarch_class-target = "null"
 COMPATIBLE_HOST_aarch64_class-target = "null"
+COMPATIBLE_HOST_powerpc_class-target = "null"
+COMPATIBLE_HOST_riscv64_class-target = "null"
+COMPATIBLE_HOST_riscv32_class-target = "null"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
deleted file mode 100644
index 8dedb89..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require python-pyflame.inc
-
-# v1.6.6
-SRCREV = "8a9d8c2acc3b3bb027475b738134f1e6fff14e6c"
-SRC_URI += "file://0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch"
-SRC_URI += "file://0001-symbol-Account-for-prelinked-shared-objects.patch"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb
new file mode 100644
index 0000000..cb08f30
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb
@@ -0,0 +1,4 @@
+require python-pyflame.inc
+
+# v1.6.7
+SRCREV = "c151d2f34737f28a1f5266a003b2b0720bbd9f96"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc
index 975f11c..21abdb8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc
@@ -7,6 +7,7 @@
     ${PYTHON_PN}-io \
     ${PYTHON_PN}-misc \
     ${PYTHON_PN}-shell \
+    ${PYTHON_PN}-smtpd \
 "
 
 SRC_URI[md5sum] = "8e580fa1ff3971f94a6f81672b76c406"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc
new file mode 100644
index 0000000..0eac197
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib.inc
@@ -0,0 +1,15 @@
+SUMMARY = "RDFLib is a pure Python package for working with RDF"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=68c1a3bb687bd63b8e5552f3ea249840"
+
+SRC_URI[md5sum] = "534fe35b13c5857d53fa1ac5a41eca67"
+SRC_URI[sha256sum] = "da1df14552555c5c7715d8ce71c08f404c988c58a1ecd38552d0da4fc261280d"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+    ${PYTHON_PN}-isodate \
+    ${PYTHON_PN}-pyparsing \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib_4.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib_4.2.2.bb
new file mode 100644
index 0000000..7ed0f5f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-rdflib_4.2.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-rdflib.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc
new file mode 100644
index 0000000..4bc6a36
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib.inc
@@ -0,0 +1,7 @@
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863"
+
+SRC_URI[md5sum] = "4358a879a4377393bcfd37d0f9ae6d4d"
+SRC_URI[sha256sum] = "883ac416757eada6d3d07054ec7092ac21c7f35cb1d2cf82faf205637081f468"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-requests"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb
new file mode 100644
index 0000000..4318915
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests-oauthlib_0.8.0.bb
@@ -0,0 +1,3 @@
+require python-requests-oauthlib.inc
+inherit pypi setuptools
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
index 301c2f8..0401ee4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
@@ -1,16 +1,12 @@
 DESCRIPTION = "Python HTTP for Humans."
 HOMEPAGE = "http://python-requests.org"
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bfbeafb85a2cee261510d65d5ec19156"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a8d5a1d1c2d53025e2282c511033f6f7"
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/python-requests:"
 
-SRC_URI += "file://0001-Strip-Authorization-header-whenever-root-URL-changes.patch \
-            file://0002-Rework-authorization-stripping-logic-as-discussed.patch \
-            "
-
-SRC_URI[md5sum] = "6c1a31afec9d614e2e71a91ee6ca2878"
-SRC_URI[sha256sum] = "ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a"
+SRC_URI[md5sum] = "2918817ea4688f4ea21cb4b11e353448"
+SRC_URI[sha256sum] = "ea881206e59f41dbd0bd445437d792e43906703fff75ca8ff43ccdb11f33f263"
 
 inherit pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0001-Strip-Authorization-header-whenever-root-URL-changes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0001-Strip-Authorization-header-whenever-root-URL-changes.patch
deleted file mode 100644
index 80ef5ff..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0001-Strip-Authorization-header-whenever-root-URL-changes.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From fb0d391138df48e93c44a2087ea796cca5e229c0 Mon Sep 17 00:00:00 2001
-From: Bruce Merry <bmerry@ska.ac.za>
-Date: Thu, 28 Jun 2018 16:38:42 +0200
-Subject: [PATCH 1/2] Strip Authorization header whenever root URL changes
-
-Previously the header was stripped only if the hostname changed, but in
-an https -> http redirect that can leak the credentials on the wire
-(#4716). Based on with RFC 7235 section 2.2, the header is now stripped
-if the "canonical root URL" (scheme+authority) has changed, by checking
-scheme, hostname and port.
-
-Upstream-Status: Backport
-
-Fix CVE-2018-18074
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- requests/sessions.py   |  4 +++-
- tests/test_requests.py | 12 +++++++++++-
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/requests/sessions.py b/requests/sessions.py
-index ba13526..2969d83 100644
---- a/requests/sessions.py
-+++ b/requests/sessions.py
-@@ -242,7 +242,9 @@ class SessionRedirectMixin(object):
-             original_parsed = urlparse(response.request.url)
-             redirect_parsed = urlparse(url)
- 
--            if (original_parsed.hostname != redirect_parsed.hostname):
-+            if (original_parsed.hostname != redirect_parsed.hostname
-+                    or original_parsed.port != redirect_parsed.port
-+                    or original_parsed.scheme != redirect_parsed.scheme):
-                 del headers['Authorization']
- 
-         # .netrc might have more auth for us on our new host.
-diff --git a/tests/test_requests.py b/tests/test_requests.py
-index fcddb1d..e0e801a 100644
---- a/tests/test_requests.py
-+++ b/tests/test_requests.py
-@@ -1575,7 +1575,17 @@ class TestRequests:
-             auth=('user', 'pass'),
-         )
-         assert r.history[0].request.headers['Authorization']
--        assert not r.request.headers.get('Authorization', '')
-+        assert 'Authorization' not in r.request.headers
-+
-+    def test_auth_is_stripped_on_scheme_redirect(self, httpbin, httpbin_secure, httpbin_ca_bundle):
-+        r = requests.get(
-+            httpbin_secure('redirect-to'),
-+            params={'url': httpbin('get')},
-+            auth=('user', 'pass'),
-+            verify=httpbin_ca_bundle
-+        )
-+        assert r.history[0].request.headers['Authorization']
-+        assert 'Authorization' not in r.request.headers
- 
-     def test_auth_is_retained_for_redirect_on_host(self, httpbin):
-         r = requests.get(httpbin('redirect/1'), auth=('user', 'pass'))
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0002-Rework-authorization-stripping-logic-as-discussed.patch b/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0002-Rework-authorization-stripping-logic-as-discussed.patch
deleted file mode 100644
index ef069fb..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-requests/0002-Rework-authorization-stripping-logic-as-discussed.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 698c2fa850bfc8b3bdb768e1c1cd6d57e643811d Mon Sep 17 00:00:00 2001
-From: Bruce Merry <bmerry@ska.ac.za>
-Date: Tue, 14 Aug 2018 13:30:43 +0200
-Subject: [PATCH 2/2] Rework authorization stripping logic as discussed
-
-The exception for http->https upgrade now requires the standard HTTP(S)
-ports to be used, either implicitly (no port specified) or explicitly.
-
-Upstream-Status: Backport
-
-Follow-up fix for CVE-2018-18074
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- requests/sessions.py   | 26 ++++++++++++++++++--------
- tests/test_requests.py | 33 ++++++++++++++++++++++-----------
- 2 files changed, 40 insertions(+), 19 deletions(-)
-
-diff --git a/requests/sessions.py b/requests/sessions.py
-index 2969d83..c11a3a2 100644
---- a/requests/sessions.py
-+++ b/requests/sessions.py
-@@ -115,6 +115,22 @@ class SessionRedirectMixin(object):
-             return to_native_string(location, 'utf8')
-         return None
- 
-+    def should_strip_auth(self, old_url, new_url):
-+        """Decide whether Authorization header should be removed when redirecting"""
-+        old_parsed = urlparse(old_url)
-+        new_parsed = urlparse(new_url)
-+        if old_parsed.hostname != new_parsed.hostname:
-+            return True
-+        # Special case: allow http -> https redirect when using the standard
-+        # ports. This isn't specified by RFC 7235, but is kept to avoid
-+        # breaking backwards compatibility with older versions of requests
-+        # that allowed any redirects on the same host.
-+        if (old_parsed.scheme == 'http' and old_parsed.port in (80, None)
-+                and new_parsed.scheme == 'https' and new_parsed.port in (443, None)):
-+            return False
-+        # Standard case: root URI must match
-+        return old_parsed.port != new_parsed.port or old_parsed.scheme != new_parsed.scheme
-+
-     def resolve_redirects(self, resp, req, stream=False, timeout=None,
-                           verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs):
-         """Receives a Response. Returns a generator of Responses or Requests."""
-@@ -236,16 +252,10 @@ class SessionRedirectMixin(object):
-         headers = prepared_request.headers
-         url = prepared_request.url
- 
--        if 'Authorization' in headers:
-+        if 'Authorization' in headers and self.should_strip_auth(response.request.url, url):
-             # If we get redirected to a new host, we should strip out any
-             # authentication headers.
--            original_parsed = urlparse(response.request.url)
--            redirect_parsed = urlparse(url)
--
--            if (original_parsed.hostname != redirect_parsed.hostname
--                    or original_parsed.port != redirect_parsed.port
--                    or original_parsed.scheme != redirect_parsed.scheme):
--                del headers['Authorization']
-+            del headers['Authorization']
- 
-         # .netrc might have more auth for us on our new host.
-         new_auth = get_netrc_auth(url) if self.trust_env else None
-diff --git a/tests/test_requests.py b/tests/test_requests.py
-index e0e801a..148067b 100644
---- a/tests/test_requests.py
-+++ b/tests/test_requests.py
-@@ -1567,17 +1567,7 @@ class TestRequests:
-             preq = req.prepare()
-             assert test_url == preq.url
- 
--    @pytest.mark.xfail(raises=ConnectionError)
--    def test_auth_is_stripped_on_redirect_off_host(self, httpbin):
--        r = requests.get(
--            httpbin('redirect-to'),
--            params={'url': 'http://www.google.co.uk'},
--            auth=('user', 'pass'),
--        )
--        assert r.history[0].request.headers['Authorization']
--        assert 'Authorization' not in r.request.headers
--
--    def test_auth_is_stripped_on_scheme_redirect(self, httpbin, httpbin_secure, httpbin_ca_bundle):
-+    def test_auth_is_stripped_on_http_downgrade(self, httpbin, httpbin_secure, httpbin_ca_bundle):
-         r = requests.get(
-             httpbin_secure('redirect-to'),
-             params={'url': httpbin('get')},
-@@ -1594,6 +1584,27 @@ class TestRequests:
- 
-         assert h1 == h2
- 
-+    def test_should_strip_auth_host_change(self):
-+        s = requests.Session()
-+        assert s.should_strip_auth('http://example.com/foo', 'http://another.example.com/')
-+
-+    def test_should_strip_auth_http_downgrade(self):
-+        s = requests.Session()
-+        assert s.should_strip_auth('https://example.com/foo', 'http://example.com/bar')
-+
-+    def test_should_strip_auth_https_upgrade(self):
-+        s = requests.Session()
-+        assert not s.should_strip_auth('http://example.com/foo', 'https://example.com/bar')
-+        assert not s.should_strip_auth('http://example.com:80/foo', 'https://example.com/bar')
-+        assert not s.should_strip_auth('http://example.com/foo', 'https://example.com:443/bar')
-+        # Non-standard ports should trigger stripping
-+        assert s.should_strip_auth('http://example.com:8080/foo', 'https://example.com/bar')
-+        assert s.should_strip_auth('http://example.com/foo', 'https://example.com:8443/bar')
-+
-+    def test_should_strip_auth_port_change(self):
-+        s = requests.Session()
-+        assert s.should_strip_auth('http://example.com:1234/foo', 'https://example.com:4321/bar')
-+
-     def test_manual_redirect_with_partial_body_read(self, httpbin):
-         s = requests.Session()
-         r1 = s.get(httpbin('redirect/2'), allow_redirects=False, stream=True)
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.19.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.19.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.20.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc
index dc587e7..0933b45 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus.inc
@@ -1,5 +1,5 @@
 SUMMARY = "Convenience functions for dbus services in Python 2.x"
-HOMEPAGE = "http://nphilipp.fedorapeople.org/python-slip/"
+HOMEPAGE = "https://github.com/nphilipp/python-slip"
 DESCRIPTION = "\
 The Simple Library for Python 2.x packages contain miscellaneous code for \
 convenience, extension and workaround purposes. \
@@ -17,10 +17,8 @@
 SRC_URI = "https://github.com/nphilipp/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2"
 S = "${WORKDIR}/${SRCNAME}-${PV}"
 
-inherit setuptools
-
-SRC_URI[md5sum] = "a6d8ee96245fc21785d4c1c062c85f2f"
-SRC_URI[sha256sum] = "bc897f1ab6f5b4989f85548799aaeb84fde67bbba18e40341bfe1d7885c2fd9a"
+SRC_URI[md5sum] = "28ae5f93853466c44ec96706ba2a1eb4"
+SRC_URI[sha256sum] = "c726c086f0dd93a0ac7a0176f383a12af91b6657b78a301e3f5b25d9f8d4d10b"
 
 do_compile_prepend() {
     sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.5.bb
new file mode 100644
index 0000000..330fa1b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.5.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-slip-dbus.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc
new file mode 100644
index 0000000..967a80c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm.inc
@@ -0,0 +1,13 @@
+SUMMARY = "Fast, Extensible Progress Meter"
+HOMEPAGE = "http://tqdm.github.io/"
+SECTION = "devel/python"
+
+LICENSE = "MIT & MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=054ef7105cba050017d1368262a1623c"
+
+inherit pypi
+
+SRC_URI[md5sum] = "807e8c13e16e3660ac88e05d711daeb0"
+SRC_URI[sha256sum] = "e22977e3ebe961f72362f6ddfb9197cc531c9737aaf5f607ef09740c849ecd05"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb
new file mode 100644
index 0000000..b381009
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tqdm_4.31.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-tqdm.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
index 01616b1..456adf4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twisted.inc
@@ -35,7 +35,6 @@
 "
 
 PACKAGES =+ "\
-    ${PN}-src \
     ${PN}-bin \
 "
 
@@ -242,9 +241,10 @@
     ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_pydoctortemplates/ \
 "
 
-RDEPENDS_{PN}-src = "${PN}"
+RDEPENDS_${PN}-src = "${PN}"
 FILES_${PN}-src = " \
     ${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py \
     ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*.py \
     ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/*.py \
 "
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc
new file mode 100644
index 0000000..f5657ee
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter.inc
@@ -0,0 +1,17 @@
+SUMMARY = "Twitter for Python"
+DESCRIPTION = "Python module to support twitter API"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=0307fffd8c4d9946c029daa1426d26e7"
+
+SRC_URI[md5sum] = "c6dc2f315ded761aafc96bea3351c7f6"
+SRC_URI[sha256sum] = "fe85a79f58a01dd335968523b91c5fce760e7fe78bf25a6e71c72204fe499d0b"
+
+PYPI_PACKAGE = "tweepy"
+
+RDEPENDS_${PN} += "\
+        ${PYTHON_PN}-pip \
+        ${PYTHON_PN}-pysocks \
+        ${PYTHON_PN}-requests \
+        ${PYTHON_PN}-six \
+        "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb
new file mode 100644
index 0000000..6a28b08
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-twitter_3.7.0.bb
@@ -0,0 +1,3 @@
+require python-twitter.inc
+inherit pypi setuptools
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc
new file mode 100644
index 0000000..42f93e6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal.inc
@@ -0,0 +1,8 @@
+SUMMARY = "Library to return tzinfo with the local timezone information"
+HOMEPAGE = "https://pypi.org/project/tzlocal/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
+
+SRC_URI[md5sum] = "4553be891efa0812c4adfb0c6e818eec"                            
+SRC_URI[sha256sum] = "4ebeb848845ac898da6519b9b31879cf13b6626f7184c496037b818e238f2c4e" 
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb
new file mode 100644
index 0000000..b7980dd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-tzlocal_1.5.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-tzlocal.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb
index cd6fa8d..e6cc4ac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb
@@ -9,14 +9,6 @@
 
 inherit pypi setuptools
 
-do_compile_append() {
-    ${PYTHON} setup.py -q bdist_egg --dist-dir ./
-}
-
-do_install_append() {
-    install -m 0644 ${S}/vcversioner*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/
-}
-
 RDEPENDS_${PN} += "\
     ${PYTHON_PN}-subprocess \
     "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-webencodings.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-webencodings.inc
index 34ca706..a2b8410 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-webencodings.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-webencodings.inc
@@ -11,3 +11,5 @@
     ${PYTHON_PN}-codecs \
     ${PYTHON_PN}-json \
 "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc b/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
index d1ab05d..893e82e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
@@ -10,3 +10,5 @@
 SRC_URI[sha256sum] = "8a21885513e6d915fe33a8ee5fdfa675433b61405ba13e2a69e62ee36828d7e2"
 
 RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.7.0.bb
new file mode 100644
index 0000000..c65a6d7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_0.7.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Abseil Python Common Libraries"
+HOMEPAGE = "https://github.com/abseil/abseil-py"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/abseil/abseil-py.git"
+SRCREV ?= "e3ce504183c57fc4eca52fe84732c11cda99d131"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb
new file mode 100644
index 0000000..c2dc924
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astor_0.7.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Easy manipulation of Python source via the AST."
+HOMEPAGE = "https://github.com/berkerpeksag/astor"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7"
+
+SRC_URI = "git://github.com/berkerpeksag/astor.git"
+SRCREV ?= "4ca3a26e52f08678854c2841cd0fdf223461e47d"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.4.0.bb
deleted file mode 100644
index 84f4761..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.4.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Security oriented static analyser for python code."
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
-
-SRC_URI[md5sum] = "f74155cb9921be857693b32d2531e857"
-SRC_URI[sha256sum] = "cb977045497f83ec3a02616973ab845c829cdab8144ce2e757fe031104a9abd4"
-
-DEPENDS = "python3-pyyaml python3-six python3-stevedore python3-pbr-native"
-
-inherit setuptools3 pypi
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.5.1.bb
new file mode 100644
index 0000000..3002d5a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.5.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Security oriented static analyser for python code."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+
+SRC_URI[md5sum] = "81ba3979ded1b421fa8d69e6faa06dcb"
+SRC_URI[sha256sum] = "9413facfe9de1e1bd291d525c784e1beb1a55c9916b51dae12979af63a69ba4c"
+
+DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
+
+inherit setuptools3 pypi
+
+RDEPENDS_${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_3.1.0.bb
new file mode 100644
index 0000000..76b2f67
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachetools_3.1.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-cachetools.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_6.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_7.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-click_6.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-click_7.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cryptography_2.4.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.2.2.bb
new file mode 100644
index 0000000..6e08a19
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gast_0.2.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)."
+HOMEPAGE = "https://github.com/serge-sans-paille/gast"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90"
+
+SRC_URI = "git://github.com/serge-sans-paille/gast.git"
+SRCREV ?= "ed82e2a507505c6b18eb665d3738b6c0602da5e7"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.4.0.bb
similarity index 97%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.4.0.bb
index 1f172e5..df688e4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_1.4.0.bb
@@ -1,3 +1,2 @@
 require python-gevent.inc
 inherit setuptools3
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.14.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.15.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.14.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-greenlet_0.4.15.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.14.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.19.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.14.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.19.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-cross-compiling-support.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-cross-compiling-support.patch
new file mode 100644
index 0000000..ff50c85
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-cross-compiling-support.patch
@@ -0,0 +1,46 @@
+From 7e3b1745c1fef34683a0610381dd3308ad4d1ba9 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 29 Jan 2019 17:08:32 +0800
+Subject: [PATCH] cross compiling support
+
+Remove useless dirs
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ setup_build.py     | 4 ----
+ setup_configure.py | 2 +-
+ 2 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/setup_build.py b/setup_build.py
+index 85b321a..2c78e92 100644
+--- a/setup_build.py
++++ b/setup_build.py
+@@ -53,10 +53,6 @@ if sys.platform.startswith('win'):
+         ('_HDF5USEDLL_', None),
+         ('H5_BUILT_AS_DYNAMIC_LIB', None)
+     ])
+-else:
+-    FALLBACK_PATHS['include_dirs'].extend(['/opt/local/include', '/usr/local/include'])
+-    FALLBACK_PATHS['library_dirs'].extend(['/opt/local/lib', '/usr/local/lib'])
+-
+ 
+ class h5py_build_ext(build_ext):
+ 
+diff --git a/setup_configure.py b/setup_configure.py
+index a2de76a..197f2da 100644
+--- a/setup_configure.py
++++ b/setup_configure.py
+@@ -208,7 +208,7 @@ def autodetect_version(hdf5_dir=None):
+     else:
+         regexp = re.compile(r'^libhdf5.so')
+ 
+-    libdirs = ['/usr/local/lib', '/opt/local/lib']
++    libdirs = []
+     try:
+         if pkgconfig.exists("hdf5"):
+             libdirs.extend(pkgconfig.parse("hdf5")['library_dirs'])
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb
new file mode 100644
index 0000000..bca7757
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_2.9.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python. "
+HOMEPAGE = "https://www.h5py.org/"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=107;endline=107;md5=795ecad0d261c998cc526c84a822dff6"
+
+SRC_URI = "git://github.com/h5py/h5py.git \
+           file://0001-cross-compiling-support.patch \
+          "
+SRCREV ?= "8d96a14c3508de1bde77aec5db302e478dc5dbc4"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
+DEPENDS = "python3-pkgconfig-native \
+           python3-cython-native \
+           python3-numpy-native \
+           python3-six-native \
+           python3 \
+           hdf5 \
+          "
+
+RDEPENDS_${PN} = "python3-numpy \
+                  python3-six \
+                 "
+
+export HDF5_VERSION="1.8.19"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.8.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-idna_2.8.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.0.bb
new file mode 100644
index 0000000..0e79ae9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-isodate_0.6.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-isodate.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_10.42.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_10.42.0.bb
new file mode 100644
index 0000000..10b039a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kconfiglib_10.42.0.bb
@@ -0,0 +1,2 @@
+require python-kconfiglib-${PV}.inc
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.6.bb
new file mode 100644
index 0000000..d38b992
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-applications_1.0.6.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Reference implementations of popular deep learning models"
+HOMEPAGE = "https://github.com/keras-team/keras-applications"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=366e2fd3c9714f162d3663b6f97cfe41"
+
+SRC_URI = "git://github.com/keras-team/keras-applications.git"
+SRCREV ?= "61de21815728aa66377ebb2a7b4c2f5492a34dd2"
+
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS_${PN} = "python3-numpy \
+                  python3-h5py \
+                 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.0.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.0.5.bb
new file mode 100644
index 0000000..58b8c62
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.0.5.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Easy data preprocessing and data augmentation for deep learning models"
+HOMEPAGE = "https://github.com/keras-team/keras-preprocessing"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1744b320500cc2e3112964d00cce7aa4"
+
+SRC_URI = "git://github.com/keras-team/keras-preprocessing.git"
+SRCREV ?= "362fe9f8daf556151328eb5d02bd5ae638c653b8"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.3.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.2.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_4.3.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb
new file mode 100644
index 0000000..b6d2f18
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-markdown_3.0.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A Python implementation of John Gruber's Markdown."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "Markdown"
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/3c/52/7bae9e99a7a4be6af4a713fe9b692777e6468d28991c54c273dfb6ec9fb2/Markdown-${PV}.tar.gz"
+SRC_URI[md5sum] = "72219f46ca440b657bf227500731bdf1"
+SRC_URI[sha256sum] = "d02e0f9b04c500cde6637c11ad7c72671f359b87b9fe924b2383649d8841db7c"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.5.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.6.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.5.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-msgpack_0.6.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.0.bb
new file mode 100644
index 0000000..578e38d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-obd.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-paho-mqtt_1.4.0.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
new file mode 100644
index 0000000..de89ba0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
@@ -0,0 +1,39 @@
+From 52879439f2976662140b76951f43f16e1d5ef08e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 18 Mar 2019 23:23:55 -0400
+Subject: [PATCH] explicitly set compile options
+
+OE does not support to install egg package, so
+explicitly set build_ext options for oe-core's
+`setup.py install'
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ setup.cfg | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/setup.cfg b/setup.cfg
+index 95900ff..27da313 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -9,3 +9,15 @@ addopts = -vx Tests
+ 
+ [flake8]
+ max-line-length = 88
++
++[build_ext]
++disable-platform-guessing = 1
++enable-zlib = 1
++enable-jpeg = 1
++enable-tiff = 1
++enable-freetype = 1
++enable-lcms = 1
++enable-jpeg2000 = 1
++disable-webp = 1
++disable-webpmux = 1
++disable-imagequant = 1
+-- 
+2.8.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch
new file mode 100644
index 0000000..e862934
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch
@@ -0,0 +1,61 @@
+From a78411402c824668283beb94db4bf7e206a4cf60 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 14 Mar 2019 03:48:10 -0400
+Subject: [PATCH] support cross compiling
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ setup.py | 13 +++----------
+ 1 file changed, 3 insertions(+), 10 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 79f912b..37e5827 100755
+--- a/setup.py
++++ b/setup.py
+@@ -50,7 +50,7 @@ _LIB_IMAGING = (
+     "ZipEncode", "TiffDecode", "Jpeg2KDecode", "Jpeg2KEncode", "BoxBlur",
+     "QuantPngQuant", "codec_fd")
+ 
+-DEBUG = False
++DEBUG = True
+ 
+ 
+ class DependencyException(Exception):
+@@ -345,21 +345,16 @@ class pil_build_ext(build_ext):
+                     _add_directory(library_dirs, match.group(1))
+ 
+         # include, rpath, if set as environment variables:
+-        for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE'):
++        for k in ('C_INCLUDE_PATH', 'CPATH', 'INCLUDE', 'STAGING_INCDIR'):
+             if k in os.environ:
+                 for d in os.environ[k].split(os.path.pathsep):
+                     _add_directory(include_dirs, d)
+ 
+-        for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB'):
++        for k in ('LD_RUN_PATH', 'LIBRARY_PATH', 'LIB', 'STAGING_LIBDIR'):
+             if k in os.environ:
+                 for d in os.environ[k].split(os.path.pathsep):
+                     _add_directory(library_dirs, d)
+ 
+-        prefix = sysconfig.get_config_var("prefix")
+-        if prefix:
+-            _add_directory(library_dirs, os.path.join(prefix, "lib"))
+-            _add_directory(include_dirs, os.path.join(prefix, "include"))
+-
+         #
+         # add platform directories
+ 
+@@ -413,8 +408,6 @@ class pil_build_ext(build_ext):
+         elif sys.platform.startswith("linux") or \
+                 sys.platform.startswith("gnu") or \
+                 sys.platform.startswith("freebsd"):
+-            for dirname in _find_library_dirs_ldconfig():
+-                _add_directory(library_dirs, dirname)
+             if sys.platform.startswith("linux") and \
+                     os.environ.get('ANDROID_ROOT', None):
+                 # termux support for android.
+-- 
+2.8.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_5.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_5.4.1.bb
new file mode 100644
index 0000000..746c184
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_5.4.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \
+Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \
+Contributors."
+HOMEPAGE = "https://pillow.readthedocs.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c6379001ecb47e2a0420c40177fc1125"
+
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=5.4.x \
+           file://0001-support-cross-compiling.patch \
+           file://0001-explicitly-set-compile-options.patch \
+"
+SRCREV ?= "f38f01bbe3a0a9f49ce592c86ff20c01c9655133"
+
+
+inherit setuptools3
+
+DEPENDS += " \
+    zlib \
+    jpeg \
+    tiff \
+    freetype \
+    lcms \
+    openjpeg \
+"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.4.0.bb
new file mode 100644
index 0000000..92eb8bf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pkgconfig_1.4.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python module to interface with the pkg-config command line too"
+HOMEPAGE = "http://github.com/matze/pkgconfig"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=faa7f82be8f220bff6156be4790344fc"
+
+SRC_URI = "git://github.com/matze/pkgconfig.git"
+SRCREV ?= "8af0102346847e8873af8e76ab3f34ba9da806e2"
+
+RDEPENDS_${PN} = "pkgconfig \
+                 "
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf/0001-Add-Python-3.7-compatibility-4862.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf/0001-Add-Python-3.7-compatibility-4862.patch
new file mode 100644
index 0000000..da5e73b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf/0001-Add-Python-3.7-compatibility-4862.patch
@@ -0,0 +1,98 @@
+From 539bc017a62f91bdf7c547b58948cb5a2f59d918 Mon Sep 17 00:00:00 2001
+From: Ben Webb <ben@salilab.org>
+Date: Thu, 12 Jul 2018 10:58:10 -0700
+Subject: [PATCH] Add Python 3.7 compatibility (#4862)
+
+Compilation of Python wrappers fails with Python 3.7 because
+the Python folks changed their C API such that
+PyUnicode_AsUTF8AndSize() now returns a const char* rather
+than a char*. Add a patch to work around. Relates #4086.
+
+Upstream-Status: Backport [https://github.com/protocolbuffers/protobuf.git]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+---
+ google/protobuf/pyext/descriptor.cc            | 2 +-
+ google/protobuf/pyext/descriptor_containers.cc | 2 +-
+ google/protobuf/pyext/descriptor_pool.cc       | 2 +-
+ google/protobuf/pyext/extension_dict.cc        | 2 +-
+ google/protobuf/pyext/message.cc               | 4 ++--
+ 5 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/google/protobuf/pyext/descriptor.cc b/google/protobuf/pyext/descriptor.cc
+index 8af0cb1..19a1c38 100644
+--- a/google/protobuf/pyext/descriptor.cc
++++ b/google/protobuf/pyext/descriptor.cc
+@@ -56,7 +56,7 @@
+   #endif
+   #define PyString_AsStringAndSize(ob, charpp, sizep) \
+     (PyUnicode_Check(ob)? \
+-       ((*(charpp) = PyUnicode_AsUTF8AndSize(ob, (sizep))) == NULL? -1: 0): \
++       ((*(charpp) = const_cast<char*>(PyUnicode_AsUTF8AndSize(ob, (sizep)))) == NULL? -1: 0): \
+        PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
+ #endif
+ 
+diff --git a/google/protobuf/pyext/descriptor_containers.cc b/google/protobuf/pyext/descriptor_containers.cc
+index bc007f7..0153664 100644
+--- a/google/protobuf/pyext/descriptor_containers.cc
++++ b/google/protobuf/pyext/descriptor_containers.cc
+@@ -66,7 +66,7 @@
+   #endif
+   #define PyString_AsStringAndSize(ob, charpp, sizep) \
+     (PyUnicode_Check(ob)? \
+-       ((*(charpp) = PyUnicode_AsUTF8AndSize(ob, (sizep))) == NULL? -1: 0): \
++       ((*(charpp) = const_cast<char*>(PyUnicode_AsUTF8AndSize(ob, (sizep)))) == NULL? -1: 0): \
+        PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
+ #endif
+ 
+diff --git a/google/protobuf/pyext/descriptor_pool.cc b/google/protobuf/pyext/descriptor_pool.cc
+index 95882ae..962accc 100644
+--- a/google/protobuf/pyext/descriptor_pool.cc
++++ b/google/protobuf/pyext/descriptor_pool.cc
+@@ -48,7 +48,7 @@
+   #endif
+   #define PyString_AsStringAndSize(ob, charpp, sizep) \
+     (PyUnicode_Check(ob)? \
+-       ((*(charpp) = PyUnicode_AsUTF8AndSize(ob, (sizep))) == NULL? -1: 0): \
++       ((*(charpp) = const_cast<char*>(PyUnicode_AsUTF8AndSize(ob, (sizep)))) == NULL? -1: 0): \
+        PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
+ #endif
+ 
+diff --git a/google/protobuf/pyext/extension_dict.cc b/google/protobuf/pyext/extension_dict.cc
+index 018b5c2..174c547 100644
+--- a/google/protobuf/pyext/extension_dict.cc
++++ b/google/protobuf/pyext/extension_dict.cc
+@@ -53,7 +53,7 @@
+   #endif
+   #define PyString_AsStringAndSize(ob, charpp, sizep) \
+     (PyUnicode_Check(ob)? \
+-       ((*(charpp) = PyUnicode_AsUTF8AndSize(ob, (sizep))) == NULL? -1: 0): \
++       ((*(charpp) = const_cast<char*>(PyUnicode_AsUTF8AndSize(ob, (sizep)))) == NULL? -1: 0): \
+        PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
+ #endif
+ 
+diff --git a/google/protobuf/pyext/message.cc b/google/protobuf/pyext/message.cc
+index 5893533..31094b7 100644
+--- a/google/protobuf/pyext/message.cc
++++ b/google/protobuf/pyext/message.cc
+@@ -79,7 +79,7 @@
+     (PyUnicode_Check(ob)? PyUnicode_AsUTF8(ob): PyBytes_AsString(ob))
+   #define PyString_AsStringAndSize(ob, charpp, sizep) \
+     (PyUnicode_Check(ob)? \
+-       ((*(charpp) = PyUnicode_AsUTF8AndSize(ob, (sizep))) == NULL? -1: 0): \
++       ((*(charpp) = const_cast<char*>(PyUnicode_AsUTF8AndSize(ob, (sizep)))) == NULL? -1: 0): \
+        PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
+   #endif
+ #endif
+@@ -1529,7 +1529,7 @@ PyObject* HasField(CMessage* self, PyObject* arg) {
+     return NULL;
+   }
+ #else
+-  field_name = PyUnicode_AsUTF8AndSize(arg, &size);
++  field_name = const_cast<char*>(PyUnicode_AsUTF8AndSize(arg, &size));
+   if (!field_name) {
+     return NULL;
+   }
+-- 
+2.7.4
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.6.1.bb
index 781d1dc..9b0668a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.6.1.bb
@@ -1,2 +1,11 @@
 inherit setuptools3
 require python-protobuf.inc
+
+SRC_URI += "file://0001-Add-Python-3.7-compatibility-4862.patch"
+DEPENDS += "protobuf"
+DISTUTILS_BUILD_ARGS += "--cpp_implementation"
+DISTUTILS_INSTALL_ARGS += "--cpp_implementation"
+
+do_compile_prepend_class-native () {
+    export KOKORO_BUILD_NUMBER="1"
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.19.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pycparser_2.19.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb
new file mode 100644
index 0000000..207751c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Pythonic Implementation of lyrics.wikia.com"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=14;endline=14;md5=95d480cd6f8471abaeae21bd0ed277ba"
+
+SRC_URI[md5sum] = "1f3c997edeba149a8fb2b861cbad89c3"
+SRC_URI[sha256sum] = "c5f36e8ef0ed3b487a9242ce34c19f9684e418a5bbffd5d367dc1d1604b4cd0b"
+
+PYPI_PACKAGE = "PyLyrics"
+PYPI_PACKAGE_EXT = "zip"
+
+inherit pypi setuptools3
\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_4.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_4.2.2.bb
new file mode 100644
index 0000000..6511df3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_4.2.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-rdflib.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb
new file mode 100644
index 0000000..1294661
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-oauthlib_0.8.0.bb
@@ -0,0 +1,3 @@
+require python-requests-oauthlib.inc
+inherit pypi setuptools3
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.19.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb
similarity index 100%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.19.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.20.1.bb
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
new file mode 100644
index 0000000..2402a7a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-slip-dbus.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
index 580d993..78ec431 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-systemd_234.bb
@@ -1,2 +1,3 @@
 require python-systemd.inc
+RDEPENDS_${PN} += "python3-syslog"
 inherit setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb
new file mode 100644
index 0000000..17df7f9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-termcolor_1.1.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "ANSII Color formatting for output in terminal"
+HOMEPAGE = "https://pypi.python.org/pypi/termcolor"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=809e8749b63567978acfbd81d9f6a27d"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "043e89644f8909d462fbbfa511c768df"
+SRC_URI[sha256sum] = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb
new file mode 100644
index 0000000..348337f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.31.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-tqdm.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_18.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_18.4.0.bb
index 6bd8c52..dfb9d4a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_18.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_18.4.0.bb
@@ -1,8 +1,6 @@
 inherit pypi setuptools3
 require python-twisted.inc
 
-PACKAGES_remove = "${PN}-src"
-
 FILES_${PN}-core_append += " \
   ${libdir}/${PYTHON_DIR}/site-packages/twisted/__pycache__ \
   ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__pycache__/*pyc \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb
new file mode 100644
index 0000000..c2e4d2e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twitter_3.7.0.bb
@@ -0,0 +1,3 @@
+require python-twitter.inc
+inherit pypi setuptools3
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb
new file mode 100644
index 0000000..813934c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tzlocal_1.5.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-tzlocal.inc
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
index f6372c8..149078c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
@@ -9,12 +9,4 @@
 
 inherit pypi setuptools3
 
-do_compile_append() {
-    ${PYTHON} setup.py -q bdist_egg --dist-dir ./
-}
-
-do_install_append() {
-    install -m 0644 ${S}/vcversioner*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/
-}
-
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.32.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.32.3.bb
new file mode 100644
index 0000000..e8c08a7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wheel_0.32.3.bb
@@ -0,0 +1,16 @@
+SUMMARY = "The official binary distribution format for Python "
+HOMEPAGE = "https://github.com/pypa/wheel"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9d66b41bc2a080e7174acc5dffecd752"
+
+SRC_URI = "git://github.com/pypa/wheel.git"
+SRCREV ?= "11584b78a56b4eedba4eedc55c9dac8aa2dd7070"
+
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
index c77b86a..90fa387 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
@@ -1,6 +1,6 @@
-From 648a18bfc447f076d48ae4147d984b8ef56e37aa Mon Sep 17 00:00:00 2001
+From fc8e93530ba017ecfe111e53d3cbdc3a5b3ac286 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 30 Jul 2018 16:13:40 +0800
+Date: Fri, 23 Nov 2018 16:58:38 +0800
 Subject: [PATCH 01/11] comment out selinux
 
 Upstream-Status: Inappropriate [oe specific]
@@ -12,7 +12,7 @@
  2 files changed, 8 insertions(+), 3 deletions(-)
 
 diff --git a/blivet/flags.py b/blivet/flags.py
-index 1840121..8789390 100644
+index 4e26d82..94324ff 100644
 --- a/blivet/flags.py
 +++ b/blivet/flags.py
 @@ -20,7 +20,7 @@
@@ -35,7 +35,7 @@
          self.dmraid = True
          self.ibft = True
 diff --git a/blivet/util.py b/blivet/util.py
-index 7334ff6..0f2a995 100644
+index 9daf151..4eac8b9 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
 @@ -3,7 +3,7 @@ import functools
@@ -47,7 +47,7 @@
  import subprocess
  import re
  import sys
-@@ -430,6 +430,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath):
+@@ -444,6 +444,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath):
  def match_path_context(path):
      """ Return the default SELinux context for the given path. """
      context = None
@@ -56,7 +56,7 @@
      try:
          context = selinux.matchpathcon(os.path.normpath(path), 0)[1]
      except OSError as e:
-@@ -454,6 +456,8 @@ def set_file_context(path, context, root=None):
+@@ -468,6 +470,8 @@ def set_file_context(path, context, root=None):
  
              True if successful, False if not.
      """
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
index fea2254..5b38859 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
@@ -1,20 +1,20 @@
-From 596979ed58109141a7fee680ab95b27296c022b1 Mon Sep 17 00:00:00 2001
+From 713cf821ebe17f9e1771502a85e0905ea04dafae Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 14:39:56 +0800
+Date: Fri, 23 Nov 2018 17:03:58 +0800
 Subject: [PATCH 02/11] run_program support timeout
 
 Upstream-Status: Pending
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 ---
- blivet/util.py | 68 +++++++++++++++++++++++++++++++++-------------------------
- 1 file changed, 39 insertions(+), 29 deletions(-)
+ blivet/util.py | 70 ++++++++++++++++++++++++++++++++++------------------------
+ 1 file changed, 41 insertions(+), 29 deletions(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index 0f2a995..05a253c 100644
+index 4eac8b9..4f05076 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -157,6 +157,30 @@ class Path(str):
+@@ -158,6 +158,30 @@ class Path(str):
      def __hash__(self):
          return self._path.__hash__()
  
@@ -45,12 +45,12 @@
  
  def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False):
      if env_prune is None:
-@@ -179,36 +203,22 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -180,35 +204,23 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
              stderr_dir = subprocess.STDOUT
          else:
              stderr_dir = subprocess.PIPE
 -        try:
--            proc = subprocess.Popen(argv,
+-            proc = subprocess.Popen(argv,  # pylint: disable=subprocess-popen-preexec-fn
 -                                    stdin=stdin,
 -                                    stdout=subprocess.PIPE,
 -                                    stderr=stderr_dir,
@@ -78,7 +78,7 @@
 -        program_log.debug("Return code: %d", proc.returncode)
 -
 -    return (proc.returncode, out)
- 
++
 +        res, out = timeout_command(argv, 10,
 +                                   stdin=stdin,
 +                                   stdout=subprocess.PIPE,
@@ -94,9 +94,10 @@
 +                program_log.info("%s", line)
 +
 +    return (res, out)
++
+ 
  
  def run_program(*args, **kwargs):
-     return _run_program(*args, **kwargs)[0]
 -- 
 2.7.4
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
index 38f061e..861b2cd 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
@@ -1,4 +1,4 @@
-From 325898f3f2951bbde07da47888175c427b11ddc3 Mon Sep 17 00:00:00 2001
+From 5d5436dfa3bdde7b4e87ce5a40cbc724199847d6 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 16:18:02 +0800
 Subject: [PATCH 03/11] support infinit timeout
@@ -11,10 +11,10 @@
  1 file changed, 8 insertions(+), 4 deletions(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index 05a253c..d6804be 100644
+index 4f05076..7e89949 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -157,6 +157,7 @@ class Path(str):
+@@ -158,6 +158,7 @@ class Path(str):
      def __hash__(self):
          return self._path.__hash__()
  
@@ -22,7 +22,7 @@
  def timeout_command(argv, timeout, *args, **kwargs):
      """call shell-command and either return its output or kill it
      if it doesn't normally exit within timeout seconds and return None"""
-@@ -168,7 +169,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -169,7 +170,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
          while proc.poll() is None:
              time.sleep(0.1)
              now = datetime.datetime.now()
@@ -31,7 +31,7 @@
                  os.kill(proc.pid, signal.SIGKILL)
                  os.waitpid(-1, os.WNOHANG)
                  program_log.debug("%d seconds timeout" % timeout)
-@@ -182,7 +183,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -183,7 +184,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
      program_log.debug("Return code: %d", proc.returncode)
      return (proc.returncode, proc.stdout.read())
  
@@ -40,7 +40,7 @@
      if env_prune is None:
          env_prune = []
  
-@@ -191,7 +192,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -192,7 +193,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
              os.chroot(root)
  
      with program_log_lock:  # pylint: disable=not-context-manager
@@ -52,7 +52,7 @@
  
          env = os.environ.copy()
          env.update({"LC_ALL": "C",
-@@ -204,7 +208,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -205,7 +209,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
          else:
              stderr_dir = subprocess.PIPE
  
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
index be997ac..526a3b1 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
@@ -1,4 +1,4 @@
-From c31df1c0f5323ddc70e0d1c6d11db2fbf7a024ad Mon Sep 17 00:00:00 2001
+From 3bb8d08bdec2f79bb13c0a44b81718d26e5bdabc Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 16:30:20 +0800
 Subject: [PATCH 04/11] fix new.roots object is not iterable
@@ -11,10 +11,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/blivet/blivet.py b/blivet/blivet.py
-index 3405810..f42b73b 100644
+index ea08837..91c92b2 100644
 --- a/blivet/blivet.py
 +++ b/blivet/blivet.py
-@@ -1198,7 +1198,7 @@ class Blivet(object):
+@@ -1206,7 +1206,7 @@ class Blivet(object):
              p = partition.disk.format.parted_disk.getPartitionByPath(partition.path)
              partition.parted_partition = p
  
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
index ecb9503..9c5d53b 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
@@ -1,4 +1,4 @@
-From b30a74671ca603e6bfd514f72d4fd7fd6fceef54 Mon Sep 17 00:00:00 2001
+From f783b9b00da5df176fcd7927b752f574ca6db319 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 26 Aug 2016 02:02:49 -0400
 Subject: [PATCH 05/11] fix incorrect timeout while system time changed
@@ -22,10 +22,10 @@
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index d6804be..bc08af5 100644
+index 7e89949..5571e73 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -162,14 +162,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -163,14 +163,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
      """call shell-command and either return its output or kill it
      if it doesn't normally exit within timeout seconds and return None"""
      import subprocess, datetime, os, time, signal
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
index da568a4..2e53a64 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
@@ -1,4 +1,4 @@
-From 0659d8a85bcdd76c0b23b8b5af6958783d35ac65 Mon Sep 17 00:00:00 2001
+From 8932ae933f2b6acf5e98c9956beff69ae430eed2 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 16:33:15 +0800
 Subject: [PATCH 06/11] tweak btrfs packages
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
index e301219..b2606d7 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
@@ -1,6 +1,6 @@
-From 9c7a15312259854f12137a30229e52c30fb7c770 Mon Sep 17 00:00:00 2001
+From f53481dc4a56b8a996628733553e080bb0aafdd7 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 31 Aug 2016 21:30:32 -0400
+Date: Fri, 23 Nov 2018 17:07:22 +0800
 Subject: [PATCH 07/11] invoking mount with infinite timeout
 
 This large timeout is needed when running on machines with
@@ -14,18 +14,18 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/blivet/util.py b/blivet/util.py
-index bc08af5..b672787 100644
+index 5571e73..02c8033 100644
 --- a/blivet/util.py
 +++ b/blivet/util.py
-@@ -256,7 +256,7 @@ def mount(device, mountpoint, fstype, options=None):
+@@ -258,7 +258,7 @@ def mount(device, mountpoint, fstype, options=None):
+         makedirs(mountpoint)
  
      argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
-     try:
--        rc = run_program(argv)
-+        rc = run_program(argv, timeout=-1)
-     except OSError:
-         raise
+-    return run_program(argv)
++    return run_program(argv, timeout=-1)
  
+ 
+ def umount(mountpoint):
 -- 
 2.7.4
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
index feb5647..ade1862 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
@@ -1,4 +1,4 @@
-From 7f57b2cd145d67c20beb02d5495b502f7af012cd Mon Sep 17 00:00:00 2001
+From 12e2579333258d1a690f8718e91b0f217078e886 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 8 May 2017 03:54:12 -0400
 Subject: [PATCH 08/11] use oe variable to replace hardcoded dir
@@ -11,7 +11,7 @@
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index 7edab2c..9be3187 100644
+index b745a79..b5b4258 100644
 --- a/setup.py
 +++ b/setup.py
 @@ -61,10 +61,10 @@ class blivet_sdist(sdist):
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
index 30d2d3e..f477877 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From c757666f42f543baeed5df61269798c085665d9b Mon Sep 17 00:00:00 2001
+From 9624b6d0dda40aaecbaf9530be819943575a2ec6 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Thu, 1 Jun 2017 16:05:27 +0800
 Subject: [PATCH 09/11] invoking fsck with infinite timeout
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
index b2f4501..f128490 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From 42d8e57c748951098534bf7f52c4ebc790ef66e9 Mon Sep 17 00:00:00 2001
+From 33844f6773a676bd57240954e402ae9a843663a4 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 16 Jun 2017 15:43:00 +0800
 Subject: [PATCH 10/11] invoking mkfs with infinite timeout
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
index f24ce0a..13c2933 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From a4753b3cbbd5aee59dc53eb16564cafd9862763e Mon Sep 17 00:00:00 2001
+From 21ca2b859a49e96a230d55a7866dfc7ed5d1366c Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 6 Mar 2018 17:28:56 +0800
 Subject: [PATCH 11/11] invoking dd with infinite timeout
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
-index 47ff547..0cd1614 100644
+index 623e1c9..141d8ad 100644
 --- a/blivet/devices/partition.py
 +++ b/blivet/devices/partition.py
-@@ -621,7 +621,7 @@ class PartitionDevice(StorageDevice):
+@@ -618,7 +618,7 @@ class PartitionDevice(StorageDevice):
          cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
                 "seek=%d" % start, "count=%d" % count]
          try:
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-remove-dmraid-dependency-check.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-remove-dmraid-dependency-check.patch
deleted file mode 100644
index 886e3ff..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0012-remove-dmraid-dependency-check.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 4476e846a1e64dde17df2e2370c803ce695514f9 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 6 Aug 2018 17:18:27 +0800
-Subject: [PATCH] remove dmraid dependency check
-
-OE does not support dmraid, remove it from dependency check
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/tasks/availability.py | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/blivet/tasks/availability.py b/blivet/tasks/availability.py
-index 9a87cfd..843cf6a 100644
---- a/blivet/tasks/availability.py
-+++ b/blivet/tasks/availability.py
-@@ -316,8 +316,7 @@ BLOCKDEV_DM_ALL_MODES = (blockdev.DMTechMode.CREATE_ACTIVATE |
-                          blockdev.DMTechMode.QUERY)
- BLOCKDEV_DM = BlockDevTechInfo(plugin_name="dm",
-                                check_fn=blockdev.dm_is_tech_avail,
--                               technologies={blockdev.DMTech.MAP: BLOCKDEV_DM_ALL_MODES,
--                                             blockdev.DMTech.RAID: BLOCKDEV_DM_ALL_MODES})
-+                               technologies={blockdev.DMTech.MAP: BLOCKDEV_DM_ALL_MODES})
- BLOCKDEV_DM_TECH = BlockDevMethod(BLOCKDEV_DM)
- 
- # libblockdev loop plugin required technologies and modes
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-add-Z-y-and-y-to-lvm.pvcreate.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-add-Z-y-and-y-to-lvm.pvcreate.patch
deleted file mode 100644
index 33b5f51..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet/0013-add-Z-y-and-y-to-lvm.pvcreate.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From bddbfa499df16b108f2d892ee48d65617523c33d Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 9 Aug 2018 11:00:39 +0800
-Subject: [PATCH] add `-Z y' and `-y' to lvm.pvcreate
-
-While reinstall a crypt fs, it occasionally failed
-[snip]
-|gi.overrides.BlockDev.LVMError: Process reported exit code 5:
-WARNING: atari signature detected on /dev/mapper/luks-0e5f891c
--7701-48bc-a41e-8d626b6ef953 at offset 466. Wipe it? [y/n]:
-[snip]
-
-Add `-Z y' and `-y' to lvm.pvcreate
-
-Upstream-Status: Submitted [https://github.com/storaged-project/blivet/pull/714]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/formats/lvmpv.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/blivet/formats/lvmpv.py b/blivet/formats/lvmpv.py
-index 260cc0b..4bbb46f 100644
---- a/blivet/formats/lvmpv.py
-+++ b/blivet/formats/lvmpv.py
-@@ -120,9 +120,9 @@ class LVMPhysicalVolume(DeviceFormat):
-         log_method_call(self, device=self.device,
-                         type=self.type, status=self.status)
- 
--        # Consider use of -Z|--zero
--        # -f|--force or -y|--yes may be required
--        blockdev.lvm.pvcreate(self.device, data_alignment=self.data_alignment)
-+        ea_zero = blockdev.ExtraArg.new("-Z", "y")
-+        ea_yes = blockdev.ExtraArg.new("-y", "")
-+        blockdev.lvm.pvcreate(self.device, data_alignment=self.data_alignment, extra=[ea_zero, ea_yes])
- 
-     def _destroy(self, **kwargs):
-         log_method_call(self, device=self.device,
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.0.1.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.2.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.0.1.bb
rename to meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.2.bb
index 75f02f1..45565ba 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivet_3.1.2.bb
@@ -8,7 +8,7 @@
 S = "${WORKDIR}/git"
 B = "${S}"
 
-SRCREV = "ddc24c71bad10208b11ea0c45853898fadd7030b"
+SRCREV = "878f794a38120a652cab0026b77175b099bf1f9d"
 SRC_URI = "git://github.com/rhinstaller/blivet;branch=3.1-release \
            file://0001-comment-out-selinux.patch \
            file://0002-run_program-support-timeout.patch \
@@ -21,8 +21,6 @@
            file://0009-invoking-fsck-with-infinite-timeout.patch \
            file://0010-invoking-mkfs-with-infinite-timeout.patch \
            file://0011-invoking-dd-with-infinite-timeout.patch \
-           file://0012-remove-dmraid-dependency-check.patch \
-           file://0013-add-Z-y-and-y-to-lvm.pvcreate.patch \
 "
 
 UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P<pver>\d+(\.\d+)+)$"
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Set-_supported_filesystems-in-BlivetGUIAnaconda-init.patch b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Set-_supported_filesystems-in-BlivetGUIAnaconda-init.patch
deleted file mode 100644
index 25a71d4..0000000
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Set-_supported_filesystems-in-BlivetGUIAnaconda-init.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From a7b76f783608033e449ba1e33d040c2b40c01a4d Mon Sep 17 00:00:00 2001
-From: Adam Williamson <awilliam@redhat.com>
-Date: Wed, 17 Jan 2018 10:38:18 -0800
-Subject: [PATCH] Set _supported_filesystems in BlivetGUIAnaconda init
-
-BlivetGUIAnaconda subclasses BlivetGUI, but doesn't call the
-parent class's __init__. c4b6e174 added supported_filesystems
-to BlivetGUI and set _supported_filesystems for caching during
-__init__, but this was not also added to BlivetGUIAnaconda, so
-when anything tries to use the supported_filesystems property
-of a BlivetGUIAnaconda instance, it will crash. This is causing
-all attempts to use blivet-gui in anaconda to crash since 2.1.8
-landed in Rawhide.
-
-Upstream-Status: Backport [https://github.com/storaged-project/blivet-gui]
-
-Signed-off-by: Adam Williamson <awilliam@redhat.com>
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
- blivetgui/osinstall.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/blivetgui/osinstall.py b/blivetgui/osinstall.py
-index 21806ca..32ff66b 100644
---- a/blivetgui/osinstall.py
-+++ b/blivetgui/osinstall.py
-@@ -94,6 +94,9 @@ class BlivetGUIAnaconda(BlivetGUI):
-         self.builder.set_translation_domain("blivet-gui")
-         self.builder.add_from_file(locate_ui_file("blivet-gui.ui"))
- 
-+        # supported filesystems
-+        self._supported_filesystems = []
-+
-         # CSS styles
-         css_provider = Gtk.CssProvider()
-         css_provider.load_from_path(locate_css_file("rectangle.css"))
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.8.bb b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.8.bb
rename to meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb
index 5f62b9e..2ea8103 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.8.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.10.bb
@@ -8,9 +8,8 @@
 S = "${WORKDIR}/git"
 B = "${S}"
 
-SRCREV = "a4fd427ee2acc5a8f5fb030bf7816917cee63bd8"
+SRCREV = "67ec0b7a0e065ba24ab87963409bfb21b2aac6dd"
 SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \
-    file://0001-Set-_supported_filesystems-in-BlivetGUIAnaconda-init.patch \
 "
 
 inherit distro_features_check
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.15.bb b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.18.bb
similarity index 94%
rename from meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.15.bb
rename to meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.18.bb
index 07876a9..1a03884 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.15.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.18.bb
@@ -18,7 +18,7 @@
            file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
            file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
            "
-SRCREV = "07c4d89129fa6b460acc86daf58eb5ff64cdc832"
+SRCREV = "ad942f2644337c4672c7a22bd24a5b7268c1f5e9"
 
 UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"