subtree updates

meta-openembedded: 4dbbef7a39..9953ca1ac0:
  Andreas Cord-Landwehr (1):
        freerdp: provide cmake integration

  BELOUARGA Mohamed (1):
        Monocypher: Correct source URI and license

  Clément Péron (2):
        abseil-cpp: rename recipe to follow the version
        protobuf: upgrade 4.23.4 -> 4.25.2

  Fabio Estevam (1):
        v4l-utils: Remove unneeded musl patch

  Gassner, Tobias.ext (1):
        softhsm_2.6.1.bb fixing p11-kit module path, adding softhsm2.module to FILES

  Gianfranco Costamagna (1):
        vbxguestdrivers: upgrade 7.0.12 -> 7.0.14

  Khem Raj (4):
        Revert "rng-tools: move from oe-core to meta-oe"
        python3-pillow: Correct branch parameter in SRC_URI
        python3-multidict: Make it work with python 3.12
        python3-multidict: Fix running ptests

  Markus Volk (6):
        eog: update 45.1 -> 45.2
        file-roller: update 43.0 -> 43.1
        gvfs: update 1.52.1 -> 1.52.2
        gjs: update 1.78.1 -> 1.78.2
        mozjs: update 115.2.0 -> 115.6.0
        pipewire: update 1.0.0 -> 1.0.1

  Michael Haener (1):
        nginx: add http sub module feature

  Pablo Saavedra (1):
        libbacktrace: fix sdk installation

  Peter Marko (2):
        protobuf-c: change branch to master
        srecord: fix malformed patch upstream status

  Ross Burton (1):
        mozjs-115: fix the build on ARMv5

  Yi Zhao (1):
        samba: upgrade 4.19.3 -> 4.19.4

  Yoann Congal (3):
        packagegroup-meta-oe: remove mongodb
        python3-coverage: add native and nativesdk BBCLASSEXTEND
        python3-pytest-cov: Add missing python3-pytest RDEPENDS

  alperak (8):
        fmt: upgrade 10.1.1 -> 10.2.1
        gerbera: upgrade 1.12.1 -> 2.0.0
        spdlog: upgrade 1.12 -> 1.13
        libebml: upgrade 1.4.4 -> 1.4.5
        lcms: upgrade 2.15 -> 2.16
        libkcapi: upgrade 1.4.0 -> 1.5.0
        icewm: upgrade 3.4.4 -> 3.4.5
        libreport: upgrade 2.17.8 -> 2.17.11

meta-raspberrypi: b859bc3eca..9c901bf170:
  Damiano Ferrari (2):
        rpi-config: Add CAN0_INTERRUPT_PIN and CAN1_INTERRUPT_PIN variable
        docs: add info on how to set different CAN interrupt pins

  Florin Sarbu (1):
        Add Raspberry Pi 5

  Leon Anavi (7):
        rpi-base.inc: Add vc4-kms-v3d-pi5.dtbo
        u-boot_%.bbappend: Skip for Raspberry Pi 5
        rpi-config: Reduce config.txt size
        linux-raspberrypi.inc: bcm2712_defconfig for rpi5
        conf/machine/raspberrypi5.conf: kernel_2712.img
        conf/machine/raspberrypi5.conf: ttyAMA10
        conf/machine/raspberrypi5.conf: Use "Image"

poky: 7af374c90c..348d9aba33:
  Alejandro Hernandez Samaniego (1):
        newlib: Upgrade 4.3.0 -> 4.4.0

  Alexander Kanavin (1):
        shadow: replace static linking with dynamic libraries in a custom location and bundled with shadow

  Anuj Mittal (4):
        bluez5: upgrade 5.71 -> 5.72
        cronie: upgrade 1.7.0 -> 1.7.1
        libpsl: upgrade 0.21.2 -> 0.21.5
        grub2: upgrade 2.06 -> 2.12

  Bruce Ashfield (12):
        linux-yocto/6.6: update to v6.6.11
        linux-yocto/6.6: update CVE exclusions
        linux-yocto/6.1: update to v6.1.72
        linux-yocto/6.1: update CVE exclusions
        linux-yocto/6.6: cfg: arm: introduce page size fragments
        linux-yocto/6.6: security/cfg: add configs to harden protection
        linux-yocto/6.1: security/cfg: add configs to harden protection
        linux-yocto/6.6: update to v6.6.12
        linux-yocto/6.6: update CVE exclusions
        linux-yocto/6.1: update to v6.1.73
        linux-yocto/6.1: update CVE exclusions
        linux-yocto/6.1: drop recipes

  Chen Qi (5):
        oeqa/selftest: add test case to cover 'devtool modify -n' for a git recipe
        systemd: refresh musl patches for v255.1
        systemd: upgrade to 255.1
        systemd-boot: upgrade to 255.1
        rootfs-postcommands.bbclass: ignore comment mismatch in systemd_user_check

  Etienne Cordonnier (1):
        cmake.bbclass: add Darwin support

  Fabio Estevam (2):
        weston: Update to 13.0.0
        pulseaudio: Update to 17.0

  Jiang Kai (4):
        debianutils: upgrade 5.15 -> 5.16
        enchant2: upgrade 2.6.4 -> 2.6.5
        libsecret: upgrade 0.21.1 -> 0.21.2
        libxrandr: upgrade 1.5.3 -> 1.5.4

  Joe Slater (1):
        eudev: modify predictable network if name search

  Jonathan GUILLOT (1):
        udev-extraconf: fix unmount directories containing octal-escaped chars

  Julien Stephan (3):
        externalsrc: fix task dependency for do_populate_lic
        devtool: modify: add support for multiple source in SRC_URI
        oeqa/selftest/devtool: add test for recipes with multiple sources in SRC_URI

  Kai Kang (2):
        nativesdk-cairo: fix build error
        p11-kit: fix parallel build failures

  Kevin Hao (2):
        yocto-bsp: Bump the default kernel to v6.6
        yocto-bsp: Drop the support for v6.1 kernel

  Khem Raj (4):
        libgudev: Pass export-dynamic to linker directly.
        coreutils: Fix build with clang
        glibc: Do not enable CET on 32bit x86
        rust: Re-write RPATHs in the copies llvm-config

  Pavel Zhukov (1):
        mdadm: Disable ptests

  Peter Marko (1):
        zlib: ignore CVE-2023-6992

  Richard Purdie (7):
        qemu: add PACKAGECONFIG for sndio
        poky-altcfg: Update PREFERRED_VERSION for kerenl
        xev: Drop diet libx11 related patch
        libxcomposite: Drop obsolete patch
        python3-subunit: Add missing module dependency
        qemu: Upgrade 8.1.2 -> 8.2.0
        qemu: Fix segfaults in webkitgtk:do_compile on debian11

  Robert Yang (1):
        autoconf: 2.72d -> 2.72e

  Ross Burton (7):
        cve_check: handle CVE_STATUS being set to the empty string
        cve_check: cleanup logging
        xserver-xorg: add PACKAGECONFIG for xvfb
        xserver-xorg: disable xvfb by default
        libssh2: backport fix for CVE-2023-48795
        bitbake: bitbake: Version bump for inherit_defer addition
        sanity: require bitbake 2.7.2 for the inherit_defer statement

  Ryan Eatmon (1):
        python3-yamllint: Add recipe

  Simone Weiß (2):
        tune-core2: Update qemu cpu to supported model
        gcc: Update status of CVE-2023-4039

  Thomas Perrot (1):
        opensbi: bump to 1.4

  Timotheus Giuliani (1):
        linux-firmware: fix mediatek MT76x empty license package

  Vincent Davis Jr (1):
        shaderc: update commit hash to v2023.7

  Wang Mingyu (2):
        python3-subunit: upgrade 1.4.2 -> 1.4.4
        libtest-warnings-perl: upgrade 0.031 -> 0.032

  William Hauser (1):
        native.bbclass: base_libdir unique from libdir

  William Lyu (1):
        perl: Fix perl-module-* being ignored via COMPLEMENTARY_GLOB

  Yash Shinde (7):
        rust: Fetch cargo from rust-snapshot dir.
        rust: detect user-specified custom targets in compiletest
        rust: Enable RUSTC_BOOTSTRAP to use nightly features during rust oe-selftest.
        rust: Fix assertion failure error on oe-selftest
        rust: Add new tests in the exclude list for rust oe-selftest
        rust: Remove the test cases whose parent dir is also present in the exclude list
        rust: Enable rust oe-selftest.

  Yogita Urade (1):
        tiff: fix CVE-2023-6228

meta-arm: 1cad3c3813..6bb1fc8d8c:
  Harsimran Singh Tungal (1):
        n1sdp:arm-bsp/optee: Update optee to v4.0

  Ross Burton (1):
        arm-bsp/linux-yocto: add 6.1 recipe

Change-Id: Ib4cc4e128e4d41f3329cf83a0d5e8539ef07ebe3
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc b/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
index 2c75d51..44507b3 100644
--- a/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
+++ b/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
@@ -22,6 +22,7 @@
     python3-intervals \
     python3-ipy \
     python3-iso3166 \
+    python3-multidict \
     python3-parse-type \
     python3-platformdirs \
     python3-polyline \
@@ -71,7 +72,6 @@
     python3-jsmin \
     python3-license-expression \
     python3-msgpack \
-    python3-multidict \
     python3-ordered-set \
     python3-parse \
     python3-pillow \
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"