diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb
index cb1041c..3092269 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.4.0.bb
@@ -18,3 +18,5 @@
     python3-tomllib \
     python3-xml \
 "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch
new file mode 100644
index 0000000..c3cee46
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch
@@ -0,0 +1,324 @@
+From 44eaa60cc6c86951ce36811e80c3411d1b1e4c39 Mon Sep 17 00:00:00 2001
+From: Charles Duffy <charles@dyfis.net>
+Date: Fri, 19 Jan 2024 17:47:59 -0600
+Subject: [PATCH] Extend aio-libs/multidict#909 to 3.12 as well to address aio-libs/multidict#926
+
+Upstream-Status: Submitted [https://github.com/aio-libs/multidict/pull/929]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ multidict/_multidict.c | 68 +++++++++++++++++++++---------------------
+ 1 file changed, 34 insertions(+), 34 deletions(-)
+
+diff --git a/multidict/_multidict.c b/multidict/_multidict.c
+index 228d4df..6086495 100644
+--- a/multidict/_multidict.c
++++ b/multidict/_multidict.c
+@@ -9,7 +9,7 @@
+ #include "_multilib/iter.h"
+ #include "_multilib/views.h"
+ 
+-#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 13
++#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 12
+ #ifndef _PyArg_UnpackKeywords
+ #define FASTCALL_OLD
+ #endif
+@@ -444,7 +444,7 @@ fail:
+ static inline PyObject *
+ multidict_getall(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -458,7 +458,7 @@ multidict_getall(
+              *key      = NULL,
+              *_default = NULL;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *getall_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getall",
+@@ -509,7 +509,7 @@ skip_optional_pos:
+ static inline PyObject *
+ multidict_getone(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -522,7 +522,7 @@ multidict_getone(
+     PyObject *key      = NULL,
+              *_default = NULL;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *getone_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getone",
+@@ -563,7 +563,7 @@ skip_optional_pos:
+ static inline PyObject *
+ multidict_get(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -577,7 +577,7 @@ multidict_get(
+              *_default = Py_None,
+              *ret;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *getone_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:getone",
+@@ -833,7 +833,7 @@ multidict_tp_init(MultiDictObject *self, PyObject *args, PyObject *kwds)
+ static inline PyObject *
+ multidict_add(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -846,7 +846,7 @@ multidict_add(
+     PyObject *key = NULL,
+              *val = NULL;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *kwlist[] = {"key", "value", NULL};
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO:add",
+                                      kwlist, &key, &val))
+@@ -913,7 +913,7 @@ multidict_clear(MultiDictObject *self)
+ static inline PyObject *
+ multidict_setdefault(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -926,7 +926,7 @@ multidict_setdefault(
+     PyObject *key      = NULL,
+              *_default = NULL;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *setdefault_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:setdefault",
+@@ -967,7 +967,7 @@ skip_optional_pos:
+ static inline PyObject *
+ multidict_popone(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -981,7 +981,7 @@ multidict_popone(
+              *_default = NULL,
+              *ret_val  = NULL;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *popone_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popone",
+@@ -1046,7 +1046,7 @@ skip_optional_pos:
+ static inline PyObject *
+ multidict_pop(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -1060,7 +1060,7 @@ multidict_pop(
+              *_default = NULL,
+              *ret_val  = NULL;
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *pop_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popone",
+@@ -1113,7 +1113,7 @@ skip_optional_pos:
+ static inline PyObject *
+ multidict_popall(
+     MultiDictObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -1128,7 +1128,7 @@ multidict_popall(
+              *ret_val  = NULL;
+ 
+ 
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     static char *popall_keywords[] = {"key", "default", NULL};
+ 
+     if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:popall",
+@@ -1270,7 +1270,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "getall",
+         (PyCFunction)multidict_getall,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1281,7 +1281,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "getone",
+         (PyCFunction)multidict_getone,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1292,7 +1292,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "get",
+         (PyCFunction)multidict_get,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1321,7 +1321,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "add",
+         (PyCFunction)multidict_add,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1350,7 +1350,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "setdefault",
+         (PyCFunction)multidict_setdefault,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1361,7 +1361,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "popone",
+         (PyCFunction)multidict_popone,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1372,7 +1372,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "pop",
+         (PyCFunction)multidict_pop,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1383,7 +1383,7 @@ static PyMethodDef multidict_methods[] = {
+     {
+         "popall",
+         (PyCFunction)multidict_popall,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1559,7 +1559,7 @@ multidict_proxy_tp_init(MultiDictProxyObject *self, PyObject *args,
+ static inline PyObject *
+ multidict_proxy_getall(
+     MultiDictProxyObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -1572,7 +1572,7 @@ multidict_proxy_getall(
+     return multidict_getall(
+         self->md,
+         args,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         kwds
+ #else
+         nargs,
+@@ -1584,7 +1584,7 @@ multidict_proxy_getall(
+ static inline PyObject *
+ multidict_proxy_getone(
+     MultiDictProxyObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -1596,7 +1596,7 @@ multidict_proxy_getone(
+ {
+     return multidict_getone(
+         self->md, args,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         kwds
+ #else
+         nargs, kwnames
+@@ -1607,7 +1607,7 @@ multidict_proxy_getone(
+ static inline PyObject *
+ multidict_proxy_get(
+     MultiDictProxyObject *self,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+     PyObject *args,
+     PyObject *kwds
+ #else
+@@ -1620,7 +1620,7 @@ multidict_proxy_get(
+     return multidict_get(
+         self->md,
+         args,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         kwds
+ #else
+         nargs,
+@@ -1734,7 +1734,7 @@ static PyMethodDef multidict_proxy_methods[] = {
+     {
+         "getall",
+         (PyCFunction)multidict_proxy_getall,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1745,7 +1745,7 @@ static PyMethodDef multidict_proxy_methods[] = {
+     {
+         "getone",
+         (PyCFunction)multidict_proxy_getone,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+@@ -1756,7 +1756,7 @@ static PyMethodDef multidict_proxy_methods[] = {
+     {
+         "get",
+         (PyCFunction)multidict_proxy_get,
+-#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 13
++#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 12
+         METH_VARARGS
+ #else
+         METH_FASTCALL
+-- 
+2.43.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/run-ptest
index 5cec711..e4f3b62 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict/run-ptest
@@ -1,3 +1,2 @@
 #!/bin/sh
-
-pytest
+pytest -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}}'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
index 4869e84..b057e05 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
@@ -2,18 +2,24 @@
 HOMEPAGE = "https://github.com/aio-libs/multidict/"
 
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=84c63e2bcd84e619d249af5181e2147f"
-
-SRC_URI[sha256sum] = "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b4fef6e4b0828c2401fb983363985b39"
 
 inherit pypi setuptools3 ptest
 
+PV .= "+git"
+
+SRCREV = "82b559cdd0b41548f3dadc5561a9aaaa7f93ae14"
+PYPI_SRC_URI = "git://github.com/aio-libs/multidict;branch=master;protocol=https"
+S = "${WORKDIR}/git"
+
 SRC_URI += " \
+  file://0001-Extend-aio-libs-multidict-909-to-3.12-as-well-to-add.patch \
 	file://run-ptest \
 "
 
 RDEPENDS:${PN}-ptest += " \
 	${PYTHON_PN}-pytest \
+	${PYTHON_PN}-pytest-cov \
 "
 
 do_install_ptest() {
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
index f895b1d..1cc833e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.1.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b22dc6b663b9175820e5e03337c7596b"
 
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=10.0.x;protocol=https \
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=main;protocol=https \
            file://0001-support-cross-compiling.patch \
            file://0001-explicitly-set-compile-options.patch \
            file://run-ptest \
@@ -60,5 +60,3 @@
 }
 
 BBCLASSEXTEND = "native"
-
-SRCREV = "e34d346f10c0b1c814661e662a3e0c1ef084cf1c"
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 3a68011..66375de 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,6 +10,6 @@
 inherit pypi setuptools3
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-RDEPENDS:${PN} += "python3-coverage"
+RDEPENDS:${PN} += "python3-coverage python3-pytest"
 
 BBCLASSEXTEND = "native nativesdk"
