Squashed 'import-layers/meta-openembedded/' content from commit 247b126

Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0
git-subtree-dir: import-layers/meta-openembedded
git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.2.bb
new file mode 100644
index 0000000..3d382b9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python interface for Remember The Milk API"
+AUTHOR = "Sridhar Ratnakumar / srid"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df"
+
+inherit pypi distutils
+
+SRC_URI[md5sum] = "34423f39caf7df8a9db8e243be9cf1a0"
+SRC_URI[sha256sum] = "d9d46d096a38cb692b55f4ee9f364d54348298e9497b11c1ef057539b5de1567"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb
new file mode 100644
index 0000000..e64dd8f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "AutobahnPython provides a WebSocket (RFC6455, Hybi-10 to -17, Hixie-76) framework for creating WebSocket-based clients and servers. \
+AutobahnPython also includes an implementation of WAMP (The WebSockets Application Messaging Protocol), a light-weight,  \
+asynchronous RPC/PubSub over JSON/WebSocket protocol."
+HOMEPAGE = "http://autobahn.ws/python"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = " file://autobahn/__init__.py;beginline=1;endline=17;md5=1fdeccf6e5b70cda64cc1345597c18e3"
+
+SRC_URI[md5sum] = "160429e7fb043940e79aa7f4ebbab57a"
+SRC_URI[sha256sum] = "94ae5c6f37f9fe7c9d3f12c170fcc273afed4104a1c5508b26d6014bb9e6373e"
+
+PYPI_PACKAGE_EXT = "zip"
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "python python-pprint python-twisted-protocols python-netserver python-twisted-web"
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb
new file mode 100644
index 0000000..5e2d174
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "The ssl.match_hostname() function from Python 3.4"
+DESCRIPTION = "The Secure Sockets layer is only actually secure if you check the hostname in the \
+certificate returned by the server to which you are connecting, and verify that it matches to hostname \
+that you are trying to reach. But the matching logic, defined in RFC2818, can be a bit tricky to implement \
+on your own. So the ssl package in the Standard Library of Python 3.2 and greater now includes a \
+match_hostname() function for performing this check instead of requiring every application to \
+implement the check separately. This backport brings match_hostname() to users of earlier versions of Python"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=77b684960b86b7a4bb4a450ffde08605"
+
+SRC_URI[md5sum] = "788214f20214c64631f0859dc79f23c6"
+SRC_URI[sha256sum] = "07410e7fb09aab7bdaf5e618de66c3dac84e2e3d628352814dc4c37de321d6ae"
+
+PYPI_PACKAGE = "backports.ssl_match_hostname"
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_2.0.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_2.0.0.bb
new file mode 100644
index 0000000..3cbe33e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_2.0.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Modern password hashing for your software and your servers."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=e19d0fe40c5ce4109e6bcbf4aab2a5bd"
+
+DEPENDS = "python-cffi-native"
+
+SRC_URI[md5sum] = "e7fb17be46904cdb2ae6a062859ee58c"
+SRC_URI[sha256sum] = "8b2d197ef220d10eb74625dde7af3b10daa973ae9a1eadd6366f763fad4387fa"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+    python-cffi \
+    python-six \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.5.bb
new file mode 100644
index 0000000..541a79d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.5.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A behavior-driven development framework, Python style"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
+
+SRC_URI[md5sum] = "3af4bc2886d2be982e41bfaba61da3bc"
+SRC_URI[sha256sum] = "81b731ac5187e31e4aad2594944fa914943683a9818320846d037c5ebd6d5d0b"
+
+RDEPENDS_${PN} += "python-difflib python-setuptools python-pkgutil python-misc python-argparse python-xml python-importlib python-enum34 python-parse python-parse-type python-six"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb
new file mode 100644
index 0000000..145f1fb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
+HOMEPAGE = "https://github.com/ilanschnell/bitarray"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3ba469353f9f2a244b2075902351e37d"
+
+SRC_URI[md5sum] = "3825184f54f4d93508a28031b4c65d3b"
+SRC_URI[sha256sum] = "7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18"
+
+inherit pypi setuptools
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-blinker_1.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-blinker_1.4.bb
new file mode 100644
index 0000000..0ce141f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-blinker_1.4.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=946d7e89af6f7733aeaebed5635d2682"
+
+SRC_URI[md5sum] = "8b3722381f83c2813c52de3016b68d33"
+SRC_URI[sha256sum] = "471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc
new file mode 100644
index 0000000..0fe8b15
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc
@@ -0,0 +1,11 @@
+SUMMARY = "Python package for providing Mozilla's CA Bundle."
+DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \
+Python code. This is useful for verifying HTTP requests, for example.  This is the same CA Bundle \
+which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set."
+HOMEPAGE = " http://certifi.io/"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1"
+
+SRC_URI[md5sum] = "5d672aa766e1f773c75cfeccd02d3650"
+SRC_URI[sha256sum] = "5e8eccf95924658c97b990b50552addb64f55e1e3dfe4880456ac1f287dc79d0"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2016.2.28.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2016.2.28.bb
new file mode 100644
index 0000000..adfe623
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2016.2.28.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-certifi.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.5.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.5.2.bb
new file mode 100644
index 0000000..8b25877
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.5.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Foreign Function Interface for Python calling C code"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
+DEPENDS = "libffi python-pycparser"
+
+SRC_URI[md5sum] = "fa766133f7299464c8bf857e0c966a82"
+SRC_URI[sha256sum] = "da9bde99872e46f7bb5cff40a9b1cc08406765efafb583c704de108b6cb821dd"
+
+inherit pypi setuptools
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-chardet_2.3.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-chardet_2.3.0.bb
new file mode 100644
index 0000000..dfc979b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-chardet_2.3.0.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Universal encoding detector for Python 2 and 3"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI[md5sum] = "25274d664ccb5130adae08047416e1a8"
+SRC_URI[sha256sum] = "e53e38b3a4afe6d1132de62b7400a4ac363452dc5dfcf8d88e8e0cce663c68aa"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb
new file mode 100644
index 0000000..20fc2fd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python template engine and code generation tool"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aff1107514aa6aae948f9fe71fdc393b"
+
+PR = "r3"
+
+PYPI_PACKAGE = "Cheetah"
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "python-pickle python-pprint"
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI[md5sum] = "853917116e731afbc8c8a43c37e6ddba"
+SRC_URI[sha256sum] = "be308229f0c1e5e5af4f27d7ee06d90bb19e6af3059794e5fd536a6f29a9b550"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb
new file mode 100644
index 0000000..120a8a7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "A component which enables calling DBus methods and registering on DBus signals from Javascript"
+HOMEPAGE = "https://github.com/01org/cloudeebus"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI = "git://github.com/01org/cloudeebus.git;protocol=http;branch=master "
+SRCREV = "b5cc957eeabfe98cb996baf8e5a0ac848993c3d4"
+
+S = "${WORKDIR}/git"
+
+inherit distutils 
+
+DEPENDS_${PN} = "python python-distribute"
+RDEPENDS_${PN} = "python python-dbus python-json python-argparse python-pygobject python-autobahn python-twisted python-subprocess"
+
+do_install_prepend() {
+  install -d ${D}${PYTHON_SITEPACKAGES_DIR}/${PN}
+}
+
+DISTUTILS_INSTALL_ARGS = "--root=${D} \
+    --single-version-externally-managed \
+    --prefix=${prefix} \
+    --install-lib=${PYTHON_SITEPACKAGES_DIR} \
+    --install-data=${datadir}"
+
+do_install_append() {
+  distutils_do_install
+  install -d ${D}${datadir}/doc/${BPN}/
+  install -m 0644 ${S}/README.md ${D}${datadir}/doc/${BPN}/
+}
+
+FILES_${PN} += "${datadir}/cloudeebus"
+FILES_${PN} += "${sysconfdir}/dbus-1/system.d/org.cloudeebus.conf"
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.6.8.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.6.8.bb
new file mode 100644
index 0000000..f4962d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.6.8.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Extra features for standard library's cmd module"
+HOMEPAGE = "http://packages.python.org/cmd2/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=21;endline=21;md5=a00047b7e92e0781452d0beba4e7b44e"
+
+SRC_URI[md5sum] = "c32c9a897e010c977b50c1ddc13f09fe"
+SRC_URI[sha256sum] = "ac780d8c31fc107bf6b4edcbcea711de4ff776d59d89bb167f8819d2d83764a8"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "python-pyparsing"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_1.1.bb
new file mode 100644
index 0000000..2150e50
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_1.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Test vectors for the cryptography package."
+SECTION = "devel/python"
+LICENSE = "Apache-2.0 | BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4"
+DEPENDS = "python-cryptography"
+SRCNAME = "cryptography_vectors"
+
+SRC_URI = "https://pypi.python.org/packages/source/c/cryptography-vectors/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+SRC_URI[md5sum] = "0ad422501074929c06b7edd40df41844"
+SRC_URI[sha256sum] = "a929fbb0eac391c93c5745451a4d4157a8bc18eb2e69faf3af1d825ceacbf32c"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Comment_lingering_SSLv2_symbol.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Comment_lingering_SSLv2_symbol.patch
new file mode 100644
index 0000000..b28e7ef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Comment_lingering_SSLv2_symbol.patch
@@ -0,0 +1,24 @@
+From f326e4a97cce6b9479560ce0c65ad18d54393f96 Mon Sep 17 00:00:00 2001
+From: Cory Benfield <lukasaoz@gmail.com>
+Date: Mon, 14 Dec 2015 15:37:46 +0000
+Subject: [PATCH] Comment lingering SSLv2 symbol.
+
+---
+ src/_cffi_src/openssl/ssl.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: cryptography-1.1/src/_cffi_src/openssl/ssl.py
+===================================================================
+--- cryptography-1.1.orig/src/_cffi_src/openssl/ssl.py
++++ cryptography-1.1/src/_cffi_src/openssl/ssl.py
+@@ -421,6 +421,10 @@ const long SSL_OP_LEGACY_SERVER_CONNECT
+ static const long Cryptography_HAS_SECURE_RENEGOTIATION = 1;
+ #endif
+ 
++/* Cryptography now compiles out all SSLv2 bindings. This exists to allow
++ * clients that use it to check for SSLv2 support to keep functioning as
++ * expected.
++ */
+ static const long Cryptography_HAS_SSL2 = 0;
+ 
+ #ifdef OPENSSL_NO_SSL3_METHOD
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Remove_SSLv2_bindings.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Remove_SSLv2_bindings.patch
new file mode 100644
index 0000000..8522325
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Remove_SSLv2_bindings.patch
@@ -0,0 +1,75 @@
+From 90c6a53a885dd5c66992309e0af98ac554f1bb97 Mon Sep 17 00:00:00 2001
+From: Cory Benfield <lukasaoz@gmail.com>
+Date: Mon, 14 Dec 2015 08:35:20 +0000
+Subject: [PATCH] Remove SSLv2 bindings.
+
+This commit removes bindings that allow users to set SSLv2 handshake
+methods. These are regarded as unnecessary and out-of-date: see #2527.
+This commit does leave in a few options that refer to SSLv2 in order to
+avoid breaking deployments that rely on them, and in order to allow
+users to continue to request that SSLv2 not be enabled at all in their
+OpenSSL.
+
+Upstream-Status: Backport
+
+This fixes the compile issue after updating to openssl 1.0.2h
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ src/_cffi_src/openssl/ssl.py                            | 17 +----------------
+ .../hazmat/bindings/openssl/_conditional.py             |  6 ------
+ 2 files changed, 1 insertion(+), 22 deletions(-)
+
+Index: cryptography-1.1/src/_cffi_src/openssl/ssl.py
+===================================================================
+--- cryptography-1.1.orig/src/_cffi_src/openssl/ssl.py
++++ cryptography-1.1/src/_cffi_src/openssl/ssl.py
+@@ -292,15 +292,6 @@ unsigned long SSL_CTX_add_extra_chain_ce
+ 
+ /*  methods */
+ 
+-/* SSLv2 support is compiled out of some versions of OpenSSL.  These will
+- * get special support when we generate the bindings so that if they are
+- * available they will be wrapped, but if they are not they won't cause
+- * problems (like link errors).
+- */
+-const SSL_METHOD *SSLv2_method(void);
+-const SSL_METHOD *SSLv2_server_method(void);
+-const SSL_METHOD *SSLv2_client_method(void);
+-
+ /*
+  * TLSv1_1 and TLSv1_2 are recent additions.  Only sufficiently new versions of
+  * OpenSSL support them.
+@@ -429,14 +420,8 @@ const long SSL_OP_LEGACY_SERVER_CONNECT
+ #else
+ static const long Cryptography_HAS_SECURE_RENEGOTIATION = 1;
+ #endif
+-#ifdef OPENSSL_NO_SSL2
++
+ static const long Cryptography_HAS_SSL2 = 0;
+-SSL_METHOD* (*SSLv2_method)(void) = NULL;
+-SSL_METHOD* (*SSLv2_client_method)(void) = NULL;
+-SSL_METHOD* (*SSLv2_server_method)(void) = NULL;
+-#else
+-static const long Cryptography_HAS_SSL2 = 1;
+-#endif
+ 
+ #ifdef OPENSSL_NO_SSL3_METHOD
+ static const long Cryptography_HAS_SSL3_METHOD = 0;
+Index: cryptography-1.1/src/cryptography/hazmat/bindings/openssl/_conditional.py
+===================================================================
+--- cryptography-1.1.orig/src/cryptography/hazmat/bindings/openssl/_conditional.py
++++ cryptography-1.1/src/cryptography/hazmat/bindings/openssl/_conditional.py
+@@ -274,12 +274,6 @@ CONDITIONAL_NAMES = {
+         "TLSv1_2_client_method",
+     ],
+ 
+-    "Cryptography_HAS_SSL2": [
+-        "SSLv2_method",
+-        "SSLv2_client_method",
+-        "SSLv2_server_method",
+-    ],
+-
+     "Cryptography_HAS_SSL3_METHOD": [
+         "SSLv3_method",
+         "SSLv3_client_method",
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/build_fix_openssl_1.0.1g.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/build_fix_openssl_1.0.1g.patch
new file mode 100644
index 0000000..d08994f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/build_fix_openssl_1.0.1g.patch
@@ -0,0 +1,28 @@
+build issue do to openssl 1.0.1g upgrade
+
+BIO *BIO_new_mem_buf(void *, int);
+      ^
+In file included from /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm/usr/include/openssl/asn1.h:65:0,
+from build/temp.linux-x86_64-2.7/_openssl.c:413:
+
+
+Upstream-Status: Pending
+
+seems to be a known issue
+https://github.com/pyca/cryptography/issues/2750
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+Index: src/_cffi_src/openssl/bio.py
+===================================================================
+--- a/src/_cffi_src/openssl/bio.py
++++ b/src/_cffi_src/openssl/bio.py
+@@ -99,7 +99,7 @@ BIO *BIO_pop(BIO *);
+ BIO *BIO_next(BIO *);
+ BIO *BIO_find_type(BIO *, int);
+ BIO_METHOD *BIO_s_mem(void);
+-BIO *BIO_new_mem_buf(void *, int);
++BIO *BIO_new_mem_buf(const void *, int);
+ BIO_METHOD *BIO_s_file(void);
+ BIO *BIO_new_file(const char *, const char *);
+ BIO *BIO_new_fp(FILE *, int);
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/run-ptest b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/run-ptest
new file mode 100644
index 0000000..0ba239c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/run-ptest
@@ -0,0 +1,2 @@
+#!/bin/sh
+py.test
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_1.1.bb
new file mode 100644
index 0000000..665a4cb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_1.1.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Provides cryptographic recipes and primitives to Python developers"
+LICENSE = "Apache-2.0 | BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4"
+DEPENDS += " python-cffi-native python-cffi python-enum34 python-six python-pyasn1"
+SRCNAME = "cryptography"
+
+SRC_URI = "file://run-ptest \
+           file://build_fix_openssl_1.0.1g.patch \
+           file://Remove_SSLv2_bindings.patch \
+           file://Comment_lingering_SSLv2_symbol.patch"
+
+SRC_URI[md5sum] = "dd06da41535184f48f2c8e8b74dd570f"
+SRC_URI[sha256sum] = "059bc6428b1d0e2317f505698602642f1d8dda5b120ec573a59a430d8cb7a32d"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+                  python-pyasn1\
+                  python-six\
+                  python-cffi\
+                  python-enum34\
+                  python-setuptools\
+                  python-pycparser\
+                  python-subprocess\
+                  python-threading\
+                  python-numbers\
+                  python-contextlib\
+                  python-ipaddress\
+                  python-pyasn1\
+                  python-idna\
+"
+
+RDEPENDS_${PN}-ptest = "\
+                       ${PN}\
+                       python-pytest\
+                       python-pretend\
+                       python-iso8601\
+                       python-cryptography-vectors\
+"
+
+inherit ptest
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+    install -d ${D}${PTEST_PATH}/tests/hazmat
+    cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/
+}
+
+FILES_${PN}-dbg += " \
+    ${libdir}/python2.7/site-packages/${SRCNAME}/hazmat/bindings/.debug \
+    "
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
new file mode 100644
index 0000000..f5945b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \
+It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
+and the messy, low-level world of C."
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
+SRCNAME = "Cython"
+BBCLASSEXTEND = "native"
+
+SRC_URI = "http://www.cython.org/release/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+SRC_URI[md5sum] = "14fbc970f4a856845e633cbc09e61048"
+SRC_URI[sha256sum] = "6de44d8c482128efc12334641347a9c3e5098d807dd3c69e867fa8f84ec2a3f1"
+
+RDEPENDS_${PN} += "\
+    ${PYTHON_PN}-netserver \
+    ${PYTHON_PN}-subprocess \
+    ${PYTHON_PN}-shell \
+"
+RDEPENDS_${PN}_class-native = ""
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.24.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.24.bb
new file mode 100644
index 0000000..6be0b1e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.24.bb
@@ -0,0 +1,6 @@
+inherit setuptools
+require python-cython.inc
+
+RDEPENDS_${PN} += "\
+    python-distribute \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.6.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.6.bb
new file mode 100644
index 0000000..b17b366
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.6.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Library to enable your code run as a daemon process on Unix-like systems"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=13e982bf1b7b164b9d6d1665dac83873"
+SRCNAME = "daemonize"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+               python-fcntl \
+               python-unixadmin \
+               python-logging \
+               python-resource \
+"
+
+SRC_URI[md5sum] = "17bc788a8524b104d4639a68623461e3"
+SRC_URI[sha256sum] = "8aa66bad9aa10c682302a4ea9675874191304adeb3239e0776f1ca3041d30619"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
new file mode 100644
index 0000000..a944ef2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc
@@ -0,0 +1,21 @@
+SUMMARY = "Extensions to the standard Python datetime module"
+DESCRIPTION = "The dateutil module provides powerful extensions to the datetime module available in the Python standard library."
+HOMEPAGE = "https://dateutil.readthedocs.org"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=51430b33c900f45f999c459ee29ca493"
+PR = "r0"
+
+SRC_URI[md5sum] = "eafe168e8f404bf384514f5116eedbb6"
+SRC_URI[sha256sum] = "063907ef47f6e187b8fe0728952e4effb587a34f2dc356888646f9b71fbb2e4b"
+
+PYPI_PACKAGE = "python-dateutil"
+inherit pypi 
+
+PACKAGES =+ "${PN}-zoneinfo"
+FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo"
+
+RDEPENDS_${PN} = "\
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-datetime \
+    ${PYTHON_PN}-six \
+    "
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.5.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.5.2.bb
new file mode 100644
index 0000000..12ae4c3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.5.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-dateutil.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch
new file mode 100644
index 0000000..fdd00b6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch
@@ -0,0 +1,53 @@
+From eebe0f66435c4d821b0f5f93f69efe17b4a384c2 Mon Sep 17 00:00:00 2001
+From: Simon Busch <simon.busch@lge.com>
+Date: Wed, 9 Apr 2014 13:18:33 +0200
+Subject: [PATCH 1/2] Add functionality to add own objects to internal object
+ list
+
+In some case the tests might want to create dynamically dbus objects which extended
+functionality from own class definitions within templates. In such cases we need to
+register those objects with the internal object manager of dbusmock.
+
+Signed-off-by: Simon Busch <simon.busch@lge.com>
+---
+ dbusmock/__init__.py   |    4 ++--
+ dbusmock/mockobject.py |    8 ++++++++
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/dbusmock/__init__.py b/dbusmock/__init__.py
+index f799cc7..6718c06 100644
+--- a/dbusmock/__init__.py
++++ b/dbusmock/__init__.py
+@@ -14,8 +14,8 @@ __license__ = 'LGPL 3+'
+ __version__ = '0.10.1'
+ 
+ from dbusmock.mockobject import (DBusMockObject, MOCK_IFACE,
+-                                 OBJECT_MANAGER_IFACE, get_object, get_objects)
++                                 OBJECT_MANAGER_IFACE, get_object, get_objects, add_object)
+ from dbusmock.testcase import DBusTestCase
+ 
+ __all__ = ['DBusMockObject', 'MOCK_IFACE', 'OBJECT_MANAGER_IFACE',
+-           'DBusTestCase', 'get_object', 'get_objects']
++           'DBusTestCase', 'get_object', 'get_objects', 'add_object']
+diff --git a/dbusmock/mockobject.py b/dbusmock/mockobject.py
+index 97b79ce..a98e03d 100644
+--- a/dbusmock/mockobject.py
++++ b/dbusmock/mockobject.py
+@@ -682,6 +682,14 @@ dbus.service._method_lookup = _dbusmock_method_lookup
+ # Helper API for templates
+ #
+ 
++def add_object(path, obj):
++    if path in objects:
++        raise dbus.exceptions.DBusException(
++                'org.freedesktop.DBus.Mock.NameError',
++                'object %s already exists' % path)
++
++    objects[path] = obj
++
+ 
+ def get_objects():
+     '''Return all existing object paths'''
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch
new file mode 100644
index 0000000..981694f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch
@@ -0,0 +1,29 @@
+From ff1dffd5673bcd2cbd9554ad62476d108dbc18af Mon Sep 17 00:00:00 2001
+From: Simon Busch <simon.busch@lge.com>
+Date: Wed, 9 Apr 2014 13:20:33 +0200
+Subject: [PATCH 2/2] Add possibility to import templates from packages
+
+Does not have any unit tests yet.
+
+Signed-off-by: Simon Busch <simon.busch@lge.com>
+---
+ dbusmock/mockobject.py |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/dbusmock/mockobject.py b/dbusmock/mockobject.py
+index a98e03d..9530c2a 100644
+--- a/dbusmock/mockobject.py
++++ b/dbusmock/mockobject.py
+@@ -49,6 +49,9 @@ def load_module(name):
+ 
+         return module
+ 
++    if '.' in name:
++        return importlib.import_module(name)
++
+     return importlib.import_module('dbusmock.templates.' + name)
+ 
+ 
+-- 
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb
new file mode 100644
index 0000000..2520bfc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb
@@ -0,0 +1,21 @@
+# Copyright (c) 2014 LG Electronics, Inc.
+
+SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus"
+AUTHOR = "Martin Pitt <martin.pitt@ubuntu.com>"
+SECTION = "devel/python"
+
+LICENSE = "GPL-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+DEPENDS += "python-pygobject python-dbus"
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BP}.tar.gz"
+SRC_URI[md5sum] = "7370d325c4a75494dd71885ca65b79e8"
+SRC_URI[sha256sum] = "03aadc93bdc26ea18d4d78fcff7b6cb34f4e18623bc5cc41cf9539d663cee11e"
+
+SRC_URI += " \
+    file://0001-Add-functionality-to-add-own-objects-to-internal-obj.patch \
+    file://0002-Add-possibility-to-import-templates-from-packages.patch \
+"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc
new file mode 100644
index 0000000..5710012
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Python decorator utilities"
+DESCRIPTION = "\
+The aim of the decorator module it to simplify the usage of decorators \
+for the average programmer, and to popularize decorators by showing \
+various non-trivial examples. Of course, as all techniques, decorators \
+can be abused and you should not try to solve every problem with a \
+decorator, just because you can."
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=41e24e0e235a97e60cdb5c4137fa2cd0"
+
+SRC_URI[md5sum] = "f12c5651ccd707e12a0abaa4f76cd69a"
+SRC_URI[sha256sum] = "90022e83316363788a55352fe39cfbed357aa3a71d90e5f2803a35471de4bba8"
+
+inherit pypi
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.0.9.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.0.9.bb
new file mode 100644
index 0000000..f262168
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.0.9.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-decorator.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb
new file mode 100644
index 0000000..4d071c4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Migrations for Django"
+DESCRIPTION = "South is an intelligent database migrations library for the Django web framework. It is database-independent and DVCS-friendly, as well as a whole host of other features."
+HOMEPAGE = "http://south.aeracode.org/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=17;endline=18;md5=2155d8ae21e7c23101d5febac696b27e"
+
+SRC_URI[md5sum] = "c76a9758b2011bc3b6c39f881bba2f66"
+SRC_URI[sha256sum] = "d360bd31898f9df59f6faa786551065bba45b35e7ee3c39b381b4fbfef7392f4"
+
+PYPI_PACKAGE = "South"
+inherit pypi distutils
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.8.8.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.8.8.bb
new file mode 100644
index 0000000..e56c555
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.8.8.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A high-level Python Web framework"
+HOMEPAGE = "http://www.djangoproject.com/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
+
+SRC_URI[md5sum] = "08ecf83b7e9d064ed7e3981ddc3a8a15"
+SRC_URI[sha256sum] = "8255242fa0d9e0bf331259a6bdb81364933acbe8863291661558ffdb2fc9ed70"
+
+PYPI_PACKAGE = "Django"
+inherit pypi setuptools
+
+FILES_${PN} += "${datadir}/django"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.2.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.2.0.bb
new file mode 100644
index 0000000..1feaa7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.2.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API."
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a30b9a8d0a5585c482c6c5a6d54aaebc"
+
+SRC_URI[md5sum] = "14ee0361db7fbaed982220c09ef8e0b9"
+SRC_URI[sha256sum] = "5032559e0f0835419763b3d1d88ad31ea4fe40935712db86014f2a341c89fa3d"
+
+PYPI_PACKAGE_EXT = "zip"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.2.bb
new file mode 100644
index 0000000..5083bda
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.2.bb
@@ -0,0 +1,8 @@
+SUMMARY = "backport of Python 3.4's enum package"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://enum/LICENSE;md5=0a97a53a514564c20efd7b2e8976c87e"
+
+SRC_URI[md5sum] = "025bb71b3f9d2fad15d0ee53e48dc873"
+SRC_URI[sha256sum] = "2475d7fcddf5951e92ff546972758802de5260bf409319a9f1934e6bbc8b1dc7"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb
new file mode 100644
index 0000000..c4752d3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Epydoc is a tool for generating API documentation for Python modules, based on their docstrings" 
+LICENSE = "MIT" 
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=011c0d78eb6054d731c879132d7313f0"
+HOMEPAGE = "http://epydoc.sourceforge.net/" 
+
+SRC_URI[md5sum] = "cdd6f6c76dd8bab5e653a343a0544294"
+SRC_URI[sha256sum] = "d4e5c8d90937d01b05170f592c1fa9b29e9ed0498dfe7f0eb2a3af61725b6ad1"
+
+inherit pypi distutils 
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.6.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.6.0.bb
new file mode 100644
index 0000000..e555552
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.6.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Python evdev lib"
+HOMEPAGE = "https://github.com/gvalkov/python-evdev"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2"
+
+SRC_URI = "https://github.com/gvalkov/python-evdev/archive/v${PV}.zip"
+
+SRC_URI[md5sum] = "24e4ffa98e338b535eae44d91d609005"
+SRC_URI[sha256sum] = "61f6893d80da87a995e5781c74d22a39448b1b32004ffac2f31817017709be04"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc
new file mode 100644
index 0000000..1a02a4f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "A Python library for generating news feeds in RSS and Atom formats"
+HOMEPAGE = "http://code.google.com/p/feedformatter/"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d"
+SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85"
+PR = "r0"
+
+SRC_URI = "git://github.com/marianoguerra/feedformatter.git"
+
+S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb
new file mode 100644
index 0000000..175f944
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-feedformatter.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb
new file mode 100644
index 0000000..3ac18b0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python Atom and RSS feed parser"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c21a7713ef6dc1b99644061c397e7c2a"
+
+SRC_URI[md5sum] = "d552f7a2a55e8e33b2a3fe1082505b42"
+SRC_URI[sha256sum] = "bd030652c2d08532c034c27fcd7c85868e7fa3cb2b17f230a44a6bbc92519bf9"
+
+inherit pypi setuptools
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
new file mode 100644
index 0000000..d08883d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Brcrypt hashing for Flask."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ee2ee5bee7fe96597770e92db5719a8"
+
+SRC_URI[md5sum] = "d345c36ac6637d3ca9fa942e238d00ca"
+SRC_URI[sha256sum] = "d71c8585b2ee1c62024392ebdbc447438564e2c8c02b4e57b56a4cafd8d13c5f"
+
+PYPI_PACKAGE = "Flask-Bcrypt"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "python-bcrypt"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.5.7.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.5.7.bb
new file mode 100644
index 0000000..ecf89ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.5.7.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "An extension that includes Bootstrap in your project, without any boilerplate code."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f270fbb7d3ea88731bfc00916750c6bc"
+
+SRC_URI[md5sum] = "4471ad68dbf71a3c68e00bd0e1301a9f"
+SRC_URI[sha256sum] = "020bf9fcca6d69dce3b19bcb80852da929a2b1adde6cb4d47a4402f5ce54ef78"
+
+PYPI_PACKAGE = "Flask-Bootstrap"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login.inc
new file mode 100644
index 0000000..95c4428
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login.inc
@@ -0,0 +1,14 @@
+SUMMARY = "User session management for Flask"
+DESCRIPTION = "Flask-Login provides user session management for Flask. \
+It handles the common tasks of logging in, logging out, and remembering \
+your users’ sessions over extended periods of time."
+HOMEPAGE = " https://github.com/maxcountryman/flask-login"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8aa87a1cd9fa41d969ad32cfdac2c596"
+
+SRC_URI[md5sum] = "c0a7eaf28623f0aeac4929dc05a7a064"
+SRC_URI[sha256sum] = "83d5f10e5c4f214feed6cc41c212db63a58a15ac32e56df81591bfa0a5cee3e5"
+
+PYPI_PACKAGE = "Flask-Login"
+
+RDEPENDS_${PN} = "${PYTHON_PN}-flask"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login_0.2.11.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login_0.2.11.bb
new file mode 100644
index 0000000..510cedf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login_0.2.11.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-flask-login.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb
new file mode 100644
index 0000000..8ff6abc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "The navigation of Flask application."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=af2ec695dc1f3eb7bd74f79a68a0d789"
+
+SRC_URI[md5sum] = "d1075ee02a3f69da37e5cadad3395f31"
+SRC_URI[sha256sum] = "c42d30efa989ca877444a410e8a1cd2563546f9effe3d9fe388eedf7a6c69285"
+
+PYPI_PACKAGE = "Flask-Navigation"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "python-blinker"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
new file mode 100644
index 0000000..939113b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc
@@ -0,0 +1,13 @@
+SUMMARY = "PyMongo support for Flask applications"
+DESCRIPTION = "PyMongo support for Flask applications."
+HOMEPAGE = "https://github.com/mitsuhiko/flask/"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;startline=1;endline=24;md5=dff998d5a8469503612ee7757f3a2052"
+
+SRC_URI[md5sum] = "457a210f35ba49d2623dbcf27fbb89e1"
+SRC_URI[sha256sum] = "707ddff92f5b7bdc34d401f1f3857a3d1a9f5dba76e6a1422ccbc3651e2ca521"
+
+PYPI_PACKAGE = "Flask-PyMongo"
+
+RDEPENDS_${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.4.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.4.0.bb
new file mode 100644
index 0000000..d41d023
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.4.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-flask-pymongo.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.1.bb
new file mode 100644
index 0000000..a258713
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Adds SQLAlchemy support to your Flask application."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5ed1b8cc741515a835a7f6bf2f62ef4a"
+
+SRC_URI[md5sum] = "dc15fe08b07b434d3d2c4063b4674b72"
+SRC_URI[sha256sum] = "c5244de44cc85d2267115624d83faef3f9e8f088756788694f305a5d5ad137c5"
+
+PYPI_PACKAGE = "Flask-SQLAlchemy"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "python-sqlalchemy"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch
new file mode 100644
index 0000000..678f706
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Inappropriate [configuration]
+
+Subject: [PATCH] import simplejson as json
+
+At runtime python-Flask-WTF tries to import json, but the module is not 
+available, import simplejson as json solve the issue.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ flask_wtf/recaptcha/validators.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/flask_wtf/recaptcha/validators.py b/flask_wtf/recaptcha/validators.py
+index bcff23d..4a244bb 100644
+--- a/flask_wtf/recaptcha/validators.py
++++ b/flask_wtf/recaptcha/validators.py
+@@ -8,7 +8,7 @@ from flask import request, current_app
+ from wtforms import ValidationError
+ from werkzeug import url_encode
+ from .._compat import to_bytes, to_unicode
+-import json
++import simplejson as json
+ 
+ RECAPTCHA_VERIFY_SERVER = 'https://www.google.com/recaptcha/api/siteverify'
+ RECAPTCHA_ERROR_CODES = {
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb
new file mode 100644
index 0000000..79afaf6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Simple integration of Flask and WTForms."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=507e8635f25a06dc4f041a3a1b3359b3"
+
+SRC_URI[md5sum] = "c53a74e8ba481bf53405fd5efdf0339e"
+SRC_URI[sha256sum] = "bd99316c97ed1d1cb90b8f0c242c86420a891a6a2058f20717e424bf5b0bb80e"
+
+SRC_URI += " file://import-simplejson-as-json.patch"
+
+PYPI_PACKAGE = "Flask-WTF"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+    python-wtforms \
+    python-simplejson \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
new file mode 100644
index 0000000..4923726
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc
@@ -0,0 +1,14 @@
+SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions"
+DESCRIPTION = "\
+Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \
+intentions. And before you ask: It’s BSD licensed!"
+HOMEPAGE = "https://github.com/mitsuhiko/flask/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=79aa8b7bc4f781210d6b5c06d6424cb0"
+
+SRC_URI[md5sum] = "378670fe456957eb3c27ddaef60b2b24"
+SRC_URI[sha256sum] = "4c83829ff83d408b5e1d4995472265411d2c414112298f2eb4b359d9e4563373"
+
+PYPI_PACKAGE = "Flask"
+
+RDEPENDS_${PN} = "${PYTHON_PN}-werkzeug ${PYTHON_PN}-jinja2 ${PYTHON_PN}-itsdangerous"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.10.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.10.1.bb
new file mode 100644
index 0000000..a0a28ab
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.10.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-flask.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flufl-enum_4.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flufl-enum_4.1.bb
new file mode 100644
index 0000000..ef10848
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flufl-enum_4.1.bb
@@ -0,0 +1,24 @@
+SUMMARY  = "A Python enumeration package."
+DESCRIPTION = "The flufl.enum library is a Python enumeration package. Its goal is to provide simple, \
+specific, concise semantics in an easy to read and write syntax. flufl.enum has just enough of the \
+features needed to make enumerations useful, but without a lot of extra baggage to weigh them down. "
+
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://PKG-INFO;startline=8;endline=9;md5=250adb4c74c359b7049abcd9d6b115e7"
+
+SRC_URI[md5sum] = "461779384c07ed2b5f554a5d51a000c4"
+SRC_URI[sha256sum] = "94da1413ba085473652f81565847913ea1543d1739972ecbd6afe57d7b1b68b4"
+
+PYPI_PACKAGE = "flufl.enum"
+inherit pypi setuptools
+
+PACKAGES =+ "\  
+    ${PN}-test \
+"
+
+FILES_${PN}-doc += "\
+    ${libdir}/${PYTHON_DIR}/site-packages/flufl/enum/*.rst \
+    ${libdir}/${PYTHON_DIR}/site-packages/flufl/enum/docs \
+"
+
+FILES_${PN}-test += "${libdir}/${PYTHON_DIR}/site-packages/flufl/enum/tests"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb
new file mode 100644
index 0000000..2205584
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Google Data APIs Python Client Library"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.txt;md5=473bd4dff0ddca1f958244b2dc7a162c"
+HOMEPAGE = "http://code.google.com/p/gdata-python-client/"
+
+inherit distutils
+
+SRC_URI = "http://gdata-python-client.googlecode.com/files/gdata.py-${PV}.tar.gz"
+SRC_URI[md5sum] = "521f33a377d64f8a6505ba119415b787"
+SRC_URI[sha256sum] = "fc5ddb8f76b17abd728721a0e0177ea35f55a70106f44dc9010b22eceb06abde"
+
+S = "${WORKDIR}/gdata.py-${PV}"
+
+FILES_${PN} += "${datadir}"
+
+RDEPENDS_${PN} = "python-xml"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb
new file mode 100644
index 0000000..d1c0a3c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A coroutine-based Python networking library"
+DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \
+a high-level synchronous API on top of the libevent event loop."
+HOMEPAGE = "http://www.gevent.org"
+LICENSE = "MIT & BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2dbb33d00e1fd31c7041460a81ac0bd2 \
+                    file://LICENSE.pyevent;md5=718070c63de243053e2c616268b00fdd"
+DEPENDS += "python-greenlet libevent"
+RDEPENDS_${PN} += "python-greenlet python-mime python-pprint python-re"
+
+SRC_URI[md5sum] = "ca9dcaa7880762d8ebbc266b11252960"
+SRC_URI[sha256sum] = "54b8d26300ce408c0916a3e63ef6cd3e6aca76230833558deb7de15196ed955e"
+
+inherit pypi setuptools
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.7.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.7.bb
new file mode 100644
index 0000000..a69eb64
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.7.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python lightweight in-process concurrent programming"
+LICENSE = "MIT & PSF"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=03143d7a1a9f5d8a0fee825f24ca9c36 \
+                    file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
+
+SRC_URI[md5sum] = "c2333a8ff30fa75c5d5ec0e67b461086"
+SRC_URI[sha256sum] = "f32c4fa4e06443e1bdb0d32b69e7617c25ff772c3ffc6d0aa63d192e9fd795fe"
+
+PYPI_PACKAGE_EXT = "zip"
+inherit pypi distutils
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib_0.9999999.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib_0.9999999.bb
new file mode 100644
index 0000000..bb92e59
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib_0.9999999.bb
@@ -0,0 +1,8 @@
+SUMMARY = "HTML parser based on the WHATWG HTML specifcation"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c"
+
+SRC_URI[md5sum] = "ef43cb05e9e799f25d65d1135838a96f"
+SRC_URI[sha256sum] = "2612a191a8d5842bfa057e41ba50bbb9dcb722419d2408c78cff4758d0754868"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.1.bb
new file mode 100644
index 0000000..90f47ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Internationalised Domain Names in Applications"
+HOMEPAGE = "https://github.com/kjd/idna"
+LICENSE = "BSD-3-Clause & Python-2.0 & Unicode"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=134bdad79491c37bdae32811572b4bc6"
+
+DEPENDS += "python-pip"
+
+SRC_URI[md5sum] = "f6473caa9c5e0cc1ad3fd5d04c3c114b"
+SRC_URI[sha256sum] = "ed36f281aebf3cd0797f163bb165d84c31507cedd15928b095b1675e2d04c676"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.16.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.16.bb
new file mode 100644
index 0000000..1e97ef7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.16.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2."
+HOMEPAGE = "https://github.com/phihag/ipaddress"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a"
+
+DEPENDS += "python-pip"
+
+SRC_URI[md5sum] = "1e27b62aa20f5b6fc200b2bdbf0d0847"
+SRC_URI[sha256sum] = "5a3182b322a706525c46282ca6f064d27a02cffbd449f9f47416f1dc96aa71b0"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-iso8601_0.1.11.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-iso8601_0.1.11.bb
new file mode 100644
index 0000000..484cf12
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-iso8601_0.1.11.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Simple module to parse ISO 8601 dates"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844"
+
+SRC_URI[md5sum] = "b06d11cd14a64096f907086044f0fe38"
+SRC_URI[sha256sum] = "e8fb52f78880ae063336c94eb5b87b181e6a0cc33a6c008511bac9a6e980ef30"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc
new file mode 100644
index 0000000..73951fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc
@@ -0,0 +1,9 @@
+SUMMARY = "Various helpers to pass trusted data to untrusted environments and back."
+HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b61841e2bf5f07884148e2a6f1bcab0c"
+
+SRC_URI[md5sum] = "a3d55aa79369aef5345c036a8a26307f"
+SRC_URI[sha256sum] = "cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519"
+
+CLEANBROKEN = "1"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb
new file mode 100644
index 0000000..0e156be
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-itsdangerous.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc
new file mode 100644
index 0000000..f6ee79b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=20c831f91dd3bd486020f672ba2be386"
+
+PR = "r0"
+PYPI_PACKAGE = "Jinja2"
+
+SRC_URI[md5sum] = "edb51693fe22c53cee5403775c71a99e"
+SRC_URI[sha256sum] = "bc1ff2ff88dbfacefde4ddde471d1417d3b304e8df103a7a9437d47269201bf4"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-io ${PYTHON_PN}-pickle ${PYTHON_PN}-crypt \
+    ${PYTHON_PN}-math ${PYTHON_PN}-netclient ${PYTHON_PN}-re ${PYTHON_PN}-textutils \
+    ${PYTHON_PN}-lang ${PYTHON_PN}-pprint ${PYTHON_PN}-shell ${PYTHON_PN}-markupsafe"
+
+CLEANBROKEN = "1"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.8.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.8.bb
new file mode 100644
index 0000000..ec8e7ed
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.8.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-jinja2.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.13.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.13.bb
new file mode 100644
index 0000000..085ba59
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.13.bb
@@ -0,0 +1,12 @@
+SUMMARY  = "Appling JSON patches in Python 2.6+ and 3.x"
+HOMEPAGE = "https://github.com/stefankoegl/python-json-patch"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3"
+
+inherit pypi setuptools
+
+SRC_URI[md5sum] = "4d6650ced683f632e117bafe5d9f093b"
+SRC_URI[sha256sum] = "9470656a08002e309632b59772b206ce0564c9a77b44c25f05f49dd2cad248d5"
+
+RDEPENDS_${PN} += "python-re python-json python-jsonpointer"
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer_1.10.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer_1.10.bb
new file mode 100644
index 0000000..8ec8772
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer_1.10.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Resolve JSON Pointers in Python"
+HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3"
+
+inherit pypi setuptools
+
+SRC_URI[md5sum] = "d68c0c6ad6889e9c94ec0feba719e45e"
+SRC_URI[sha256sum] = "9fa5dcac35eefd53e25d6cd4c310d963c9f0b897641772cd6e5e7b89df7ee0b1"
+
+RDEPENDS_${PN} += "python-re python-json"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch
new file mode 100644
index 0000000..a703d34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch
@@ -0,0 +1,14 @@
+--- python-ldap-2.3.9/setup.cfg.orig    2009-08-13 11:07:23.000000000 +0200
++++ python-ldap-2.3.9/setup.cfg 2009-08-13 11:07:37.000000000 +0200
+@@ -1,9 +1,9 @@
+ [_ldap]
+ extra_objects = 
+ extra_compile_args = 
+-libs = ldap_r lber sasl2 ssl crypto
++libs = ldap_r lber ssl crypto
+ library_dirs = /opt/openldap-RE24/lib
+-include_dirs = /opt/openldap-RE24/include /usr/include/sasl
++include_dirs = /opt/openldap-RE24/include
+
+ [egg_info]
+ tag_build =  
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb
new file mode 100644
index 0000000..64e65eb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb
@@ -0,0 +1,12 @@
+SUMMARY = "LDAP client API for Python, C wrapper module around OpenLDAP 2.x with an object-oriented API" 
+LICENSE = "Python-style" 
+LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555"
+HOMEPAGE = "http://www.python-ldap.org/" 
+DEPENDS = "python openldap" 
+
+SRC_URI = "file://setup.cfg.patch"
+SRC_URI[md5sum] = "a9f9f16338288d118a1ae6266c993247"
+SRC_URI[sha256sum] = "62f75b21c5ee744408c9d8b59878328b3bdf47899d30e8abf0c09b3ffb893ed4"
+
+PYPI_PACKAGE = "python-ldap"
+inherit pypi setuptools  
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb
new file mode 100644
index 0000000..0a6ae7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb
@@ -0,0 +1,24 @@
+#
+# Copyright (C) 2012 Wind River Systems, Inc.
+#
+SUMMARY = "Provides a wrapper in Python to LDAP"
+DESCRIPTION = "This module provides access to the LDAP \
+(Lightweight Directory Access Protocol) through Python operations \
+instead of C API. The module mainly acts as a wrapper for the \
+OpenLDAP 2.x libraries. Errors will appear as exceptions."
+
+LICENSE = "PSF"
+HOMEPAGE = "http://www.python-ldap.org/"
+DEPENDS = "python openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+inherit pypi setuptools  
+
+LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555"
+SRC_URI[md5sum] = "a15827ca13c90e9101e5e9405c1d83be"
+SRC_URI[sha256sum] = "67cc7801bf24c29386ab99966ceb68d6a60fa9e0566cc95a4fbb2c4695a8ce54"
+
+do_configure_prepend() {
+    sed -i -e 's:^library_dirs =.*::' setup.cfg
+    sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
new file mode 100644
index 0000000..0473417
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc
@@ -0,0 +1,43 @@
+SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
+DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \
+libxslt libraries. It provides safe and convenient access to these \
+libraries using the ElementTree API. It extends the ElementTree API \
+significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \
+C14N and much more."
+HOMEPAGE = "http://codespeak.net/lxml"
+SECTION = "devel/python"
+LICENSE = "BSD & GPLv2 & MIT & PSF"
+LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=f9f1dc24f720c143c2240df41fe5073b \
+                    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;startline=2;endline=7;md5=a2914d12acc7066b3f5b60e8f94a012e \
+                    file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;startline=2;endline=24;md5=96976dcc66249c51e8026b159ca5e755 \
+                    file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;startline=2;endline=7;md5=5cac4ad4b5e131a10e9af755b10fbbb7 \
+                    "
+
+DEPENDS += "libxml2 libxslt"
+
+SRC_URI[md5sum] = "5957cc384bd6e83934be35c057ec03b6"
+SRC_URI[sha256sum] = "9c74ca28a7f0c30dca8872281b3c47705e21217c8bc63912d95c9e2a7cac6bdf"
+
+DISTUTILS_BUILD_ARGS += " \
+                     --with-xslt-config='pkg-config libxslt' \
+                     --with-xml2-config='pkg-config libxml-2.0' \
+"
+
+DISTUTILS_INSTALL_ARGS += " \
+                     --with-xslt-config='pkg-config libxslt' \
+                     --with-xml2-config='pkg-config libxml-2.0' \
+"
+
+inherit pypi
+
+do_configure_prepend() {
+    sed -i -e 's/--version/--modversion/' ${B}/setupinfo.py
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS_${PN} += "libxml2 libxslt ${PYTHON_PN}-compression"
+RDEPENDS_${PN}_class-native = "libxml2-native libxslt-native"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_3.6.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_3.6.0.bb
new file mode 100644
index 0000000..81ccb12
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_3.6.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-lxml.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-M2Crypto-Error-fix.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-M2Crypto-Error-fix.patch
new file mode 100644
index 0000000..2a74b68
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-M2Crypto-Error-fix.patch
@@ -0,0 +1,162 @@
+From 02a24ac541df68033d4efd7e2f8a1b92dc49328d Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Mon, 27 Jul 2015 05:06:20 +0900
+Subject: [PATCH] M2Crypto: Error fix.
+
+After swig upgrade from 3.0.2 to 3.0.6,build the recipes which
+depends on python-m2crypto will occur errors like this:
+SALT_LEN = m2.PKCS5_SALT_LEN
+AttributeError: 'module' object has no attribute 'PKCS5_SALT_LEN'
+since python-m2crypto depends on swig-native
+
+Ref:
+https://github.com/martinpaljak/M2Crypto/issues/60#issuecomment-75735489
+
+This patch is from:
+http://pkgs.fedoraproject.org/cgit/m2crypto.git/tree/m2crypto-0.21.1-swig-3.0.5.patch
+
+Upstream-Status: pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ M2Crypto/__init__.py |  4 ++--
+ M2Crypto/m2.py       |  2 +-
+ SWIG/_lib.i          |  4 ++++
+ SWIG/_pkcs7.i        |  1 +
+ setup.py             | 26 +++++++++++++++++++++++++-
+ 5 files changed, 33 insertions(+), 4 deletions(-)
+
+diff --git a/M2Crypto/__init__.py b/M2Crypto/__init__.py
+index e7acfe7..02f4d28 100644
+--- a/M2Crypto/__init__.py
++++ b/M2Crypto/__init__.py
+@@ -19,7 +19,7 @@ Copyright 2008-2011 Heikki Toivonen. All rights reserved.
+ version_info = (0, 21, 1)
+ version = '.'.join([str(_v) for _v in version_info])
+ 
+-import __m2crypto
++import _m2crypto
+ import m2
+ import ASN1
+ import AuthCookie
+@@ -57,4 +57,4 @@ import util
+ encrypt=1
+ decrypt=0
+ 
+-__m2crypto.lib_init()
++_m2crypto.lib_init()
+diff --git a/M2Crypto/m2.py b/M2Crypto/m2.py
+index e4bb695..822143f 100644
+--- a/M2Crypto/m2.py
++++ b/M2Crypto/m2.py
+@@ -25,7 +25,7 @@ Portions created by Open Source Applications Foundation (OSAF) are
+ Copyright (C) 2004 OSAF. All Rights Reserved.
+ """
+ 
+-from __m2crypto import *
++from _m2crypto import *
+ lib_init()
+ 
+ 
+diff --git a/SWIG/_lib.i b/SWIG/_lib.i
+index 42dc180..47a53b8 100644
+--- a/SWIG/_lib.i
++++ b/SWIG/_lib.i
+@@ -100,6 +100,7 @@ int ssl_verify_callback(int ok, X509_STORE_CTX *ctx) {
+     int cret;
+     int new_style_callback = 0, warning_raised_exception=0;
+     PyGILState_STATE gilstate;
++    PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */
+ 
+     ssl = (SSL *)X509_STORE_CTX_get_app_data(ctx);
+ 
+@@ -185,6 +186,7 @@ int ssl_verify_callback(int ok, X509_STORE_CTX *ctx) {
+ void ssl_info_callback(const SSL *s, int where, int ret) {
+     PyObject *argv, *retval, *_SSL;
+     PyGILState_STATE gilstate;
++    PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */
+ 
+     gilstate = PyGILState_Ensure();
+ 
+@@ -204,6 +206,7 @@ DH *ssl_set_tmp_dh_callback(SSL *ssl, int is_export, int keylength) {
+     PyObject *argv, *ret, *_ssl;
+     DH *dh;
+     PyGILState_STATE gilstate;
++    PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */
+ 
+     gilstate = PyGILState_Ensure();
+ 
+@@ -227,6 +230,7 @@ RSA *ssl_set_tmp_rsa_callback(SSL *ssl, int is_export, int keylength) {
+     PyObject *argv, *ret, *_ssl;
+     RSA *rsa;
+     PyGILState_STATE gilstate;
++    PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */
+ 
+     gilstate = PyGILState_Ensure();
+ 
+diff --git a/SWIG/_pkcs7.i b/SWIG/_pkcs7.i
+index 174f40a..7bffbfc 100644
+--- a/SWIG/_pkcs7.i
++++ b/SWIG/_pkcs7.i
+@@ -157,6 +157,7 @@ PyObject *smime_read_pkcs7(BIO *bio) {
+     BIO *bcont = NULL;
+     PKCS7 *p7;
+     PyObject *tuple, *_p7, *_BIO;
++    PyObject *self = NULL; /* bug in SWIG_NewPointerObj as of 3.0.5 */
+ 
+     if (BIO_method_type(bio) == BIO_TYPE_MEM) {
+         /* OpenSSL FAQ explains that this is needed for mem BIO to return EOF,
+diff --git a/setup.py b/setup.py
+index e7c49eb..b98abe0 100644
+--- a/setup.py
++++ b/setup.py
+@@ -20,6 +20,7 @@ except ImportError:
+     from distutils.command import build_ext
+ 
+ from distutils.core import Extension
++from distutils.file_util import copy_file
+ 
+ 
+ class _M2CryptoBuildExt(build_ext.build_ext):
+@@ -57,7 +58,17 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+         self.swig_opts.append('-includeall')
+         #self.swig_opts.append('-D__i386__') # Uncomment for early OpenSSL 0.9.7 versions, or on Fedora Core if build fails
+         #self.swig_opts.append('-DOPENSSL_NO_EC') # Try uncommenting if you can't build with EC disabled
+-        
++        self.swig_opts.append('-modern')
++        self.swig_opts.append('-builtin')
++
++        # These two lines are a workaround for
++        # http://bugs.python.org/issue2624 , hard-coding that we are only
++        # building a single extension with a known path; a proper patch to
++        # distutils would be in the run phase, when extension name and path are
++        # known.
++        self.swig_opts.append('-outdir')
++        self.swig_opts.append(os.path.join(self.build_lib, 'M2Crypto'))
++
+         self.include_dirs += [os.path.join(self.openssl, opensslIncludeDir),
+                               os.path.join(os.getcwd(), 'SWIG')]        
+             
+@@ -71,6 +82,19 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+                
+         self.library_dirs += [os.path.join(self.openssl, opensslLibraryDir)]
+ 
++    def run(self):
++        '''Overloaded build_ext implementation to allow inplace=1 to work,
++        which is needed for (python setup.py test).'''
++        # This is another workaround for http://bugs.python.org/issue2624 + the
++        # corresponding lack of support in setuptools' test command. Note that
++        # just using self.inplace in finalize_options() above does not work
++        # because swig is not rerun if the __m2crypto.so extension exists.
++        # Again, hard-coding our extension name and location.
++        build_ext.build_ext.run(self)
++        if self.inplace:
++            copy_file(os.path.join(self.build_lib, 'M2Crypto', '_m2crypto.py'),
++                      os.path.join('M2Crypto', '_m2crypto.py'),
++                      verbose=self.verbose, dry_run=self.dry_run)
+ 
+ if sys.version_info < (2,4):
+ 
+-- 
+1.8.4.2
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
new file mode 100644
index 0000000..819c8e5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
@@ -0,0 +1,36 @@
+From f11b9c71080513f9b867ba8f40613ba2ebc6e960 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Fri, 29 Mar 2013 15:17:17 +0100
+Subject: [PATCH] setup.py: link in sysroot, not in host directories
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+Upstream-status: Unknown
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: M2Crypto-0.23.0/setup.py
+===================================================================
+--- M2Crypto-0.23.0.orig/setup.py
++++ M2Crypto-0.23.0/setup.py
+@@ -62,7 +62,7 @@ class _M2CryptoBuildExt(build_ext.build_
+             self.openssl = 'c:\\pkg'
+         else:
+             self.libraries = ['ssl', 'crypto']
+-            self.openssl = '/usr'
++            self.openssl = os.environ.get( "STAGING_DIR" )
+ 
+     def finalize_options(self):
+         '''Overloaded build_ext implementation to append custom openssl
+@@ -75,8 +75,8 @@ class _M2CryptoBuildExt(build_ext.build_
+         if _openssl and os.path.isdir(_openssl):
+             self.openssl = _openssl
+ 
+-        self.include_dirs.append(os.path.join(self.openssl, 'include'))
+-        openssl_library_dir = os.path.join(self.openssl, 'lib')
++        self.include_dirs.append(os.environ.get( "STAGING_INCDIR" ))
++        openssl_library_dir = os.environ.get( "STAGING_LIBDIR" )
+ 
+         if platform.system() == "Linux":
+             if _multiarch:  # on Fedora/RHEL it is an empty string
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.23.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.23.0.bb
new file mode 100644
index 0000000..f6f0e1f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.23.0.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A Python crypto and SSL toolkit"
+HOMEPAGE = "http://chandlerproject.org/bin/view/Projects/MeTooCrypto"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=68f7880de949412b2ea248932d97ed54"
+
+SRCNAME = "M2Crypto"
+SRC_URI = "http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "89557730e245294a6cab06de8ad4fb42"
+SRC_URI[sha256sum] = "1ac3b6eafa5ff7e2a0796675316d7569b28aada45a7ab74042ad089d15a9567f"
+
+SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch "
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+DEPENDS += "openssl swig-native"
+
+DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_DIR_HOST} -I${STAGING_INCDIR}"
+DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_DIR_HOST}"
+
+inherit setuptools
+
+SWIG_FEATURES_x86-64 = "-D__x86_64__"
+SWIG_FEATURES ?= ""
+export SWIG_FEATURES
+
+# Get around a problem with swig, but only if the
+# multilib header file exists.
+#
+do_compile_prepend() {
+    if [ "${SITEINFO_BITS}" = "64" ];then
+        bit="64"
+    else
+        bit="32"
+    fi
+
+    if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then
+        for i in SWIG/_ec.i SWIG/_evp.i; do
+            sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i"
+        done
+    elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then
+        for i in SWIG/_ec.i SWIG/_evp.i; do
+            sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i"
+        done
+    fi
+}
+
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc
new file mode 100644
index 0000000..fd7d9bd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python"
+HOMEPAGE = "http://github.com/mitsuhiko/markupsafe"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c6d1adcf45d69359f256c1cea3254127"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "f5ab3deee4c37cd6a922fb81e730da6e"
+SRC_URI[sha256sum] = "a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3"
+
+PYPI_PACKAGE = "MarkupSafe"
+inherit pypi
+
+RDEPENDS_${PN} += "${PYTHON_PN}-re"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb
new file mode 100644
index 0000000..396eff1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-markupsafe.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch
new file mode 100644
index 0000000..9381583
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch
@@ -0,0 +1,29 @@
+This fixes the dependency checks inside of setup.py since things like
+'import numpy' won't work with bitbake.
+
+diff --git a/setup.py b/setup.py
+index 2f13821..e6d6ed0 100644
+--- a/setup.py
++++ b/setup.py
+@@ -113,12 +113,6 @@ if 1:
+     baseline_images = [chop_package(f) for f in baseline_images]
+     package_data['matplotlib'].extend(baseline_images)
+ 
+-if not check_for_numpy():
+-    sys.exit(1)
+-
+-if not check_for_freetype():
+-    sys.exit(1)
+-
+ build_ft2font(ext_modules, packages)
+ build_ttconv(ext_modules, packages)
+ build_contour(ext_modules, packages)
+@@ -129,7 +123,7 @@ build_tri(ext_modules, packages)
+ 
+ print_raw("")
+ print_raw("OPTIONAL BACKEND DEPENDENCIES")
+-has_libpng = check_for_libpng()
++has_libpng = True
+ 
+ if has_libpng and options['build_agg']:
+     build_agg(ext_modules, packages)
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch
new file mode 100644
index 0000000..9a13a18
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch
@@ -0,0 +1,40 @@
+This fixes the numpy import problem in setupext.py using a hard-coded path.
+
+Index: matplotlib-1.1.0/setupext.py
+===================================================================
+--- matplotlib-1.1.0.orig/setupext.py
++++ matplotlib-1.1.0/setupext.py
+@@ -122,8 +122,8 @@ numpy_inc_dirs = []
+ # matplotlib build options, which can be altered using setup.cfg
+ options = {'display_status': True,
+            'verbose': False,
+-           'provide_pytz': 'auto',
+-           'provide_dateutil': 'auto',
++           'provide_pytz': False,
++           'provide_dateutil': False,
+            'build_agg': True,
+            'build_gtk': 'auto',
+            'build_gtkagg': 'auto',
+@@ -176,10 +176,7 @@ if os.path.exists(setup_cfg):
+     except: pass
+ 
+ # For get_base_flags:
+-if options['basedirlist']:
+-    basedirlist = options['basedirlist'].split()
+-else:
+-    basedirlist = basedir[sys.platform]
++basedirlist = [os.environ['STAGING_LIBDIR']]
+ print("basedirlist is: %s" % basedirlist)
+ 
+ if options['display_status']:
+@@ -555,8 +552,8 @@ def check_for_numpy():
+ 
+ def add_numpy_flags(module):
+     "Add the modules flags to build extensions which use numpy"
+-    import numpy
+-    module.include_dirs.append(numpy.get_include())
++    # Hard-coded path for OE since I know this is where numpy's include dir will be
++    module.include_dirs.append(os.path.join(os.environ['STAGING_LIBDIR'], 'python2.7/site-packages/numpy/core/include/'))
+ 
+ def add_png_flags(module):
+     try_pkgconfig(module, 'libpng', 'png')
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb
new file mode 100644
index 0000000..69f71c7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats"
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://README.txt;md5=83c5bf8b16a5f99507f2f47a21ae3b81"
+PR = "r1"
+
+DEPENDS += "python-numpy freetype libpng python-dateutil python-pytz"
+RDEPENDS_${PN} = "python-core python-distutils python-numpy freetype libpng python-dateutil python-pytz"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/matplotlib/matplotlib-${PV}.tar.gz \
+           file://fix_setup.patch \
+           file://fix_setupext.patch \
+"
+
+S = "${WORKDIR}/matplotlib-${PV}"
+
+EXTRA_OECONF = "--disable-docs --with-python-includes=${STAGING_INCDIR}/../"
+
+inherit distutils
+
+do_compile_prepend() {
+    BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
+    ${STAGING_BINDIR_NATIVE}/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
+    true
+}
+
+# need to export these variables for python-config to work
+export PYTHONPATH
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+
+SRC_URI[md5sum] = "57a627f30b3b27821f808659889514c2"
+SRC_URI[sha256sum] = "be37e1d86c65ecacae6683f8805e051e9904e5f2e02bf2b7a34262c46a6d06a7"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
new file mode 100644
index 0000000..0958f75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "McCabe checker, plugin for flake8"
+HOMEPAGE = "https://github.com/dreamhost/cliff"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.rst;md5=f8b50fba1711ecac6bcdb6324f85a66d"
+
+SRC_URI[md5sum] = "8c425db05f310adcd4bb174b991f26f5"
+SRC_URI[sha256sum] = "9a2b12ebd876e77c72e41ebf401cc2e7c5b566649d50105ca49822688642207b"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += " \
+    python-prettytable \
+    python-cmd2 \
+    python-pyparsing"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mock_1.3.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mock_1.3.0.bb
new file mode 100644
index 0000000..8a7894c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mock_1.3.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A Python Mocking and Patching Library for Testing"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=de9dfbf780446b18aab11f00baaf5b7e"
+
+SRC_URI[md5sum] = "73ee8a4afb3ff4da1b4afa287f39fdeb"
+SRC_URI[sha256sum] = "1e247dbecc6ce057299eb7ee019ad68314bb93152e81d9a6110d35f4d5eca0f6"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += " \
+    python-prettytable \
+    python-cmd2 \
+    python-pyparsing \
+    python-mccabe \
+    python-pep8 \
+    python-pyflakes"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.0.bb
new file mode 100644
index 0000000..5d237b5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "An implementation of time.monotonic() for Python 2.0 through 3.2"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRC_URI[md5sum] = "a692bff2c5e07dde22ad2128d818d15c"
+SRC_URI[sha256sum] = "47d7d045b3f2a08bffe683d761ef7f9131a2598db1cec7532a06720656cf719d"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "${PYTHON_PN}-ctypes ${PYTHON_PN}-re"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.4.7.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.4.7.bb
new file mode 100644
index 0000000..3b7853e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.4.7.bb
@@ -0,0 +1,11 @@
+SUMMARY = "MessagePack (de)serializer"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
+
+PR = "r0"
+
+SRC_URI[md5sum] = "eb2aad1081534ef3a9f32a0ecd350b9b"
+SRC_URI[sha256sum] = "5e001229a54180a02dcdd59db23c9978351af55b1290c27bc549e381f43acd6b"
+
+PYPI_PACKAGE = "msgpack-python"
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr_0.7.18.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr_0.7.18.bb
new file mode 100644
index 0000000..6fdbf19
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr_0.7.18.bb
@@ -0,0 +1,8 @@
+SUMMARY = "A network address manipulation library for Python."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b277425f87f3b06d25af45d8b96f9682"
+
+SRC_URI[md5sum] = "c65bb34f8bedfbbca0b316c490cd13a0"
+SRC_URI[sha256sum] = "a1f5c9fcf75ac2579b9995c843dade33009543c04f218ff7c007b3c81695bd19"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch
new file mode 100644
index 0000000..c1916b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch
@@ -0,0 +1,33 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- Numeric-23.7/setup.py~nolapack
++++ Numeric-23.7/setup.py
+@@ -32,7 +32,7 @@
+     mathlibs = []
+ 
+ # delete all but the first one in this list if using your own LAPACK/BLAS
+-sourcelist = [os.path.join('Src', 'lapack_litemodule.c'),
++sourcelist = [
+               #os.path.join('Src', 'blas_lite.c'), 
+               #os.path.join('Src', 'f2c_lite.c'), 
+               #os.path.join('Src', 'zlapack_lite.c'),
+@@ -40,12 +40,12 @@
+              ]
+ # set these to use your own BLAS;
+ 
+-library_dirs_list = ['/usr/lib/atlas']
+-libraries_list = ['lapack', 'cblas', 'f77blas', 'atlas', 'g2c'] 
++library_dirs_list = []
++libraries_list = [] 
+ 
+ # set to true (1), if you also want BLAS optimized matrixmultiply/dot/innerproduct
+-use_dotblas = 1 
+-include_dirs = ['/usr/include/atlas']  
++use_dotblas = 0
++include_dirs = []  
+                    # You may need to set this to find cblas.h
+                    #  e.g. on UNIX using ATLAS this should be ['/usr/include/atlas']
+ extra_link_args = []
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric_24.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric_24.2.bb
new file mode 100644
index 0000000..c0b04e1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric_24.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A sophisticated Numeric Processing Package for Python"
+SECTION = "devel/python"
+LICENSE = "PSF & LLNL"
+LIC_FILES_CHKSUM = "file://Legal.htm;md5=e3ce75dedd4043918d15979ae43e312e"
+
+PR = "ml3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/Numeric-${PV}.tar.gz"
+S = "${WORKDIR}/Numeric-${PV}"
+
+inherit distutils
+
+SRC_URI[md5sum] = "2ae672656e06716a149acb048cca3093"
+SRC_URI[sha256sum] = "5f72e729eb6ff57442f2a38bfc9931738b59e5077928e2e70d22b4610ff15258"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.1.bb
new file mode 100644
index 0000000..b8f5f3f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "MQTT version 3.1/3.1.1 client library"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eb48c6ee2cb9f5b8b9fe75e6f817bdfc"
+SRCNAME = "paho-mqtt"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+               python-math \
+               python-io \
+               python-threading \
+"
+
+SRC_URI[md5sum] = "a6407b74eb5e5411e157be1de5c11366"
+SRC_URI[sha256sum] = "0f7a629efe6e3a2c61b59d3550aa9f2c4529b5689a65fde45e6f1ac36b9a261e"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
new file mode 100644
index 0000000..05bddd5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Python PAM module using ctypes, py3/py2."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=64326d42471b493c5c088305364ad5da"
+
+SRC_URI[md5sum] = "db71b6b999246fb05d78ecfbe166629d"
+SRC_URI[sha256sum] = "26efe4e79b869b10f97cd8c4a6bbb04a4e54d41186364e975b4108c9c071812c"
+
+PYPI_PACKAGE = "python-pam"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "libpam"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.3.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.3.4.bb
new file mode 100644
index 0000000..9dc37cf
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.3.4.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Simplifies building parse types based on the parse module"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=be38402eb4b6c224e4914fd82e0e1436"
+PYPI_PACKAGE = "parse_type"
+
+SRC_URI[md5sum] = "00ba70bc5ca67624207b0dfced01dc8a"
+SRC_URI[sha256sum] = "3dd0b323bafcb8c25e000ce5589042a1c99cba9c3bec77b9f591e46bc9606147"
+
+RDEPENDS_${PN} += "python-parse"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.6.6.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.6.6.bb
new file mode 100644
index 0000000..45b52a3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.6.6.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Parse strings using a specification based on the Python format() syntax"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://parse.py;md5=e067ba2a08b73721dbe7356dc0282918;startline=1108;endline=1126"
+
+SRC_URI[md5sum] = "11bc8c60a30fe52db4ac9a827653d0ca"
+SRC_URI[sha256sum] = "71435aaac494e08cec76de646de2aab8392c114e56fe3f81c565ecc7eb886178"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc
new file mode 100644
index 0000000..843e8e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc
@@ -0,0 +1,14 @@
+SUMMARY = "comprehensive password hashing framework supporting over 30 schemes"
+DESCRIPTION = "\
+Passlib is a password hashing library for Python 2 & 3, which provides cross-platform \
+implementations of over 30 password hashing algorithms, as well as a framework for \
+managing existing password hashes. It’s designed to be useful for a wide range of \
+tasks, from verifying a hash found in /etc/shadow, to providing full-strength password \
+hashing for multi-user applications."
+HOMEPAGE = "https://bitbucket.org/ecollins/passlib"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bae8faa3e2689ee0df3f2127fc4517f5"
+PR = "r0"
+
+SRC_URI[md5sum] = "d2edd6c42cde136a538b48d90a06ad67"
+SRC_URI[sha256sum] = "a83d34f53dc9b17aa42c9a35c3fbcc5120f3fcb07f7f8721ec45e6a27be347fc"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.6.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.6.5.bb
new file mode 100644
index 0000000..11c598a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.6.5.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-passlib.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb
new file mode 100644
index 0000000..6b4019f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Tools for using a Web Server Gateway Interface stack"
+HOMEPAGE = "http://pythonpaste.org/"
+LICENSE = "MIT"
+RDEPENDS_${PN} = "python-six"
+
+LIC_FILES_CHKSUM = "file://docs/license.txt;md5=1798f29d55080c60365e6283cb49779c"
+
+SRC_URI[md5sum] = "1231e14eae62fa7ed76e9130b04bc61e"
+SRC_URI[sha256sum] = "2346a347824c32641bf020c17967b49ae74d3310ec1bc9b958d4b84e2d985218"
+
+PYPI_PACKAGE = "Paste"
+inherit pypi setuptools
+
+FILES_${PN} += "/usr/lib/*"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.0.bb
new file mode 100644
index 0000000..262b862
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Python style guide checker"
+HOMEPAGE = "https://github.com/dreamhost/cliff"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.rst;md5=d8ebbbe831259ce010179d2f310b0f3e"
+
+SRC_URI[md5sum] = "2b03109b0618afe3b04b3e63b334ac9d"
+SRC_URI[sha256sum] = "a113d5f5ad7a7abacef9df5ec3f2af23a20a28005921577b15dd584d099d5900"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += " \
+    python-prettytable \
+    python-cmd2 \
+    python-pyparsing"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pip_8.1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pip_8.1.1.bb
new file mode 100644
index 0000000..c0c263b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pip_8.1.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "PIP is a tool for installing and managing Python packages"
+LICENSE = "MIT & LGPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=25fba45109565f87de20bae85bc39452"
+
+SRC_URI[md5sum] = "6b86f11841e89c8241d689956ba99ed7"
+SRC_URI[sha256sum] = "3e78d3066aaeb633d185a57afdccf700aa2e660436b4af618bcb6ff0fa511798"
+
+inherit pypi setuptools
+
+# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works
+RDEPENDS_${PN} = "python-modules python-distribute"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb
new file mode 100644
index 0000000..ddc7b62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb
@@ -0,0 +1,8 @@
+SUMMARY = "A library for stubbing in Python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99"
+
+SRC_URI[md5sum] = "7147050a95c9f494248557b42b58ad79"
+SRC_URI[sha256sum] = "930f2c1e18503e8f8c403abe2e02166c4a881941745147e712cdd4f49f3fb964"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
new file mode 100644
index 0000000..c8f7b5f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python library for displaying tabular data in a ASCII table format"
+HOMEPAGE = "http://code.google.com/p/prettytable"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3e73500ffa52de5071cff65990055282"
+
+SRC_URI[md5sum] = "0c1361104caff8b09f220748f9d69899"
+SRC_URI[sha256sum] = "a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"
+
+SRCNAME = "prettytable"
+
+SRC_URI = "https://pypi.python.org/packages/source/P/PrettyTable/${SRCNAME}-${PV}.zip"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+do_install_append() {
+    perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "top_level.txt"`
+    for f in $perm_files; do
+        chmod 644 "${f}"
+    done
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_4.1.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_4.1.0.bb
new file mode 100644
index 0000000..6a210ee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_4.1.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A cross-platform process and system utilities module for Python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0f02e99f7f3c9a7fe8ecfc5d44c2be62"
+
+SRC_URI[md5sum] = "017e1023484ebf436d3514ebeaf2e7e9"
+SRC_URI[sha256sum] = "c6abebec9c8833baaf1c51dd1b0259246d1d50b9b50e9a4aa66f33b1e98b8d17"
+
+RDEPENDS_${PN} += " \
+    python-subprocess \
+    "
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.4.31.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.4.31.bb
new file mode 100644
index 0000000..592bc04
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.4.31.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Library with cross-python path, ini-parsing, io, code, log facilities"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
+
+SRC_URI[md5sum] = "5d2c63c56dc3f2115ec35c066ecd582b"
+SRC_URI[sha256sum] = "a6501963c725fc2554dabfece8ae9a8fb5e149c0ac0a42fd2b02c5c1c57fc114"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb
new file mode 100644
index 0000000..0e660ad
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Support for the Linux 2.6.x ALSA Sound System"
+SECTION = "devel/python"
+DEPENDS = "alsa-lib"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d"
+SRCNAME = "pyalsaaudio"
+PR = "ml2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pyalsaaudio/${SRCNAME}-${PV}.tar.gz"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
+
+SRC_URI[md5sum] = "b312c28efba7db0494836a79f0a49898"
+SRC_URI[sha256sum] = "07148ce16024724b17cc24c51d0f4fb78af214b09b7dc8dcb7b06e5647f4c582"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.1.9.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.1.9.bb
new file mode 100644
index 0000000..017adfe
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.1.9.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python library implementing ASN.1 types."
+HOMEPAGE = "http://pyasn1.sourceforge.net/"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=425e62320d430219736139b134db2fc4"
+
+SRC_URI[md5sum] = "f00a02a631d4016818659d1cc38d229a"
+SRC_URI[sha256sum] = "853cacd96d1f701ddd67aa03ecc05f51890135b7262e922710112f12a2ed2a7f"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "python-lang python-shell"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.14.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.14.bb
new file mode 100644
index 0000000..18006ca
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.14.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Parser of the C language, written in pure Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8fb364772b1441821d391591f340c35a"
+
+SRC_URI[md5sum] = "a2bc8d28c923b4fe2b2c3b4b51a4f935"
+SRC_URI[sha256sum] = "7959b4a74abdc27b312fed1c21e6caf9309ce0b29ea86b591fd2e99ecdf27f73"
+
+inherit pypi setuptools
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.1.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.1.0.bb
new file mode 100644
index 0000000..ae7d471
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.1.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "passive checker of Python programs"
+HOMEPAGE = "https://github.com/dreamhost/cliff"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.rst;md5=fe719d45f4c604c6e2c86872b6e9485f"
+
+SRC_URI[md5sum] = "e0bf854cd5abd4527e149692925b82eb"
+SRC_URI[sha256sum] = "e5f959931987e2be178781554b485d52342ec9f1b43f891d2dad07a691c7a89a"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += " \
+    python-prettytable \
+    python-cmd2 \
+    python-pyparsing"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest
new file mode 100644
index 0000000..ac867e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+GPG_AGENT_INFO= python test_all.py -v
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb
new file mode 100644
index 0000000..03c4790
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A Python module for working with OpenPGP messages"
+DESCRIPTION = "PyGPGME is a Python module that lets you sign, verify, \
+               encrypt and decrypt messages using the OpenPGP format."
+HOMEPAGE = "https://launchpad.net/pygpgme"
+
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=6517bdc8f2416f27ab725d4702f7aac3"
+
+SRC_URI = "file://run-ptest"
+
+SRC_URI[md5sum] = "d38355af73f0352cde3d410b25f34fd0"
+SRC_URI[sha256sum] = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1"
+
+DEPENDS += "gpgme"
+RDEPENDS_${PN} += "gnupg"
+
+inherit pypi setuptools ptest
+
+do_install_ptest(){
+    install ${S}/test_all.py ${D}${PTEST_PATH}
+    cp -r ${S}/tests ${D}${PTEST_PATH}
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
new file mode 100644
index 0000000..02d4f54
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Hamcrest framework for matcher objects"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6df1318c6071dd1707f5e3b6c11f24f"
+
+PYPI_PACKAGE = "PyHamcrest"
+
+SRC_URI[md5sum] = "8b833a3fa30197455df79424f30c8c3f"
+SRC_URI[sha256sum] = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc
new file mode 100644
index 0000000..a9edb2c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc
@@ -0,0 +1,11 @@
+DESCRIPTION = "Python pyinotify: Linux filesystem events monitoring"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ab173cade7965b411528464589a08382"
+
+RDEPENDS_${PN} += "python-threading python-io python-subprocess python-misc python-shell"
+
+SRC_URI[md5sum] = "8e580fa1ff3971f94a6f81672b76c406"
+SRC_URI[sha256sum] = "9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4"
+
+PYPI_PACKAGE = "pyinotify"
+inherit pypi
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb
new file mode 100644
index 0000000..d1f84c3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-pyinotify.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
new file mode 100644
index 0000000..9cd0844
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Python API for MISP"
+HOMEPAGE = "https://github.com/MISP/PyMISP"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c0a3e801b740ef31d1f5ddfe76bca538"
+PR = "r0"
+
+SRC_URI[md5sum] = "398408388902c108e3b378152b6c1d24"
+SRC_URI[sha256sum] = "d70e74c528f040f5ff8137337f1758aeb63a5966b58b297f2171f53cb9df033e"
+
+RDEPENDS_${PN} += " ${PYTHON_PN}-requests"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.3.bb
new file mode 100644
index 0000000..1b1fbe9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-pymisp.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc
new file mode 100644
index 0000000..e0f52dd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc
@@ -0,0 +1,12 @@
+SUMMARY = "Python driver for MongoDB <http://www.mongodb.org>"
+DESCRIPTION = "\
+The PyMongo distribution contains tools for interacting with MongoDB \
+database from Python. The bson package is an implementation of the BSON \
+format for Python. The pymongo package is a native Python driver for \
+MongoDB. The gridfs package is a gridfs implementation on top of pymongo."
+HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2a944942e1496af1886903d274dedb13"
+
+SRC_URI[md5sum] = "70408f8115d7aa52fb6eef0e552834a6"
+SRC_URI[sha256sum] = "f2018165823b341d83d398165d1c625e5db5cc779e7c44c107034407808463b6"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.2.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.2.2.bb
new file mode 100644
index 0000000..b1778b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.2.2.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-pymongo.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_0.15.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_0.15.1.bb
new file mode 100644
index 0000000..5027c6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_0.15.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Simple Python wrapper around the OpenSSL library"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "openssl python-cryptography"
+PE = "1"
+
+SRC_URI[md5sum] = "f447644afcbd5f0a1f47350fec63a4c6"
+SRC_URI[sha256sum] = "f0a26070d6db0881de8bcc7846934b7c3c930d8f9c79d45883ee48984bc0d672"
+
+PYPI_PACKAGE = "pyOpenSSL"
+inherit pypi setuptools
+
+PACKAGES =+ "${PN}-tests"
+FILES_${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test"
+
+RDEPENDS_${PN} = "python-threading python-six python-cryptography"
+RDEPENDS_${PN}-tests = "${PN}"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.1.1.bb
new file mode 100644
index 0000000..94a99e5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.1.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Python parsing module"
+HOMEPAGE = "http://pyparsing.wikispaces.com/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fb46329938e6bc829b256e37d5c1e31a"
+
+SRC_URI[md5sum] = "2a1d3a63ddc2ec9a3da961d1b7f258b2"
+SRC_URI[sha256sum] = "4bd04badfda39b1e2fd0d77cb78b488c881d88c31734791a0ae902979ae10575"
+
+PYPI_PACKAGE_EXT = "zip"
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch
new file mode 100644
index 0000000..d73da07
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Inappropriate [wrong dependency]
+
+Subject: [PATCH] import simplejson as json
+
+At runtime python-pyroute2 tries to import json, but the module is not 
+available, import simplejson as json solve the issue.
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ pyroute2/netlink/rtnl/ifinfmsg.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyroute2/netlink/rtnl/ifinfmsg.py b/pyroute2/netlink/rtnl/ifinfmsg.py
+index 4f14f25..55643eb 100644
+--- a/pyroute2/netlink/rtnl/ifinfmsg.py
++++ b/pyroute2/netlink/rtnl/ifinfmsg.py
+@@ -1,5 +1,5 @@
+ import os
+-import json
++import simplejson as json
+ import errno
+ import select
+ import struct
+-- 
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.3.14.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.3.14.bb
new file mode 100644
index 0000000..43c6cec
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.3.14.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A pure Python netlink and Linux network configuration library"
+LICENSE = "GPLv2 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://LICENSE.Apache.v2;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "1e7e771702056e61cf522cccc39ea09e"
+SRC_URI[sha256sum] = "aed742a7dbe55eb7f02dbb26719f554b9e92198c4b3c7ac501ad03bbb6421962"
+
+SRC_URI += "file://import-simplejson-as-json.patch"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "\
+  python-distutils \
+  python-simplejson \
+  python-multiprocessing \
+  python-io python-pprint \
+  python-pickle \
+  python-logging \
+  python-threading \
+  python-textutils \
+  python-subprocess \
+  python-netclient \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc
new file mode 100644
index 0000000..08eef74
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc
@@ -0,0 +1,16 @@
+SUMMARY = "Serial Port Support for Python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0051a0dc811ee3fdb17a2fd0be44f3ad"
+
+# FIXME might stop packaging serialwin32 and serialjava files
+
+RDEPENDS_${PN} = "\
+    ${PYTHON_PN}-fcntl \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-stringold \
+"
+
+SRC_URI[md5sum] = "c8521e49f8852196aac39431e0901703"
+SRC_URI[sha256sum] = "969cb6405d1d87f8960cf9c10f597ae58f85da2fb9769dba96f4aeeaade54656"
+
+inherit pypi
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial_3.0.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial_3.0.1.bb
new file mode 100644
index 0000000..ad2b350
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial_3.0.1.bb
@@ -0,0 +1,2 @@
+inherit setuptools
+require python-pyserial.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_2.9.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_2.9.1.bb
new file mode 100644
index 0000000..ca53dc4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_2.9.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Simple powerful teting with Python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d8a5609608d9a5a180705b0fa298ae01"
+
+SRC_URI[md5sum] = "05165740ea50928e4e971378630163ec"
+SRC_URI[sha256sum] = "0d48d27a127644fbe7c8158157e08b35f8255045d4476df694b91eb3a8147e65"
+
+RDEPENDS_${PN} = "python-py"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2016.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2016.3.bb
new file mode 100644
index 0000000..da4e2d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2016.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "World timezone definitions, modern and historical"
+HOMEPAGE = " http://pythonhosted.org/pytz"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=22b38951eb857cf285a4560a914b7cd6"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+    python-core \
+    python-datetime \
+"
+
+SRC_URI[md5sum] = "abae92c3301b27bd8a9f56b14f52cb29"
+SRC_URI[sha256sum] = "3449da19051655d4c0bb5c37191331748bcad15804d81676a88451ef299370a8"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev_0.19.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev_0.19.0.bb
new file mode 100644
index 0000000..aa26dc7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev_0.19.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A libudev binding"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI[md5sum] = "1151e9d05baf6ce7b43e7574dc0ef154"
+SRC_URI[sha256sum] = "5abcbd03e4965110d1fedcbdd5532974cb4638ceef34337aa2d5758eceb54ad3"
+
+inherit pypi setuptools
+
+do_configure_prepend() {
+    sed -i "/import pyudev/d" ${S}/setup.py
+    sed -i "s/str(pyudev.__version__)/'${PV}'/g" ${S}/setup.py
+}
+
+RDEPENDS_${PN} = "\
+    python-ctypes \
+    python-subprocess \
+    python-misc \
+    python-contextlib \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb_1.0.0b2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb_1.0.0b2.bb
new file mode 100644
index 0000000..d279abc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb_1.0.0b2.bb
@@ -0,0 +1,10 @@
+SUMMARY = "PyUSB provides USB access on the Python language"
+HOMEPAGE = "http://pyusb.sourceforge.net/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=50d46bda6248a0b4a46a6d59a66ee08e"
+DEPENDS = "libusb1"
+
+SRC_URI[md5sum] = "bc12e83ff3ef1045d4306d13a9955fc1"
+SRC_URI[sha256sum] = "14ec66077bdcd6f1aa9e892a0a35a54bb3c1ec56aa740ead64349c18f0186d19"
+
+inherit pypi distutils
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml/setup.py b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml/setup.py
new file mode 100644
index 0000000..2ed1c94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml/setup.py
@@ -0,0 +1,64 @@
+NAME = 'PyYAML'
+VERSION = '3.10'
+DESCRIPTION = "YAML parser and emitter for Python"
+LONG_DESCRIPTION = """\
+YAML is a data serialization format designed for human readability and
+interaction with scripting languages.  PyYAML is a YAML parser and
+emitter for Python.
+
+PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
+support, capable extension API, and sensible error messages.  PyYAML
+supports standard YAML tags and provides Python-specific tags that allow
+to represent an arbitrary Python object.
+
+PyYAML is applicable for a broad range of tasks from complex
+configuration files to object serialization and persistance."""
+AUTHOR = "Kirill Simonov"
+AUTHOR_EMAIL = 'xi@resolvent.net'
+LICENSE = "MIT"
+PLATFORMS = "Any"
+URL = "http://pyyaml.org/wiki/PyYAML"
+DOWNLOAD_URL = "http://pyyaml.org/download/pyyaml/%s-%s.tar.gz" % (NAME, VERSION)
+CLASSIFIERS = [
+    "Development Status :: 5 - Production/Stable",
+    "Intended Audience :: Developers",
+    "License :: OSI Approved :: MIT License",
+    "Operating System :: OS Independent",
+    "Programming Language :: Python",
+    "Topic :: Software Development :: Libraries :: Python Modules",
+    "Topic :: Text Processing :: Markup",
+]
+
+from distutils.core import setup
+from distutils.extension import Extension
+from Cython.Distutils import build_ext
+
+import sys, os.path
+
+
+if __name__ == '__main__':
+
+    setup(
+        name=NAME,
+        version=VERSION,
+        description=DESCRIPTION,
+        long_description=LONG_DESCRIPTION,
+        author=AUTHOR,
+        author_email=AUTHOR_EMAIL,
+        license=LICENSE,
+        platforms=PLATFORMS,
+        url=URL,
+        download_url=DOWNLOAD_URL,
+        classifiers=CLASSIFIERS,
+
+        package_dir={'': 'lib'},
+        packages=['yaml'],
+
+        ext_modules = [
+        Extension( "_yaml", ["ext/_yaml.pyx"], libraries = ["yaml"] )
+        ],
+
+        cmdclass={
+            'build_ext': build_ext,
+        },
+    )
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.11.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.11.bb
new file mode 100644
index 0000000..a017e0e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.11.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Python support for YAML"
+HOMEPAGE = "http://www.pyyaml.org"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
+DEPENDS = "libyaml python-cython-native"
+
+SRC_URI = "http://pyyaml.org/download/pyyaml/PyYAML-${PV}.tar.gz \
+           file://setup.py \
+"
+
+SRC_URI[md5sum] = "f50e08ef0fe55178479d3a618efe21db"
+SRC_URI[sha256sum] = "c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8"
+
+S = "${WORKDIR}/PyYAML-${PV}"
+
+inherit distutils
+
+do_configure_prepend() {
+    # upstream setup.py overcomplicated, use ours
+    install -m 0644 ${WORKDIR}/setup.py ${S}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
new file mode 100644
index 0000000..2dc3b73
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
@@ -0,0 +1,26 @@
+diff --git a/setup.py b/setup.py
+index 62df445..1fdbdeb 100755
+--- a/setup.py
++++ b/setup.py
+@@ -213,12 +213,6 @@ def settings_from_prefix(prefix=None, bundle_libzmq_dylib=False):
+                 pass
+                 # unused rpath args for OS X:
+                 # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/..']
+-            else:
+-                settings['runtime_library_dirs'] += ['$ORIGIN/..']
+-        elif sys.platform != 'darwin':
+-            settings['runtime_library_dirs'] += [
+-                os.path.abspath(x) for x in settings['library_dirs']
+-            ]
+     
+     return settings
+ 
+@@ -592,8 +586,6 @@ class Configure(build_ext):
+                 pass
+                 # unused rpath args for OS X:
+                 # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/../zmq']
+-            else:
+-                settings['runtime_library_dirs'] = [ os.path.abspath(pjoin('.', 'zmq')) ]
+         
+         line()
+         info("Configure: Autodetecting ZMQ settings...")
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb
new file mode 100644
index 0000000..b5baf82
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
+HOMEPAGE = "http://zeromq.org/bindings:python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e"
+DEPENDS = "zeromq"
+
+SRC_URI = "file://club-rpath-out.patch"
+SRC_URI[md5sum] = "87e3abb33af5794db5ae85c667bbf324"
+SRC_URI[sha256sum] = "77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2"
+
+inherit pypi setuptools pkgconfig
+
+RDEPENDS_${PN} += "python-multiprocessing"
+
+FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug"
+
+do_compile_prepend() {
+    echo [global] > ${S}/setup.cfg
+    echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
+    echo have_sys_un_h = True >> ${S}/setup.cfg
+    echo skip_check_zmq = True >> ${S}/setup.cfg
+    echo libzmq_extension = False >> ${S}/setup.cfg
+    echo no_libzmq_extension = True >> ${S}/setup.cfg
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis.inc
new file mode 100644
index 0000000..e64f041
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis.inc
@@ -0,0 +1,9 @@
+SUMMARY = "Python client for Redis key-value store"
+DESCRIPTION = "The Python interface to the Redis key-value store."
+HOMEPAGE = "http://github.com/andymccurdy/redis-py"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
+PR = "r0"
+
+SRC_URI[md5sum] = "3b26c2b9703b4b56b30a1ad508e31083"
+SRC_URI[sha256sum] = "5dfbae6acfc54edf0a7a415b99e0b21c0a3c27a7f787b292eea727b1facc5533"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis_2.10.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis_2.10.5.bb
new file mode 100644
index 0000000..6c3ca85
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis_2.10.5.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-redis.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
new file mode 100644
index 0000000..ebce253
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc
@@ -0,0 +1,9 @@
+DESCRIPTION = "Python HTTP for Humans."
+HOMEPAGE = "http://python-requests.org"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=58c7e163c9f8ee037246da101c6afd1e"
+
+SRC_URI[md5sum] = "0b7f480d19012ec52bab78292efd976d"
+SRC_URI[sha256sum] = "c577815dd00f1394203fc44eb979724b098f88264a9ef898ee45b8e5e9cf587f"
+
+RDEPENDS_${PN} = "${PYTHON_PN}-email ${PYTHON_PN}-json ${PYTHON_PN}-netserver"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.9.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.9.1.bb
new file mode 100644
index 0000000..627bc95
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.9.1.bb
@@ -0,0 +1,4 @@
+inherit pypi setuptools
+require python-requests.inc
+
+RDEPENDS_${PN} += "${PYTHON_PN}-zlib"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc
new file mode 100644
index 0000000..408c60e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc
@@ -0,0 +1,16 @@
+SUMMARY = "Python 2 and 3 compatibility library"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6f00d4a50713fa859858dd9abaa35b21"
+
+SRC_URI[md5sum] = "34eed507548117b2ab523ab14b2f8b55"
+SRC_URI[sha256sum] = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a"
+
+do_compile_append() {
+    export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS}
+    ${PYTHON} setup.py -q bdist_egg --dist-dir ./
+}
+do_install_append() {
+    install -m 0644 ${S}/*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/
+}
+
+RDEPENDS_${PN} += "python-io"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.10.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.10.0.bb
new file mode 100644
index 0000000..9075745
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.10.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-six.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb
new file mode 100644
index 0000000..2714f43
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Convenience functions for dbus services in Python 2.x"
+HOMEPAGE = "http://nphilipp.fedorapeople.org/python-slip/"
+DESCRIPTION = "\
+The Simple Library for Python 2.x packages contain miscellaneous code for \
+convenience, extension and workaround purposes. \
+\
+This package provides slip.dbus.service.Object, which is a dbus.service.Object \
+derivative that ends itself after a certain time without being used and/or if \
+there are no clients anymore on the message bus, as well as convenience \
+functions and decorators for integrating a dbus service with PolicyKit."
+
+SECTION = "devel/python"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
+SRCNAME = "python-slip"
+
+SRC_URI = "https://fedorahosted.org/released/${SRCNAME}/${SRCNAME}-${PV}.tar.bz2"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+SRC_URI[md5sum] = "fb3299d75af1a67ca6679d96ce839da6"
+SRC_URI[sha256sum] = "f47361ec52b608309b83c71905e692b6b363eaf3b8a7afdeff866cd94463ad5c"
+
+do_compile_prepend() {
+    sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb
new file mode 100644
index 0000000..df47df6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Set of i2c tools for linux - Python module"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://smbusmodule.c;startline=1;endline=17;md5=fa24df321a520ff8e10f203425ab9fa8"
+
+SRC_URI = "http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-${PV}.tar.bz2 \
+"
+SRC_URI[md5sum] = "0fdbff53ebd0b8d9249256d6c56480b1"
+SRC_URI[sha256sum] = "14d4d7d60d1c12e43f2befe239c682a5c44c27682f153d4b58c1e392d2db1700"
+
+DEPENDS = "i2c-tools"
+
+inherit distutils
+
+S = "${WORKDIR}/i2c-tools-${PV}/py-smbus/"
+
+do_configure_prepend() {
+    # Adjust for OE header rename
+    sed -i s:linux/i2c-dev.h:linux/i2c-dev-user.h: Module.mk
+    sed -i s:linux/i2c-dev.h:linux/i2c-dev-user.h: smbusmodule.c
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-snakefood_1.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
new file mode 100644
index 0000000..e4a6d76
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Dependency graphing for Python"
+DESCRIPTION = " Generate dependency graphs from Python code. This \
+dependency tracker package has a few distinguishing characteristics \
+\
+    * It uses the AST to parse the Python files. This is very reliable, \
+      it always runs.\
+    * No module is loaded. Loading modules to figure out dependencies is \
+      almost always problem, because a lot of codebases run initialization \
+      code in the global namespace, which often requires additional setup. \
+      Snakefood is guaranteed not to have this problem (it just runs, no \
+      matter what).\
+    * It works on a set of files, i.e. you do not have to specify a single \
+      script, you can select a directory (package or else) or a set of files.\
+      It finds all the Python files recursively automatically.\
+    * Automatic/no configuration: your PYTHONPATH is automatically adjusted \
+      to include the required package roots. It figures out the paths that \
+      are required from the files/directories given as input. You should not \
+      have to setup ANYTHING.\
+    * It does not have to automatically 'follow' dependencies between modules,\
+      i.e. by default it only considers the files and directories you specify \
+      on the command-line and their immediate dependencies. It also has an \
+      option to automatically include only the dependencies within the \
+      packages of the files you specify.\
+    * It follows the UNIX philosophy of small programs that do one thing well:\
+      it consists of a few simple programs whose outputs you combine via \
+      pipes. Graphing dependencies always requires the user to filter and \
+      cluster the filenames, so this is appropriate. You can combine it with \
+      your favourite tools, grep, sed, etc.\
+\
+A problem with dependency trackers that run code is that they are unreliable, \
+due to the dynamic nature of Python (the presence of imports within function \
+calls and __import__ hooks makes it almost impossible to always do the right \
+thing). This script aims at being right 99% of the time, and we think that \
+given the trade-offs, 99% is good enough for 99% of the uses.\
+"
+AUTHOR = "Martin Blais <blais@furius.ca>"
+HOMEPAGE = "http://furius.ca/snakefood"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI[md5sum] = "56c88667a33d8909b0aabf2ab6903bdf"
+SRC_URI[sha256sum] = "295784668032254e7391ca99ba7060edd3ae4eca1a330ac11627b18ab5923b77"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = " python-logging python-compiler python-shell"
+# the above modules do not have a -native counterpart
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native"
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb
new file mode 100644
index 0000000..a125311
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Library for rapid service prototyping with minimal boilerplate"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0c1554636a564da3baf037ac652fc831"
+
+SRC_URI[md5sum] = "6aa8815652c6f5e5e8e5b2ac1813dd87"
+SRC_URI[sha256sum] = "b25707c349079a7c888155e7fdfd8394df2da9aca9c8eee4e205528cb16b7662"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} = "\
+               python-subprocess \
+               python-six \
+               python-argparse \
+               python-re \
+               python-shell \
+               python-threading \
+               python-logging \
+               python-unixadmin \
+               python-distutils \
+               python-daemonize \
+               python-futures \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb
new file mode 100644
index 0000000..43b4b7e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \
+application developers the full power and flexibility of SQL"
+HOMEPAGE = "http://www.sqlalchemy.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=baffc5e5f4804c92fc9be155fed70d41"
+RDEPENDS_${PN} += "python-numbers"
+
+SRCNAME = "SQLAlchemy"
+SRC_URI = "${SOURCEFORGE_MIRROR}/sqlalchemy/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "c4852d586d95a59fbc9358f4467875d5"
+SRC_URI[sha256sum] = "f7a305ad122144f364ce09a2d9ed5159d5f46ec43650653593e7dfa05d3294a1"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb
new file mode 100644
index 0000000..46a20a5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb
@@ -0,0 +1,18 @@
+SUMMARY  = "Tornado-Redis is an asyncronous Redis client for the Tornado Web Server"
+DESCRIPTION = "Tornado-Redis is a Redis client that uses Tornado's native 'tornado-gen' interface. \
+It can be used alongside redis-py in Tornado applications: \
+tornado-redis to subscribe to Pub/Sub notifications and for blocking commands (such as BLPOP, BRPOP, BRPOPLPUSH); \
+redis-py for other commands."
+HOMEPAGE = "https://github.com/leporo/tornado-redis"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=ca307e8f37b5fa7f8dbbec033f7db7de"
+
+SRC_URI[md5sum] = "1c7ec0f645d15400871141c1149e6934"
+SRC_URI[sha256sum] = "8fd3b324158291ad5fb7f5f8dc2e8763b2895556bd2a44f2dd721b703c669046"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "python-tornado"
+
+RDEPENDS_${PN}-test += "${PN} python-tornado"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
new file mode 100644
index 0000000..7e3ac8c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc
@@ -0,0 +1,24 @@
+SUMMARY  = "Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed."
+DESCRIPTION = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. \
+By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long \
+polling, WebSockets, and other applications that require a long-lived connection to each user."
+HOMEPAGE = "http://www.tornadoweb.org/en/stable/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://setup.py;startline=2;endline=15;md5=5ab7571a79ad62d0ca7aea308bac7560"
+
+SRC_URI[md5sum] = "d13a99dc0b60ba69f5f8ec1235e5b232"
+SRC_URI[sha256sum] = "c9c2d32593d16eedf2cec1b6a41893626a2649b40b21ca9c4cac4243bde2efbf"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-numbers ${PYTHON_PN}-email ${PYTHON_PN}-subprocess \
+                   ${PYTHON_PN}-pkgutil ${PYTHON_PN}-html ${PYTHON_PN}-json ${PYTHON_PN}-certifi"
+
+RDEPENDS_${PN}-test += "${PN} ${PYTHON_PN}-unittest"
+
+PACKAGES =+ "\
+    ${PN}-test \
+"
+
+FILES_${PN}-test = " \
+    ${libdir}/${PYTHON_DIR}/site-packages/*/test \
+    ${libdir}/${PYTHON_DIR}/site-packages/*/testing.py* \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado/0001-disable-AI_ADDRCONFIG-flag.patch b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado/0001-disable-AI_ADDRCONFIG-flag.patch
new file mode 100644
index 0000000..0b0d471
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado/0001-disable-AI_ADDRCONFIG-flag.patch
@@ -0,0 +1,32 @@
+From d7fb0a6ef3f3cbdfc1f21f5a67d54fa9d2c1e183 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 11:07:24 +0100
+Subject: [PATCH] disable AI_ADDRCONFIG flag
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+Upstream-Status: unknown
+---
+ tornado/netutil.py |    6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/tornado/netutil.py b/tornado/netutil.py
+index cfff0ba..c181f24 100644
+--- a/tornado/netutil.py
++++ b/tornado/netutil.py
+@@ -238,12 +238,6 @@ def bind_sockets(port, address=None, family=socket.AF_UNSPEC, backlog=128):
+     if address == "":
+         address = None
+     flags = socket.AI_PASSIVE
+-    if hasattr(socket, "AI_ADDRCONFIG"):
+-        # AI_ADDRCONFIG ensures that we only try to bind on ipv6
+-        # if the system is configured for it, but the flag doesn't
+-        # exist on some platforms (specifically WinXP, although
+-        # newer versions of windows have it)
+-        flags |= socket.AI_ADDRCONFIG
+     for res in set(socket.getaddrinfo(address, port, family, socket.SOCK_STREAM,
+                                   0, flags):
+         af, socktype, proto, canonname, sockaddr = res
+-- 
+1.7.2.5
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_2.2.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_2.2.1.bb
new file mode 100644
index 0000000..28026b3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_2.2.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README;md5=e7fb9954003d7cd93322ccf282210d1c"
+
+PV = "2.2.1+git${SRCPV}"
+
+SRCREV = "c501917eba46dec30b1f2ef12497dffc4beec505"
+SRC_URI = "git://github.com/facebook/tornado.git;branch=branch2.2 \
+           file://0001-disable-AI_ADDRCONFIG-flag.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools
+
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.3.bb
new file mode 100644
index 0000000..55a48b8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.3.bb
@@ -0,0 +1,3 @@
+inherit pypi setuptools
+require python-tornado.inc
+RDEPENDS_${PN} += "${PYTHON_PN}-backports-ssl"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb
new file mode 100644
index 0000000..ac88ac9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb
@@ -0,0 +1,245 @@
+DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \
+Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols                   \
+(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more."
+HOMEPAGE = "http://www.twistedmatrix.com"
+
+#twisted/topfiles/NEWS:655: - Relicensed: Now under the MIT license, rather than LGPL.
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5602d7228daf59a16f0f1b2640c46bca"
+
+SRC_URI[md5sum] = "83fe6c0c911cc1602dbffb036be0ba79"
+SRC_URI[sha256sum] = "095175638c019ac7c0604f4c291724a16ff1acd062e181b01293bf4dcbc62cf3"
+
+PYPI_PACKAGE = "Twisted"
+PYPI_PACKAGE_EXT = "tar.bz2"
+inherit pypi setuptools
+
+do_install_append() {
+    # remove some useless files before packaging
+    find ${D} \( -name "*.bat" -o -name "*.c" -o -name "*.h" \) -exec rm -f {} \;
+}
+
+PACKAGES += "\
+    ${PN}-zsh \
+    ${PN}-test \
+    ${PN}-protocols \
+    ${PN}-conch \
+    ${PN}-lore \
+    ${PN}-mail \
+    ${PN}-names \
+    ${PN}-news \
+    ${PN}-runner \
+    ${PN}-web \
+    ${PN}-words \
+    ${PN}-flow \
+    ${PN}-pair \
+    ${PN}-core \
+"
+
+PACKAGES =+ "\
+    ${PN}-src \
+    ${PN}-bin \
+"
+
+RDEPENDS_${PN} = "\
+    ${PN}-bin \
+    ${PN}-conch \
+    ${PN}-lore \
+    ${PN}-mail \
+    ${PN}-names \
+    ${PN}-news \
+    ${PN}-runner \
+    ${PN}-web \
+    ${PN}-words \
+"
+
+RDEPENDS_${PN}-core = "python-core python-zopeinterface python-contextlib"
+RDEPENDS_${PN}-test = "${PN}"
+RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols"
+RDEPENDS_${PN}-lore = "${PN}-core"
+RDEPENDS_${PN}-mail = "${PN}-core ${PN}-protocols"
+RDEPENDS_${PN}-names = "${PN}-core"
+RDEPENDS_${PN}-news = "${PN}-core ${PN}-protocols"
+RDEPENDS_${PN}-runner = "${PN}-core ${PN}-protocols"
+RDEPENDS_${PN}-web += "${PN}-core ${PN}-protocols"
+RDEPENDS_${PN}-words += "${PN}-core"
+RDEPENDS_${PN}-flow += "${PN}-core"
+RDEPENDS_${PN}-pair += "${PN}-core"
+RDEPENDS_${PN}-dbg = "${PN}"
+
+ALLOW_EMPTY_${PN} = "1"
+FILES_${PN} = ""
+
+FILES_${PN}-test = " \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/test \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/test \
+"
+
+FILES_${PN}-protocols = " \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/*.py* \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/gps/ \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/mice/ \
+"
+
+FILES_${PN}-zsh = " \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zsh \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.* \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/twisted-completion.zsh \
+"
+
+FILES_${PN}-conch = " \
+    ${bindir}/ckeygen \
+    ${bindir}/tkconch \
+    ${bindir}/conch \
+    ${bindir}/conchftp \
+    ${bindir}/cftp \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_conch.py* \
+    ${libdir}/${PYTHON_DIR}/site-packages/twisted/conch  \
+"
+
+FILES_${PN}-core = " \
+${bindir}/manhole \
+${bindir}/mktap \
+${bindir}/twistd \
+${bindir}/tap2deb \
+${bindir}/tap2rpm \
+${bindir}/tapconvert \
+${bindir}/tkmktap \
+${bindir}/trial \
+${bindir}/easy_install* \
+${bindir}/pyhtmlizer \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.so \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__init__.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/notestplugin.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/testplugin.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_ftp.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_inet.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_manhole.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_portforward.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_socks.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_telnet.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_trial.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/dropin.cache \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/application \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/cred \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/enterprise \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/internet \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/persisted \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols\
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python\
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/timeoutqueue.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/filepath.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dxprofile.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/plugin.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/htmlizer.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__init__.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dispatch.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/hook.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadpool.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/otp.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/usage.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/roots.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/versions.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/urlpath.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/util.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/components.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/logfile.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/runtime.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/reflect.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/context.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadable.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/rebuild.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/failure.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/lockfile.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/formmethod.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/finalize.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/win32.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dist.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/shortcut.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zipstream.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/release.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/syslog.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/log.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/compat.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/procutils.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/text.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_twisted_zsh_stub \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/scripts/ \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/ \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/tap/ \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/trial/ \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/__init__.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/_version.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/copyright.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/im.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/*.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/topfiles \
+${libdir}/${PYTHON_DIR}/site-packages/Twisted*egg-info \
+"
+
+FILES_${PN}-lore = " \
+${bindir}/bookify \
+${bindir}/lore \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_lore.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/lore \
+"
+
+FILES_${PN}-mail = " \
+${bindir}/mailmail \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_mail.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/mail \
+"
+
+FILES_${PN}-names = " \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_names.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/names \
+"
+
+FILES_${PN}-news = " \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_news.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/news \
+"
+
+FILES_${PN}-runner = " \
+${libdir}/site-packages/twisted/runner/portmap.so \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/runner\
+"
+
+FILES_${PN}-web = " \
+${bindir}/websetroot \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_web.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/web\
+"
+
+FILES_${PN}-words = " \
+${bindir}/im \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_words.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/words\
+"
+
+FILES_${PN}-flow = " \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_flow.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/flow \"
+
+FILES_${PN}-pair = " \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_pair.py* \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/pair \
+"
+
+FILES_${PN}-dbg += " \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \
+${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \
+"
+
+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/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ujson_1.35.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ujson_1.35.bb
new file mode 100644
index 0000000..29207f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ujson_1.35.bb
@@ -0,0 +1,13 @@
+SUMMARY  = "Ultra fast JSON encoder and decoder for Python"
+DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3."
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;startline=8;endline=9;md5=4f369b3c3c290b4aede8796a4065e5ab"
+
+SRC_URI[md5sum] = "42f77b0cce686dfa4da2e68480b1dd24"
+SRC_URI[sha256sum] = "f66073e5506e91d204ab0c614a148d5aa938bdbf104751be66f8ad7a222f5f86"
+
+PYPI_PACKAGE = "ujson"
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "python-numbers"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.14.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.14.bb
new file mode 100644
index 0000000..4e30991
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.14.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more"
+HOMEPAGE = "https://github.com/shazow/urllib3"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3be3707c5f24a69709682265e29566fe"
+
+SRC_URI[md5sum] = "5e1407428ac33b521c71a7ac273b3847"
+SRC_URI[sha256sum] = "dd4fb13a4ce50b18338c7e4d665b21fd38632c5d4b1d9f1a1379276bd3c08d37"
+
+inherit pypi setuptools
+
+RDEPENDS_${PN} += "python-netclient"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.14.0.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.14.0.0.bb
new file mode 100644
index 0000000..e87e50f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.14.0.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python vcversioner, automagically update the project's version"
+HOMEPAGE = "https://github.com/habnabit/vcversioner"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=260625d695c5e0c9dd2c2ef898833c7d"
+
+SRC_URI[md5sum] = "7848a365ced9941053bc25d9a9f8f4b4"
+SRC_URI[sha256sum] = "acd43686e92e6c8bbeb4f2eef54408567a7adea9692fa72d591eec5357c03b86"
+
+inherit pypi setuptools
+
+do_compile_append() {
+    export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS}
+    ${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/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-visitor_0.1.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-visitor_0.1.2.bb
new file mode 100644
index 0000000..f53091e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-visitor_0.1.2.bb
@@ -0,0 +1,8 @@
+SUMMARY = "A tiny pythonic visitor implementation."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[md5sum] = "e9471b44e5d426b0adf5d27694598be0"
+SRC_URI[sha256sum] = "d9444ffca56a46a920719460d4952f8c88f8fef97f1ea7d2b1f7c50f675022bd"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb
new file mode 100644
index 0000000..a28c02f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python package for parsing and generating vCard and vCalendar files"
+SECTION = "devel/python" 
+LICENSE = "Apache-2.0" 
+LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+HOMEPAGE = "http://vobject.skyhouseconsulting.com/" 
+SRCNAME = "vobject" 
+RDEPENDS_${PN} = "python python-dateutil"
+PR = "r4"
+
+SRC_URI = "http://vobject.skyhouseconsulting.com/${SRCNAME}-${PV}.tar.gz" 
+S = "${WORKDIR}/${SRCNAME}-${PV}" 
+
+inherit setuptools  
+
+SRC_URI[md5sum] = "c9686dd74d39fdae140890d9c694c076"
+SRC_URI[sha256sum] = "594113117f2017ed837c8f3ce727616f9053baa5a5463a7420c8249b8fc556f5"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb
new file mode 100644
index 0000000..7a6437d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "This project aims to provide an object-oriented Python WebDAV client-side library\
+               based on Python`s standard httplib and Greg Stein`s davlib.\
+               The client shall fully support RFCs 4918 (basic specification),\
+               3744 (access control), and 3253 (versioning)."
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/webdav/WebdavClient.py;endline=15;md5=a1520fad859feb7b0d7f05277bc6ce48"
+HOMEPAGE = "http://sourceforge.net/projects/pythonwebdavlib/"
+SRCNAME = "Python_WebDAV_Library"
+DEPENDS = "python"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pythonwebdavlib/Python%20WebDAV%20Library%20-%20${PV}/${SRCNAME}-${PV}.zip"
+SRC_URI[md5sum] = "8e49e0ecc5b4327c4f752a544ee10e1a"
+SRC_URI[sha256sum] = "72c029ad1e25de950f59c2f1812d009d2c1691b70e4b5b09f1af9006e8fd5f23"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
+
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc
new file mode 100644
index 0000000..7b54469
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc
@@ -0,0 +1,30 @@
+SUMMARY = "The Swiss Army knife of Python web development"
+DESCRIPTION = "\
+Werkzeug started as simple collection of various utilities for WSGI \
+applications and has become one of the most advanced WSGI utility modules. \
+It includes a powerful debugger, full featured request and response objects, \
+HTTP utilities to handle entity tags, cache control headers, HTTP dates, \
+cookie handling, file uploads, a powerful URL routing system and a bunch \
+of community contributed addon modules."
+HOMEPAGE = "http://werkzeug.pocoo.org/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a68f5361a2b2ca9fdf26b38aaecb6faa"
+
+SRC_URI[md5sum] = "daf443a939459e12f14fd2e4658a26df"
+SRC_URI[sha256sum] = "afdb04f183eef3b20827eb4520dcb75c1cd1f0ba7a7de3f463ff7a462eee8164"
+
+PYPI_PACKAGE = "Werkzeug"
+
+RDEPENDS_${PN} += " \
+    python-difflib \
+    python-email \
+    python-html \
+    python-json \
+    python-netserver \
+    python-numbers \
+    python-pkgutil \
+    python-subprocess \
+    python-threading \
+    python-unixadmin \
+    python-zlib \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.11.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.11.5.bb
new file mode 100644
index 0000000..dd14608
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.11.5.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-werkzeug.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc
new file mode 100644
index 0000000..0a2cf3b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc
@@ -0,0 +1,14 @@
+SUMMARY = "Fast, pure-Python full text indexing, search, and spell checking library."
+DESCRIPTION = "\
+Whoosh is a fast, featureful full-text indexing and searching library \
+implemented in pure Python. Programmers can use it to easily add search \
+functionality to their applications and websites. Every part of how \
+Whoosh works can be extended or replaced to meet your needs exactly."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05303186defc6141143629961c7c8a60"
+
+SRC_URI[md5sum] = "893433e9c0525ac043df33e6e04caab2"
+SRC_URI[sha256sum] = "e0857375f63e9041e03fedd5b7541f97cf78917ac1b6b06c1fcc9b45375dda69"
+
+PYPI_PACKAGE = "Whoosh"
+PYPI_PACKAGE_EXT = "zip"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb
new file mode 100644
index 0000000..48df360
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-whoosh.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.0.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.0.2.bb
new file mode 100644
index 0000000..ae605d5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.0.2.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "A flexible forms validation and rendering library for python web development."
+HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=e9377f5e4bfad82b40ed63f0fd4d1cce"
+
+SRC_URI[md5sum] = "613cf723ab40537705bec02733c78d95"
+SRC_URI[sha256sum] = "10737758ceae03b53021f3aa7e81bfc8dd6f679c879ffeb5e64ac6570facb6c1"
+
+PYPI_PACKAGE = "WTForms"
+PYPI_PACKAGE_EXT = "zip"
+
+inherit pypi setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
new file mode 100644
index 0000000..3c0d26d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc
@@ -0,0 +1,10 @@
+SUMMARY = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
+DESCRIPTION = "Extract data from Excel spreadsheets (.xls and .xlsx,\
+ versions 2.0 onwards) on any platform. Pure Python (2.6, 2.7, 3.2+). \
+Strong support for Excel dates. Unicode-aware."
+HOMEPAGE = "http://www.python-excel.org/"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://xlrd/licences.py;md5=b59dace5cc1db604c4219100b0422811"
+
+SRC_URI[md5sum] = "911839f534d29fe04525ef8cd88fe865"
+SRC_URI[sha256sum] = "8e8d3359f39541a6ff937f4030db54864836a06e42988c452db5b6b86d29ea72"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_0.9.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_0.9.4.bb
new file mode 100644
index 0000000..3a4d709
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_0.9.4.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools
+require python-xlrd.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb
new file mode 100644
index 0000000..15f8e20
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Interface definitions for Zope products"
+LICENSE = "ZPL-2.1"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46"
+
+SRC_URI[md5sum] = "edcd5f719c5eb2e18894c4d06e29b6c6"
+SRC_URI[sha256sum] = "91cba7b7cd7cb82f6f4e023fe77f94dc3df4ae5287fd55def2148dc232d0c7da"
+
+PYPI_PACKAGE = "zope.interface"
+inherit pypi setuptools
+
+RPROVIDES_${PN} += "zope-interfaces"
+FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*.egg/*/*/.debug"
+FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.c"
+FILES_${PN}-doc += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.txt"
+FILES_${PN}-tests = " \
+        ${PYTHON_SITEPACKAGES_DIR}/zope/interface/tests \
+        ${PYTHON_SITEPACKAGES_DIR}/zope/interface/common/tests \
+"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2016.2.28.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2016.2.28.bb
new file mode 100644
index 0000000..70f674b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2016.2.28.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-certifi.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.24.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.24.bb
new file mode 100644
index 0000000..2ce6bdb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.24.bb
@@ -0,0 +1,18 @@
+inherit setuptools3
+require python-cython.inc
+
+RDEPENDS_${PN} += "\
+    python3-setuptools \
+"
+
+# running build_ext a second time during install fails, because Python
+# would then attempt to import cythonized modules built for the target
+# architecture.
+DISTUTILS_INSTALL_ARGS += "--skip-build"
+
+do_install_append() {
+    # rename scripts that would conflict with the Python 2 build of Cython
+    mv ${D}${bindir}/cython ${D}${bindir}/cython3
+    mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3
+    mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.5.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.5.2.bb
new file mode 100644
index 0000000..1d2baf5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.5.2.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-dateutil.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.0.9.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.0.9.bb
new file mode 100644
index 0000000..844cbdc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.0.9.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-decorator.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
new file mode 100644
index 0000000..95a5405
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-feedformatter.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.2.11.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.2.11.bb
new file mode 100644
index 0000000..2d23fe1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.2.11.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-flask-login.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.4.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.4.0.bb
new file mode 100644
index 0000000..2102554
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.4.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-flask-pymongo.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.10.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.10.1.bb
new file mode 100644
index 0000000..cd43990
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.10.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-flask.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb
new file mode 100644
index 0000000..cd30825
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-itsdangerous.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.8.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.8.bb
new file mode 100644
index 0000000..61156b6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.8.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-jinja2.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_3.6.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_3.6.0.bb
new file mode 100644
index 0000000..ff4bc7f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_3.6.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-lxml.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_0.23.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_0.23.bb
new file mode 100644
index 0000000..765e3c9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_0.23.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-markupsafe.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.6.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.6.5.bb
new file mode 100644
index 0000000..18180a0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.6.5.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-passlib.inc
\ No newline at end of file
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
new file mode 100644
index 0000000..b3bab98
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-pyinotify.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.3.bb
new file mode 100644
index 0000000..4523d9e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-pymisp.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.2.2.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.2.2.bb
new file mode 100644
index 0000000..5164b18
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.2.2.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-pymongo.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.0.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.0.1.bb
new file mode 100644
index 0000000..17ed3f8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.0.1.bb
@@ -0,0 +1,7 @@
+inherit setuptools3
+require python-pyserial.inc
+
+do_install_append() {
+    rm -f ${D}${bindir}/miniterm.py
+    rmdir ${D}${bindir}
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_2.10.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_2.10.5.bb
new file mode 100644
index 0000000..b192ed8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_2.10.5.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-redis.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.9.1.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.9.1.bb
new file mode 100644
index 0000000..e5220fa
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.9.1.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-requests.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-six_1.10.0.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-six_1.10.0.bb
new file mode 100644
index 0000000..7f76157
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-six_1.10.0.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-six.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.3.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.3.bb
new file mode 100644
index 0000000..eecc1f0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.3.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-tornado.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.11.5.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.11.5.bb
new file mode 100644
index 0000000..af2d86a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.11.5.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-werkzeug.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb
new file mode 100644
index 0000000..5d8af30
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-whoosh.inc
diff --git a/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_0.9.4.bb b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_0.9.4.bb
new file mode 100644
index 0000000..b7bd969
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_0.9.4.bb
@@ -0,0 +1,2 @@
+inherit pypi setuptools3
+require python-xlrd.inc