summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-python
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-python')
-rw-r--r--meta-openembedded/meta-python/conf/layer.conf2
-rw-r--r--meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb29
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_4.4.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.10.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.4.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.8.bb)5
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.11.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb12
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch36
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb15
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch37
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb16
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.1.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.45.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.43.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.6.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.46.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.18.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.17.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.58.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb9
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.950.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.942.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.4.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb11
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.0.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_12.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_11.0.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch31
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb18
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.7.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.5.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.7.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.4.24.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.15.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch35
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.10.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.8.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.23.0.bb)3
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb14
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.2.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb)4
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.4.0.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb20
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.3.bb (renamed from meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb)2
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch861
-rw-r--r--meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb3
-rw-r--r--meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb29
64 files changed, 1356 insertions, 51 deletions
diff --git a/meta-openembedded/meta-python/conf/layer.conf b/meta-openembedded/meta-python/conf/layer.conf
index e444498ff0..481e4ea2cc 100644
--- a/meta-openembedded/meta-python/conf/layer.conf
+++ b/meta-openembedded/meta-python/conf/layer.conf
@@ -14,6 +14,6 @@ LAYERVERSION_meta-python = "1"
LAYERDEPENDS_meta-python = "core (>= 12) openembedded-layer"
-LAYERSERIES_COMPAT_meta-python = "kirkstone"
+LAYERSERIES_COMPAT_meta-python = "kirkstone langdale"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index f7bf365192..6ca652e12d 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -12,9 +12,9 @@ PACKAGES = ' \
# FORTRAN:forcevariable = ",fortran"
RDEPENDS:packagegroup-meta-python3 = "\
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-systemd", "", d)} \
- ${@bb.utils.contains("DISTRO_FEATURES", "x11", "python3-blivetgui", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 systemd", "python3-blivetgui", "", d)} \
gyp \
- pamela \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pamela", "", d)} \
pyrtm \
python3-absl \
python3-aenum \
@@ -52,7 +52,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-bitstring \
python3-bitstruct \
python3-blinker \
- python3-blivet \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-blivet", "", d)} \
python3-booleanpy \
python3-cachecontrol \
python3-cached-property \
@@ -84,13 +84,15 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-croniter \
python3-cson \
python3-custom-inherit \
- python3-cvxopt \
+ ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'python3-cvxopt', '', d)} \
python3-cycler \
+ python3-cytoolz \
python3-dateparser \
python3-dateutil \
python3-dbus-next \
python3-dbussy \
python3-decorator \
+ python3-decouple \
python3-defusedxml \
python3-dill \
python3-diskcache \
@@ -108,6 +110,14 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-email-validator \
python3-engineio \
python3-et-xmlfile \
+ python3-eth-abi \
+ python3-eth-account \
+ python3-eth-hash \
+ python3-eth-keyfile \
+ python3-eth-keys \
+ python3-eth-rlp \
+ python3-eth-typing \
+ python3-eth-utils \
python3-evdev \
python3-execnet \
python3-fann2 \
@@ -176,6 +186,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-imgtool \
python3-incremental \
python3-inflection \
+ python3-inotify \
python3-intelhex \
python3-intervals \
python3-ipaddress \
@@ -209,9 +220,11 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-lazy-object-proxy \
python3-libconf \
python3-license-expression \
+ python3-ldap \
python3-lockfile \
python3-lorem \
python3-lrparsing \
+ python3-lru-dict \
python3-luma-core \
python3-luma-oled \
python3-lxml \
@@ -252,6 +265,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-paramiko \
python3-parse \
python3-parse-type \
+ python3-parsimonious \
python3-parso \
python3-passlib \
python3-pastedeploy \
@@ -300,6 +314,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pydicti \
python3-pyephem \
python3-pyexpect \
+ python3-pyfanotify \
python3-pyfirmata \
python3-pyflakes \
python3-pyhamcrest \
@@ -327,7 +342,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pyscaffold \
python3-pyserial \
python3-pysonos \
- python3-pystemd \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-pystemd", "", d)} \
python3-pytest-asyncio \
python3-pytest-benchmark \
python3-pytest-cache \
@@ -363,6 +378,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-rfc3339-validator \
python3-rfc3986-validator \
python3-rfc3987 \
+ python3-rlp \
python3-robotframework \
python3-robotframework-seriallibrary \
python3-rsa \
@@ -403,6 +419,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-thrift \
python3-tinyrecord \
python3-tornado \
+ python3-toolz \
python3-tqdm \
python3-trafaret \
python3-trafaret-config \
@@ -427,6 +444,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-visitor \
python3-waitress \
python3-watchdog \
+ python3-web3 \
python3-webcolors \
python3-webencodings \
python3-websocket-client \
@@ -464,6 +482,7 @@ RDEPENDS:packagegroup-meta-python3-ptest = "\
python3-dominate-ptest \
python3-geojson-ptest \
python3-gunicorn-ptest \
+ python3-hexbytes \
python3-html2text-ptest \
python3-inflection-ptest \
python3-intervals-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_4.4.1.bb
index 47d9964b0e..b3a88fb677 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_3.0.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohue_4.4.1.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
-SRC_URI[sha256sum] = "31c0b90d7dc2b62f5e1a93e78b2c0d6360ef6c0a87485c217a4f394c937fce7d"
+SRC_URI[sha256sum] = "fa3bb0cf68aefdd0710704443c896abda69ae227500ad9539ac6c3d1d6dad804"
inherit pypi setuptools3
@@ -12,4 +12,5 @@ RDEPENDS:${PN} += " \
${PYTHON_PN}-aiohttp \
${PYTHON_PN}-asyncio-throttle \
${PYTHON_PN}-profile \
+ ${PYTHON_PN}-awesomeversion \
"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.10.bb
index 8a19b6c64c..01f17207c6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.9.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.10.bb
@@ -1,8 +1,8 @@
SUMMARY = "ANTLR runtime for Python"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c96f0ee5f5d08fd4387e5f00507bb13e"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6e514123aedb5d9fb133d1bc6c598d46"
-SRC_URI[sha256sum] = "31f5abdc7faf16a1a6e9bf2eb31565d004359b821b09944436a34361929ae85a"
+SRC_URI[sha256sum] = "061a49bc72ae05a35d9b61c0ba0ac36c0397708819f02fbfb20a80e47d287a1b"
PYPI_PACKAGE = "antlr4-python3-runtime"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.3.bb
index c52008ee65..a2e9111374 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.3.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
-SRC_URI[sha256sum] = "8d0a30fe6481ce919f56690076eafbb2fb649142a89dc874f1ec0e7a011492d0"
+SRC_URI[sha256sum] = "4e5ba10571e197785e312966ea5efb2f5783176d4c1a73fa922d474ae2be59f7"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.4.2.bb
index 78514a412f..3dc308385b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_22.4.2.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://crossbar.io/autobahn"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
-SRC_URI[sha256sum] = "58a887c7a196bb08d8b6624cb3695f493a9e5c9f00fd350d8d6f829b47ff9036"
+SRC_URI[sha256sum] = "57b7acf228d50d83cf327372b889e2a168a869275b26e17917ed0b4cf4d823a6"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb
new file mode 100644
index 0000000000..cdb89698be
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.5.1.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them."
+HOMEPAGE = "https://pypi.org/project/awesomeversion/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.md;md5=92622b5a8e216099be741d78328bae5d"
+
+SRC_URI[sha256sum] = "84bcd85ab1bb9a287cfd1b2e5145f888b6e02ef3e3a63a07453f10f2f6e50fe3"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.0.bb
index fbb89b8dd7..bb80c4a04f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/ilanschnell/bitarray"
LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
-SRC_URI[sha256sum] = "faeca03f979e992cc76f7406af7eb9795cb111b8d8969c891a032bd7497c87da"
+SRC_URI[sha256sum] = "5abed04adcd2031f6e714993d95223bf9ae85354c640c270b2ed6f46b83573ba"
inherit setuptools3 pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.1.bb
index f0aa321231..77ef98570f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstruct_8.14.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/eerimoq/bitstruct"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-SRC_URI[sha256sum] = "230c191c75f1526f6922cdb08eab6f52c055452e2239bf5638f02e9cfd382c91"
+SRC_URI[sha256sum] = "d38131bd447b6af5b8f464c4878797c87a5d9da1c95b9357e071c424fde5f055"
PYPI_PACKAGE = "bitstruct"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
index a1ce7eafc9..41fd3d960a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_3.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
@@ -2,10 +2,9 @@ SUMMARY = "Define boolean algebras, create and parse boolean expressions and cre
HOMEPAGE = "https://github.com/bastikr/boolean.py"
LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9b58494d4f385978ca5a7ef4f6abca53"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d118b5feceee598ebeca76e13395c2bd"
-SRC_URI[md5sum] = "83ccc145ba74a585637124c8bc648333"
-SRC_URI[sha256sum] = "cc24e20f985d60cd4a3a5a1c0956dd12611159d32a75081dabd0c9ab981acaa4"
+SRC_URI[sha256sum] = "17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"
PYPI_PACKAGE = "boolean.py"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.11.bb
index 58c157bb3e..fc2b0ae75b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.11.bb
@@ -1,13 +1,13 @@
SUMMARY = "httplib2 caching for requests"
HOMEPAGE = "https://pypi.org/project/CacheControl/"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=62d6ee40749ec0b76d8a1200a1562369"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=942a721dac34d073453642ffe5fcf546"
# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
# override PYPI_PACKAGE so fetch succeeds.
PYPI_PACKAGE = "CacheControl"
-SRC_URI[sha256sum] = "d8aca75b82eec92d84b5d6eb8c8f66ea16f09d2adb09dbca27fe2d5fc8d3732d"
+SRC_URI[sha256sum] = "a5b9fcc986b184db101aa280b42ecdcdfc524892596f606858e0b7a8b4d9e144"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
index a623fe104c..006742f153 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "http://click.pocoo.org/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
-SRC_URI[sha256sum] = "479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"
+SRC_URI[sha256sum] = "7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"
inherit pypi setuptools3 ptest
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb
new file mode 100644
index 0000000000..14f597c28f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.11.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Cython implementation of the toolz package, which provides high \
+performance utility functions for iterables, functions, and dictionaries."
+HOMEPAGE = "https://github.com/pytoolz/cytoolz"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=efbcddfa5610ca0c07ecfa274a82b373"
+
+SRC_URI[sha256sum] = "ea23663153806edddce7e4153d1d407d62357c05120a4e8485bddf1bd5ab22b4"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-toolz"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb
new file mode 100644
index 0000000000..772ee7faf9
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-decouple_3.6.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Strict separation of settings from code."
+HOMEPAGE = "https://github.com/henriquebastos/python-decouple/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a46375b26bb7d7603565d829a2a51782"
+
+SRC_URI[sha256sum] = "2838cdf77a5cf127d7e8b339ce14c25bceb3af3e674e039d4901ba16359968c7"
+
+PYPI_PACKAGE = "python-decouple"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-shell \
+ python3-stringold \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.2.bb
index 35e8d790ab..e9891bc272 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.3.2.bb
@@ -17,4 +17,4 @@ RDEPENDS:${PN} += " \
python3-asyncio \
"
-SRC_URI[sha256sum] = "6e1d26977ffefe3b7da1b5df7a8750aedc7686da8201cd90daf36693db122489"
+SRC_URI[sha256sum] = "e02f8d6686663408533726be2d4ceb403914fd17285d247791c6a91623777bdd"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb
new file mode 100644
index 0000000000..e1f220af98
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-abi_3.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python utilities for working with Ethereum ABI definitions, especially encoding and decoding."
+HOMEPAGE = "https://github.com/ethereum/eth-abi"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9691ead96f1163622689e47ce3f366"
+
+SRC_URI[sha256sum] = "31578b179cf9430c21ac32a4e5f401c14b6e2cc1fd64ca3587cd354068217804"
+
+PYPI_PACKAGE = "eth_abi"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-eth-typing \
+ python3-eth-utils \
+ python3-parsimonious \
+ python3-setuptools \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb
new file mode 100644
index 0000000000..9c87d3f5d1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-account_0.6.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Assign Ethereum transactions and messages with local private keys."
+HOMEPAGE = "https://github.com/ethereum/eth-account"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "54b0b7d661e73f4cd12d508c9baa5c9a6e8c194aa7bafc39277cd673683ae50e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-bitarray \
+ python3-cytoolz \
+ python3-eth-abi \
+ python3-eth-keyfile \
+ python3-eth-rlp \
+ python3-hexbytes \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb
new file mode 100644
index 0000000000..c9630b1721
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "The Ethereum hashing function, keccak256, sometimes (erroneously) called sha3."
+HOMEPAGE = "https://github.com/ethereum/eth-hash"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "3f40cecd5ead88184aa9550afc19d057f103728108c5102f592f8415949b5a76"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch
new file mode 100644
index 0000000000..7b81203807
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,36 @@
+From 4348c72877e049804c7cdb7eec7a6bcd7ac2ea1d Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Wed, 11 May 2022 13:21:30 +0200
+Subject: [PATCH] setup: don't use setuptools-markdown
+
+This project is deprecated and irrelevant for the functionality of
+eth-keyfile. We don't support it in meta-python so just drop it from
+the dependencies.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index cbb7f4c..7702aa4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -51,14 +51,12 @@ setup(
+ "A library for handling the encrypted keyfiles used to store ethereum "
+ "private keys."
+ ),
+- long_description_markdown_filename='README.md',
+ author='Piper Merriam',
+ author_email='pipermerriam@gmail.com',
+ url='https://github.com/ethereum/eth-keyfile',
+ include_package_data=True,
+ install_requires=install_requires,
+ extras_require=deps,
+- setup_requires=['setuptools-markdown'],
+ py_modules=['eth_keyfile'],
+ license="MIT",
+ zip_safe=False,
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb
new file mode 100644
index 0000000000..9477632e2f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A library for handling the encrypted keyfiles used to store ethereum private keys."
+HOMEPAGE = "https://github.com/ethereum/eth-keyfile"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2beaef1b1764f4d6b46084c885b4bcad"
+
+SRC_URI[sha256sum] = "d30597cdecb8ccd3b56bb275cd86fcdc7a279f86eafa92ddc49f66512f0bff67"
+SRC_URI += "file://0001-setup-don-t-use-setuptools-markdown.patch"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-eth-keys \
+ python3-pycryptodome \
+ python3-setuptools \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb
new file mode 100644
index 0000000000..b0b1aad76d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A common API for Ethereum key operations with pluggable backends."
+HOMEPAGE = "https://github.com/ethereum/eth-keys"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2beaef1b1764f4d6b46084c885b4bcad"
+
+SRC_URI[sha256sum] = "7d18887483bc9b8a3fdd8e32ddcb30044b9f08fcb24a380d93b6eee3a5bb3216"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
new file mode 100644
index 0000000000..d19a657557
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "RLP definitions for common Ethereum objects in Python"
+HOMEPAGE = "https://github.com/ethereum/eth-rlp"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "f3263b548df718855d9a8dbd754473f383c0efc82914b0b849572ce3e06e71a6"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+ python3-eth-utils \
+ python3-hexbytes \
+ python3-rlp \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb
new file mode 100644
index 0000000000..a500d5b520
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-typing_3.0.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Common type annotations for ethereum python packages."
+HOMEPAGE = "https://github.com/ethereum/eth-typing"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9691ead96f1163622689e47ce3f366"
+
+SRC_URI[sha256sum] = "079e4c41e98cf2635d3830a99f3cbd7b1d73d2368464d4493c002bece545184a"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
new file mode 100644
index 0000000000..3c3c5270a3
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,37 @@
+From bc86d603e632ce61de4ae7a5d4bcef080cbdb160 Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Wed, 11 May 2022 13:45:06 +0200
+Subject: [PATCH] setup: don't use setuptools-markdown
+
+This project is deprecated and irrelevant for the functionality of
+eth-utils. We don't support it in meta-python so just drop it from
+the dependencies.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 5717d5b..cb62132 100644
+--- a/setup.py
++++ b/setup.py
+@@ -37,7 +37,6 @@ setup(
+ # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
+ version='1.1.2',
+ description="""Common utility functions for ethereum codebases.""",
+- long_description_markdown_filename='README.md',
+ author='Piper Merriam',
+ author_email='pipermerriam@gmail.com',
+ url='https://github.com/ethereum/eth_utils',
+@@ -48,7 +47,6 @@ setup(
+ "toolz>0.8.2,<1;implementation_name=='pypy'",
+ "cytoolz>=0.8.2,<1.0.0;implementation_name=='cpython'",
+ ],
+- setup_requires=['setuptools-markdown'],
+ extras_require=extras_require,
+ py_modules=['eth_utils'],
+ license="MIT",
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb
new file mode 100644
index 0000000000..ff7caf5bf2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Common utility functions for codebases which interact with ethereum."
+HOMEPAGE = "https://github.com/ethereum/eth-utils"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "32f50edb14c5be0c4f0e8c2e6117286ccc5dfda21d170f358add554a048398e3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-eth-hash \
+ python3-eth-typing \
+ python3-setuptools \
+ python3-toolz \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.1.bb
index dd295cf2dd..d19acd9b64 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-login_0.6.1.bb
@@ -6,7 +6,7 @@ HOMEPAGE = " https://github.com/maxcountryman/flask-login"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8aa87a1cd9fa41d969ad32cfdac2c596"
-SRC_URI[sha256sum] = "aa84fcfb4c3cf09ca58c08e816b7bce73f1349ba1cf13d00d8dffc5872d5fcf6"
+SRC_URI[sha256sum] = "1306d474a270a036d6fd14f45640c4d77355e4f1c67ca4331b372d3448997b8c"
PYPI_PACKAGE = "Flask-Login"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.2.bb
index 00e958022a..1e5d775b60 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.1.2.bb
@@ -9,7 +9,7 @@ inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "Flask-SocketIO"
-SRC_URI[sha256sum] = "1efdaacc7a26e94f2b197a80079b1058f6aa644a6094c0a322349e2b9c41f6b1"
+SRC_URI[sha256sum] = "933bcc887ef463a9b78d76f8f86174f63a32d12a5406b99f452cdf3b129ebba3"
RDEPENDS:${PN} += "\
${PYTHON_PN}-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
index 24a7047703..7d290a4fe3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/mitsuhiko/flask/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
-SRC_URI[sha256sum] = "a8c9bd3e558ec99646d177a9739c41df1ded0629480b4c8d2975412f3c9519c8"
+SRC_URI[sha256sum] = "315ded2ddf8a6281567edb27393010fe3406188bafbfe65a3339d5787d89e477"
PYPI_PACKAGE = "Flask"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.3.bb
index 55884e99c2..3422dd711c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.7.3.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "b0fa577e512f0c8e063386b974718b8614586a798c5894ed34bedf256d9dae24"
+SRC_URI[sha256sum] = "17957f0704cbe95bd2ce25019efd2046423978594d181d4263e5dcffd2dbbc79"
RDEPENDS:${PN} += "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.43.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.45.0.bb
index b6456869f2..070a5b5308 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.43.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.45.0.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[sha256sum] = "ccd16b3aa92070d3777c4b188669820aacdd70695a87cfc8dbb330f6be9578f7"
+SRC_URI[sha256sum] = "375ce07994fdc187b25cc86788048ad30f8d55ff077d5e34cfcd6cbbea697128"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.6.bb
index ee5311f4fb..d51790f36c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.6.6.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "d65bb0e3701eaaa64fd2aa85e1325580524b0bddc6dc5db3ab89c481b6a20141"
+SRC_URI[sha256sum] = "1ba4938e032b73deb51e59c4656a00e0939cf0b1112575099f136babb4563312"
RDEPENDS:${PN} += "\
${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
index 3cae19673f..81b591247f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.19.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=951dd0868a9606c867ffda0ea3ea6da2"
-SRC_URI[sha256sum] = "7c90cebc147c18bcdffcd3c76db58cbface5d45fe0247a2f3bfb144d32a8c77c"
+SRC_URI[sha256sum] = "76bdfb73f42e72564ffe9c7299482f9d72f8e6cb8d54bce7b48ab323755e9ba5"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.46.0.bb
index 1e919dd3af..9569e8ec9a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.45.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.46.0.bb
@@ -10,7 +10,7 @@ inherit pypi setuptools3
DEPENDS += "${PYTHON_PN}-grpcio"
SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
-SRC_URI[sha256sum] = "a016cfc21e0d91b3b036d3d4f968d1fdea865dfa03524cb1fbeca84719fd45a2"
+SRC_URI[sha256sum] = "9295bf9b1e6dd5bcb260d594745fa3d6a089daade28f3a80cb2bc976b5359b7d"
RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb
new file mode 100644
index 0000000000..89792d9806
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-hexbytes_0.2.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python bytes subclass that decodes hex, with a readable console output."
+HOMEPAGE = "https://github.com/ethereum/hexbytes"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "a5881304d186e87578fb263a85317c808cf130e1d4b3d37d30142ab0f7898d03"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.17.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.18.0.bb
index 53f61e8827..2aa6b096bd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.17.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.18.0.bb
@@ -5,7 +5,7 @@ SECTION = "devel/python"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=24cb9a367a9e641b459a01c4d15256ba"
-SRC_URI[sha256sum] = "b21f009e52eb22b02b839f3bf2ae5374aaf0886317313c1358c6014e5383b539"
+SRC_URI[sha256sum] = "090898c48532631ab11c74ae743e64c24dabda45c16db46f7e3bec9e2d8f422f"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb
new file mode 100644
index 0000000000..524c3a0d29
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb
@@ -0,0 +1,14 @@
+SUMMARY = "An adapter to Linux kernel support for inotify directory-watching."
+AUTHOR = "Dustin Oprea"
+HOMEPAGE = "https://pypi.org/project/inotify/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://setup.py;md5=79b7ec72aa0d446a552d3cceb5799e41;beginline=28;endline=28"
+
+SRC_URI[sha256sum] = "974a623a338482b62e16d4eb705fb863ed33ec178680fc3e96ccdf0df6c02a07"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.58.bb
index 948f7651a0..025ceb6811 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.57.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-langtable_0.0.58.bb
@@ -6,7 +6,7 @@ SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SRC_URI[sha256sum] = "6c3c0a6577652c81871cbaf139046e1c88ead8439c585bd83976b3092f57e9d7"
+SRC_URI[sha256sum] = "47128c06008acedee1745f2d56151461d94526b2be95a4124692013af35496b6"
inherit pypi setuptools3 python3native
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb
new file mode 100644
index 0000000000..0a0682e0c2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A fixed size dict like container which evicts Least Recently Used (LRU) items once size limit is exceeded."
+HOMEPAGE = "https://github.com/amitdev/lru-dict"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9d10a486ee04034fdef5162fd791f153"
+
+SRC_URI[sha256sum] = "45b81f67d75341d4433abade799a47e9c42a9e22a118531dcb5e549864032d7c"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.942.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.950.bb
index 5b4b6d5ba3..c268adebed 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.942.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.950.bb
@@ -7,7 +7,7 @@ PYPI_PACKAGE = "mypy"
inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "17e44649fec92e9f82102b48a3bf7b4a5510ad0cd22fa21a104826b5db4903e2"
+SRC_URI[sha256sum] = "1b333cfbca1762ff15808a0ef4f71b5d3eed8528b23ea1c3fb50543c867d68de"
BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.4.bb
index 9f7f458723..3173687725 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-paramiko_2.10.4.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/paramiko/paramiko/"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
-SRC_URI[sha256sum] = "ddb1977853aef82804b35d72a0e597b244fa326c404c350bd00c5b01dbfee71a"
+SRC_URI[sha256sum] = "3d2e650b6812ce6d160abff701d6ef4434ec97934b13e95cf1ad3da70ffb5c58"
PYPI_PACKAGE = "paramiko"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb
new file mode 100644
index 0000000000..5a604fa41c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parsimonious_0.9.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Parsimonious aims to be the fastest arbitrary-lookahead parser written in pure Python."
+HOMEPAGE = "https://github.com/erikrose/parsimonious"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
+
+SRC_URI[sha256sum] = "b2ad1ae63a2f65bd78f5e0a8ac510a98f3607a43f1db2a8d46636a5d9e4a30c1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-regex"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.1.bb
index aa3179f2a6..38f84cf1ba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pika_1.2.1.bb
@@ -6,9 +6,9 @@ including RabbitMQ’s extensions. \
SECTION = "devel/python"
HOMEPAGE = "https://pika.readthedocs.io"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=278bdfee5b51616941c1f6b2f1cfcb99"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=678ec81495ba50edf81e84e4f1aa69f3"
-SRC_URI[sha256sum] = "f023d6ac581086b124190cb3dc81dd581a149d216fa4540ac34f9be1e3970b89"
+SRC_URI[sha256sum] = "e5fbf3a0a3599f4e114f6e4a7af096f9413a8f24f975c2657ba2fac3c931434f"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.1.bb
index 5c4de4ac2b..976d2aa9b4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_3.20.1.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a
inherit pypi setuptools3
-SRC_URI[sha256sum] = "71b2c3d1cd26ed1ec7c8196834143258b2ad7f444efff26fdc366c6f5e752702"
+SRC_URI[sha256sum] = "adc31566d027f45efe3f44eeb5b1f329da43891634d61c75a5944e9be6dd42c9"
# http://errors.yoctoproject.org/Errors/Details/184715/
# Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
index 862c3d594e..e7e706c6cf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
@@ -5,8 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d"
inherit pypi setuptools3
-SRC_URI[md5sum] = "48c40424a79c2568676a41643d93f1f7"
-SRC_URI[sha256sum] = "3ca069c736c8ad2a3047b5033468d983a2480f94fad4feb0169c056060e01e69"
+SRC_URI[sha256sum] = "e74a66d6c7a6bcceb990df66d3ebc0fe382fc9d765f35f050f9d98c695304b36"
DEPENDS += "alsa-lib"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_11.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_12.1.1.bb
index f556963731..b34c78eb84 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_11.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_12.1.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/balloob/pychromecast"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
-SRC_URI[sha256sum] = "151723b178110052b673b8765a120c85d16eae8c22d75575dceebe2be1eb1ef6"
+SRC_URI[sha256sum] = "9545a22acdadc96603f76d7878c6ea17baf1328260cf560c887c8c12aad4c82c"
PYPI_PACKAGE = "PyChromecast"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
new file mode 100644
index 0000000000..933e086265
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
@@ -0,0 +1,31 @@
+From 9e7894b97ae7afe43a9901b774de5aef401549ac Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Thu, 28 Apr 2022 16:32:06 +0200
+Subject: [PATCH] ext: define FNM_EXTMATCH if not already defined
+
+On musl this constant is not defined. Define it locally if not present.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+Upstream-Status: Inappropriate
+
+ src/ext.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/ext.c b/src/ext.c
+index 2ba9a14..98ffc20 100644
+--- a/src/ext.c
++++ b/src/ext.c
+@@ -18,6 +18,9 @@
+ #include <sys/un.h>
+ #include <unistd.h>
+
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
+
+ PyDoc_STRVAR(ext__doc__,
+ "Wrapper for fanotify.\n"
+--
+2.32.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb
new file mode 100644
index 0000000000..a7c8f958ec
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python wrapper for Linux fanotify."
+HOMEPAGE = "https://github.com/baskiton/pyfanotify"
+AUTHOR = "Alexander Baskikh"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
+
+SRC_URI += "file://0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch"
+SRC_URI[sha256sum] = "0efa73922fd705b4e8f8f0b51cb88198ceef66cc309e1de21674ef44c879029d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-datetime \
+ python3-logging \
+ python3-multiprocessing \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.7.bb
index f64d976b46..0aa645c82a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.13.7.bb
@@ -3,7 +3,7 @@ HOMEPAGE= "http://www.pylint.org/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
-SRC_URI[sha256sum] = "dab221658368c7a05242e673c275c488670144123f4bd262b2777249c1c0de9b"
+SRC_URI[sha256sum] = "911d3a97c808f7554643bcc5416028cfdc42eae34ed129b150741888c688d5d5"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
index d47dfec50f..7bde4ff681 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
@@ -8,7 +8,7 @@ HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SRC_URI[sha256sum] = "dbba77bc0b706c7ee496fc75a6c6ed406d85f6091d5fec488a8944c3828e6462"
+SRC_URI[sha256sum] = "d7b8f25c9b0043cbaf77b8b895814e33e7a3c807a097377c07e1bd49946030d5"
inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
index c42b91fcd4..47a34d44b3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
@@ -2,7 +2,7 @@ SUMMARY = "A generator framework based on a common modern IDL"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=eee61e10a40b0e3045ee5965bcd9a8b5"
-SRC_URI[sha256sum] = "fae48ba129c55da8445580eb711905c03911c4250761c0cd53c67e33495b0cee"
+SRC_URI[sha256sum] = "eccee7dbc4290c5a4e394df8d527f39148e0de0ff22c6b260f48c48f12b3beb4"
inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.4.24.bb
index 9633385f60..28e16001a1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.3.15.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.4.24.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7b5751ddd6b643203c31ff873051d069"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "0a7b75cc7bb4cc0334380053e4671c560e31272c9d2d5a6c4b8e9ae2c9bd0f82"
+SRC_URI[sha256sum] = "92183e9180c392371079262879c6532ccf55f808e6900df5d9f03c9ca8807255"
RDEPENDS:${PN} += " \
python3-stringold \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
new file mode 100644
index 0000000000..643d296394
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,35 @@
+From 5a2db801c6520be296cee9cba0e0e4ffac68430c Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Wed, 11 May 2022 15:11:19 +0200
+Subject: [PATCH] setup: don't use setuptools-markdown
+
+This project is deprecated and irrelevant for the functionality of
+pyrlp. We don't support it in meta-python so just drop it from the
+dependencies.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 1055fb1..55fca24 100755
+--- a/setup.py
++++ b/setup.py
+@@ -46,13 +46,11 @@ setup(
+ # *IMPORTANT*: Don't manually change the version here. See README for more.
+ version='3.0.0',
+ description="A package for Recursive Length Prefix encoding and decoding",
+- long_description_markdown_filename='README.md',
+ author="jnnk",
+ author_email='jnnknnj@gmail.com',
+ url='https://github.com/ethereum/pyrlp',
+ packages=find_packages(exclude=["tests", "tests.*"]),
+ include_package_data=True,
+- setup_requires=['setuptools-markdown'],
+ install_requires=[
+ "eth-utils>=2.0.0,<3",
+ ],
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
new file mode 100644
index 0000000000..e747ae33ba
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A Python implementation of Recursive Length Prefix encoding (RLP)."
+HOMEPAGE = "https://github.com/ethereum/pyrlp"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=00854fa80a84236706b11f47f23e61e7"
+
+SRC_URI[sha256sum] = "63b0465d2948cd9f01de449d7adfb92d207c1aef3982f20310f8009be4a507e8"
+SRC_URI += "file://0001-setup-don-t-use-setuptools-markdown.patch"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-pip-native"
+
+RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.10.bb
index cf1337e2b1..7076e19039 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.10.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341"
RDEPENDS:${PN} += "python3-urllib3"
-SRC_URI[sha256sum] = "38fd16a92b5ef94203db3ece10e03bdaa291481dd7e00e77a148aa0302267d47"
+SRC_URI[sha256sum] = "0a9eb20a84f4c17c08c57488d59fdad18669db71ebecb28fb0721423a33535f9"
PYPI_PACKAGE = "sentry-sdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
index 6611743bf8..d762611487 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
@@ -9,7 +9,7 @@ inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "python-socketio"
-SRC_URI[sha256sum] = "6213f7dfbb87e554472d11151f96bae9059854aa88e4a1e0fa6e97cca1c3fcf4"
+SRC_URI[sha256sum] = "f1f2eabdea500dbcb384902418cacedd98b7fe4d0fed818415ddf8af10e428fa"
PACKAGECONFIG ?= "asyncio_client client"
PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.23.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
index 0c626e7aa2..8db949d0dc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.23.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
@@ -3,8 +3,7 @@ HOMEPAGE = "https://github.com/eerimoq/textparser"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fe9942a8bba5458a9dbd11277bc347ad"
-SRC_URI[md5sum] = "d5378eac93406156e9029114aaa1b515"
-SRC_URI[sha256sum] = "f009d0f6f78aa7c1e648dca4e3961f6d67495f7f520f1a705245ffad33f4b470"
+SRC_URI[sha256sum] = "56f708e75aa9d002adb76d823ba6ef166d7ecec1e3e4ca4c1ca103f817568335"
PYPI_PACKAGE = "textparser"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb
new file mode 100644
index 0000000000..a597641e50
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-toolz_0.11.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A set of utility functions for iterators, functions, and dictionaries."
+HOMEPAGE = "https://github.com/pytoolz/toolz"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca09cab178326d18433aae982d1edf5d"
+
+SRC_URI[sha256sum] = "6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-math \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.2.0.bb
index 8f80426e6c..56ebaac675 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.2.0.bb
@@ -2,11 +2,11 @@ SUMMARY = "Traitlets Python config system"
HOMEPAGE = "http://ipython.org"
AUTHOR = "IPython Development Team <ipython-dev@scipy.org>"
LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.md;md5=eec4de4d599518742e54e75954e33b46"
+LIC_FILES_CHKSUM = "file://COPYING.md;md5=9c125dfc5ff5364d40b5f56f02cd9de3"
PYPI_PACKAGE = "traitlets"
-SRC_URI[sha256sum] = "059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"
+SRC_URI[sha256sum] = "60474f39bf1d39a11e0233090b99af3acee93bbc2281777e61dd8c87da8a0014"
RDEPENDS:${PN} = "\
${PYTHON_PN}-ipython-genutils \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.4.0.bb
index f4575c9c2e..9429f8faab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-twisted_22.4.0.bb
@@ -7,7 +7,7 @@ HOMEPAGE = "http://www.twistedmatrix.com"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0f8d67f84b6e178c92d471011b2245fc"
-SRC_URI[sha256sum] = "57f32b1f6838facb8c004c89467840367ad38e9e535f8252091345dba500b4f2"
+SRC_URI[sha256sum] = "a047990f57dfae1e0bd2b7df2526d4f16dcdc843774dc108b78c52f2a5f13680"
PYPI_PACKAGE = "Twisted"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb
new file mode 100644
index 0000000000..660d4f6f0f
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A Python library for interacting with Ethereum."
+HOMEPAGE = "https://github.com/ethereum/web3.py"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1dc2732bdc5e50382737979791cbb3b7"
+
+SRC_URI[sha256sum] = "a78acc0f0150013755398ae185c8c7063d9db0777aa09733de22242a746bd30c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-aiohttp \
+ python3-distutils \
+ python3-eth-account \
+ python3-idna \
+ python3-lru-dict \
+ python3-requests \
+ python3-setuptools \
+ python3-websockets \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
index c8179df5b1..64b96d3ed7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=78c2cc91e172ca96d6f8e4a76c739ec6"
inherit pypi setuptools3
-SRC_URI[sha256sum] = "8351c3c86b08156337b0e4ece0e3c5ec3e01fcd14e8950996832a23c99416098"
+SRC_URI[sha256sum] = "fc06cc8073c8e87072138ba1e431300e2d408f054b27047d047b549455066ff4"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch
new file mode 100644
index 0000000000..6be56cb908
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch
@@ -0,0 +1,861 @@
+Upstream-Status: Backport [https://github.com/wxWidgets/Phoenix/commit/b40ab0f8]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From b40ab0f806bdf7aa0c0a51a8c4876ac47754515d Mon Sep 17 00:00:00 2001
+From: Scott Talbert <swt@techie.net>
+Date: Thu, 7 Oct 2021 17:53:05 -0400
+Subject: [PATCH] Update Cython version to fix NanoSVG issues with Python 3.10
+
+---
+ requirements/devel.txt | 2 +-
+ wx/svg/_nanosvg.c | 554 ++++++++++++++++++++++++++---------------
+ 2 files changed, 359 insertions(+), 197 deletions(-)
+
+diff --git a/requirements/devel.txt b/requirements/devel.txt
+index 1d427be0..18164bdc 100644
+--- a/requirements/devel.txt
++++ b/requirements/devel.txt
+@@ -9,7 +9,7 @@ wheel
+ twine
+ requests
+ requests[security]
+-cython==0.29.21
++cython==0.29.24
+ pytest
+ pytest-xdist
+ pytest-forked
+diff --git a/wx/svg/_nanosvg.c b/wx/svg/_nanosvg.c
+index d8f1e158..fd4a5a67 100644
+--- a/wx/svg/_nanosvg.c
++++ b/wx/svg/_nanosvg.c
+@@ -1,4 +1,4 @@
+-/* Generated by Cython 0.29.21 */
++/* Generated by Cython 0.29.24 */
+
+ /* BEGIN: Cython Metadata
+ {
+@@ -33,15 +33,17 @@
+ }
+ END: Cython Metadata */
+
++#ifndef PY_SSIZE_T_CLEAN
+ #define PY_SSIZE_T_CLEAN
++#endif /* PY_SSIZE_T_CLEAN */
+ #include "Python.h"
+ #ifndef Py_PYTHON_H
+ #error Python headers needed to compile C extensions, please install development version of Python.
+ #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
+ #error Cython requires Python 2.6+ or Python 3.3+.
+ #else
+-#define CYTHON_ABI "0_29_21"
+-#define CYTHON_HEX_VERSION 0x001D15F0
++#define CYTHON_ABI "0_29_24"
++#define CYTHON_HEX_VERSION 0x001D18F0
+ #define CYTHON_FUTURE_DIVISION 0
+ #include <stddef.h>
+ #ifndef offsetof
+@@ -459,8 +461,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
+ #endif
+ #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
+ #define CYTHON_PEP393_ENABLED 1
++ #if defined(PyUnicode_IS_READY)
+ #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
+ 0 : _PyUnicode_Ready((PyObject *)(op)))
++ #else
++ #define __Pyx_PyUnicode_READY(op) (0)
++ #endif
+ #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
+ #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
+ #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
+@@ -469,7 +475,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
+ #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
+ #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch)
+ #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
++ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
++ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
++ #else
+ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
++ #endif
+ #else
+ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
+ #endif
+@@ -1736,33 +1746,38 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
+ static void __Pyx_AddTraceback(const char *funcname, int c_line,
+ int py_line, const char *filename);
+
++/* GCCDiagnostics.proto */
++#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
++#define __Pyx_HAS_GCC_DIAGNOSTIC
++#endif
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
+
++/* CIntFromPy.proto */
++static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
+
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value);
+
++/* CIntFromPy.proto */
++static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value);
+
++/* CIntFromPy.proto */
++static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
++
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value);
+
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);
+
+-/* CIntFromPy.proto */
+-static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
+-
+-/* CIntFromPy.proto */
+-static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
+-
+-/* CIntFromPy.proto */
+-static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
+-
+ /* CIntToPy.proto */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGfillRule(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule value);
+
+@@ -1844,6 +1859,7 @@ typedef struct {
+ PyObject *gi_qualname;
+ PyObject *gi_modulename;
+ PyObject *gi_code;
++ PyObject *gi_frame;
+ int resume_label;
+ char is_running;
+ } __pyx_CoroutineObject;
+@@ -14641,11 +14657,9 @@ if (!__Pyx_RefNanny) {
+ #endif
+ /*--- Library function declarations ---*/
+ /*--- Threads initialization code ---*/
+- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
+- #ifdef WITH_THREAD /* Python build with threading support? */
++ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
+ PyEval_InitThreads();
+ #endif
+- #endif
+ /*--- Module creation code ---*/
+ #if CYTHON_PEP489_MULTI_PHASE_INIT
+ __pyx_m = __pyx_pyinit_module;
+@@ -16766,7 +16780,7 @@ invalid_keyword:
+ #if CYTHON_COMPILING_IN_CPYTHON
+ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
+ PyObject *result;
+- ternaryfunc call = func->ob_type->tp_call;
++ ternaryfunc call = Py_TYPE(func)->tp_call;
+ if (unlikely(!call))
+ return PyObject_Call(func, arg, kw);
+ if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
+@@ -17149,7 +17163,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec
+ if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
+ return __Pyx_PyObject_CallMethO(func, arg);
+ #if CYTHON_FAST_PYCCALL
+- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
++ } else if (__Pyx_PyFastCFunction_Check(func)) {
+ return __Pyx_PyCFunction_FastCall(func, &arg, 1);
+ #endif
+ }
+@@ -18800,7 +18814,8 @@ static PyObject *
+ __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
+ {
+ #if PY_MAJOR_VERSION >= 3
+- return PyUnicode_FromString(m->func.m_ml->ml_name);
++ Py_INCREF(m->func_qualname);
++ return m->func_qualname;
+ #else
+ return PyString_FromString(m->func.m_ml->ml_name);
+ #endif
+@@ -19443,37 +19458,6 @@ bad:
+ Py_XDECREF(py_frame);
+ }
+
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
+- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
+- const int is_unsigned = neg_one > const_zero;
+- if (is_unsigned) {
+- if (sizeof(long) < sizeof(long)) {
+- return PyInt_FromLong((long) value);
+- } else if (sizeof(long) <= sizeof(unsigned long)) {
+- return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
+- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+- }
+- } else {
+- if (sizeof(long) <= sizeof(long)) {
+- return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
+- return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+- }
+- }
+- {
+- int one = 1; int little = (int)*(unsigned char *)&one;
+- unsigned char *bytes = (unsigned char *)&value;
+- return _PyLong_FromByteArray(bytes, sizeof(long),
+- little, !is_unsigned);
+- }
+-}
+-
+ /* CIntFromPyVerify */
+ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
+@@ -19497,148 +19481,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
+ }
+
+ /* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
+- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
+- const int is_unsigned = neg_one > const_zero;
+- if (is_unsigned) {
+- if (sizeof(int) < sizeof(long)) {
+- return PyInt_FromLong((long) value);
+- } else if (sizeof(int) <= sizeof(unsigned long)) {
+- return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
+- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+- }
+- } else {
+- if (sizeof(int) <= sizeof(long)) {
+- return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
+- return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+- }
+- }
+- {
+- int one = 1; int little = (int)*(unsigned char *)&one;
+- unsigned char *bytes = (unsigned char *)&value;
+- return _PyLong_FromByteArray(bytes, sizeof(int),
+- little, !is_unsigned);
+- }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
+- const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0;
+- const int is_unsigned = neg_one > const_zero;
+- if (is_unsigned) {
+- if (sizeof(char) < sizeof(long)) {
+- return PyInt_FromLong((long) value);
+- } else if (sizeof(char) <= sizeof(unsigned long)) {
+- return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
+- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+- }
+- } else {
+- if (sizeof(char) <= sizeof(long)) {
+- return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
+- return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+- }
+- }
+- {
+- int one = 1; int little = (int)*(unsigned char *)&one;
+- unsigned char *bytes = (unsigned char *)&value;
+- return _PyLong_FromByteArray(bytes, sizeof(char),
+- little, !is_unsigned);
+- }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
+- const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0;
+- const int is_unsigned = neg_one > const_zero;
+- if (is_unsigned) {
+- if (sizeof(unsigned char) < sizeof(long)) {
+- return PyInt_FromLong((long) value);
+- } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
+- return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
+- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+-#endif
+- }
+- } else {
+- if (sizeof(unsigned char) <= sizeof(long)) {
+- return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
+- return PyLong_FromLongLong((PY_LONG_LONG) value);
+-#endif
+- }
+- }
+- {
+- int one = 1; int little = (int)*(unsigned char *)&one;
+- unsigned char *bytes = (unsigned char *)&value;
+- return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
+- little, !is_unsigned);
+- }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value) {
+- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0;
+- const int is_unsigned = neg_one > const_zero;
+- if (is_unsigned) {
+- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) < sizeof(long)) {
+- return PyInt_FromLong((long) value);
+- } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned long)) {
+- return PyLong_FromUnsignedLong((unsigned long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned PY_LONG_LONG)) {
+- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
+ #endif
+- }
+- } else {
+- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(long)) {
+- return PyInt_FromLong((long) value);
+-#ifdef HAVE_LONG_LONG
+- } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(PY_LONG_LONG)) {
+- return PyLong_FromLongLong((PY_LONG_LONG) value);
++ const long neg_one = (long) -1, const_zero = (long) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
+ #endif
+- }
+- }
+- {
+- int one = 1; int little = (int)*(unsigned char *)&one;
+- unsigned char *bytes = (unsigned char *)&value;
+- return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType),
+- little, !is_unsigned);
+- }
+-}
+-
+-/* CIntToPy */
+-static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
+- const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0;
+ const int is_unsigned = neg_one > const_zero;
+ if (is_unsigned) {
+- if (sizeof(unsigned int) < sizeof(long)) {
++ if (sizeof(long) < sizeof(long)) {
+ return PyInt_FromLong((long) value);
+- } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
++ } else if (sizeof(long) <= sizeof(unsigned long)) {
+ return PyLong_FromUnsignedLong((unsigned long) value);
+ #ifdef HAVE_LONG_LONG
+- } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
++ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
+ #endif
+ }
+ } else {
+- if (sizeof(unsigned int) <= sizeof(long)) {
++ if (sizeof(long) <= sizeof(long)) {
+ return PyInt_FromLong((long) value);
+ #ifdef HAVE_LONG_LONG
+- } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
++ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
+ return PyLong_FromLongLong((PY_LONG_LONG) value);
+ #endif
+ }
+@@ -19646,14 +19513,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value)
+ {
+ int one = 1; int little = (int)*(unsigned char *)&one;
+ unsigned char *bytes = (unsigned char *)&value;
+- return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
++ return _PyLong_FromByteArray(bytes, sizeof(long),
+ little, !is_unsigned);
+ }
+ }
+
+ /* CIntFromPy */
+ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
+- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const int neg_one = (int) -1, const_zero = (int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ #if PY_MAJOR_VERSION < 3
+ if (likely(PyInt_Check(x))) {
+@@ -19840,9 +19714,92 @@ raise_neg_overflow:
+ return (int) -1;
+ }
+
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const int neg_one = (int) -1, const_zero = (int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++ const int is_unsigned = neg_one > const_zero;
++ if (is_unsigned) {
++ if (sizeof(int) < sizeof(long)) {
++ return PyInt_FromLong((long) value);
++ } else if (sizeof(int) <= sizeof(unsigned long)) {
++ return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
++ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++ }
++ } else {
++ if (sizeof(int) <= sizeof(long)) {
++ return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
++ return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++ }
++ }
++ {
++ int one = 1; int little = (int)*(unsigned char *)&one;
++ unsigned char *bytes = (unsigned char *)&value;
++ return _PyLong_FromByteArray(bytes, sizeof(int),
++ little, !is_unsigned);
++ }
++}
++
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const char neg_one = (char) -1, const_zero = (char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++ const int is_unsigned = neg_one > const_zero;
++ if (is_unsigned) {
++ if (sizeof(char) < sizeof(long)) {
++ return PyInt_FromLong((long) value);
++ } else if (sizeof(char) <= sizeof(unsigned long)) {
++ return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
++ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++ }
++ } else {
++ if (sizeof(char) <= sizeof(long)) {
++ return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
++ return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++ }
++ }
++ {
++ int one = 1; int little = (int)*(unsigned char *)&one;
++ unsigned char *bytes = (unsigned char *)&value;
++ return _PyLong_FromByteArray(bytes, sizeof(char),
++ little, !is_unsigned);
++ }
++}
++
+ /* CIntFromPy */
+ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
+- const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const char neg_one = (char) -1, const_zero = (char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ #if PY_MAJOR_VERSION < 3
+ if (likely(PyInt_Check(x))) {
+@@ -20029,9 +19986,54 @@ raise_neg_overflow:
+ return (char) -1;
+ }
+
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++ const int is_unsigned = neg_one > const_zero;
++ if (is_unsigned) {
++ if (sizeof(unsigned char) < sizeof(long)) {
++ return PyInt_FromLong((long) value);
++ } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
++ return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
++ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++ }
++ } else {
++ if (sizeof(unsigned char) <= sizeof(long)) {
++ return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
++ return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++ }
++ }
++ {
++ int one = 1; int little = (int)*(unsigned char *)&one;
++ unsigned char *bytes = (unsigned char *)&value;
++ return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
++ little, !is_unsigned);
++ }
++}
++
+ /* CIntFromPy */
+ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
+- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const long neg_one = (long) -1, const_zero = (long) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ #if PY_MAJOR_VERSION < 3
+ if (likely(PyInt_Check(x))) {
+@@ -20218,9 +20220,92 @@ raise_neg_overflow:
+ return (long) -1;
+ }
+
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++ const int is_unsigned = neg_one > const_zero;
++ if (is_unsigned) {
++ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) < sizeof(long)) {
++ return PyInt_FromLong((long) value);
++ } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned long)) {
++ return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned PY_LONG_LONG)) {
++ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++ }
++ } else {
++ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(long)) {
++ return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(PY_LONG_LONG)) {
++ return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++ }
++ }
++ {
++ int one = 1; int little = (int)*(unsigned char *)&one;
++ unsigned char *bytes = (unsigned char *)&value;
++ return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType),
++ little, !is_unsigned);
++ }
++}
++
++/* CIntToPy */
++static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
++ const int is_unsigned = neg_one > const_zero;
++ if (is_unsigned) {
++ if (sizeof(unsigned int) < sizeof(long)) {
++ return PyInt_FromLong((long) value);
++ } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
++ return PyLong_FromUnsignedLong((unsigned long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
++ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
++#endif
++ }
++ } else {
++ if (sizeof(unsigned int) <= sizeof(long)) {
++ return PyInt_FromLong((long) value);
++#ifdef HAVE_LONG_LONG
++ } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
++ return PyLong_FromLongLong((PY_LONG_LONG) value);
++#endif
++ }
++ }
++ {
++ int one = 1; int little = (int)*(unsigned char *)&one;
++ unsigned char *bytes = (unsigned char *)&value;
++ return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
++ little, !is_unsigned);
++ }
++}
++
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGfillRule(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule value) {
+- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ if (is_unsigned) {
+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) < sizeof(long)) {
+@@ -20251,7 +20336,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGflags(enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags value) {
+- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ if (is_unsigned) {
+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) < sizeof(long)) {
+@@ -20282,7 +20374,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGlineCap(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap value) {
+- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ if (is_unsigned) {
+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) < sizeof(long)) {
+@@ -20313,7 +20412,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin value) {
+- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ if (is_unsigned) {
+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) < sizeof(long)) {
+@@ -20344,7 +20450,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
+
+ /* CIntToPy */
+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGspreadType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType value) {
+- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wconversion"
++#endif
++ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0;
++#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
++#pragma GCC diagnostic pop
++#endif
+ const int is_unsigned = neg_one > const_zero;
+ if (is_unsigned) {
+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) < sizeof(long)) {
+@@ -20907,6 +21020,30 @@ PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *re
+ }
+ return retval;
+ }
++#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
++static CYTHON_INLINE
++PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
++#if PY_VERSION_HEX <= 0x030A00A1
++ return _PyGen_Send(gen, arg);
++#else
++ PyObject *result;
++ if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
++ if (PyAsyncGen_CheckExact(gen)) {
++ assert(result == Py_None);
++ PyErr_SetNone(PyExc_StopAsyncIteration);
++ }
++ else if (result == Py_None) {
++ PyErr_SetNone(PyExc_StopIteration);
++ }
++ else {
++ _PyGen_SetStopIterationValue(result);
++ }
++ Py_CLEAR(result);
++ }
++ return result;
++#endif
++}
++#endif
+ static CYTHON_INLINE
+ PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
+ PyObject *ret;
+@@ -20943,12 +21080,12 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
+ #endif
+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+ if (PyGen_CheckExact(yf)) {
+- ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
++ ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
+ } else
+ #endif
+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+ if (PyCoro_CheckExact(yf)) {
+- ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
++ ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
+ } else
+ #endif
+ {
+@@ -21032,7 +21169,7 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) {
+ #endif
+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
+ if (PyGen_CheckExact(yf)) {
+- ret = _PyGen_Send((PyGenObject*)yf, NULL);
++ ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
+ } else
+ #endif
+ #ifdef __Pyx_Coroutine_USED
+@@ -21192,6 +21329,7 @@ static int __Pyx_Coroutine_clear(PyObject *self) {
+ }
+ #endif
+ Py_CLEAR(gen->gi_code);
++ Py_CLEAR(gen->gi_frame);
+ Py_CLEAR(gen->gi_name);
+ Py_CLEAR(gen->gi_qualname);
+ Py_CLEAR(gen->gi_modulename);
+@@ -21208,7 +21346,7 @@ static void __Pyx_Coroutine_dealloc(PyObject *self) {
+ if (PyObject_CallFinalizerFromDealloc(self))
+ #else
+ Py_TYPE(gen)->tp_del(self);
+- if (self->ob_refcnt > 0)
++ if (Py_REFCNT(self) > 0)
+ #endif
+ {
+ return;
+@@ -21235,7 +21373,7 @@ static void __Pyx_Coroutine_del(PyObject *self) {
+ }
+ #if !CYTHON_USE_TP_FINALIZE
+ assert(self->ob_refcnt == 0);
+- self->ob_refcnt = 1;
++ __Pyx_SET_REFCNT(self, 1);
+ #endif
+ __Pyx_PyThreadState_assign
+ __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
+@@ -21302,17 +21440,17 @@ static void __Pyx_Coroutine_del(PyObject *self) {
+ }
+ __Pyx_ErrRestore(error_type, error_value, error_traceback);
+ #if !CYTHON_USE_TP_FINALIZE
+- assert(self->ob_refcnt > 0);
++ assert(Py_REFCNT(self) > 0);
+ if (--self->ob_refcnt == 0) {
+ return;
+ }
+ {
+- Py_ssize_t refcnt = self->ob_refcnt;
++ Py_ssize_t refcnt = Py_REFCNT(self);
+ _Py_NewReference(self);
+- self->ob_refcnt = refcnt;
++ __Pyx_SET_REFCNT(self, refcnt);
+ }
+ #if CYTHON_COMPILING_IN_CPYTHON
+- assert(PyType_IS_GC(self->ob_type) &&
++ assert(PyType_IS_GC(Py_TYPE(self)) &&
+ _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
+ _Py_DEC_REFTOTAL;
+ #endif
+@@ -21378,6 +21516,27 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO
+ Py_XDECREF(tmp);
+ return 0;
+ }
++static PyObject *
++__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
++{
++ PyObject *frame = self->gi_frame;
++ if (!frame) {
++ if (unlikely(!self->gi_code)) {
++ Py_RETURN_NONE;
++ }
++ frame = (PyObject *) PyFrame_New(
++ PyThreadState_Get(), /*PyThreadState *tstate,*/
++ (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/
++ __pyx_d, /*PyObject *globals,*/
++ 0 /*PyObject *locals*/
++ );
++ if (unlikely(!frame))
++ return NULL;
++ self->gi_frame = frame;
++ }
++ Py_INCREF(frame);
++ return frame;
++}
+ static __pyx_CoroutineObject *__Pyx__Coroutine_New(
+ PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
+ PyObject *name, PyObject *qualname, PyObject *module_name) {
+@@ -21411,6 +21570,7 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
+ gen->gi_modulename = module_name;
+ Py_XINCREF(code);
+ gen->gi_code = code;
++ gen->gi_frame = NULL;
+ PyObject_GC_Track(gen);
+ return gen;
+ }
+@@ -21534,6 +21694,8 @@ static PyGetSetDef __pyx_Generator_getsets[] = {
+ (char*) PyDoc_STR("name of the generator"), 0},
+ {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
+ (char*) PyDoc_STR("qualified name of the generator"), 0},
++ {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
++ (char*) PyDoc_STR("Frame of the generator"), 0},
+ {0, 0, 0, 0, 0}
+ };
+ static PyTypeObject __pyx_GeneratorType_type = {
+--
+2.33.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
index 3583acc9cd..4d739b86f7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
@@ -11,6 +11,7 @@ PYPI_PACKAGE = "wxPython"
SRC_URI += "file://add-back-option-build-base.patch \
file://wxgtk-fixup-build-scripts.patch \
file://sip-fix-override-functions.patch \
+ file://0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch \
"
SRC_URI[sha256sum] = "00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528"
@@ -18,7 +19,7 @@ S = "${WORKDIR}/wxPython-${PV}"
inherit pypi setuptools3 pkgconfig features_check
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "x11"
export WX_CONFIG = "'${RECIPE_SYSROOT_NATIVE}${bindir}/wx-config --prefix=${STAGING_EXECPREFIXDIR} --baselib=${baselib}'"
diff --git a/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb b/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb
new file mode 100644
index 0000000000..4299058315
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb
@@ -0,0 +1,29 @@
+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."
+HOMEPAGE = "http://www.python-ldap.org/"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
+
+DEPENDS = "python3 openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12"
+
+do_configure:prepend() {
+ sed -i -e 's:^library_dirs =.*::' \
+ -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' \
+ -e 's/= ldap_r/= ldap/g' ${S}/setup.cfg
+}
+
+RDEPENDS:${PN} = " \
+ ${PYTHON_PN}-pprint \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-pyasn1 \
+ ${PYTHON_PN}-pyasn1-modules \
+"