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 7b7d7be..41fce53 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
@@ -210,7 +210,6 @@
     python3-jsonpath-rw \
     python3-jsonpointer \
     python3-jsonref \
-    python3-jsonrpcserver \
     python3-jsonschema \
     python3-jstyleson \
     python3-kconfiglib \
@@ -218,7 +217,6 @@
     python3-keras-preprocessing \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11 opengl", "python3-kivy", "", d)} \
     python3-kiwisolver \
-    python3-kmod \
     python3-langtable \
     python3-lazy-object-proxy \
     python3-libconf \
@@ -459,7 +457,6 @@
     python3-wtforms \
     python3-xlrd \
     python3-xlsxwriter \
-    python3-xmlrunner \
     python3-xmltodict \
     python3-xmodem \
     python3-xstatic \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch b/meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch
new file mode 100644
index 0000000..34caaca
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch
@@ -0,0 +1,29 @@
+From 0920bd21ceab75bc4b655c571a37835526dd2468 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 27 Dec 2023 15:12:19 +0100
+Subject: [PATCH] versioneer.py: do not use SafeConfigParser
+
+This has been deprecated for a long time, and finally removed in python 3.12
+
+Upstream-Status: Submitted [https://github.com/rsokl/custom_inherit/pull/49]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ versioneer.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/versioneer.py b/versioneer.py
+index 64fea1c..3aa5da3 100644
+--- a/versioneer.py
++++ b/versioneer.py
+@@ -339,9 +339,9 @@ def get_config_from_root(root):
+     # configparser.NoOptionError (if it lacks "VCS="). See the docstring at
+     # the top of versioneer.py for instructions on writing your setup.cfg .
+     setup_cfg = os.path.join(root, "setup.cfg")
+-    parser = configparser.SafeConfigParser()
++    parser = configparser.ConfigParser()
+     with open(setup_cfg, "r") as f:
+-        parser.readfp(f)
++        parser.read_file(f)
+     VCS = parser.get("versioneer", "VCS")  # mandatory
+ 
+     def get(parser, name):
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb
index 4c4ed3f..694f577 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=29dca541e03964615590ca7b50392d97"
 
-SRC_URI[sha256sum] = "8d149b2a57d91f794b33a394ea5bc66b567f38c74a5a6a9477afc2450f105c01"
+SRC_URI[sha256sum] = "a3a7ff5264e5bca52e8ae547bbfd0761b72495230d438d05b6c0915be619b0e2"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb
index 78e6149..24a579f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.30.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.31.0.bb
@@ -12,10 +12,10 @@
 
 LICENSE = "LGPL-3.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
-                    file://README.rst;beginline=261;endline=275;md5=39ec83a704aed9f33618c5d04e478a08 \
+                    file://README.rst;beginline=261;endline=275;md5=ba124578a6853962d5038eabef535d12 \
                     "
 
-SRC_URI[sha256sum] = "b37dfd617a09d19a4a7bcaed0e060b288bc7ac8dfdc0facf886a49a25ff33728"
+SRC_URI[sha256sum] = "b93093544309ddbfe6c73dc9bfd60dbc4acecef39f3f464774b3084a1ec5d7b0"
 
 inherit pypi python_flit_core
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb
index 0d7107a..7d7be0b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "PSF-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
 
-SRC_URI[sha256sum] = "912efbeed6d8b155c8e8c37464f79d75b1de58936c0f29ffb599ce95af5563f2"
+SRC_URI[sha256sum] = "a8f286a51a32323715d77755ed959f94bef13972e9a2fe71b609e40e6d27957e"
 
 inherit setuptools3 pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb
index e26405d..ad2025e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cantools_39.4.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
 
-SRC_URI[sha256sum] = "98c4d007a6d9803c6433c743c0240e73de930530f8255e1e21d2e20e8991a30b"
+SRC_URI[sha256sum] = "8069a8f473bb1679990bea0903f3a22d58df5495aebbf09f58d49f627511b619"
 
 PYPI_PACKAGE = "cantools"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb
index 42bc9fc..cb1041c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[sha256sum] = "020d56d2da5bc22a0e00a5b0d54597ee91ad72446fa4cf1b97c35022f6b6dbf0"
+SRC_URI[sha256sum] = "707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
index 478abbf..e7409f7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
@@ -5,6 +5,7 @@
 
 PYPI_PACKAGE = "custom_inherit"
 
+SRC_URI += "file://0001-versioneer.py-do-not-use-SafeConfigParser.patch"
 SRC_URI[sha256sum] = "7052eb337bcce83551815264391cc4efc2bf70b295a3c52aba64f1ab57c3a8a2"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb
index 70e9831..d7d4b22 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb
@@ -1,11 +1,11 @@
 SUMMARY = "Convex optimization package"
 HOMEPAGE = "http://cvxopt.org"
 LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ba1a8a73d8ebea5c47a1173aaf476ddd"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=66ec4f8e53d3e733a8c26d5ca3830fba"
 
 SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master"
 
-SRCREV = "d5a21cf1da62e4269176384b1ff62edac5579f94"
+SRCREV = "3b718ee560b3b97d6255c55f0ed7f64cb4b72082"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb
index 99a61f1..e0afd37 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_3.0.0.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[sha256sum] = "09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc"
+SRC_URI[sha256sum] = "cfadcdb638b609361d29ec22360d6070a77d7463dcb3ab08d2c2f2f168845f58"
 
 UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Flask"
 UPSTREAM_CHECK_REGEX = "/Flask/(?P<pver>(\d+[\.\-_]*)+)"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch
new file mode 100644
index 0000000..1171322
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch
@@ -0,0 +1,263 @@
+From 43f132103cedfd92b85173bcdacfbabd5916d9fc Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 27 Dec 2023 14:52:16 +0100
+Subject: [PATCH] src: fix python 3.12 builds
+
+This is a backport for 3.1.x versions provided separately in https://github.com/aleaxit/gmpy/issues/446
+
+Upstream-Status: Inappropriate [can be dropped when 2.2.x is released]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/gmpy2_convert.h       |  21 +++++++
+ src/gmpy2_convert_gmp.c   | 129 +++++++++++++-------------------------
+ src/gmpy2_convert_utils.c |   2 +-
+ 3 files changed, 65 insertions(+), 87 deletions(-)
+
+diff --git a/src/gmpy2_convert.h b/src/gmpy2_convert.h
+index f887d47..3e8cb2b 100644
+--- a/src/gmpy2_convert.h
++++ b/src/gmpy2_convert.h
+@@ -142,6 +142,27 @@ extern "C" {
+ #define IS_TYPE_COMPLEX_ONLY(x)     ((x > OBJ_TYPE_REAL) && \
+                                      (x < OBJ_TYPE_COMPLEX))
+ 
++/* Compatibility macros (to work with PyLongObject internals).
++ */
++
++#if PY_VERSION_HEX >= 0x030C0000
++#  define TAG_FROM_SIGN_AND_SIZE(is_neg, size) ((is_neg?2:(size==0)) | (((size_t)size) << 3))
++#  define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (obj->long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE(is_neg, size))
++#elif PY_VERSION_HEX >= 0x030900A4
++#  define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (Py_SET_SIZE(obj, (is_neg?-1:1)*size))
++#else
++#  define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (Py_SIZE(obj) = (is_neg?-1:1)*size)
++#endif
++
++#if PY_VERSION_HEX >= 0x030C0000
++#  define GET_OB_DIGIT(obj) obj->long_value.ob_digit
++#  define _PyLong_IsNegative(obj) ((obj->long_value.lv_tag & 3) == 2)
++#  define _PyLong_DigitCount(obj) (obj->long_value.lv_tag >> 3)
++#else
++#  define GET_OB_DIGIT(obj) obj->ob_digit
++#  define _PyLong_IsNegative(obj) (Py_SIZE(obj) < 0)
++#  define _PyLong_DigitCount(obj) (_PyLong_IsNegative(obj)? -Py_SIZE(obj):Py_SIZE(obj))
++#endif
+ 
+ /* Since the macros are used in gmpy2's codebase, these functions are skipped
+  * until they are needed for the C API in the future.
+diff --git a/src/gmpy2_convert_gmp.c b/src/gmpy2_convert_gmp.c
+index cf0891e..8b8df81 100644
+--- a/src/gmpy2_convert_gmp.c
++++ b/src/gmpy2_convert_gmp.c
+@@ -59,33 +59,24 @@ GMPy_MPZ_From_PyIntOrLong(PyObject *obj, CTXT_Object *context)
+     }
+ #endif
+ 
+-    switch (Py_SIZE(templong)) {
+-    case -1:
+-        mpz_set_si(result->z, -(sdigit)templong->ob_digit[0]);
++    len = _PyLong_DigitCount(templong);
++    negative = _PyLong_IsNegative(templong);
++
++    switch (len) {
++    case 1:
++        mpz_set_si(result->z, (sdigit)GET_OB_DIGIT(templong)[0]);
+         break;
+     case 0:
+         mpz_set_si(result->z, 0);
+         break;
+-    case 1:
+-        mpz_set_si(result->z, templong->ob_digit[0]);
+-        break;
+     default:
+-        mpz_set_si(result->z, 0);
+-
+-        if (Py_SIZE(templong) < 0) {
+-            len = - Py_SIZE(templong);
+-            negative = 1;
+-        } else {
+-            len = Py_SIZE(templong);
+-            negative = 0;
+-        }
+-
+-        mpz_import(result->z, len, -1, sizeof(templong->ob_digit[0]), 0,
+-                   sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit);
++        mpz_import(result->z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0,
++                   sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT,
++                   GET_OB_DIGIT(templong));
++    }
+ 
+-        if (negative) {
+-            mpz_neg(result->z, result->z);
+-        }
++    if (negative) {
++        mpz_neg(result->z, result->z);
+     }
+     return result;
+ }
+@@ -105,33 +96,24 @@ mpz_set_PyIntOrLong(mpz_t z, PyObject *obj)
+     }
+ #endif
+ 
+-    switch (Py_SIZE(templong)) {
+-    case -1:
+-        mpz_set_si(z, -(sdigit)templong->ob_digit[0]);
++    len = _PyLong_DigitCount(templong);
++    negative = _PyLong_IsNegative(templong);
++
++    switch (len) {
++    case 1:
++        mpz_set_si(z, (sdigit)GET_OB_DIGIT(templong)[0]);
+         break;
+     case 0:
+         mpz_set_si(z, 0);
+         break;
+-    case 1:
+-        mpz_set_si(z, templong->ob_digit[0]);
+-        break;
+     default:
+-        mpz_set_si(z, 0);
+-
+-        if (Py_SIZE(templong) < 0) {
+-            len = - Py_SIZE(templong);
+-            negative = 1;
+-        } else {
+-            len = Py_SIZE(templong);
+-            negative = 0;
+-        }
+-
+-        mpz_import(z, len, -1, sizeof(templong->ob_digit[0]), 0,
+-                   sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit);
++        mpz_import(z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0,
++                   sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT,
++                   GET_OB_DIGIT(templong));
++    }
+ 
+-        if (negative) {
+-            mpz_neg(z, z);
+-        }
++    if (negative) {
++        mpz_neg(z, z);
+     }
+     return;
+ }
+@@ -186,12 +168,7 @@ GMPy_PyLong_From_MPZ(MPZ_Object *obj, CTXT_Object *context)
+ 
+     /* Assume gmp uses limbs as least as large as the builtin longs do */
+ 
+-    if (mpz_sgn(obj->z) < 0) {
+-        negative = 1;
+-    } else {
+-        negative = 0;
+-    }
+-
++    negative = mpz_sgn(obj->z) < 0;
+     size = (mpz_sizeinbase(obj->z, 2) + PyLong_SHIFT - 1) / PyLong_SHIFT;
+ 
+     if (!(result = _PyLong_New(size))) {
+@@ -200,31 +177,20 @@ GMPy_PyLong_From_MPZ(MPZ_Object *obj, CTXT_Object *context)
+         /* LCOV_EXCL_STOP */
+     }
+ 
+-    mpz_export(result->ob_digit, &count, -1, sizeof(result->ob_digit[0]), 0,
+-               sizeof(result->ob_digit[0])*8 - PyLong_SHIFT, obj->z);
++    mpz_export(GET_OB_DIGIT(result), &count, -1, sizeof(GET_OB_DIGIT(result)[0]), 0,
++               sizeof(GET_OB_DIGIT(result)[0])*8 - PyLong_SHIFT, obj->z);
+ 
+     if (count == 0) {
+-        result->ob_digit[0] = 0;
++        GET_OB_DIGIT(result)[0] = 0;
+     }
+ 
+     /* long_normalize() is file-static so we must reimplement it */
+     /* longobjp = long_normalize(longobjp); */
+-    while ((size>0) && (result->ob_digit[size-1] == 0)) {
++    while ((size>0) && (GET_OB_DIGIT(result)[size-1] == 0)) {
+         size--;
+     }
+-#if PY_VERSION_HEX >= 0x030900A4
+-    Py_SET_SIZE(result, size);
+-#else
+-    Py_SIZE(result) = size;
+-#endif
+ 
+-    if (negative) {
+-#if PY_VERSION_HEX >= 0x030900A4
+-        Py_SET_SIZE(result, - Py_SIZE(result));
+-#else
+-        Py_SIZE(result) = - Py_SIZE(result);
+-#endif
+-    }
++    _PyLong_SetSignAndDigitCount(result, negative, size);
+     return (PyObject*)result;
+ }
+ 
+@@ -476,33 +442,24 @@ GMPy_XMPZ_From_PyIntOrLong(PyObject *obj, CTXT_Object *context)
+     }
+ #endif
+ 
+-    switch (Py_SIZE(templong)) {
+-    case -1:
+-        mpz_set_si(result->z, -(sdigit)templong->ob_digit[0]);
++    len = _PyLong_DigitCount(templong);
++    negative = _PyLong_IsNegative(templong);
++
++    switch (len) {
++    case 1:
++        mpz_set_si(result->z, (sdigit)GET_OB_DIGIT(templong)[0]);
+         break;
+     case 0:
+         mpz_set_si(result->z, 0);
+         break;
+-    case 1:
+-        mpz_set_si(result->z, templong->ob_digit[0]);
+-        break;
+     default:
+-        mpz_set_si(result->z, 0);
+-
+-        if (Py_SIZE(templong) < 0) {
+-            len = - Py_SIZE(templong);
+-            negative = 1;
+-        } else {
+-            len = Py_SIZE(templong);
+-            negative = 0;
+-        }
+-
+-        mpz_import(result->z, len, -1, sizeof(templong->ob_digit[0]), 0,
+-                   sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit);
++        mpz_import(result->z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0,
++                   sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT,
++                   GET_OB_DIGIT(templong));
++    }
+ 
+-        if (negative) {
+-            mpz_neg(result->z, result->z);
+-        }
++    if (negative) {
++        mpz_neg(result->z, result->z);
+     }
+     return result;
+ }
+@@ -639,7 +596,7 @@ GMPy_MPQ_From_PyStr(PyObject *s, int base, CTXT_Object *context)
+     }
+ 
+     cp = PyBytes_AsString(ascii_str);
+-    
++
+     {
+         char *whereslash = strchr((char*)cp, '/');
+         char *wheredot = strchr((char*)cp, '.');
+diff --git a/src/gmpy2_convert_utils.c b/src/gmpy2_convert_utils.c
+index d676eaf..8908d17 100644
+--- a/src/gmpy2_convert_utils.c
++++ b/src/gmpy2_convert_utils.c
+@@ -123,7 +123,7 @@ static unsigned long
+ GMPy_Integer_AsUnsignedLongWithType_v2(PyObject *x, int xtype)
+ {
+     if IS_TYPE_PyInteger(xtype) {
+-        if (Py_SIZE(x) < 0) {
++        if (_PyLong_IsNegative(((PyLongObject*)x))) {
+             VALUE_ERROR("n must be > 0");
+             return (unsigned long)-1;
+         }
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
index 9a66af9..d9e9bd5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
@@ -10,5 +10,6 @@
 SRC_URI[sha256sum] = "bc297f1fd8c377ae67a4f493fc0f926e5d1b157e5c342e30a4d84dc7b9f95d96"
 
 inherit pypi setuptools3 python3native
+SRC_URI += "file://0001-src-fix-python-3.12-builds.patch"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb
index 8961351..b1614b8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.111.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.112.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "3a45a53c031478d1c82c7162dd25c9a965247bca6bd438af0838a9d9b8219405"
+SRC_URI[sha256sum] = "c3bcb5fd70d57f4c94b30c0dbeade53c216febfbf1d771eeb1a2fa74bd0d6756"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb
index 2f52761..1a4913b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.25.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.26.1.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "42f707937feb4f5e5a39e6c4f343a17300a459aaf03141457ba505812841cc40"
+SRC_URI[sha256sum] = "54385acca5c0fbdda510cd8585ba6f3fcb06eeecf8a6ecca39d3ee148b092590"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch
new file mode 100644
index 0000000..aba62dd
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch
@@ -0,0 +1,796 @@
+From 1e02dbe5533d679b9ef064078a303607a7d0542a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 29 Dec 2023 14:33:38 +0100
+Subject: [PATCH] Fix Cython 3 compatibility
+
+Upstream-Status: Backport [https://github.com/h5py/h5py/pull/2345/commits]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ benchmarks/benchmark_slicing.py    | 12 ++++----
+ docs/conf.py                       |  2 +-
+ docs/high/dataset.rst              |  4 +--
+ docs/high/file.rst                 |  6 ++--
+ docs/requirements-rtd.txt          |  5 ++--
+ docs/vds.rst                       |  2 +-
+ docs/whatsnew/3.0.rst              |  2 +-
+ docs/whatsnew/3.7.rst              |  4 +--
+ h5py/_errors.pxd                   | 10 +++----
+ h5py/_errors.pyx                   |  4 +--
+ h5py/_hl/base.py                   |  4 +--
+ h5py/_hl/dataset.py                |  8 ++---
+ h5py/_hl/dims.py                   |  3 +-
+ h5py/_hl/files.py                  |  2 +-
+ h5py/_locks.pxi                    |  6 ++--
+ h5py/_proxy.pyx                    |  4 +--
+ h5py/_selector.pyx                 |  2 +-
+ h5py/api_compat.h                  | 13 ++++----
+ h5py/api_types_hdf5.pxd            | 48 +++++++++++++++---------------
+ h5py/h5fd.pyx                      | 38 ++++++++++++++++-------
+ h5py/h5p.pyx                       |  4 +--
+ h5py/h5t.pyx                       |  2 +-
+ h5py/tests/test_attrs_data.py      |  2 +-
+ h5py/tests/test_big_endian_file.py |  4 +--
+ h5py/tests/test_dataset.py         |  4 +--
+ h5py/tests/test_file.py            |  6 ++--
+ h5py/tests/test_file_alignment.py  |  4 +--
+ h5py/tests/test_group.py           |  4 +--
+ h5py/tests/test_selections.py      |  2 +-
+ pylintrc                           |  2 +-
+ pyproject.toml                     |  2 +-
+ setup_configure.py                 |  2 +-
+ tox.ini                            |  2 +-
+ 33 files changed, 116 insertions(+), 103 deletions(-)
+
+diff --git a/benchmarks/benchmark_slicing.py b/benchmarks/benchmark_slicing.py
+index e9a34dad..b833f012 100644
+--- a/benchmarks/benchmark_slicing.py
++++ b/benchmarks/benchmark_slicing.py
+@@ -7,7 +7,7 @@ import logging
+ logger = logging.getLogger(__name__)
+ import h5py
+ 
+-#Needed for mutithreading:
++#Needed for multithreading:
+ from queue import Queue
+ from threading import Thread, Event
+ import multiprocessing
+@@ -173,8 +173,8 @@ class SlicingBenchmark:
+ 
+ if __name__ == "__main__":
+     logging.basicConfig(level=logging.INFO)
+-    benckmark = SlicingBenchmark()
+-    benckmark.setup()
+-    benckmark.time_sequential_reads()
+-    benckmark.time_threaded_reads()
+-    benckmark.teardown()
++    benchmark = SlicingBenchmark()
++    benchmark.setup()
++    benchmark.time_sequential_reads()
++    benchmark.time_threaded_reads()
++    benchmark.teardown()
+diff --git a/docs/conf.py b/docs/conf.py
+index 93b23939..a0f6c1ac 100644
+--- a/docs/conf.py
++++ b/docs/conf.py
+@@ -109,7 +109,7 @@ pygments_style = 'sphinx'
+ 
+ # The theme to use for HTML and HTML Help pages.  See the documentation for
+ # a list of builtin themes.
+-html_theme = 'default'
++html_theme = 'sphinx_rtd_theme'
+ 
+ # Theme options are theme-specific and customize the look and feel of a theme
+ # further.  For a list of options available for each theme, see the
+diff --git a/docs/high/dataset.rst b/docs/high/dataset.rst
+index 0f27284f..cb75fffe 100644
+--- a/docs/high/dataset.rst
++++ b/docs/high/dataset.rst
+@@ -58,7 +58,7 @@ the requested ``dtype``.
+ Reading & writing data
+ ----------------------
+ 
+-HDF5 datasets re-use the NumPy slicing syntax to read and write to the file.
++HDF5 datasets reuse the NumPy slicing syntax to read and write to the file.
+ Slice specifications are translated directly to HDF5 "hyperslab"
+ selections, and are a fast and efficient way to access data in the file. The
+ following slicing arguments are recognized:
+@@ -464,7 +464,7 @@ Reference
+         >>> dset = f["MyDS"]
+         >>> f.close()
+         >>> if dset:
+-        ...     print("datset accessible")
++        ...     print("dataset accessible")
+         ... else:
+         ...     print("dataset inaccessible")
+         dataset inaccessible
+diff --git a/docs/high/file.rst b/docs/high/file.rst
+index 484498ce..e757fe1a 100644
+--- a/docs/high/file.rst
++++ b/docs/high/file.rst
+@@ -392,7 +392,7 @@ Data alignment
+ When creating datasets within files, it may be advantageous to align the offset
+ within the file itself. This can help optimize read and write times if the data
+ become aligned with the underlying hardware, or may help with parallelism with
+-MPI. Unfortunately, aligning small variables to large blocks can leave alot of
++MPI. Unfortunately, aligning small variables to large blocks can leave a lot of
+ empty space in a file. To this effect, application developers are left with two
+ options to tune the alignment of data within their file.  The two variables
+ ``alignment_threshold`` and ``alignment_interval``  in the :class:`File`
+@@ -415,7 +415,7 @@ number of regions. Setting a small value can reduce the overall file size,
+ especially in combination with the ``libver`` option. This controls how the
+ overall data and metadata are laid out within the file.
+ 
+-For more information, see the offical HDF5 documentation `H5P_SET_META_BLOCK_SIZE
++For more information, see the official HDF5 documentation `H5P_SET_META_BLOCK_SIZE
+ <https://portal.hdfgroup.org/display/HDF5/H5P_SET_META_BLOCK_SIZE>`_.
+ 
+ Reference
+@@ -497,7 +497,7 @@ Reference
+             Only available with HDF5 >= 1.12.1 or 1.10.x >= 1.10.7.
+     :param alignment_threshold: Together with ``alignment_interval``, this
+             property ensures that any file object greater than or equal
+-            in size to the alignement threshold (in bytes) will be
++            in size to the alignment threshold (in bytes) will be
+             aligned on an address which is a multiple of alignment interval.
+     :param alignment_interval: This property should be used in conjunction with
+             ``alignment_threshold``. See the description above. For more
+diff --git a/docs/requirements-rtd.txt b/docs/requirements-rtd.txt
+index e67a3eee..52096927 100644
+--- a/docs/requirements-rtd.txt
++++ b/docs/requirements-rtd.txt
+@@ -1,3 +1,2 @@
+-sphinx==4.3.0
+-sphinx_rtd_theme==1.0.0
+-readthedocs-sphinx-search==0.1.1
++sphinx==7.2.6
++sphinx_rtd_theme==1.3.0
+diff --git a/docs/vds.rst b/docs/vds.rst
+index a9a7c7f6..bd47ad1c 100644
+--- a/docs/vds.rst
++++ b/docs/vds.rst
+@@ -124,7 +124,7 @@ Reference
+    slice it to indicate which regions should be used in the virtual dataset.
+ 
+    When `creating a virtual dataset <creating_vds_>`_, paths to sources present
+-   in the same file are changed to a ".", refering to the current file (see
++   in the same file are changed to a ".", referring to the current file (see
+    `H5Pset_virtual <https://portal.hdfgroup.org/display/HDF5/H5P_SET_VIRTUAL>`_).
+    This will keep such sources valid in case the file is renamed.
+ 
+diff --git a/docs/whatsnew/3.0.rst b/docs/whatsnew/3.0.rst
+index db30ad66..ff3c2bef 100644
+--- a/docs/whatsnew/3.0.rst
++++ b/docs/whatsnew/3.0.rst
+@@ -44,7 +44,7 @@ New features
+   See also the deprecation related to the ``external`` argument.
+ * Support for setting file space strategy at file creation. Includes option to
+   persist empty space tracking between sessions. See :class:`.File` for details.
+-* More efficient writing when assiging a scalar to a chunked dataset, when the
++* More efficient writing when assigning a scalar to a chunked dataset, when the
+   number of elements to write is no more than the size of one chunk.
+ * Introduced support for the split :ref:`file driver <file_driver>`
+   (:pr:`1468`).
+diff --git a/docs/whatsnew/3.7.rst b/docs/whatsnew/3.7.rst
+index 27790254..2e822d68 100644
+--- a/docs/whatsnew/3.7.rst
++++ b/docs/whatsnew/3.7.rst
+@@ -19,7 +19,7 @@ New features
+   include it. Alternatively, you can :ref:`build h5py from source <source_install>`
+   against an HDF5 build with the direct driver enabled.
+ * The :class:`.File` constructor contains two new parameters ``alignment_threshold``,
+-  and ``alignment_interval`` controling the data alignment within the HDF5
++  and ``alignment_interval`` controlling the data alignment within the HDF5
+   file (:pr:`2040`).
+ * :meth:`~.Group.create_dataset` and :meth:`~.Group.require_dataset` now accept
+   parameters ``efile_prefix`` and ``virtual_prefix`` to set a filesystem path
+@@ -40,7 +40,7 @@ Bug fixes
+   attributes with ``track_order=True``.
+ * Fix for building with mpi4py on Python 3.10 (:pr:`2101`).
+ * Fixed fancy indexing with a boolean array for a single dimension (:pr:`2079`).
+-* Avoid returning unitialised memory when reading from a chunked dataset with
++* Avoid returning uninitialised memory when reading from a chunked dataset with
+   missing chunks and no fill value (:pr:`2076`).
+ * Enable setting of fillvalue for datasets with variable length string dtype
+   (:pr:`2044`).
+diff --git a/h5py/_errors.pxd b/h5py/_errors.pxd
+index df9c1bbe..3cba6307 100644
+--- a/h5py/_errors.pxd
++++ b/h5py/_errors.pxd
+@@ -23,7 +23,7 @@ cdef extern from "hdf5.h":
+             H5E_ARGS,                   # invalid arguments to routine
+             H5E_RESOURCE,               # resource unavailable
+             H5E_INTERNAL,               # Internal error (too specific to document)
+-            H5E_FILE,                   # file Accessability
++            H5E_FILE,                   # file Accessibility
+             H5E_IO,                     # Low-level I/O
+             H5E_FUNC,                   # function Entry/Exit
+             H5E_ATOM,                   # object Atom
+@@ -121,7 +121,7 @@ cdef extern from "hdf5.h":
+             # No error
+             H5E_NONE_MINOR     # No error
+ 
+-            # File accessability errors
++            # File accessibility errors
+             H5E_FILEEXISTS     # File already exists
+             H5E_FILEOPEN       # File already open
+             H5E_CANTCREATE     # Unable to create file
+@@ -207,7 +207,7 @@ cdef extern from "hdf5.h":
+             H5E_ARGS,                   # invalid arguments to routine
+             H5E_RESOURCE,               # resource unavailable
+             H5E_INTERNAL,               # Internal error (too specific to document)
+-            H5E_FILE,                   # file Accessability
++            H5E_FILE,                   # file Accessibility
+             H5E_IO,                     # Low-level I/O
+             H5E_FUNC,                   # function Entry/Exit
+             H5E_ID,                     # object ID
+@@ -305,7 +305,7 @@ cdef extern from "hdf5.h":
+             # No error
+             H5E_NONE_MINOR     # No error
+ 
+-            # File accessability errors
++            # File accessibility errors
+             H5E_FILEEXISTS     # File already exists
+             H5E_FILEOPEN       # File already open
+             H5E_CANTCREATE     # Unable to create file
+@@ -425,4 +425,4 @@ ctypedef struct err_cookie:
+ cdef err_cookie set_error_handler(err_cookie handler)
+ 
+ # Set the default error handler set by silence_errors/unsilence_errors
+-cdef void set_default_error_handler() nogil
++cdef void set_default_error_handler() noexcept nogil
+diff --git a/h5py/_errors.pyx b/h5py/_errors.pyx
+index c3bd184e..2a7524b2 100644
+--- a/h5py/_errors.pyx
++++ b/h5py/_errors.pyx
+@@ -94,7 +94,7 @@ cdef struct err_data_t:
+     H5E_error_t err
+     int n
+ 
+-cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) nogil noexcept:
++cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) noexcept nogil:
+ 
+     cdef err_data_t *ee = <err_data_t*>e
+ 
+@@ -168,7 +168,7 @@ cdef err_cookie _error_handler  # Store error handler used by h5py
+ _error_handler.func = NULL
+ _error_handler.data = NULL
+ 
+-cdef void set_default_error_handler() nogil:
++cdef void set_default_error_handler() noexcept nogil:
+     """Set h5py's current default error handler"""
+     H5Eset_auto(<hid_t>H5E_DEFAULT, _error_handler.func, _error_handler.data)
+ 
+diff --git a/h5py/_hl/base.py b/h5py/_hl/base.py
+index cad37053..9d261c90 100644
+--- a/h5py/_hl/base.py
++++ b/h5py/_hl/base.py
+@@ -20,7 +20,7 @@ import posixpath
+ import numpy as np
+ 
+ # The high-level interface is serialized; every public API function & method
+-# is wrapped in a lock.  We re-use the low-level lock because (1) it's fast,
++# is wrapped in a lock.  We reuse the low-level lock because (1) it's fast,
+ # and (2) it eliminates the possibility of deadlocks due to out-of-order
+ # lock acquisition.
+ from .._objects import phil, with_phil
+@@ -524,7 +524,7 @@ def product(nums):
+ # Daniel Greenfeld, BSD license), where it is attributed to bottle (Copyright
+ # (c) 2009-2022, Marcel Hellkamp, MIT license).
+ 
+-class cached_property(object):
++class cached_property:
+     def __init__(self, func):
+         self.__doc__ = getattr(func, "__doc__")
+         self.func = func
+diff --git a/h5py/_hl/dataset.py b/h5py/_hl/dataset.py
+index b69aba48..77b202d2 100644
+--- a/h5py/_hl/dataset.py
++++ b/h5py/_hl/dataset.py
+@@ -334,10 +334,10 @@ class ChunkIterator:
+         self._layout = dset.chunks
+         if source_sel is None:
+             # select over entire dataset
+-            slices = []
+-            for dim in range(rank):
+-                slices.append(slice(0, self._shape[dim]))
+-            self._sel = tuple(slices)
++            self._sel = tuple(
++                slice(0, self._shape[dim])
++                for dim in range(rank)
++            )
+         else:
+             if isinstance(source_sel, slice):
+                 self._sel = (source_sel,)
+diff --git a/h5py/_hl/dims.py b/h5py/_hl/dims.py
+index d3c9206b..0cf4c9f3 100644
+--- a/h5py/_hl/dims.py
++++ b/h5py/_hl/dims.py
+@@ -53,8 +53,7 @@ class DimensionProxy(base.CommonStateObject):
+ 
+     @with_phil
+     def __iter__(self):
+-        for k in self.keys():
+-            yield k
++        yield from self.keys()
+ 
+     @with_phil
+     def __len__(self):
+diff --git a/h5py/_hl/files.py b/h5py/_hl/files.py
+index aa4fb78d..bfcf3098 100644
+--- a/h5py/_hl/files.py
++++ b/h5py/_hl/files.py
+@@ -480,7 +480,7 @@ class File(Group):
+ 
+         alignment_threshold
+             Together with ``alignment_interval``, this property ensures that
+-            any file object greater than or equal in size to the alignement
++            any file object greater than or equal in size to the alignment
+             threshold (in bytes) will be aligned on an address which is a
+             multiple of alignment interval.
+ 
+diff --git a/h5py/_locks.pxi b/h5py/_locks.pxi
+index bc8b2dd9..1ec4e2fc 100644
+--- a/h5py/_locks.pxi
++++ b/h5py/_locks.pxi
+@@ -63,7 +63,7 @@ cdef class FastRLock:
+         return self._owner == pythread.PyThread_get_thread_ident()
+ 
+ 
+-cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) nogil:
++cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) noexcept nogil:
+     # Note that this function *must* hold the GIL when being called.
+     # We just use 'nogil' in the signature to make sure that no Python
+     # code execution slips in that might free the GIL
+@@ -83,7 +83,7 @@ cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) n
+         lock, current_thread,
+         pythread.WAIT_LOCK if blocking else pythread.NOWAIT_LOCK)
+ 
+-cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil:
++cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) noexcept nogil:
+     # Note that this function *must* hold the GIL when being called.
+     # We just use 'nogil' in the signature to make sure that no Python
+     # code execution slips in that might free the GIL
+@@ -111,7 +111,7 @@ cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil:
+     lock._count = 1
+     return 1
+ 
+-cdef inline void unlock_lock(FastRLock lock) nogil:
++cdef inline void unlock_lock(FastRLock lock) noexcept nogil:
+     # Note that this function *must* hold the GIL when being called.
+     # We just use 'nogil' in the signature to make sure that no Python
+     # code execution slips in that might free the GIL
+diff --git a/h5py/_proxy.pyx b/h5py/_proxy.pyx
+index 46b4fe0d..e40504f5 100644
+--- a/h5py/_proxy.pyx
++++ b/h5py/_proxy.pyx
+@@ -241,7 +241,7 @@ ctypedef struct h5py_scatter_t:
+     void* buf
+ 
+ cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim,
+-                const hsize_t *point, void *operator_data) nogil except -1:
++                const hsize_t *point, void *operator_data) except -1 nogil:
+     cdef h5py_scatter_t* info = <h5py_scatter_t*>operator_data
+ 
+     memcpy(elem, (<char*>info[0].buf)+((info[0].i)*(info[0].elsize)),
+@@ -252,7 +252,7 @@ cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim,
+     return 0
+ 
+ cdef herr_t h5py_gather_cb(void* elem, hid_t type_id, unsigned ndim,
+-                const hsize_t *point, void *operator_data) nogil except -1:
++                const hsize_t *point, void *operator_data) except -1 nogil:
+     cdef h5py_scatter_t* info = <h5py_scatter_t*>operator_data
+ 
+     memcpy((<char*>info[0].buf)+((info[0].i)*(info[0].elsize)), elem,
+diff --git a/h5py/_selector.pyx b/h5py/_selector.pyx
+index 8b858c82..69970176 100644
+--- a/h5py/_selector.pyx
++++ b/h5py/_selector.pyx
+@@ -341,7 +341,7 @@ cdef class Reader:
+ 
+             arr = PyArray_ZEROS(arr_rank, arr_shape, self.np_typenum, 0)
+             if not self.native_byteorder:
+-                arr = arr.newbyteorder()
++                arr = arr.view(arr.dtype.newbyteorder())
+         finally:
+             efree(arr_shape)
+ 
+diff --git a/h5py/api_compat.h b/h5py/api_compat.h
+index 52917f4d..a359e827 100644
+--- a/h5py/api_compat.h
++++ b/h5py/api_compat.h
+@@ -24,7 +24,6 @@ typedef void *PyMPI_MPI_Message;
+ #include <stddef.h>
+ #include "Python.h"
+ #include "numpy/arrayobject.h"
+-#include "hdf5.h"
+ 
+ /* The HOFFSET macro can't be used from Cython. */
+ 
+@@ -35,14 +34,14 @@ typedef void *PyMPI_MPI_Message;
+ #define h5py_size_n256 (sizeof(npy_complex256))
+ #endif
+ 
+-#define h5py_offset_n64_real (HOFFSET(npy_complex64, real))
+-#define h5py_offset_n64_imag (HOFFSET(npy_complex64, imag))
+-#define h5py_offset_n128_real (HOFFSET(npy_complex128, real))
+-#define h5py_offset_n128_imag (HOFFSET(npy_complex128, imag))
++#define h5py_offset_n64_real (0)
++#define h5py_offset_n64_imag (sizeof(float))
++#define h5py_offset_n128_real (0)
++#define h5py_offset_n128_imag (sizeof(double))
+ 
+ #ifdef NPY_COMPLEX256
+-#define h5py_offset_n256_real (HOFFSET(npy_complex256, real))
+-#define h5py_offset_n256_imag (HOFFSET(npy_complex256, imag))
++#define h5py_offset_n256_real (0)
++#define h5py_offset_n256_imag (sizeof(long double))
+ #endif
+ 
+ #endif
+diff --git a/h5py/api_types_hdf5.pxd b/h5py/api_types_hdf5.pxd
+index a198f105..099e0f58 100644
+--- a/h5py/api_types_hdf5.pxd
++++ b/h5py/api_types_hdf5.pxd
+@@ -257,27 +257,27 @@ cdef extern from "hdf5.h":
+       herr_t  (*sb_encode)(H5FD_t *file, char *name, unsigned char *p)
+       herr_t  (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p)
+       size_t  fapl_size
+-      void *  (*fapl_get)(H5FD_t *file)
+-      void *  (*fapl_copy)(const void *fapl)
+-      herr_t  (*fapl_free)(void *fapl)
++      void *  (*fapl_get)(H5FD_t *file) except *
++      void *  (*fapl_copy)(const void *fapl) except *
++      herr_t  (*fapl_free)(void *fapl) except -1
+       size_t  dxpl_size
+       void *  (*dxpl_copy)(const void *dxpl)
+       herr_t  (*dxpl_free)(void *dxpl)
+-      H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)
+-      herr_t  (*close)(H5FD_t *file)
++      H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except *
++      herr_t  (*close)(H5FD_t *file) except -1
+       int     (*cmp)(const H5FD_t *f1, const H5FD_t *f2)
+       herr_t  (*query)(const H5FD_t *f1, unsigned long *flags)
+       herr_t  (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map)
+       haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
+       herr_t  (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size)
+-      haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type)
+-      herr_t  (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr)
+-      haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type)
++      haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept
++      herr_t  (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept
++      haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1
+       herr_t  (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle)
+-      herr_t  (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer)
+-      herr_t  (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer)
+-      herr_t  (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
+-      herr_t  (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
++      herr_t  (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except *
++      herr_t  (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except *
++      herr_t  (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
++      herr_t  (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
+       herr_t  (*lock)(H5FD_t *file, hbool_t rw)
+       herr_t  (*unlock)(H5FD_t *file)
+       H5FD_mem_t fl_map[<int>H5FD_MEM_NTYPES]
+@@ -295,27 +295,27 @@ cdef extern from "hdf5.h":
+       herr_t  (*sb_encode)(H5FD_t *file, char *name, unsigned char *p)
+       herr_t  (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p)
+       size_t  fapl_size
+-      void *  (*fapl_get)(H5FD_t *file)
+-      void *  (*fapl_copy)(const void *fapl)
+-      herr_t  (*fapl_free)(void *fapl)
++      void *  (*fapl_get)(H5FD_t *file) except *
++      void *  (*fapl_copy)(const void *fapl) except *
++      herr_t  (*fapl_free)(void *fapl) except -1
+       size_t  dxpl_size
+       void *  (*dxpl_copy)(const void *dxpl)
+       herr_t  (*dxpl_free)(void *dxpl)
+-      H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)
+-      herr_t  (*close)(H5FD_t *file)
++      H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except *
++      herr_t  (*close)(H5FD_t *file) except -1
+       int     (*cmp)(const H5FD_t *f1, const H5FD_t *f2)
+       herr_t  (*query)(const H5FD_t *f1, unsigned long *flags)
+       herr_t  (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map)
+       haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
+       herr_t  (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size)
+-      haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type)
+-      herr_t  (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr)
+-      haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type)
++      haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept
++      herr_t  (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept
++      haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1
+       herr_t  (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle)
+-      herr_t  (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer)
+-      herr_t  (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer)
+-      herr_t  (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
+-      herr_t  (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
++      herr_t  (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except *
++      herr_t  (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except *
++      herr_t  (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
++      herr_t  (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
+       herr_t  (*lock)(H5FD_t *file, hbool_t rw)
+       herr_t  (*unlock)(H5FD_t *file)
+       H5FD_mem_t fl_map[<int>H5FD_MEM_NTYPES]
+diff --git a/h5py/h5fd.pyx b/h5py/h5fd.pyx
+index e9746057..d39cf68f 100644
+--- a/h5py/h5fd.pyx
++++ b/h5py/h5fd.pyx
+@@ -144,10 +144,10 @@ cdef herr_t H5FD_fileobj_close(H5FD_fileobj_t *f) except -1 with gil:
+     stdlib_free(f)
+     return 0
+ 
+-cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type):
++cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type) noexcept nogil:
+     return f.eoa
+ 
+-cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr):
++cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr) noexcept nogil:
+     f.eoa = addr
+     return 0
+ 
+@@ -191,22 +191,38 @@ cdef herr_t H5FD_fileobj_flush(H5FD_fileobj_t *f, hid_t dxpl, hbool_t closing) e
+ cdef H5FD_class_t info
+ memset(&info, 0, sizeof(info))
+ 
++# Cython doesn't support "except X" in casting definition currently
++ctypedef herr_t (*file_free_func_ptr)(void *) except -1
++
++ctypedef herr_t (*file_close_func_ptr)(H5FD_t *) except -1
++ctypedef haddr_t (*file_get_eoa_func_ptr)(const H5FD_t *, H5FD_mem_t) noexcept
++ctypedef herr_t (*file_set_eof_func_ptr)(H5FD_t *, H5FD_mem_t, haddr_t) noexcept
++ctypedef haddr_t (*file_get_eof_func_ptr)(const H5FD_t *, H5FD_mem_t) except -1
++ctypedef herr_t (*file_read_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void*) except -1
++ctypedef herr_t (*file_write_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void*) except -1
++ctypedef herr_t (*file_truncate_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1
++ctypedef herr_t (*file_flush_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1
++
++
+ info.name = 'fileobj'
+ info.maxaddr = libc.stdint.SIZE_MAX - 1
+ info.fc_degree = H5F_CLOSE_WEAK
+ info.fapl_size = sizeof(PyObject *)
+ info.fapl_get = <void *(*)(H5FD_t *)>H5FD_fileobj_fapl_get
+ info.fapl_copy = <void *(*)(const void *)>H5FD_fileobj_fapl_copy
+-info.fapl_free = <herr_t (*)(void *)>H5FD_fileobj_fapl_free
++
++info.fapl_free = <file_free_func_ptr>H5FD_fileobj_fapl_free
++
+ info.open = <H5FD_t *(*)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)>H5FD_fileobj_open
+-info.close = <herr_t (*)(H5FD_t *)>H5FD_fileobj_close
+-info.get_eoa = <haddr_t (*)(const H5FD_t *, H5FD_mem_t)>H5FD_fileobj_get_eoa
+-info.set_eoa = <herr_t (*)(H5FD_t *, H5FD_mem_t, haddr_t)>H5FD_fileobj_set_eoa
+-info.get_eof = <haddr_t (*)(const H5FD_t *, H5FD_mem_t)>H5FD_fileobj_get_eof
+-info.read = <herr_t (*)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void *)>H5FD_fileobj_read
+-info.write = <herr_t (*)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void *)>H5FD_fileobj_write
+-info.truncate = <herr_t (*)(H5FD_t *, hid_t, hbool_t)>H5FD_fileobj_truncate
+-info.flush = <herr_t (*)(H5FD_t *, hid_t, hbool_t)>H5FD_fileobj_flush
++
++info.close = <file_close_func_ptr>H5FD_fileobj_close
++info.get_eoa = <file_get_eoa_func_ptr>H5FD_fileobj_get_eoa
++info.set_eoa = <file_set_eof_func_ptr>H5FD_fileobj_set_eoa
++info.get_eof = <file_get_eof_func_ptr>H5FD_fileobj_get_eof
++info.read = <file_read_func_ptr>H5FD_fileobj_read
++info.write = <file_write_func_ptr>H5FD_fileobj_write
++info.truncate = <file_truncate_func_ptr>H5FD_fileobj_truncate
++info.flush = <file_flush_func_ptr>H5FD_fileobj_flush
+ # H5FD_FLMAP_DICHOTOMY
+ info.fl_map = [H5FD_MEM_SUPER,  # default
+                H5FD_MEM_SUPER,  # super
+diff --git a/h5py/h5p.pyx b/h5py/h5p.pyx
+index 779ea1b5..dc8bf65a 100644
+--- a/h5py/h5p.pyx
++++ b/h5py/h5p.pyx
+@@ -1177,7 +1177,7 @@ cdef class PropFAID(PropInstanceID):
+                 size_t block_size   IN: File system block size
+                 size_t cbuf_size    IN: Copy buffer size
+ 
+-            Properites with value of 0 indicate that the HDF5 library should
++            Properties with value of 0 indicate that the HDF5 library should
+             choose the value.
+             """
+             H5Pset_fapl_direct(self.id, alignment, block_size, cbuf_size)
+@@ -1761,7 +1761,7 @@ cdef class PropOCID(PropCreateID):
+ 
+         max_compact -- maximum number of attributes to be stored in compact storage(default:8)
+         must be greater than or equal to min_dense
+-        min_dense  -- minmum number of attributes to be stored in dense storage(default:6)
++        min_dense  -- minimum number of attributes to be stored in dense storage(default:6)
+ 
+         """
+         H5Pset_attr_phase_change(self.id, max_compact, min_dense)
+diff --git a/h5py/h5t.pyx b/h5py/h5t.pyx
+index e7aae14f..b9d7e74d 100644
+--- a/h5py/h5t.pyx
++++ b/h5py/h5t.pyx
+@@ -1938,7 +1938,7 @@ def check_dtype(**kwds):
+ 
+     vlen = dtype
+         If the dtype represents an HDF5 vlen, returns the Python base class.
+-        Currently only builting string vlens (str) are supported.  Returns
++        Currently only built-in string vlens (str) are supported.  Returns
+         None if the dtype does not represent an HDF5 vlen.
+ 
+     enum = dtype
+diff --git a/h5py/tests/test_attrs_data.py b/h5py/tests/test_attrs_data.py
+index 56481ca0..5083a1aa 100644
+--- a/h5py/tests/test_attrs_data.py
++++ b/h5py/tests/test_attrs_data.py
+@@ -262,7 +262,7 @@ class TestEmpty(BaseAttrs):
+         self.assertTrue(is_empty_dataspace(h5a.open(self.f.id, b'y')))
+ 
+     def test_modify(self):
+-        with self.assertRaises(IOError):
++        with self.assertRaises(OSError):
+             self.f.attrs.modify('x', 1)
+ 
+     def test_values(self):
+diff --git a/h5py/tests/test_big_endian_file.py b/h5py/tests/test_big_endian_file.py
+index 4d81de01..170b5bcc 100644
+--- a/h5py/tests/test_big_endian_file.py
++++ b/h5py/tests/test_big_endian_file.py
+@@ -24,14 +24,14 @@ def test_vlen_big_endian():
+         assert dset[4] == 1.2
+         assert dset.dtype == "<f8"
+ 
+-        # Same float values with big endianess
++        # Same float values with big endianness
+         assert f["DSBEfloat"][0] == 3.14
+         assert f["DSBEfloat"].dtype == ">f8"
+ 
+         assert f["DSLEint"][0] == 1
+         assert f["DSLEint"].dtype == "<u8"
+ 
+-        # Same int values with big endianess
++        # Same int values with big endianness
+         assert f["DSBEint"][0] == 1
+         assert f["DSBEint"].dtype == ">i8"
+ 
+diff --git a/h5py/tests/test_dataset.py b/h5py/tests/test_dataset.py
+index e104dd53..0ffa5c80 100644
+--- a/h5py/tests/test_dataset.py
++++ b/h5py/tests/test_dataset.py
+@@ -1939,9 +1939,9 @@ class TestCommutative(BaseDataset):
+         dset = self.f.create_dataset("test", shape, dtype=float,
+                                      data=np.random.rand(*shape))
+ 
+-        # grab a value from the elements, ie dset[0]
++        # grab a value from the elements, ie dset[0, 0]
+         # check that mask arrays are commutative wrt ==, !=
+-        val = np.float64(dset[0])
++        val = np.float64(dset[0, 0])
+ 
+         assert np.all((val == dset) == (dset == val))
+         assert np.all((val != dset) == (dset != val))
+diff --git a/h5py/tests/test_file.py b/h5py/tests/test_file.py
+index b47d408e..1aa38731 100644
+--- a/h5py/tests/test_file.py
++++ b/h5py/tests/test_file.py
+@@ -326,7 +326,7 @@ class TestDrivers(TestCase):
+         # could be an integer multiple of 512
+         #
+         # To allow HDF5 to do the heavy lifting for different platform,
+-        # We didn't provide any argumnets to the first call
++        # We didn't provide any arguments to the first call
+         # and obtained HDF5's default values there.
+ 
+         # Testing creation with a few different property lists
+@@ -639,9 +639,9 @@ class TestUnicode(TestCase):
+         Modes 'r' and 'r+' do not create files even when given unicode names
+         """
+         fname = self.mktemp(prefix=chr(0x201a))
+-        with self.assertRaises(IOError):
++        with self.assertRaises(OSError):
+             File(fname, 'r')
+-        with self.assertRaises(IOError):
++        with self.assertRaises(OSError):
+             File(fname, 'r+')
+ 
+ 
+diff --git a/h5py/tests/test_file_alignment.py b/h5py/tests/test_file_alignment.py
+index c280bb76..da13ee04 100644
+--- a/h5py/tests/test_file_alignment.py
++++ b/h5py/tests/test_file_alignment.py
+@@ -50,7 +50,7 @@ class TestFileAlignment(TestCase):
+         alignment_interval = 4096
+ 
+         for shape in [
+-            (1033,),  # A prime number above the thresold
++            (1033,),  # A prime number above the threshold
+             (1000,),  # Exactly equal to the threshold
+             (1001,),  # one above the threshold
+         ]:
+@@ -75,7 +75,7 @@ class TestFileAlignment(TestCase):
+         alignment_interval = 1024
+ 
+         for shape in [
+-            (881,),  # A prime number below the thresold
++            (881,),  # A prime number below the threshold
+             (999,),  # Exactly one below the threshold
+         ]:
+             fname = self.mktemp()
+diff --git a/h5py/tests/test_group.py b/h5py/tests/test_group.py
+index 328c352a..4af1fb1f 100644
+--- a/h5py/tests/test_group.py
++++ b/h5py/tests/test_group.py
+@@ -771,7 +771,7 @@ class TestExternalLinks(TestCase):
+         with self.assertRaises(KeyError):
+             self.f['ext']
+ 
+-    # I would prefer IOError but there's no way to fix this as the exception
++    # I would prefer OSError but there's no way to fix this as the exception
+     # class is determined by HDF5.
+     def test_exc_missingfile(self):
+         """ KeyError raised when attempting to open missing file """
+@@ -844,7 +844,7 @@ class TestExtLinkBugs(TestCase):
+                 try:
+                     if x:
+                         x.close()
+-                except IOError:
++                except OSError:
+                     pass
+             return w
+         orig_name = self.mktemp()
+diff --git a/h5py/tests/test_selections.py b/h5py/tests/test_selections.py
+index 0b1722d7..01f6dcb7 100644
+--- a/h5py/tests/test_selections.py
++++ b/h5py/tests/test_selections.py
+@@ -65,7 +65,7 @@ class TestTypeGeneration(BaseSelection):
+         self.assertEqual(out, np.dtype('i'))
+         self.assertEqual(format, np.dtype( [('a','i')] ))
+ 
+-        # Field does not apear in named typed
++        # Field does not appear in named typed
+         with self.assertRaises(ValueError):
+             out, format = sel2.read_dtypes(dt, ('j', 'k'))
+ 
+diff --git a/pylintrc b/pylintrc
+index 045df2f7..2401d3b0 100644
+--- a/pylintrc
++++ b/pylintrc
+@@ -44,7 +44,7 @@ confidence=
+ # can either give multiple identifiers separated by comma (,) or put this
+ # option multiple times (only on the command line, not in the configuration
+ # file where it should appear only once).You can also use "--disable=all" to
+-# disable everything first and then reenable specific checks. For example, if
++# disable everything first and then re-enable specific checks. For example, if
+ # you want to run only the similarities checker, you can use "--disable=all
+ # --enable=similarities". If you want to run only the classes checker, but have
+ # no Warning level messages displayed, use"--disable=all --enable=classes
+diff --git a/pyproject.toml b/pyproject.toml
+index ee573d2f..717200ef 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,6 @@
+ [build-system]
+ requires = [
+-    "Cython >=0.29.31,<1",
++    "Cython >=0.29.31,<4",
+     "oldest-supported-numpy",
+     "pkgconfig",
+     "setuptools >=61",
+diff --git a/setup_configure.py b/setup_configure.py
+index 0fba53ba..c3b86a64 100644
+--- a/setup_configure.py
++++ b/setup_configure.py
+@@ -165,7 +165,7 @@ class BuildConfig:
+         try:
+             if pkgconfig.exists(pc_name):
+                 pc = pkgconfig.parse(pc_name)
+-        except EnvironmentError:
++        except OSError:
+             if os.name != 'nt':
+                 print(
+                     "Building h5py requires pkg-config unless the HDF5 path "
+diff --git a/tox.ini b/tox.ini
+index 0efb88a6..86a176dd 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -65,7 +65,7 @@ skip_install=True
+ package_env = DUMMY NON-EXISTENT ENV NAME
+ changedir=docs
+ deps=
+-    sphinx
++    -r docs/requirements-rtd.txt
+ commands=
+     sphinx-build -W -b html -d {envtmpdir}/doctrees .  {envtmpdir}/html
+ 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb
index e772106..8a91585 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb
@@ -6,7 +6,8 @@
 
 SRC_URI[sha256sum] = "d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049"
 
-SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch"
+SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch \
+            file://0001-Fix-Cython-3-compatibility.patch"
 
 inherit pkgconfig pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb
deleted file mode 100644
index 7e058a7..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Library to process JSON-RPC requests"
-HOMEPAGE = "https://github.com/explodinglabs/jsonrpcserver"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=61b63ea9d36f6fb63ddaaaac8265304f"
-
-SRC_URI[sha256sum] = "a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
-    python3-apply-defaults \
-    python3-asyncio \
-    python3-core \
-    python3-json \
-    python3-jsonschema \
-    python3-logging \
-    python3-netclient \
-    python3-pkgutil \
-    python3-oslash \
-    python3-typing-extensions \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
similarity index 93%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
index a72ee14..9e791c6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
@@ -2,7 +2,7 @@
     that make use of innovative user interfaces, such as multi-touch apps."
 HOMEPAGE = "https://kivy.org/"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ed5cd0f2cfda42852c332e3b88c85fea"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6d3bc49400e35d5a2279d14c40dcfb09"
 
 inherit setuptools3 pkgconfig features_check
 PIP_INSTALL_PACKAGE = "Kivy"
@@ -15,7 +15,7 @@
            file://0001-add-support-for-glesv2.patch \
            "
 
-SRCREV = "344768bfefd2e8f5302cc9dfb8ca41991ce6f7e7"
+SRCREV = "9ef218027178115a66b417ae34b21f488bdd3617"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb
deleted file mode 100644
index 52e1cf6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python bindings for kmod/libkmod."
-HOMEPAGE = "https://github.com/agrover/python-kmod"
-SECTION = "devel/python"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6d62c2454850386a2ffe44f72db83d74"
-
-inherit pypi setuptools3
-
-RECIPE_NO_UPDATE_REASON = "Version 0.9.2 is broken when using latest build machinery for C extensions"
-SRC_URI[sha256sum] = "f3bf829059bf88eca22f4f549e17aa316cdaa14302bf2ba49ddeee60cea109ff"
-
-DEPENDS += " \
-    kmod \
-    python3-cython-native \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb
index f0c8684..746926d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb
@@ -11,7 +11,7 @@
 
 SRC_URI += "file://run-ptest"
 
-SRC_URI[sha256sum] = "e1431d84a9cfb23e6773e72078ce8e65cad6745816d4cbf9ae67da5ea419acda"
+SRC_URI[sha256sum] = "01fe674ef2889dbb9899d8a67361e0c4a2c833af5aeb37dd505727cf5d2a131e"
 
 inherit pkgconfig pypi python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb
index 471d939..15350e9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.0.bb
@@ -2,7 +2,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44"
 
-SRC_URI[sha256sum] = "7b46fa9b1a2d71fd5de9e4a3784ef339700a53a08c8040f08baf5f1194da0128"
+SRC_URI[sha256sum] = "4c30c54adf4ea4318b3c055ea3d8c7f6554a50aa2cd8aea4605a23caa0b0229e"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
deleted file mode 100644
index b926484..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Functors, Applicatives, And Monads in Python"
-HOMEPAGE = "https://github.com/dbrattli/oslash"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.md;md5=ed79d2637878dfe97de89e357b5c02dd"
-
-DEPENDS += "\
-    ${PYTHON_PN}-pip-native \
-    ${PYTHON_PN}-pytest-runner-native\
-"
-
-SRC_URI[sha256sum] = "868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3"
-
-PYPI_PACKAGE = "OSlash"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    python3-json \
-    python3-typing-extensions \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb
index 5ff6ffc..f8a593c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pdm_2.11.2.bb
@@ -4,7 +4,7 @@
 SECTION = "devel/python"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2"
 
-SRC_URI[sha256sum] = "b10bc4e5394856f1639ddc9bc754d9c26323ec5b828a135c6ed35f935b054b83"
+SRC_URI[sha256sum] = "5b31255c48d4aca596c73fb872a82848cbe8ff92f008712a9a264455247063ee"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb
similarity index 70%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb
index 01f180c..e58ee7f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic-core_2.14.6.bb
@@ -8,7 +8,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c"
 
-SRC_URI[sha256sum] = "6d30226dfc816dd0fdf120cae611dd2215117e4f9b124af8c60ab9093b6e8e71"
+SRC_URI[sha256sum] = "1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948"
 
 DEPENDS = "python3-maturin-native python3-typing-extensions"
 
@@ -34,6 +34,17 @@
     python3-unittest-automake-output \
 "
 
+do_install:append() {
+    for f in ${D}/${libdir}/${PYTHON_DIR}/site-packages/pydantic_core/_pydantic_core.*.so
+    do
+        fname=`basename $f`
+        lname=`echo $fname | sed 's/musl/gnu/'`
+        if [ "$fname" != "$lname" ]; then
+            mv $f ${D}/${libdir}/${PYTHON_DIR}/site-packages/pydantic_core/$lname
+        fi
+    done
+}
+
 do_install_ptest() {
     cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
     rm -rf ${D}${PTEST_PATH}/tests/benchmarks
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb
index 11f11b7..b7ee20e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f"
 
-SRC_URI[sha256sum] = "a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc"
+SRC_URI[sha256sum] = "1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest
index 7a5ceed..2a4e87e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint/run-ptest
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-pytest --benchmark-disable -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --benchmark-disable -vv --minimal-messages-config tests/test_functional.py | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb
index 09ab1f2..cc33edd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_3.0.3.bb
@@ -46,6 +46,9 @@
     cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
     install -Dm 0644 ${S}/tests/.pylint_primer_tests/.gitkeep ${D}${PTEST_PATH}/tests/.pylint_primer_tests/.gitkeep
     sed -i 's#/usr/bin/python$#/usr/bin/python3#g' ${D}${PTEST_PATH}/tests/data/ascript
+    # regression_distutil_import_error_73.py fails to run see 
+    # https://lists.openembedded.org/g/openembedded-devel/topic/103181847
+    rm ${D}${PTEST_PATH}/tests/functional/r/regression_02/regression_distutil_import_error_73.py
 }
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb
index 12bf624..dec8186 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.182.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.183.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
 
-SRC_URI[sha256sum] = "888e848494e04148c8ff5887f04154a2b40f3065c53d93f9cec65f7ca7171362"
+SRC_URI[sha256sum] = "00abe5592f07bb1cd41ca803f9b0b8b2b70474004a779be53cd215280fd625b3"
 
 inherit python_poetry_core pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb
index a00778c..85f69ac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77"
 
-SRC_URI[sha256sum] = "c16052382554c7b22d48782ab3438d5b10f8cf7a4bdcae7f0f67f097d95beecc"
+SRC_URI[sha256sum] = "af313ce900a62fbe2b1aed18e37ad757f1ef9940c6b6a88e2954de38d6b1fb9f"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
index 1ff3e75..3a68011 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
@@ -10,5 +10,6 @@
 inherit pypi setuptools3
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+RDEPENDS:${PN} += "python3-coverage"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb
index 91ab762..3501155 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.24.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.25.bb
@@ -2,9 +2,9 @@
 application developers the full power and flexibility of SQL"
 HOMEPAGE = "http://www.sqlalchemy.org/"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b707d50badb798e1d897f2c8f649382d"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c78b979ae6c20775a28a287d32092cbb"
 
-SRC_URI[sha256sum] = "6db97656fd3fe3f7e5b077f12fa6adb5feb6e0b567a3e99f47ecf5f7ea0a09e3"
+SRC_URI[sha256sum] = "a2c69a7664fb2d54b8682dd774c3b54f67f84fa123cf84dda2a5f40dcaa04e08"
 
 PYPI_PACKAGE = "SQLAlchemy"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
index 19ea011..0089d6c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.14.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
 
-SRC_URI[sha256sum] = "fcdaa8ac49c04dfa0ed3ee3384ef6dfdb5d6f3741502be247279407679296772"
+SRC_URI[sha256sum] = "8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"
 
 inherit pypi python_hatchling
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb
deleted file mode 100644
index d8ce4ab..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.3.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks."
-HOMEPAGE = "https://github.com/marshmallow-code/webargs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c3ff8567ef1f2a8cf223f30ac5a6f094"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "cab207941b0686c4d086c823632ddcd4343151644341a32fcf50b8eaa71e31c7"
-
-RDEPENDS:${PN} += "\
-    python3-marshmallow \
-    python3-packaging \
-    "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb
new file mode 100644
index 0000000..ea83080
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks."
+HOMEPAGE = "https://github.com/marshmallow-code/webargs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dfbd4ae0074716275fc229c775723e8f"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "ea99368214a4ce613924be99d71db58c269631e95eff4fa09b7354e52dc006a5"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-marshmallow \
+    ${PYTHON_PN}-packaging \
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-json \
+    ${PYTHON_PN}-asyncio \
+    ${PYTHON_PN}-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb
index b57c311..1459538 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb
@@ -5,7 +5,7 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=17ed54aa95f4a6cd0d7a4747d14b64d0"
 
-SRC_URI[sha256sum] = "5e51df8af9a60f6beead75efa10975e97768825a82146a65c7cbf5b915990620"
+SRC_URI[sha256sum] = "f8d76180d7239c94c6322f7990ae1216dae3659b7aa1cee94b6318bdffb474b9"
 
 UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/WTForms"
 UPSTREAM_CHECK_REGEX = "/WTForms/(?P<pver>(\d+[\.\-_]*)+)"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
deleted file mode 100644
index 7259c3f..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "unittest-based test runner with Ant/JUnit like XML reporting"
-HOMEPAGE = "https://github.com/pycontribs/xmlrunner"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=fa964f202b6ae067ed5828fe43c77c1a"
-
-SRC_URI[md5sum] = "7b0b152ed2d278516aedbc0cac22dfb3"
-SRC_URI[sha256sum] = "5a6113d049eca7646111ee657266966e5bbfb0b5ceb2e83ee0772e16d7110f39"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-unittest"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb
index 932cf22..920ff4d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python3-gspread/python3-gspread_5.12.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9488e21983675fa56dc05af558b83e2f"
 
-SRC_URI[sha256sum] = "298ebab76e6ed6a998eabc81545ec58f5610f44e2ddb4858b539a0634093f8ce"
+SRC_URI[sha256sum] = "3fcef90183f15d3c9233b4caa021a83682f2b2ee678340c42d7ca7d8be98c6d1"
 
 S = "${WORKDIR}/gspread-${PV}"
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb b/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb
rename to meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb
index fde1029..f0a6abd 100644
--- a/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3f6fa041dfcc7ff7747cfceaa34a3180"
 
-SRC_URI[sha256sum] = "248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"
+SRC_URI[sha256sum] = "60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235"
 
 inherit pypi setuptools3
 
