summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-openembedded/meta-python
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2016-08-17 15:04:38 -0500
committerPatrick Williams <patrick@stwcx.xyz>2016-08-22 16:43:32 +0000
commitb48b7b4109868a8c0ddda090992e936e821c7ea6 (patch)
tree696be8ea782f2548c0f63bb0188f4c8d3eeed681 /import-layers/meta-openembedded/meta-python
parentd849ec78de728ef9a2d383b92ccfeabf40f8f1d0 (diff)
downloadtalos-openbmc-b48b7b4109868a8c0ddda090992e936e821c7ea6.tar.gz
talos-openbmc-b48b7b4109868a8c0ddda090992e936e821c7ea6.zip
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>
Diffstat (limited to 'import-layers/meta-openembedded/meta-python')
-rw-r--r--import-layers/meta-openembedded/meta-python/COPYING.MIT17
-rw-r--r--import-layers/meta-openembedded/meta-python/README51
-rw-r--r--import-layers/meta-openembedded/meta-python/classes/pypi.bbclass23
-rw-r--r--import-layers/meta-openembedded/meta-python/conf/layer.conf17
-rw-r--r--import-layers/meta-openembedded/meta-python/licenses/Unicode37
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in47
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb89
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.39.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.9.2.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.2.bb9
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-autobahn_0.8.6.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-backports-ssl_3.4.0.2.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bcrypt_2.0.0.bb15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-behave_1.2.5.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-blinker_1.4.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi.inc11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-certifi_2016.2.28.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cffi_1.5.2.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-chardet_2.3.0.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cloudeebus_0.6.0.bb35
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cmd2_0.6.8.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_1.1.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Comment_lingering_SSLv2_symbol.patch24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/Remove_SSLv2_bindings.patch75
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/build_fix_openssl_1.0.1g.patch28
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography/run-ptest2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography_1.1.bb52
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython.inc21
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-cython_0.24.bb6
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-daemonize_2.4.6.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil.inc21
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dateutil_2.5.2.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch53
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch29
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dbusmock_0.10.1.bb21
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator.inc15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.0.9.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb13
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-django_1.8.8.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-dominate_2.2.0.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-enum34_1.1.2.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-evdev_0.6.0.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter.inc11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb9
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.5.7.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login.inc14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-login_0.2.11.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo.inc13
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-pymongo_0.4.0.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.1.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf/import-simplejson-as-json.patch28
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask-wtf_0.12.bb17
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask.inc14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flask_0.10.1.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-flufl-enum_4.1.bb24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gdata_1.2.4.bb17
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-gevent_0.13.8.bb15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-greenlet_0.4.7.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-html5lib_0.9999999.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-idna_2.1.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ipaddress_1.0.16.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-iso8601_0.1.11.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous.inc9
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2.inc15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jinja2_2.8.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpatch_1.13.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-jsonpointer_1.10.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap/setup.cfg.patch14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.3.9.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ldap_2.4.10.bb24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml.inc43
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-lxml_3.6.0.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-M2Crypto-Error-fix.patch162
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch36
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.23.0.bb52
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe.inc14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-markupsafe_0.23.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setup.patch29
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch40
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-matplotlib_1.1.0.bb36
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-mock_1.3.0.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-monotonic_1.0.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-msgpack_0.4.7.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-netaddr_0.7.18.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric/no-lapack.patch33
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-numeric_24.2.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paho-mqtt_1.1.bb15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pam_1.8.2.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse-type_0.3.4.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-parse_1.6.6.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib.inc14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-passlib_1.6.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-paste_2.0.3.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pep8_1.7.0.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pip_8.1.1.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pretend_1.0.8.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb22
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-psutil_4.1.0.bb12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-py_1.4.31.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyalsaaudio_0.4.bb15
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyasn1_0.1.9.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pycparser_2.14.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyflakes_1.1.0.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme/run-ptest3
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb22
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify.inc11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp.inc10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymisp_2.3.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo.inc12
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pymongo_3.2.2.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyopenssl_0.15.1.bb18
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyparsing_2.1.1.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2/import-simplejson-as-json.patch26
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyroute2_0.3.14.bb24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial.inc16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyserial_3.0.1.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytest_2.9.1.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pytz_2016.3.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyudev_0.19.0.bb20
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyusb_1.0.0b2.bb10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml/setup.py64
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyyaml_3.11.bb24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch26
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis.inc9
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-redis_2.10.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests.inc9
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-requests_2.9.1.bb4
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six.inc16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-six_1.10.0.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-slip-dbus_0.6.0.bb27
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-smbus_3.1.1.bb20
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-snakefood_1.4.bb51
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb22
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb18
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado.inc24
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado/0001-disable-AI_ADDRCONFIG-flag.patch32
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_2.2.1.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-tornado_4.3.bb3
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-twisted_13.2.0.bb245
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-ujson_1.35.bb13
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-urllib3_1.14.bb11
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vcversioner_2.14.0.0.bb21
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-visitor_0.1.2.bb8
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-vobject_0.8.1c.bb16
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb19
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug.inc30
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-werkzeug_0.11.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh.inc14
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-wtforms_2.0.2.bb13
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd.inc10
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-xlrd_0.9.4.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python-zopeinterface_4.1.1.bb18
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-certifi_2016.2.28.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-cython_0.24.bb18
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.5.2.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-decorator_4.0.9.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.2.11.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-pymongo_0.4.0.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_0.10.1.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-jinja2_2.8.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-lxml_3.6.0.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-markupsafe_0.23.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-passlib_1.6.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.3.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_3.2.2.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-pyserial_3.0.1.bb7
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_2.10.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-requests_2.9.1.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-six_1.10.0.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_4.3.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_0.11.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-devtools/python/python3-xlrd_0.9.4.bb2
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch26
-rw-r--r--import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb27
195 files changed, 3266 insertions, 0 deletions
diff --git a/import-layers/meta-openembedded/meta-python/COPYING.MIT b/import-layers/meta-openembedded/meta-python/COPYING.MIT
new file mode 100644
index 000000000..fb950dc69
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/import-layers/meta-openembedded/meta-python/README b/import-layers/meta-openembedded/meta-python/README
new file mode 100644
index 000000000..36e76bfe2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/README
@@ -0,0 +1,51 @@
+meta-python
+================================
+
+Introduction
+-------------------------
+
+This layer is intended to be the home of python modules for OpenEmbedded.
+Modules in this layer need to be independent of openembedded-core and
+meta-openembedded/meta-oe. Because of this, modules required by 'gateone'
+and 'anki' are not included and remain in:
+ meta-openembedded/meta-oe/recipes-devtools/python.
+
+Dependencies
+-------------------------
+
+The meta-python layer depends on:
+
+ URI: git://git.openembedded.org/openembedded-core
+ layers: meta
+ branch: krogoth
+ revision: HEAD
+
+ URI: git://git.openembedded.org/meta-openembedded
+ layers: meta-oe
+ branch: krogoth
+ revision: HEAD
+
+Please follow the recommended setup procedures of your OE distribution.
+For Angstrom that is:
+ http://www.angstrom-distribution.org/building-angstrom,
+other distros should have similar online resources.
+
+Contributing
+-------------------------
+
+The meta-openembedded mailinglist
+(openembedded-devel@lists.openembedded.org) is used for questions,
+comments and patch review. It is subscriber only, so please register
+before posting.
+
+Send pull requests to openembedded-devel@lists.openembedded.org with
+'[meta-python][krogoth]' in the subject.
+
+When sending single patches, please use something like:
+'git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix=meta-python][krogoth][PATCH'
+
+Maintenance
+-------------------------
+
+krogoth Branch Maintainer:
+Armin Kuster <akuster808@gmail.com>
diff --git a/import-layers/meta-openembedded/meta-python/classes/pypi.bbclass b/import-layers/meta-openembedded/meta-python/classes/pypi.bbclass
new file mode 100644
index 000000000..659e1c0d8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/classes/pypi.bbclass
@@ -0,0 +1,23 @@
+def pypi_package(d):
+ bpn = d.getVar('BPN', True)
+ if bpn.startswith('python-'):
+ return bpn[7:]
+ elif bpn.startswith('python3-'):
+ return bpn[8:]
+ return bpn
+
+PYPI_PACKAGE ?= "${@pypi_package(d)}"
+PYPI_PACKAGE_EXT ?= "tar.gz"
+
+def pypi_src_uri(d):
+ package = d.getVar('PYPI_PACKAGE', True)
+ package_ext = d.getVar('PYPI_PACKAGE_EXT', True)
+ pv = d.getVar('PV', True)
+ return 'https://pypi.python.org/packages/source/%s/%s/%s-%s.%s' % (package[0], package, package, pv, package_ext)
+
+PYPI_SRC_URI ?= "${@pypi_src_uri(d)}"
+
+HOMEPAGE ?= "https://pypi.python.org/pypi/${PYPI_PACKAGE}/"
+SECTION = "devel/python"
+SRC_URI += "${PYPI_SRC_URI}"
+S = "${WORKDIR}/${PYPI_PACKAGE}-${PV}"
diff --git a/import-layers/meta-openembedded/meta-python/conf/layer.conf b/import-layers/meta-openembedded/meta-python/conf/layer.conf
new file mode 100644
index 000000000..d53677fef
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/conf/layer.conf
@@ -0,0 +1,17 @@
+# We might have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "meta-python"
+BBFILE_PATTERN_meta-python := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-python = "7"
+
+# This should only be incremented on significant changes that will
+# cause compatibility issues with other layers
+LAYERVERSION_meta-python = "1"
+
+LAYERDEPENDS_meta-python = "core openembedded-layer"
+
+LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/import-layers/meta-openembedded/meta-python/licenses/Unicode b/import-layers/meta-openembedded/meta-python/licenses/Unicode
new file mode 100644
index 000000000..5d2cc4a62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/licenses/Unicode
@@ -0,0 +1,37 @@
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright 1991-2015 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in
+http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software,
+(b) this copyright and permission notice appear in associated
+documentation, and
+(c) there is clear notice in each modified Data File or in the Software
+as well as in the documentation associated with the Data File(s) or
+Software that the data or software has been modified.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in
new file mode 100644
index 000000000..4503da422
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in
@@ -0,0 +1,24 @@
+// Some custom Gate One settings for OpenEmbedded
+{
+ "*": {
+ "gateone": { // These settings apply to all of Gate One
+ "log_file_prefix": "@localstate@/log/gateone.log", // default would be /var/log/gateone/gateone.log
+ "log_file_max_size": 5242880, // 5 megabyte logs for OE by default (default would normally be 100Mb)
+ "log_file_num_backups": 2, // Default is normally 10
+ "origins": ["*"], // Every device has a unique origin
+ "logging": "info",
+ "pid_file": "/run/gateone.pid",
+ "session_dir": "/tmp/gateone",
+ "user_dir": "@localstate@/lib/gateone/users"
+ },
+ "terminal": {
+ // Disabling session logging for embedded devices is a good idea (limited/slow storage)
+ "session_logging": false,
+ "syslog_session_logging": false
+// "commands": {
+// // For some reason this doesn't work (never asks for the password)
+// "login": "setsid /bin/login" // Normally this would emulate logging into the host console
+// }
+ }
+ }
+}
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service
new file mode 100644
index 000000000..0f613d18e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service
@@ -0,0 +1,10 @@
+<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
+<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
+
+<service-group>
+ <name replace-wildcards="yes">GateOne on %h</name>
+ <service>
+ <type>_https._tcp</type>
+ <port>443</port>
+ </service>
+</service-group>
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in
new file mode 100644
index 000000000..86d655c94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in
@@ -0,0 +1,47 @@
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides: gateone
+# Required-Start: networking
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Gateone HTML5 ssh client
+# Description: Gateone HTML5 terminal emulator and SSH client.
+### END INIT INFO
+
+. /etc/init.d/functions
+
+NAME=gateone
+DAEMON=@bindir@/gateone
+PIDFILE=/run/gateone.pid
+WORKDIR=@localstate@/lib/gateone
+
+do_start() {
+ cd $WORKDIR
+ @bindir@/python $DAEMON > /dev/null 2>&1 &
+ cd $OLDPWD
+}
+
+do_stop() {
+ kill -TERM `cat $PIDFILE`
+}
+
+case "$1" in
+ start)
+ echo "Starting gateone"
+ do_start
+ ;;
+ stop)
+ echo "Stopping gateone"
+ do_stop
+ ;;
+ restart|force-reload)
+ echo "Restart gateone"
+ do_stop
+ sleep 1
+ do_start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in
new file mode 100644
index 000000000..44667275a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=GateOne daemon
+ConditionPathExists=|@localstate@/lib/gateone
+
+[Service]
+WorkingDirectory=@localstate@/lib/gateone
+ExecStart=@bindir@/python @bindir@/gateone
+
+[Install]
+WantedBy=multi-user.target
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb
new file mode 100644
index 000000000..5ff753eda
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/gateone/gateone_git.bb
@@ -0,0 +1,89 @@
+SUMMARY = "HTML5 (plugin-free) web-based terminal emulator and SSH client"
+LICENSE = "AGPL-3.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=834cbc6995db88433db17cdf8953a428"
+HOMEPAGE = "http://liftoffsoftware.com/Products/GateOne"
+
+PV = "1.2+git${SRCPV}"
+SRCREV = "f7a9be46cb90f57459ebd363d24702de0e651034"
+SRC_URI = "git://github.com/liftoff/GateOne.git;branch=master \
+ file://gateone-avahi.service \
+ file://80oe.conf.in \
+ file://gateone.service.in \
+ file://gateone-init.in \
+"
+
+S = "${WORKDIR}/git"
+
+inherit distutils python-dir systemd update-rc.d
+export prefix = "${localstatedir}"
+
+DISTUTILS_INSTALL_ARGS = "--root=${D} \
+ --prefix=${prefix} \
+ --install-lib=${PYTHON_SITEPACKAGES_DIR} \
+ --install-data=${PYTHON_SITEPACKAGES_DIR} \
+ --install-scripts=${bindir} \
+ --skip_init_scripts"
+
+do_install_append() {
+
+ # fix up hardcoded paths
+ for file in gateone.service gateone-init 80oe.conf; do
+ sed -e s:@bindir@:${bindir}:g \
+ -e s:@localstate@:${localstatedir}:g \
+ < ${WORKDIR}/$file.in \
+ > ${WORKDIR}/$file
+ done
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/gateone.service ${D}${systemd_unitdir}/system
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/gateone-init ${D}${sysconfdir}/init.d/gateone
+
+ install -m 0755 -d ${D}${sysconfdir}/avahi/services/
+ install -m 0644 ${WORKDIR}/gateone-avahi.service ${D}${sysconfdir}/avahi/services/
+
+ install -m 0755 -d ${D}${sysconfdir}/gateone/conf.d/
+ install -m 0644 ${WORKDIR}/80oe.conf ${D}${sysconfdir}/gateone/conf.d/80oe.conf
+
+ install -d ${D}${localstatedir}/lib/gateone
+}
+
+FILES_${PN} = "${localstatedir}/lib ${bindir} ${base_libdir} ${sysconfdir} ${PYTHON_SITEPACKAGES_DIR}"
+RDEPENDS_${PN} = "mime-support \
+ openssh-ssh \
+ python-compression \
+ python-contextlib \
+ python-crypt \
+ python-datetime \
+ python-email \
+ python-fcntl \
+ python-futures \
+ python-html \
+ python-imaging \
+ python-io \
+ python-json \
+ python-logging \
+ python-misc \
+ python-multiprocessing \
+ python-netclient \
+ python-pkgutil \
+ python-pyopenssl \
+ python-re \
+ python-readline \
+ python-setuptools \
+ python-shell \
+ python-simplejson \
+ python-subprocess \
+ python-syslog \
+ python-terminal \
+ python-textutils \
+ python-tornado \
+ python-unixadmin \
+ python-xml \
+ python-html5lib \
+ bash \
+"
+
+SYSTEMD_SERVICE_${PN} = "gateone.service"
+INITSCRIPT_NAME = "gateone"
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.39.bb b/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.39.bb
new file mode 100644
index 000000000..45b793dcc
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.39.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python Remote Objects"
+HOMEPAGE = "https://pypi.python.org/pypi/Pyro4/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b48b62dd270c4691fabaa85be3236030"
+
+SRCNAME = "Pyro4"
+
+SRC_URI = "https://pypi.python.org/packages/source/P/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "75ed5cd142803b0a8d587dc8b6bb51ed"
+SRC_URI[sha256sum] = "39c6ca7f86b0f0bebfeada687a5a8b99f66470a52b0f815195ae63c683266f24"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.9.2.bb b/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.9.2.bb
new file mode 100644
index 000000000..d0c4af757
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.9.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python bindings for the Apache Thrift RPC system"
+HOMEPAGE = "https://pypi.python.org/pypi/amqp/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=df17a59cc9e1327ec49c2285e13ac477"
+
+SRCNAME = "thrift"
+
+SRC_URI = "https://pypi.python.org/packages/source/t/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "91f1c224c46a257bb428431943387dfd"
+SRC_URI[sha256sum] = "08f665e4b033c9d2d0b6174d869273104362c80e77ee4c01054a74141e378afa"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb b/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
new file mode 100644
index 000000000..0b2ac118a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Twisted Web Sockets"
+HOMEPAGE = "https://github.com/MostAwesomeDude/txWS"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8"
+
+DEPENDS = "python-twisted python-six python-vcversioner"
+
+SRC_URI = "git://github.com/MostAwesomeDude/txWS.git"
+SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools
+
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 000000000..3d382b9ac
--- /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 000000000..e64dd8ff5
--- /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 000000000..5e2d1741f
--- /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 000000000..3cbe33eb5
--- /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 000000000..541a79d7b
--- /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 000000000..145f1fbef
--- /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 000000000..0ce141ff5
--- /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 000000000..0fe8b15d6
--- /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 000000000..adfe6238e
--- /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 000000000..8b258778c
--- /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 000000000..dfc979b33
--- /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 000000000..20fc2fdc3
--- /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 000000000..120a8a792
--- /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 000000000..f4962d6bc
--- /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 000000000..2150e5078
--- /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 000000000..b28e7efff
--- /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 000000000..852232546
--- /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 000000000..d08994fe8
--- /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 000000000..0ba239c2a
--- /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 000000000..665a4cb12
--- /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 000000000..f5945b523
--- /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 000000000..6be0b1e30
--- /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 000000000..b17b3668b
--- /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 000000000..a944ef2b9
--- /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 000000000..12ae4c311
--- /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 000000000..fdd00b6a4
--- /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 000000000..981694f0e
--- /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 000000000..2520bfc95
--- /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 000000000..571001262
--- /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 000000000..f26216846
--- /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 000000000..4d071c463
--- /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 000000000..e56c55558
--- /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 000000000..1feaa7e8f
--- /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 000000000..5083bdab4
--- /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 000000000..c4752d37e
--- /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 000000000..e5555526f
--- /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 000000000..1a02a4fc4
--- /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 000000000..175f94478
--- /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 000000000..3ac18b07d
--- /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 000000000..d08883dab
--- /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 000000000..ecf89ae6a
--- /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 000000000..95c4428c0
--- /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 000000000..510cedf22
--- /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 000000000..8ff6abcfd
--- /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 000000000..939113b5e
--- /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 000000000..d41d02348
--- /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 000000000..a2587138b
--- /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 000000000..678f7062b
--- /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 000000000..79afaf659
--- /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 000000000..4923726a3
--- /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 000000000..a0a28ab8b
--- /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 000000000..ef108485a
--- /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 000000000..2205584c5
--- /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 000000000..d1c0a3cf5
--- /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 000000000..a69eb6462
--- /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 000000000..bb92e5953
--- /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 000000000..90f47aea9
--- /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 000000000..1e97ef7c5
--- /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 000000000..484cf1243
--- /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 000000000..73951fa56
--- /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 000000000..0e156be2f
--- /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 000000000..f6ee79b1c
--- /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 000000000..ec8e7ed2d
--- /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 000000000..085ba5959
--- /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 000000000..8ec8772a3
--- /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 000000000..a703d342e
--- /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 000000000..64e65ebf9
--- /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 000000000..0a6ae7eb6
--- /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 000000000..0473417d8
--- /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 000000000..81ccb12d8
--- /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 000000000..2a74b6850
--- /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 000000000..819c8e569
--- /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 000000000..f6f0e1f0e
--- /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 000000000..fd7d9bdc2
--- /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 000000000..396eff102
--- /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 000000000..938158353
--- /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 000000000..9a13a1850
--- /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 000000000..69f71c711
--- /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 000000000..0958f75c6
--- /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 000000000..8a7894cb0
--- /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 000000000..5d237b55d
--- /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 000000000..3b7853e91
--- /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 000000000..6fdbf1930
--- /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 000000000..c1916b8b9
--- /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 000000000..c0b04e144
--- /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 000000000..b8f5f3fce
--- /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 000000000..05bddd527
--- /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 000000000..9dc37cf82
--- /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 000000000..45b52a38f
--- /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 000000000..843e8e067
--- /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 000000000..11c598a08
--- /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 000000000..6b4019f84
--- /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 000000000..262b862bc
--- /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 000000000..c0c263bb4
--- /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 000000000..ddc7b623e
--- /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 000000000..c8f7b5f42
--- /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 000000000..6a210ee5f
--- /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 000000000..592bc04e2
--- /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 000000000..0e660adff
--- /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 000000000..017adfeac
--- /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 000000000..18006ca6a
--- /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 000000000..ae7d471dc
--- /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 000000000..ac867e2c0
--- /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 000000000..03c47908d
--- /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 000000000..02d4f54e1
--- /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 000000000..a9edb2c81
--- /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 000000000..d1f84c3ca
--- /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 000000000..9cd084413
--- /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 000000000..1b1fbe956
--- /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 000000000..e0f52ddeb
--- /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 000000000..b1778b2f1
--- /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 000000000..5027c6dbc
--- /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 000000000..94a99e5bc
--- /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 000000000..d73da07d2
--- /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 000000000..43c6cecfd
--- /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 000000000..08eef746f
--- /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 000000000..ad2b350b0
--- /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 000000000..ca53dc48c
--- /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 000000000..da4e2d6c2
--- /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 000000000..aa26dc7d9
--- /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 000000000..d279abc40
--- /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 000000000..2ed1c94be
--- /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 000000000..a017e0e65
--- /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 000000000..2dc3b73f9
--- /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 000000000..b5baf82df
--- /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 000000000..e64f0410a
--- /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 000000000..6c3ca8516
--- /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 000000000..ebce2539c
--- /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 000000000..627bc95d8
--- /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 000000000..408c60e88
--- /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 000000000..9075745d7
--- /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 000000000..2714f4322
--- /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 000000000..df47df624
--- /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 000000000..e4a6d767d
--- /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 000000000..a1253112c
--- /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 000000000..43b4b7efa
--- /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 000000000..46a20a5ed
--- /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 000000000..7e3ac8c81
--- /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 000000000..0b0d471a4
--- /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 000000000..28026b352
--- /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 000000000..55a48b884
--- /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 000000000..ac88ac960
--- /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 000000000..29207f3c5
--- /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 000000000..4e30991ac
--- /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 000000000..e87e50f9b
--- /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 000000000..f53091ec0
--- /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 000000000..a28c02f7e
--- /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 000000000..7a6437dc5
--- /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 000000000..7b5446992
--- /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 000000000..dd1460870
--- /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 000000000..0a2cf3bf4
--- /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 000000000..48df36017
--- /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 000000000..ae605d5bc
--- /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 000000000..3c0d26d4d
--- /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 000000000..3a4d709eb
--- /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 000000000..15f8e2076
--- /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 000000000..70f674b22
--- /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 000000000..2ce6bdbd6
--- /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 000000000..1d2baf55c
--- /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 000000000..844cbdc9a
--- /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 000000000..95a5405f3
--- /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 000000000..2d23fe167
--- /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 000000000..2102554b6
--- /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 000000000..cd439900c
--- /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 000000000..cd3082528
--- /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 000000000..61156b630
--- /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 000000000..ff4bc7faa
--- /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 000000000..765e3c906
--- /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 000000000..18180a07a
--- /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 000000000..b3bab989a
--- /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 000000000..4523d9e30
--- /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 000000000..5164b186b
--- /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 000000000..17ed3f8bc
--- /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 000000000..b192ed872
--- /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 000000000..e5220fac6
--- /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 000000000..7f7615723
--- /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 000000000..eecc1f0fb
--- /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 000000000..af2d86a9f
--- /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 000000000..5d8af303c
--- /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 000000000..b7bd969c7
--- /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
diff --git a/import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch b/import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch
new file mode 100644
index 000000000..db3ab9fc3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted/0001-fix-version-float-check.patch
@@ -0,0 +1,26 @@
+check_mod_version breaks if module version is of x.y.z form
+use a regex to help cast x.y.z version to a float
+
+Upstream-Status: Pending
+
+Index: git/setup.py
+===================================================================
+--- git.orig/setup.py
++++ git/setup.py
+@@ -25,6 +25,7 @@ import glob
+ import os
+ import platform
+ import sys
++import re
+ from distutils.ccompiler import new_compiler
+ from distutils.errors import CompileError
+ from distutils.errors import LinkError
+@@ -51,6 +52,8 @@ def pkgconfig(*packages, **kwargs):
+
+ def check_mod_version(module, version):
+ modversion = subprocess.check_output(["pkg-config", "--modversion", module])
++ match = re.search('([0-9]+\.[0-9]+)', modversion)
++ modversion = match.group(0)
+ if not float(modversion) >= float(version):
+ sys.stderr.write("*** Minimum required %s version: %s, found: %s\n" % (module, version, modversion,))
+ sys.exit(1)
diff --git a/import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb b/import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb
new file mode 100644
index 000000000..712c4b97a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-python/recipes-extended/python-pyparted/python-pyparted_3.10.7.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \
+an interface to libparted, the GNU parted library for disk partitioning and \
+filesystem manipulation."
+SUMMARY = "Python bindings for libparted"
+HOMEPAGE = "https://github.com/rhinstaller/pyparted"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://src/_pedmodule.c;startline=10;endline=22;md5=ebcb25dde1ac9c46e986dec79b404e7e \
+"
+DEPENDS += "parted python-re"
+
+PV = "3.10.7+git${SRCPV}"
+
+# upstream only publishes releases in github archives which are discouraged
+SRCREV = "69c4a478e43d3eff6ae3a0116fa38da06776d5f5"
+SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https \
+ file://0001-fix-version-float-check.patch \
+"
+S = "${WORKDIR}/git"
+
+inherit distutils
+
+RDEPENDS_${PN} += "python-stringold python-codecs python-math parted (>= 2.3)"
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND += "native"
OpenPOWER on IntegriCloud