subtree updates

meta-raspberrypi: 95a9103f91..92a9b7a012:
  Michał Kluska (1):
        rpi-base: Added missing HiFiBerry

meta-openembedded: 9f0e513211..a0237019f5:
  Alexander Stein (1):
        libkcapi: Update HOMEPAGE url

  Changqing Li (4):
        syslog-ng: upgrade 4.0.1 -> 4.6.0
        multipath-tools: upgrade 0.9.3 -> 0.9.8
        nodejs: upgrade 20.11.0 -> 20.11.1
        postgresql: upgrade 15.5 -> 16.2

  Joe Slater (1):
        googletest: allow for shared libraries

  Khem Raj (17):
        python3-fastjsonschema: Add missing ptest deps
        python3-gpiod: Tests rely on configfs support in kernel
        python3-pyzmq: Add missing dep on python3-unixadmin for ptests
        python3-betamax: Upgrade to 0.9.0
        libgpiod: Tests rely on configfs support in kernel
        keyutils: Add missing rdep for ptests
        fuse3: Make kmod as a recommendation instead of rdep for ptests
        drbd-utils: Disable warnings as errors
        influxdb: Define GOPROXY
        crucible: Define GOPROXY
        syzkaller: Fix build with go 1.21
        e2tools: Delete unneeded files from ptest package
        ptest-packagelists-meta-oe: Move libgpiod out of PTESTS_PROBLEMS_META_OE
        ptest-packagelists-meta-python: Move py3-libgpiod out of PTESTS_PROBLEMS_META_PYTHON
        pgpool2: Upgrade to 4.5.1
        pgpool2: Fix build with postgresql 16+
        emacs: Add packageconfig for selinux support

  Krupal Ka Patel (1):
        python3-aiohappyeyeballs: Correct the typo of BBCLASSEXTEND

  Markus Volk (3):
        folks: update 0.15.6 -> 0.15.7
        mozjs-115: update 115.6.0 -> 115.8.0
        polkit: update 123 -> 124

  Martin Jansa (3):
        ristretto: use python3native and depend on glib-2.0-native, python3-packaging-native
        xfce4-notifyd: use python3native and depend on python3-packaging-native
        fuse3: use 4 spaces for indentation

  Mingli Yu (1):
        nlohmann-json: Upgrade to 3.11.3

  Randolph Sapp (1):
        glmark2: add upstream patch to not care about stencil config

  Ulrich Ölmann (1):
        signing.bbclass: fix typos

  Xiangyu Chen (3):
        iperf3: upgrade 3.15 -> 3.16
        grpc: upgrade 1.60.0 -> 1.60.1
        drbd-utils: upgrade 9.22.0 -> 9.27.0

  Yi Zhao (7):
        openipmi: fix do_configure error when using dash
        cryptsetup: upgrade 2.6.1 -> 2.7.0
        layer.conf: Add nativesdk-libdevmapper PREFERRED_RPROVIDER
        krb5: upgrade 1.20.2 -> 1.21.2
        postfix: upgrade 3.7.3 -> 3.8.5
        openldap: upgrade 2.5.16 -> 2.6.7
        openvpn: upgrade 2.6.7 -> 2.6.9

  Yoann Congal (3):
        drbd-utils: Drop a duplicated line in DESCRIPTION
        drbd-utils: Fix a udev rule reproducibility
        toybox-inittab: Fix serial getty reproducibility

  alperak (9):
        python3-google-auth: upgrade 2.28.0 -> 2.28.1
        python3-netaddr: upgrade 0.10.1 -> 1.2.1 and add ptest
        ptest-packagelists-meta-python: Move python3-xlrd from PTESTS_PROBLEMS_META_PYTHON to PTESTS_FAST_META_PYTHON
        python3-wrapt: add ptest
        python3-freezegun: add recipe and add ptest
        python3-dateutil: upgrade 2.8.2 -> 2.9.0
        python3-types-python-dateutil: add recipe
        python3-arrow: add ptest, update backend and runtime dependencies
        python3-marshmallow: upgrade 3.20.2 -> 3.21.1 and add ptest

poky: 25d60ac6f6..7165c23237:
  Alexander Kanavin (48):
        xz: correct upstream version check
        python3-sphinxcontrib-jquery: add a recipe and make python3-sphinx-rtd-theme depend on it
        acl: upgrade 2.3.1 -> 2.3.2
        appstream: upgrade 1.0.0 -> 1.0.2
        boost: upgrade 1.83.0 -> 1.84.0
        btrfs-tools: upgrade 6.5.3 -> 6.7.1
        dnf: upgrade 4.18.2 -> 4.19.0
        diffoscope: upgrade 253 -> 259
        ell: upgrade 0.62 -> 0.63
        elfutils: upgrade 0.189 -> 0.191
        epiphany: upgrade 45.1 -> 45.3
        gettext: upgrade 0.22.4 -> 0.22.5
        glib-2.0: upgrade 2.78.3 -> 2.78.4
        glib-networking: upgrade 2.78.0 -> 2.78.1
        kmscube: upgrade to latest revision
        libbsd: upgrade 0.11.8 -> 0.12.1
        libdnf: update 0.72.0 -> 0.73.0
        libpciaccess: upgrade 0.17 -> 0.18
        libpcre2: upgrade 10.42 -> 10.43
        librepo: update 1.16.0 -> 1.17.0
        libusb1: upgrade 1.0.26 -> 1.0.27
        libxml2: upgrade 2.11.5 -> 2.12.5
        linux-firmware: upgrade 20231211 -> 20240220
        librsvg: upgrade 2.56.3 -> 2.57.1
        lsof: upgrade 4.98.0 -> 4.99.3
        man-pages: upgrade 6.05.01 -> 6.06
        mc: upgrade 4.8.30 -> 4.8.31
        mesa: upgrade 24.0.1 -> 24.0.2
        minicom: upgrade 2.8 -> 2.9
        nghttp2: upgrade 1.59.0 -> 1.60.0
        orc: upgrade 0.4.37 -> 0.4.38
        puzzles: upgrade to latest revision
        piglit: upgrade to latest revision
        python3-build: upgrade 1.0.3 -> 1.1.1
        python3-dtschema: upgrade 2023.7 -> 2024.2
        python3-jsonschema: upgrade 4.17.3 -> 4.21.1 and add new dependencies
        python3-ruamel-yaml: upgrade 0.17.35 -> 0.18.6
        python3-setuptools: upgrade 69.0.3 -> 69.1.1
        python3-wcwidth: upgrade 0.2.12 -> 0.2.13
        repo: upgrade 2.41 -> 2.42
        shaderc: update 2023.7 -> 2023.8
        systemd: upgrade 255.1 -> 255.4
        ttyrun: upgrade 2.30.0 -> 2.31.0
        taglib: upgrade 1.13.1 -> 2.0 and add utfcpp recipe to support that
        update-rc.d: upgrade to latest revision
        vala: upgrade 0.56.13 -> 0.56.15
        vulkan: upgrade 1.3.268.0 -> 1.3.275.0
        webkitgtk: upgrade 2.42.2 -> 2.42.5

  Bruce Ashfield (3):
        linux-yocto/cfg/6.6: drop CONFIG_DEBUG_CREDENTIALS
        linux-yocto/6.6: update to v6.6.20
        linux-yocto/6.6: update CVE exclusions

  Changqing Li (3):
        rxvt-unicode: Fix installing of terminfo
        systemd: fix dead link /var/log/README
        go: filter out build specific path from the linker flags

  Chen Qi (2):
        systemd: use RDEPENDS for systemd-vconsole-setup
        systemd: remove systemd-bus-proxy settings

  Christian Taedcke (1):
        image_types.bbclass: fix vfat image names

  Eilís 'pidge' Ní Fhlannagáin (6):
        qemurunner.py: Fix error on calls to run_monitor
        screenshot-tests: Add initial screenshot test png files for core-image-sato
        oeqa/runtime/login: Proof of concept for screenshot testcases
        oeqa/runtime/login: Exclude qemuriscv64
        oeqa/runtime/login: Add screenshot sample logic/timeout/dbus-wait
        sstatetests.py: Add testing for correct sstate permissions

  Fabio Estevam (1):
        u-boot: Move UBOOT_INITIAL_ENV back to u-boot.inc

  Geoff Parker (1):
        ref-manual: variables: adding multiple groups in GROUPADD_PARAM

  Johan Bezem (1):
        ref-manual: variables: correct sdk installation default path

  Jose Quaresma (7):
        go: rework patch to avoid identation
        go: bump 1.21.0
        goarch: disable dynamic linking globally
        oeqa/gotoolchain: set GOPROXY
        go: upgrade 1.21.0 -> 1.21.5
        go: upgrade 1.21.5 -> 1.21.7
        go: bump 1.22.0

  Khem Raj (4):
        mesa,mesa-gl: Fix build when dri3 is not enabled
        linux-yocto: Enable gpio-sim with ptests
        rust: Fix build failure re-appeared on riscv32
        gdb: Upgrade 14.1 -> 14.2

  Luca Ceresoli (2):
        ref-manual: tasks: do_cleanall: recommend using '-f' instead
        ref-manual: tasks: do_cleansstate: recommend using '-f' instead for a shared sstate

  Markus Volk (1):
        gtk+3: update 3.24.38 -> 3.24.41

  Michael Opdenacker (4):
        core-image-full-cmdline: add package-management
        bitbake: utils: remove BB_ENV_PASSTHROUGH from preserved_envvars()
        dev-manual: packages: fix capitalization
        manuals: document VIRTUAL-RUNTIME variables

  Randy MacLeod (1):
        valgrind: skip intermittently failing ptests

  Richard Purdie (9):
        no-gplv3: Tweak for packagemangement in core-image-full-cmdline
        qemu: Replace workaround with proper usermode fix for shmat
        bitbake: fetch/git: Avoid clean upon failure
        go: Further tweak indentation in patch
        go: Drop linkmode with nativesdk/cross-canadian
        libpng: Update SRC_URI to avoid redirects
        oeqa/runtime/login: Various code improvements and fixes
        oeqa/runtime/login: Mask out the mouse panel icon for now
        oeqa/runtime/login: Fix dbus-wait timeout and loop conditional

  Robert P. J. Day (1):
        python3-cryptography_42.0.5.bb: delete redundant ptest packaging

  Ross Burton (2):
        Add genericarm64 MACHINE
        rxvt: add rxvt to desktop entry name

  Simone Weiß (4):
        coreutils: backport patch to fix heap overflow in split
        qemu: backport patch for ui/clipboard issue
        ref-manual: classes: add cve status check for oe.qa
        contributor-guide: add notes for tests

  Tim Orling (1):
        python3-hypothesis: upgrade 6.98.12 -> 6.98.15

  Trevor Woerner (2):
        bmaptool: now part of Yocto Project
        dev-manual: bmaptool: rename

  Yi Zhao (1):
        expat: upgrdae 2.6.0 -> 2.6.1

  Yoann Congal (1):
        bitbake: prserv/serv: Fix a PID file removal race on prserv stop

Change-Id: Ie94e4df79e3d8f68aea3377f816d7106987a05f8
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb
index 321851d..2b0797a 100644
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb
+++ b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb
@@ -7,9 +7,11 @@
 HOMEPAGE = "https://github.com/libfuse/libfuse"
 SECTION = "libs"
 LICENSE = "GPL-2.0-only & LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \
-                    file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66"
+LIC_FILES_CHKSUM = " \
+    file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \
+    file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66 \
+"
 
 SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.gz \
 "
@@ -25,40 +27,40 @@
 inherit meson pkgconfig ptest
 
 SRC_URI += " \
-        file://run-ptest \
+    file://run-ptest \
 "
 
 RDEPENDS:${PN}-ptest += " \
     python3-pytest \
     python3-looseversion \
-    kernel-module-cuse \
     bash \
 "
+RRECOMMENDS:${PN}-ptest += " kernel-module-cuse"
 
 do_install_ptest() {
-        install -d ${D}${PTEST_PATH}/test
-        install -d ${D}${PTEST_PATH}/example
-        install -d ${D}${PTEST_PATH}/util
-        cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
+    install -d ${D}${PTEST_PATH}/test
+    install -d ${D}${PTEST_PATH}/example
+    install -d ${D}${PTEST_PATH}/util
+    cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
 
-        example_excutables=`find ${B}/example -type f -executable`
-        util_excutables=`find ${B}/util -type f -executable`
-        test_excutables=`find ${B}/test -type f -executable`
+    example_excutables=`find ${B}/example -type f -executable`
+    util_excutables=`find ${B}/util -type f -executable`
+    test_excutables=`find ${B}/test -type f -executable`
 
-        for e in $example_excutables
-        do
-            cp -rf $e  ${D}${PTEST_PATH}/example/
-         done
+    for e in $example_excutables
+    do
+        cp -rf $e  ${D}${PTEST_PATH}/example/
+    done
 
-        for e in $util_excutables
-        do
-            cp -rf $e  ${D}${PTEST_PATH}/util/
-        done
+    for e in $util_excutables
+    do
+        cp -rf $e  ${D}${PTEST_PATH}/util/
+    done
 
-        for e in $test_excutables
-        do
-            cp -rf $e  ${D}${PTEST_PATH}/test
-        done
+    for e in $test_excutables
+    do
+        cp -rf $e  ${D}${PTEST_PATH}/test
+    done
 }
 
 DEPENDS = "udev"
diff --git a/meta-openembedded/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb b/meta-openembedded/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb
index a80b6f5..1fa5e01 100644
--- a/meta-openembedded/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb
+++ b/meta-openembedded/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb
@@ -65,6 +65,9 @@
     cp -r ../build "${D}${PTEST_PATH}"
     cp -r "${S}/build-aux" "${D}${PTEST_PATH}/build"
     cp -r "${S}" "${D}${PTEST_PATH}"
+    rm -rf ${D}${PTEST_PATH}/build/config.log ${D}${PTEST_PATH}/build/autom4te.cache \
+        ${D}${PTEST_PATH}/git/.git ${D}${PTEST_PATH}/git/autom4te.cache
+    sed -i -e 's;${RECIPE_SYSROOT};;g' ${D}${PTEST_PATH}/build/config.status
 }
 
 RDEPENDS:${PN}-ptest += "bash coreutils e2fsprogs e2tools gawk make perl"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb b/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.7.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb
rename to meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.7.bb
index 5b9717f..a229071 100644
--- a/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/folks/folks_0.15.7.bb
@@ -25,4 +25,4 @@
 
 inherit pkgconfig gnomebase gettext gobject-introspection vala features_check
 
-SRC_URI[archive.sha256sum] = "c866630c553f29ce9be1c7a60267cb4080a6bccf4b8d551dc4c7e6234d840248"
+SRC_URI[archive.sha256sum] = "120f219ef63212caa95ae7f6aeb64e29928b0b1a8b9452054304a00d0f347871"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch b/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch
deleted file mode 100644
index ad17045..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From e5ddcf9575437bacd64c2b68501b413014186a6a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2022 10:15:01 -0700
-Subject: [PATCH] makedefs: Account for linux 6.x version
-
-Major version has bumped to 6 and script needs to know that
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- makedefs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/makedefs
-+++ b/makedefs
-@@ -613,7 +613,7 @@ EOF
- 		: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
- 		: ${PLUGIN_LD="${CC-gcc} -shared"}
- 		;;
-- Linux.[345].*)	SYSTYPE=LINUX$RELEASE_MAJOR
-+ Linux.[3-6]*)	SYSTYPE=LINUX$RELEASE_MAJOR
- 		case "$CCARGS" in
- 		 *-DNO_DB*) ;;
- 		 *-DHAS_DB*) ;;
---- a/src/util/sys_defs.h
-+++ b/src/util/sys_defs.h
-@@ -751,7 +751,7 @@ extern int initgroups(const char *, int)
-  /*
-   * LINUX.
-   */
--#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5)
-+#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) || defined(LINUX6)
- #define SUPPORTED
- #define UINT32_TYPE	unsigned int
- #define UINT16_TYPE	unsigned short
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb
deleted file mode 100644
index b54a97a..0000000
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require postfix.inc
-
-SRC_URI += "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
-           file://main.cf \
-           file://postfix \
-           file://internal_recipient \
-           file://postfix.service \
-           file://aliasesdb \
-           file://check_hostname.sh \
-           file://0001-Fix-makedefs.patch \
-           file://0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch \
-           file://0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
-           file://0004-Fix-icu-config.patch \
-           file://0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
-           file://0006-makedefs-Account-for-linux-6.x-version.patch \
-           "
-SRC_URI[sha256sum] = "d22f3d37ef75613d5d573b56fc51ef097f2c0d0b0e407923711f71c1fb72911b"
-UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.6(\.\d+)+).tar.gz"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.8.5.bb
similarity index 91%
rename from meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
rename to meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.8.5.bb
index 5133caa..1c92c07 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-openembedded/meta-networking/recipes-daemons/postfix/postfix_3.8.5.bb
@@ -14,6 +14,24 @@
 LICENSE = "IPL-1.0 | EPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a"
 
+SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
+           file://main.cf \
+           file://postfix \
+           file://internal_recipient \
+           file://postfix.service \
+           file://aliasesdb \
+           file://check_hostname.sh \
+           file://0001-Fix-makedefs.patch \
+           file://0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch \
+           file://0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
+           file://0004-Fix-icu-config.patch \
+           file://0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
+           "
+
+SRC_URI[sha256sum] = "f3e827a2b2e410359ad25d31341970434ab07e36139f9a2ef93981b0ec564c85"
+
+UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.8(\.\d+)+).tar.gz"
+
 S = "${WORKDIR}/postfix-${PV}"
 
 CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch
new file mode 100644
index 0000000..b98e1e7
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch
@@ -0,0 +1,55 @@
+From 61991db099f66348dddbc3408e7ee8c05bda85cb Mon Sep 17 00:00:00 2001
+From: Yoann Congal <yoann.congal@smile.fr>
+Date: Sat, 2 Mar 2024 16:23:07 +0100
+Subject: [PATCH] configure.ac: Add an option to disable host udev version
+ checks
+
+In cross-compilation environment, the build host might have an outdated
+udev or no udev at all. But the user may still want to build with the
+enabled udev rule (for its udev-enabled target).
+
+This patch adds a "--disable-udevchecks" option the disable build host
+udev version check at configure-time and unconditionally install the
+enabled udev rule. Without this new option, the behavior stays the same
+(checks enabled).
+
+Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
+Upstream-Status: Backport [https://github.com/LINBIT/drbd-utils/commit/f2b5a7335ae52109dfb95a9d99ae20519c43d59a]
+---
+ configure.ac | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f1d69ea3..4c56d33b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -71,6 +71,11 @@ AC_ARG_WITH([udev],
+ 	[AS_HELP_STRING([--with-udev],
+ 			[Enable udev integration])],
+ 	[WITH_UDEV=$withval])
++AC_ARG_ENABLE([udevchecks],
++	[AS_HELP_STRING([--disable-udevchecks],
++			[Disable host udev version checks])],
++	[],
++	[enable_udevchecks=yes])
+ AC_ARG_WITH([xen],
+ 	[AS_HELP_STRING([--with-xen],
+ 			[Enable Xen integration])],
+@@ -315,7 +320,7 @@ if test -z $GIT; then
+    AC_MSG_WARN(Cannot update buildtag without git. You may safely ignore this warning when building from a tarball.)
+ fi
+ 
+-if test $UDEVADM = false && test $UDEVINFO = false; then
++if test "x$enable_udevchecks" != "xno" && test $UDEVADM = false && test $UDEVINFO = false; then
+    if test "$WITH_UDEV" = "yes"; then
+      AC_MSG_WARN([udev support enabled, but neither udevadm nor udevinfo found on this system.])
+    fi
+@@ -423,7 +428,7 @@ else
+     test -z $INITDIR && INITDIR="$sysconfdir/init.d"
+ 
+     dnl Our udev rules file is known to work only with udev >= 85
+-    if test "$WITH_UDEV" = "yes"; then
++    if test "x$enable_udevchecks" != "xno" && test "$WITH_UDEV" = "yes"; then
+        udev_version=$( set -- $($UDEVADM version); echo $1 )
+        if test -z "$udev_version"; then
+ 	    udev_version=$( set -- $($UDEVINFO -V); echo $3 )
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
index 4e1f68b..27f0a9b 100644
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
@@ -1,4 +1,4 @@
-From 69011c7227ad1aaf08d5ab28e46f85dac951c597 Mon Sep 17 00:00:00 2001
+From 264ae7b062ac52a5545a8a562b51001f7ce7369d Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Thu, 21 Apr 2022 17:22:35 +0800
 Subject: [PATCH] drbd-utils: support usermerge
@@ -21,10 +21,10 @@
  10 files changed, 32 insertions(+), 32 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index ae575586..3d7deeae 100644
+index f1d69ea3..3289ac7d 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -180,7 +180,7 @@ AC_ARG_WITH(tmpfilesdir,
+@@ -183,7 +183,7 @@ AC_ARG_WITH(tmpfilesdir,
  AC_SUBST(tmpfilesdir)
  
  # set default early
@@ -34,12 +34,12 @@
     test x"$with_udev" = xyes ; then
  	if test x"$PKG_CONFIG" != x; then
 diff --git a/scripts/Makefile.in b/scripts/Makefile.in
-index fcd298e9..bab441a5 100644
+index aca15a22..a1cd2ffe 100644
 --- a/scripts/Makefile.in
 +++ b/scripts/Makefile.in
-@@ -88,11 +88,11 @@ ifeq ($(subst both,systemd,$(initscripttype)),systemd)
+@@ -91,11 +91,11 @@ ifeq ($(subst both,systemd,$(initscripttype)),systemd)
  	install -d $(DESTDIR)$(systemdunitdir)
- 	install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/
+ 	install -m 644 $(SYSTEMD_UNITS) $(DESTDIR)$(systemdunitdir)/
  	install -m 644 $(SYSTEMD_TEMPLATES) $(DESTDIR)$(systemdunitdir)/
 -	install -d $(DESTDIR)/lib/drbd/scripts
 -	install -m 755 drbd $(DESTDIR)/lib/drbd/scripts
@@ -110,7 +110,7 @@
  [Install]
  WantedBy=multi-user.target
 diff --git a/scripts/drbd@.service b/scripts/drbd@.service
-index 76514c5b..e2e500ba 100644
+index 0fad10be..556f3857 100644
 --- a/scripts/drbd@.service
 +++ b/scripts/drbd@.service
 @@ -35,8 +35,8 @@ RemainAfterExit=yes
@@ -199,6 +199,3 @@
  
  spell:
  	for f in drbdadm_adjust.c drbdadm_main.c drbdadm_parser.c drbdadm_usage_cnt.c drbdsetup.c drbdtool_common.c; do \
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
index 0bf4b2f..c776606 100644
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
@@ -1,15 +1,17 @@
-From a61b9ff2d2cb7387a5cd347b2201535ee45a46ee Mon Sep 17 00:00:00 2001
+From bb044160faf4ae7615ddfdb17641dd88c33cde57 Mon Sep 17 00:00:00 2001
 From: Sakib Sajal <sakib.sajal@windriver.com>
 Date: Thu, 31 Mar 2022 15:09:58 -0400
 Subject: [PATCH] drbdmon: add LDFLAGS when linking
 
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
 Upstream-Status: Pending
 
- user/drbdmon/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ user/drbdmon/Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
+diff --git a/user/drbdmon/Makefile.in b/user/drbdmon/Makefile.in
+index 7bd8987e..115a81b8 100644
 --- a/user/drbdmon/Makefile.in
 +++ b/user/drbdmon/Makefile.in
 @@ -1,6 +1,6 @@
@@ -20,7 +22,7 @@
  CXX = @CXX@
  LIBS = @LIBS@
  
-@@ -51,7 +51,7 @@ $(dsaext-obj): $(basename $(dsaext-obj))
+@@ -72,7 +72,7 @@ $(dsaext-obj): $(basename $(dsaext-obj)).cpp $(basename $(dsaext-obj)).h
  $(integerparse-obj): $(basename $(integerparse-obj)).cpp $(basename $(integerparse-obj)).h
  
  drbdmon: $(ls-obj)
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch
deleted file mode 100644
index 2841d0f..0000000
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5adae6737e919d957a08df437951ccb6996f9882 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 21 Dec 2022 19:16:03 -0800
-Subject: [PATCH 1/2] replace off64_t with off_t
-
-off_t is already 64-bits when _FILE_OFFSET_BITS=64
-using off_t also makes it portable on musl systems
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- user/v9/drbdadm_main.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/user/v9/drbdadm_main.c b/user/v9/drbdadm_main.c
-index 91e9507d..2030946c 100644
---- a/user/v9/drbdadm_main.c
-+++ b/user/v9/drbdadm_main.c
-@@ -1264,11 +1264,11 @@ static int adm_resource(const struct cfg_ctx *ctx)
- 	return ex;
- }
- 
--static off64_t read_drbd_dev_size(int minor)
-+static off_t read_drbd_dev_size(int minor)
- {
- 	char *path;
- 	FILE *file;
--	off64_t val;
-+	off_t val;
- 	int r;
- 
- 	m_asprintf(&path, "/sys/block/drbd%d/size", minor);
-@@ -1289,9 +1289,9 @@ int adm_resize(const struct cfg_ctx *ctx)
- 	char *argv[MAX_ARGS];
- 	struct d_option *opt;
- 	bool is_resize = !strcmp(ctx->cmd->name, "resize");
--	off64_t old_size = -1;
--	off64_t target_size = 0;
--	off64_t new_size;
-+	off_t old_size = -1;
-+	off_t target_size = 0;
-+	off_t new_size;
- 	int argc = 0;
- 	int silent;
- 	int ex;
--- 
-2.39.0
-
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch
deleted file mode 100644
index 45f7d6d..0000000
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From b70e5bf5bfa5fa2c2fffe08bcf300da1d3583602 Mon Sep 17 00:00:00 2001
-From: Lars Ellenberg <lars.ellenberg@linbit.com>
-Date: Wed, 9 Nov 2022 11:01:54 +0100
-Subject: [PATCH 2/2] drbdadm: drop use of GLOB_MAGCHAR, use strchr heuristic only
-
-Fixup for
-2022-09-05 4a1b5900 drbdadm: allow files from an expanded include glob to vanish
-
-When using the `include` statement, if the glob did not match any file,
-there is nothing to do, silently ignore.  Unless it was no glob, but a literal,
-which we would expect to exist.
-
-Also, there is a race between expanding a glob and accessing the file.
-That also should not happen for literals, though.
-
-Since we still had the heuristic anyways, because apparently |GLOB_MAGCHAR
-does not happen for GLOB_NOMATCH returns, and there exist non-GNU libc that
-don't (and likely won't) implement that extension, just forget about
-(gl_flags & GLOB_MAGCHAR) but use the incomplete strchr heuristic only.
-
-Sourced From Alpine: https://git.alpinelinux.org/aports/tree/main/drbd-utils/drop_use_of_GLOB_MAGCHAR.patch
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- user/v9/drbdadm_parser.c | 35 ++++++++++++++++++++---------------
- 1 file changed, 20 insertions(+), 15 deletions(-)
-
-diff --git a/user/v9/drbdadm_parser.c b/user/v9/drbdadm_parser.c
-index b2f6ed8a..9a0a775d 100644
---- a/user/v9/drbdadm_parser.c
-+++ b/user/v9/drbdadm_parser.c
-@@ -1947,14 +1947,29 @@ void include_stmt(char *str)
- 	size_t i;
- 	int r;
- 
--	cwd = pushd_to_current_config_file_unless_stdin();
--
--	/* """
-+	/*
-+	 * If the glob did not match any file,
-+	 * there is nothing to do, silently ignore.
-+	 * Unless it was no glob, but a literal,
-+	 * which we would expect to exist.
-+	 *
-+	 * """
- 	 * As a GNU extension, pglob->gl_flags is set to the
- 	 * flags specified, ored with GLOB_MAGCHAR if any
- 	 * metacharacters were found.
- 	 * """
-+	 *
-+	 * But apparently |GLOB_MAGCHAR does not happen for GLOB_NOMATCH returns,
-+	 * at least not consistently :-(
-+	 * Also, there exist non-GNU libc
-+	 * So we have this incomplete strchr heuristic anyways.
- 	 */
-+	bool contains_glob_magic_char =
-+			strchr(str, '*') ||
-+			strchr(str, '?') ||
-+			strchr(str, '[');
-+
-+	cwd = pushd_to_current_config_file_unless_stdin();
- 	r = glob(str, 0, NULL, &glob_buf);
- 	if (r == 0) {
- 		for (i=0; i<glob_buf.gl_pathc; i++) {
-@@ -1965,7 +1980,7 @@ void include_stmt(char *str)
- 			if (f) {
- 				include_file(f, strdup(glob_buf.gl_pathv[i]));
- 				fclose(f);
--			} else if (errno == ENOENT && glob_buf.gl_flags & GLOB_MAGCHAR) {
-+			} else if (errno == ENOENT && contains_glob_magic_char) {
- 				/* Noisily ignore race between glob expansion
- 				 * and actual open. */
- 				err("%s:%d: include file vanished after glob expansion '%s'.\n",
-@@ -1979,17 +1994,7 @@ void include_stmt(char *str)
- 		}
- 		globfree(&glob_buf);
- 	} else if (r == GLOB_NOMATCH) {
--		/*
--		 * If the glob did not match any file,
--		 * there is nothing to do, silently ignore.
--		 * Unless it was no glob, but a literal,
--		 * which we would expect to exist.
--		 * Apparently |GLOB_MAGCHAR does not happen for GLOB_NOMATCH returns,
--		 * at least not consistently :-(
--		 * So we have this strchr heuristic anyways.
--		 */
--		/* if (!(glob_buf.gl_flags & GLOB_MAGCHAR)) { */
--		if (!strchr(str, '?') && !strchr(str, '*') && !strchr(str, '[')) {
-+		if (!contains_glob_magic_char) {
- 			err("%s:%d: Failed to open include file '%s'.\n",
- 			    config_save, line, str);
- 			config_valid = 0;
--- 
-2.39.0
-
diff --git a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb
similarity index 87%
rename from meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb
rename to meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb
index 89bf529..63f0fd1 100644
--- a/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Distributed block device driver for Linux"
 DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\
-DRBD mirrors a block device over the network to another machine.\
 Think of it as networked raid 1. It is a building block for\
 setting up high availability (HA) clusters."
 HOMEPAGE = "http://www.drbd.org/"
@@ -11,12 +10,11 @@
 SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils;branch=master;protocol=https \
            git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers;branch=master;protocol=https \
            file://0001-drbdmon-add-LDFLAGS-when-linking.patch \
-           file://0001-replace-off64_t-with-off_t.patch \
            ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
+           file://0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch \
            "
-SRC_URI:append:libc-musl = " file://0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch "
-SRCREV_drbd-utils = "409097fe02187f83790b88ac3e0d94f3c167adab"
-SRCREV_drbd-headers = "9a0f151fa0085f57910a2dcbbd658d6069554f62"
+SRCREV_drbd-utils = "fdd9a4d603a9dc99d110d8bd0e288d7c0b6f586e"
+SRCREV_drbd-headers = "0349f00825b4198d4ec3248f43884114a187676a"
 
 SRCREV_FORMAT = "drbd-utils_drbd-headers"
 
@@ -27,10 +25,13 @@
 SYSTEMD_SERVICE:${PN} = "drbd.service"
 SYSTEMD_AUTO_ENABLE = "disable"
 
-DEPENDS = "flex-native"
+DEPENDS = "flex-native keyutils"
 
 inherit autotools-brokensep systemd
 
+# -Wunused-but-set-variable -Wunused-const-variable -Winconsistent-missing-override
+CPPFLAGS:append = " -Wno-error"
+
 EXTRA_OECONF = " \
                 --with-initdir=/etc/init.d    \
                 --without-pacemaker           \
@@ -40,6 +41,7 @@
                 --with-initscripttype=both    \
                 --with-systemdunitdir=${systemd_unitdir}/system \
                 --without-manual \
+                --disable-udevchecks \
                "
 
 # If we have inherited reproducible_build, we want to use it.
diff --git a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb
index 470ce1e..eacbe5c 100644
--- a/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb
@@ -42,7 +42,9 @@
 
 EXTRA_OECONF = "--disable-static \
                 --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
-                --with-glibver=2.0"
+                --with-glibver=2.0 \
+                --with-pythoncflags='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
+               "
 
 PACKAGECONFIG ??= "gdbm"
 PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
@@ -64,7 +66,7 @@
 
 do_configure () {
     # Let's perform regular configuration first then handle perl issues.
-    PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} autotools_do_configure
+    autotools_do_configure
 
     perl_ver=`perl -V:version | cut -d\' -f 2`
     
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.7.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.9.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.7.bb
rename to meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.9.bb
index 323abe3..3af6b30 100644
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.7.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.9.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "https://openvpn.net/"
 SECTION = "net"
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8d34ce6390552676e4ce8279f13c48a"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b34e946059f80dcfd811e8dd471b5ed"
 DEPENDS = "lzo lz4 openssl iproute2 libcap-ng ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
 inherit autotools systemd update-rc.d pkgconfig
@@ -14,7 +14,7 @@
 
 UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
 
-SRC_URI[sha256sum] = "ee9877340b1d8de47eb5b52712c3366855fa6a4a1955bf950c68577bd2039913"
+SRC_URI[sha256sum] = "e08d147e15b4508dfcd1d6618a1f21f1495f9817a8dadc1eddf0532fa116d7e3"
 
 CVE_STATUS[CVE-2020-27569] = "not-applicable-config: Applies only Aviatrix OpenVPN client, not openvpn"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch b/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
deleted file mode 100644
index 26f8afe..0000000
--- a/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5d335b5ddd052f047759cae0e9b94ec49f9f3884 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@fujitsu.com>
-Date: Mon, 20 Mar 2023 02:03:04 +0000
-Subject: [PATCH] pgpool2: Fix unknown type name 'fd_set' error with musl.
-
-| read.c: In function 'read_until_ready_for_query':
-| read.c:53:24: error: storage size of 'timeoutval' isn't known
-|    53 |         struct timeval timeoutval;
-|       |                        ^~~~~~~~~~
-| read.c:54:9: error: unknown type name 'fd_set'
-|    54 |         fd_set          readmask;
-|       |         ^~~~~~
-
-Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
----
- src/tools/pgproto/read.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/tools/pgproto/read.c b/src/tools/pgproto/read.c
-index c7fb548..4efe641 100644
---- a/src/tools/pgproto/read.c
-+++ b/src/tools/pgproto/read.c
-@@ -19,6 +19,7 @@
- #include "../../include/config.h"
- #include "pgproto/pgproto.h"
- #include <unistd.h>
-+#include <sys/select.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
---
-2.34.1
diff --git a/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch b/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch
new file mode 100644
index 0000000..3ae9b1b
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch
@@ -0,0 +1,25 @@
+Define SIGNAL_ARGS if its not defined, this is flagged with
+newer C compilers e.g. clang18, where if it is not defined
+then it ends up with compiler errors
+
+/usr/include/postgresql/server/port.h:488:28: error: a parameter l
+ist without types is only allowed in a function definition
+|   488 | typedef void (*pqsigfunc) (SIGNAL_ARGS);
+|       |                            ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/include/pool_type.h
++++ b/src/include/pool_type.h
+@@ -125,7 +125,9 @@ extern void ExceptionalCondition(const c
+ #define LONGALIGN(LEN)			TYPEALIGN(ALIGNOF_LONG, (LEN))
+ #define DOUBLEALIGN(LEN)		TYPEALIGN(ALIGNOF_DOUBLE, (LEN))
+ #define MAXALIGN(LEN)			TYPEALIGN(MAXIMUM_ALIGNOF, (LEN))
+-
++#ifndef SIGNAL_ARGS
++#define SIGNAL_ARGS  int postgres_signal_arg
++#endif
+ /*
+  *  It seems that sockaddr_storage is now commonly used in place of sockaddr.
+  *  So, define it if it is not define yet, and create new SockAddr structure
diff --git a/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb b/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb
similarity index 87%
rename from meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
rename to meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb
index 5e6e00c..ffb8799 100644
--- a/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb
@@ -1,4 +1,4 @@
-SUMMARY = "a language independent connection pool server for PostgreSQL."
+SUMMARY = "A language independent connection pool server for PostgreSQL."
 
 DESCRIPTION = "Pgpool-II is a middleware that works between PostgreSQL \
                servers and a PostgreSQL database client. It is distributed \
@@ -12,11 +12,11 @@
 
 SRC_URI = "http://www.pgpool.net/mediawiki/images/pgpool-II-${PV}.tar.gz \
 	   file://0001-Fix-build-error-when-build-this-file.patch \
-	   file://0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch \
+	   file://define_SIGNAL_ARGS.patch \
 	   file://pgpool.sysconfig \
 	   file://pgpool.service \
            "
-SRC_URI[sha256sum] = "4b379bbba8e178128a1cee4a5bd1ae116dedb3da6121b728c18f0f54c881f328"
+SRC_URI[sha256sum] = "8e14b0558a15dae8767c8e1acee3f2f6c7c08ebfffda66a359367eaaa56c3936"
 
 S = "${WORKDIR}/pgpool-II-${PV}"
 
@@ -34,9 +34,6 @@
 EXTRA_OECONF += "--disable-static \
 	         --disable-rpath \
 	        "
-
-CFLAGS:append = " -fcommon "
-
 FILES:${PN} += "${datadir}/pgpool-II/ "
 
 do_configure:append() {
diff --git a/meta-openembedded/meta-oe/classes/signing.bbclass b/meta-openembedded/meta-oe/classes/signing.bbclass
index ec076d9..f52d861 100644
--- a/meta-openembedded/meta-oe/classes/signing.bbclass
+++ b/meta-openembedded/meta-oe/classes/signing.bbclass
@@ -6,9 +6,9 @@
 
 # This class provides a common workflow to use asymmetric (i.e. RSA) keys to
 # sign artifacts. Usually, the keys are either stored as simple files in the
-# file system or on a HSM (Hardware Security Module). While files are easy to
-# use, it's hard to verify that no copies of the private have been made and
-# only authorized persons are able to use the key. Use of an HSM addresses
+# file system or on an HSM (Hardware Security Module). While files are easy to
+# use, it's hard to verify that no copies of the private key have been made
+# and only authorized persons are able to use the key. Use of an HSM addresses
 # these risks by only allowing use of the key via an API (often PKCS #11). The
 # standard way of referring to a specific key in an HSM are PKCS #11 URIs (RFC
 # 7512).
diff --git a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index a0e23be..fadec12 100644
--- a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -18,6 +18,7 @@
     leveldb \
     libcereal \
     libee \
+    libgpiod \
     libio-pty-perl \
     libmanette \
     librelp \
@@ -62,7 +63,6 @@
     jemalloc \
     keyutils \
     libdbi-perl \
-    libgpiod \
     libjcat \
     libteam \
     libxml++ \
diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf
index 6b64328..732a7e5 100644
--- a/meta-openembedded/meta-oe/conf/layer.conf
+++ b/meta-openembedded/meta-oe/conf/layer.conf
@@ -50,6 +50,7 @@
 
 PREFERRED_RPROVIDER_libdevmapper = "lvm2"
 PREFERRED_RPROVIDER_libdevmapper-native = "lvm2-native"
+PREFERRED_RPROVIDER_nativesdk-libdevmapper = "nativesdk-lvm2"
 PREFERRED_PROVIDER_android-tools-conf ?= "android-tools-conf"
 # Configures whether coreutils or uutils-coreutils is used.
 PREFERRED_PROVIDER_coreutils = "coreutils"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch
new file mode 100644
index 0000000..dc47af8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch
@@ -0,0 +1,103 @@
+From b59ec731c8c7e084b289e4ea92938faaebcc389d Mon Sep 17 00:00:00 2001
+From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
+Date: Wed, 1 Nov 2023 13:43:00 +0200
+Subject: [PATCH] GLVisualConfig: By default don't care about the stencil
+ config component
+
+Our benchmarks don't use a stencil buffer, but its presence doesn't hurt
+either, so don't mark configs that have one as unacceptable. Our scoring
+still favors configs without one, unless the user explicitly specifies
+otherwise with --visual-config.
+
+Upstream-Status: Backport [https://github.com/glmark2/glmark2/commit/5f23d540342ba69e12afeb6a1ac4f6fd36747975]
+---
+ doc/glmark2.1.in         | 2 +-
+ src/gl-visual-config.cpp | 9 ++++++---
+ src/gl-visual-config.h   | 2 +-
+ src/options.cpp          | 6 +++---
+ 4 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/doc/glmark2.1.in b/doc/glmark2.1.in
+index 015ba20..1f4a047 100644
+--- a/doc/glmark2.1.in
++++ b/doc/glmark2.1.in
+@@ -38,7 +38,7 @@ Render to an off-screen surface
+ The visual configuration to use for the rendering target:
+ \'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:stencil=STENCIL:samples=SAMPLES'.
+ The parameters may be defined in any order, and any omitted parameters assume a
+-default value of '0' (id, stencil, samples) or '1' (red, green, blue, alpha, buffer).
++default value of '0' (id, samples), -1 (stencil) or '1' (red, green, blue, alpha, buffer).
+ If 'id' is set to a non-zero value, all other parameters are ignored
+ .TP
+ \fB\-\-reuse\-context\fR
+diff --git a/src/gl-visual-config.cpp b/src/gl-visual-config.cpp
+index de92f93..665f53a 100644
+--- a/src/gl-visual-config.cpp
++++ b/src/gl-visual-config.cpp
+@@ -26,7 +26,7 @@
+ #include <vector>
+ 
+ GLVisualConfig::GLVisualConfig(const std::string &s) :
+-    id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(0), buffer(1), samples(0)
++    GLVisualConfig()
+ {
+     std::vector<std::string> elems;
+ 
+@@ -85,7 +85,7 @@ GLVisualConfig::match_score(const GLVisualConfig &target) const
+     score += score_component(blue, target.blue, 4);
+     score += score_component(alpha, target.alpha, 4);
+     score += score_component(depth, target.depth, 1);
+-    score += score_component(stencil, target.stencil, 0);
++    score += score_component(stencil, target.stencil, 1);
+     score += score_component(buffer, target.buffer, 1);
+     score += score_component(samples, target.samples, -1);
+ 
+@@ -135,11 +135,14 @@ GLVisualConfig::score_component(int component, int target, int scale) const
+          * score for all components ranges from [0,MAXIMUM_COMPONENT_SCORE).
+          * If scale > 0, we reward the largest positive difference from target,
+          * otherwise the smallest positive difference from target.
++         * We also reward the smallest positive difference from the target,
++         * if the target < 0, i.e., we don't care about this value.
+          */
+         int diff = std::abs(scale) * (component - target);
+         if (diff > 0)
+         {
+-            score = scale < 0 ? MAXIMUM_COMPONENT_SCORE - diff : diff;
++            score = (scale < 0 || target < 0) ?
++                    MAXIMUM_COMPONENT_SCORE - diff : diff;
+             score = std::min(MAXIMUM_COMPONENT_SCORE, score);
+             score = std::max(0, score);
+         }
+diff --git a/src/gl-visual-config.h b/src/gl-visual-config.h
+index b28473f..013ce14 100644
+--- a/src/gl-visual-config.h
++++ b/src/gl-visual-config.h
+@@ -31,7 +31,7 @@ class GLVisualConfig
+ {
+ public:
+     GLVisualConfig():
+-        id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(0), buffer(1), samples(0) {}
++        id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(-1), buffer(1), samples(0) {}
+     GLVisualConfig(const std::string &s);
+ 
+     /**
+diff --git a/src/options.cpp b/src/options.cpp
+index 8d1ec16..3a31d3d 100644
+--- a/src/options.cpp
++++ b/src/options.cpp
+@@ -213,9 +213,9 @@ Options::print_help()
+            "                         target: 'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:\n"
+            "                         stencil=STENCIL:samples=SAMPLES'. The parameters may be\n"
+            "                         defined in any order, and any omitted parameters assume a\n"
+-           "                         default value of '0' (id, stencil, samples) or '1' (red,\n"
+-           "                         green, blue, alpha, buffer). If 'id' is set to a non-zero\n"
+-           "                         value, all other parameters are ignored\n"
++           "                         default value of '0' (id, samples), '-1' (stencil) or\n"
++           "                         '1' (red, green, blue, alpha, buffer). If 'id' is set to\n"
++           "                         a non-zero value, all other parameters are ignored\n"
+            "      --reuse-context    Use a single context for all scenes\n"
+            "                         (by default, each scene gets its own context)\n"
+            "  -s, --size WxH         Size of the output window (default: 800x600)\n"
+-- 
+2.44.0
+
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index a2d5b15..0b61d6e 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -17,6 +17,7 @@
     git://github.com/glmark2/glmark2.git;protocol=https;branch=master \
     file://0001-fix-dispmanx-build.patch \
     file://0002-run-dispmanx-fullscreen.patch \
+    file://0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch \
 "
 SRCREV = "42e3d8fe3aa88743ef90348138f643f7b04a9237"
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
index 09e3d9c..a67be4d 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
@@ -1,4 +1,4 @@
-From 4801363fbff12bf1019aaf90142981702cecff92 Mon Sep 17 00:00:00 2001
+From 80d208e47a525c915e3961efa61ccf91120ffafa Mon Sep 17 00:00:00 2001
 From: Andrey Zhizhikin <andrey.z@gmail.com>
 Date: Wed, 3 Feb 2021 20:44:34 +0000
 Subject: [PATCH] configure.ac: check for CPP prog
@@ -10,20 +10,19 @@
 
 Upstream-Status: Pending
 Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
-
 ---
  configure.ac | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/configure.ac b/configure.ac
-index 53a4db4..3462b3e 100644
+index 2594b39..559b160 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -48,6 +48,7 @@ AC_CANONICAL_HOST
+@@ -49,6 +49,7 @@ AC_CANONICAL_HOST
  # Checks for tools: c compiler, ranlib (used for creating static libraries),
  # symlinks and libtool
  AC_PROG_CC
 +AC_PROG_CPP
- AC_PROG_RANLIB
  AC_PROG_LN_S
- LT_INIT
+ 
+ # Add -Wall if we are using GCC.
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.15.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.15.bb
rename to meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb
index 156bb5a..5cec4c6 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.15.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb
@@ -17,7 +17,7 @@
            file://0001-configure.ac-check-for-CPP-prog.patch \
            "
 
-SRCREV = "917d2f02188f6f4cdc443df7923a4bde72017d92"
+SRCREV = "f9481e1cd35159929458513692e4a8f9fdd1bd6f"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.2.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb
index e1fe5e5..7af33e4 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb
@@ -14,7 +14,7 @@
 HOMEPAGE = "http://web.mit.edu/Kerberos/"
 SECTION = "console/network"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=3c7414a99de5452b8f809ae2753b0855"
+LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=32cb3a99207053d9f5c1ef177c4d6e34"
 
 inherit autotools-brokensep binconfig perlnative systemd update-rc.d pkgconfig
 
@@ -29,8 +29,8 @@
            file://krb5-kdc.service \
            file://krb5-admin-server.service \
 "
-SRC_URI[md5sum] = "7ac456e97c4959ebe5c836dc2f5aab2c"
-SRC_URI[sha256sum] = "7d8d687d42aed350c2525cb69a4fc3aa791694da6761dccc1c42c2ee7796b5dd"
+
+SRC_URI[sha256sum] = "9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491"
 
 CVE_PRODUCT = "kerberos"
 CVE_VERSION = "5-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb b/meta-openembedded/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
index 603f365..4cad7dc 100644
--- a/meta-openembedded/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
+++ b/meta-openembedded/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
@@ -34,7 +34,7 @@
 	cp orig/* .
 
 	for config in ${PACKAGECONFIG_CONFARGS}; do
-		if [[ ${config} == "enable_getty" ]]; then
+		if [ "${config}" = "enable_getty" ]; then
 			echo "# generated by bitbake recipe ${PN}" >> ${S}/inittab
 			for console in "${SERIAL_CONSOLES}"; do
 				param=$(echo ${console} | sed s/\;/\ /g)
diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.1.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.1.bb
rename to meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.0.bb
index 2935221..c5e84b1 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.0.bb
@@ -20,7 +20,7 @@
 LDFLAGS:append:libc-musl = " -largp"
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "410ded65a1072ab9c8e41added37b9729c087fef4d2db02bb4ef529ad6da4693"
+SRC_URI[sha256sum] = "94003a00cd5a81944f45e8dc529e0cfd2a6ff629bd2cd21cf5e574e465daf795"
 
 inherit autotools gettext pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
index 35e9b03..a34614d 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
@@ -1,5 +1,5 @@
 SUMMARY = "Linux Kernel Crypto API User Space Interface Library"
-HOMEPAGE = "http://www.chronox.de/libkcapi.html"
+HOMEPAGE = "https://www.chronox.de/libkcapi/index.html"
 LICENSE = "BSD-3-Clause | GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=3d8a091d797491204567185a6efce70f"
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
index 0770e4b..5301071 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
@@ -27,6 +27,8 @@
 
 inherit go-mod pkgconfig systemd update-rc.d useradd
 
+export GOPROXY = "https://proxy.golang.org,direct"
+
 # Workaround for network access issue during compile step
 # this needs to be fixed in the recipes buildsystem to move
 # this such that it can be accomplished during do_fetch task
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
index 7a4ba98..34d34ec 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
@@ -1,21 +1,19 @@
-From 780fd27ea6f7f2c446c46a7a5e26d94106c67efd Mon Sep 17 00:00:00 2001
+From ba079b8d6a50796db41bb0ddf4c22bfe022ef898 Mon Sep 17 00:00:00 2001
 From: "Richard W.M. Jones" <rjones@redhat.com>
 Date: Sun, 20 Nov 2016 15:04:52 +0000
-Subject: [PATCH] Add support for RISC-V.
+Subject: [PATCH 1/5] Add support for RISC-V.
 
 The architecture is sufficiently similar to aarch64 that simply
 extending the existing aarch64 macro works.
 ---
-Upstream-Status: Pending
-
- src/include/storage/s_lock.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ src/include/storage/s_lock.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
-index 4d3ffc7..22e27bf 100644
+index c9fa84c..9b491e8 100644
 --- a/src/include/storage/s_lock.h
 +++ b/src/include/storage/s_lock.h
-@@ -317,11 +317,12 @@ tas(volatile slock_t *lock)
+@@ -252,11 +252,12 @@ spin_delay(void)
  
  /*
   * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
@@ -24,21 +22,20 @@
   * We use the int-width variant of the builtin because it works on more chips
   * than other widths.
   */
--#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64)
-+#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64) || defined(__riscv)
+-#if defined(__arm__) || defined(__arm) || defined(__aarch64__)
++#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__riscv)
  #ifdef HAVE_GCC__SYNC_INT32_TAS
  #define HAS_TEST_AND_SET
  
-@@ -355,8 +356,7 @@ spin_delay(void)
+@@ -290,7 +291,7 @@ spin_delay(void)
  
- #endif	 /* __aarch64__ || __aarch64 */
+ #endif	 /* __aarch64__ */
  #endif	 /* HAVE_GCC__SYNC_INT32_TAS */
--#endif	 /* __arm__ || __arm || __aarch64__ || __aarch64 */
--
-+#endif	 /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
+-#endif	 /* __arm__ || __arm || __aarch64__ */
++#endif	 /* __arm__ || __arm || __aarch64__ || __riscv */
+ 
  
  /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
- #if defined(__s390__) || defined(__s390x__)
 -- 
-2.34.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
rename to meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch
index 02f4c9e..b3e87cb 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch
@@ -1,7 +1,7 @@
-From bbba8a5261a99e79c9cd4693ef56021014a9856b Mon Sep 17 00:00:00 2001
+From 084cc44215c1d5e6d33bc3d2e1d24da4fc98bdcd Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Mon, 28 Dec 2020 16:38:21 +0800
-Subject: [PATCH] Improve reproducibility,
+Subject: [PATCH 2/5] Improve reproducibility,
 
 Remove build patch from binaries which pg_config do
 not record var-CC, var-CFLAGS, and configure
@@ -23,7 +23,7 @@
  1 file changed, 3 deletions(-)
 
 diff --git a/src/common/Makefile b/src/common/Makefile
-index 880722f..7a9b9d4 100644
+index 113029b..58842a6 100644
 --- a/src/common/Makefile
 +++ b/src/common/Makefile
 @@ -31,9 +31,6 @@ include $(top_builddir)/src/Makefile.global
@@ -37,5 +37,5 @@
  override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
  override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
 -- 
-2.34.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch
similarity index 75%
rename from meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
rename to meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch
index ab57805..d76d199 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch
@@ -1,7 +1,7 @@
-From d44c83ed0f30462a31930d6d925762b3f8412ce2 Mon Sep 17 00:00:00 2001
+From 30b1b37d309f67ba6d58f2197bd917107bc7d56c Mon Sep 17 00:00:00 2001
 From: Yi Fan Yu <yifan.yu@windriver.com>
 Date: Fri, 5 Feb 2021 17:15:42 -0500
-Subject: [PATCH] configure.ac: bypass autoconf 2.69 version check
+Subject: [PATCH 3/5] configure.ac: bypass autoconf 2.69 version check
 
 for upgrade to autoconf 2.71
 
@@ -13,18 +13,18 @@
  1 file changed, 4 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index e988503..d1b2cfd 100644
+index 401ce30..27f382d 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
  
- AC_INIT([PostgreSQL], [15.5], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
+ AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
  
 -m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
 -Untested combinations of 'autoconf' and PostgreSQL versions are not
 -recommended.  You can remove the check from 'configure.ac' but it is then
 -your responsibility whether the result works or not.])])
- AC_COPYRIGHT([Copyright (c) 1996-2022, PostgreSQL Global Development Group])
+ AC_COPYRIGHT([Copyright (c) 1996-2023, PostgreSQL Global Development Group])
  AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
  AC_CONFIG_AUX_DIR(config)
 -- 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch
rename to meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch
index 52ca276..ff0582a 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch
@@ -1,7 +1,7 @@
-From b92eebe8b0760fee7bd55c6c22318620c2c07579 Mon Sep 17 00:00:00 2001
+From 5be3ffdf767c1efcbfd2d1be87aa83f2e37e348e Mon Sep 17 00:00:00 2001
 From: Mingli Yu <mingli.yu@windriver.com>
 Date: Mon, 1 Aug 2022 15:44:38 +0800
-Subject: [PATCH] config_info.c: not expose build info
+Subject: [PATCH 4/5] config_info.c: not expose build info
 
 Don't collect the build information to fix the buildpaths issue.
 
@@ -10,14 +10,14 @@
 Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
 ---
  configure.ac             |  2 +-
- src/common/config_info.c | 68 ----------------------------------------
- 2 files changed, 1 insertion(+), 69 deletions(-)
+ src/common/config_info.c | 70 +---------------------------------------
+ 2 files changed, 2 insertions(+), 70 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 0eb595b..508487b 100644
+index 27f382d..3dd6bb1 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -23,7 +23,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2021, PostgreSQL Global Development Group])
+@@ -23,7 +23,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2023, PostgreSQL Global Development Group])
  AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
  AC_CONFIG_AUX_DIR(config)
  AC_PREFIX_DEFAULT(/usr/local/pgsql)
@@ -27,19 +27,19 @@
  [PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`]
  [PG_MINORVERSION=`expr "$PACKAGE_VERSION" : '.*\.\([0-9][0-9]*\)'`]
 diff --git a/src/common/config_info.c b/src/common/config_info.c
-index e72e729..b482c20 100644
+index 09e78a6..86e4230 100644
 --- a/src/common/config_info.c
 +++ b/src/common/config_info.c
-@@ -38,7 +38,7 @@
+@@ -38,7 +38,7 @@ get_configdata(const char *my_exec_path, size_t *configdata_len)
  	int			i = 0;
  
  	/* Adjust this to match the number of items filled below */
 -	*configdata_len = 23;
 +	*configdata_len = 14;
- 	configdata = (ConfigData *) palloc(*configdata_len * sizeof(ConfigData));
+ 	configdata = palloc_array(ConfigData, *configdata_len);
  
  	configdata[i].name = pstrdup("BINDIR");
-@@ -123,74 +123,6 @@
+@@ -123,74 +123,6 @@ get_configdata(const char *my_exec_path, size_t *configdata_len)
  	configdata[i].setting = pstrdup(path);
  	i++;
  
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-postgresql-fix-ptest-failure-of-sysviews.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch
similarity index 72%
rename from meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-postgresql-fix-ptest-failure-of-sysviews.patch
rename to meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch
index 4db36d2..af36da4 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-postgresql-fix-ptest-failure-of-sysviews.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch
@@ -1,7 +1,7 @@
-From 9f81377dddfe32d950844d7053020a36b40fce08 Mon Sep 17 00:00:00 2001
+From 1a8b94140988d2ee5ff987b0bb3e7c3e936b8c01 Mon Sep 17 00:00:00 2001
 From: Manoj Saun <manojsingh.saun@windriver.com>
 Date: Wed, 22 Mar 2023 08:07:26 +0000
-Subject: [PATCH] postgresql: fix ptest failure of sysviews
+Subject: [PATCH 5/5] postgresql: fix ptest failure of sysviews
 
 The patch "0001-config_info.c-not-expose-build-info.patch" hides the debug info
 in pg_config table which reduces the count of rows from pg_config and leads to
@@ -18,9 +18,11 @@
  src/test/regress/sql/sysviews.sql      | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
+diff --git a/src/test/regress/expected/sysviews.out b/src/test/regress/expected/sysviews.out
+index 001c6e7..8256898 100644
 --- a/src/test/regress/expected/sysviews.out
 +++ b/src/test/regress/expected/sysviews.out
-@@ -29,7 +29,7 @@ select name, ident, parent, level, total
+@@ -29,7 +29,7 @@ select name, ident, parent, level, total_bytes >= free_bytes
  (1 row)
  
  -- At introduction, pg_config had 23 entries; it may grow
@@ -29,9 +31,11 @@
   ok 
  ----
   t
+diff --git a/src/test/regress/sql/sysviews.sql b/src/test/regress/sql/sysviews.sql
+index 351e469..84c113e 100644
 --- a/src/test/regress/sql/sysviews.sql
 +++ b/src/test/regress/sql/sysviews.sql
-@@ -18,7 +18,7 @@ select name, ident, parent, level, total
+@@ -18,7 +18,7 @@ select name, ident, parent, level, total_bytes >= free_bytes
    from pg_backend_memory_contexts where level = 0;
  
  -- At introduction, pg_config had 23 entries; it may grow
@@ -40,3 +44,6 @@
  
  -- We expect no cursors in this test; see also portals.sql
  select count(*) = 0 as ok from pg_cursors;
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 15ecdee..868a2e4 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -54,7 +54,7 @@
 
 PACKAGECONFIG ??= " \
     ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
-    openssl python uuid libxml tcl perl zlib \
+    openssl python uuid libxml tcl perl zlib icu \
 "
 PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
 PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl"
@@ -69,6 +69,7 @@
 PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
 PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4"
 PACKAGECONFIG[openssl] = "--with-ssl=openssl,ac_cv_file__dev_urandom=yes,openssl"
+PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu,icu"
 
 EXTRA_OECONF += "--enable-thread-safety --disable-rpath \
     --datadir=${datadir}/${BPN} \
@@ -229,6 +230,16 @@
 SSTATE_SCAN_FILES += "Makefile.global"
 SSTATE_SCAN_FILES:remove = "*_config"
 
+postgresql_fix_sources () {
+	for f in ${PKGD}${TARGET_DBGSRC_DIR}/src/pl/plperl/Util.c \
+			${PKGD}${TARGET_DBGSRC_DIR}/src/pl/plperl/SPI.c; do
+		if [ -e $f ]; then
+			sed -i -e 's#${B}/../${P}#${TARGET_DBGSRC_DIR}#g' $f
+		fi
+	done
+}
+PACKAGESPLITFUNCS =+ "postgresql_fix_sources"
+
 PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
     libecpg-compat libecpg-compat-dev \
     libecpg libecpg-dev libecpg-staticdev libecpg-doc \
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.5.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.5.bb
deleted file mode 100644
index cb90ff9..0000000
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c31f662bb2bfb3b4187fe9a53e0ffe7c"
-
-SRC_URI += "\
-   file://not-check-libperl.patch \
-   file://0001-Add-support-for-RISC-V.patch \
-   file://0001-Improve-reproducibility.patch \
-   file://0001-configure.ac-bypass-autoconf-2.69-version-check.patch \
-   file://0001-config_info.c-not-expose-build-info.patch \
-   file://0001-postgresql-fix-ptest-failure-of-sysviews.patch \
-"
-
-SRC_URI[sha256sum] = "8f53aa95d78eb8e82536ea46b68187793b42bba3b4f65aa342f540b23c9b10a6"
-
-CVE_STATUS[CVE-2017-8806] = "not-applicable-config: Ddoesn't apply to out configuration of postgresql so we can safely ignore it."
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb
new file mode 100644
index 0000000..31f83a5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb
@@ -0,0 +1,16 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=89afbb2d7716371015101c2b2cb4297a"
+
+SRC_URI += "\
+   file://not-check-libperl.patch \
+   file://0001-Add-support-for-RISC-V.patch \
+   file://0002-Improve-reproducibility.patch \
+   file://0003-configure.ac-bypass-autoconf-2.69-version-check.patch \
+   file://0004-config_info.c-not-expose-build-info.patch \
+   file://0005-postgresql-fix-ptest-failure-of-sysviews.patch \
+"
+
+SRC_URI[sha256sum] = "446e88294dbc2c9085ab4b7061a646fa604b4bec03521d5ea671c2e5ad9b2952"
+
+CVE_STATUS[CVE-2017-8806] = "not-applicable-config: Ddoesn't apply to out configuration of postgresql so we can safely ignore it."
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.60.0.bb b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.60.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb
index d41a73e..63c696a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.60.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb
@@ -20,7 +20,7 @@
 # RDEPENDS:${PN}-dev += "${PN}-compiler"
 
 S = "${WORKDIR}/git"
-SRCREV_grpc = "0ef13a7555dbaadd4633399242524129eef5e231"
+SRCREV_grpc = "e5ae3b6b44bf3b64d24bfb4b4f82556239b986db"
 BRANCH = "v1.60.x"
 SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
            file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/files/0001-custom-allocators-define-missing-rebind-type-3895.patch b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/files/0001-custom-allocators-define-missing-rebind-type-3895.patch
deleted file mode 100644
index d964586..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/files/0001-custom-allocators-define-missing-rebind-type-3895.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyich@gmail.com>
-Date: Wed, 8 Mar 2023 11:31:56 +0000
-Subject: [PATCH] custom allocators: define missing 'rebind' type (#3895)
-
-Upstream-Status: Backport [https://github.com/nlohmann/json/commit/6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- tests/src/unit-allocator.cpp   | 9 +++++++++
- tests/src/unit-regression2.cpp | 9 +++++++++
- 2 files changed, 18 insertions(+)
-
-diff --git a/tests/src/unit-allocator.cpp b/tests/src/unit-allocator.cpp
-index 76e3b03f..f2e63552 100644
---- a/tests/src/unit-allocator.cpp
-+++ b/tests/src/unit-allocator.cpp
-@@ -20,11 +20,20 @@ struct bad_allocator : std::allocator<T>
- {
-     using std::allocator<T>::allocator;
- 
-+    bad_allocator() = default;
-+    template<class U> bad_allocator(const bad_allocator<U>& /*unused*/) { }
-+
-     template<class... Args>
-     void construct(T* /*unused*/, Args&& ... /*unused*/)
-     {
-         throw std::bad_alloc();
-     }
-+
-+    template <class U>
-+    struct rebind
-+    {
-+        using other = bad_allocator<U>;
-+    };
- };
- } // namespace
- 
-diff --git a/tests/src/unit-regression2.cpp b/tests/src/unit-regression2.cpp
-index 2bb9b32e..dbafb436 100644
---- a/tests/src/unit-regression2.cpp
-+++ b/tests/src/unit-regression2.cpp
-@@ -189,6 +189,15 @@ class my_allocator : public std::allocator<T>
- {
-   public:
-     using std::allocator<T>::allocator;
-+
-+    my_allocator() = default;
-+    template<class U> my_allocator(const my_allocator<U>& /*unused*/) { }
-+
-+    template <class U>
-+    struct rebind
-+    {
-+        using other = my_allocator<U>;
-+    };
- };
- 
- /////////////////////////////////////////////////////////////////////
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/files/0001-tests-unit-iterators2-use-std-ranges-equals-for-rang.patch b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/files/0001-tests-unit-iterators2-use-std-ranges-equals-for-rang.patch
deleted file mode 100644
index 463912e..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/files/0001-tests-unit-iterators2-use-std-ranges-equals-for-rang.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 660d0b58565073975d6f5d94365d6cbf150a4cf8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
-Date: Sun, 5 Mar 2023 14:11:22 +0100
-Subject: [PATCH] tests/unit-iterators2: use std::ranges::equals for range
- comparisons (#3950)
-
-Closes https://github.com/nlohmann/json/issues/3927
-
-Upstream-Status: Backport [https://github.com/nlohmann/json/commit/660d0b58565073975d6f5d94365d6cbf150a4cf8]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- tests/src/unit-iterators2.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/src/unit-iterators2.cpp b/tests/src/unit-iterators2.cpp
-index 27926084..72a5d9dc 100644
---- a/tests/src/unit-iterators2.cpp
-+++ b/tests/src/unit-iterators2.cpp
-@@ -943,7 +943,7 @@ TEST_CASE("iterators 2")
-                 json j_expected{5, 4, 3, 2, 1};
- 
-                 auto reversed = j | std::views::reverse;
--                CHECK(reversed == j_expected);
-+                CHECK(std::ranges::equal(reversed, j_expected));
-             }
- 
-             SECTION("transform")
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb
index 3509323..194e805 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb
@@ -8,12 +8,10 @@
 
 SRC_URI = "git://github.com/nlohmann/json.git;branch=develop;protocol=https \
            git://github.com/nlohmann/json_test_data.git;destsuffix=git/json_test_data;name=json-test-data;branch=master;protocol=https \
-           file://0001-custom-allocators-define-missing-rebind-type-3895.patch \
-           file://0001-tests-unit-iterators2-use-std-ranges-equals-for-rang.patch \
            file://run-ptest \
 "
 
-SRCREV = "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d"
+SRCREV = "9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03"
 SRCREV_json-test-data = "a1375cea09d27cc1c4cadb8d00470375b421ac37"
 
 SRCREV_FORMAT .= "_json-test-data"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Revert-io_uring-changes-from-libuv-1.46.0.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Revert-io_uring-changes-from-libuv-1.46.0.patch
deleted file mode 100644
index d98463d..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Revert-io_uring-changes-from-libuv-1.46.0.patch
+++ /dev/null
@@ -1,3414 +0,0 @@
-From 937dfa70104b7401a7570a98cf6e0a534e250557 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <martin.jansa@gmail.com>
-Date: Wed, 18 Oct 2023 22:43:55 +0200
-Subject: [PATCH] Revert io_uring changes from libuv-1.46.0
-
-Included in nodejs-20.4.0 with the libuv upgrade to 1.46.0 in:
-https://github.com/nodejs/node/commit/6199e1946c9abd59bd71a61870a4f6c85e100b18
-
-Revert "linux: work around io_uring IORING_OP_CLOSE bug (#4059)"
-This reverts commit 1752791c9ea89dbf54e2a20a9d9f899119a2d179.
-Revert "linux: fs_read to use io_uring if iovcnt > IOV_MAX (#4023)"
-This reverts commit e7b96331703e929e75d93c574573c9736e34b0c0.
-Revert "linux: add some more iouring backed fs ops (#4012)"
-This reverts commit 962b8e626ceaaf296eecab1d008e8b70dc6da5e7.
-Revert "android: disable io_uring support (#4016)"
-This reverts commit 281e6185cc9e77c582ff6ca9e4c00d57e6b90d95.
-Revert "unix,win: replace QUEUE with struct uv__queue (#4022)"
-This reverts commit 1b01b786c0180d29f07dccbb98001a2b3148828a.
-Revert "fs: use WTF-8 on Windows (#2970)"
-This reverts commit 8f32a14afaaa47514a7d28e1e069a8329e2dd939.
-
-Dropped deps/uv/docs deps/uv/test changes as these dirs aren't included
-in nodejs tarballs.
-
-Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
----
-Upstream-Status: Inappropriate [OE specific]
-
- deps/uv/include/uv.h                     |  10 +-
- deps/uv/include/uv/darwin.h              |   6 +-
- deps/uv/include/uv/linux.h               |   2 +-
- deps/uv/include/uv/threadpool.h          |   2 +-
- deps/uv/include/uv/unix.h                |  44 ++--
- deps/uv/include/uv/win.h                 |   4 +-
- deps/uv/src/queue.h                      | 154 ++++++-----
- deps/uv/src/threadpool.c                 |  72 +++---
- deps/uv/src/unix/aix.c                   |  14 +-
- deps/uv/src/unix/async.c                 |  52 ++--
- deps/uv/src/unix/core.c                  |  53 ++--
- deps/uv/src/unix/fs.c                    |  41 +--
- deps/uv/src/unix/fsevents.c              |  84 +++---
- deps/uv/src/unix/internal.h              |  11 -
- deps/uv/src/unix/kqueue.c                |  18 +-
- deps/uv/src/unix/linux.c                 | 257 +++----------------
- deps/uv/src/unix/loop-watcher.c          |  20 +-
- deps/uv/src/unix/loop.c                  |  28 +-
- deps/uv/src/unix/os390-syscalls.c        |  24 +-
- deps/uv/src/unix/os390-syscalls.h        |   2 +-
- deps/uv/src/unix/os390.c                 |  14 +-
- deps/uv/src/unix/pipe.c                  |   2 +-
- deps/uv/src/unix/posix-poll.c            |  14 +-
- deps/uv/src/unix/process.c               |  38 +--
- deps/uv/src/unix/signal.c                |   8 +-
- deps/uv/src/unix/stream.c                |  56 ++--
- deps/uv/src/unix/sunos.c                 |  18 +-
- deps/uv/src/unix/tcp.c                   |   4 +-
- deps/uv/src/unix/tty.c                   |   2 +-
- deps/uv/src/unix/udp.c                   |  76 +++---
- deps/uv/src/uv-common.c                  |  28 +-
- deps/uv/src/uv-common.h                  |   3 +-
- deps/uv/src/win/core.c                   |   6 +-
- deps/uv/src/win/fs.c                     | 311 ++++++++---------------
- deps/uv/src/win/handle-inl.h             |   2 +-
- deps/uv/src/win/pipe.c                   |  26 +-
- deps/uv/src/win/tcp.c                    |   4 +-
- deps/uv/src/win/udp.c                    |   4 +-
- deps/uv/test/test-fs.c                   |  53 ----
- deps/uv/test/test-list.h                 |   2 -
- deps/uv/test/test-queue-foreach-delete.c |   5 +-
- deps/uv/test/test-threadpool-cancel.c    |   5 -
- 42 files changed, 625 insertions(+), 954 deletions(-)
-
-diff --git a/deps/uv/include/uv.h b/deps/uv/include/uv.h
-index 02397dd0fdd..1af95289776 100644
---- a/deps/uv/include/uv.h
-+++ b/deps/uv/include/uv.h
-@@ -59,12 +59,6 @@ extern "C" {
- #include <stdio.h>
- #include <stdint.h>
- 
--/* Internal type, do not use. */
--struct uv__queue {
--  struct uv__queue* next;
--  struct uv__queue* prev;
--};
--
- #if defined(_WIN32)
- # include "uv/win.h"
- #else
-@@ -466,7 +460,7 @@ struct uv_shutdown_s {
-   uv_handle_type type;                                                        \
-   /* private */                                                               \
-   uv_close_cb close_cb;                                                       \
--  struct uv__queue handle_queue;                                              \
-+  void* handle_queue[2];                                                      \
-   union {                                                                     \
-     int fd;                                                                   \
-     void* reserved[4];                                                        \
-@@ -1870,7 +1864,7 @@ struct uv_loop_s {
-   void* data;
-   /* Loop reference counting. */
-   unsigned int active_handles;
--  struct uv__queue handle_queue;
-+  void* handle_queue[2];
-   union {
-     void* unused;
-     unsigned int count;
-diff --git a/deps/uv/include/uv/darwin.h b/deps/uv/include/uv/darwin.h
-index 06962bfda80..d226415820b 100644
---- a/deps/uv/include/uv/darwin.h
-+++ b/deps/uv/include/uv/darwin.h
-@@ -40,7 +40,7 @@
-   void* cf_state;                                                             \
-   uv_mutex_t cf_mutex;                                                        \
-   uv_sem_t cf_sem;                                                            \
--  struct uv__queue cf_signals;                                                \
-+  void* cf_signals[2];                                                        \
- 
- #define UV_PLATFORM_FS_EVENT_FIELDS                                           \
-   uv__io_t event_watcher;                                                     \
-@@ -48,8 +48,8 @@
-   int realpath_len;                                                           \
-   int cf_flags;                                                               \
-   uv_async_t* cf_cb;                                                          \
--  struct uv__queue cf_events;                                                 \
--  struct uv__queue cf_member;                                                 \
-+  void* cf_events[2];                                                         \
-+  void* cf_member[2];                                                         \
-   int cf_error;                                                               \
-   uv_mutex_t cf_mutex;                                                        \
- 
-diff --git a/deps/uv/include/uv/linux.h b/deps/uv/include/uv/linux.h
-index 9f22f8cf726..9b38405a190 100644
---- a/deps/uv/include/uv/linux.h
-+++ b/deps/uv/include/uv/linux.h
-@@ -28,7 +28,7 @@
-   int inotify_fd;                                                             \
- 
- #define UV_PLATFORM_FS_EVENT_FIELDS                                           \
--  struct uv__queue watchers;                                                  \
-+  void* watchers[2];                                                          \
-   int wd;                                                                     \
- 
- #endif /* UV_LINUX_H */
-diff --git a/deps/uv/include/uv/threadpool.h b/deps/uv/include/uv/threadpool.h
-index 24ce916fda4..9708ebdd530 100644
---- a/deps/uv/include/uv/threadpool.h
-+++ b/deps/uv/include/uv/threadpool.h
-@@ -31,7 +31,7 @@ struct uv__work {
-   void (*work)(struct uv__work *w);
-   void (*done)(struct uv__work *w, int status);
-   struct uv_loop_s* loop;
--  struct uv__queue wq;
-+  void* wq[2];
- };
- 
- #endif /* UV_THREADPOOL_H_ */
-diff --git a/deps/uv/include/uv/unix.h b/deps/uv/include/uv/unix.h
-index 09f88a56742..95447b8dd67 100644
---- a/deps/uv/include/uv/unix.h
-+++ b/deps/uv/include/uv/unix.h
-@@ -92,8 +92,8 @@ typedef struct uv__io_s uv__io_t;
- 
- struct uv__io_s {
-   uv__io_cb cb;
--  struct uv__queue pending_queue;
--  struct uv__queue watcher_queue;
-+  void* pending_queue[2];
-+  void* watcher_queue[2];
-   unsigned int pevents; /* Pending event mask i.e. mask at next tick. */
-   unsigned int events;  /* Current event mask. */
-   int fd;
-@@ -220,21 +220,21 @@ typedef struct {
- #define UV_LOOP_PRIVATE_FIELDS                                                \
-   unsigned long flags;                                                        \
-   int backend_fd;                                                             \
--  struct uv__queue pending_queue;                                             \
--  struct uv__queue watcher_queue;                                             \
-+  void* pending_queue[2];                                                     \
-+  void* watcher_queue[2];                                                     \
-   uv__io_t** watchers;                                                        \
-   unsigned int nwatchers;                                                     \
-   unsigned int nfds;                                                          \
--  struct uv__queue wq;                                                        \
-+  void* wq[2];                                                                \
-   uv_mutex_t wq_mutex;                                                        \
-   uv_async_t wq_async;                                                        \
-   uv_rwlock_t cloexec_lock;                                                   \
-   uv_handle_t* closing_handles;                                               \
--  struct uv__queue process_handles;                                           \
--  struct uv__queue prepare_handles;                                           \
--  struct uv__queue check_handles;                                             \
--  struct uv__queue idle_handles;                                              \
--  struct uv__queue async_handles;                                             \
-+  void* process_handles[2];                                                   \
-+  void* prepare_handles[2];                                                   \
-+  void* check_handles[2];                                                     \
-+  void* idle_handles[2];                                                      \
-+  void* async_handles[2];                                                     \
-   void (*async_unused)(void);  /* TODO(bnoordhuis) Remove in libuv v2. */     \
-   uv__io_t async_io_watcher;                                                  \
-   int async_wfd;                                                              \
-@@ -257,7 +257,7 @@ typedef struct {
- #define UV_PRIVATE_REQ_TYPES /* empty */
- 
- #define UV_WRITE_PRIVATE_FIELDS                                               \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
-   unsigned int write_index;                                                   \
-   uv_buf_t* bufs;                                                             \
-   unsigned int nbufs;                                                         \
-@@ -265,12 +265,12 @@ typedef struct {
-   uv_buf_t bufsml[4];                                                         \
- 
- #define UV_CONNECT_PRIVATE_FIELDS                                             \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
- 
- #define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */
- 
- #define UV_UDP_SEND_PRIVATE_FIELDS                                            \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
-   struct sockaddr_storage addr;                                               \
-   unsigned int nbufs;                                                         \
-   uv_buf_t* bufs;                                                             \
-@@ -286,8 +286,8 @@ typedef struct {
-   uv_connect_t *connect_req;                                                  \
-   uv_shutdown_t *shutdown_req;                                                \
-   uv__io_t io_watcher;                                                        \
--  struct uv__queue write_queue;                                               \
--  struct uv__queue write_completed_queue;                                     \
-+  void* write_queue[2];                                                       \
-+  void* write_completed_queue[2];                                             \
-   uv_connection_cb connection_cb;                                             \
-   int delayed_error;                                                          \
-   int accepted_fd;                                                            \
-@@ -300,8 +300,8 @@ typedef struct {
-   uv_alloc_cb alloc_cb;                                                       \
-   uv_udp_recv_cb recv_cb;                                                     \
-   uv__io_t io_watcher;                                                        \
--  struct uv__queue write_queue;                                               \
--  struct uv__queue write_completed_queue;                                     \
-+  void* write_queue[2];                                                       \
-+  void* write_completed_queue[2];                                             \
- 
- #define UV_PIPE_PRIVATE_FIELDS                                                \
-   const char* pipe_fname; /* NULL or strdup'ed */
-@@ -311,19 +311,19 @@ typedef struct {
- 
- #define UV_PREPARE_PRIVATE_FIELDS                                             \
-   uv_prepare_cb prepare_cb;                                                   \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
- 
- #define UV_CHECK_PRIVATE_FIELDS                                               \
-   uv_check_cb check_cb;                                                       \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
- 
- #define UV_IDLE_PRIVATE_FIELDS                                                \
-   uv_idle_cb idle_cb;                                                         \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
- 
- #define UV_ASYNC_PRIVATE_FIELDS                                               \
-   uv_async_cb async_cb;                                                       \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
-   int pending;                                                                \
- 
- #define UV_TIMER_PRIVATE_FIELDS                                               \
-@@ -352,7 +352,7 @@ typedef struct {
-   int retcode;
- 
- #define UV_PROCESS_PRIVATE_FIELDS                                             \
--  struct uv__queue queue;                                                     \
-+  void* queue[2];                                                             \
-   int status;                                                                 \
- 
- #define UV_FS_PRIVATE_FIELDS                                                  \
-diff --git a/deps/uv/include/uv/win.h b/deps/uv/include/uv/win.h
-index 6f8c47298e4..92a95fa15f1 100644
---- a/deps/uv/include/uv/win.h
-+++ b/deps/uv/include/uv/win.h
-@@ -357,7 +357,7 @@ typedef struct {
-   /* Counter to started timer */                                              \
-   uint64_t timer_counter;                                                     \
-   /* Threadpool */                                                            \
--  struct uv__queue wq;                                                        \
-+  void* wq[2];                                                                \
-   uv_mutex_t wq_mutex;                                                        \
-   uv_async_t wq_async;
- 
-@@ -486,7 +486,7 @@ typedef struct {
-     uint32_t payload_remaining;                                               \
-     uint64_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \
-   } ipc_data_frame;                                                           \
--  struct uv__queue ipc_xfer_queue;                                            \
-+  void* ipc_xfer_queue[2];                                                    \
-   int ipc_xfer_queue_length;                                                  \
-   uv_write_t* non_overlapped_writes_tail;                                     \
-   CRITICAL_SECTION readfile_thread_lock;                                      \
-diff --git a/deps/uv/src/queue.h b/deps/uv/src/queue.h
-index 5f8489e9bc5..ff3540a0a51 100644
---- a/deps/uv/src/queue.h
-+++ b/deps/uv/src/queue.h
-@@ -18,73 +18,91 @@
- 
- #include <stddef.h>
- 
--#define uv__queue_data(pointer, type, field)                                  \
--  ((type*) ((char*) (pointer) - offsetof(type, field)))
--
--#define uv__queue_foreach(q, h)                                               \
--  for ((q) = (h)->next; (q) != (h); (q) = (q)->next)
--
--static inline void uv__queue_init(struct uv__queue* q) {
--  q->next = q;
--  q->prev = q;
--}
--
--static inline int uv__queue_empty(const struct uv__queue* q) {
--  return q == q->next;
--}
--
--static inline struct uv__queue* uv__queue_head(const struct uv__queue* q) {
--  return q->next;
--}
--
--static inline struct uv__queue* uv__queue_next(const struct uv__queue* q) {
--  return q->next;
--}
--
--static inline void uv__queue_add(struct uv__queue* h, struct uv__queue* n) {
--  h->prev->next = n->next;
--  n->next->prev = h->prev;
--  h->prev = n->prev;
--  h->prev->next = h;
--}
--
--static inline void uv__queue_split(struct uv__queue* h,
--                                   struct uv__queue* q,
--                                   struct uv__queue* n) {
--  n->prev = h->prev;
--  n->prev->next = n;
--  n->next = q;
--  h->prev = q->prev;
--  h->prev->next = h;
--  q->prev = n;
--}
--
--static inline void uv__queue_move(struct uv__queue* h, struct uv__queue* n) {
--  if (uv__queue_empty(h))
--    uv__queue_init(n);
--  else
--    uv__queue_split(h, h->next, n);
--}
--
--static inline void uv__queue_insert_head(struct uv__queue* h,
--                                         struct uv__queue* q) {
--  q->next = h->next;
--  q->prev = h;
--  q->next->prev = q;
--  h->next = q;
--}
--
--static inline void uv__queue_insert_tail(struct uv__queue* h,
--                                         struct uv__queue* q) {
--  q->next = h;
--  q->prev = h->prev;
--  q->prev->next = q;
--  h->prev = q;
--}
--
--static inline void uv__queue_remove(struct uv__queue* q) {
--  q->prev->next = q->next;
--  q->next->prev = q->prev;
--}
-+typedef void *QUEUE[2];
-+
-+/* Private macros. */
-+#define QUEUE_NEXT(q)       (*(QUEUE **) &((*(q))[0]))
-+#define QUEUE_PREV(q)       (*(QUEUE **) &((*(q))[1]))
-+#define QUEUE_PREV_NEXT(q)  (QUEUE_NEXT(QUEUE_PREV(q)))
-+#define QUEUE_NEXT_PREV(q)  (QUEUE_PREV(QUEUE_NEXT(q)))
-+
-+/* Public macros. */
-+#define QUEUE_DATA(ptr, type, field)                                          \
-+  ((type *) ((char *) (ptr) - offsetof(type, field)))
-+
-+/* Important note: mutating the list while QUEUE_FOREACH is
-+ * iterating over its elements results in undefined behavior.
-+ */
-+#define QUEUE_FOREACH(q, h)                                                   \
-+  for ((q) = QUEUE_NEXT(h); (q) != (h); (q) = QUEUE_NEXT(q))
-+
-+#define QUEUE_EMPTY(q)                                                        \
-+  ((const QUEUE *) (q) == (const QUEUE *) QUEUE_NEXT(q))
-+
-+#define QUEUE_HEAD(q)                                                         \
-+  (QUEUE_NEXT(q))
-+
-+#define QUEUE_INIT(q)                                                         \
-+  do {                                                                        \
-+    QUEUE_NEXT(q) = (q);                                                      \
-+    QUEUE_PREV(q) = (q);                                                      \
-+  }                                                                           \
-+  while (0)
-+
-+#define QUEUE_ADD(h, n)                                                       \
-+  do {                                                                        \
-+    QUEUE_PREV_NEXT(h) = QUEUE_NEXT(n);                                       \
-+    QUEUE_NEXT_PREV(n) = QUEUE_PREV(h);                                       \
-+    QUEUE_PREV(h) = QUEUE_PREV(n);                                            \
-+    QUEUE_PREV_NEXT(h) = (h);                                                 \
-+  }                                                                           \
-+  while (0)
-+
-+#define QUEUE_SPLIT(h, q, n)                                                  \
-+  do {                                                                        \
-+    QUEUE_PREV(n) = QUEUE_PREV(h);                                            \
-+    QUEUE_PREV_NEXT(n) = (n);                                                 \
-+    QUEUE_NEXT(n) = (q);                                                      \
-+    QUEUE_PREV(h) = QUEUE_PREV(q);                                            \
-+    QUEUE_PREV_NEXT(h) = (h);                                                 \
-+    QUEUE_PREV(q) = (n);                                                      \
-+  }                                                                           \
-+  while (0)
-+
-+#define QUEUE_MOVE(h, n)                                                      \
-+  do {                                                                        \
-+    if (QUEUE_EMPTY(h))                                                       \
-+      QUEUE_INIT(n);                                                          \
-+    else {                                                                    \
-+      QUEUE* q = QUEUE_HEAD(h);                                               \
-+      QUEUE_SPLIT(h, q, n);                                                   \
-+    }                                                                         \
-+  }                                                                           \
-+  while (0)
-+
-+#define QUEUE_INSERT_HEAD(h, q)                                               \
-+  do {                                                                        \
-+    QUEUE_NEXT(q) = QUEUE_NEXT(h);                                            \
-+    QUEUE_PREV(q) = (h);                                                      \
-+    QUEUE_NEXT_PREV(q) = (q);                                                 \
-+    QUEUE_NEXT(h) = (q);                                                      \
-+  }                                                                           \
-+  while (0)
-+
-+#define QUEUE_INSERT_TAIL(h, q)                                               \
-+  do {                                                                        \
-+    QUEUE_NEXT(q) = (h);                                                      \
-+    QUEUE_PREV(q) = QUEUE_PREV(h);                                            \
-+    QUEUE_PREV_NEXT(q) = (q);                                                 \
-+    QUEUE_PREV(h) = (q);                                                      \
-+  }                                                                           \
-+  while (0)
-+
-+#define QUEUE_REMOVE(q)                                                       \
-+  do {                                                                        \
-+    QUEUE_PREV_NEXT(q) = QUEUE_NEXT(q);                                       \
-+    QUEUE_NEXT_PREV(q) = QUEUE_PREV(q);                                       \
-+  }                                                                           \
-+  while (0)
- 
- #endif /* QUEUE_H_ */
-diff --git a/deps/uv/src/threadpool.c b/deps/uv/src/threadpool.c
-index dbef67f2f10..51962bf0021 100644
---- a/deps/uv/src/threadpool.c
-+++ b/deps/uv/src/threadpool.c
-@@ -37,10 +37,10 @@ static unsigned int slow_io_work_running;
- static unsigned int nthreads;
- static uv_thread_t* threads;
- static uv_thread_t default_threads[4];
--static struct uv__queue exit_message;
--static struct uv__queue wq;
--static struct uv__queue run_slow_work_message;
--static struct uv__queue slow_io_pending_wq;
-+static QUEUE exit_message;
-+static QUEUE wq;
-+static QUEUE run_slow_work_message;
-+static QUEUE slow_io_pending_wq;
- 
- static unsigned int slow_work_thread_threshold(void) {
-   return (nthreads + 1) / 2;
-@@ -56,7 +56,7 @@ static void uv__cancelled(struct uv__work* w) {
-  */
- static void worker(void* arg) {
-   struct uv__work* w;
--  struct uv__queue* q;
-+  QUEUE* q;
-   int is_slow_work;
- 
-   uv_sem_post((uv_sem_t*) arg);
-@@ -68,49 +68,49 @@ static void worker(void* arg) {
- 
-     /* Keep waiting while either no work is present or only slow I/O
-        and we're at the threshold for that. */
--    while (uv__queue_empty(&wq) ||
--           (uv__queue_head(&wq) == &run_slow_work_message &&
--            uv__queue_next(&run_slow_work_message) == &wq &&
-+    while (QUEUE_EMPTY(&wq) ||
-+           (QUEUE_HEAD(&wq) == &run_slow_work_message &&
-+            QUEUE_NEXT(&run_slow_work_message) == &wq &&
-             slow_io_work_running >= slow_work_thread_threshold())) {
-       idle_threads += 1;
-       uv_cond_wait(&cond, &mutex);
-       idle_threads -= 1;
-     }
- 
--    q = uv__queue_head(&wq);
-+    q = QUEUE_HEAD(&wq);
-     if (q == &exit_message) {
-       uv_cond_signal(&cond);
-       uv_mutex_unlock(&mutex);
-       break;
-     }
- 
--    uv__queue_remove(q);
--    uv__queue_init(q);  /* Signal uv_cancel() that the work req is executing. */
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);  /* Signal uv_cancel() that the work req is executing. */
- 
-     is_slow_work = 0;
-     if (q == &run_slow_work_message) {
-       /* If we're at the slow I/O threshold, re-schedule until after all
-          other work in the queue is done. */
-       if (slow_io_work_running >= slow_work_thread_threshold()) {
--        uv__queue_insert_tail(&wq, q);
-+        QUEUE_INSERT_TAIL(&wq, q);
-         continue;
-       }
- 
-       /* If we encountered a request to run slow I/O work but there is none
-          to run, that means it's cancelled => Start over. */
--      if (uv__queue_empty(&slow_io_pending_wq))
-+      if (QUEUE_EMPTY(&slow_io_pending_wq))
-         continue;
- 
-       is_slow_work = 1;
-       slow_io_work_running++;
- 
--      q = uv__queue_head(&slow_io_pending_wq);
--      uv__queue_remove(q);
--      uv__queue_init(q);
-+      q = QUEUE_HEAD(&slow_io_pending_wq);
-+      QUEUE_REMOVE(q);
-+      QUEUE_INIT(q);
- 
-       /* If there is more slow I/O work, schedule it to be run as well. */
--      if (!uv__queue_empty(&slow_io_pending_wq)) {
--        uv__queue_insert_tail(&wq, &run_slow_work_message);
-+      if (!QUEUE_EMPTY(&slow_io_pending_wq)) {
-+        QUEUE_INSERT_TAIL(&wq, &run_slow_work_message);
-         if (idle_threads > 0)
-           uv_cond_signal(&cond);
-       }
-@@ -118,13 +118,13 @@ static void worker(void* arg) {
- 
-     uv_mutex_unlock(&mutex);
- 
--    w = uv__queue_data(q, struct uv__work, wq);
-+    w = QUEUE_DATA(q, struct uv__work, wq);
-     w->work(w);
- 
-     uv_mutex_lock(&w->loop->wq_mutex);
-     w->work = NULL;  /* Signal uv_cancel() that the work req is done
-                         executing. */
--    uv__queue_insert_tail(&w->loop->wq, &w->wq);
-+    QUEUE_INSERT_TAIL(&w->loop->wq, &w->wq);
-     uv_async_send(&w->loop->wq_async);
-     uv_mutex_unlock(&w->loop->wq_mutex);
- 
-@@ -139,12 +139,12 @@ static void worker(void* arg) {
- }
- 
- 
--static void post(struct uv__queue* q, enum uv__work_kind kind) {
-+static void post(QUEUE* q, enum uv__work_kind kind) {
-   uv_mutex_lock(&mutex);
-   if (kind == UV__WORK_SLOW_IO) {
-     /* Insert into a separate queue. */
--    uv__queue_insert_tail(&slow_io_pending_wq, q);
--    if (!uv__queue_empty(&run_slow_work_message)) {
-+    QUEUE_INSERT_TAIL(&slow_io_pending_wq, q);
-+    if (!QUEUE_EMPTY(&run_slow_work_message)) {
-       /* Running slow I/O tasks is already scheduled => Nothing to do here.
-          The worker that runs said other task will schedule this one as well. */
-       uv_mutex_unlock(&mutex);
-@@ -153,7 +153,7 @@ static void post(struct uv__queue* q, enum uv__work_kind kind) {
-     q = &run_slow_work_message;
-   }
- 
--  uv__queue_insert_tail(&wq, q);
-+  QUEUE_INSERT_TAIL(&wq, q);
-   if (idle_threads > 0)
-     uv_cond_signal(&cond);
-   uv_mutex_unlock(&mutex);
-@@ -220,9 +220,9 @@ static void init_threads(void) {
-   if (uv_mutex_init(&mutex))
-     abort();
- 
--  uv__queue_init(&wq);
--  uv__queue_init(&slow_io_pending_wq);
--  uv__queue_init(&run_slow_work_message);
-+  QUEUE_INIT(&wq);
-+  QUEUE_INIT(&slow_io_pending_wq);
-+  QUEUE_INIT(&run_slow_work_message);
- 
-   if (uv_sem_init(&sem, 0))
-     abort();
-@@ -285,9 +285,9 @@ static int uv__work_cancel(uv_loop_t* loop, uv_req_t* req, struct uv__work* w) {
-   uv_mutex_lock(&mutex);
-   uv_mutex_lock(&w->loop->wq_mutex);
- 
--  cancelled = !uv__queue_empty(&w->wq) && w->work != NULL;
-+  cancelled = !QUEUE_EMPTY(&w->wq) && w->work != NULL;
-   if (cancelled)
--    uv__queue_remove(&w->wq);
-+    QUEUE_REMOVE(&w->wq);
- 
-   uv_mutex_unlock(&w->loop->wq_mutex);
-   uv_mutex_unlock(&mutex);
-@@ -297,7 +297,7 @@ static int uv__work_cancel(uv_loop_t* loop, uv_req_t* req, struct uv__work* w) {
- 
-   w->work = uv__cancelled;
-   uv_mutex_lock(&loop->wq_mutex);
--  uv__queue_insert_tail(&loop->wq, &w->wq);
-+  QUEUE_INSERT_TAIL(&loop->wq, &w->wq);
-   uv_async_send(&loop->wq_async);
-   uv_mutex_unlock(&loop->wq_mutex);
- 
-@@ -308,21 +308,21 @@ static int uv__work_cancel(uv_loop_t* loop, uv_req_t* req, struct uv__work* w) {
- void uv__work_done(uv_async_t* handle) {
-   struct uv__work* w;
-   uv_loop_t* loop;
--  struct uv__queue* q;
--  struct uv__queue wq;
-+  QUEUE* q;
-+  QUEUE wq;
-   int err;
-   int nevents;
- 
-   loop = container_of(handle, uv_loop_t, wq_async);
-   uv_mutex_lock(&loop->wq_mutex);
--  uv__queue_move(&loop->wq, &wq);
-+  QUEUE_MOVE(&loop->wq, &wq);
-   uv_mutex_unlock(&loop->wq_mutex);
- 
-   nevents = 0;
- 
--  while (!uv__queue_empty(&wq)) {
--    q = uv__queue_head(&wq);
--    uv__queue_remove(q);
-+  while (!QUEUE_EMPTY(&wq)) {
-+    q = QUEUE_HEAD(&wq);
-+    QUEUE_REMOVE(q);
- 
-     w = container_of(q, struct uv__work, wq);
-     err = (w->work == uv__cancelled) ? UV_ECANCELED : 0;
-diff --git a/deps/uv/src/unix/aix.c b/deps/uv/src/unix/aix.c
-index 3af3009a216..f1afbed49ec 100644
---- a/deps/uv/src/unix/aix.c
-+++ b/deps/uv/src/unix/aix.c
-@@ -136,7 +136,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   struct pollfd pqry;
-   struct pollfd* pe;
-   struct poll_ctl pc;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__io_t* w;
-   uint64_t base;
-   uint64_t diff;
-@@ -151,18 +151,18 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int reset_timeout;
- 
-   if (loop->nfds == 0) {
--    assert(uv__queue_empty(&loop->watcher_queue));
-+    assert(QUEUE_EMPTY(&loop->watcher_queue));
-     return;
-   }
- 
-   lfields = uv__get_internal_fields(loop);
- 
--  while (!uv__queue_empty(&loop->watcher_queue)) {
--    q = uv__queue_head(&loop->watcher_queue);
--    uv__queue_remove(q);
--    uv__queue_init(q);
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
- 
--    w = uv__queue_data(q, uv__io_t, watcher_queue);
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
-     assert(w->pevents != 0);
-     assert(w->fd >= 0);
-     assert(w->fd < (int) loop->nwatchers);
-diff --git a/deps/uv/src/unix/async.c b/deps/uv/src/unix/async.c
-index 0ff2669e30a..5751b6d02be 100644
---- a/deps/uv/src/unix/async.c
-+++ b/deps/uv/src/unix/async.c
-@@ -55,7 +55,7 @@ int uv_async_init(uv_loop_t* loop, uv_async_t* handle, uv_async_cb async_cb) {
-   handle->pending = 0;
-   handle->u.fd = 0; /* This will be used as a busy flag. */
- 
--  uv__queue_insert_tail(&loop->async_handles, &handle->queue);
-+  QUEUE_INSERT_TAIL(&loop->async_handles, &handle->queue);
-   uv__handle_start(handle);
- 
-   return 0;
-@@ -124,7 +124,7 @@ static void uv__async_spin(uv_async_t* handle) {
- 
- void uv__async_close(uv_async_t* handle) {
-   uv__async_spin(handle);
--  uv__queue_remove(&handle->queue);
-+  QUEUE_REMOVE(&handle->queue);
-   uv__handle_stop(handle);
- }
- 
-@@ -132,8 +132,8 @@ void uv__async_close(uv_async_t* handle) {
- static void uv__async_io(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
-   char buf[1024];
-   ssize_t r;
--  struct uv__queue queue;
--  struct uv__queue* q;
-+  QUEUE queue;
-+  QUEUE* q;
-   uv_async_t* h;
-   _Atomic int *pending;
- 
-@@ -157,13 +157,13 @@ static void uv__async_io(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
-     abort();
-   }
- 
--  uv__queue_move(&loop->async_handles, &queue);
--  while (!uv__queue_empty(&queue)) {
--    q = uv__queue_head(&queue);
--    h = uv__queue_data(q, uv_async_t, queue);
-+  QUEUE_MOVE(&loop->async_handles, &queue);
-+  while (!QUEUE_EMPTY(&queue)) {
-+    q = QUEUE_HEAD(&queue);
-+    h = QUEUE_DATA(q, uv_async_t, queue);
- 
--    uv__queue_remove(q);
--    uv__queue_insert_tail(&loop->async_handles, q);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INSERT_TAIL(&loop->async_handles, q);
- 
-     /* Atomically fetch and clear pending flag */
-     pending = (_Atomic int*) &h->pending;
-@@ -241,8 +241,8 @@ static int uv__async_start(uv_loop_t* loop) {
- 
- 
- void uv__async_stop(uv_loop_t* loop) {
--  struct uv__queue queue;
--  struct uv__queue* q;
-+  QUEUE queue;
-+  QUEUE* q;
-   uv_async_t* h;
- 
-   if (loop->async_io_watcher.fd == -1)
-@@ -251,13 +251,13 @@ void uv__async_stop(uv_loop_t* loop) {
-   /* Make sure no other thread is accessing the async handle fd after the loop
-    * cleanup.
-    */
--  uv__queue_move(&loop->async_handles, &queue);
--  while (!uv__queue_empty(&queue)) {
--    q = uv__queue_head(&queue);
--    h = uv__queue_data(q, uv_async_t, queue);
-+  QUEUE_MOVE(&loop->async_handles, &queue);
-+  while (!QUEUE_EMPTY(&queue)) {
-+    q = QUEUE_HEAD(&queue);
-+    h = QUEUE_DATA(q, uv_async_t, queue);
- 
--    uv__queue_remove(q);
--    uv__queue_insert_tail(&loop->async_handles, q);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INSERT_TAIL(&loop->async_handles, q);
- 
-     uv__async_spin(h);
-   }
-@@ -275,20 +275,20 @@ void uv__async_stop(uv_loop_t* loop) {
- 
- 
- int uv__async_fork(uv_loop_t* loop) {
--  struct uv__queue queue;
--  struct uv__queue* q;
-+  QUEUE queue;
-+  QUEUE* q;
-   uv_async_t* h;
- 
-   if (loop->async_io_watcher.fd == -1) /* never started */
-     return 0;
- 
--  uv__queue_move(&loop->async_handles, &queue);
--  while (!uv__queue_empty(&queue)) {
--    q = uv__queue_head(&queue);
--    h = uv__queue_data(q, uv_async_t, queue);
-+  QUEUE_MOVE(&loop->async_handles, &queue);
-+  while (!QUEUE_EMPTY(&queue)) {
-+    q = QUEUE_HEAD(&queue);
-+    h = QUEUE_DATA(q, uv_async_t, queue);
- 
--    uv__queue_remove(q);
--    uv__queue_insert_tail(&loop->async_handles, q);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INSERT_TAIL(&loop->async_handles, q);
- 
-     /* The state of any thread that set pending is now likely corrupt in this
-      * child because the user called fork, so just clear these flags and move
-diff --git a/deps/uv/src/unix/core.c b/deps/uv/src/unix/core.c
-index 25c5181f370..55aa962787e 100644
---- a/deps/uv/src/unix/core.c
-+++ b/deps/uv/src/unix/core.c
-@@ -344,7 +344,7 @@ static void uv__finish_close(uv_handle_t* handle) {
-   }
- 
-   uv__handle_unref(handle);
--  uv__queue_remove(&handle->handle_queue);
-+  QUEUE_REMOVE(&handle->handle_queue);
- 
-   if (handle->close_cb) {
-     handle->close_cb(handle);
-@@ -380,7 +380,7 @@ int uv_backend_fd(const uv_loop_t* loop) {
- static int uv__loop_alive(const uv_loop_t* loop) {
-   return uv__has_active_handles(loop) ||
-          uv__has_active_reqs(loop) ||
--         !uv__queue_empty(&loop->pending_queue) ||
-+         !QUEUE_EMPTY(&loop->pending_queue) ||
-          loop->closing_handles != NULL;
- }
- 
-@@ -389,8 +389,8 @@ static int uv__backend_timeout(const uv_loop_t* loop) {
-   if (loop->stop_flag == 0 &&
-       /* uv__loop_alive(loop) && */
-       (uv__has_active_handles(loop) || uv__has_active_reqs(loop)) &&
--      uv__queue_empty(&loop->pending_queue) &&
--      uv__queue_empty(&loop->idle_handles) &&
-+      QUEUE_EMPTY(&loop->pending_queue) &&
-+      QUEUE_EMPTY(&loop->idle_handles) &&
-       (loop->flags & UV_LOOP_REAP_CHILDREN) == 0 &&
-       loop->closing_handles == NULL)
-     return uv__next_timeout(loop);
-@@ -399,7 +399,7 @@ static int uv__backend_timeout(const uv_loop_t* loop) {
- 
- 
- int uv_backend_timeout(const uv_loop_t* loop) {
--  if (uv__queue_empty(&loop->watcher_queue))
-+  if (QUEUE_EMPTY(&loop->watcher_queue))
-     return uv__backend_timeout(loop);
-   /* Need to call uv_run to update the backend fd state. */
-   return 0;
-@@ -431,8 +431,7 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) {
- 
-   while (r != 0 && loop->stop_flag == 0) {
-     can_sleep =
--        uv__queue_empty(&loop->pending_queue) &&
--        uv__queue_empty(&loop->idle_handles);
-+        QUEUE_EMPTY(&loop->pending_queue) && QUEUE_EMPTY(&loop->idle_handles);
- 
-     uv__run_pending(loop);
-     uv__run_idle(loop);
-@@ -448,7 +447,7 @@ int uv_run(uv_loop_t* loop, uv_run_mode mode) {
- 
-     /* Process immediate callbacks (e.g. write_cb) a small fixed number of
-      * times to avoid loop starvation.*/
--    for (r = 0; r < 8 && !uv__queue_empty(&loop->pending_queue); r++)
-+    for (r = 0; r < 8 && !QUEUE_EMPTY(&loop->pending_queue); r++)
-       uv__run_pending(loop);
- 
-     /* Run one final update on the provider_idle_time in case uv__io_poll
-@@ -827,17 +826,17 @@ int uv_fileno(const uv_handle_t* handle, uv_os_fd_t* fd) {
- 
- 
- static void uv__run_pending(uv_loop_t* loop) {
--  struct uv__queue* q;
--  struct uv__queue pq;
-+  QUEUE* q;
-+  QUEUE pq;
-   uv__io_t* w;
- 
--  uv__queue_move(&loop->pending_queue, &pq);
-+  QUEUE_MOVE(&loop->pending_queue, &pq);
- 
--  while (!uv__queue_empty(&pq)) {
--    q = uv__queue_head(&pq);
--    uv__queue_remove(q);
--    uv__queue_init(q);
--    w = uv__queue_data(q, uv__io_t, pending_queue);
-+  while (!QUEUE_EMPTY(&pq)) {
-+    q = QUEUE_HEAD(&pq);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
-+    w = QUEUE_DATA(q, uv__io_t, pending_queue);
-     w->cb(loop, w, POLLOUT);
-   }
- }
-@@ -892,8 +891,8 @@ static void maybe_resize(uv_loop_t* loop, unsigned int len) {
- void uv__io_init(uv__io_t* w, uv__io_cb cb, int fd) {
-   assert(cb != NULL);
-   assert(fd >= -1);
--  uv__queue_init(&w->pending_queue);
--  uv__queue_init(&w->watcher_queue);
-+  QUEUE_INIT(&w->pending_queue);
-+  QUEUE_INIT(&w->watcher_queue);
-   w->cb = cb;
-   w->fd = fd;
-   w->events = 0;
-@@ -919,8 +918,8 @@ void uv__io_start(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
-     return;
- #endif
- 
--  if (uv__queue_empty(&w->watcher_queue))
--    uv__queue_insert_tail(&loop->watcher_queue, &w->watcher_queue);
-+  if (QUEUE_EMPTY(&w->watcher_queue))
-+    QUEUE_INSERT_TAIL(&loop->watcher_queue, &w->watcher_queue);
- 
-   if (loop->watchers[w->fd] == NULL) {
-     loop->watchers[w->fd] = w;
-@@ -945,8 +944,8 @@ void uv__io_stop(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
-   w->pevents &= ~events;
- 
-   if (w->pevents == 0) {
--    uv__queue_remove(&w->watcher_queue);
--    uv__queue_init(&w->watcher_queue);
-+    QUEUE_REMOVE(&w->watcher_queue);
-+    QUEUE_INIT(&w->watcher_queue);
-     w->events = 0;
- 
-     if (w == loop->watchers[w->fd]) {
-@@ -955,14 +954,14 @@ void uv__io_stop(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
-       loop->nfds--;
-     }
-   }
--  else if (uv__queue_empty(&w->watcher_queue))
--    uv__queue_insert_tail(&loop->watcher_queue, &w->watcher_queue);
-+  else if (QUEUE_EMPTY(&w->watcher_queue))
-+    QUEUE_INSERT_TAIL(&loop->watcher_queue, &w->watcher_queue);
- }
- 
- 
- void uv__io_close(uv_loop_t* loop, uv__io_t* w) {
-   uv__io_stop(loop, w, POLLIN | POLLOUT | UV__POLLRDHUP | UV__POLLPRI);
--  uv__queue_remove(&w->pending_queue);
-+  QUEUE_REMOVE(&w->pending_queue);
- 
-   /* Remove stale events for this file descriptor */
-   if (w->fd != -1)
-@@ -971,8 +970,8 @@ void uv__io_close(uv_loop_t* loop, uv__io_t* w) {
- 
- 
- void uv__io_feed(uv_loop_t* loop, uv__io_t* w) {
--  if (uv__queue_empty(&w->pending_queue))
--    uv__queue_insert_tail(&loop->pending_queue, &w->pending_queue);
-+  if (QUEUE_EMPTY(&w->pending_queue))
-+    QUEUE_INSERT_TAIL(&loop->pending_queue, &w->pending_queue);
- }
- 
- 
-diff --git a/deps/uv/src/unix/fs.c b/deps/uv/src/unix/fs.c
-index 6b051c124f2..00d385c24b7 100644
---- a/deps/uv/src/unix/fs.c
-+++ b/deps/uv/src/unix/fs.c
-@@ -62,6 +62,7 @@
- 
- #if defined(__linux__)
- # include <sys/sendfile.h>
-+# include <sys/utsname.h>
- #endif
- 
- #if defined(__sun)
-@@ -903,6 +904,31 @@ out:
- 
- 
- #ifdef __linux__
-+static unsigned uv__kernel_version(void) {
-+  static _Atomic unsigned cached_version;
-+  struct utsname u;
-+  unsigned version;
-+  unsigned major;
-+  unsigned minor;
-+  unsigned patch;
-+
-+  version = atomic_load_explicit(&cached_version, memory_order_relaxed);
-+  if (version != 0)
-+    return version;
-+
-+  if (-1 == uname(&u))
-+    return 0;
-+
-+  if (3 != sscanf(u.release, "%u.%u.%u", &major, &minor, &patch))
-+    return 0;
-+
-+  version = major * 65536 + minor * 256 + patch;
-+  atomic_store_explicit(&cached_version, version, memory_order_relaxed);
-+
-+  return version;
-+}
-+
-+
- /* Pre-4.20 kernels have a bug where CephFS uses the RADOS copy-from command
-  * in copy_file_range() when it shouldn't. There is no workaround except to
-  * fall back to a regular copy.
-@@ -1905,9 +1931,6 @@ int uv_fs_link(uv_loop_t* loop,
-                uv_fs_cb cb) {
-   INIT(LINK);
-   PATH2;
--  if (cb != NULL)
--    if (uv__iou_fs_link(loop, req))
--      return 0;
-   POST;
- }
- 
-@@ -1920,9 +1943,6 @@ int uv_fs_mkdir(uv_loop_t* loop,
-   INIT(MKDIR);
-   PATH;
-   req->mode = mode;
--  if (cb != NULL)
--    if (uv__iou_fs_mkdir(loop, req))
--      return 0;
-   POST;
- }
- 
-@@ -2074,9 +2094,6 @@ int uv_fs_rename(uv_loop_t* loop,
-                  uv_fs_cb cb) {
-   INIT(RENAME);
-   PATH2;
--  if (cb != NULL)
--    if (uv__iou_fs_rename(loop, req))
--      return 0;
-   POST;
- }
- 
-@@ -2123,9 +2140,6 @@ int uv_fs_symlink(uv_loop_t* loop,
-   INIT(SYMLINK);
-   PATH2;
-   req->flags = flags;
--  if (cb != NULL)
--    if (uv__iou_fs_symlink(loop, req))
--      return 0;
-   POST;
- }
- 
-@@ -2133,9 +2147,6 @@ int uv_fs_symlink(uv_loop_t* loop,
- int uv_fs_unlink(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) {
-   INIT(UNLINK);
-   PATH;
--  if (cb != NULL)
--    if (uv__iou_fs_unlink(loop, req))
--      return 0;
-   POST;
- }
- 
-diff --git a/deps/uv/src/unix/fsevents.c b/deps/uv/src/unix/fsevents.c
-index df703f3635f..0535b4547aa 100644
---- a/deps/uv/src/unix/fsevents.c
-+++ b/deps/uv/src/unix/fsevents.c
-@@ -80,13 +80,13 @@ enum uv__cf_loop_signal_type_e {
- typedef enum uv__cf_loop_signal_type_e uv__cf_loop_signal_type_t;
- 
- struct uv__cf_loop_signal_s {
--  struct uv__queue member;
-+  QUEUE member;
-   uv_fs_event_t* handle;
-   uv__cf_loop_signal_type_t type;
- };
- 
- struct uv__fsevents_event_s {
--  struct uv__queue member;
-+  QUEUE member;
-   int events;
-   char path[1];
- };
-@@ -98,7 +98,7 @@ struct uv__cf_loop_state_s {
-   FSEventStreamRef fsevent_stream;
-   uv_sem_t fsevent_sem;
-   uv_mutex_t fsevent_mutex;
--  struct uv__queue fsevent_handles;
-+  void* fsevent_handles[2];
-   unsigned int fsevent_handle_count;
- };
- 
-@@ -150,22 +150,22 @@ static void (*pFSEventStreamStop)(FSEventStreamRef);
- 
- #define UV__FSEVENTS_PROCESS(handle, block)                                   \
-     do {                                                                      \
--      struct uv__queue events;                                                \
--      struct uv__queue* q;                                                    \
-+      QUEUE events;                                                           \
-+      QUEUE* q;                                                               \
-       uv__fsevents_event_t* event;                                            \
-       int err;                                                                \
-       uv_mutex_lock(&(handle)->cf_mutex);                                     \
-       /* Split-off all events and empty original queue */                     \
--      uv__queue_move(&(handle)->cf_events, &events);                          \
-+      QUEUE_MOVE(&(handle)->cf_events, &events);                              \
-       /* Get error (if any) and zero original one */                          \
-       err = (handle)->cf_error;                                               \
-       (handle)->cf_error = 0;                                                 \
-       uv_mutex_unlock(&(handle)->cf_mutex);                                   \
-       /* Loop through events, deallocating each after processing */           \
--      while (!uv__queue_empty(&events)) {                                     \
--        q = uv__queue_head(&events);                                          \
--        event = uv__queue_data(q, uv__fsevents_event_t, member);              \
--        uv__queue_remove(q);                                                  \
-+      while (!QUEUE_EMPTY(&events)) {                                         \
-+        q = QUEUE_HEAD(&events);                                              \
-+        event = QUEUE_DATA(q, uv__fsevents_event_t, member);                  \
-+        QUEUE_REMOVE(q);                                                      \
-         /* NOTE: Checking uv__is_active() is required here, because handle    \
-          * callback may close handle and invoking it after it will lead to    \
-          * incorrect behaviour */                                             \
-@@ -193,14 +193,14 @@ static void uv__fsevents_cb(uv_async_t* cb) {
- 
- /* Runs in CF thread, pushed event into handle's event list */
- static void uv__fsevents_push_event(uv_fs_event_t* handle,
--                                    struct uv__queue* events,
-+                                    QUEUE* events,
-                                     int err) {
-   assert(events != NULL || err != 0);
-   uv_mutex_lock(&handle->cf_mutex);
- 
-   /* Concatenate two queues */
-   if (events != NULL)
--    uv__queue_add(&handle->cf_events, events);
-+    QUEUE_ADD(&handle->cf_events, events);
- 
-   /* Propagate error */
-   if (err != 0)
-@@ -224,12 +224,12 @@ static void uv__fsevents_event_cb(const FSEventStreamRef streamRef,
-   char* path;
-   char* pos;
-   uv_fs_event_t* handle;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv_loop_t* loop;
-   uv__cf_loop_state_t* state;
-   uv__fsevents_event_t* event;
-   FSEventStreamEventFlags flags;
--  struct uv__queue head;
-+  QUEUE head;
- 
-   loop = info;
-   state = loop->cf_state;
-@@ -238,9 +238,9 @@ static void uv__fsevents_event_cb(const FSEventStreamRef streamRef,
- 
-   /* For each handle */
-   uv_mutex_lock(&state->fsevent_mutex);
--  uv__queue_foreach(q, &state->fsevent_handles) {
--    handle = uv__queue_data(q, uv_fs_event_t, cf_member);
--    uv__queue_init(&head);
-+  QUEUE_FOREACH(q, &state->fsevent_handles) {
-+    handle = QUEUE_DATA(q, uv_fs_event_t, cf_member);
-+    QUEUE_INIT(&head);
- 
-     /* Process and filter out events */
-     for (i = 0; i < numEvents; i++) {
-@@ -318,10 +318,10 @@ static void uv__fsevents_event_cb(const FSEventStreamRef streamRef,
-           event->events = UV_CHANGE;
-       }
- 
--      uv__queue_insert_tail(&head, &event->member);
-+      QUEUE_INSERT_TAIL(&head, &event->member);
-     }
- 
--    if (!uv__queue_empty(&head))
-+    if (!QUEUE_EMPTY(&head))
-       uv__fsevents_push_event(handle, &head, 0);
-   }
-   uv_mutex_unlock(&state->fsevent_mutex);
-@@ -403,7 +403,7 @@ static void uv__fsevents_destroy_stream(uv__cf_loop_state_t* state) {
- static void uv__fsevents_reschedule(uv__cf_loop_state_t* state,
-                                     uv_loop_t* loop,
-                                     uv__cf_loop_signal_type_t type) {
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv_fs_event_t* curr;
-   CFArrayRef cf_paths;
-   CFStringRef* paths;
-@@ -446,9 +446,9 @@ static void uv__fsevents_reschedule(uv__cf_loop_state_t* state,
- 
-     q = &state->fsevent_handles;
-     for (; i < path_count; i++) {
--      q = uv__queue_next(q);
-+      q = QUEUE_NEXT(q);
-       assert(q != &state->fsevent_handles);
--      curr = uv__queue_data(q, uv_fs_event_t, cf_member);
-+      curr = QUEUE_DATA(q, uv_fs_event_t, cf_member);
- 
-       assert(curr->realpath != NULL);
-       paths[i] =
-@@ -486,8 +486,8 @@ final:
- 
-     /* Broadcast error to all handles */
-     uv_mutex_lock(&state->fsevent_mutex);
--    uv__queue_foreach(q, &state->fsevent_handles) {
--      curr = uv__queue_data(q, uv_fs_event_t, cf_member);
-+    QUEUE_FOREACH(q, &state->fsevent_handles) {
-+      curr = QUEUE_DATA(q, uv_fs_event_t, cf_member);
-       uv__fsevents_push_event(curr, NULL, err);
-     }
-     uv_mutex_unlock(&state->fsevent_mutex);
-@@ -606,7 +606,7 @@ static int uv__fsevents_loop_init(uv_loop_t* loop) {
-   if (err)
-     goto fail_sem_init;
- 
--  uv__queue_init(&loop->cf_signals);
-+  QUEUE_INIT(&loop->cf_signals);
- 
-   err = uv_sem_init(&state->fsevent_sem, 0);
-   if (err)
-@@ -616,7 +616,7 @@ static int uv__fsevents_loop_init(uv_loop_t* loop) {
-   if (err)
-     goto fail_fsevent_mutex_init;
- 
--  uv__queue_init(&state->fsevent_handles);
-+  QUEUE_INIT(&state->fsevent_handles);
-   state->fsevent_need_reschedule = 0;
-   state->fsevent_handle_count = 0;
- 
-@@ -675,7 +675,7 @@ fail_mutex_init:
- void uv__fsevents_loop_delete(uv_loop_t* loop) {
-   uv__cf_loop_signal_t* s;
-   uv__cf_loop_state_t* state;
--  struct uv__queue* q;
-+  QUEUE* q;
- 
-   if (loop->cf_state == NULL)
-     return;
-@@ -688,10 +688,10 @@ void uv__fsevents_loop_delete(uv_loop_t* loop) {
-   uv_mutex_destroy(&loop->cf_mutex);
- 
-   /* Free any remaining data */
--  while (!uv__queue_empty(&loop->cf_signals)) {
--    q = uv__queue_head(&loop->cf_signals);
--    s = uv__queue_data(q, uv__cf_loop_signal_t, member);
--    uv__queue_remove(q);
-+  while (!QUEUE_EMPTY(&loop->cf_signals)) {
-+    q = QUEUE_HEAD(&loop->cf_signals);
-+    s = QUEUE_DATA(q, uv__cf_loop_signal_t, member);
-+    QUEUE_REMOVE(q);
-     uv__free(s);
-   }
- 
-@@ -735,22 +735,22 @@ static void* uv__cf_loop_runner(void* arg) {
- static void uv__cf_loop_cb(void* arg) {
-   uv_loop_t* loop;
-   uv__cf_loop_state_t* state;
--  struct uv__queue* item;
--  struct uv__queue split_head;
-+  QUEUE* item;
-+  QUEUE split_head;
-   uv__cf_loop_signal_t* s;
- 
-   loop = arg;
-   state = loop->cf_state;
- 
-   uv_mutex_lock(&loop->cf_mutex);
--  uv__queue_move(&loop->cf_signals, &split_head);
-+  QUEUE_MOVE(&loop->cf_signals, &split_head);
-   uv_mutex_unlock(&loop->cf_mutex);
- 
--  while (!uv__queue_empty(&split_head)) {
--    item = uv__queue_head(&split_head);
--    uv__queue_remove(item);
-+  while (!QUEUE_EMPTY(&split_head)) {
-+    item = QUEUE_HEAD(&split_head);
-+    QUEUE_REMOVE(item);
- 
--    s = uv__queue_data(item, uv__cf_loop_signal_t, member);
-+    s = QUEUE_DATA(item, uv__cf_loop_signal_t, member);
- 
-     /* This was a termination signal */
-     if (s->handle == NULL)
-@@ -778,7 +778,7 @@ int uv__cf_loop_signal(uv_loop_t* loop,
-   item->type = type;
- 
-   uv_mutex_lock(&loop->cf_mutex);
--  uv__queue_insert_tail(&loop->cf_signals, &item->member);
-+  QUEUE_INSERT_TAIL(&loop->cf_signals, &item->member);
- 
-   state = loop->cf_state;
-   assert(state != NULL);
-@@ -807,7 +807,7 @@ int uv__fsevents_init(uv_fs_event_t* handle) {
-   handle->realpath_len = strlen(handle->realpath);
- 
-   /* Initialize event queue */
--  uv__queue_init(&handle->cf_events);
-+  QUEUE_INIT(&handle->cf_events);
-   handle->cf_error = 0;
- 
-   /*
-@@ -832,7 +832,7 @@ int uv__fsevents_init(uv_fs_event_t* handle) {
-   /* Insert handle into the list */
-   state = handle->loop->cf_state;
-   uv_mutex_lock(&state->fsevent_mutex);
--  uv__queue_insert_tail(&state->fsevent_handles, &handle->cf_member);
-+  QUEUE_INSERT_TAIL(&state->fsevent_handles, &handle->cf_member);
-   state->fsevent_handle_count++;
-   state->fsevent_need_reschedule = 1;
-   uv_mutex_unlock(&state->fsevent_mutex);
-@@ -872,7 +872,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
-   /* Remove handle from  the list */
-   state = handle->loop->cf_state;
-   uv_mutex_lock(&state->fsevent_mutex);
--  uv__queue_remove(&handle->cf_member);
-+  QUEUE_REMOVE(&handle->cf_member);
-   state->fsevent_handle_count--;
-   state->fsevent_need_reschedule = 1;
-   uv_mutex_unlock(&state->fsevent_mutex);
-diff --git a/deps/uv/src/unix/internal.h b/deps/uv/src/unix/internal.h
-index fe588513603..6c5822e6a0d 100644
---- a/deps/uv/src/unix/internal.h
-+++ b/deps/uv/src/unix/internal.h
-@@ -335,30 +335,20 @@ int uv__iou_fs_close(uv_loop_t* loop, uv_fs_t* req);
- int uv__iou_fs_fsync_or_fdatasync(uv_loop_t* loop,
-                                   uv_fs_t* req,
-                                   uint32_t fsync_flags);
--int uv__iou_fs_link(uv_loop_t* loop, uv_fs_t* req);
--int uv__iou_fs_mkdir(uv_loop_t* loop, uv_fs_t* req);
- int uv__iou_fs_open(uv_loop_t* loop, uv_fs_t* req);
- int uv__iou_fs_read_or_write(uv_loop_t* loop,
-                              uv_fs_t* req,
-                              int is_read);
--int uv__iou_fs_rename(uv_loop_t* loop, uv_fs_t* req);
- int uv__iou_fs_statx(uv_loop_t* loop,
-                      uv_fs_t* req,
-                      int is_fstat,
-                      int is_lstat);
--int uv__iou_fs_symlink(uv_loop_t* loop, uv_fs_t* req);
--int uv__iou_fs_unlink(uv_loop_t* loop, uv_fs_t* req);
- #else
- #define uv__iou_fs_close(loop, req) 0
- #define uv__iou_fs_fsync_or_fdatasync(loop, req, fsync_flags) 0
--#define uv__iou_fs_link(loop, req) 0
--#define uv__iou_fs_mkdir(loop, req) 0
- #define uv__iou_fs_open(loop, req) 0
- #define uv__iou_fs_read_or_write(loop, req, is_read) 0
--#define uv__iou_fs_rename(loop, req) 0
- #define uv__iou_fs_statx(loop, req, is_fstat, is_lstat) 0
--#define uv__iou_fs_symlink(loop, req) 0
--#define uv__iou_fs_unlink(loop, req) 0
- #endif
- 
- #if defined(__APPLE__)
-@@ -439,7 +429,6 @@ int uv__statx(int dirfd,
-               struct uv__statx* statxbuf);
- void uv__statx_to_stat(const struct uv__statx* statxbuf, uv_stat_t* buf);
- ssize_t uv__getrandom(void* buf, size_t buflen, unsigned flags);
--unsigned uv__kernel_version(void);
- #endif
- 
- typedef int (*uv__peersockfunc)(int, struct sockaddr*, socklen_t*);
-diff --git a/deps/uv/src/unix/kqueue.c b/deps/uv/src/unix/kqueue.c
-index b78242d3be4..82916d65933 100644
---- a/deps/uv/src/unix/kqueue.c
-+++ b/deps/uv/src/unix/kqueue.c
-@@ -133,7 +133,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   struct timespec spec;
-   unsigned int nevents;
-   unsigned int revents;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__io_t* w;
-   uv_process_t* process;
-   sigset_t* pset;
-@@ -152,19 +152,19 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int reset_timeout;
- 
-   if (loop->nfds == 0) {
--    assert(uv__queue_empty(&loop->watcher_queue));
-+    assert(QUEUE_EMPTY(&loop->watcher_queue));
-     return;
-   }
- 
-   lfields = uv__get_internal_fields(loop);
-   nevents = 0;
- 
--  while (!uv__queue_empty(&loop->watcher_queue)) {
--    q = uv__queue_head(&loop->watcher_queue);
--    uv__queue_remove(q);
--    uv__queue_init(q);
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
- 
--    w = uv__queue_data(q, uv__io_t, watcher_queue);
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
-     assert(w->pevents != 0);
-     assert(w->fd >= 0);
-     assert(w->fd < (int) loop->nwatchers);
-@@ -307,8 +307,8 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
- 
-       /* Handle kevent NOTE_EXIT results */
-       if (ev->filter == EVFILT_PROC) {
--        uv__queue_foreach(q, &loop->process_handles) {
--          process = uv__queue_data(q, uv_process_t, queue);
-+        QUEUE_FOREACH(q, &loop->process_handles) {
-+          process = QUEUE_DATA(q, uv_process_t, queue);
-           if (process->pid == fd) {
-             process->flags |= UV_HANDLE_REAP;
-             loop->flags |= UV_LOOP_REAP_CHILDREN;
-diff --git a/deps/uv/src/unix/linux.c b/deps/uv/src/unix/linux.c
-index 48b9c2c43e1..5f84ad0eea3 100644
---- a/deps/uv/src/unix/linux.c
-+++ b/deps/uv/src/unix/linux.c
-@@ -48,7 +48,6 @@
- #include <sys/sysinfo.h>
- #include <sys/sysmacros.h>
- #include <sys/types.h>
--#include <sys/utsname.h>
- #include <time.h>
- #include <unistd.h>
- 
-@@ -151,11 +150,6 @@ enum {
-   UV__IORING_OP_CLOSE = 19,
-   UV__IORING_OP_STATX = 21,
-   UV__IORING_OP_EPOLL_CTL = 29,
--  UV__IORING_OP_RENAMEAT = 35,
--  UV__IORING_OP_UNLINKAT = 36,
--  UV__IORING_OP_MKDIRAT = 37,
--  UV__IORING_OP_SYMLINKAT = 38,
--  UV__IORING_OP_LINKAT = 39,
- };
- 
- enum {
-@@ -168,10 +162,6 @@ enum {
-   UV__IORING_SQ_CQ_OVERFLOW = 2u,
- };
- 
--enum {
--  UV__MKDIRAT_SYMLINKAT_LINKAT = 1u,
--};
--
- struct uv__io_cqring_offsets {
-   uint32_t head;
-   uint32_t tail;
-@@ -267,7 +257,7 @@ STATIC_ASSERT(EPOLL_CTL_MOD < 4);
- 
- struct watcher_list {
-   RB_ENTRY(watcher_list) entry;
--  struct uv__queue watchers;
-+  QUEUE watchers;
-   int iterating;
-   char* path;
-   int wd;
-@@ -310,31 +300,6 @@ static struct watcher_root* uv__inotify_watchers(uv_loop_t* loop) {
- }
- 
- 
--unsigned uv__kernel_version(void) {
--  static _Atomic unsigned cached_version;
--  struct utsname u;
--  unsigned version;
--  unsigned major;
--  unsigned minor;
--  unsigned patch;
--
--  version = atomic_load_explicit(&cached_version, memory_order_relaxed);
--  if (version != 0)
--    return version;
--
--  if (-1 == uname(&u))
--    return 0;
--
--  if (3 != sscanf(u.release, "%u.%u.%u", &major, &minor, &patch))
--    return 0;
--
--  version = major * 65536 + minor * 256 + patch;
--  atomic_store_explicit(&cached_version, version, memory_order_relaxed);
--
--  return version;
--}
--
--
- ssize_t
- uv__fs_copy_file_range(int fd_in,
-                        off_t* off_in,
-@@ -420,9 +385,6 @@ int uv__io_uring_register(int fd, unsigned opcode, void* arg, unsigned nargs) {
- 
- 
- static int uv__use_io_uring(void) {
--#if defined(__ANDROID_API__)
--  return 0;  /* Possibly available but blocked by seccomp. */
--#else
-   /* Ternary: unknown=0, yes=1, no=-1 */
-   static _Atomic int use_io_uring;
-   char* val;
-@@ -437,7 +399,6 @@ static int uv__use_io_uring(void) {
-   }
- 
-   return use > 0;
--#endif
- }
- 
- 
-@@ -542,10 +503,6 @@ static void uv__iou_init(int epollfd,
-   iou->sqelen = sqelen;
-   iou->ringfd = ringfd;
-   iou->in_flight = 0;
--  iou->flags = 0;
--
--  if (uv__kernel_version() >= /* 5.15.0 */ 0x050F00)
--    iou->flags |= UV__MKDIRAT_SYMLINKAT_LINKAT;
- 
-   for (i = 0; i <= iou->sqmask; i++)
-     iou->sqarray[i] = i;  /* Slot -> sqe identity mapping. */
-@@ -727,7 +684,7 @@ static struct uv__io_uring_sqe* uv__iou_get_sqe(struct uv__iou* iou,
-   req->work_req.loop = loop;
-   req->work_req.work = NULL;
-   req->work_req.done = NULL;
--  uv__queue_init(&req->work_req.wq);
-+  QUEUE_INIT(&req->work_req.wq);
- 
-   uv__req_register(loop, req);
-   iou->in_flight++;
-@@ -757,17 +714,6 @@ int uv__iou_fs_close(uv_loop_t* loop, uv_fs_t* req) {
-   struct uv__io_uring_sqe* sqe;
-   struct uv__iou* iou;
- 
--  /* Work around a poorly understood bug in older kernels where closing a file
--   * descriptor pointing to /foo/bar results in ETXTBSY errors when trying to
--   * execve("/foo/bar") later on. The bug seems to have been fixed somewhere
--   * between 5.15.85 and 5.15.90. I couldn't pinpoint the responsible commit
--   * but good candidates are the several data race fixes. Interestingly, it
--   * seems to manifest only when running under Docker so the possibility of
--   * a Docker bug can't be completely ruled out either. Yay, computers.
--   */
--  if (uv__kernel_version() < /* 5.15.90 */ 0x050F5A)
--    return 0;
--
-   iou = &uv__get_internal_fields(loop)->iou;
- 
-   sqe = uv__iou_get_sqe(iou, loop, req);
-@@ -808,55 +754,6 @@ int uv__iou_fs_fsync_or_fdatasync(uv_loop_t* loop,
- }
- 
- 
--int uv__iou_fs_link(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT))
--    return 0;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->fd = AT_FDCWD;
--  sqe->addr2 = (uintptr_t) req->new_path;
--  sqe->len = AT_FDCWD;
--  sqe->opcode = UV__IORING_OP_LINKAT;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_mkdir(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT))
--    return 0;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->fd = AT_FDCWD;
--  sqe->len = req->mode;
--  sqe->opcode = UV__IORING_OP_MKDIRAT;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
- int uv__iou_fs_open(uv_loop_t* loop, uv_fs_t* req) {
-   struct uv__io_uring_sqe* sqe;
-   struct uv__iou* iou;
-@@ -879,86 +776,16 @@ int uv__iou_fs_open(uv_loop_t* loop, uv_fs_t* req) {
- }
- 
- 
--int uv__iou_fs_rename(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->fd = AT_FDCWD;
--  sqe->addr2 = (uintptr_t) req->new_path;
--  sqe->len = AT_FDCWD;
--  sqe->opcode = UV__IORING_OP_RENAMEAT;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_symlink(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  if (!(iou->flags & UV__MKDIRAT_SYMLINKAT_LINKAT))
--    return 0;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->fd = AT_FDCWD;
--  sqe->addr2 = (uintptr_t) req->new_path;
--  sqe->opcode = UV__IORING_OP_SYMLINKAT;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_unlink(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->fd = AT_FDCWD;
--  sqe->opcode = UV__IORING_OP_UNLINKAT;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
- int uv__iou_fs_read_or_write(uv_loop_t* loop,
-                              uv_fs_t* req,
-                              int is_read) {
-   struct uv__io_uring_sqe* sqe;
-   struct uv__iou* iou;
- 
--  /* If iovcnt is greater than IOV_MAX, cap it to IOV_MAX on reads and fallback
--   * to the threadpool on writes */
--  if (req->nbufs > IOV_MAX) {
--    if (is_read)
--      req->nbufs = IOV_MAX;
--    else
--      return 0;
--  }
-+  /* For the moment, if iovcnt is greater than IOV_MAX, fallback to the
-+   * threadpool. In the future we might take advantage of IOSQE_IO_LINK. */
-+  if (req->nbufs > IOV_MAX)
-+    return 0;
- 
-   iou = &uv__get_internal_fields(loop)->iou;
- 
-@@ -1265,7 +1092,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   struct uv__iou* ctl;
-   struct uv__iou* iou;
-   int real_timeout;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__io_t* w;
-   sigset_t* sigmask;
-   sigset_t sigset;
-@@ -1311,11 +1138,11 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
- 
-   memset(&e, 0, sizeof(e));
- 
--  while (!uv__queue_empty(&loop->watcher_queue)) {
--    q = uv__queue_head(&loop->watcher_queue);
--    w = uv__queue_data(q, uv__io_t, watcher_queue);
--    uv__queue_remove(q);
--    uv__queue_init(q);
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
- 
-     op = EPOLL_CTL_MOD;
-     if (w->events == 0)
-@@ -2272,8 +2099,8 @@ static int uv__inotify_fork(uv_loop_t* loop, struct watcher_list* root) {
-   struct watcher_list* tmp_watcher_list_iter;
-   struct watcher_list* watcher_list;
-   struct watcher_list tmp_watcher_list;
--  struct uv__queue queue;
--  struct uv__queue* q;
-+  QUEUE queue;
-+  QUEUE* q;
-   uv_fs_event_t* handle;
-   char* tmp_path;
- 
-@@ -2285,41 +2112,41 @@ static int uv__inotify_fork(uv_loop_t* loop, struct watcher_list* root) {
-    */
-   loop->inotify_watchers = root;
- 
--  uv__queue_init(&tmp_watcher_list.watchers);
-+  QUEUE_INIT(&tmp_watcher_list.watchers);
-   /* Note that the queue we use is shared with the start and stop()
--   * functions, making uv__queue_foreach unsafe to use. So we use the
--   * uv__queue_move trick to safely iterate. Also don't free the watcher
-+   * functions, making QUEUE_FOREACH unsafe to use. So we use the
-+   * QUEUE_MOVE trick to safely iterate. Also don't free the watcher
-    * list until we're done iterating. c.f. uv__inotify_read.
-    */
-   RB_FOREACH_SAFE(watcher_list, watcher_root,
-                   uv__inotify_watchers(loop), tmp_watcher_list_iter) {
-     watcher_list->iterating = 1;
--    uv__queue_move(&watcher_list->watchers, &queue);
--    while (!uv__queue_empty(&queue)) {
--      q = uv__queue_head(&queue);
--      handle = uv__queue_data(q, uv_fs_event_t, watchers);
-+    QUEUE_MOVE(&watcher_list->watchers, &queue);
-+    while (!QUEUE_EMPTY(&queue)) {
-+      q = QUEUE_HEAD(&queue);
-+      handle = QUEUE_DATA(q, uv_fs_event_t, watchers);
-       /* It's critical to keep a copy of path here, because it
-        * will be set to NULL by stop() and then deallocated by
-        * maybe_free_watcher_list
-        */
-       tmp_path = uv__strdup(handle->path);
-       assert(tmp_path != NULL);
--      uv__queue_remove(q);
--      uv__queue_insert_tail(&watcher_list->watchers, q);
-+      QUEUE_REMOVE(q);
-+      QUEUE_INSERT_TAIL(&watcher_list->watchers, q);
-       uv_fs_event_stop(handle);
- 
--      uv__queue_insert_tail(&tmp_watcher_list.watchers, &handle->watchers);
-+      QUEUE_INSERT_TAIL(&tmp_watcher_list.watchers, &handle->watchers);
-       handle->path = tmp_path;
-     }
-     watcher_list->iterating = 0;
-     maybe_free_watcher_list(watcher_list, loop);
-   }
- 
--  uv__queue_move(&tmp_watcher_list.watchers, &queue);
--  while (!uv__queue_empty(&queue)) {
--      q = uv__queue_head(&queue);
--      uv__queue_remove(q);
--      handle = uv__queue_data(q, uv_fs_event_t, watchers);
-+  QUEUE_MOVE(&tmp_watcher_list.watchers, &queue);
-+  while (!QUEUE_EMPTY(&queue)) {
-+      q = QUEUE_HEAD(&queue);
-+      QUEUE_REMOVE(q);
-+      handle = QUEUE_DATA(q, uv_fs_event_t, watchers);
-       tmp_path = handle->path;
-       handle->path = NULL;
-       err = uv_fs_event_start(handle, handle->cb, tmp_path, 0);
-@@ -2341,7 +2168,7 @@ static struct watcher_list* find_watcher(uv_loop_t* loop, int wd) {
- 
- static void maybe_free_watcher_list(struct watcher_list* w, uv_loop_t* loop) {
-   /* if the watcher_list->watchers is being iterated over, we can't free it. */
--  if ((!w->iterating) && uv__queue_empty(&w->watchers)) {
-+  if ((!w->iterating) && QUEUE_EMPTY(&w->watchers)) {
-     /* No watchers left for this path. Clean up. */
-     RB_REMOVE(watcher_root, uv__inotify_watchers(loop), w);
-     inotify_rm_watch(loop->inotify_fd, w->wd);
-@@ -2356,8 +2183,8 @@ static void uv__inotify_read(uv_loop_t* loop,
-   const struct inotify_event* e;
-   struct watcher_list* w;
-   uv_fs_event_t* h;
--  struct uv__queue queue;
--  struct uv__queue* q;
-+  QUEUE queue;
-+  QUEUE* q;
-   const char* path;
-   ssize_t size;
-   const char *p;
-@@ -2400,7 +2227,7 @@ static void uv__inotify_read(uv_loop_t* loop,
-        * What can go wrong?
-        * A callback could call uv_fs_event_stop()
-        * and the queue can change under our feet.
--       * So, we use uv__queue_move() trick to safely iterate over the queue.
-+       * So, we use QUEUE_MOVE() trick to safely iterate over the queue.
-        * And we don't free the watcher_list until we're done iterating.
-        *
-        * First,
-@@ -2408,13 +2235,13 @@ static void uv__inotify_read(uv_loop_t* loop,
-        * not to free watcher_list.
-        */
-       w->iterating = 1;
--      uv__queue_move(&w->watchers, &queue);
--      while (!uv__queue_empty(&queue)) {
--        q = uv__queue_head(&queue);
--        h = uv__queue_data(q, uv_fs_event_t, watchers);
-+      QUEUE_MOVE(&w->watchers, &queue);
-+      while (!QUEUE_EMPTY(&queue)) {
-+        q = QUEUE_HEAD(&queue);
-+        h = QUEUE_DATA(q, uv_fs_event_t, watchers);
- 
--        uv__queue_remove(q);
--        uv__queue_insert_tail(&w->watchers, q);
-+        QUEUE_REMOVE(q);
-+        QUEUE_INSERT_TAIL(&w->watchers, q);
- 
-         h->cb(h, path, events, 0);
-       }
-@@ -2476,13 +2303,13 @@ int uv_fs_event_start(uv_fs_event_t* handle,
- 
-   w->wd = wd;
-   w->path = memcpy(w + 1, path, len);
--  uv__queue_init(&w->watchers);
-+  QUEUE_INIT(&w->watchers);
-   w->iterating = 0;
-   RB_INSERT(watcher_root, uv__inotify_watchers(loop), w);
- 
- no_insert:
-   uv__handle_start(handle);
--  uv__queue_insert_tail(&w->watchers, &handle->watchers);
-+  QUEUE_INSERT_TAIL(&w->watchers, &handle->watchers);
-   handle->path = w->path;
-   handle->cb = cb;
-   handle->wd = wd;
-@@ -2503,7 +2330,7 @@ int uv_fs_event_stop(uv_fs_event_t* handle) {
-   handle->wd = -1;
-   handle->path = NULL;
-   uv__handle_stop(handle);
--  uv__queue_remove(&handle->watchers);
-+  QUEUE_REMOVE(&handle->watchers);
- 
-   maybe_free_watcher_list(w, handle->loop);
- 
-diff --git a/deps/uv/src/unix/loop-watcher.c b/deps/uv/src/unix/loop-watcher.c
-index 2db8b515df7..b8c1c2a7102 100644
---- a/deps/uv/src/unix/loop-watcher.c
-+++ b/deps/uv/src/unix/loop-watcher.c
-@@ -32,7 +32,7 @@
-   int uv_##name##_start(uv_##name##_t* handle, uv_##name##_cb cb) {           \
-     if (uv__is_active(handle)) return 0;                                      \
-     if (cb == NULL) return UV_EINVAL;                                         \
--    uv__queue_insert_head(&handle->loop->name##_handles, &handle->queue);     \
-+    QUEUE_INSERT_HEAD(&handle->loop->name##_handles, &handle->queue);         \
-     handle->name##_cb = cb;                                                   \
-     uv__handle_start(handle);                                                 \
-     return 0;                                                                 \
-@@ -40,21 +40,21 @@
-                                                                               \
-   int uv_##name##_stop(uv_##name##_t* handle) {                               \
-     if (!uv__is_active(handle)) return 0;                                     \
--    uv__queue_remove(&handle->queue);                                         \
-+    QUEUE_REMOVE(&handle->queue);                                             \
-     uv__handle_stop(handle);                                                  \
-     return 0;                                                                 \
-   }                                                                           \
-                                                                               \
-   void uv__run_##name(uv_loop_t* loop) {                                      \
-     uv_##name##_t* h;                                                         \
--    struct uv__queue queue;                                                   \
--    struct uv__queue* q;                                                      \
--    uv__queue_move(&loop->name##_handles, &queue);                            \
--    while (!uv__queue_empty(&queue)) {                                        \
--      q = uv__queue_head(&queue);                                             \
--      h = uv__queue_data(q, uv_##name##_t, queue);                            \
--      uv__queue_remove(q);                                                    \
--      uv__queue_insert_tail(&loop->name##_handles, q);                        \
-+    QUEUE queue;                                                              \
-+    QUEUE* q;                                                                 \
-+    QUEUE_MOVE(&loop->name##_handles, &queue);                                \
-+    while (!QUEUE_EMPTY(&queue)) {                                            \
-+      q = QUEUE_HEAD(&queue);                                                 \
-+      h = QUEUE_DATA(q, uv_##name##_t, queue);                                \
-+      QUEUE_REMOVE(q);                                                        \
-+      QUEUE_INSERT_TAIL(&loop->name##_handles, q);                            \
-       h->name##_cb(h);                                                        \
-     }                                                                         \
-   }                                                                           \
-diff --git a/deps/uv/src/unix/loop.c b/deps/uv/src/unix/loop.c
-index a9468e8e19c..90a51b339de 100644
---- a/deps/uv/src/unix/loop.c
-+++ b/deps/uv/src/unix/loop.c
-@@ -50,20 +50,20 @@ int uv_loop_init(uv_loop_t* loop) {
-          sizeof(lfields->loop_metrics.metrics));
- 
-   heap_init((struct heap*) &loop->timer_heap);
--  uv__queue_init(&loop->wq);
--  uv__queue_init(&loop->idle_handles);
--  uv__queue_init(&loop->async_handles);
--  uv__queue_init(&loop->check_handles);
--  uv__queue_init(&loop->prepare_handles);
--  uv__queue_init(&loop->handle_queue);
-+  QUEUE_INIT(&loop->wq);
-+  QUEUE_INIT(&loop->idle_handles);
-+  QUEUE_INIT(&loop->async_handles);
-+  QUEUE_INIT(&loop->check_handles);
-+  QUEUE_INIT(&loop->prepare_handles);
-+  QUEUE_INIT(&loop->handle_queue);
- 
-   loop->active_handles = 0;
-   loop->active_reqs.count = 0;
-   loop->nfds = 0;
-   loop->watchers = NULL;
-   loop->nwatchers = 0;
--  uv__queue_init(&loop->pending_queue);
--  uv__queue_init(&loop->watcher_queue);
-+  QUEUE_INIT(&loop->pending_queue);
-+  QUEUE_INIT(&loop->watcher_queue);
- 
-   loop->closing_handles = NULL;
-   uv__update_time(loop);
-@@ -85,7 +85,7 @@ int uv_loop_init(uv_loop_t* loop) {
-   err = uv__process_init(loop);
-   if (err)
-     goto fail_signal_init;
--  uv__queue_init(&loop->process_handles);
-+  QUEUE_INIT(&loop->process_handles);
- 
-   err = uv_rwlock_init(&loop->cloexec_lock);
-   if (err)
-@@ -152,9 +152,9 @@ int uv_loop_fork(uv_loop_t* loop) {
-     if (w == NULL)
-       continue;
- 
--    if (w->pevents != 0 && uv__queue_empty(&w->watcher_queue)) {
-+    if (w->pevents != 0 && QUEUE_EMPTY(&w->watcher_queue)) {
-       w->events = 0; /* Force re-registration in uv__io_poll. */
--      uv__queue_insert_tail(&loop->watcher_queue, &w->watcher_queue);
-+      QUEUE_INSERT_TAIL(&loop->watcher_queue, &w->watcher_queue);
-     }
-   }
- 
-@@ -180,7 +180,7 @@ void uv__loop_close(uv_loop_t* loop) {
-   }
- 
-   uv_mutex_lock(&loop->wq_mutex);
--  assert(uv__queue_empty(&loop->wq) && "thread pool work queue not empty!");
-+  assert(QUEUE_EMPTY(&loop->wq) && "thread pool work queue not empty!");
-   assert(!uv__has_active_reqs(loop));
-   uv_mutex_unlock(&loop->wq_mutex);
-   uv_mutex_destroy(&loop->wq_mutex);
-@@ -192,8 +192,8 @@ void uv__loop_close(uv_loop_t* loop) {
-   uv_rwlock_destroy(&loop->cloexec_lock);
- 
- #if 0
--  assert(uv__queue_empty(&loop->pending_queue));
--  assert(uv__queue_empty(&loop->watcher_queue));
-+  assert(QUEUE_EMPTY(&loop->pending_queue));
-+  assert(QUEUE_EMPTY(&loop->watcher_queue));
-   assert(loop->nfds == 0);
- #endif
- 
-diff --git a/deps/uv/src/unix/os390-syscalls.c b/deps/uv/src/unix/os390-syscalls.c
-index 7f90c270906..5861aaaa202 100644
---- a/deps/uv/src/unix/os390-syscalls.c
-+++ b/deps/uv/src/unix/os390-syscalls.c
-@@ -27,7 +27,7 @@
- #include <termios.h>
- #include <sys/msg.h>
- 
--static struct uv__queue global_epoll_queue;
-+static QUEUE global_epoll_queue;
- static uv_mutex_t global_epoll_lock;
- static uv_once_t once = UV_ONCE_INIT;
- 
-@@ -178,18 +178,18 @@ static void after_fork(void) {
- 
- 
- static void child_fork(void) {
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv_once_t child_once = UV_ONCE_INIT;
- 
-   /* reset once */
-   memcpy(&once, &child_once, sizeof(child_once));
- 
-   /* reset epoll list */
--  while (!uv__queue_empty(&global_epoll_queue)) {
-+  while (!QUEUE_EMPTY(&global_epoll_queue)) {
-     uv__os390_epoll* lst;
--    q = uv__queue_head(&global_epoll_queue);
--    uv__queue_remove(q);
--    lst = uv__queue_data(q, uv__os390_epoll, member);
-+    q = QUEUE_HEAD(&global_epoll_queue);
-+    QUEUE_REMOVE(q);
-+    lst = QUEUE_DATA(q, uv__os390_epoll, member);
-     uv__free(lst->items);
-     lst->items = NULL;
-     lst->size = 0;
-@@ -201,7 +201,7 @@ static void child_fork(void) {
- 
- 
- static void epoll_init(void) {
--  uv__queue_init(&global_epoll_queue);
-+  QUEUE_INIT(&global_epoll_queue);
-   if (uv_mutex_init(&global_epoll_lock))
-     abort();
- 
-@@ -225,7 +225,7 @@ uv__os390_epoll* epoll_create1(int flags) {
-     lst->items[lst->size - 1].revents = 0;
-     uv_once(&once, epoll_init);
-     uv_mutex_lock(&global_epoll_lock);
--    uv__queue_insert_tail(&global_epoll_queue, &lst->member);
-+    QUEUE_INSERT_TAIL(&global_epoll_queue, &lst->member);
-     uv_mutex_unlock(&global_epoll_lock);
-   }
- 
-@@ -352,14 +352,14 @@ int epoll_wait(uv__os390_epoll* lst, struct epoll_event* events,
- 
- 
- int epoll_file_close(int fd) {
--  struct uv__queue* q;
-+  QUEUE* q;
- 
-   uv_once(&once, epoll_init);
-   uv_mutex_lock(&global_epoll_lock);
--  uv__queue_foreach(q, &global_epoll_queue) {
-+  QUEUE_FOREACH(q, &global_epoll_queue) {
-     uv__os390_epoll* lst;
- 
--    lst = uv__queue_data(q, uv__os390_epoll, member);
-+    lst = QUEUE_DATA(q, uv__os390_epoll, member);
-     if (fd < lst->size && lst->items != NULL && lst->items[fd].fd != -1)
-       lst->items[fd].fd = -1;
-   }
-@@ -371,7 +371,7 @@ int epoll_file_close(int fd) {
- void epoll_queue_close(uv__os390_epoll* lst) {
-   /* Remove epoll instance from global queue */
-   uv_mutex_lock(&global_epoll_lock);
--  uv__queue_remove(&lst->member);
-+  QUEUE_REMOVE(&lst->member);
-   uv_mutex_unlock(&global_epoll_lock);
- 
-   /* Free resources */
-diff --git a/deps/uv/src/unix/os390-syscalls.h b/deps/uv/src/unix/os390-syscalls.h
-index d5f3bcf8b1c..9f504171d85 100644
---- a/deps/uv/src/unix/os390-syscalls.h
-+++ b/deps/uv/src/unix/os390-syscalls.h
-@@ -45,7 +45,7 @@ struct epoll_event {
- };
- 
- typedef struct {
--  struct uv__queue member;
-+  QUEUE member;
-   struct pollfd* items;
-   unsigned long size;
-   int msg_queue;
-diff --git a/deps/uv/src/unix/os390.c b/deps/uv/src/unix/os390.c
-index bbd37692d1d..a87c2d77faf 100644
---- a/deps/uv/src/unix/os390.c
-+++ b/deps/uv/src/unix/os390.c
-@@ -815,7 +815,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   uv__os390_epoll* ep;
-   int have_signals;
-   int real_timeout;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__io_t* w;
-   uint64_t base;
-   int count;
-@@ -827,19 +827,19 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int reset_timeout;
- 
-   if (loop->nfds == 0) {
--    assert(uv__queue_empty(&loop->watcher_queue));
-+    assert(QUEUE_EMPTY(&loop->watcher_queue));
-     return;
-   }
- 
-   lfields = uv__get_internal_fields(loop);
- 
--  while (!uv__queue_empty(&loop->watcher_queue)) {
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-     uv_stream_t* stream;
- 
--    q = uv__queue_head(&loop->watcher_queue);
--    uv__queue_remove(q);
--    uv__queue_init(q);
--    w = uv__queue_data(q, uv__io_t, watcher_queue);
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
- 
-     assert(w->pevents != 0);
-     assert(w->fd >= 0);
-diff --git a/deps/uv/src/unix/pipe.c b/deps/uv/src/unix/pipe.c
-index d332f351830..ce91ac49b30 100644
---- a/deps/uv/src/unix/pipe.c
-+++ b/deps/uv/src/unix/pipe.c
-@@ -297,7 +297,7 @@ out:
-   uv__req_init(handle->loop, req, UV_CONNECT);
-   req->handle = (uv_stream_t*)handle;
-   req->cb = cb;
--  uv__queue_init(&req->queue);
-+  QUEUE_INIT(&req->queue);
- 
-   /* Force callback to run on next tick in case of error. */
-   if (err)
-diff --git a/deps/uv/src/unix/posix-poll.c b/deps/uv/src/unix/posix-poll.c
-index 2e016c2fbae..7e7de86845d 100644
---- a/deps/uv/src/unix/posix-poll.c
-+++ b/deps/uv/src/unix/posix-poll.c
-@@ -137,7 +137,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   sigset_t set;
-   uint64_t time_base;
-   uint64_t time_diff;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__io_t* w;
-   size_t i;
-   unsigned int nevents;
-@@ -149,19 +149,19 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int reset_timeout;
- 
-   if (loop->nfds == 0) {
--    assert(uv__queue_empty(&loop->watcher_queue));
-+    assert(QUEUE_EMPTY(&loop->watcher_queue));
-     return;
-   }
- 
-   lfields = uv__get_internal_fields(loop);
- 
-   /* Take queued watchers and add their fds to our poll fds array.  */
--  while (!uv__queue_empty(&loop->watcher_queue)) {
--    q = uv__queue_head(&loop->watcher_queue);
--    uv__queue_remove(q);
--    uv__queue_init(q);
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
- 
--    w = uv__queue_data(q, uv__io_t, watcher_queue);
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
-     assert(w->pevents != 0);
-     assert(w->fd >= 0);
-     assert(w->fd < (int) loop->nwatchers);
-diff --git a/deps/uv/src/unix/process.c b/deps/uv/src/unix/process.c
-index dd58c18d9b9..bbf367b57d3 100644
---- a/deps/uv/src/unix/process.c
-+++ b/deps/uv/src/unix/process.c
-@@ -108,17 +108,17 @@ void uv__wait_children(uv_loop_t* loop) {
-   int status;
-   int options;
-   pid_t pid;
--  struct uv__queue pending;
--  struct uv__queue* q;
--  struct uv__queue* h;
-+  QUEUE pending;
-+  QUEUE* q;
-+  QUEUE* h;
- 
--  uv__queue_init(&pending);
-+  QUEUE_INIT(&pending);
- 
-   h = &loop->process_handles;
--  q = uv__queue_head(h);
-+  q = QUEUE_HEAD(h);
-   while (q != h) {
--    process = uv__queue_data(q, uv_process_t, queue);
--    q = uv__queue_next(q);
-+    process = QUEUE_DATA(q, uv_process_t, queue);
-+    q = QUEUE_NEXT(q);
- 
- #ifndef UV_USE_SIGCHLD
-     if ((process->flags & UV_HANDLE_REAP) == 0)
-@@ -149,18 +149,18 @@ void uv__wait_children(uv_loop_t* loop) {
- 
-     assert(pid == process->pid);
-     process->status = status;
--    uv__queue_remove(&process->queue);
--    uv__queue_insert_tail(&pending, &process->queue);
-+    QUEUE_REMOVE(&process->queue);
-+    QUEUE_INSERT_TAIL(&pending, &process->queue);
-   }
- 
-   h = &pending;
--  q = uv__queue_head(h);
-+  q = QUEUE_HEAD(h);
-   while (q != h) {
--    process = uv__queue_data(q, uv_process_t, queue);
--    q = uv__queue_next(q);
-+    process = QUEUE_DATA(q, uv_process_t, queue);
-+    q = QUEUE_NEXT(q);
- 
--    uv__queue_remove(&process->queue);
--    uv__queue_init(&process->queue);
-+    QUEUE_REMOVE(&process->queue);
-+    QUEUE_INIT(&process->queue);
-     uv__handle_stop(process);
- 
-     if (process->exit_cb == NULL)
-@@ -176,7 +176,7 @@ void uv__wait_children(uv_loop_t* loop) {
- 
-     process->exit_cb(process, exit_status, term_signal);
-   }
--  assert(uv__queue_empty(&pending));
-+  assert(QUEUE_EMPTY(&pending));
- }
- 
- /*
-@@ -978,7 +978,7 @@ int uv_spawn(uv_loop_t* loop,
-                               UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS)));
- 
-   uv__handle_init(loop, (uv_handle_t*)process, UV_PROCESS);
--  uv__queue_init(&process->queue);
-+  QUEUE_INIT(&process->queue);
-   process->status = 0;
- 
-   stdio_count = options->stdio_count;
-@@ -1041,7 +1041,7 @@ int uv_spawn(uv_loop_t* loop,
- 
-     process->pid = pid;
-     process->exit_cb = options->exit_cb;
--    uv__queue_insert_tail(&loop->process_handles, &process->queue);
-+    QUEUE_INSERT_TAIL(&loop->process_handles, &process->queue);
-     uv__handle_start(process);
-   }
- 
-@@ -1103,10 +1103,10 @@ int uv_kill(int pid, int signum) {
- 
- 
- void uv__process_close(uv_process_t* handle) {
--  uv__queue_remove(&handle->queue);
-+  QUEUE_REMOVE(&handle->queue);
-   uv__handle_stop(handle);
- #ifdef UV_USE_SIGCHLD
--  if (uv__queue_empty(&handle->loop->process_handles))
-+  if (QUEUE_EMPTY(&handle->loop->process_handles))
-     uv_signal_stop(&handle->loop->child_watcher);
- #endif
- }
-diff --git a/deps/uv/src/unix/signal.c b/deps/uv/src/unix/signal.c
-index 63aba5a60e0..bb70523f561 100644
---- a/deps/uv/src/unix/signal.c
-+++ b/deps/uv/src/unix/signal.c
-@@ -291,16 +291,16 @@ int uv__signal_loop_fork(uv_loop_t* loop) {
- 
- 
- void uv__signal_loop_cleanup(uv_loop_t* loop) {
--  struct uv__queue* q;
-+  QUEUE* q;
- 
-   /* Stop all the signal watchers that are still attached to this loop. This
-    * ensures that the (shared) signal tree doesn't contain any invalid entries
-    * entries, and that signal handlers are removed when appropriate.
--   * It's safe to use uv__queue_foreach here because the handles and the handle
-+   * It's safe to use QUEUE_FOREACH here because the handles and the handle
-    * queue are not modified by uv__signal_stop().
-    */
--  uv__queue_foreach(q, &loop->handle_queue) {
--    uv_handle_t* handle = uv__queue_data(q, uv_handle_t, handle_queue);
-+  QUEUE_FOREACH(q, &loop->handle_queue) {
-+    uv_handle_t* handle = QUEUE_DATA(q, uv_handle_t, handle_queue);
- 
-     if (handle->type == UV_SIGNAL)
-       uv__signal_stop((uv_signal_t*) handle);
-diff --git a/deps/uv/src/unix/stream.c b/deps/uv/src/unix/stream.c
-index 28c4d5463c4..03f92b5045a 100644
---- a/deps/uv/src/unix/stream.c
-+++ b/deps/uv/src/unix/stream.c
-@@ -94,8 +94,8 @@ void uv__stream_init(uv_loop_t* loop,
-   stream->accepted_fd = -1;
-   stream->queued_fds = NULL;
-   stream->delayed_error = 0;
--  uv__queue_init(&stream->write_queue);
--  uv__queue_init(&stream->write_completed_queue);
-+  QUEUE_INIT(&stream->write_queue);
-+  QUEUE_INIT(&stream->write_completed_queue);
-   stream->write_queue_size = 0;
- 
-   if (loop->emfile_fd == -1) {
-@@ -439,15 +439,15 @@ int uv__stream_open(uv_stream_t* stream, int fd, int flags) {
- 
- void uv__stream_flush_write_queue(uv_stream_t* stream, int error) {
-   uv_write_t* req;
--  struct uv__queue* q;
--  while (!uv__queue_empty(&stream->write_queue)) {
--    q = uv__queue_head(&stream->write_queue);
--    uv__queue_remove(q);
-+  QUEUE* q;
-+  while (!QUEUE_EMPTY(&stream->write_queue)) {
-+    q = QUEUE_HEAD(&stream->write_queue);
-+    QUEUE_REMOVE(q);
- 
--    req = uv__queue_data(q, uv_write_t, queue);
-+    req = QUEUE_DATA(q, uv_write_t, queue);
-     req->error = error;
- 
--    uv__queue_insert_tail(&stream->write_completed_queue, &req->queue);
-+    QUEUE_INSERT_TAIL(&stream->write_completed_queue, &req->queue);
-   }
- }
- 
-@@ -627,7 +627,7 @@ static void uv__drain(uv_stream_t* stream) {
-   uv_shutdown_t* req;
-   int err;
- 
--  assert(uv__queue_empty(&stream->write_queue));
-+  assert(QUEUE_EMPTY(&stream->write_queue));
-   if (!(stream->flags & UV_HANDLE_CLOSING)) {
-     uv__io_stop(stream->loop, &stream->io_watcher, POLLOUT);
-     uv__stream_osx_interrupt_select(stream);
-@@ -714,7 +714,7 @@ static void uv__write_req_finish(uv_write_t* req) {
-   uv_stream_t* stream = req->handle;
- 
-   /* Pop the req off tcp->write_queue. */
--  uv__queue_remove(&req->queue);
-+  QUEUE_REMOVE(&req->queue);
- 
-   /* Only free when there was no error. On error, we touch up write_queue_size
-    * right before making the callback. The reason we don't do that right away
-@@ -731,7 +731,7 @@ static void uv__write_req_finish(uv_write_t* req) {
-   /* Add it to the write_completed_queue where it will have its
-    * callback called in the near future.
-    */
--  uv__queue_insert_tail(&stream->write_completed_queue, &req->queue);
-+  QUEUE_INSERT_TAIL(&stream->write_completed_queue, &req->queue);
-   uv__io_feed(stream->loop, &stream->io_watcher);
- }
- 
-@@ -837,7 +837,7 @@ static int uv__try_write(uv_stream_t* stream,
- }
- 
- static void uv__write(uv_stream_t* stream) {
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv_write_t* req;
-   ssize_t n;
-   int count;
-@@ -851,11 +851,11 @@ static void uv__write(uv_stream_t* stream) {
-   count = 32;
- 
-   for (;;) {
--    if (uv__queue_empty(&stream->write_queue))
-+    if (QUEUE_EMPTY(&stream->write_queue))
-       return;
- 
--    q = uv__queue_head(&stream->write_queue);
--    req = uv__queue_data(q, uv_write_t, queue);
-+    q = QUEUE_HEAD(&stream->write_queue);
-+    req = QUEUE_DATA(q, uv_write_t, queue);
-     assert(req->handle == stream);
- 
-     n = uv__try_write(stream,
-@@ -899,19 +899,19 @@ error:
- 
- static void uv__write_callbacks(uv_stream_t* stream) {
-   uv_write_t* req;
--  struct uv__queue* q;
--  struct uv__queue pq;
-+  QUEUE* q;
-+  QUEUE pq;
- 
--  if (uv__queue_empty(&stream->write_completed_queue))
-+  if (QUEUE_EMPTY(&stream->write_completed_queue))
-     return;
- 
--  uv__queue_move(&stream->write_completed_queue, &pq);
-+  QUEUE_MOVE(&stream->write_completed_queue, &pq);
- 
--  while (!uv__queue_empty(&pq)) {
-+  while (!QUEUE_EMPTY(&pq)) {
-     /* Pop a req off write_completed_queue. */
--    q = uv__queue_head(&pq);
--    req = uv__queue_data(q, uv_write_t, queue);
--    uv__queue_remove(q);
-+    q = QUEUE_HEAD(&pq);
-+    req = QUEUE_DATA(q, uv_write_t, queue);
-+    QUEUE_REMOVE(q);
-     uv__req_unregister(stream->loop, req);
- 
-     if (req->bufs != NULL) {
-@@ -1174,7 +1174,7 @@ int uv_shutdown(uv_shutdown_t* req, uv_stream_t* stream, uv_shutdown_cb cb) {
-   stream->shutdown_req = req;
-   stream->flags &= ~UV_HANDLE_WRITABLE;
- 
--  if (uv__queue_empty(&stream->write_queue))
-+  if (QUEUE_EMPTY(&stream->write_queue))
-     uv__io_feed(stream->loop, &stream->io_watcher);
- 
-   return 0;
-@@ -1227,7 +1227,7 @@ static void uv__stream_io(uv_loop_t* loop, uv__io_t* w, unsigned int events) {
-     uv__write_callbacks(stream);
- 
-     /* Write queue drained. */
--    if (uv__queue_empty(&stream->write_queue))
-+    if (QUEUE_EMPTY(&stream->write_queue))
-       uv__drain(stream);
-   }
- }
-@@ -1270,7 +1270,7 @@ static void uv__stream_connect(uv_stream_t* stream) {
-   stream->connect_req = NULL;
-   uv__req_unregister(stream->loop, req);
- 
--  if (error < 0 || uv__queue_empty(&stream->write_queue)) {
-+  if (error < 0 || QUEUE_EMPTY(&stream->write_queue)) {
-     uv__io_stop(stream->loop, &stream->io_watcher, POLLOUT);
-   }
- 
-@@ -1352,7 +1352,7 @@ int uv_write2(uv_write_t* req,
-   req->handle = stream;
-   req->error = 0;
-   req->send_handle = send_handle;
--  uv__queue_init(&req->queue);
-+  QUEUE_INIT(&req->queue);
- 
-   req->bufs = req->bufsml;
-   if (nbufs > ARRAY_SIZE(req->bufsml))
-@@ -1367,7 +1367,7 @@ int uv_write2(uv_write_t* req,
-   stream->write_queue_size += uv__count_bufs(bufs, nbufs);
- 
-   /* Append the request to write_queue. */
--  uv__queue_insert_tail(&stream->write_queue, &req->queue);
-+  QUEUE_INSERT_TAIL(&stream->write_queue, &req->queue);
- 
-   /* If the queue was empty when this function began, we should attempt to
-    * do the write immediately. Otherwise start the write_watcher and wait
-diff --git a/deps/uv/src/unix/sunos.c b/deps/uv/src/unix/sunos.c
-index 2d6bae79604..75b6fbad493 100644
---- a/deps/uv/src/unix/sunos.c
-+++ b/deps/uv/src/unix/sunos.c
-@@ -148,7 +148,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   struct port_event events[1024];
-   struct port_event* pe;
-   struct timespec spec;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__io_t* w;
-   sigset_t* pset;
-   sigset_t set;
-@@ -166,16 +166,16 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int reset_timeout;
- 
-   if (loop->nfds == 0) {
--    assert(uv__queue_empty(&loop->watcher_queue));
-+    assert(QUEUE_EMPTY(&loop->watcher_queue));
-     return;
-   }
- 
--  while (!uv__queue_empty(&loop->watcher_queue)) {
--    q = uv__queue_head(&loop->watcher_queue);
--    uv__queue_remove(q);
--    uv__queue_init(q);
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
- 
--    w = uv__queue_data(q, uv__io_t, watcher_queue);
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
-     assert(w->pevents != 0);
- 
-     if (port_associate(loop->backend_fd,
-@@ -316,8 +316,8 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-         continue;  /* Disabled by callback. */
- 
-       /* Events Ports operates in oneshot mode, rearm timer on next run. */
--      if (w->pevents != 0 && uv__queue_empty(&w->watcher_queue))
--        uv__queue_insert_tail(&loop->watcher_queue, &w->watcher_queue);
-+      if (w->pevents != 0 && QUEUE_EMPTY(&w->watcher_queue))
-+        QUEUE_INSERT_TAIL(&loop->watcher_queue, &w->watcher_queue);
-     }
- 
-     uv__metrics_inc_events(loop, nevents);
-diff --git a/deps/uv/src/unix/tcp.c b/deps/uv/src/unix/tcp.c
-index d6c848f4610..ab4e06c2f67 100644
---- a/deps/uv/src/unix/tcp.c
-+++ b/deps/uv/src/unix/tcp.c
-@@ -124,7 +124,7 @@ int uv_tcp_init_ex(uv_loop_t* loop, uv_tcp_t* tcp, unsigned int flags) {
-   if (domain != AF_UNSPEC) {
-     err = new_socket(tcp, domain, 0);
-     if (err) {
--      uv__queue_remove(&tcp->handle_queue);
-+      QUEUE_REMOVE(&tcp->handle_queue);
-       if (tcp->io_watcher.fd != -1)
-         uv__close(tcp->io_watcher.fd);
-       tcp->io_watcher.fd = -1;
-@@ -252,7 +252,7 @@ out:
-   uv__req_init(handle->loop, req, UV_CONNECT);
-   req->cb = cb;
-   req->handle = (uv_stream_t*) handle;
--  uv__queue_init(&req->queue);
-+  QUEUE_INIT(&req->queue);
-   handle->connect_req = req;
- 
-   uv__io_start(handle->loop, &handle->io_watcher, POLLOUT);
-diff --git a/deps/uv/src/unix/tty.c b/deps/uv/src/unix/tty.c
-index d099bdb3b67..7a5390c1a8b 100644
---- a/deps/uv/src/unix/tty.c
-+++ b/deps/uv/src/unix/tty.c
-@@ -222,7 +222,7 @@ skip:
-     int rc = r;
-     if (newfd != -1)
-       uv__close(newfd);
--    uv__queue_remove(&tty->handle_queue);
-+    QUEUE_REMOVE(&tty->handle_queue);
-     do
-       r = fcntl(fd, F_SETFL, saved_flags);
-     while (r == -1 && errno == EINTR);
-diff --git a/deps/uv/src/unix/udp.c b/deps/uv/src/unix/udp.c
-index c2814512a5f..f556808fbae 100644
---- a/deps/uv/src/unix/udp.c
-+++ b/deps/uv/src/unix/udp.c
-@@ -62,18 +62,18 @@ void uv__udp_close(uv_udp_t* handle) {
- 
- void uv__udp_finish_close(uv_udp_t* handle) {
-   uv_udp_send_t* req;
--  struct uv__queue* q;
-+  QUEUE* q;
- 
-   assert(!uv__io_active(&handle->io_watcher, POLLIN | POLLOUT));
-   assert(handle->io_watcher.fd == -1);
- 
--  while (!uv__queue_empty(&handle->write_queue)) {
--    q = uv__queue_head(&handle->write_queue);
--    uv__queue_remove(q);
-+  while (!QUEUE_EMPTY(&handle->write_queue)) {
-+    q = QUEUE_HEAD(&handle->write_queue);
-+    QUEUE_REMOVE(q);
- 
--    req = uv__queue_data(q, uv_udp_send_t, queue);
-+    req = QUEUE_DATA(q, uv_udp_send_t, queue);
-     req->status = UV_ECANCELED;
--    uv__queue_insert_tail(&handle->write_completed_queue, &req->queue);
-+    QUEUE_INSERT_TAIL(&handle->write_completed_queue, &req->queue);
-   }
- 
-   uv__udp_run_completed(handle);
-@@ -90,16 +90,16 @@ void uv__udp_finish_close(uv_udp_t* handle) {
- 
- static void uv__udp_run_completed(uv_udp_t* handle) {
-   uv_udp_send_t* req;
--  struct uv__queue* q;
-+  QUEUE* q;
- 
-   assert(!(handle->flags & UV_HANDLE_UDP_PROCESSING));
-   handle->flags |= UV_HANDLE_UDP_PROCESSING;
- 
--  while (!uv__queue_empty(&handle->write_completed_queue)) {
--    q = uv__queue_head(&handle->write_completed_queue);
--    uv__queue_remove(q);
-+  while (!QUEUE_EMPTY(&handle->write_completed_queue)) {
-+    q = QUEUE_HEAD(&handle->write_completed_queue);
-+    QUEUE_REMOVE(q);
- 
--    req = uv__queue_data(q, uv_udp_send_t, queue);
-+    req = QUEUE_DATA(q, uv_udp_send_t, queue);
-     uv__req_unregister(handle->loop, req);
- 
-     handle->send_queue_size -= uv__count_bufs(req->bufs, req->nbufs);
-@@ -121,7 +121,7 @@ static void uv__udp_run_completed(uv_udp_t* handle) {
-       req->send_cb(req, req->status);
-   }
- 
--  if (uv__queue_empty(&handle->write_queue)) {
-+  if (QUEUE_EMPTY(&handle->write_queue)) {
-     /* Pending queue and completion queue empty, stop watcher. */
-     uv__io_stop(handle->loop, &handle->io_watcher, POLLOUT);
-     if (!uv__io_active(&handle->io_watcher, POLLIN))
-@@ -280,20 +280,20 @@ static void uv__udp_sendmsg(uv_udp_t* handle) {
-   uv_udp_send_t* req;
-   struct mmsghdr h[20];
-   struct mmsghdr* p;
--  struct uv__queue* q;
-+  QUEUE* q;
-   ssize_t npkts;
-   size_t pkts;
-   size_t i;
- 
--  if (uv__queue_empty(&handle->write_queue))
-+  if (QUEUE_EMPTY(&handle->write_queue))
-     return;
- 
- write_queue_drain:
--  for (pkts = 0, q = uv__queue_head(&handle->write_queue);
-+  for (pkts = 0, q = QUEUE_HEAD(&handle->write_queue);
-        pkts < ARRAY_SIZE(h) && q != &handle->write_queue;
--       ++pkts, q = uv__queue_head(q)) {
-+       ++pkts, q = QUEUE_HEAD(q)) {
-     assert(q != NULL);
--    req = uv__queue_data(q, uv_udp_send_t, queue);
-+    req = QUEUE_DATA(q, uv_udp_send_t, queue);
-     assert(req != NULL);
- 
-     p = &h[pkts];
-@@ -325,16 +325,16 @@ write_queue_drain:
-   if (npkts < 1) {
-     if (errno == EAGAIN || errno == EWOULDBLOCK || errno == ENOBUFS)
-       return;
--    for (i = 0, q = uv__queue_head(&handle->write_queue);
-+    for (i = 0, q = QUEUE_HEAD(&handle->write_queue);
-          i < pkts && q != &handle->write_queue;
--         ++i, q = uv__queue_head(&handle->write_queue)) {
-+         ++i, q = QUEUE_HEAD(&handle->write_queue)) {
-       assert(q != NULL);
--      req = uv__queue_data(q, uv_udp_send_t, queue);
-+      req = QUEUE_DATA(q, uv_udp_send_t, queue);
-       assert(req != NULL);
- 
-       req->status = UV__ERR(errno);
--      uv__queue_remove(&req->queue);
--      uv__queue_insert_tail(&handle->write_completed_queue, &req->queue);
-+      QUEUE_REMOVE(&req->queue);
-+      QUEUE_INSERT_TAIL(&handle->write_completed_queue, &req->queue);
-     }
-     uv__io_feed(handle->loop, &handle->io_watcher);
-     return;
-@@ -343,11 +343,11 @@ write_queue_drain:
-   /* Safety: npkts known to be >0 below. Hence cast from ssize_t
-    * to size_t safe.
-    */
--  for (i = 0, q = uv__queue_head(&handle->write_queue);
-+  for (i = 0, q = QUEUE_HEAD(&handle->write_queue);
-        i < (size_t)npkts && q != &handle->write_queue;
--       ++i, q = uv__queue_head(&handle->write_queue)) {
-+       ++i, q = QUEUE_HEAD(&handle->write_queue)) {
-     assert(q != NULL);
--    req = uv__queue_data(q, uv_udp_send_t, queue);
-+    req = QUEUE_DATA(q, uv_udp_send_t, queue);
-     assert(req != NULL);
- 
-     req->status = req->bufs[0].len;
-@@ -357,25 +357,25 @@ write_queue_drain:
-      * why we don't handle partial writes. Just pop the request
-      * off the write queue and onto the completed queue, done.
-      */
--    uv__queue_remove(&req->queue);
--    uv__queue_insert_tail(&handle->write_completed_queue, &req->queue);
-+    QUEUE_REMOVE(&req->queue);
-+    QUEUE_INSERT_TAIL(&handle->write_completed_queue, &req->queue);
-   }
- 
-   /* couldn't batch everything, continue sending (jump to avoid stack growth) */
--  if (!uv__queue_empty(&handle->write_queue))
-+  if (!QUEUE_EMPTY(&handle->write_queue))
-     goto write_queue_drain;
-   uv__io_feed(handle->loop, &handle->io_watcher);
- #else  /* __linux__ || ____FreeBSD__ */
-   uv_udp_send_t* req;
-   struct msghdr h;
--  struct uv__queue* q;
-+  QUEUE* q;
-   ssize_t size;
- 
--  while (!uv__queue_empty(&handle->write_queue)) {
--    q = uv__queue_head(&handle->write_queue);
-+  while (!QUEUE_EMPTY(&handle->write_queue)) {
-+    q = QUEUE_HEAD(&handle->write_queue);
-     assert(q != NULL);
- 
--    req = uv__queue_data(q, uv_udp_send_t, queue);
-+    req = QUEUE_DATA(q, uv_udp_send_t, queue);
-     assert(req != NULL);
- 
-     memset(&h, 0, sizeof h);
-@@ -414,8 +414,8 @@ write_queue_drain:
-      * why we don't handle partial writes. Just pop the request
-      * off the write queue and onto the completed queue, done.
-      */
--    uv__queue_remove(&req->queue);
--    uv__queue_insert_tail(&handle->write_completed_queue, &req->queue);
-+    QUEUE_REMOVE(&req->queue);
-+    QUEUE_INSERT_TAIL(&handle->write_completed_queue, &req->queue);
-     uv__io_feed(handle->loop, &handle->io_watcher);
-   }
- #endif  /* __linux__ || ____FreeBSD__ */
-@@ -729,7 +729,7 @@ int uv__udp_send(uv_udp_send_t* req,
-   memcpy(req->bufs, bufs, nbufs * sizeof(bufs[0]));
-   handle->send_queue_size += uv__count_bufs(req->bufs, req->nbufs);
-   handle->send_queue_count++;
--  uv__queue_insert_tail(&handle->write_queue, &req->queue);
-+  QUEUE_INSERT_TAIL(&handle->write_queue, &req->queue);
-   uv__handle_start(handle);
- 
-   if (empty_queue && !(handle->flags & UV_HANDLE_UDP_PROCESSING)) {
-@@ -739,7 +739,7 @@ int uv__udp_send(uv_udp_send_t* req,
-      * away. In such cases the `io_watcher` has to be queued for asynchronous
-      * write.
-      */
--    if (!uv__queue_empty(&handle->write_queue))
-+    if (!QUEUE_EMPTY(&handle->write_queue))
-       uv__io_start(handle->loop, &handle->io_watcher, POLLOUT);
-   } else {
-     uv__io_start(handle->loop, &handle->io_watcher, POLLOUT);
-@@ -1007,8 +1007,8 @@ int uv__udp_init_ex(uv_loop_t* loop,
-   handle->send_queue_size = 0;
-   handle->send_queue_count = 0;
-   uv__io_init(&handle->io_watcher, uv__udp_io, fd);
--  uv__queue_init(&handle->write_queue);
--  uv__queue_init(&handle->write_completed_queue);
-+  QUEUE_INIT(&handle->write_queue);
-+  QUEUE_INIT(&handle->write_completed_queue);
- 
-   return 0;
- }
-diff --git a/deps/uv/src/uv-common.c b/deps/uv/src/uv-common.c
-index 916f3f4e006..cec771fab21 100644
---- a/deps/uv/src/uv-common.c
-+++ b/deps/uv/src/uv-common.c
-@@ -533,17 +533,17 @@ int uv_udp_recv_stop(uv_udp_t* handle) {
- 
- 
- void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg) {
--  struct uv__queue queue;
--  struct uv__queue* q;
-+  QUEUE queue;
-+  QUEUE* q;
-   uv_handle_t* h;
- 
--  uv__queue_move(&loop->handle_queue, &queue);
--  while (!uv__queue_empty(&queue)) {
--    q = uv__queue_head(&queue);
--    h = uv__queue_data(q, uv_handle_t, handle_queue);
-+  QUEUE_MOVE(&loop->handle_queue, &queue);
-+  while (!QUEUE_EMPTY(&queue)) {
-+    q = QUEUE_HEAD(&queue);
-+    h = QUEUE_DATA(q, uv_handle_t, handle_queue);
- 
--    uv__queue_remove(q);
--    uv__queue_insert_tail(&loop->handle_queue, q);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INSERT_TAIL(&loop->handle_queue, q);
- 
-     if (h->flags & UV_HANDLE_INTERNAL) continue;
-     walk_cb(h, arg);
-@@ -553,14 +553,14 @@ void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg) {
- 
- static void uv__print_handles(uv_loop_t* loop, int only_active, FILE* stream) {
-   const char* type;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv_handle_t* h;
- 
-   if (loop == NULL)
-     loop = uv_default_loop();
- 
--  uv__queue_foreach(q, &loop->handle_queue) {
--    h = uv__queue_data(q, uv_handle_t, handle_queue);
-+  QUEUE_FOREACH(q, &loop->handle_queue) {
-+    h = QUEUE_DATA(q, uv_handle_t, handle_queue);
- 
-     if (only_active && !uv__is_active(h))
-       continue;
-@@ -846,7 +846,7 @@ uv_loop_t* uv_loop_new(void) {
- 
- 
- int uv_loop_close(uv_loop_t* loop) {
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv_handle_t* h;
- #ifndef NDEBUG
-   void* saved_data;
-@@ -855,8 +855,8 @@ int uv_loop_close(uv_loop_t* loop) {
-   if (uv__has_active_reqs(loop))
-     return UV_EBUSY;
- 
--  uv__queue_foreach(q, &loop->handle_queue) {
--    h = uv__queue_data(q, uv_handle_t, handle_queue);
-+  QUEUE_FOREACH(q, &loop->handle_queue) {
-+    h = QUEUE_DATA(q, uv_handle_t, handle_queue);
-     if (!(h->flags & UV_HANDLE_INTERNAL))
-       return UV_EBUSY;
-   }
-diff --git a/deps/uv/src/uv-common.h b/deps/uv/src/uv-common.h
-index cd57e5a3515..decde5362c8 100644
---- a/deps/uv/src/uv-common.h
-+++ b/deps/uv/src/uv-common.h
-@@ -323,7 +323,7 @@ void uv__threadpool_cleanup(void);
-     (h)->loop = (loop_);                                                      \
-     (h)->type = (type_);                                                      \
-     (h)->flags = UV_HANDLE_REF;  /* Ref the loop when active. */              \
--    uv__queue_insert_tail(&(loop_)->handle_queue, &(h)->handle_queue);        \
-+    QUEUE_INSERT_TAIL(&(loop_)->handle_queue, &(h)->handle_queue);            \
-     uv__handle_platform_init(h);                                              \
-   }                                                                           \
-   while (0)
-@@ -415,7 +415,6 @@ struct uv__iou {
-   size_t sqelen;
-   int ringfd;
-   uint32_t in_flight;
--  uint32_t flags;
- };
- #endif  /* __linux__ */
- 
-diff --git a/deps/uv/src/win/core.c b/deps/uv/src/win/core.c
-index e9885a0f1ff..9a3be58849a 100644
---- a/deps/uv/src/win/core.c
-+++ b/deps/uv/src/win/core.c
-@@ -255,8 +255,8 @@ int uv_loop_init(uv_loop_t* loop) {
-   loop->time = 0;
-   uv_update_time(loop);
- 
--  uv__queue_init(&loop->wq);
--  uv__queue_init(&loop->handle_queue);
-+  QUEUE_INIT(&loop->wq);
-+  QUEUE_INIT(&loop->handle_queue);
-   loop->active_reqs.count = 0;
-   loop->active_handles = 0;
- 
-@@ -358,7 +358,7 @@ void uv__loop_close(uv_loop_t* loop) {
-   }
- 
-   uv_mutex_lock(&loop->wq_mutex);
--  assert(uv__queue_empty(&loop->wq) && "thread pool work queue not empty!");
-+  assert(QUEUE_EMPTY(&loop->wq) && "thread pool work queue not empty!");
-   assert(!uv__has_active_reqs(loop));
-   uv_mutex_unlock(&loop->wq_mutex);
-   uv_mutex_destroy(&loop->wq_mutex);
-diff --git a/deps/uv/src/win/fs.c b/deps/uv/src/win/fs.c
-index fc209c54f47..deb9438d689 100644
---- a/deps/uv/src/win/fs.c
-+++ b/deps/uv/src/win/fs.c
-@@ -144,97 +144,26 @@ void uv__fs_init(void) {
- }
- 
- 
--static int32_t fs__decode_wtf8_char(const char** input) {
--  uint32_t code_point;
--  uint8_t b1;
--  uint8_t b2;
--  uint8_t b3;
--  uint8_t b4;
--
--  b1 = **input;
--  if (b1 <= 0x7F)
--    return b1; /* ASCII code point */
--  if (b1 < 0xC2)
--    return -1; /* invalid: continuation byte */
--  code_point = b1;
--
--  b2 = *++*input;
--  if ((b2 & 0xC0) != 0x80)
--    return -1; /* invalid: not a continuation byte */
--  code_point = (code_point << 6) | (b2 & 0x3F);
--  if (b1 <= 0xDF)
--    return 0x7FF & code_point; /* two-byte character */
--
--  b3 = *++*input;
--  if ((b3 & 0xC0) != 0x80)
--    return -1; /* invalid: not a continuation byte */
--  code_point = (code_point << 6) | (b3 & 0x3F);
--  if (b1 <= 0xEF)
--    return 0xFFFF & code_point; /* three-byte character */
--
--  b4 = *++*input;
--  if ((b4 & 0xC0) != 0x80)
--    return -1; /* invalid: not a continuation byte */
--  code_point = (code_point << 6) | (b4 & 0x3F);
--  if (b1 <= 0xF4)
--    if (code_point <= 0x10FFFF)
--      return code_point; /* four-byte character */
--
--  /* code point too large */
--  return -1;
--}
--
--
--static ssize_t fs__get_length_wtf8(const char* source_ptr) {
--  size_t w_target_len = 0;
--  int32_t code_point;
--
--  do {
--    code_point = fs__decode_wtf8_char(&source_ptr);
--    if (code_point < 0)
--      return -1;
--    if (code_point > 0xFFFF)
--      w_target_len++;
--    w_target_len++;
--  } while (*source_ptr++);
--  return w_target_len;
--}
--
--
--static void fs__wtf8_to_wide(const char* source_ptr, WCHAR* w_target) {
--  int32_t code_point;
--
--  do {
--    code_point = fs__decode_wtf8_char(&source_ptr);
--    /* fs__get_length_wtf8 should have been called and checked first. */
--    assert(code_point >= 0);
--    if (code_point > 0x10000) {
--      assert(code_point < 0x10FFFF);
--      *w_target++ = (((code_point - 0x10000) >> 10) + 0xD800);
--      *w_target++ = ((code_point - 0x10000) & 0x3FF) + 0xDC00;
--    } else {
--      *w_target++ = code_point;
--    }
--  } while (*source_ptr++);
--}
--
--
- INLINE static int fs__capture_path(uv_fs_t* req, const char* path,
-     const char* new_path, const int copy_path) {
--  WCHAR* buf;
--  WCHAR* pos;
--  size_t buf_sz = 0;
--  size_t path_len = 0;
--  ssize_t pathw_len = 0;
--  ssize_t new_pathw_len = 0;
-+  char* buf;
-+  char* pos;
-+  ssize_t buf_sz = 0, path_len = 0, pathw_len = 0, new_pathw_len = 0;
- 
-   /* new_path can only be set if path is also set. */
-   assert(new_path == NULL || path != NULL);
- 
-   if (path != NULL) {
--    pathw_len = fs__get_length_wtf8(path);
--    if (pathw_len < 0)
--      return ERROR_INVALID_NAME;
-+    pathw_len = MultiByteToWideChar(CP_UTF8,
-+                                    0,
-+                                    path,
-+                                    -1,
-+                                    NULL,
-+                                    0);
-+    if (pathw_len == 0) {
-+      return GetLastError();
-+    }
-+
-     buf_sz += pathw_len * sizeof(WCHAR);
-   }
- 
-@@ -244,9 +173,16 @@ INLINE static int fs__capture_path(uv_fs_t* req, const char* path,
-   }
- 
-   if (new_path != NULL) {
--    new_pathw_len = fs__get_length_wtf8(new_path);
--    if (new_pathw_len < 0)
--      return ERROR_INVALID_NAME;
-+    new_pathw_len = MultiByteToWideChar(CP_UTF8,
-+                                        0,
-+                                        new_path,
-+                                        -1,
-+                                        NULL,
-+                                        0);
-+    if (new_pathw_len == 0) {
-+      return GetLastError();
-+    }
-+
-     buf_sz += new_pathw_len * sizeof(WCHAR);
-   }
- 
-@@ -258,7 +194,7 @@ INLINE static int fs__capture_path(uv_fs_t* req, const char* path,
-     return 0;
-   }
- 
--  buf = uv__malloc(buf_sz);
-+  buf = (char*) uv__malloc(buf_sz);
-   if (buf == NULL) {
-     return ERROR_OUTOFMEMORY;
-   }
-@@ -266,17 +202,29 @@ INLINE static int fs__capture_path(uv_fs_t* req, const char* path,
-   pos = buf;
- 
-   if (path != NULL) {
--    fs__wtf8_to_wide(path, pos);
--    req->file.pathw = pos;
--    pos += pathw_len;
-+    DWORD r = MultiByteToWideChar(CP_UTF8,
-+                                  0,
-+                                  path,
-+                                  -1,
-+                                  (WCHAR*) pos,
-+                                  pathw_len);
-+    assert(r == (DWORD) pathw_len);
-+    req->file.pathw = (WCHAR*) pos;
-+    pos += r * sizeof(WCHAR);
-   } else {
-     req->file.pathw = NULL;
-   }
- 
-   if (new_path != NULL) {
--    fs__wtf8_to_wide(new_path, pos);
--    req->fs.info.new_pathw = pos;
--    pos += new_pathw_len;
-+    DWORD r = MultiByteToWideChar(CP_UTF8,
-+                                  0,
-+                                  new_path,
-+                                  -1,
-+                                  (WCHAR*) pos,
-+                                  new_pathw_len);
-+    assert(r == (DWORD) new_pathw_len);
-+    req->fs.info.new_pathw = (WCHAR*) pos;
-+    pos += r * sizeof(WCHAR);
-   } else {
-     req->fs.info.new_pathw = NULL;
-   }
-@@ -284,8 +232,8 @@ INLINE static int fs__capture_path(uv_fs_t* req, const char* path,
-   req->path = path;
-   if (path != NULL && copy_path) {
-     memcpy(pos, path, path_len);
--    assert(path_len == buf_sz - (pos - buf) * sizeof(WCHAR));
--    req->path = (char*) pos;
-+    assert(path_len == buf_sz - (pos - buf));
-+    req->path = pos;
-   }
- 
-   req->flags |= UV_FS_FREE_PATHS;
-@@ -311,115 +259,57 @@ INLINE static void uv__fs_req_init(uv_loop_t* loop, uv_fs_t* req,
- }
- 
- 
--static int32_t fs__get_surrogate_value(const WCHAR* w_source_ptr,
--                                       size_t w_source_len) {
--  WCHAR u;
--  WCHAR next;
--
--  u = w_source_ptr[0];
--  if (u >= 0xD800 && u <= 0xDBFF && w_source_len > 1) {
--    next = w_source_ptr[1];
--    if (next >= 0xDC00 && next <= 0xDFFF)
--      return 0x10000 + ((u - 0xD800) << 10) + (next - 0xDC00);
--  }
--  return u;
--}
--
--
--static size_t fs__get_length_wide(const WCHAR* w_source_ptr,
--                                  size_t w_source_len) {
--  size_t target_len;
--  int32_t code_point;
-+static int fs__wide_to_utf8(WCHAR* w_source_ptr,
-+                               DWORD w_source_len,
-+                               char** target_ptr,
-+                               uint64_t* target_len_ptr) {
-+  int r;
-+  int target_len;
-+  char* target;
-+  target_len = WideCharToMultiByte(CP_UTF8,
-+                                   0,
-+                                   w_source_ptr,
-+                                   w_source_len,
-+                                   NULL,
-+                                   0,
-+                                   NULL,
-+                                   NULL);
- 
--  target_len = 0;
--  for (; w_source_len; w_source_len--, w_source_ptr++) {
--    code_point = fs__get_surrogate_value(w_source_ptr, w_source_len);
--    /* Can be invalid UTF-8 but must be valid WTF-8. */
--    assert(code_point >= 0);
--    if (code_point < 0x80)
--      target_len += 1;
--    else if (code_point < 0x800)
--      target_len += 2;
--    else if (code_point < 0x10000)
--      target_len += 3;
--    else {
--      target_len += 4;
--      w_source_ptr++;
--      w_source_len--;
--    }
-+  if (target_len == 0) {
-+    return -1;
-   }
--  return target_len;
--}
- 
--
--static int fs__wide_to_wtf8(WCHAR* w_source_ptr,
--                            size_t w_source_len,
--                            char** target_ptr,
--                            size_t* target_len_ptr) {
--  size_t target_len;
--  char* target;
--  int32_t code_point;
--
--  /* If *target_ptr is provided, then *target_len_ptr must be its length
--   * (excluding space for null), otherwise we will compute the target_len_ptr
--   * length and may return a new allocation in *target_ptr if target_ptr is
--   * provided. */
--  if (target_ptr == NULL || *target_ptr == NULL) {
--    target_len = fs__get_length_wide(w_source_ptr, w_source_len);
--    if (target_len_ptr != NULL)
--      *target_len_ptr = target_len;
--  } else {
--    target_len = *target_len_ptr;
-+  if (target_len_ptr != NULL) {
-+    *target_len_ptr = target_len;
-   }
- 
--  if (target_ptr == NULL)
-+  if (target_ptr == NULL) {
-     return 0;
--
--  if (*target_ptr == NULL) {
--    target = uv__malloc(target_len + 1);
--    if (target == NULL) {
--      SetLastError(ERROR_OUTOFMEMORY);
--      return -1;
--    }
--    *target_ptr = target;
--  } else {
--    target = *target_ptr;
--  }
--
--  for (; w_source_len; w_source_len--, w_source_ptr++) {
--    code_point = fs__get_surrogate_value(w_source_ptr, w_source_len);
--    /* Can be invalid UTF-8 but must be valid WTF-8. */
--    assert(code_point >= 0);
--
--    if (code_point < 0x80) {
--      *target++ = code_point;
--    } else if (code_point < 0x800) {
--      *target++ = 0xC0 | (code_point >> 6);
--      *target++ = 0x80 | (code_point & 0x3F);
--    } else if (code_point < 0x10000) {
--      *target++ = 0xE0 | (code_point >> 12);
--      *target++ = 0x80 | ((code_point >> 6) & 0x3F);
--      *target++ = 0x80 | (code_point & 0x3F);
--    } else {
--      *target++ = 0xF0 | (code_point >> 18);
--      *target++ = 0x80 | ((code_point >> 12) & 0x3F);
--      *target++ = 0x80 | ((code_point >> 6) & 0x3F);
--      *target++ = 0x80 | (code_point & 0x3F);
--      w_source_ptr++;
--      w_source_len--;
--    }
-   }
--  assert((size_t) (target - *target_ptr) == target_len);
- 
--  *target++ = '\0';
-+  target = uv__malloc(target_len + 1);
-+  if (target == NULL) {
-+    SetLastError(ERROR_OUTOFMEMORY);
-+    return -1;
-+  }
- 
-+  r = WideCharToMultiByte(CP_UTF8,
-+                          0,
-+                          w_source_ptr,
-+                          w_source_len,
-+                          target,
-+                          target_len,
-+                          NULL,
-+                          NULL);
-+  assert(r == target_len);
-+  target[target_len] = '\0';
-+  *target_ptr = target;
-   return 0;
- }
- 
- 
--INLINE static int fs__readlink_handle(HANDLE handle,
--                                      char** target_ptr,
--                                      size_t* target_len_ptr) {
-+INLINE static int fs__readlink_handle(HANDLE handle, char** target_ptr,
-+    uint64_t* target_len_ptr) {
-   char buffer[MAXIMUM_REPARSE_DATA_BUFFER_SIZE];
-   REPARSE_DATA_BUFFER* reparse_data = (REPARSE_DATA_BUFFER*) buffer;
-   WCHAR* w_target;
-@@ -549,8 +439,7 @@ INLINE static int fs__readlink_handle(HANDLE handle,
-     return -1;
-   }
- 
--  assert(target_ptr == NULL || *target_ptr == NULL);
--  return fs__wide_to_wtf8(w_target, w_target_len, target_ptr, target_len_ptr);
-+  return fs__wide_to_utf8(w_target, w_target_len, target_ptr, target_len_ptr);
- }
- 
- 
-@@ -1540,8 +1429,7 @@ void fs__scandir(uv_fs_t* req) {
-       uv__dirent_t* dirent;
- 
-       size_t wchar_len;
--      size_t wtf8_len;
--      char* wtf8;
-+      size_t utf8_len;
- 
-       /* Obtain a pointer to the current directory entry. */
-       position += next_entry_offset;
-@@ -1568,8 +1456,11 @@ void fs__scandir(uv_fs_t* req) {
-           info->FileName[1] == L'.')
-         continue;
- 
--      /* Compute the space required to store the filename as WTF-8. */
--      wtf8_len = fs__get_length_wide(&info->FileName[0], wchar_len);
-+      /* Compute the space required to store the filename as UTF-8. */
-+      utf8_len = WideCharToMultiByte(
-+          CP_UTF8, 0, &info->FileName[0], wchar_len, NULL, 0, NULL, NULL);
-+      if (utf8_len == 0)
-+        goto win32_error;
- 
-       /* Resize the dirent array if needed. */
-       if (dirents_used >= dirents_size) {
-@@ -1589,17 +1480,26 @@ void fs__scandir(uv_fs_t* req) {
-        * includes room for the first character of the filename, but `utf8_len`
-        * doesn't count the NULL terminator at this point.
-        */
--      dirent = uv__malloc(sizeof *dirent + wtf8_len);
-+      dirent = uv__malloc(sizeof *dirent + utf8_len);
-       if (dirent == NULL)
-         goto out_of_memory_error;
- 
-       dirents[dirents_used++] = dirent;
- 
-       /* Convert file name to UTF-8. */
--      wtf8 = &dirent->d_name[0];
--      if (fs__wide_to_wtf8(&info->FileName[0], wchar_len, &wtf8, &wtf8_len) == -1)
-+      if (WideCharToMultiByte(CP_UTF8,
-+                              0,
-+                              &info->FileName[0],
-+                              wchar_len,
-+                              &dirent->d_name[0],
-+                              utf8_len,
-+                              NULL,
-+                              NULL) == 0)
-         goto win32_error;
- 
-+      /* Add a null terminator to the filename. */
-+      dirent->d_name[utf8_len] = '\0';
-+
-       /* Fill out the type field. */
-       if (info->FileAttributes & FILE_ATTRIBUTE_DEVICE)
-         dirent->d_type = UV__DT_CHAR;
-@@ -1808,7 +1708,6 @@ void fs__closedir(uv_fs_t* req) {
- 
- INLINE static int fs__stat_handle(HANDLE handle, uv_stat_t* statbuf,
-     int do_lstat) {
--  size_t target_length = 0;
-   FILE_FS_DEVICE_INFORMATION device_info;
-   FILE_ALL_INFORMATION file_info;
-   FILE_FS_VOLUME_INFORMATION volume_info;
-@@ -1904,10 +1803,9 @@ INLINE static int fs__stat_handle(HANDLE handle, uv_stat_t* statbuf,
-      * to be treated as a regular file. The higher level lstat function will
-      * detect this failure and retry without do_lstat if appropriate.
-      */
--    if (fs__readlink_handle(handle, NULL, &target_length) != 0)
-+    if (fs__readlink_handle(handle, NULL, &statbuf->st_size) != 0)
-       return -1;
-     statbuf->st_mode |= S_IFLNK;
--    statbuf->st_size = target_length;
-   }
- 
-   if (statbuf->st_mode == 0) {
-@@ -2763,7 +2661,6 @@ static void fs__readlink(uv_fs_t* req) {
-     return;
-   }
- 
--  assert(req->ptr == NULL);
-   if (fs__readlink_handle(handle, (char**) &req->ptr, NULL) != 0) {
-     DWORD error = GetLastError();
-     SET_REQ_WIN32_ERROR(req, error);
-@@ -2823,8 +2720,7 @@ static ssize_t fs__realpath_handle(HANDLE handle, char** realpath_ptr) {
-     return -1;
-   }
- 
--  assert(*realpath_ptr == NULL);
--  r = fs__wide_to_wtf8(w_realpath_ptr, w_realpath_len, realpath_ptr, NULL);
-+  r = fs__wide_to_utf8(w_realpath_ptr, w_realpath_len, realpath_ptr, NULL);
-   uv__free(w_realpath_buf);
-   return r;
- }
-@@ -2844,7 +2740,6 @@ static void fs__realpath(uv_fs_t* req) {
-     return;
-   }
- 
--  assert(req->ptr == NULL);
-   if (fs__realpath_handle(handle, (char**) &req->ptr) == -1) {
-     CloseHandle(handle);
-     SET_REQ_WIN32_ERROR(req, GetLastError());
-diff --git a/deps/uv/src/win/handle-inl.h b/deps/uv/src/win/handle-inl.h
-index 4722e85790a..5c843c241ef 100644
---- a/deps/uv/src/win/handle-inl.h
-+++ b/deps/uv/src/win/handle-inl.h
-@@ -75,7 +75,7 @@
- 
- #define uv__handle_close(handle)                                        \
-   do {                                                                  \
--    uv__queue_remove(&(handle)->handle_queue);                          \
-+    QUEUE_REMOVE(&(handle)->handle_queue);                              \
-     uv__active_handle_rm((uv_handle_t*) (handle));                      \
-                                                                         \
-     (handle)->flags |= UV_HANDLE_CLOSED;                                \
-diff --git a/deps/uv/src/win/pipe.c b/deps/uv/src/win/pipe.c
-index f0cac382256..5e4276387ac 100644
---- a/deps/uv/src/win/pipe.c
-+++ b/deps/uv/src/win/pipe.c
-@@ -55,7 +55,7 @@ static const int pipe_prefix_len = sizeof(pipe_prefix) - 1;
- typedef struct {
-   uv__ipc_socket_xfer_type_t xfer_type;
-   uv__ipc_socket_xfer_info_t xfer_info;
--  struct uv__queue member;
-+  QUEUE member;
- } uv__ipc_xfer_queue_item_t;
- 
- /* IPC frame header flags. */
-@@ -111,7 +111,7 @@ int uv_pipe_init(uv_loop_t* loop, uv_pipe_t* handle, int ipc) {
-   handle->name = NULL;
-   handle->pipe.conn.ipc_remote_pid = 0;
-   handle->pipe.conn.ipc_data_frame.payload_remaining = 0;
--  uv__queue_init(&handle->pipe.conn.ipc_xfer_queue);
-+  QUEUE_INIT(&handle->pipe.conn.ipc_xfer_queue);
-   handle->pipe.conn.ipc_xfer_queue_length = 0;
-   handle->ipc = ipc;
-   handle->pipe.conn.non_overlapped_writes_tail = NULL;
-@@ -637,13 +637,13 @@ void uv__pipe_endgame(uv_loop_t* loop, uv_pipe_t* handle) {
- 
-   if (handle->flags & UV_HANDLE_CONNECTION) {
-     /* Free pending sockets */
--    while (!uv__queue_empty(&handle->pipe.conn.ipc_xfer_queue)) {
--      struct uv__queue* q;
-+    while (!QUEUE_EMPTY(&handle->pipe.conn.ipc_xfer_queue)) {
-+      QUEUE* q;
-       SOCKET socket;
- 
--      q = uv__queue_head(&handle->pipe.conn.ipc_xfer_queue);
--      uv__queue_remove(q);
--      xfer_queue_item = uv__queue_data(q, uv__ipc_xfer_queue_item_t, member);
-+      q = QUEUE_HEAD(&handle->pipe.conn.ipc_xfer_queue);
-+      QUEUE_REMOVE(q);
-+      xfer_queue_item = QUEUE_DATA(q, uv__ipc_xfer_queue_item_t, member);
- 
-       /* Materialize socket and close it */
-       socket = WSASocketW(FROM_PROTOCOL_INFO,
-@@ -1124,20 +1124,20 @@ int uv__pipe_accept(uv_pipe_t* server, uv_stream_t* client) {
-   uv_loop_t* loop = server->loop;
-   uv_pipe_t* pipe_client;
-   uv_pipe_accept_t* req;
--  struct uv__queue* q;
-+  QUEUE* q;
-   uv__ipc_xfer_queue_item_t* item;
-   int err;
- 
-   if (server->ipc) {
--    if (uv__queue_empty(&server->pipe.conn.ipc_xfer_queue)) {
-+    if (QUEUE_EMPTY(&server->pipe.conn.ipc_xfer_queue)) {
-       /* No valid pending sockets. */
-       return WSAEWOULDBLOCK;
-     }
- 
--    q = uv__queue_head(&server->pipe.conn.ipc_xfer_queue);
--    uv__queue_remove(q);
-+    q = QUEUE_HEAD(&server->pipe.conn.ipc_xfer_queue);
-+    QUEUE_REMOVE(q);
-     server->pipe.conn.ipc_xfer_queue_length--;
--    item = uv__queue_data(q, uv__ipc_xfer_queue_item_t, member);
-+    item = QUEUE_DATA(q, uv__ipc_xfer_queue_item_t, member);
- 
-     err = uv__tcp_xfer_import(
-         (uv_tcp_t*) client, item->xfer_type, &item->xfer_info);
-@@ -1891,7 +1891,7 @@ static void uv__pipe_queue_ipc_xfer_info(
-   item->xfer_type = xfer_type;
-   item->xfer_info = *xfer_info;
- 
--  uv__queue_insert_tail(&handle->pipe.conn.ipc_xfer_queue, &item->member);
-+  QUEUE_INSERT_TAIL(&handle->pipe.conn.ipc_xfer_queue, &item->member);
-   handle->pipe.conn.ipc_xfer_queue_length++;
- }
- 
-diff --git a/deps/uv/src/win/tcp.c b/deps/uv/src/win/tcp.c
-index 187f36e2a61..6b282e0b501 100644
---- a/deps/uv/src/win/tcp.c
-+++ b/deps/uv/src/win/tcp.c
-@@ -175,14 +175,14 @@ int uv_tcp_init_ex(uv_loop_t* loop, uv_tcp_t* handle, unsigned int flags) {
-     sock = socket(domain, SOCK_STREAM, 0);
-     if (sock == INVALID_SOCKET) {
-       err = WSAGetLastError();
--      uv__queue_remove(&handle->handle_queue);
-+      QUEUE_REMOVE(&handle->handle_queue);
-       return uv_translate_sys_error(err);
-     }
- 
-     err = uv__tcp_set_socket(handle->loop, handle, sock, domain, 0);
-     if (err) {
-       closesocket(sock);
--      uv__queue_remove(&handle->handle_queue);
-+      QUEUE_REMOVE(&handle->handle_queue);
-       return uv_translate_sys_error(err);
-     }
- 
-diff --git a/deps/uv/src/win/udp.c b/deps/uv/src/win/udp.c
-index eab53842d4f..8a982d1907d 100644
---- a/deps/uv/src/win/udp.c
-+++ b/deps/uv/src/win/udp.c
-@@ -146,14 +146,14 @@ int uv__udp_init_ex(uv_loop_t* loop,
-     sock = socket(domain, SOCK_DGRAM, 0);
-     if (sock == INVALID_SOCKET) {
-       err = WSAGetLastError();
--      uv__queue_remove(&handle->handle_queue);
-+      QUEUE_REMOVE(&handle->handle_queue);
-       return uv_translate_sys_error(err);
-     }
- 
-     err = uv__udp_set_socket(handle->loop, handle, sock, domain);
-     if (err) {
-       closesocket(sock);
--      uv__queue_remove(&handle->handle_queue);
-+      QUEUE_REMOVE(&handle->handle_queue);
-       return uv_translate_sys_error(err);
-     }
-   }
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch
new file mode 100644
index 0000000..f11cd08
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch
@@ -0,0 +1,35 @@
+From 9838be9c710ab4249df86726fa390232a3b6a6e7 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 1 Mar 2024 15:46:11 +0800
+Subject: [PATCH] deps: disable io_uring support in libuv
+
+Refer [1], Pseudo fails to intercept some of the syscalls when io_uring
+enabled. Refer [2], always disable io_uring support in libuv to fix
+issue in [1].
+
+[1] https://git.openembedded.org/meta-openembedded/commit/?id=d08453978c31ee41d28206c6ff198d7d9d701d88
+[2] https://github.com/nodejs/node/commit/686da19abb
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ deps/uv/src/unix/linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deps/uv/src/unix/linux.c b/deps/uv/src/unix/linux.c
+index 0c997185..7508409d 100644
+--- a/deps/uv/src/unix/linux.c
++++ b/deps/uv/src/unix/linux.c
+@@ -433,7 +433,7 @@ static int uv__use_io_uring(void) {
+   if (use == 0) {
+     /* Disable io_uring by default due to CVE-2024-22017. */
+     val = getenv("UV_USE_IO_URING");
+-    use = val != NULL && atoi(val) ? 1 : -1;
++    use = 0;
+     atomic_store_explicit(&use_io_uring, use, memory_order_relaxed);
+   }
+ 
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Revert-io_uring-changes-from-libuv-1.45.0.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Revert-io_uring-changes-from-libuv-1.45.0.patch
deleted file mode 100644
index 77cd53b..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Revert-io_uring-changes-from-libuv-1.45.0.patch
+++ /dev/null
@@ -1,1803 +0,0 @@
-From 6d2ef4c8ba2304ee4941a6719b3ad9bd63e415a9 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <martin.jansa@gmail.com>
-Date: Wed, 18 Oct 2023 21:09:44 +0200
-Subject: [PATCH] Revert io_uring changes from libuv-1.45.0
-
-This reverts https://github.com/libuv/libuv/pull/3952/commits/26c79a942b92573a1388c0ee8a6ad4397f009318
-
-Included in nodejs-20.3.0 with the libuv upgrade to 1.45.0 in:
-https://github.com/nodejs/node/commit/bfcb3d1d9a876f399013d326bd65804f9eda77e4
-
-Reverted libuv commits:
-Revert "linux: fix WRITEV with lots of bufs using io_uring (#4004)"
-This reverts commit ef6a9a624df0a00687037474025a3608472f722a.
-Revert "linux: work around EOWNERDEAD io_uring kernel bug (#4002)"
-This reverts commit d23a20f62cc50b9fd7694992263f1d296d8f5cb4.
-Revert "unix: handle CQ overflow in iou ring (#3991)"
-This reverts commit 30fc896cc1b5822e9f1eb462587fe4b368a6215c.
-Revert "unix: constrained_memory should return UINT64_MAX (#3753)"
-This reverts commit 6ad347fae4520f39520d34bd7c7f5ddafab13a69.
-Revert "linux: use io_uring to batch epoll_ctl calls (#3979)"
-This reverts commit 6e073ef5daf93b708a654008959b823b58029e88.
-Revert "linux: fix logic bug in sqe ring space check (#3980)"
-This reverts commit f27208224084fc972b9d2802486d97ef31b51a39.
-Revert "src: fix events/events_waiting metrics counter (#3957)"
-This reverts commit e02642cf3b768b2c58a41f97fa38507e032ae415.
-Revert "linux: remove bug workaround for obsolete kernels (#3965)"
-This reverts commit 1c935a34454167b23f8eef7f0f63d7119f0de747.
-Revert "linux: add IORING_OP_CLOSE support (#3964)"
-This reverts commit dfae365f844e127621128a76bce7165e3f99a8d9.
-Revert "linux: add IORING_OP_OPENAT support (#3963)"
-This reverts commit 5ca5e475bb1711e65323ef1594a31818e5a1a9eb.
-Revert "linux: fix academic valgrind warning (#3960)"
-This reverts commit a7ff759ca1deacb2e0e6ae3c2d3dce91cc637dfe.
-Revert "linux: introduce io_uring support (#3952)"
-This reverts commit d2c31f429b87b476a7f1344d145dad4752a406d4.
-
-Dropped deps/uv/docs deps/uv/test changes as these dirs aren't included
-in nodejs tarballs.
-
-Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
----
-Upstream-Status: Inappropriate [OE specific]
-
- deps/uv/docs/src/fs.rst               |   6 -
- deps/uv/docs/src/misc.rst             |   5 +-
- deps/uv/src/threadpool.c              |  21 -
- deps/uv/src/unix/aix.c                |  11 +-
- deps/uv/src/unix/fs.c                 |  57 +-
- deps/uv/src/unix/internal.h           |  23 -
- deps/uv/src/unix/kqueue.c             |  10 +-
- deps/uv/src/unix/linux.c              | 998 +++-----------------------
- deps/uv/src/unix/os390.c              |  11 +-
- deps/uv/src/unix/posix-poll.c         |  11 +-
- deps/uv/src/uv-common.h               |  28 -
- deps/uv/src/win/core.c                |  20 +-
- deps/uv/test/test-fs.c                |  33 -
- deps/uv/test/test-list.h              |   4 -
- deps/uv/test/test-metrics.c           | 151 ----
- deps/uv/test/test-threadpool-cancel.c |  34 +-
- 16 files changed, 138 insertions(+), 1285 deletions(-)
-
-diff --git a/deps/uv/src/threadpool.c b/deps/uv/src/threadpool.c
-index 51962bf0021..a3da53026f9 100644
---- a/deps/uv/src/threadpool.c
-+++ b/deps/uv/src/threadpool.c
-@@ -275,13 +275,9 @@ void uv__work_submit(uv_loop_t* loop,
- }
- 
- 
--/* TODO(bnoordhuis) teach libuv how to cancel file operations
-- * that go through io_uring instead of the thread pool.
-- */
- static int uv__work_cancel(uv_loop_t* loop, uv_req_t* req, struct uv__work* w) {
-   int cancelled;
- 
--  uv_once(&once, init_once);  /* Ensure |mutex| is initialized. */
-   uv_mutex_lock(&mutex);
-   uv_mutex_lock(&w->loop->wq_mutex);
- 
-@@ -311,15 +307,12 @@ void uv__work_done(uv_async_t* handle) {
-   QUEUE* q;
-   QUEUE wq;
-   int err;
--  int nevents;
- 
-   loop = container_of(handle, uv_loop_t, wq_async);
-   uv_mutex_lock(&loop->wq_mutex);
-   QUEUE_MOVE(&loop->wq, &wq);
-   uv_mutex_unlock(&loop->wq_mutex);
- 
--  nevents = 0;
--
-   while (!QUEUE_EMPTY(&wq)) {
-     q = QUEUE_HEAD(&wq);
-     QUEUE_REMOVE(q);
-@@ -327,20 +320,6 @@ void uv__work_done(uv_async_t* handle) {
-     w = container_of(q, struct uv__work, wq);
-     err = (w->work == uv__cancelled) ? UV_ECANCELED : 0;
-     w->done(w, err);
--    nevents++;
--  }
--
--  /* This check accomplishes 2 things:
--   * 1. Even if the queue was empty, the call to uv__work_done() should count
--   *    as an event. Which will have been added by the event loop when
--   *    calling this callback.
--   * 2. Prevents accidental wrap around in case nevents == 0 events == 0.
--   */
--  if (nevents > 1) {
--    /* Subtract 1 to counter the call to uv__work_done(). */
--    uv__metrics_inc_events(loop, nevents - 1);
--    if (uv__get_internal_fields(loop)->current_timeout == 0)
--      uv__metrics_inc_events_waiting(loop, nevents - 1);
-   }
- }
- 
-diff --git a/deps/uv/src/unix/aix.c b/deps/uv/src/unix/aix.c
-index f1afbed49ec..b855282ebc8 100644
---- a/deps/uv/src/unix/aix.c
-+++ b/deps/uv/src/unix/aix.c
-@@ -131,7 +131,6 @@ int uv__io_check_fd(uv_loop_t* loop, int fd) {
- 
- 
- void uv__io_poll(uv_loop_t* loop, int timeout) {
--  uv__loop_internal_fields_t* lfields;
-   struct pollfd events[1024];
-   struct pollfd pqry;
-   struct pollfd* pe;
-@@ -155,8 +154,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     return;
-   }
- 
--  lfields = uv__get_internal_fields(loop);
--
-   while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-     q = QUEUE_HEAD(&loop->watcher_queue);
-     QUEUE_REMOVE(q);
-@@ -220,7 +217,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   base = loop->time;
-   count = 48; /* Benchmarks suggest this gives the best throughput. */
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -235,12 +232,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     if (timeout != 0)
-       uv__metrics_set_provider_entry_time(loop);
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
--     */
--    lfields->current_timeout = timeout;
--
-     nfds = pollset_poll(loop->backend_fd,
-                         events,
-                         ARRAY_SIZE(events),
-diff --git a/deps/uv/src/unix/fs.c b/deps/uv/src/unix/fs.c
-index 00d385c24b7..c696a8d5500 100644
---- a/deps/uv/src/unix/fs.c
-+++ b/deps/uv/src/unix/fs.c
-@@ -61,11 +61,10 @@
- #endif
- 
- #if defined(__linux__)
--# include <sys/sendfile.h>
--# include <sys/utsname.h>
-+# include "sys/utsname.h"
- #endif
- 
--#if defined(__sun)
-+#if defined(__linux__) || defined(__sun)
- # include <sys/sendfile.h>
- # include <sys/sysmacros.h>
- #endif
-@@ -1554,7 +1553,26 @@ static int uv__fs_statx(int fd,
-     return UV_ENOSYS;
-   }
- 
--  uv__statx_to_stat(&statxbuf, buf);
-+  buf->st_dev = makedev(statxbuf.stx_dev_major, statxbuf.stx_dev_minor);
-+  buf->st_mode = statxbuf.stx_mode;
-+  buf->st_nlink = statxbuf.stx_nlink;
-+  buf->st_uid = statxbuf.stx_uid;
-+  buf->st_gid = statxbuf.stx_gid;
-+  buf->st_rdev = makedev(statxbuf.stx_rdev_major, statxbuf.stx_rdev_minor);
-+  buf->st_ino = statxbuf.stx_ino;
-+  buf->st_size = statxbuf.stx_size;
-+  buf->st_blksize = statxbuf.stx_blksize;
-+  buf->st_blocks = statxbuf.stx_blocks;
-+  buf->st_atim.tv_sec = statxbuf.stx_atime.tv_sec;
-+  buf->st_atim.tv_nsec = statxbuf.stx_atime.tv_nsec;
-+  buf->st_mtim.tv_sec = statxbuf.stx_mtime.tv_sec;
-+  buf->st_mtim.tv_nsec = statxbuf.stx_mtime.tv_nsec;
-+  buf->st_ctim.tv_sec = statxbuf.stx_ctime.tv_sec;
-+  buf->st_ctim.tv_nsec = statxbuf.stx_ctime.tv_nsec;
-+  buf->st_birthtim.tv_sec = statxbuf.stx_btime.tv_sec;
-+  buf->st_birthtim.tv_nsec = statxbuf.stx_btime.tv_nsec;
-+  buf->st_flags = 0;
-+  buf->st_gen = 0;
- 
-   return 0;
- #else
-@@ -1798,9 +1816,6 @@ int uv_fs_chown(uv_loop_t* loop,
- int uv_fs_close(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) {
-   INIT(CLOSE);
-   req->file = file;
--  if (cb != NULL)
--    if (uv__iou_fs_close(loop, req))
--      return 0;
-   POST;
- }
- 
-@@ -1848,9 +1863,6 @@ int uv_fs_lchown(uv_loop_t* loop,
- int uv_fs_fdatasync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) {
-   INIT(FDATASYNC);
-   req->file = file;
--  if (cb != NULL)
--    if (uv__iou_fs_fsync_or_fdatasync(loop, req, /* IORING_FSYNC_DATASYNC */ 1))
--      return 0;
-   POST;
- }
- 
-@@ -1858,9 +1870,6 @@ int uv_fs_fdatasync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) {
- int uv_fs_fstat(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) {
-   INIT(FSTAT);
-   req->file = file;
--  if (cb != NULL)
--    if (uv__iou_fs_statx(loop, req, /* is_fstat */ 1, /* is_lstat */ 0))
--      return 0;
-   POST;
- }
- 
-@@ -1868,9 +1877,6 @@ int uv_fs_fstat(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) {
- int uv_fs_fsync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) {
-   INIT(FSYNC);
-   req->file = file;
--  if (cb != NULL)
--    if (uv__iou_fs_fsync_or_fdatasync(loop, req, /* no flags */ 0))
--      return 0;
-   POST;
- }
- 
-@@ -1917,9 +1923,6 @@ int uv_fs_lutime(uv_loop_t* loop,
- int uv_fs_lstat(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) {
-   INIT(LSTAT);
-   PATH;
--  if (cb != NULL)
--    if (uv__iou_fs_statx(loop, req, /* is_fstat */ 0, /* is_lstat */ 1))
--      return 0;
-   POST;
- }
- 
-@@ -1981,9 +1984,6 @@ int uv_fs_open(uv_loop_t* loop,
-   PATH;
-   req->flags = flags;
-   req->mode = mode;
--  if (cb != NULL)
--    if (uv__iou_fs_open(loop, req))
--      return 0;
-   POST;
- }
- 
-@@ -2012,11 +2012,6 @@ int uv_fs_read(uv_loop_t* loop, uv_fs_t* req,
-   memcpy(req->bufs, bufs, nbufs * sizeof(*bufs));
- 
-   req->off = off;
--
--  if (cb != NULL)
--    if (uv__iou_fs_read_or_write(loop, req, /* is_read */ 1))
--      return 0;
--
-   POST;
- }
- 
-@@ -2124,9 +2119,6 @@ int uv_fs_sendfile(uv_loop_t* loop,
- int uv_fs_stat(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) {
-   INIT(STAT);
-   PATH;
--  if (cb != NULL)
--    if (uv__iou_fs_statx(loop, req, /* is_fstat */ 0, /* is_lstat */ 0))
--      return 0;
-   POST;
- }
- 
-@@ -2190,11 +2182,6 @@ int uv_fs_write(uv_loop_t* loop,
-   memcpy(req->bufs, bufs, nbufs * sizeof(*bufs));
- 
-   req->off = off;
--
--  if (cb != NULL)
--    if (uv__iou_fs_read_or_write(loop, req, /* is_read */ 0))
--      return 0;
--
-   POST;
- }
- 
-diff --git a/deps/uv/src/unix/internal.h b/deps/uv/src/unix/internal.h
-index 6c5822e6a0d..d439ae6dd3d 100644
---- a/deps/uv/src/unix/internal.h
-+++ b/deps/uv/src/unix/internal.h
-@@ -329,28 +329,6 @@ int uv__random_getentropy(void* buf, size_t buflen);
- int uv__random_readpath(const char* path, void* buf, size_t buflen);
- int uv__random_sysctl(void* buf, size_t buflen);
- 
--/* io_uring */
--#ifdef __linux__
--int uv__iou_fs_close(uv_loop_t* loop, uv_fs_t* req);
--int uv__iou_fs_fsync_or_fdatasync(uv_loop_t* loop,
--                                  uv_fs_t* req,
--                                  uint32_t fsync_flags);
--int uv__iou_fs_open(uv_loop_t* loop, uv_fs_t* req);
--int uv__iou_fs_read_or_write(uv_loop_t* loop,
--                             uv_fs_t* req,
--                             int is_read);
--int uv__iou_fs_statx(uv_loop_t* loop,
--                     uv_fs_t* req,
--                     int is_fstat,
--                     int is_lstat);
--#else
--#define uv__iou_fs_close(loop, req) 0
--#define uv__iou_fs_fsync_or_fdatasync(loop, req, fsync_flags) 0
--#define uv__iou_fs_open(loop, req) 0
--#define uv__iou_fs_read_or_write(loop, req, is_read) 0
--#define uv__iou_fs_statx(loop, req, is_fstat, is_lstat) 0
--#endif
--
- #if defined(__APPLE__)
- int uv___stream_fd(const uv_stream_t* handle);
- #define uv__stream_fd(handle) (uv___stream_fd((const uv_stream_t*) (handle)))
-@@ -427,7 +405,6 @@ int uv__statx(int dirfd,
-               int flags,
-               unsigned int mask,
-               struct uv__statx* statxbuf);
--void uv__statx_to_stat(const struct uv__statx* statxbuf, uv_stat_t* buf);
- ssize_t uv__getrandom(void* buf, size_t buflen, unsigned flags);
- #endif
- 
-diff --git a/deps/uv/src/unix/kqueue.c b/deps/uv/src/unix/kqueue.c
-index 82916d65933..deb486bae7a 100644
---- a/deps/uv/src/unix/kqueue.c
-+++ b/deps/uv/src/unix/kqueue.c
-@@ -127,7 +127,6 @@ static void uv__kqueue_delete(int kqfd, const struct kevent *ev) {
- 
- 
- void uv__io_poll(uv_loop_t* loop, int timeout) {
--  uv__loop_internal_fields_t* lfields;
-   struct kevent events[1024];
-   struct kevent* ev;
-   struct timespec spec;
-@@ -156,7 +155,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     return;
-   }
- 
--  lfields = uv__get_internal_fields(loop);
-   nevents = 0;
- 
-   while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-@@ -224,7 +222,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   base = loop->time;
-   count = 48; /* Benchmarks suggest this gives the best throughput. */
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -247,12 +245,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     if (pset != NULL)
-       pthread_sigmask(SIG_BLOCK, pset, NULL);
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
--     */
--    lfields->current_timeout = timeout;
--
-     nfds = kevent(loop->backend_fd,
-                   events,
-                   nevents,
-diff --git a/deps/uv/src/unix/linux.c b/deps/uv/src/unix/linux.c
-index 5f84ad0eea3..343e37f2527 100644
---- a/deps/uv/src/unix/linux.c
-+++ b/deps/uv/src/unix/linux.c
-@@ -27,8 +27,6 @@
- #include "internal.h"
- 
- #include <inttypes.h>
--#include <stdatomic.h>
--#include <stddef.h>  /* offsetof */
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -40,29 +38,15 @@
- #include <net/if.h>
- #include <sys/epoll.h>
- #include <sys/inotify.h>
--#include <sys/mman.h>
- #include <sys/param.h>
- #include <sys/prctl.h>
- #include <sys/stat.h>
- #include <sys/syscall.h>
- #include <sys/sysinfo.h>
--#include <sys/sysmacros.h>
- #include <sys/types.h>
- #include <time.h>
- #include <unistd.h>
- 
--#ifndef __NR_io_uring_setup
--# define __NR_io_uring_setup 425
--#endif
--
--#ifndef __NR_io_uring_enter
--# define __NR_io_uring_enter 426
--#endif
--
--#ifndef __NR_io_uring_register
--# define __NR_io_uring_register 427
--#endif
--
- #ifndef __NR_copy_file_range
- # if defined(__x86_64__)
- #  define __NR_copy_file_range 326
-@@ -132,129 +116,6 @@
- # include <netpacket/packet.h>
- #endif /* HAVE_IFADDRS_H */
- 
--enum {
--  UV__IORING_SETUP_SQPOLL = 2u,
--};
--
--enum {
--  UV__IORING_FEAT_SINGLE_MMAP = 1u,
--  UV__IORING_FEAT_NODROP = 2u,
--  UV__IORING_FEAT_RSRC_TAGS = 1024u,  /* linux v5.13 */
--};
--
--enum {
--  UV__IORING_OP_READV = 1,
--  UV__IORING_OP_WRITEV = 2,
--  UV__IORING_OP_FSYNC = 3,
--  UV__IORING_OP_OPENAT = 18,
--  UV__IORING_OP_CLOSE = 19,
--  UV__IORING_OP_STATX = 21,
--  UV__IORING_OP_EPOLL_CTL = 29,
--};
--
--enum {
--  UV__IORING_ENTER_GETEVENTS = 1u,
--  UV__IORING_ENTER_SQ_WAKEUP = 2u,
--};
--
--enum {
--  UV__IORING_SQ_NEED_WAKEUP = 1u,
--  UV__IORING_SQ_CQ_OVERFLOW = 2u,
--};
--
--struct uv__io_cqring_offsets {
--  uint32_t head;
--  uint32_t tail;
--  uint32_t ring_mask;
--  uint32_t ring_entries;
--  uint32_t overflow;
--  uint32_t cqes;
--  uint64_t reserved0;
--  uint64_t reserved1;
--};
--
--STATIC_ASSERT(40 == sizeof(struct uv__io_cqring_offsets));
--
--struct uv__io_sqring_offsets {
--  uint32_t head;
--  uint32_t tail;
--  uint32_t ring_mask;
--  uint32_t ring_entries;
--  uint32_t flags;
--  uint32_t dropped;
--  uint32_t array;
--  uint32_t reserved0;
--  uint64_t reserved1;
--};
--
--STATIC_ASSERT(40 == sizeof(struct uv__io_sqring_offsets));
--
--struct uv__io_uring_cqe {
--  uint64_t user_data;
--  int32_t res;
--  uint32_t flags;
--};
--
--STATIC_ASSERT(16 == sizeof(struct uv__io_uring_cqe));
--
--struct uv__io_uring_sqe {
--  uint8_t opcode;
--  uint8_t flags;
--  uint16_t ioprio;
--  int32_t fd;
--  union {
--    uint64_t off;
--    uint64_t addr2;
--  };
--  union {
--    uint64_t addr;
--  };
--  uint32_t len;
--  union {
--    uint32_t rw_flags;
--    uint32_t fsync_flags;
--    uint32_t open_flags;
--    uint32_t statx_flags;
--  };
--  uint64_t user_data;
--  union {
--    uint16_t buf_index;
--    uint64_t pad[3];
--  };
--};
--
--STATIC_ASSERT(64 == sizeof(struct uv__io_uring_sqe));
--STATIC_ASSERT(0 == offsetof(struct uv__io_uring_sqe, opcode));
--STATIC_ASSERT(1 == offsetof(struct uv__io_uring_sqe, flags));
--STATIC_ASSERT(2 == offsetof(struct uv__io_uring_sqe, ioprio));
--STATIC_ASSERT(4 == offsetof(struct uv__io_uring_sqe, fd));
--STATIC_ASSERT(8 == offsetof(struct uv__io_uring_sqe, off));
--STATIC_ASSERT(16 == offsetof(struct uv__io_uring_sqe, addr));
--STATIC_ASSERT(24 == offsetof(struct uv__io_uring_sqe, len));
--STATIC_ASSERT(28 == offsetof(struct uv__io_uring_sqe, rw_flags));
--STATIC_ASSERT(32 == offsetof(struct uv__io_uring_sqe, user_data));
--STATIC_ASSERT(40 == offsetof(struct uv__io_uring_sqe, buf_index));
--
--struct uv__io_uring_params {
--  uint32_t sq_entries;
--  uint32_t cq_entries;
--  uint32_t flags;
--  uint32_t sq_thread_cpu;
--  uint32_t sq_thread_idle;
--  uint32_t features;
--  uint32_t reserved[4];
--  struct uv__io_sqring_offsets sq_off;  /* 40 bytes */
--  struct uv__io_cqring_offsets cq_off;  /* 40 bytes */
--};
--
--STATIC_ASSERT(40 + 40 + 40 == sizeof(struct uv__io_uring_params));
--STATIC_ASSERT(40 == offsetof(struct uv__io_uring_params, sq_off));
--STATIC_ASSERT(80 == offsetof(struct uv__io_uring_params, cq_off));
--
--STATIC_ASSERT(EPOLL_CTL_ADD < 4);
--STATIC_ASSERT(EPOLL_CTL_DEL < 4);
--STATIC_ASSERT(EPOLL_CTL_MOD < 4);
--
- struct watcher_list {
-   RB_ENTRY(watcher_list) entry;
-   QUEUE watchers;
-@@ -276,17 +137,6 @@ static int compare_watchers(const struct watcher_list* a,
- static void maybe_free_watcher_list(struct watcher_list* w,
-                                     uv_loop_t* loop);
- 
--static void uv__epoll_ctl_flush(int epollfd,
--                                struct uv__iou* ctl,
--                                struct epoll_event (*events)[256]);
--
--static void uv__epoll_ctl_prep(int epollfd,
--                               struct uv__iou* ctl,
--                               struct epoll_event (*events)[256],
--                               int op,
--                               int fd,
--                               struct epoll_event* e);
--
- RB_GENERATE_STATIC(watcher_root, watcher_list, entry, compare_watchers)
- 
- 
-@@ -356,187 +206,7 @@ ssize_t uv__getrandom(void* buf, size_t buflen, unsigned flags) {
- }
- 
- 
--int uv__io_uring_setup(int entries, struct uv__io_uring_params* params) {
--  return syscall(__NR_io_uring_setup, entries, params);
--}
--
--
--int uv__io_uring_enter(int fd,
--                       unsigned to_submit,
--                       unsigned min_complete,
--                       unsigned flags) {
--  /* io_uring_enter used to take a sigset_t but it's unused
--   * in newer kernels unless IORING_ENTER_EXT_ARG is set,
--   * in which case it takes a struct io_uring_getevents_arg.
--   */
--  return syscall(__NR_io_uring_enter,
--                 fd,
--                 to_submit,
--                 min_complete,
--                 flags,
--                 NULL,
--                 0L);
--}
--
--
--int uv__io_uring_register(int fd, unsigned opcode, void* arg, unsigned nargs) {
--  return syscall(__NR_io_uring_register, fd, opcode, arg, nargs);
--}
--
--
--static int uv__use_io_uring(void) {
--  /* Ternary: unknown=0, yes=1, no=-1 */
--  static _Atomic int use_io_uring;
--  char* val;
--  int use;
--
--  use = atomic_load_explicit(&use_io_uring, memory_order_relaxed);
--
--  if (use == 0) {
--    val = getenv("UV_USE_IO_URING");
--    use = val == NULL || atoi(val) ? 1 : -1;
--    atomic_store_explicit(&use_io_uring, use, memory_order_relaxed);
--  }
--
--  return use > 0;
--}
--
--
--static void uv__iou_init(int epollfd,
--                         struct uv__iou* iou,
--                         uint32_t entries,
--                         uint32_t flags) {
--  struct uv__io_uring_params params;
--  struct epoll_event e;
--  size_t cqlen;
--  size_t sqlen;
--  size_t maxlen;
--  size_t sqelen;
--  uint32_t i;
--  char* sq;
--  char* sqe;
--  int ringfd;
--
--  sq = MAP_FAILED;
--  sqe = MAP_FAILED;
--
--  if (!uv__use_io_uring())
--    return;
--
--  /* SQPOLL required CAP_SYS_NICE until linux v5.12 relaxed that requirement.
--   * Mostly academic because we check for a v5.13 kernel afterwards anyway.
--   */
--  memset(&params, 0, sizeof(params));
--  params.flags = flags;
--
--  if (flags & UV__IORING_SETUP_SQPOLL)
--    params.sq_thread_idle = 10;  /* milliseconds */
--
--  /* Kernel returns a file descriptor with O_CLOEXEC flag set. */
--  ringfd = uv__io_uring_setup(entries, &params);
--  if (ringfd == -1)
--    return;
--
--  /* IORING_FEAT_RSRC_TAGS is used to detect linux v5.13 but what we're
--   * actually detecting is whether IORING_OP_STATX works with SQPOLL.
--   */
--  if (!(params.features & UV__IORING_FEAT_RSRC_TAGS))
--    goto fail;
--
--  /* Implied by IORING_FEAT_RSRC_TAGS but checked explicitly anyway. */
--  if (!(params.features & UV__IORING_FEAT_SINGLE_MMAP))
--    goto fail;
--
--  /* Implied by IORING_FEAT_RSRC_TAGS but checked explicitly anyway. */
--  if (!(params.features & UV__IORING_FEAT_NODROP))
--    goto fail;
--
--  sqlen = params.sq_off.array + params.sq_entries * sizeof(uint32_t);
--  cqlen =
--      params.cq_off.cqes + params.cq_entries * sizeof(struct uv__io_uring_cqe);
--  maxlen = sqlen < cqlen ? cqlen : sqlen;
--  sqelen = params.sq_entries * sizeof(struct uv__io_uring_sqe);
--
--  sq = mmap(0,
--            maxlen,
--            PROT_READ | PROT_WRITE,
--            MAP_SHARED | MAP_POPULATE,
--            ringfd,
--            0);  /* IORING_OFF_SQ_RING */
--
--  sqe = mmap(0,
--             sqelen,
--             PROT_READ | PROT_WRITE,
--             MAP_SHARED | MAP_POPULATE,
--             ringfd,
--             0x10000000ull);  /* IORING_OFF_SQES */
--
--  if (sq == MAP_FAILED || sqe == MAP_FAILED)
--    goto fail;
--
--  if (flags & UV__IORING_SETUP_SQPOLL) {
--    /* Only interested in completion events. To get notified when
--     * the kernel pulls items from the submission ring, add POLLOUT.
--     */
--    memset(&e, 0, sizeof(e));
--    e.events = POLLIN;
--    e.data.fd = ringfd;
--
--    if (epoll_ctl(epollfd, EPOLL_CTL_ADD, ringfd, &e))
--      goto fail;
--  }
--
--  iou->sqhead = (uint32_t*) (sq + params.sq_off.head);
--  iou->sqtail = (uint32_t*) (sq + params.sq_off.tail);
--  iou->sqmask = *(uint32_t*) (sq + params.sq_off.ring_mask);
--  iou->sqarray = (uint32_t*) (sq + params.sq_off.array);
--  iou->sqflags = (uint32_t*) (sq + params.sq_off.flags);
--  iou->cqhead = (uint32_t*) (sq + params.cq_off.head);
--  iou->cqtail = (uint32_t*) (sq + params.cq_off.tail);
--  iou->cqmask = *(uint32_t*) (sq + params.cq_off.ring_mask);
--  iou->sq = sq;
--  iou->cqe = sq + params.cq_off.cqes;
--  iou->sqe = sqe;
--  iou->sqlen = sqlen;
--  iou->cqlen = cqlen;
--  iou->maxlen = maxlen;
--  iou->sqelen = sqelen;
--  iou->ringfd = ringfd;
--  iou->in_flight = 0;
--
--  for (i = 0; i <= iou->sqmask; i++)
--    iou->sqarray[i] = i;  /* Slot -> sqe identity mapping. */
--
--  return;
--
--fail:
--  if (sq != MAP_FAILED)
--    munmap(sq, maxlen);
--
--  if (sqe != MAP_FAILED)
--    munmap(sqe, sqelen);
--
--  uv__close(ringfd);
--}
--
--
--static void uv__iou_delete(struct uv__iou* iou) {
--  if (iou->ringfd != -1) {
--    munmap(iou->sq, iou->maxlen);
--    munmap(iou->sqe, iou->sqelen);
--    uv__close(iou->ringfd);
--    iou->ringfd = -1;
--  }
--}
--
--
- int uv__platform_loop_init(uv_loop_t* loop) {
--  uv__loop_internal_fields_t* lfields;
--
--  lfields = uv__get_internal_fields(loop);
--  lfields->ctl.ringfd = -1;
--  lfields->iou.ringfd = -1;
--
-   loop->inotify_watchers = NULL;
-   loop->inotify_fd = -1;
-   loop->backend_fd = epoll_create1(O_CLOEXEC);
-@@ -544,9 +214,6 @@ int uv__platform_loop_init(uv_loop_t* loop) {
-   if (loop->backend_fd == -1)
-     return UV__ERR(errno);
- 
--  uv__iou_init(loop->backend_fd, &lfields->iou, 64, UV__IORING_SETUP_SQPOLL);
--  uv__iou_init(loop->backend_fd, &lfields->ctl, 256, 0);
--
-   return 0;
- }
- 
-@@ -559,8 +226,6 @@ int uv__io_fork(uv_loop_t* loop) {
- 
-   uv__close(loop->backend_fd);
-   loop->backend_fd = -1;
--
--  /* TODO(bnoordhuis) Loses items from the submission and completion rings. */
-   uv__platform_loop_delete(loop);
- 
-   err = uv__platform_loop_init(loop);
-@@ -572,62 +237,42 @@ int uv__io_fork(uv_loop_t* loop) {
- 
- 
- void uv__platform_loop_delete(uv_loop_t* loop) {
--  uv__loop_internal_fields_t* lfields;
--
--  lfields = uv__get_internal_fields(loop);
--  uv__iou_delete(&lfields->ctl);
--  uv__iou_delete(&lfields->iou);
--
--  if (loop->inotify_fd != -1) {
--    uv__io_stop(loop, &loop->inotify_read_watcher, POLLIN);
--    uv__close(loop->inotify_fd);
--    loop->inotify_fd = -1;
--  }
-+  if (loop->inotify_fd == -1) return;
-+  uv__io_stop(loop, &loop->inotify_read_watcher, POLLIN);
-+  uv__close(loop->inotify_fd);
-+  loop->inotify_fd = -1;
- }
- 
- 
--struct uv__invalidate {
--  struct epoll_event (*prep)[256];
--  struct epoll_event* events;
--  int nfds;
--};
--
--
- void uv__platform_invalidate_fd(uv_loop_t* loop, int fd) {
--  uv__loop_internal_fields_t* lfields;
--  struct uv__invalidate* inv;
-+  struct epoll_event* events;
-   struct epoll_event dummy;
--  int i;
-+  uintptr_t i;
-+  uintptr_t nfds;
- 
--  lfields = uv__get_internal_fields(loop);
--  inv = lfields->inv;
-+  assert(loop->watchers != NULL);
-+  assert(fd >= 0);
- 
--  /* Invalidate events with same file descriptor */
--  if (inv != NULL)
--    for (i = 0; i < inv->nfds; i++)
--      if (inv->events[i].data.fd == fd)
--        inv->events[i].data.fd = -1;
-+  events = (struct epoll_event*) loop->watchers[loop->nwatchers];
-+  nfds = (uintptr_t) loop->watchers[loop->nwatchers + 1];
-+  if (events != NULL)
-+    /* Invalidate events with same file descriptor */
-+    for (i = 0; i < nfds; i++)
-+      if (events[i].data.fd == fd)
-+        events[i].data.fd = -1;
- 
-   /* Remove the file descriptor from the epoll.
-    * This avoids a problem where the same file description remains open
-    * in another process, causing repeated junk epoll events.
-    *
-    * We pass in a dummy epoll_event, to work around a bug in old kernels.
--   *
--   * Work around a bug in kernels 3.10 to 3.19 where passing a struct that
--   * has the EPOLLWAKEUP flag set generates spurious audit syslog warnings.
-    */
--  memset(&dummy, 0, sizeof(dummy));
--
--  if (inv == NULL) {
-+  if (loop->backend_fd >= 0) {
-+    /* Work around a bug in kernels 3.10 to 3.19 where passing a struct that
-+     * has the EPOLLWAKEUP flag set generates spurious audit syslog warnings.
-+     */
-+    memset(&dummy, 0, sizeof(dummy));
-     epoll_ctl(loop->backend_fd, EPOLL_CTL_DEL, fd, &dummy);
--  } else {
--    uv__epoll_ctl_prep(loop->backend_fd,
--                       &lfields->ctl,
--                       inv->prep,
--                       EPOLL_CTL_DEL,
--                       fd,
--                       &dummy);
-   }
- }
- 
-@@ -653,454 +298,27 @@ int uv__io_check_fd(uv_loop_t* loop, int fd) {
- }
- 
- 
--/* Caller must initialize SQE and call uv__iou_submit(). */
--static struct uv__io_uring_sqe* uv__iou_get_sqe(struct uv__iou* iou,
--                                                uv_loop_t* loop,
--                                                uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  uint32_t head;
--  uint32_t tail;
--  uint32_t mask;
--  uint32_t slot;
--
--  if (iou->ringfd == -1)
--    return NULL;
--
--  head = atomic_load_explicit((_Atomic uint32_t*) iou->sqhead,
--                              memory_order_acquire);
--  tail = *iou->sqtail;
--  mask = iou->sqmask;
--
--  if ((head & mask) == ((tail + 1) & mask))
--    return NULL;  /* No room in ring buffer. TODO(bnoordhuis) maybe flush it? */
--
--  slot = tail & mask;
--  sqe = iou->sqe;
--  sqe = &sqe[slot];
--  memset(sqe, 0, sizeof(*sqe));
--  sqe->user_data = (uintptr_t) req;
--
--  /* Pacify uv_cancel(). */
--  req->work_req.loop = loop;
--  req->work_req.work = NULL;
--  req->work_req.done = NULL;
--  QUEUE_INIT(&req->work_req.wq);
--
--  uv__req_register(loop, req);
--  iou->in_flight++;
--
--  return sqe;
--}
--
--
--static void uv__iou_submit(struct uv__iou* iou) {
--  uint32_t flags;
--
--  atomic_store_explicit((_Atomic uint32_t*) iou->sqtail,
--                        *iou->sqtail + 1,
--                        memory_order_release);
--
--  flags = atomic_load_explicit((_Atomic uint32_t*) iou->sqflags,
--                               memory_order_acquire);
--
--  if (flags & UV__IORING_SQ_NEED_WAKEUP)
--    if (uv__io_uring_enter(iou->ringfd, 0, 0, UV__IORING_ENTER_SQ_WAKEUP))
--      if (errno != EOWNERDEAD)  /* Kernel bug. Harmless, ignore. */
--        perror("libuv: io_uring_enter(wakeup)");  /* Can't happen. */
--}
--
--
--int uv__iou_fs_close(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->fd = req->file;
--  sqe->opcode = UV__IORING_OP_CLOSE;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_fsync_or_fdatasync(uv_loop_t* loop,
--                                  uv_fs_t* req,
--                                  uint32_t fsync_flags) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  /* Little known fact: setting seq->off and seq->len turns
--   * it into an asynchronous sync_file_range() operation.
--   */
--  sqe->fd = req->file;
--  sqe->fsync_flags = fsync_flags;
--  sqe->opcode = UV__IORING_OP_FSYNC;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_open(uv_loop_t* loop, uv_fs_t* req) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->fd = AT_FDCWD;
--  sqe->len = req->mode;
--  sqe->opcode = UV__IORING_OP_OPENAT;
--  sqe->open_flags = req->flags | O_CLOEXEC;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_read_or_write(uv_loop_t* loop,
--                             uv_fs_t* req,
--                             int is_read) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__iou* iou;
--
--  /* For the moment, if iovcnt is greater than IOV_MAX, fallback to the
--   * threadpool. In the future we might take advantage of IOSQE_IO_LINK. */
--  if (req->nbufs > IOV_MAX)
--    return 0;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL)
--    return 0;
--
--  sqe->addr = (uintptr_t) req->bufs;
--  sqe->fd = req->file;
--  sqe->len = req->nbufs;
--  sqe->off = req->off < 0 ? -1 : req->off;
--  sqe->opcode = is_read ? UV__IORING_OP_READV : UV__IORING_OP_WRITEV;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--int uv__iou_fs_statx(uv_loop_t* loop,
--                     uv_fs_t* req,
--                     int is_fstat,
--                     int is_lstat) {
--  struct uv__io_uring_sqe* sqe;
--  struct uv__statx* statxbuf;
--  struct uv__iou* iou;
--
--  statxbuf = uv__malloc(sizeof(*statxbuf));
--  if (statxbuf == NULL)
--    return 0;
--
--  iou = &uv__get_internal_fields(loop)->iou;
--
--  sqe = uv__iou_get_sqe(iou, loop, req);
--  if (sqe == NULL) {
--    uv__free(statxbuf);
--    return 0;
--  }
--
--  req->ptr = statxbuf;
--
--  sqe->addr = (uintptr_t) req->path;
--  sqe->addr2 = (uintptr_t) statxbuf;
--  sqe->fd = AT_FDCWD;
--  sqe->len = 0xFFF; /* STATX_BASIC_STATS + STATX_BTIME */
--  sqe->opcode = UV__IORING_OP_STATX;
--
--  if (is_fstat) {
--    sqe->addr = (uintptr_t) "";
--    sqe->fd = req->file;
--    sqe->statx_flags |= 0x1000; /* AT_EMPTY_PATH */
--  }
--
--  if (is_lstat)
--    sqe->statx_flags |= AT_SYMLINK_NOFOLLOW;
--
--  uv__iou_submit(iou);
--
--  return 1;
--}
--
--
--void uv__statx_to_stat(const struct uv__statx* statxbuf, uv_stat_t* buf) {
--  buf->st_dev = makedev(statxbuf->stx_dev_major, statxbuf->stx_dev_minor);
--  buf->st_mode = statxbuf->stx_mode;
--  buf->st_nlink = statxbuf->stx_nlink;
--  buf->st_uid = statxbuf->stx_uid;
--  buf->st_gid = statxbuf->stx_gid;
--  buf->st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor);
--  buf->st_ino = statxbuf->stx_ino;
--  buf->st_size = statxbuf->stx_size;
--  buf->st_blksize = statxbuf->stx_blksize;
--  buf->st_blocks = statxbuf->stx_blocks;
--  buf->st_atim.tv_sec = statxbuf->stx_atime.tv_sec;
--  buf->st_atim.tv_nsec = statxbuf->stx_atime.tv_nsec;
--  buf->st_mtim.tv_sec = statxbuf->stx_mtime.tv_sec;
--  buf->st_mtim.tv_nsec = statxbuf->stx_mtime.tv_nsec;
--  buf->st_ctim.tv_sec = statxbuf->stx_ctime.tv_sec;
--  buf->st_ctim.tv_nsec = statxbuf->stx_ctime.tv_nsec;
--  buf->st_birthtim.tv_sec = statxbuf->stx_btime.tv_sec;
--  buf->st_birthtim.tv_nsec = statxbuf->stx_btime.tv_nsec;
--  buf->st_flags = 0;
--  buf->st_gen = 0;
--}
--
--
--static void uv__iou_fs_statx_post(uv_fs_t* req) {
--  struct uv__statx* statxbuf;
--  uv_stat_t* buf;
--
--  buf = &req->statbuf;
--  statxbuf = req->ptr;
--  req->ptr = NULL;
--
--  if (req->result == 0) {
--    uv__msan_unpoison(statxbuf, sizeof(*statxbuf));
--    uv__statx_to_stat(statxbuf, buf);
--    req->ptr = buf;
--  }
--
--  uv__free(statxbuf);
--}
--
--
--static void uv__poll_io_uring(uv_loop_t* loop, struct uv__iou* iou) {
--  struct uv__io_uring_cqe* cqe;
--  struct uv__io_uring_cqe* e;
--  uv_fs_t* req;
--  uint32_t head;
--  uint32_t tail;
--  uint32_t mask;
--  uint32_t i;
--  uint32_t flags;
--  int nevents;
--  int rc;
--
--  head = *iou->cqhead;
--  tail = atomic_load_explicit((_Atomic uint32_t*) iou->cqtail,
--                              memory_order_acquire);
--  mask = iou->cqmask;
--  cqe = iou->cqe;
--  nevents = 0;
--
--  for (i = head; i != tail; i++) {
--    e = &cqe[i & mask];
--
--    req = (uv_fs_t*) (uintptr_t) e->user_data;
--    assert(req->type == UV_FS);
--
--    uv__req_unregister(loop, req);
--    iou->in_flight--;
--
--    /* io_uring stores error codes as negative numbers, same as libuv. */
--    req->result = e->res;
--
--    switch (req->fs_type) {
--      case UV_FS_FSTAT:
--      case UV_FS_LSTAT:
--      case UV_FS_STAT:
--        uv__iou_fs_statx_post(req);
--        break;
--      default:  /* Squelch -Wswitch warnings. */
--        break;
--    }
--
--    uv__metrics_update_idle_time(loop);
--    req->cb(req);
--    nevents++;
--  }
--
--  atomic_store_explicit((_Atomic uint32_t*) iou->cqhead,
--                        tail,
--                        memory_order_release);
--
--  /* Check whether CQE's overflowed, if so enter the kernel to make them
--   * available. Don't grab them immediately but in the next loop iteration to
--   * avoid loop starvation. */
--  flags = atomic_load_explicit((_Atomic uint32_t*) iou->sqflags,
--                               memory_order_acquire);
--
--  if (flags & UV__IORING_SQ_CQ_OVERFLOW) {
--    do
--      rc = uv__io_uring_enter(iou->ringfd, 0, 0, UV__IORING_ENTER_GETEVENTS);
--    while (rc == -1 && errno == EINTR);
--
--    if (rc < 0)
--      perror("libuv: io_uring_enter(getevents)");  /* Can't happen. */
--  }
--
--  uv__metrics_inc_events(loop, nevents);
--  if (uv__get_internal_fields(loop)->current_timeout == 0)
--    uv__metrics_inc_events_waiting(loop, nevents);
--}
--
--
--static void uv__epoll_ctl_prep(int epollfd,
--                               struct uv__iou* ctl,
--                               struct epoll_event (*events)[256],
--                               int op,
--                               int fd,
--                               struct epoll_event* e) {
--  struct uv__io_uring_sqe* sqe;
--  struct epoll_event* pe;
--  uint32_t mask;
--  uint32_t slot;
--
--  if (ctl->ringfd == -1) {
--    if (!epoll_ctl(epollfd, op, fd, e))
--      return;
--
--    if (op == EPOLL_CTL_DEL)
--      return;  /* Ignore errors, may be racing with another thread. */
--
--    if (op != EPOLL_CTL_ADD)
--      abort();
--
--    if (errno != EEXIST)
--      abort();
--
--    /* File descriptor that's been watched before, update event mask. */
--    if (!epoll_ctl(epollfd, EPOLL_CTL_MOD, fd, e))
--      return;
--
--    abort();
--  } else {
--    mask = ctl->sqmask;
--    slot = (*ctl->sqtail)++ & mask;
--
--    pe = &(*events)[slot];
--    *pe = *e;
--
--    sqe = ctl->sqe;
--    sqe = &sqe[slot];
--
--    memset(sqe, 0, sizeof(*sqe));
--    sqe->addr = (uintptr_t) pe;
--    sqe->fd = epollfd;
--    sqe->len = op;
--    sqe->off = fd;
--    sqe->opcode = UV__IORING_OP_EPOLL_CTL;
--    sqe->user_data = op | slot << 2 | (int64_t) fd << 32;
--
--    if ((*ctl->sqhead & mask) == (*ctl->sqtail & mask))
--      uv__epoll_ctl_flush(epollfd, ctl, events);
--  }
--}
--
--
--static void uv__epoll_ctl_flush(int epollfd,
--                                struct uv__iou* ctl,
--                                struct epoll_event (*events)[256]) {
--  struct epoll_event oldevents[256];
--  struct uv__io_uring_cqe* cqe;
--  uint32_t oldslot;
--  uint32_t slot;
--  uint32_t n;
--  int fd;
--  int op;
--  int rc;
--
--  STATIC_ASSERT(sizeof(oldevents) == sizeof(*events));
--  assert(ctl->ringfd != -1);
--  assert(*ctl->sqhead != *ctl->sqtail);
--
--  n = *ctl->sqtail - *ctl->sqhead;
--  do
--    rc = uv__io_uring_enter(ctl->ringfd, n, n, UV__IORING_ENTER_GETEVENTS);
--  while (rc == -1 && errno == EINTR);
--
--  if (rc < 0)
--    perror("libuv: io_uring_enter(getevents)");  /* Can't happen. */
--
--  if (rc != (int) n)
--    abort();
--
--  assert(*ctl->sqhead == *ctl->sqtail);
--
--  memcpy(oldevents, *events, sizeof(*events));
--
--  /* Failed submissions are either EPOLL_CTL_DEL commands for file descriptors
--   * that have been closed, or EPOLL_CTL_ADD commands for file descriptors
--   * that we are already watching. Ignore the former and retry the latter
--   * with EPOLL_CTL_MOD.
--   */
--  while (*ctl->cqhead != *ctl->cqtail) {
--    slot = (*ctl->cqhead)++ & ctl->cqmask;
--
--    cqe = ctl->cqe;
--    cqe = &cqe[slot];
--
--    if (cqe->res == 0)
--      continue;
--
--    fd = cqe->user_data >> 32;
--    op = 3 & cqe->user_data;
--    oldslot = 255 & (cqe->user_data >> 2);
--
--    if (op == EPOLL_CTL_DEL)
--      continue;
--
--    if (op != EPOLL_CTL_ADD)
--      abort();
--
--    if (cqe->res != -EEXIST)
--      abort();
--
--    uv__epoll_ctl_prep(epollfd,
--                       ctl,
--                       events,
--                       EPOLL_CTL_MOD,
--                       fd,
--                       &oldevents[oldslot]);
--  }
--}
--
--
- void uv__io_poll(uv_loop_t* loop, int timeout) {
--  uv__loop_internal_fields_t* lfields;
-+  /* A bug in kernels < 2.6.37 makes timeouts larger than ~30 minutes
-+   * effectively infinite on 32 bits architectures.  To avoid blocking
-+   * indefinitely, we cap the timeout and poll again if necessary.
-+   *
-+   * Note that "30 minutes" is a simplification because it depends on
-+   * the value of CONFIG_HZ.  The magic constant assumes CONFIG_HZ=1200,
-+   * that being the largest value I have seen in the wild (and only once.)
-+   */
-+  static const int max_safe_timeout = 1789569;
-   struct epoll_event events[1024];
--  struct epoll_event prep[256];
--  struct uv__invalidate inv;
-   struct epoll_event* pe;
-   struct epoll_event e;
--  struct uv__iou* ctl;
--  struct uv__iou* iou;
-   int real_timeout;
-   QUEUE* q;
-   uv__io_t* w;
-   sigset_t* sigmask;
-   sigset_t sigset;
-   uint64_t base;
--  int have_iou_events;
-   int have_signals;
-   int nevents;
--  int epollfd;
-   int count;
-   int nfds;
-   int fd;
-@@ -1109,9 +327,47 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int user_timeout;
-   int reset_timeout;
- 
--  lfields = uv__get_internal_fields(loop);
--  ctl = &lfields->ctl;
--  iou = &lfields->iou;
-+  if (loop->nfds == 0) {
-+    assert(QUEUE_EMPTY(&loop->watcher_queue));
-+    return;
-+  }
-+
-+  memset(&e, 0, sizeof(e));
-+
-+  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-+    q = QUEUE_HEAD(&loop->watcher_queue);
-+    QUEUE_REMOVE(q);
-+    QUEUE_INIT(q);
-+
-+    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
-+    assert(w->pevents != 0);
-+    assert(w->fd >= 0);
-+    assert(w->fd < (int) loop->nwatchers);
-+
-+    e.events = w->pevents;
-+    e.data.fd = w->fd;
-+
-+    if (w->events == 0)
-+      op = EPOLL_CTL_ADD;
-+    else
-+      op = EPOLL_CTL_MOD;
-+
-+    /* XXX Future optimization: do EPOLL_CTL_MOD lazily if we stop watching
-+     * events, skip the syscall and squelch the events after epoll_wait().
-+     */
-+    if (epoll_ctl(loop->backend_fd, op, w->fd, &e)) {
-+      if (errno != EEXIST)
-+        abort();
-+
-+      assert(op == EPOLL_CTL_ADD);
-+
-+      /* We've reactivated a file descriptor that's been watched before. */
-+      if (epoll_ctl(loop->backend_fd, EPOLL_CTL_MOD, w->fd, &e))
-+        abort();
-+    }
-+
-+    w->events = w->pevents;
-+  }
- 
-   sigmask = NULL;
-   if (loop->flags & UV_LOOP_BLOCK_SIGPROF) {
-@@ -1125,7 +381,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   count = 48; /* Benchmarks suggest this gives the best throughput. */
-   real_timeout = timeout;
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -1134,56 +390,24 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     user_timeout = 0;
-   }
- 
--  epollfd = loop->backend_fd;
--
--  memset(&e, 0, sizeof(e));
--
--  while (!QUEUE_EMPTY(&loop->watcher_queue)) {
--    q = QUEUE_HEAD(&loop->watcher_queue);
--    w = QUEUE_DATA(q, uv__io_t, watcher_queue);
--    QUEUE_REMOVE(q);
--    QUEUE_INIT(q);
--
--    op = EPOLL_CTL_MOD;
--    if (w->events == 0)
--      op = EPOLL_CTL_ADD;
--
--    w->events = w->pevents;
--    e.events = w->pevents;
--    e.data.fd = w->fd;
--
--    uv__epoll_ctl_prep(epollfd, ctl, &prep, op, w->fd, &e);
--  }
--
--  inv.events = events;
--  inv.prep = &prep;
--  inv.nfds = -1;
--
-   for (;;) {
--    if (loop->nfds == 0)
--      if (iou->in_flight == 0)
--        break;
--
--    /* All event mask mutations should be visible to the kernel before
--     * we enter epoll_pwait().
--     */
--    if (ctl->ringfd != -1)
--      while (*ctl->sqhead != *ctl->sqtail)
--        uv__epoll_ctl_flush(epollfd, ctl, &prep);
--
-     /* Only need to set the provider_entry_time if timeout != 0. The function
-      * will return early if the loop isn't configured with UV_METRICS_IDLE_TIME.
-      */
-     if (timeout != 0)
-       uv__metrics_set_provider_entry_time(loop);
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
-+    /* See the comment for max_safe_timeout for an explanation of why
-+     * this is necessary.  Executive summary: kernel bug workaround.
-      */
--    lfields->current_timeout = timeout;
-+    if (sizeof(int32_t) == sizeof(long) && timeout >= max_safe_timeout)
-+      timeout = max_safe_timeout;
- 
--    nfds = epoll_pwait(epollfd, events, ARRAY_SIZE(events), timeout, sigmask);
-+    nfds = epoll_pwait(loop->backend_fd,
-+                       events,
-+                       ARRAY_SIZE(events),
-+                       timeout,
-+                       sigmask);
- 
-     /* Update loop->time unconditionally. It's tempting to skip the update when
-      * timeout == 0 (i.e. non-blocking poll) but there is no guarantee that the
-@@ -1203,7 +427,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-         continue;
- 
-       if (timeout == 0)
--        break;
-+        return;
- 
-       /* We may have been inside the system call for longer than |timeout|
-        * milliseconds so we need to update the timestamp to avoid drift.
-@@ -1224,18 +448,27 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-         continue;
- 
-       if (timeout == 0)
--        break;
-+        return;
- 
-       /* Interrupted by a signal. Update timeout and poll again. */
-       goto update_timeout;
-     }
- 
--    have_iou_events = 0;
-     have_signals = 0;
-     nevents = 0;
- 
--    inv.nfds = nfds;
--    lfields->inv = &inv;
-+    {
-+      /* Squelch a -Waddress-of-packed-member warning with gcc >= 9. */
-+      union {
-+        struct epoll_event* events;
-+        uv__io_t* watchers;
-+      } x;
-+
-+      x.events = events;
-+      assert(loop->watchers != NULL);
-+      loop->watchers[loop->nwatchers] = x.watchers;
-+      loop->watchers[loop->nwatchers + 1] = (void*) (uintptr_t) nfds;
-+    }
- 
-     for (i = 0; i < nfds; i++) {
-       pe = events + i;
-@@ -1245,12 +478,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-       if (fd == -1)
-         continue;
- 
--      if (fd == iou->ringfd) {
--        uv__poll_io_uring(loop, iou);
--        have_iou_events = 1;
--        continue;
--      }
--
-       assert(fd >= 0);
-       assert((unsigned) fd < loop->nwatchers);
- 
-@@ -1262,7 +489,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-          * Ignore all errors because we may be racing with another thread
-          * when the file descriptor is closed.
-          */
--        uv__epoll_ctl_prep(epollfd, ctl, &prep, EPOLL_CTL_DEL, fd, pe);
-+        epoll_ctl(loop->backend_fd, EPOLL_CTL_DEL, fd, pe);
-         continue;
-       }
- 
-@@ -1319,13 +546,11 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-       loop->signal_io_watcher.cb(loop, &loop->signal_io_watcher, POLLIN);
-     }
- 
--    lfields->inv = NULL;
--
--    if (have_iou_events != 0)
--      break;  /* Event loop should cycle now so don't poll again. */
-+    loop->watchers[loop->nwatchers] = NULL;
-+    loop->watchers[loop->nwatchers + 1] = NULL;
- 
-     if (have_signals != 0)
--      break;  /* Event loop should cycle now so don't poll again. */
-+      return;  /* Event loop should cycle now so don't poll again. */
- 
-     if (nevents != 0) {
-       if (nfds == ARRAY_SIZE(events) && --count != 0) {
-@@ -1333,11 +558,11 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-         timeout = 0;
-         continue;
-       }
--      break;
-+      return;
-     }
- 
-     if (timeout == 0)
--      break;
-+      return;
- 
-     if (timeout == -1)
-       continue;
-@@ -1347,14 +572,10 @@ update_timeout:
- 
-     real_timeout -= (loop->time - base);
-     if (real_timeout <= 0)
--      break;
-+      return;
- 
-     timeout = real_timeout;
-   }
--
--  if (ctl->ringfd != -1)
--    while (*ctl->sqhead != *ctl->sqtail)
--      uv__epoll_ctl_flush(epollfd, ctl, &prep);
- }
- 
- uint64_t uv__hrtime(uv_clocktype_t type) {
-@@ -1867,7 +1088,7 @@ static uint64_t uv__read_uint64(const char* filename) {
-   if (0 == uv__slurp(filename, buf, sizeof(buf)))
-     if (1 != sscanf(buf, "%" PRIu64, &rc))
-       if (0 == strcmp(buf, "max\n"))
--        rc = UINT64_MAX;
-+        rc = ~0ull;
- 
-   return rc;
- }
-@@ -1903,7 +1124,6 @@ static void uv__get_cgroup1_memory_limits(char buf[static 1024], uint64_t* high,
-   char filename[4097];
-   char* p;
-   int n;
--  uint64_t cgroup1_max;
- 
-   /* Find out where the controller is mounted. */
-   p = uv__cgroup1_find_memory_controller(buf, &n);
-@@ -1920,22 +1140,12 @@ static void uv__get_cgroup1_memory_limits(char buf[static 1024], uint64_t* high,
-      * as indicated by uv__read_uint64 returning 0.
-      */
-      if (*high != 0 && *max != 0)
--       goto update_limits;
-+       return;
-   }
- 
-   /* Fall back to the limits of the global memory controller. */
-   *high = uv__read_uint64("/sys/fs/cgroup/memory/memory.soft_limit_in_bytes");
-   *max = uv__read_uint64("/sys/fs/cgroup/memory/memory.limit_in_bytes");
--
--  /* uv__read_uint64 detects cgroup2's "max", so we need to separately detect
--   * cgroup1's maximum value (which is derived from LONG_MAX and PAGE_SIZE).
--   */
--update_limits:
--  cgroup1_max = LONG_MAX & ~(sysconf(_SC_PAGESIZE) - 1);
--  if (*high == cgroup1_max)
--    *high = UINT64_MAX;
--  if (*max == cgroup1_max)
--    *max = UINT64_MAX;
- }
- 
- static void uv__get_cgroup2_memory_limits(char buf[static 1024], uint64_t* high,
-diff --git a/deps/uv/src/unix/os390.c b/deps/uv/src/unix/os390.c
-index a87c2d77faf..3954b2c2753 100644
---- a/deps/uv/src/unix/os390.c
-+++ b/deps/uv/src/unix/os390.c
-@@ -808,7 +808,6 @@ static int os390_message_queue_handler(uv__os390_epoll* ep) {
- 
- void uv__io_poll(uv_loop_t* loop, int timeout) {
-   static const int max_safe_timeout = 1789569;
--  uv__loop_internal_fields_t* lfields;
-   struct epoll_event events[1024];
-   struct epoll_event* pe;
-   struct epoll_event e;
-@@ -831,8 +830,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     return;
-   }
- 
--  lfields = uv__get_internal_fields(loop);
--
-   while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-     uv_stream_t* stream;
- 
-@@ -880,7 +877,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   int nevents = 0;
-   have_signals = 0;
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -899,12 +896,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     if (sizeof(int32_t) == sizeof(long) && timeout >= max_safe_timeout)
-       timeout = max_safe_timeout;
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
--     */
--    lfields->current_timeout = timeout;
--
-     nfds = epoll_wait(loop->ep, events,
-                       ARRAY_SIZE(events), timeout);
- 
-diff --git a/deps/uv/src/unix/posix-poll.c b/deps/uv/src/unix/posix-poll.c
-index 7e7de86845d..711780ece8d 100644
---- a/deps/uv/src/unix/posix-poll.c
-+++ b/deps/uv/src/unix/posix-poll.c
-@@ -132,7 +132,6 @@ static void uv__pollfds_del(uv_loop_t* loop, int fd) {
- 
- 
- void uv__io_poll(uv_loop_t* loop, int timeout) {
--  uv__loop_internal_fields_t* lfields;
-   sigset_t* pset;
-   sigset_t set;
-   uint64_t time_base;
-@@ -153,8 +152,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     return;
-   }
- 
--  lfields = uv__get_internal_fields(loop);
--
-   /* Take queued watchers and add their fds to our poll fds array.  */
-   while (!QUEUE_EMPTY(&loop->watcher_queue)) {
-     q = QUEUE_HEAD(&loop->watcher_queue);
-@@ -182,7 +179,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-   assert(timeout >= -1);
-   time_base = loop->time;
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -201,12 +198,6 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
-     if (timeout != 0)
-       uv__metrics_set_provider_entry_time(loop);
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
--     */
--    lfields->current_timeout = timeout;
--
-     if (pset != NULL)
-       if (pthread_sigmask(SIG_BLOCK, pset, NULL))
-         abort();
-diff --git a/deps/uv/src/uv-common.h b/deps/uv/src/uv-common.h
-index decde5362c8..2720121addc 100644
---- a/deps/uv/src/uv-common.h
-+++ b/deps/uv/src/uv-common.h
-@@ -396,37 +396,9 @@ struct uv__loop_metrics_s {
- void uv__metrics_update_idle_time(uv_loop_t* loop);
- void uv__metrics_set_provider_entry_time(uv_loop_t* loop);
- 
--#ifdef __linux__
--struct uv__iou {
--  uint32_t* sqhead;
--  uint32_t* sqtail;
--  uint32_t* sqarray;
--  uint32_t sqmask;
--  uint32_t* sqflags;
--  uint32_t* cqhead;
--  uint32_t* cqtail;
--  uint32_t cqmask;
--  void* sq;   /* pointer to munmap() on event loop teardown */
--  void* cqe;  /* pointer to array of struct uv__io_uring_cqe */
--  void* sqe;  /* pointer to array of struct uv__io_uring_sqe */
--  size_t sqlen;
--  size_t cqlen;
--  size_t maxlen;
--  size_t sqelen;
--  int ringfd;
--  uint32_t in_flight;
--};
--#endif  /* __linux__ */
--
- struct uv__loop_internal_fields_s {
-   unsigned int flags;
-   uv__loop_metrics_t loop_metrics;
--  int current_timeout;
--#ifdef __linux__
--  struct uv__iou ctl;
--  struct uv__iou iou;
--  void* inv;  /* used by uv__platform_invalidate_fd() */
--#endif  /* __linux__ */
- };
- 
- #endif /* UV_COMMON_H_ */
-diff --git a/deps/uv/src/win/core.c b/deps/uv/src/win/core.c
-index 9a3be58849a..e4041ec86a6 100644
---- a/deps/uv/src/win/core.c
-+++ b/deps/uv/src/win/core.c
-@@ -424,7 +424,6 @@ int uv_backend_timeout(const uv_loop_t* loop) {
- 
- 
- static void uv__poll_wine(uv_loop_t* loop, DWORD timeout) {
--  uv__loop_internal_fields_t* lfields;
-   DWORD bytes;
-   ULONG_PTR key;
-   OVERLAPPED* overlapped;
-@@ -434,10 +433,9 @@ static void uv__poll_wine(uv_loop_t* loop, DWORD timeout) {
-   uint64_t user_timeout;
-   int reset_timeout;
- 
--  lfields = uv__get_internal_fields(loop);
-   timeout_time = loop->time + timeout;
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -452,12 +450,6 @@ static void uv__poll_wine(uv_loop_t* loop, DWORD timeout) {
-     if (timeout != 0)
-       uv__metrics_set_provider_entry_time(loop);
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
--     */
--    lfields->current_timeout = timeout;
--
-     GetQueuedCompletionStatus(loop->iocp,
-                               &bytes,
-                               &key,
-@@ -515,7 +507,6 @@ static void uv__poll_wine(uv_loop_t* loop, DWORD timeout) {
- 
- 
- static void uv__poll(uv_loop_t* loop, DWORD timeout) {
--  uv__loop_internal_fields_t* lfields;
-   BOOL success;
-   uv_req_t* req;
-   OVERLAPPED_ENTRY overlappeds[128];
-@@ -527,10 +518,9 @@ static void uv__poll(uv_loop_t* loop, DWORD timeout) {
-   uint64_t actual_timeout;
-   int reset_timeout;
- 
--  lfields = uv__get_internal_fields(loop);
-   timeout_time = loop->time + timeout;
- 
--  if (lfields->flags & UV_METRICS_IDLE_TIME) {
-+  if (uv__get_internal_fields(loop)->flags & UV_METRICS_IDLE_TIME) {
-     reset_timeout = 1;
-     user_timeout = timeout;
-     timeout = 0;
-@@ -547,12 +537,6 @@ static void uv__poll(uv_loop_t* loop, DWORD timeout) {
-     if (timeout != 0)
-       uv__metrics_set_provider_entry_time(loop);
- 
--    /* Store the current timeout in a location that's globally accessible so
--     * other locations like uv__work_done() can determine whether the queue
--     * of events in the callback were waiting when poll was called.
--     */
--    lfields->current_timeout = timeout;
--
-     success = pGetQueuedCompletionStatusEx(loop->iocp,
-                                            overlappeds,
-                                            ARRAY_SIZE(overlappeds),
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.11.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.11.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb
index cc51354..e2e2f5a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb
@@ -24,8 +24,7 @@
            file://0004-v8-don-t-override-ARM-CFLAGS.patch \
            file://system-c-ares.patch \
            file://0001-liftoff-Correct-function-signatures.patch \
-           file://0001-Revert-io_uring-changes-from-libuv-1.46.0.patch \
-           file://0002-Revert-io_uring-changes-from-libuv-1.45.0.patch \
+           file://0001-deps-disable-io_uring-support-in-libuv.patch \
            file://run-ptest \
            "
 
@@ -38,7 +37,7 @@
 SRC_URI:append:toolchain-clang:powerpc64le = " \
            file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
            "
-SRC_URI[sha256sum] = "31807ebeeeb049c53f1765e4a95aed69476a4b696dd100cb539ab668d7950b40"
+SRC_URI[sha256sum] = "77813edbf3f7f16d2d35d3353443dee4e61d5ee84d9e3138c7538a3c0ca5209e"
 
 S = "${WORKDIR}/node-v${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/py3.12.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/py3.12.patch
deleted file mode 100644
index 732c8ff..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115/py3.12.patch
+++ /dev/null
@@ -1,2496 +0,0 @@
-From 7293cfae4fd68004901825ad1cabb83424d8729a Mon Sep 17 00:00:00 2001
-From: serge-sans-paille <sguelton@mozilla.com>
-Date: Mon, 16 Oct 2023 13:35:24 +0000
-Subject: [PATCH] Bug 1857492 - Upgrade vendored version of six and urllib3
- r=saschanaz
-
-six -> 1.16
-urllib3 -> 1.26.17
-
-Differential Revision: https://phabricator.services.mozilla.com/D190288
-Upstream-Status: Backport [https://github.com/mozilla/gecko-dev/commit/7293cfae4fd68004901825ad1cabb83424d8729a]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- third_party/python/poetry.lock                |  22 +--
- third_party/python/requirements.in            |   4 +-
- third_party/python/requirements.txt           |  12 +-
- .../python/six/six-1.13.0.dist-info/RECORD    |   6 -
- .../LICENSE                                   |   2 +-
- .../METADATA                                  |   9 +-
- .../python/six/six-1.16.0.dist-info/RECORD    |   6 +
- .../six-1.16.0.dist-info}/WHEEL               |   2 +-
- .../top_level.txt                             |   0
- third_party/python/six/six.py                 |  91 ++++++---
- .../urllib3/urllib3-1.26.0.dist-info/RECORD   |  44 -----
- .../LICENSE.txt                               |   0
- .../METADATA                                  | 177 ++++++++++++++++--
- .../urllib3/urllib3-1.26.17.dist-info/RECORD  |  44 +++++
- .../urllib3-1.26.17.dist-info}/WHEEL          |   2 +-
- .../top_level.txt                             |   0
- .../python/urllib3/urllib3/__init__.py        |  17 ++
- .../python/urllib3/urllib3/_version.py        |   2 +-
- .../python/urllib3/urllib3/connection.py      |  62 ++++--
- .../python/urllib3/urllib3/connectionpool.py  |  97 ++++++++--
- .../contrib/_securetransport/bindings.py      |   2 +-
- .../contrib/_securetransport/low_level.py     |   1 +
- .../urllib3/urllib3/contrib/appengine.py      |   4 +-
- .../urllib3/urllib3/contrib/ntlmpool.py       |  13 +-
- .../urllib3/urllib3/contrib/pyopenssl.py      |  19 +-
- .../urllib3/contrib/securetransport.py        |   5 +-
- .../python/urllib3/urllib3/contrib/socks.py   |   2 +-
- .../python/urllib3/urllib3/exceptions.py      |  12 +-
- .../urllib3/urllib3/packages/__init__.py      |   5 -
- .../packages/backports/weakref_finalize.py    | 155 +++++++++++++++
- .../python/urllib3/urllib3/packages/six.py    | 125 +++++++++----
- .../packages/ssl_match_hostname/__init__.py   |  22 ---
- .../python/urllib3/urllib3/poolmanager.py     |   3 +-
- third_party/python/urllib3/urllib3/request.py |  21 +++
- .../python/urllib3/urllib3/response.py        |  72 ++++++-
- .../python/urllib3/urllib3/util/connection.py |   5 +-
- .../python/urllib3/urllib3/util/proxy.py      |   1 +
- .../python/urllib3/urllib3/util/request.py    |   5 +-
- .../python/urllib3/urllib3/util/retry.py      |  37 +++-
- .../python/urllib3/urllib3/util/ssl_.py       |  53 ++++--
- .../ssl_match_hostname.py}                    |  15 +-
- .../urllib3/urllib3/util/ssltransport.py      |   6 +-
- .../python/urllib3/urllib3/util/timeout.py    |   9 +-
- .../python/urllib3/urllib3/util/url.py        |  17 +-
- .../python/urllib3/urllib3/util/wait.py       |   1 -
- 45 files changed, 934 insertions(+), 275 deletions(-)
- delete mode 100644 third_party/python/six/six-1.13.0.dist-info/RECORD
- rename third_party/python/six/{six-1.13.0.dist-info => six-1.16.0.dist-info}/LICENSE (96%)
- rename third_party/python/six/{six-1.13.0.dist-info => six-1.16.0.dist-info}/METADATA (85%)
- create mode 100644 third_party/python/six/six-1.16.0.dist-info/RECORD
- rename third_party/python/{urllib3/urllib3-1.26.0.dist-info => six/six-1.16.0.dist-info}/WHEEL (70%)
- rename third_party/python/six/{six-1.13.0.dist-info => six-1.16.0.dist-info}/top_level.txt (100%)
- delete mode 100644 third_party/python/urllib3/urllib3-1.26.0.dist-info/RECORD
- rename third_party/python/urllib3/{urllib3-1.26.0.dist-info => urllib3-1.26.17.dist-info}/LICENSE.txt (100%)
- rename third_party/python/urllib3/{urllib3-1.26.0.dist-info => urllib3-1.26.17.dist-info}/METADATA (86%)
- create mode 100644 third_party/python/urllib3/urllib3-1.26.17.dist-info/RECORD
- rename third_party/python/{six/six-1.13.0.dist-info => urllib3/urllib3-1.26.17.dist-info}/WHEEL (70%)
- rename third_party/python/urllib3/{urllib3-1.26.0.dist-info => urllib3-1.26.17.dist-info}/top_level.txt (100%)
- create mode 100644 third_party/python/urllib3/urllib3/packages/backports/weakref_finalize.py
- delete mode 100644 third_party/python/urllib3/urllib3/packages/ssl_match_hostname/__init__.py
- rename third_party/python/urllib3/urllib3/{packages/ssl_match_hostname/_implementation.py => util/ssl_match_hostname.py} (92%)
-
-diff --git a/third_party/python/poetry.lock b/third_party/python/poetry.lock
-index 3d50174e58bcb..b4a8455d20fb4 100644
---- a/third_party/python/poetry.lock
-+++ b/third_party/python/poetry.lock
-@@ -1333,14 +1333,14 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (
- 
- [[package]]
- name = "six"
--version = "1.13.0"
-+version = "1.16.0"
- description = "Python 2 and 3 compatibility utilities"
- category = "main"
- optional = false
--python-versions = ">=2.6, !=3.0.*, !=3.1.*"
-+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
- files = [
--    {file = "six-1.13.0-py2.py3-none-any.whl", hash = "sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd"},
--    {file = "six-1.13.0.tar.gz", hash = "sha256:30f610279e8b2578cab6db20741130331735c781b56053c59c4076da27f06b66"},
-+    {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
-+    {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
- ]
- 
- [[package]]
-@@ -1491,19 +1491,19 @@ files = [
- 
- [[package]]
- name = "urllib3"
--version = "1.26.0"
-+version = "1.26.17"
- description = "HTTP library with thread-safe connection pooling, file post, and more."
- category = "main"
- optional = false
--python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
- files = [
--    {file = "urllib3-1.26.0-py2.py3-none-any.whl", hash = "sha256:bad31cb622ceee0ab46c4c884cf61957def0ff2e644de0a7a093678844c9ccac"},
--    {file = "urllib3-1.26.0.tar.gz", hash = "sha256:4849f132941d68144df0a3785ccc4fe423430ba5db0108d045c8cadbc90f517a"},
-+    {file = "urllib3-1.26.17-py2.py3-none-any.whl", hash = "sha256:94a757d178c9be92ef5539b8840d48dc9cf1b2709c9d6b588232a055c524458b"},
-+    {file = "urllib3-1.26.17.tar.gz", hash = "sha256:24d6a242c28d29af46c3fae832c36db3bbebcc533dd1bb549172cd739c82df21"},
- ]
- 
- [package.extras]
--brotli = ["brotlipy (>=0.6.0)"]
--secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)"]
-+brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
-+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
- socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
- 
- [[package]]
-diff --git a/third_party/python/six/six-1.13.0.dist-info/RECORD b/third_party/python/six/six-1.13.0.dist-info/RECORD
-deleted file mode 100644
-index a0e6c1fd4bd99..0000000000000
---- a/third_party/python/six/six-1.13.0.dist-info/RECORD
-+++ /dev/null
-@@ -1,6 +0,0 @@
--six.py,sha256=bsEzSFTZTx49wQttLORmSZTrpjGc8UbXt-HBa_LZX7Q,33045
--six-1.13.0.dist-info/LICENSE,sha256=t1KbjAcXGniow2wyg5BVKOSBKUXZd9El65JujMvyRbY,1066
--six-1.13.0.dist-info/METADATA,sha256=hxS4rSPRfO8ewbcLS30anoFi6LFgUQ3mk_xknZ8RV4w,1940
--six-1.13.0.dist-info/WHEEL,sha256=8zNYZbwQSXoB9IfXOjPfeNwvAsALAjffgk27FqvCWbo,110
--six-1.13.0.dist-info/top_level.txt,sha256=_iVH_iYEtEXnD8nYGQYpYFUvkUW9sEO1GYbkeKSAais,4
--six-1.13.0.dist-info/RECORD,,
-diff --git a/third_party/python/six/six-1.13.0.dist-info/LICENSE b/third_party/python/six/six-1.16.0.dist-info/LICENSE
-similarity index 96%
-rename from third_party/python/six/six-1.13.0.dist-info/LICENSE
-rename to third_party/python/six/six-1.16.0.dist-info/LICENSE
-index 4b05a545261c0..de6633112c1f9 100644
---- a/third_party/python/six/six-1.13.0.dist-info/LICENSE
-+++ b/third_party/python/six/six-1.16.0.dist-info/LICENSE
-@@ -1,4 +1,4 @@
--Copyright (c) 2010-2019 Benjamin Peterson
-+Copyright (c) 2010-2020 Benjamin Peterson
- 
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in
-diff --git a/third_party/python/six/six-1.13.0.dist-info/METADATA b/third_party/python/six/six-1.16.0.dist-info/METADATA
-similarity index 85%
-rename from third_party/python/six/six-1.13.0.dist-info/METADATA
-rename to third_party/python/six/six-1.16.0.dist-info/METADATA
-index b0c8f51e1f366..6d7525c2ebcfe 100644
---- a/third_party/python/six/six-1.13.0.dist-info/METADATA
-+++ b/third_party/python/six/six-1.16.0.dist-info/METADATA
-@@ -1,6 +1,6 @@
- Metadata-Version: 2.1
- Name: six
--Version: 1.13.0
-+Version: 1.16.0
- Summary: Python 2 and 3 compatibility utilities
- Home-page: https://github.com/benjaminp/six
- Author: Benjamin Peterson
-@@ -14,7 +14,7 @@ Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Topic :: Software Development :: Libraries
- Classifier: Topic :: Utilities
--Requires-Python: >=2.6, !=3.0.*, !=3.1.*
-+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*
- 
- .. image:: https://img.shields.io/pypi/v/six.svg
-    :target: https://pypi.org/project/six/
-@@ -37,7 +37,7 @@ for smoothing over the differences between the Python versions with the goal of
- writing Python code that is compatible on both Python versions.  See the
- documentation for more information on what is provided.
- 
--Six supports every Python version since 2.6.  It is contained in only one Python
-+Six supports Python 2.7 and 3.3+.  It is contained in only one Python
- file, so it can be easily copied into your project. (The copyright and license
- notice must be retained.)
- 
-@@ -46,7 +46,4 @@ Online documentation is at https://six.readthedocs.io/.
- Bugs can be reported to https://github.com/benjaminp/six.  The code can also
- be found there.
- 
--For questions about six or porting in general, email the python-porting mailing
--list: https://mail.python.org/mailman/listinfo/python-porting
--
- 
-diff --git a/third_party/python/six/six-1.16.0.dist-info/RECORD b/third_party/python/six/six-1.16.0.dist-info/RECORD
-new file mode 100644
-index 0000000000000..8de4af79fae0b
---- /dev/null
-+++ b/third_party/python/six/six-1.16.0.dist-info/RECORD
-@@ -0,0 +1,6 @@
-+six.py,sha256=TOOfQi7nFGfMrIvtdr6wX4wyHH8M7aknmuLfo2cBBrM,34549
-+six-1.16.0.dist-info/LICENSE,sha256=i7hQxWWqOJ_cFvOkaWWtI9gq3_YPI5P8J2K2MYXo5sk,1066
-+six-1.16.0.dist-info/METADATA,sha256=VQcGIFCAEmfZcl77E5riPCN4v2TIsc_qtacnjxKHJoI,1795
-+six-1.16.0.dist-info/WHEEL,sha256=Z-nyYpwrcSqxfdux5Mbn_DQ525iP7J2DG3JgGvOYyTQ,110
-+six-1.16.0.dist-info/top_level.txt,sha256=_iVH_iYEtEXnD8nYGQYpYFUvkUW9sEO1GYbkeKSAais,4
-+six-1.16.0.dist-info/RECORD,,
-diff --git a/third_party/python/urllib3/urllib3-1.26.0.dist-info/WHEEL b/third_party/python/six/six-1.16.0.dist-info/WHEEL
-similarity index 70%
-rename from third_party/python/urllib3/urllib3-1.26.0.dist-info/WHEEL
-rename to third_party/python/six/six-1.16.0.dist-info/WHEEL
-index 6d38aa0601b31..01b8fc7d4a10c 100644
---- a/third_party/python/urllib3/urllib3-1.26.0.dist-info/WHEEL
-+++ b/third_party/python/six/six-1.16.0.dist-info/WHEEL
-@@ -1,5 +1,5 @@
- Wheel-Version: 1.0
--Generator: bdist_wheel (0.35.1)
-+Generator: bdist_wheel (0.36.2)
- Root-Is-Purelib: true
- Tag: py2-none-any
- Tag: py3-none-any
-diff --git a/third_party/python/six/six-1.13.0.dist-info/top_level.txt b/third_party/python/six/six-1.16.0.dist-info/top_level.txt
-similarity index 100%
-rename from third_party/python/six/six-1.13.0.dist-info/top_level.txt
-rename to third_party/python/six/six-1.16.0.dist-info/top_level.txt
-diff --git a/third_party/python/six/six.py b/third_party/python/six/six.py
-index 357e624abc6c9..4e15675d8b5ca 100644
---- a/third_party/python/six/six.py
-+++ b/third_party/python/six/six.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2010-2019 Benjamin Peterson
-+# Copyright (c) 2010-2020 Benjamin Peterson
- #
- # Permission is hereby granted, free of charge, to any person obtaining a copy
- # of this software and associated documentation files (the "Software"), to deal
-@@ -29,7 +29,7 @@
- import types
- 
- __author__ = "Benjamin Peterson <benjamin@python.org>"
--__version__ = "1.13.0"
-+__version__ = "1.16.0"
- 
- 
- # Useful for very coarse version differentiation.
-@@ -71,6 +71,11 @@ def __len__(self):
-             MAXSIZE = int((1 << 63) - 1)
-         del X
- 
-+if PY34:
-+    from importlib.util import spec_from_loader
-+else:
-+    spec_from_loader = None
-+
- 
- def _add_doc(func, doc):
-     """Add documentation to a function."""
-@@ -186,6 +191,11 @@ def find_module(self, fullname, path=None):
-             return self
-         return None
- 
-+    def find_spec(self, fullname, path, target=None):
-+        if fullname in self.known_modules:
-+            return spec_from_loader(fullname, self)
-+        return None
-+
-     def __get_module(self, fullname):
-         try:
-             return self.known_modules[fullname]
-@@ -223,6 +233,12 @@ def get_code(self, fullname):
-         return None
-     get_source = get_code  # same as get_code
- 
-+    def create_module(self, spec):
-+        return self.load_module(spec.name)
-+
-+    def exec_module(self, module):
-+        pass
-+
- _importer = _SixMetaPathImporter(__name__)
- 
- 
-@@ -259,7 +275,7 @@ class _MovedItems(_LazyModule):
-     MovedModule("copyreg", "copy_reg"),
-     MovedModule("dbm_gnu", "gdbm", "dbm.gnu"),
-     MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"),
--    MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"),
-+    MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread" if sys.version_info < (3, 9) else "_thread"),
-     MovedModule("http_cookiejar", "cookielib", "http.cookiejar"),
-     MovedModule("http_cookies", "Cookie", "http.cookies"),
-     MovedModule("html_entities", "htmlentitydefs", "html.entities"),
-@@ -644,9 +660,11 @@ def u(s):
-     if sys.version_info[1] <= 1:
-         _assertRaisesRegex = "assertRaisesRegexp"
-         _assertRegex = "assertRegexpMatches"
-+        _assertNotRegex = "assertNotRegexpMatches"
-     else:
-         _assertRaisesRegex = "assertRaisesRegex"
-         _assertRegex = "assertRegex"
-+        _assertNotRegex = "assertNotRegex"
- else:
-     def b(s):
-         return s
-@@ -668,6 +686,7 @@ def indexbytes(buf, i):
-     _assertCountEqual = "assertItemsEqual"
-     _assertRaisesRegex = "assertRaisesRegexp"
-     _assertRegex = "assertRegexpMatches"
-+    _assertNotRegex = "assertNotRegexpMatches"
- _add_doc(b, """Byte literal""")
- _add_doc(u, """Text literal""")
- 
-@@ -684,6 +703,10 @@ def assertRegex(self, *args, **kwargs):
-     return getattr(self, _assertRegex)(*args, **kwargs)
- 
- 
-+def assertNotRegex(self, *args, **kwargs):
-+    return getattr(self, _assertNotRegex)(*args, **kwargs)
-+
-+
- if PY3:
-     exec_ = getattr(moves.builtins, "exec")
- 
-@@ -719,16 +742,7 @@ def exec_(_code_, _globs_=None, _locs_=None):
- """)
- 
- 
--if sys.version_info[:2] == (3, 2):
--    exec_("""def raise_from(value, from_value):
--    try:
--        if from_value is None:
--            raise value
--        raise value from from_value
--    finally:
--        value = None
--""")
--elif sys.version_info[:2] > (3, 2):
-+if sys.version_info[:2] > (3,):
-     exec_("""def raise_from(value, from_value):
-     try:
-         raise value from from_value
-@@ -808,13 +822,33 @@ def print_(*args, **kwargs):
- _add_doc(reraise, """Reraise an exception.""")
- 
- if sys.version_info[0:2] < (3, 4):
-+    # This does exactly the same what the :func:`py3:functools.update_wrapper`
-+    # function does on Python versions after 3.2. It sets the ``__wrapped__``
-+    # attribute on ``wrapper`` object and it doesn't raise an error if any of
-+    # the attributes mentioned in ``assigned`` and ``updated`` are missing on
-+    # ``wrapped`` object.
-+    def _update_wrapper(wrapper, wrapped,
-+                        assigned=functools.WRAPPER_ASSIGNMENTS,
-+                        updated=functools.WRAPPER_UPDATES):
-+        for attr in assigned:
-+            try:
-+                value = getattr(wrapped, attr)
-+            except AttributeError:
-+                continue
-+            else:
-+                setattr(wrapper, attr, value)
-+        for attr in updated:
-+            getattr(wrapper, attr).update(getattr(wrapped, attr, {}))
-+        wrapper.__wrapped__ = wrapped
-+        return wrapper
-+    _update_wrapper.__doc__ = functools.update_wrapper.__doc__
-+
-     def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS,
-               updated=functools.WRAPPER_UPDATES):
--        def wrapper(f):
--            f = functools.wraps(wrapped, assigned, updated)(f)
--            f.__wrapped__ = wrapped
--            return f
--        return wrapper
-+        return functools.partial(_update_wrapper, wrapped=wrapped,
-+                                 assigned=assigned, updated=updated)
-+    wraps.__doc__ = functools.wraps.__doc__
-+
- else:
-     wraps = functools.wraps
- 
-@@ -872,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', errors='strict'):
-       - `str` -> encoded to `bytes`
-       - `bytes` -> `bytes`
-     """
-+    if isinstance(s, binary_type):
-+        return s
-     if isinstance(s, text_type):
-         return s.encode(encoding, errors)
--    elif isinstance(s, binary_type):
--        return s
--    else:
--        raise TypeError("not expecting type '%s'" % type(s))
-+    raise TypeError("not expecting type '%s'" % type(s))
- 
- 
- def ensure_str(s, encoding='utf-8', errors='strict'):
-@@ -891,12 +924,15 @@ def ensure_str(s, encoding='utf-8', errors='strict'):
-       - `str` -> `str`
-       - `bytes` -> decoded to `str`
-     """
--    if not isinstance(s, (text_type, binary_type)):
--        raise TypeError("not expecting type '%s'" % type(s))
-+    # Optimization: Fast return for the common case.
-+    if type(s) is str:
-+        return s
-     if PY2 and isinstance(s, text_type):
--        s = s.encode(encoding, errors)
-+        return s.encode(encoding, errors)
-     elif PY3 and isinstance(s, binary_type):
--        s = s.decode(encoding, errors)
-+        return s.decode(encoding, errors)
-+    elif not isinstance(s, (text_type, binary_type)):
-+        raise TypeError("not expecting type '%s'" % type(s))
-     return s
- 
- 
-@@ -919,10 +955,9 @@ def ensure_text(s, encoding='utf-8', errors='strict'):
-         raise TypeError("not expecting type '%s'" % type(s))
- 
- 
--
- def python_2_unicode_compatible(klass):
-     """
--    A decorator that defines __unicode__ and __str__ methods under Python 2.
-+    A class decorator that defines __unicode__ and __str__ methods under Python 2.
-     Under Python 3 it does nothing.
- 
-     To support Python 2 and 3 with a single code base, define a __str__ method
-diff --git a/third_party/python/urllib3/urllib3-1.26.0.dist-info/RECORD b/third_party/python/urllib3/urllib3-1.26.0.dist-info/RECORD
-deleted file mode 100644
-index ec9088a111a41..0000000000000
---- a/third_party/python/urllib3/urllib3-1.26.0.dist-info/RECORD
-+++ /dev/null
-@@ -1,44 +0,0 @@
--urllib3/__init__.py,sha256=j3yzHIbmW7CS-IKQJ9-PPQf_YKO8EOAey_rMW0UR7us,2763
--urllib3/_collections.py,sha256=Rp1mVyBgc_UlAcp6M3at1skJBXR5J43NawRTvW2g_XY,10811
--urllib3/_version.py,sha256=H0vLQ8PY350EPZlZQa8ri0tEjVS-xhGdQOHcU360-0A,63
--urllib3/connection.py,sha256=BdaUSNpGzO0zq28i9MhOXb6QZspeVdVrYtjnkk2Eqg4,18396
--urllib3/connectionpool.py,sha256=IKoeuJZY9YAYm0GK4q-MXAhyXW0M_FnvabYaNsDIR-E,37133
--urllib3/exceptions.py,sha256=lNrKC5J8zeBXIu9SSKSNb7cLi8iXl9ARu9DHD2SflZM,7810
--urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579
--urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440
--urllib3/poolmanager.py,sha256=whzlX6UTEgODMOCy0ZDMUONRBCz5wyIM8Z9opXAY-Lk,19763
--urllib3/request.py,sha256=ZFSIqX0C6WizixecChZ3_okyu7BEv0lZu1VT0s6h4SM,5985
--urllib3/response.py,sha256=hGhGBh7TkEkh_IQg5C1W_xuPNrgIKv5BUXPyE-q0LuE,28203
--urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
--urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957
--urllib3/contrib/appengine.py,sha256=7Pxb0tKfDB_LTGPERiswH0qomhDoUUOo5kwybAKLQyE,11010
--urllib3/contrib/ntlmpool.py,sha256=6I95h1_71fzxmoMSNtY0gB8lnyCoVtP_DpqFGj14fdU,4160
--urllib3/contrib/pyopenssl.py,sha256=vgh6j52w9xgwq-3R2kfB5M2JblQATJfKAK3lIAc1kSg,16778
--urllib3/contrib/securetransport.py,sha256=KxGPZk8d4YepWm7Rc-SBt1XrzIfnLKc8JkUVV75XzgE,34286
--urllib3/contrib/socks.py,sha256=DcRjM2l0rQMIyhYrN6r-tnVkY6ZTDxHJlM8_usAkGCA,7097
--urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
--urllib3/contrib/_securetransport/bindings.py,sha256=E1_7ScsgOchfxneozbAueK7ziCwF35fna4DuDCYJ9_o,17637
--urllib3/contrib/_securetransport/low_level.py,sha256=lgIdsSycqfB0Xm5BiJzXGeIKT7ybCQMFPJAgkcwPa1s,13908
--urllib3/packages/__init__.py,sha256=h4BLhD4tLaBx1adaDtKXfupsgqY0wWLXb_f1_yVlV6A,108
--urllib3/packages/six.py,sha256=adx4z-eM_D0Vvu0IIqVzFACQ_ux9l64y7DkSEfbxCDs,32536
--urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
--urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417
--urllib3/packages/ssl_match_hostname/__init__.py,sha256=zppezdEQdpGsYerI6mV6MfUYy495JV4mcOWC_GgbljU,757
--urllib3/packages/ssl_match_hostname/_implementation.py,sha256=6dZ-q074g7XhsJ27MFCgkct8iVNZB3sMZvKhf-KUVy0,5679
--urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155
--urllib3/util/connection.py,sha256=21B-LX0c8fkxPDssyHCaK0pCnmrKmhltg5EoouHiAPU,4910
--urllib3/util/proxy.py,sha256=FGipAEnvZteyldXNjce4DEB7YzwU-a5lep8y5S0qHQg,1604
--urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498
--urllib3/util/request.py,sha256=NnzaEKQ1Pauw5MFMV6HmgEMHITf0Aua9fQuzi2uZzGc,4123
--urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510
--urllib3/util/retry.py,sha256=tn168HDMUynFmXRP-uVaLRUOlbTEJikoB1RuZdwfCes,21366
--urllib3/util/ssl_.py,sha256=cUsmU604z2zAOZcaXDpINXOokQ1RtlJMe96TBDkaJp0,16199
--urllib3/util/ssltransport.py,sha256=IvGQvs9YWkf4jzfqVjTu_UWjwAUgPn5ActajW8VLz6A,6908
--urllib3/util/timeout.py,sha256=QSbBUNOB9yh6AnDn61SrLQ0hg5oz0I9-uXEG91AJuIg,10003
--urllib3/util/url.py,sha256=LWfLSlI4l2FmUMKfCkElCaW10-0N-sJDT9bxaDZJkjs,13964
--urllib3/util/wait.py,sha256=3MUKRSAUJDB2tgco7qRUskW0zXGAWYvRRE4Q1_6xlLs,5404
--urllib3-1.26.0.dist-info/LICENSE.txt,sha256=w3vxhuJ8-dvpYZ5V7f486nswCRzrPaY8fay-Dm13kHs,1115
--urllib3-1.26.0.dist-info/METADATA,sha256=Wghdt6nLf9HfZHhWj8Dpgz4n9vGRqXYhdIwJRPgki6M,42629
--urllib3-1.26.0.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110
--urllib3-1.26.0.dist-info/top_level.txt,sha256=EMiXL2sKrTcmrMxIHTqdc3ET54pQI2Y072LexFEemvo,8
--urllib3-1.26.0.dist-info/RECORD,,
-diff --git a/third_party/python/urllib3/urllib3-1.26.0.dist-info/LICENSE.txt b/third_party/python/urllib3/urllib3-1.26.17.dist-info/LICENSE.txt
-similarity index 100%
-rename from third_party/python/urllib3/urllib3-1.26.0.dist-info/LICENSE.txt
-rename to third_party/python/urllib3/urllib3-1.26.17.dist-info/LICENSE.txt
-diff --git a/third_party/python/urllib3/urllib3-1.26.0.dist-info/METADATA b/third_party/python/urllib3/urllib3-1.26.17.dist-info/METADATA
-similarity index 86%
-rename from third_party/python/urllib3/urllib3-1.26.0.dist-info/METADATA
-rename to third_party/python/urllib3/urllib3-1.26.17.dist-info/METADATA
-index 39869aafada8a..9493faee66c01 100644
---- a/third_party/python/urllib3/urllib3-1.26.0.dist-info/METADATA
-+++ b/third_party/python/urllib3/urllib3-1.26.17.dist-info/METADATA
-@@ -1,6 +1,6 @@
- Metadata-Version: 2.1
- Name: urllib3
--Version: 1.26.0
-+Version: 1.26.17
- Summary: HTTP library with thread-safe connection pooling, file post, and more.
- Home-page: https://urllib3.readthedocs.io/
- Author: Andrey Petrov
-@@ -10,7 +10,6 @@ Project-URL: Documentation, https://urllib3.readthedocs.io/
- Project-URL: Code, https://github.com/urllib3/urllib3
- Project-URL: Issue tracker, https://github.com/urllib3/urllib3/issues
- Keywords: urllib httplib threadsafe filepost http https ssl pooling
--Platform: UNKNOWN
- Classifier: Environment :: Web Environment
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: MIT License
-@@ -19,27 +18,33 @@ Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
--Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Programming Language :: Python :: 3.9
-+Classifier: Programming Language :: Python :: 3.10
-+Classifier: Programming Language :: Python :: 3.11
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Topic :: Internet :: WWW/HTTP
- Classifier: Topic :: Software Development :: Libraries
--Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4
-+Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
- Description-Content-Type: text/x-rst
-+License-File: LICENSE.txt
- Provides-Extra: brotli
--Requires-Dist: brotlipy (>=0.6.0) ; extra == 'brotli'
-+Requires-Dist: brotlicffi >=0.8.0 ; ((os_name != "nt" or python_version >= "3") and platform_python_implementation != "CPython") and extra == 'brotli'
-+Requires-Dist: brotli ==1.0.9 ; (os_name != "nt" and python_version < "3" and platform_python_implementation == "CPython") and extra == 'brotli'
-+Requires-Dist: brotlipy >=0.6.0 ; (os_name == "nt" and python_version < "3") and extra == 'brotli'
-+Requires-Dist: brotli >=1.0.9 ; (python_version >= "3" and platform_python_implementation == "CPython") and extra == 'brotli'
- Provides-Extra: secure
--Requires-Dist: pyOpenSSL (>=0.14) ; extra == 'secure'
--Requires-Dist: cryptography (>=1.3.4) ; extra == 'secure'
--Requires-Dist: idna (>=2.0.0) ; extra == 'secure'
-+Requires-Dist: pyOpenSSL >=0.14 ; extra == 'secure'
-+Requires-Dist: cryptography >=1.3.4 ; extra == 'secure'
-+Requires-Dist: idna >=2.0.0 ; extra == 'secure'
- Requires-Dist: certifi ; extra == 'secure'
-+Requires-Dist: urllib3-secure-extra ; extra == 'secure'
- Requires-Dist: ipaddress ; (python_version == "2.7") and extra == 'secure'
- Provides-Extra: socks
--Requires-Dist: PySocks (!=1.5.7,<2.0,>=1.5.6) ; extra == 'socks'
-+Requires-Dist: PySocks !=1.5.7,<2.0,>=1.5.6 ; extra == 'socks'
- 
- 
- urllib3 is a powerful, *user-friendly* HTTP client for Python. Much of the
-@@ -78,8 +83,10 @@ urllib3 can be installed with `pip <https://pip.pypa.io>`_::
- 
- Alternatively, you can grab the latest source code from `GitHub <https://github.com/urllib3/urllib3>`_::
- 
--    $ git clone git://github.com/urllib3/urllib3.git
--    $ python setup.py install
-+    $ git clone https://github.com/urllib3/urllib3.git
-+    $ cd urllib3
-+    $ git checkout 1.26.x
-+    $ pip install .
- 
- 
- Documentation
-@@ -148,6 +155,152 @@ For Enterprise
- Changes
- =======
- 
-+1.26.17 (2023-10-02)
-+--------------------
-+
-+* Added the ``Cookie`` header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via ``Retry.remove_headers_on_redirect``.
-+
-+
-+1.26.16 (2023-05-23)
-+--------------------
-+
-+* Fixed thread-safety issue where accessing a ``PoolManager`` with many distinct origins
-+  would cause connection pools to be closed while requests are in progress (`#2954 <https://github.com/urllib3/urllib3/pull/2954>`_)
-+
-+
-+1.26.15 (2023-03-10)
-+--------------------
-+
-+* Fix socket timeout value when ``HTTPConnection`` is reused (`#2645 <https://github.com/urllib3/urllib3/issues/2645>`__)
-+* Remove "!" character from the unreserved characters in IPv6 Zone ID parsing
-+  (`#2899 <https://github.com/urllib3/urllib3/issues/2899>`__)
-+* Fix IDNA handling of '\x80' byte (`#2901 <https://github.com/urllib3/urllib3/issues/2901>`__)
-+
-+1.26.14 (2023-01-11)
-+--------------------
-+
-+* Fixed parsing of port 0 (zero) returning None, instead of 0. (`#2850 <https://github.com/urllib3/urllib3/issues/2850>`__)
-+* Removed deprecated getheaders() calls in contrib module.
-+
-+1.26.13 (2022-11-23)
-+--------------------
-+
-+* Deprecated the ``HTTPResponse.getheaders()`` and ``HTTPResponse.getheader()`` methods.
-+* Fixed an issue where parsing a URL with leading zeroes in the port would be rejected
-+  even when the port number after removing the zeroes was valid.
-+* Fixed a deprecation warning when using cryptography v39.0.0.
-+* Removed the ``<4`` in the ``Requires-Python`` packaging metadata field.
-+
-+
-+1.26.12 (2022-08-22)
-+--------------------
-+
-+* Deprecated the `urllib3[secure]` extra and the `urllib3.contrib.pyopenssl` module.
-+  Both will be removed in v2.x. See this `GitHub issue <https://github.com/urllib3/urllib3/issues/2680>`_
-+  for justification and info on how to migrate.
-+
-+
-+1.26.11 (2022-07-25)
-+--------------------
-+
-+* Fixed an issue where reading more than 2 GiB in a call to ``HTTPResponse.read`` would
-+  raise an ``OverflowError`` on Python 3.9 and earlier.
-+
-+
-+1.26.10 (2022-07-07)
-+--------------------
-+
-+* Removed support for Python 3.5
-+* Fixed an issue where a ``ProxyError`` recommending configuring the proxy as HTTP
-+  instead of HTTPS could appear even when an HTTPS proxy wasn't configured.
-+
-+
-+1.26.9 (2022-03-16)
-+-------------------
-+
-+* Changed ``urllib3[brotli]`` extra to favor installing Brotli libraries that are still
-+  receiving updates like ``brotli`` and ``brotlicffi`` instead of ``brotlipy``.
-+  This change does not impact behavior of urllib3, only which dependencies are installed.
-+* Fixed a socket leaking when ``HTTPSConnection.connect()`` raises an exception.
-+* Fixed ``server_hostname`` being forwarded from ``PoolManager`` to ``HTTPConnectionPool``
-+  when requesting an HTTP URL. Should only be forwarded when requesting an HTTPS URL.
-+
-+
-+1.26.8 (2022-01-07)
-+-------------------
-+
-+* Added extra message to ``urllib3.exceptions.ProxyError`` when urllib3 detects that
-+  a proxy is configured to use HTTPS but the proxy itself appears to only use HTTP.
-+* Added a mention of the size of the connection pool when discarding a connection due to the pool being full.
-+* Added explicit support for Python 3.11.
-+* Deprecated the ``Retry.MAX_BACKOFF`` class property in favor of ``Retry.DEFAULT_MAX_BACKOFF``
-+  to better match the rest of the default parameter names. ``Retry.MAX_BACKOFF`` is removed in v2.0.
-+* Changed location of the vendored ``ssl.match_hostname`` function from ``urllib3.packages.ssl_match_hostname``
-+  to ``urllib3.util.ssl_match_hostname`` to ensure Python 3.10+ compatibility after being repackaged
-+  by downstream distributors.
-+* Fixed absolute imports, all imports are now relative.
-+
-+
-+1.26.7 (2021-09-22)
-+-------------------
-+
-+* Fixed a bug with HTTPS hostname verification involving IP addresses and lack
-+  of SNI. (Issue #2400)
-+* Fixed a bug where IPv6 braces weren't stripped during certificate hostname
-+  matching. (Issue #2240)
-+
-+
-+1.26.6 (2021-06-25)
-+-------------------
-+
-+* Deprecated the ``urllib3.contrib.ntlmpool`` module. urllib3 is not able to support
-+  it properly due to `reasons listed in this issue <https://github.com/urllib3/urllib3/issues/2282>`_.
-+  If you are a user of this module please leave a comment.
-+* Changed ``HTTPConnection.request_chunked()`` to not erroneously emit multiple
-+  ``Transfer-Encoding`` headers in the case that one is already specified.
-+* Fixed typo in deprecation message to recommend ``Retry.DEFAULT_ALLOWED_METHODS``.
-+
-+
-+1.26.5 (2021-05-26)
-+-------------------
-+
-+* Fixed deprecation warnings emitted in Python 3.10.
-+* Updated vendored ``six`` library to 1.16.0.
-+* Improved performance of URL parser when splitting
-+  the authority component.
-+
-+
-+1.26.4 (2021-03-15)
-+-------------------
-+
-+* Changed behavior of the default ``SSLContext`` when connecting to HTTPS proxy
-+  during HTTPS requests. The default ``SSLContext`` now sets ``check_hostname=True``.
-+
-+
-+1.26.3 (2021-01-26)
-+-------------------
-+
-+* Fixed bytes and string comparison issue with headers (Pull #2141)
-+
-+* Changed ``ProxySchemeUnknown`` error message to be
-+  more actionable if the user supplies a proxy URL without
-+  a scheme. (Pull #2107)
-+
-+
-+1.26.2 (2020-11-12)
-+-------------------
-+
-+* Fixed an issue where ``wrap_socket`` and ``CERT_REQUIRED`` wouldn't
-+  be imported properly on Python 2.7.8 and earlier (Pull #2052)
-+
-+
-+1.26.1 (2020-11-11)
-+-------------------
-+
-+* Fixed an issue where two ``User-Agent`` headers would be sent if a
-+  ``User-Agent`` header key is passed as ``bytes`` (Pull #2047)
-+
-+
- 1.26.0 (2020-11-10)
- -------------------
- 
-@@ -1331,5 +1484,3 @@ Changes
- ----------------
- 
- * First release.
--
--
-diff --git a/third_party/python/urllib3/urllib3-1.26.17.dist-info/RECORD b/third_party/python/urllib3/urllib3-1.26.17.dist-info/RECORD
-new file mode 100644
-index 0000000000000..1afc6580589c0
---- /dev/null
-+++ b/third_party/python/urllib3/urllib3-1.26.17.dist-info/RECORD
-@@ -0,0 +1,44 @@
-+urllib3/__init__.py,sha256=iXLcYiJySn0GNbWOOZDDApgBL1JgP44EZ8i1760S8Mc,3333
-+urllib3/_collections.py,sha256=Rp1mVyBgc_UlAcp6M3at1skJBXR5J43NawRTvW2g_XY,10811
-+urllib3/_version.py,sha256=azoM7M7BUADl2kBhMVR6PPf2GhBDI90me1fcnzTwdcw,64
-+urllib3/connection.py,sha256=92k9td_y4PEiTIjNufCUa1NzMB3J3w0LEdyokYgXnW8,20300
-+urllib3/connectionpool.py,sha256=ItVDasDnPRPP9R8bNxY7tPBlC724nJ9nlxVgXG_SLbI,39990
-+urllib3/exceptions.py,sha256=0Mnno3KHTNfXRfY7638NufOPkUb6mXOm-Lqj-4x2w8A,8217
-+urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579
-+urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440
-+urllib3/poolmanager.py,sha256=0i8cJgrqupza67IBPZ_u9jXvnSxr5UBlVEiUqdkPtYI,19752
-+urllib3/request.py,sha256=YTWFNr7QIwh7E1W9dde9LM77v2VWTJ5V78XuTTw7D1A,6691
-+urllib3/response.py,sha256=UPgLmnHj4z71ZnH8ivYOyncATifTOw9FQukUqDnckCc,30761
-+urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-+urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957
-+urllib3/contrib/appengine.py,sha256=6IBW6lPOoVUxASPwtn6IH1AATe5DK3lLJCfwyWlLKAE,11012
-+urllib3/contrib/ntlmpool.py,sha256=NlfkW7WMdW8ziqudopjHoW299og1BTWi0IeIibquFwk,4528
-+urllib3/contrib/pyopenssl.py,sha256=4AJAlo9NmjWofY4dJwRa4kbZuRuHfNJxu8Pv6yQk1ss,17055
-+urllib3/contrib/securetransport.py,sha256=QOhVbWrFQTKbmV-vtyG69amekkKVxXkdjk9oymaO0Ag,34416
-+urllib3/contrib/socks.py,sha256=aRi9eWXo9ZEb95XUxef4Z21CFlnnjbEiAo9HOseoMt4,7097
-+urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-+urllib3/contrib/_securetransport/bindings.py,sha256=4Xk64qIkPBt09A5q-RIFUuDhNc9mXilVapm7WnYnzRw,17632
-+urllib3/contrib/_securetransport/low_level.py,sha256=B2JBB2_NRP02xK6DCa1Pa9IuxrPwxzDzZbixQkb7U9M,13922
-+urllib3/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-+urllib3/packages/six.py,sha256=b9LM0wBXv7E7SrbCjAm4wwN-hrH-iNxv18LgWNMMKPo,34665
-+urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-+urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417
-+urllib3/packages/backports/weakref_finalize.py,sha256=tRCal5OAhNSRyb0DhHp-38AtIlCsRP8BxF3NX-6rqIA,5343
-+urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155
-+urllib3/util/connection.py,sha256=5Lx2B1PW29KxBn2T0xkN1CBgRBa3gGVJBKoQoRogEVk,4901
-+urllib3/util/proxy.py,sha256=zUvPPCJrp6dOF0N4GAVbOcl6o-4uXKSrGiTkkr5vUS4,1605
-+urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498
-+urllib3/util/request.py,sha256=fWiAaa8pwdLLIqoTLBxCC2e4ed80muzKU3e3HWWTzFQ,4225
-+urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510
-+urllib3/util/retry.py,sha256=Z6WEf518eTOXP5jr5QSQ9gqJI0DVYt3Xs3EKnYaTmus,22013
-+urllib3/util/ssl_.py,sha256=c0sYiSC6272r6uPkxQpo5rYPP9QC1eR6oI7004gYqZo,17165
-+urllib3/util/ssl_match_hostname.py,sha256=Ir4cZVEjmAk8gUAIHWSi7wtOO83UCYABY2xFD1Ql_WA,5758
-+urllib3/util/ssltransport.py,sha256=NA-u5rMTrDFDFC8QzRKUEKMG0561hOD4qBTr3Z4pv6E,6895
-+urllib3/util/timeout.py,sha256=cwq4dMk87mJHSBktK1miYJ-85G-3T3RmT20v7SFCpno,10168
-+urllib3/util/url.py,sha256=kMxL1k0d-aQm_iZDw_zMmnyYyjrIA_DbsMy3cm3V55M,14279
-+urllib3/util/wait.py,sha256=fOX0_faozG2P7iVojQoE1mbydweNyTcm-hXEfFrTtLI,5403
-+urllib3-1.26.17.dist-info/LICENSE.txt,sha256=w3vxhuJ8-dvpYZ5V7f486nswCRzrPaY8fay-Dm13kHs,1115
-+urllib3-1.26.17.dist-info/METADATA,sha256=swEiQKmb2m5Vl4fygmy4aLSzZjxDjD8q2-_XzuhO9pA,48743
-+urllib3-1.26.17.dist-info/WHEEL,sha256=iYlv5fX357PQyRT2o6tw1bN-YcKFFHKqB_LwHO5wP-g,110
-+urllib3-1.26.17.dist-info/top_level.txt,sha256=EMiXL2sKrTcmrMxIHTqdc3ET54pQI2Y072LexFEemvo,8
-+urllib3-1.26.17.dist-info/RECORD,,
-diff --git a/third_party/python/six/six-1.13.0.dist-info/WHEEL b/third_party/python/urllib3/urllib3-1.26.17.dist-info/WHEEL
-similarity index 70%
-rename from third_party/python/six/six-1.13.0.dist-info/WHEEL
-rename to third_party/python/urllib3/urllib3-1.26.17.dist-info/WHEEL
-index 8b701e93c2315..c34f1162ef9a5 100644
---- a/third_party/python/six/six-1.13.0.dist-info/WHEEL
-+++ b/third_party/python/urllib3/urllib3-1.26.17.dist-info/WHEEL
-@@ -1,5 +1,5 @@
- Wheel-Version: 1.0
--Generator: bdist_wheel (0.33.6)
-+Generator: bdist_wheel (0.41.2)
- Root-Is-Purelib: true
- Tag: py2-none-any
- Tag: py3-none-any
-diff --git a/third_party/python/urllib3/urllib3-1.26.0.dist-info/top_level.txt b/third_party/python/urllib3/urllib3-1.26.17.dist-info/top_level.txt
-similarity index 100%
-rename from third_party/python/urllib3/urllib3-1.26.0.dist-info/top_level.txt
-rename to third_party/python/urllib3/urllib3-1.26.17.dist-info/top_level.txt
-diff --git a/third_party/python/urllib3/urllib3/__init__.py b/third_party/python/urllib3/urllib3/__init__.py
-index fe86b59d782bd..c6fa38212fb55 100644
---- a/third_party/python/urllib3/urllib3/__init__.py
-+++ b/third_party/python/urllib3/urllib3/__init__.py
-@@ -19,6 +19,23 @@
- from .util.timeout import Timeout
- from .util.url import get_host
- 
-+# === NOTE TO REPACKAGERS AND VENDORS ===
-+# Please delete this block, this logic is only
-+# for urllib3 being distributed via PyPI.
-+# See: https://github.com/urllib3/urllib3/issues/2680
-+try:
-+    import urllib3_secure_extra  # type: ignore # noqa: F401
-+except ImportError:
-+    pass
-+else:
-+    warnings.warn(
-+        "'urllib3[secure]' extra is deprecated and will be removed "
-+        "in a future release of urllib3 2.x. Read more in this issue: "
-+        "https://github.com/urllib3/urllib3/issues/2680",
-+        category=DeprecationWarning,
-+        stacklevel=2,
-+    )
-+
- __author__ = "Andrey Petrov (andrey.petrov@shazow.net)"
- __license__ = "MIT"
- __version__ = __version__
-diff --git a/third_party/python/urllib3/urllib3/_version.py b/third_party/python/urllib3/urllib3/_version.py
-index cee465f88a931..cad75fb5df82a 100644
---- a/third_party/python/urllib3/urllib3/_version.py
-+++ b/third_party/python/urllib3/urllib3/_version.py
-@@ -1,2 +1,2 @@
- # This file is protected via CODEOWNERS
--__version__ = "1.26.0"
-+__version__ = "1.26.17"
-diff --git a/third_party/python/urllib3/urllib3/connection.py b/third_party/python/urllib3/urllib3/connection.py
-index 52487417c946b..54b96b19154cc 100644
---- a/third_party/python/urllib3/urllib3/connection.py
-+++ b/third_party/python/urllib3/urllib3/connection.py
-@@ -43,6 +43,7 @@ class BrokenPipeError(Exception):
-         pass
- 
- 
-+from ._collections import HTTPHeaderDict  # noqa (historical, removed in v2)
- from ._version import __version__
- from .exceptions import (
-     ConnectTimeoutError,
-@@ -50,15 +51,16 @@ class BrokenPipeError(Exception):
-     SubjectAltNameWarning,
-     SystemTimeWarning,
- )
--from .packages.ssl_match_hostname import CertificateError, match_hostname
- from .util import SKIP_HEADER, SKIPPABLE_HEADERS, connection
- from .util.ssl_ import (
-     assert_fingerprint,
-     create_urllib3_context,
-+    is_ipaddress,
-     resolve_cert_reqs,
-     resolve_ssl_version,
-     ssl_wrap_socket,
- )
-+from .util.ssl_match_hostname import CertificateError, match_hostname
- 
- log = logging.getLogger(__name__)
- 
-@@ -66,7 +68,7 @@ class BrokenPipeError(Exception):
- 
- # When it comes time to update this value as a part of regular maintenance
- # (ie test_recent_date is failing) update it to ~6 months before the current date.
--RECENT_DATE = datetime.date(2019, 1, 1)
-+RECENT_DATE = datetime.date(2022, 1, 1)
- 
- _CONTAINS_CONTROL_CHAR_RE = re.compile(r"[^-!#$%&'*+.^_`|~0-9a-zA-Z]")
- 
-@@ -106,6 +108,10 @@ class HTTPConnection(_HTTPConnection, object):
-     #: Whether this connection verifies the host's certificate.
-     is_verified = False
- 
-+    #: Whether this proxy connection (if used) verifies the proxy host's
-+    #: certificate.
-+    proxy_is_verified = None
-+
-     def __init__(self, *args, **kw):
-         if not six.PY2:
-             kw.pop("strict", None)
-@@ -200,7 +206,7 @@ def connect(self):
-         self._prepare_conn(conn)
- 
-     def putrequest(self, method, url, *args, **kwargs):
--        """"""
-+        """ """
-         # Empty docstring because the indentation of CPython's implementation
-         # is broken but we don't want this method in our documentation.
-         match = _CONTAINS_CONTROL_CHAR_RE.search(method)
-@@ -213,8 +219,8 @@ def putrequest(self, method, url, *args, **kwargs):
-         return _HTTPConnection.putrequest(self, method, url, *args, **kwargs)
- 
-     def putheader(self, header, *values):
--        """"""
--        if SKIP_HEADER not in values:
-+        """ """
-+        if not any(isinstance(v, str) and v == SKIP_HEADER for v in values):
-             _HTTPConnection.putheader(self, header, *values)
-         elif six.ensure_str(header.lower()) not in SKIPPABLE_HEADERS:
-             raise ValueError(
-@@ -223,12 +229,17 @@ def putheader(self, header, *values):
-             )
- 
-     def request(self, method, url, body=None, headers=None):
-+        # Update the inner socket's timeout value to send the request.
-+        # This only triggers if the connection is re-used.
-+        if getattr(self, "sock", None) is not None:
-+            self.sock.settimeout(self.timeout)
-+
-         if headers is None:
-             headers = {}
-         else:
-             # Avoid modifying the headers passed into .request()
-             headers = headers.copy()
--        if "user-agent" not in (k.lower() for k in headers):
-+        if "user-agent" not in (six.ensure_str(k.lower()) for k in headers):
-             headers["User-Agent"] = _get_default_user_agent()
-         super(HTTPConnection, self).request(method, url, body=body, headers=headers)
- 
-@@ -248,7 +259,7 @@ def request_chunked(self, method, url, body=None, headers=None):
-             self.putheader("User-Agent", _get_default_user_agent())
-         for header, value in headers.items():
-             self.putheader(header, value)
--        if "transfer-encoding" not in headers:
-+        if "transfer-encoding" not in header_keys:
-             self.putheader("Transfer-Encoding", "chunked")
-         self.endheaders()
- 
-@@ -349,17 +360,15 @@ def set_cert(
- 
-     def connect(self):
-         # Add certificate verification
--        conn = self._new_conn()
-+        self.sock = conn = self._new_conn()
-         hostname = self.host
-         tls_in_tls = False
- 
-         if self._is_using_tunnel():
-             if self.tls_in_tls_required:
--                conn = self._connect_tls_proxy(hostname, conn)
-+                self.sock = conn = self._connect_tls_proxy(hostname, conn)
-                 tls_in_tls = True
- 
--            self.sock = conn
--
-             # Calls self._set_hostport(), so self.host is
-             # self._tunnel_host below.
-             self._tunnel()
-@@ -492,7 +501,7 @@ def _connect_tls_proxy(self, hostname, conn):
- 
-         # If no cert was provided, use only the default options for server
-         # certificate validation
--        return ssl_wrap_socket(
-+        socket = ssl_wrap_socket(
-             sock=conn,
-             ca_certs=self.ca_certs,
-             ca_cert_dir=self.ca_cert_dir,
-@@ -501,8 +510,37 @@ def _connect_tls_proxy(self, hostname, conn):
-             ssl_context=ssl_context,
-         )
- 
-+        if ssl_context.verify_mode != ssl.CERT_NONE and not getattr(
-+            ssl_context, "check_hostname", False
-+        ):
-+            # While urllib3 attempts to always turn off hostname matching from
-+            # the TLS library, this cannot always be done. So we check whether
-+            # the TLS Library still thinks it's matching hostnames.
-+            cert = socket.getpeercert()
-+            if not cert.get("subjectAltName", ()):
-+                warnings.warn(
-+                    (
-+                        "Certificate for {0} has no `subjectAltName`, falling back to check for a "
-+                        "`commonName` for now. This feature is being removed by major browsers and "
-+                        "deprecated by RFC 2818. (See https://github.com/urllib3/urllib3/issues/497 "
-+                        "for details.)".format(hostname)
-+                    ),
-+                    SubjectAltNameWarning,
-+                )
-+            _match_hostname(cert, hostname)
-+
-+        self.proxy_is_verified = ssl_context.verify_mode == ssl.CERT_REQUIRED
-+        return socket
-+
- 
- def _match_hostname(cert, asserted_hostname):
-+    # Our upstream implementation of ssl.match_hostname()
-+    # only applies this normalization to IP addresses so it doesn't
-+    # match DNS SANs so we do the same thing!
-+    stripped_hostname = asserted_hostname.strip("u[]")
-+    if is_ipaddress(stripped_hostname):
-+        asserted_hostname = stripped_hostname
-+
-     try:
-         match_hostname(cert, asserted_hostname)
-     except CertificateError as e:
-diff --git a/third_party/python/urllib3/urllib3/connectionpool.py b/third_party/python/urllib3/urllib3/connectionpool.py
-index 4708c5bfc7862..96844d933745d 100644
---- a/third_party/python/urllib3/urllib3/connectionpool.py
-+++ b/third_party/python/urllib3/urllib3/connectionpool.py
-@@ -2,6 +2,7 @@
- 
- import errno
- import logging
-+import re
- import socket
- import sys
- import warnings
-@@ -35,7 +36,6 @@
- )
- from .packages import six
- from .packages.six.moves import queue
--from .packages.ssl_match_hostname import CertificateError
- from .request import RequestMethods
- from .response import HTTPResponse
- from .util.connection import is_connection_dropped
-@@ -44,11 +44,19 @@
- from .util.request import set_file_position
- from .util.response import assert_header_parsing
- from .util.retry import Retry
-+from .util.ssl_match_hostname import CertificateError
- from .util.timeout import Timeout
- from .util.url import Url, _encode_target
- from .util.url import _normalize_host as normalize_host
- from .util.url import get_host, parse_url
- 
-+try:  # Platform-specific: Python 3
-+    import weakref
-+
-+    weakref_finalize = weakref.finalize
-+except AttributeError:  # Platform-specific: Python 2
-+    from .packages.backports.weakref_finalize import weakref_finalize
-+
- xrange = six.moves.xrange
- 
- log = logging.getLogger(__name__)
-@@ -219,6 +227,16 @@ def __init__(
-             self.conn_kw["proxy"] = self.proxy
-             self.conn_kw["proxy_config"] = self.proxy_config
- 
-+        # Do not pass 'self' as callback to 'finalize'.
-+        # Then the 'finalize' would keep an endless living (leak) to self.
-+        # By just passing a reference to the pool allows the garbage collector
-+        # to free self if nobody else has a reference to it.
-+        pool = self.pool
-+
-+        # Close all the HTTPConnections in the pool before the
-+        # HTTPConnectionPool object is garbage collected.
-+        weakref_finalize(self, _close_pool_connections, pool)
-+
-     def _new_conn(self):
-         """
-         Return a fresh :class:`HTTPConnection`.
-@@ -301,8 +319,11 @@ def _put_conn(self, conn):
-             pass
-         except queue.Full:
-             # This should never happen if self.block == True
--            log.warning("Connection pool is full, discarding connection: %s", self.host)
--
-+            log.warning(
-+                "Connection pool is full, discarding connection: %s. Connection pool size: %s",
-+                self.host,
-+                self.pool.qsize(),
-+            )
-         # Connection never got put back into the pool, close it.
-         if conn:
-             conn.close()
-@@ -318,7 +339,7 @@ def _prepare_proxy(self, conn):
-         pass
- 
-     def _get_timeout(self, timeout):
--        """ Helper that always returns a :class:`urllib3.util.Timeout` """
-+        """Helper that always returns a :class:`urllib3.util.Timeout`"""
-         if timeout is _Default:
-             return self.timeout.clone()
- 
-@@ -375,7 +396,7 @@ def _make_request(
- 
-         timeout_obj = self._get_timeout(timeout)
-         timeout_obj.start_connect()
--        conn.timeout = timeout_obj.connect_timeout
-+        conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
- 
-         # Trigger any extra validation we need to do.
-         try:
-@@ -485,14 +506,8 @@ def close(self):
-         # Disable access to the pool
-         old_pool, self.pool = self.pool, None
- 
--        try:
--            while True:
--                conn = old_pool.get(block=False)
--                if conn:
--                    conn.close()
--
--        except queue.Empty:
--            pass  # Done.
-+        # Close all the HTTPConnections in the pool.
-+        _close_pool_connections(old_pool)
- 
-     def is_same_host(self, url):
-         """
-@@ -745,7 +760,35 @@ def urlopen(
-             # Discard the connection for these exceptions. It will be
-             # replaced during the next _get_conn() call.
-             clean_exit = False
--            if isinstance(e, (BaseSSLError, CertificateError)):
-+
-+            def _is_ssl_error_message_from_http_proxy(ssl_error):
-+                # We're trying to detect the message 'WRONG_VERSION_NUMBER' but
-+                # SSLErrors are kinda all over the place when it comes to the message,
-+                # so we try to cover our bases here!
-+                message = " ".join(re.split("[^a-z]", str(ssl_error).lower()))
-+                return (
-+                    "wrong version number" in message or "unknown protocol" in message
-+                )
-+
-+            # Try to detect a common user error with proxies which is to
-+            # set an HTTP proxy to be HTTPS when it should be 'http://'
-+            # (ie {'http': 'http://proxy', 'https': 'https://proxy'})
-+            # Instead we add a nice error message and point to a URL.
-+            if (
-+                isinstance(e, BaseSSLError)
-+                and self.proxy
-+                and _is_ssl_error_message_from_http_proxy(e)
-+                and conn.proxy
-+                and conn.proxy.scheme == "https"
-+            ):
-+                e = ProxyError(
-+                    "Your proxy appears to only use HTTP and not HTTPS, "
-+                    "try changing your proxy URL to be HTTP. See: "
-+                    "https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
-+                    "#https-proxy-error-http-proxy",
-+                    SSLError(e),
-+                )
-+            elif isinstance(e, (BaseSSLError, CertificateError)):
-                 e = SSLError(e)
-             elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
-                 e = ProxyError("Cannot connect to proxy.", e)
-@@ -830,7 +873,7 @@ def urlopen(
-             )
- 
-         # Check if we should retry the HTTP response.
--        has_retry_after = bool(response.getheader("Retry-After"))
-+        has_retry_after = bool(response.headers.get("Retry-After"))
-         if retries.is_retry(method, response.status, has_retry_after):
-             try:
-                 retries = retries.increment(method, url, response=response, _pool=self)
-@@ -1014,12 +1057,23 @@ def _validate_conn(self, conn):
-                 (
-                     "Unverified HTTPS request is being made to host '%s'. "
-                     "Adding certificate verification is strongly advised. See: "
--                    "https://urllib3.readthedocs.io/en/latest/advanced-usage.html"
-+                    "https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
-                     "#ssl-warnings" % conn.host
-                 ),
-                 InsecureRequestWarning,
-             )
- 
-+        if getattr(conn, "proxy_is_verified", None) is False:
-+            warnings.warn(
-+                (
-+                    "Unverified HTTPS connection done to an HTTPS proxy. "
-+                    "Adding certificate verification is strongly advised. See: "
-+                    "https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
-+                    "#ssl-warnings"
-+                ),
-+                InsecureRequestWarning,
-+            )
-+
- 
- def connection_from_url(url, **kw):
-     """
-@@ -1065,3 +1119,14 @@ def _normalize_host(host, scheme):
-     if host.startswith("[") and host.endswith("]"):
-         host = host[1:-1]
-     return host
-+
-+
-+def _close_pool_connections(pool):
-+    """Drains a queue of connections and closes each one."""
-+    try:
-+        while True:
-+            conn = pool.get(block=False)
-+            if conn:
-+                conn.close()
-+    except queue.Empty:
-+        pass  # Done.
-diff --git a/third_party/python/urllib3/urllib3/contrib/_securetransport/bindings.py b/third_party/python/urllib3/urllib3/contrib/_securetransport/bindings.py
-index 11524d400bab2..264d564dbda67 100644
---- a/third_party/python/urllib3/urllib3/contrib/_securetransport/bindings.py
-+++ b/third_party/python/urllib3/urllib3/contrib/_securetransport/bindings.py
-@@ -48,7 +48,7 @@
- )
- from ctypes.util import find_library
- 
--from urllib3.packages.six import raise_from
-+from ...packages.six import raise_from
- 
- if platform.system() != "Darwin":
-     raise ImportError("Only macOS is supported")
-diff --git a/third_party/python/urllib3/urllib3/contrib/_securetransport/low_level.py b/third_party/python/urllib3/urllib3/contrib/_securetransport/low_level.py
-index ed8120190c06f..fa0b245d279e9 100644
---- a/third_party/python/urllib3/urllib3/contrib/_securetransport/low_level.py
-+++ b/third_party/python/urllib3/urllib3/contrib/_securetransport/low_level.py
-@@ -188,6 +188,7 @@ def _cert_array_from_pem(pem_bundle):
-         # We only want to do that if an error occurs: otherwise, the caller
-         # should free.
-         CoreFoundation.CFRelease(cert_array)
-+        raise
- 
-     return cert_array
- 
-diff --git a/third_party/python/urllib3/urllib3/contrib/appengine.py b/third_party/python/urllib3/urllib3/contrib/appengine.py
-index aa64a0914c601..a5a6d91035f0a 100644
---- a/third_party/python/urllib3/urllib3/contrib/appengine.py
-+++ b/third_party/python/urllib3/urllib3/contrib/appengine.py
-@@ -111,7 +111,7 @@ def __init__(
-         warnings.warn(
-             "urllib3 is using URLFetch on Google App Engine sandbox instead "
-             "of sockets. To use sockets directly instead of URLFetch see "
--            "https://urllib3.readthedocs.io/en/latest/reference/urllib3.contrib.html.",
-+            "https://urllib3.readthedocs.io/en/1.26.x/reference/urllib3.contrib.html.",
-             AppEnginePlatformWarning,
-         )
- 
-@@ -224,7 +224,7 @@ def urlopen(
-                 )
- 
-         # Check if we should retry the HTTP response.
--        has_retry_after = bool(http_response.getheader("Retry-After"))
-+        has_retry_after = bool(http_response.headers.get("Retry-After"))
-         if retries.is_retry(method, http_response.status, has_retry_after):
-             retries = retries.increment(method, url, response=http_response, _pool=self)
-             log.debug("Retry: %s", url)
-diff --git a/third_party/python/urllib3/urllib3/contrib/ntlmpool.py b/third_party/python/urllib3/urllib3/contrib/ntlmpool.py
-index b2df45dcf6065..471665754e9f1 100644
---- a/third_party/python/urllib3/urllib3/contrib/ntlmpool.py
-+++ b/third_party/python/urllib3/urllib3/contrib/ntlmpool.py
-@@ -5,6 +5,7 @@
- """
- from __future__ import absolute_import
- 
-+import warnings
- from logging import getLogger
- 
- from ntlm import ntlm
-@@ -12,6 +13,14 @@
- from .. import HTTPSConnectionPool
- from ..packages.six.moves.http_client import HTTPSConnection
- 
-+warnings.warn(
-+    "The 'urllib3.contrib.ntlmpool' module is deprecated and will be removed "
-+    "in urllib3 v2.0 release, urllib3 is not able to support it properly due "
-+    "to reasons listed in issue: https://github.com/urllib3/urllib3/issues/2282. "
-+    "If you are a user of this module please comment in the mentioned issue.",
-+    DeprecationWarning,
-+)
-+
- log = getLogger(__name__)
- 
- 
-@@ -60,7 +69,7 @@ def _new_conn(self):
-         log.debug("Request headers: %s", headers)
-         conn.request("GET", self.authurl, None, headers)
-         res = conn.getresponse()
--        reshdr = dict(res.getheaders())
-+        reshdr = dict(res.headers)
-         log.debug("Response status: %s %s", res.status, res.reason)
-         log.debug("Response headers: %s", reshdr)
-         log.debug("Response data: %s [...]", res.read(100))
-@@ -92,7 +101,7 @@ def _new_conn(self):
-         conn.request("GET", self.authurl, None, headers)
-         res = conn.getresponse()
-         log.debug("Response status: %s %s", res.status, res.reason)
--        log.debug("Response headers: %s", dict(res.getheaders()))
-+        log.debug("Response headers: %s", dict(res.headers))
-         log.debug("Response data: %s [...]", res.read()[:100])
-         if res.status != 200:
-             if res.status == 401:
-diff --git a/third_party/python/urllib3/urllib3/contrib/pyopenssl.py b/third_party/python/urllib3/urllib3/contrib/pyopenssl.py
-index 0cabab1aed14a..1ed214b1d78fc 100644
---- a/third_party/python/urllib3/urllib3/contrib/pyopenssl.py
-+++ b/third_party/python/urllib3/urllib3/contrib/pyopenssl.py
-@@ -47,10 +47,10 @@
- """
- from __future__ import absolute_import
- 
-+import OpenSSL.crypto
- import OpenSSL.SSL
- from cryptography import x509
- from cryptography.hazmat.backends.openssl import backend as openssl_backend
--from cryptography.hazmat.backends.openssl.x509 import _Certificate
- 
- try:
-     from cryptography.x509 import UnsupportedExtension
-@@ -73,9 +73,19 @@ class UnsupportedExtension(Exception):
- import logging
- import ssl
- import sys
-+import warnings
- 
- from .. import util
- from ..packages import six
-+from ..util.ssl_ import PROTOCOL_TLS_CLIENT
-+
-+warnings.warn(
-+    "'urllib3.contrib.pyopenssl' module is deprecated and will be removed "
-+    "in a future release of urllib3 2.x. Read more in this issue: "
-+    "https://github.com/urllib3/urllib3/issues/2680",
-+    category=DeprecationWarning,
-+    stacklevel=2,
-+)
- 
- __all__ = ["inject_into_urllib3", "extract_from_urllib3"]
- 
-@@ -85,6 +95,7 @@ class UnsupportedExtension(Exception):
- # Map from urllib3 to PyOpenSSL compatible parameter-values.
- _openssl_versions = {
-     util.PROTOCOL_TLS: OpenSSL.SSL.SSLv23_METHOD,
-+    PROTOCOL_TLS_CLIENT: OpenSSL.SSL.SSLv23_METHOD,
-     ssl.PROTOCOL_TLSv1: OpenSSL.SSL.TLSv1_METHOD,
- }
- 
-@@ -217,9 +228,8 @@ def get_subj_alt_name(peer_cert):
-     if hasattr(peer_cert, "to_cryptography"):
-         cert = peer_cert.to_cryptography()
-     else:
--        # This is technically using private APIs, but should work across all
--        # relevant versions before PyOpenSSL got a proper API for this.
--        cert = _Certificate(openssl_backend, peer_cert._x509)
-+        der = OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_ASN1, peer_cert)
-+        cert = x509.load_der_x509_certificate(der, openssl_backend)
- 
-     # We want to find the SAN extension. Ask Cryptography to locate it (it's
-     # faster than looping in Python)
-@@ -404,7 +414,6 @@ def makefile(self, mode, bufsize=-1):
-         self._makefile_refs += 1
-         return _fileobject(self, mode, bufsize, close=True)
- 
--
- else:  # Platform-specific: Python 3
-     makefile = backport_makefile
- 
-diff --git a/third_party/python/urllib3/urllib3/contrib/securetransport.py b/third_party/python/urllib3/urllib3/contrib/securetransport.py
-index ab092de67a57c..6c46a3b9f0375 100644
---- a/third_party/python/urllib3/urllib3/contrib/securetransport.py
-+++ b/third_party/python/urllib3/urllib3/contrib/securetransport.py
-@@ -67,6 +67,7 @@
- import six
- 
- from .. import util
-+from ..util.ssl_ import PROTOCOL_TLS_CLIENT
- from ._securetransport.bindings import CoreFoundation, Security, SecurityConst
- from ._securetransport.low_level import (
-     _assert_no_error,
-@@ -154,7 +155,8 @@
- # TLSv1 and a high of TLSv1.2. For everything else, we pin to that version.
- # TLSv1 to 1.2 are supported on macOS 10.8+
- _protocol_to_min_max = {
--    util.PROTOCOL_TLS: (SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol12)
-+    util.PROTOCOL_TLS: (SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol12),
-+    PROTOCOL_TLS_CLIENT: (SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol12),
- }
- 
- if hasattr(ssl, "PROTOCOL_SSLv2"):
-@@ -768,7 +770,6 @@ def makefile(self, mode, bufsize=-1):
-         self._makefile_refs += 1
-         return _fileobject(self, mode, bufsize, close=True)
- 
--
- else:  # Platform-specific: Python 3
- 
-     def makefile(self, mode="r", buffering=None, *args, **kwargs):
-diff --git a/third_party/python/urllib3/urllib3/contrib/socks.py b/third_party/python/urllib3/urllib3/contrib/socks.py
-index 93df8325d59c4..c326e80dd1174 100644
---- a/third_party/python/urllib3/urllib3/contrib/socks.py
-+++ b/third_party/python/urllib3/urllib3/contrib/socks.py
-@@ -51,7 +51,7 @@
-         (
-             "SOCKS support in urllib3 requires the installation of optional "
-             "dependencies: specifically, PySocks.  For more information, see "
--            "https://urllib3.readthedocs.io/en/latest/contrib.html#socks-proxies"
-+            "https://urllib3.readthedocs.io/en/1.26.x/contrib.html#socks-proxies"
-         ),
-         DependencyWarning,
-     )
-diff --git a/third_party/python/urllib3/urllib3/exceptions.py b/third_party/python/urllib3/urllib3/exceptions.py
-index d69958d5dfc29..cba6f3f560f71 100644
---- a/third_party/python/urllib3/urllib3/exceptions.py
-+++ b/third_party/python/urllib3/urllib3/exceptions.py
-@@ -289,7 +289,17 @@ class ProxySchemeUnknown(AssertionError, URLSchemeUnknown):
-     # TODO(t-8ch): Stop inheriting from AssertionError in v2.0.
- 
-     def __init__(self, scheme):
--        message = "Not supported proxy scheme %s" % scheme
-+        # 'localhost' is here because our URL parser parses
-+        # localhost:8080 -> scheme=localhost, remove if we fix this.
-+        if scheme == "localhost":
-+            scheme = None
-+        if scheme is None:
-+            message = "Proxy URL had no scheme, should start with http:// or https://"
-+        else:
-+            message = (
-+                "Proxy URL had unsupported scheme %s, should use http:// or https://"
-+                % scheme
-+            )
-         super(ProxySchemeUnknown, self).__init__(message)
- 
- 
-diff --git a/third_party/python/urllib3/urllib3/packages/__init__.py b/third_party/python/urllib3/urllib3/packages/__init__.py
-index fce4caa65d2ee..e69de29bb2d1d 100644
---- a/third_party/python/urllib3/urllib3/packages/__init__.py
-+++ b/third_party/python/urllib3/urllib3/packages/__init__.py
-@@ -1,5 +0,0 @@
--from __future__ import absolute_import
--
--from . import ssl_match_hostname
--
--__all__ = ("ssl_match_hostname",)
-diff --git a/third_party/python/urllib3/urllib3/packages/backports/weakref_finalize.py b/third_party/python/urllib3/urllib3/packages/backports/weakref_finalize.py
-new file mode 100644
-index 0000000000000..a2f2966e54966
---- /dev/null
-+++ b/third_party/python/urllib3/urllib3/packages/backports/weakref_finalize.py
-@@ -0,0 +1,155 @@
-+# -*- coding: utf-8 -*-
-+"""
-+backports.weakref_finalize
-+~~~~~~~~~~~~~~~~~~
-+
-+Backports the Python 3 ``weakref.finalize`` method.
-+"""
-+from __future__ import absolute_import
-+
-+import itertools
-+import sys
-+from weakref import ref
-+
-+__all__ = ["weakref_finalize"]
-+
-+
-+class weakref_finalize(object):
-+    """Class for finalization of weakrefable objects
-+    finalize(obj, func, *args, **kwargs) returns a callable finalizer
-+    object which will be called when obj is garbage collected. The
-+    first time the finalizer is called it evaluates func(*arg, **kwargs)
-+    and returns the result. After this the finalizer is dead, and
-+    calling it just returns None.
-+    When the program exits any remaining finalizers for which the
-+    atexit attribute is true will be run in reverse order of creation.
-+    By default atexit is true.
-+    """
-+
-+    # Finalizer objects don't have any state of their own.  They are
-+    # just used as keys to lookup _Info objects in the registry.  This
-+    # ensures that they cannot be part of a ref-cycle.
-+
-+    __slots__ = ()
-+    _registry = {}
-+    _shutdown = False
-+    _index_iter = itertools.count()
-+    _dirty = False
-+    _registered_with_atexit = False
-+
-+    class _Info(object):
-+        __slots__ = ("weakref", "func", "args", "kwargs", "atexit", "index")
-+
-+    def __init__(self, obj, func, *args, **kwargs):
-+        if not self._registered_with_atexit:
-+            # We may register the exit function more than once because
-+            # of a thread race, but that is harmless
-+            import atexit
-+
-+            atexit.register(self._exitfunc)
-+            weakref_finalize._registered_with_atexit = True
-+        info = self._Info()
-+        info.weakref = ref(obj, self)
-+        info.func = func
-+        info.args = args
-+        info.kwargs = kwargs or None
-+        info.atexit = True
-+        info.index = next(self._index_iter)
-+        self._registry[self] = info
-+        weakref_finalize._dirty = True
-+
-+    def __call__(self, _=None):
-+        """If alive then mark as dead and return func(*args, **kwargs);
-+        otherwise return None"""
-+        info = self._registry.pop(self, None)
-+        if info and not self._shutdown:
-+            return info.func(*info.args, **(info.kwargs or {}))
-+
-+    def detach(self):
-+        """If alive then mark as dead and return (obj, func, args, kwargs);
-+        otherwise return None"""
-+        info = self._registry.get(self)
-+        obj = info and info.weakref()
-+        if obj is not None and self._registry.pop(self, None):
-+            return (obj, info.func, info.args, info.kwargs or {})
-+
-+    def peek(self):
-+        """If alive then return (obj, func, args, kwargs);
-+        otherwise return None"""
-+        info = self._registry.get(self)
-+        obj = info and info.weakref()
-+        if obj is not None:
-+            return (obj, info.func, info.args, info.kwargs or {})
-+
-+    @property
-+    def alive(self):
-+        """Whether finalizer is alive"""
-+        return self in self._registry
-+
-+    @property
-+    def atexit(self):
-+        """Whether finalizer should be called at exit"""
-+        info = self._registry.get(self)
-+        return bool(info) and info.atexit
-+
-+    @atexit.setter
-+    def atexit(self, value):
-+        info = self._registry.get(self)
-+        if info:
-+            info.atexit = bool(value)
-+
-+    def __repr__(self):
-+        info = self._registry.get(self)
-+        obj = info and info.weakref()
-+        if obj is None:
-+            return "<%s object at %#x; dead>" % (type(self).__name__, id(self))
-+        else:
-+            return "<%s object at %#x; for %r at %#x>" % (
-+                type(self).__name__,
-+                id(self),
-+                type(obj).__name__,
-+                id(obj),
-+            )
-+
-+    @classmethod
-+    def _select_for_exit(cls):
-+        # Return live finalizers marked for exit, oldest first
-+        L = [(f, i) for (f, i) in cls._registry.items() if i.atexit]
-+        L.sort(key=lambda item: item[1].index)
-+        return [f for (f, i) in L]
-+
-+    @classmethod
-+    def _exitfunc(cls):
-+        # At shutdown invoke finalizers for which atexit is true.
-+        # This is called once all other non-daemonic threads have been
-+        # joined.
-+        reenable_gc = False
-+        try:
-+            if cls._registry:
-+                import gc
-+
-+                if gc.isenabled():
-+                    reenable_gc = True
-+                    gc.disable()
-+                pending = None
-+                while True:
-+                    if pending is None or weakref_finalize._dirty:
-+                        pending = cls._select_for_exit()
-+                        weakref_finalize._dirty = False
-+                    if not pending:
-+                        break
-+                    f = pending.pop()
-+                    try:
-+                        # gc is disabled, so (assuming no daemonic
-+                        # threads) the following is the only line in
-+                        # this function which might trigger creation
-+                        # of a new finalizer
-+                        f()
-+                    except Exception:
-+                        sys.excepthook(*sys.exc_info())
-+                    assert f not in cls._registry
-+        finally:
-+            # prevent any more finalizers from executing during shutdown
-+            weakref_finalize._shutdown = True
-+            if reenable_gc:
-+                gc.enable()
-diff --git a/third_party/python/urllib3/urllib3/packages/six.py b/third_party/python/urllib3/urllib3/packages/six.py
-index 314424099f624..f099a3dcd28d2 100644
---- a/third_party/python/urllib3/urllib3/packages/six.py
-+++ b/third_party/python/urllib3/urllib3/packages/six.py
-@@ -1,4 +1,4 @@
--# Copyright (c) 2010-2019 Benjamin Peterson
-+# Copyright (c) 2010-2020 Benjamin Peterson
- #
- # Permission is hereby granted, free of charge, to any person obtaining a copy
- # of this software and associated documentation files (the "Software"), to deal
-@@ -29,7 +29,7 @@
- import types
- 
- __author__ = "Benjamin Peterson <benjamin@python.org>"
--__version__ = "1.12.0"
-+__version__ = "1.16.0"
- 
- 
- # Useful for very coarse version differentiation.
-@@ -71,6 +71,11 @@ def __len__(self):
-             MAXSIZE = int((1 << 63) - 1)
-         del X
- 
-+if PY34:
-+    from importlib.util import spec_from_loader
-+else:
-+    spec_from_loader = None
-+
- 
- def _add_doc(func, doc):
-     """Add documentation to a function."""
-@@ -182,6 +187,11 @@ def find_module(self, fullname, path=None):
-             return self
-         return None
- 
-+    def find_spec(self, fullname, path, target=None):
-+        if fullname in self.known_modules:
-+            return spec_from_loader(fullname, self)
-+        return None
-+
-     def __get_module(self, fullname):
-         try:
-             return self.known_modules[fullname]
-@@ -220,6 +230,12 @@ def get_code(self, fullname):
- 
-     get_source = get_code  # same as get_code
- 
-+    def create_module(self, spec):
-+        return self.load_module(spec.name)
-+
-+    def exec_module(self, module):
-+        pass
-+
- 
- _importer = _SixMetaPathImporter(__name__)
- 
-@@ -260,9 +276,19 @@ class _MovedItems(_LazyModule):
-     ),
-     MovedModule("builtins", "__builtin__"),
-     MovedModule("configparser", "ConfigParser"),
-+    MovedModule(
-+        "collections_abc",
-+        "collections",
-+        "collections.abc" if sys.version_info >= (3, 3) else "collections",
-+    ),
-     MovedModule("copyreg", "copy_reg"),
-     MovedModule("dbm_gnu", "gdbm", "dbm.gnu"),
--    MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"),
-+    MovedModule("dbm_ndbm", "dbm", "dbm.ndbm"),
-+    MovedModule(
-+        "_dummy_thread",
-+        "dummy_thread",
-+        "_dummy_thread" if sys.version_info < (3, 9) else "_thread",
-+    ),
-     MovedModule("http_cookiejar", "cookielib", "http.cookiejar"),
-     MovedModule("http_cookies", "Cookie", "http.cookies"),
-     MovedModule("html_entities", "htmlentitydefs", "html.entities"),
-@@ -307,7 +333,9 @@ class _MovedItems(_LazyModule):
- ]
- # Add windows specific modules.
- if sys.platform == "win32":
--    _moved_attributes += [MovedModule("winreg", "_winreg")]
-+    _moved_attributes += [
-+        MovedModule("winreg", "_winreg"),
-+    ]
- 
- for attr in _moved_attributes:
-     setattr(_MovedItems, attr.name, attr)
-@@ -476,7 +504,7 @@ class Module_six_moves_urllib_robotparser(_LazyModule):
- 
- 
- _urllib_robotparser_moved_attributes = [
--    MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser")
-+    MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"),
- ]
- for attr in _urllib_robotparser_moved_attributes:
-     setattr(Module_six_moves_urllib_robotparser, attr.name, attr)
-@@ -678,9 +706,11 @@ def u(s):
-     if sys.version_info[1] <= 1:
-         _assertRaisesRegex = "assertRaisesRegexp"
-         _assertRegex = "assertRegexpMatches"
-+        _assertNotRegex = "assertNotRegexpMatches"
-     else:
-         _assertRaisesRegex = "assertRaisesRegex"
-         _assertRegex = "assertRegex"
-+        _assertNotRegex = "assertNotRegex"
- else:
- 
-     def b(s):
-@@ -707,6 +737,7 @@ def indexbytes(buf, i):
-     _assertCountEqual = "assertItemsEqual"
-     _assertRaisesRegex = "assertRaisesRegexp"
-     _assertRegex = "assertRegexpMatches"
-+    _assertNotRegex = "assertNotRegexpMatches"
- _add_doc(b, """Byte literal""")
- _add_doc(u, """Text literal""")
- 
-@@ -723,6 +754,10 @@ def assertRegex(self, *args, **kwargs):
-     return getattr(self, _assertRegex)(*args, **kwargs)
- 
- 
-+def assertNotRegex(self, *args, **kwargs):
-+    return getattr(self, _assertNotRegex)(*args, **kwargs)
-+
-+
- if PY3:
-     exec_ = getattr(moves.builtins, "exec")
- 
-@@ -737,7 +772,6 @@ def reraise(tp, value, tb=None):
-             value = None
-             tb = None
- 
--
- else:
- 
-     def exec_(_code_, _globs_=None, _locs_=None):
-@@ -750,7 +784,7 @@ def exec_(_code_, _globs_=None, _locs_=None):
-             del frame
-         elif _locs_ is None:
-             _locs_ = _globs_
--        exec("""exec _code_ in _globs_, _locs_""")
-+        exec ("""exec _code_ in _globs_, _locs_""")
- 
-     exec_(
-         """def reraise(tp, value, tb=None):
-@@ -762,18 +796,7 @@ def exec_(_code_, _globs_=None, _locs_=None):
-     )
- 
- 
--if sys.version_info[:2] == (3, 2):
--    exec_(
--        """def raise_from(value, from_value):
--    try:
--        if from_value is None:
--            raise value
--        raise value from from_value
--    finally:
--        value = None
--"""
--    )
--elif sys.version_info[:2] > (3, 2):
-+if sys.version_info[:2] > (3,):
-     exec_(
-         """def raise_from(value, from_value):
-     try:
-@@ -863,19 +886,41 @@ def print_(*args, **kwargs):
- _add_doc(reraise, """Reraise an exception.""")
- 
- if sys.version_info[0:2] < (3, 4):
-+    # This does exactly the same what the :func:`py3:functools.update_wrapper`
-+    # function does on Python versions after 3.2. It sets the ``__wrapped__``
-+    # attribute on ``wrapper`` object and it doesn't raise an error if any of
-+    # the attributes mentioned in ``assigned`` and ``updated`` are missing on
-+    # ``wrapped`` object.
-+    def _update_wrapper(
-+        wrapper,
-+        wrapped,
-+        assigned=functools.WRAPPER_ASSIGNMENTS,
-+        updated=functools.WRAPPER_UPDATES,
-+    ):
-+        for attr in assigned:
-+            try:
-+                value = getattr(wrapped, attr)
-+            except AttributeError:
-+                continue
-+            else:
-+                setattr(wrapper, attr, value)
-+        for attr in updated:
-+            getattr(wrapper, attr).update(getattr(wrapped, attr, {}))
-+        wrapper.__wrapped__ = wrapped
-+        return wrapper
-+
-+    _update_wrapper.__doc__ = functools.update_wrapper.__doc__
- 
-     def wraps(
-         wrapped,
-         assigned=functools.WRAPPER_ASSIGNMENTS,
-         updated=functools.WRAPPER_UPDATES,
-     ):
--        def wrapper(f):
--            f = functools.wraps(wrapped, assigned, updated)(f)
--            f.__wrapped__ = wrapped
--            return f
--
--        return wrapper
-+        return functools.partial(
-+            _update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated
-+        )
- 
-+    wraps.__doc__ = functools.wraps.__doc__
- 
- else:
-     wraps = functools.wraps
-@@ -888,7 +933,15 @@ def with_metaclass(meta, *bases):
-     # the actual metaclass.
-     class metaclass(type):
-         def __new__(cls, name, this_bases, d):
--            return meta(name, bases, d)
-+            if sys.version_info[:2] >= (3, 7):
-+                # This version introduced PEP 560 that requires a bit
-+                # of extra care (we mimic what is done by __build_class__).
-+                resolved_bases = types.resolve_bases(bases)
-+                if resolved_bases is not bases:
-+                    d["__orig_bases__"] = bases
-+            else:
-+                resolved_bases = bases
-+            return meta(name, resolved_bases, d)
- 
-         @classmethod
-         def __prepare__(cls, name, this_bases):
-@@ -928,12 +981,11 @@ def ensure_binary(s, encoding="utf-8", errors="strict"):
-       - `str` -> encoded to `bytes`
-       - `bytes` -> `bytes`
-     """
-+    if isinstance(s, binary_type):
-+        return s
-     if isinstance(s, text_type):
-         return s.encode(encoding, errors)
--    elif isinstance(s, binary_type):
--        return s
--    else:
--        raise TypeError("not expecting type '%s'" % type(s))
-+    raise TypeError("not expecting type '%s'" % type(s))
- 
- 
- def ensure_str(s, encoding="utf-8", errors="strict"):
-@@ -947,12 +999,15 @@ def ensure_str(s, encoding="utf-8", errors="strict"):
-       - `str` -> `str`
-       - `bytes` -> decoded to `str`
-     """
--    if not isinstance(s, (text_type, binary_type)):
--        raise TypeError("not expecting type '%s'" % type(s))
-+    # Optimization: Fast return for the common case.
-+    if type(s) is str:
-+        return s
-     if PY2 and isinstance(s, text_type):
--        s = s.encode(encoding, errors)
-+        return s.encode(encoding, errors)
-     elif PY3 and isinstance(s, binary_type):
--        s = s.decode(encoding, errors)
-+        return s.decode(encoding, errors)
-+    elif not isinstance(s, (text_type, binary_type)):
-+        raise TypeError("not expecting type '%s'" % type(s))
-     return s
- 
- 
-@@ -977,7 +1032,7 @@ def ensure_text(s, encoding="utf-8", errors="strict"):
- 
- def python_2_unicode_compatible(klass):
-     """
--    A decorator that defines __unicode__ and __str__ methods under Python 2.
-+    A class decorator that defines __unicode__ and __str__ methods under Python 2.
-     Under Python 3 it does nothing.
- 
-     To support Python 2 and 3 with a single code base, define a __str__ method
-diff --git a/third_party/python/urllib3/urllib3/packages/ssl_match_hostname/__init__.py b/third_party/python/urllib3/urllib3/packages/ssl_match_hostname/__init__.py
-deleted file mode 100644
-index 6b12fd90aadec..0000000000000
---- a/third_party/python/urllib3/urllib3/packages/ssl_match_hostname/__init__.py
-+++ /dev/null
-@@ -1,22 +0,0 @@
--import sys
--
--try:
--    # Our match_hostname function is the same as 3.5's, so we only want to
--    # import the match_hostname function if it's at least that good.
--    if sys.version_info < (3, 5):
--        raise ImportError("Fallback to vendored code")
--
--    from ssl import CertificateError, match_hostname
--except ImportError:
--    try:
--        # Backport of the function from a pypi module
--        from backports.ssl_match_hostname import (  # type: ignore
--            CertificateError,
--            match_hostname,
--        )
--    except ImportError:
--        # Our vendored copy
--        from ._implementation import CertificateError, match_hostname  # type: ignore
--
--# Not needed, but documenting what we provide.
--__all__ = ("CertificateError", "match_hostname")
-diff --git a/third_party/python/urllib3/urllib3/poolmanager.py b/third_party/python/urllib3/urllib3/poolmanager.py
-index 3a31a285bf648..14b10daf3a962 100644
---- a/third_party/python/urllib3/urllib3/poolmanager.py
-+++ b/third_party/python/urllib3/urllib3/poolmanager.py
-@@ -34,6 +34,7 @@
-     "ca_cert_dir",
-     "ssl_context",
-     "key_password",
-+    "server_hostname",
- )
- 
- # All known keyword arguments that could be provided to the pool manager, its
-@@ -170,7 +171,7 @@ class PoolManager(RequestMethods):
-     def __init__(self, num_pools=10, headers=None, **connection_pool_kw):
-         RequestMethods.__init__(self, headers)
-         self.connection_pool_kw = connection_pool_kw
--        self.pools = RecentlyUsedContainer(num_pools, dispose_func=lambda p: p.close())
-+        self.pools = RecentlyUsedContainer(num_pools)
- 
-         # Locally set the pool classes and keys so other PoolManagers can
-         # override them.
-diff --git a/third_party/python/urllib3/urllib3/request.py b/third_party/python/urllib3/urllib3/request.py
-index 398386a5b9f61..3b4cf999225b8 100644
---- a/third_party/python/urllib3/urllib3/request.py
-+++ b/third_party/python/urllib3/urllib3/request.py
-@@ -1,6 +1,9 @@
- from __future__ import absolute_import
- 
-+import sys
-+
- from .filepost import encode_multipart_formdata
-+from .packages import six
- from .packages.six.moves.urllib.parse import urlencode
- 
- __all__ = ["RequestMethods"]
-@@ -168,3 +171,21 @@ def request_encode_body(
-         extra_kw.update(urlopen_kw)
- 
-         return self.urlopen(method, url, **extra_kw)
-+
-+
-+if not six.PY2:
-+
-+    class RequestModule(sys.modules[__name__].__class__):
-+        def __call__(self, *args, **kwargs):
-+            """
-+            If user tries to call this module directly urllib3 v2.x style raise an error to the user
-+            suggesting they may need urllib3 v2
-+            """
-+            raise TypeError(
-+                "'module' object is not callable\n"
-+                "urllib3.request() method is not supported in this release, "
-+                "upgrade to urllib3 v2 to use it\n"
-+                "see https://urllib3.readthedocs.io/en/stable/v2-migration-guide.html"
-+            )
-+
-+    sys.modules[__name__].__class__ = RequestModule
-diff --git a/third_party/python/urllib3/urllib3/response.py b/third_party/python/urllib3/urllib3/response.py
-index 38693f4fc6e33..0bd13d40b8ac7 100644
---- a/third_party/python/urllib3/urllib3/response.py
-+++ b/third_party/python/urllib3/urllib3/response.py
-@@ -2,16 +2,22 @@
- 
- import io
- import logging
-+import sys
-+import warnings
- import zlib
- from contextlib import contextmanager
- from socket import error as SocketError
- from socket import timeout as SocketTimeout
- 
- try:
--    import brotli
-+    try:
-+        import brotlicffi as brotli
-+    except ImportError:
-+        import brotli
- except ImportError:
-     brotli = None
- 
-+from . import util
- from ._collections import HTTPHeaderDict
- from .connection import BaseSSLError, HTTPException
- from .exceptions import (
-@@ -478,6 +484,54 @@ def _error_catcher(self):
-             if self._original_response and self._original_response.isclosed():
-                 self.release_conn()
- 
-+    def _fp_read(self, amt):
-+        """
-+        Read a response with the thought that reading the number of bytes
-+        larger than can fit in a 32-bit int at a time via SSL in some
-+        known cases leads to an overflow error that has to be prevented
-+        if `amt` or `self.length_remaining` indicate that a problem may
-+        happen.
-+
-+        The known cases:
-+          * 3.8 <= CPython < 3.9.7 because of a bug
-+            https://github.com/urllib3/urllib3/issues/2513#issuecomment-1152559900.
-+          * urllib3 injected with pyOpenSSL-backed SSL-support.
-+          * CPython < 3.10 only when `amt` does not fit 32-bit int.
-+        """
-+        assert self._fp
-+        c_int_max = 2 ** 31 - 1
-+        if (
-+            (
-+                (amt and amt > c_int_max)
-+                or (self.length_remaining and self.length_remaining > c_int_max)
-+            )
-+            and not util.IS_SECURETRANSPORT
-+            and (util.IS_PYOPENSSL or sys.version_info < (3, 10))
-+        ):
-+            buffer = io.BytesIO()
-+            # Besides `max_chunk_amt` being a maximum chunk size, it
-+            # affects memory overhead of reading a response by this
-+            # method in CPython.
-+            # `c_int_max` equal to 2 GiB - 1 byte is the actual maximum
-+            # chunk size that does not lead to an overflow error, but
-+            # 256 MiB is a compromise.
-+            max_chunk_amt = 2 ** 28
-+            while amt is None or amt != 0:
-+                if amt is not None:
-+                    chunk_amt = min(amt, max_chunk_amt)
-+                    amt -= chunk_amt
-+                else:
-+                    chunk_amt = max_chunk_amt
-+                data = self._fp.read(chunk_amt)
-+                if not data:
-+                    break
-+                buffer.write(data)
-+                del data  # to reduce peak memory usage by `max_chunk_amt`.
-+            return buffer.getvalue()
-+        else:
-+            # StringIO doesn't like amt=None
-+            return self._fp.read(amt) if amt is not None else self._fp.read()
-+
-     def read(self, amt=None, decode_content=None, cache_content=False):
-         """
-         Similar to :meth:`http.client.HTTPResponse.read`, but with two additional
-@@ -510,13 +564,11 @@ def read(self, amt=None, decode_content=None, cache_content=False):
-         fp_closed = getattr(self._fp, "closed", False)
- 
-         with self._error_catcher():
-+            data = self._fp_read(amt) if not fp_closed else b""
-             if amt is None:
--                # cStringIO doesn't like amt=None
--                data = self._fp.read() if not fp_closed else b""
-                 flush_decoder = True
-             else:
-                 cache_content = False
--                data = self._fp.read(amt) if not fp_closed else b""
-                 if (
-                     amt != 0 and not data
-                 ):  # Platform-specific: Buggy versions of Python.
-@@ -612,9 +664,21 @@ def from_httplib(ResponseCls, r, **response_kw):
- 
-     # Backwards-compatibility methods for http.client.HTTPResponse
-     def getheaders(self):
-+        warnings.warn(
-+            "HTTPResponse.getheaders() is deprecated and will be removed "
-+            "in urllib3 v2.1.0. Instead access HTTPResponse.headers directly.",
-+            category=DeprecationWarning,
-+            stacklevel=2,
-+        )
-         return self.headers
- 
-     def getheader(self, name, default=None):
-+        warnings.warn(
-+            "HTTPResponse.getheader() is deprecated and will be removed "
-+            "in urllib3 v2.1.0. Instead use HTTPResponse.headers.get(name, default).",
-+            category=DeprecationWarning,
-+            stacklevel=2,
-+        )
-         return self.headers.get(name, default)
- 
-     # Backwards compatibility for http.cookiejar
-diff --git a/third_party/python/urllib3/urllib3/util/connection.py b/third_party/python/urllib3/urllib3/util/connection.py
-index cd57455748be0..6af1138f260e4 100644
---- a/third_party/python/urllib3/urllib3/util/connection.py
-+++ b/third_party/python/urllib3/urllib3/util/connection.py
-@@ -2,9 +2,8 @@
- 
- import socket
- 
--from urllib3.exceptions import LocationParseError
--
- from ..contrib import _appengine_environ
-+from ..exceptions import LocationParseError
- from ..packages import six
- from .wait import NoWayToWaitForSocketError, wait_for_read
- 
-@@ -118,7 +117,7 @@ def allowed_gai_family():
- 
- 
- def _has_ipv6(host):
--    """ Returns True if the system can bind an IPv6 address. """
-+    """Returns True if the system can bind an IPv6 address."""
-     sock = None
-     has_ipv6 = False
- 
-diff --git a/third_party/python/urllib3/urllib3/util/proxy.py b/third_party/python/urllib3/urllib3/util/proxy.py
-index 34f884d5b314d..2199cc7b7f004 100644
---- a/third_party/python/urllib3/urllib3/util/proxy.py
-+++ b/third_party/python/urllib3/urllib3/util/proxy.py
-@@ -45,6 +45,7 @@ def create_proxy_ssl_context(
-         ssl_version=resolve_ssl_version(ssl_version),
-         cert_reqs=resolve_cert_reqs(cert_reqs),
-     )
-+
-     if (
-         not ca_certs
-         and not ca_cert_dir
-diff --git a/third_party/python/urllib3/urllib3/util/request.py b/third_party/python/urllib3/urllib3/util/request.py
-index 25103383ec7ab..b574b081e98a0 100644
---- a/third_party/python/urllib3/urllib3/util/request.py
-+++ b/third_party/python/urllib3/urllib3/util/request.py
-@@ -14,7 +14,10 @@
- 
- ACCEPT_ENCODING = "gzip,deflate"
- try:
--    import brotli as _unused_module_brotli  # noqa: F401
-+    try:
-+        import brotlicffi as _unused_module_brotli  # noqa: F401
-+    except ImportError:
-+        import brotli as _unused_module_brotli  # noqa: F401
- except ImportError:
-     pass
- else:
-diff --git a/third_party/python/urllib3/urllib3/util/retry.py b/third_party/python/urllib3/urllib3/util/retry.py
-index ee51f922f8452..60ef6c4f3f9d0 100644
---- a/third_party/python/urllib3/urllib3/util/retry.py
-+++ b/third_party/python/urllib3/urllib3/util/retry.py
-@@ -37,7 +37,7 @@ class _RetryMeta(type):
-     def DEFAULT_METHOD_WHITELIST(cls):
-         warnings.warn(
-             "Using 'Retry.DEFAULT_METHOD_WHITELIST' is deprecated and "
--            "will be removed in v2.0. Use 'Retry.DEFAULT_METHODS_ALLOWED' instead",
-+            "will be removed in v2.0. Use 'Retry.DEFAULT_ALLOWED_METHODS' instead",
-             DeprecationWarning,
-         )
-         return cls.DEFAULT_ALLOWED_METHODS
-@@ -69,6 +69,24 @@ def DEFAULT_REDIRECT_HEADERS_BLACKLIST(cls, value):
-         )
-         cls.DEFAULT_REMOVE_HEADERS_ON_REDIRECT = value
- 
-+    @property
-+    def BACKOFF_MAX(cls):
-+        warnings.warn(
-+            "Using 'Retry.BACKOFF_MAX' is deprecated and "
-+            "will be removed in v2.0. Use 'Retry.DEFAULT_BACKOFF_MAX' instead",
-+            DeprecationWarning,
-+        )
-+        return cls.DEFAULT_BACKOFF_MAX
-+
-+    @BACKOFF_MAX.setter
-+    def BACKOFF_MAX(cls, value):
-+        warnings.warn(
-+            "Using 'Retry.BACKOFF_MAX' is deprecated and "
-+            "will be removed in v2.0. Use 'Retry.DEFAULT_BACKOFF_MAX' instead",
-+            DeprecationWarning,
-+        )
-+        cls.DEFAULT_BACKOFF_MAX = value
-+
- 
- @six.add_metaclass(_RetryMeta)
- class Retry(object):
-@@ -181,7 +199,7 @@ class Retry(object):
- 
-         seconds. If the backoff_factor is 0.1, then :func:`.sleep` will sleep
-         for [0.0s, 0.2s, 0.4s, ...] between retries. It will never be longer
--        than :attr:`Retry.BACKOFF_MAX`.
-+        than :attr:`Retry.DEFAULT_BACKOFF_MAX`.
- 
-         By default, backoff is disabled (set to 0).
- 
-@@ -217,10 +235,10 @@ class Retry(object):
-     RETRY_AFTER_STATUS_CODES = frozenset([413, 429, 503])
- 
-     #: Default headers to be used for ``remove_headers_on_redirect``
--    DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset(["Authorization"])
-+    DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset(["Cookie", "Authorization"])
- 
-     #: Maximum backoff time.
--    BACKOFF_MAX = 120
-+    DEFAULT_BACKOFF_MAX = 120
- 
-     def __init__(
-         self,
-@@ -253,6 +271,7 @@ def __init__(
-                 "Using 'method_whitelist' with Retry is deprecated and "
-                 "will be removed in v2.0. Use 'allowed_methods' instead",
-                 DeprecationWarning,
-+                stacklevel=2,
-             )
-             allowed_methods = method_whitelist
-         if allowed_methods is _Default:
-@@ -320,7 +339,7 @@ def new(self, **kw):
- 
-     @classmethod
-     def from_int(cls, retries, redirect=True, default=None):
--        """ Backwards-compatibility for the old retries format."""
-+        """Backwards-compatibility for the old retries format."""
-         if retries is None:
-             retries = default if default is not None else cls.DEFAULT
- 
-@@ -347,7 +366,7 @@ def get_backoff_time(self):
-             return 0
- 
-         backoff_value = self.backoff_factor * (2 ** (consecutive_errors_len - 1))
--        return min(self.BACKOFF_MAX, backoff_value)
-+        return min(self.DEFAULT_BACKOFF_MAX, backoff_value)
- 
-     def parse_retry_after(self, retry_after):
-         # Whitespace: https://tools.ietf.org/html/rfc7230#section-3.2.4
-@@ -373,9 +392,9 @@ def parse_retry_after(self, retry_after):
-         return seconds
- 
-     def get_retry_after(self, response):
--        """ Get the value of Retry-After in seconds. """
-+        """Get the value of Retry-After in seconds."""
- 
--        retry_after = response.getheader("Retry-After")
-+        retry_after = response.headers.get("Retry-After")
- 
-         if retry_after is None:
-             return None
-@@ -467,7 +486,7 @@ def is_retry(self, method, status_code, has_retry_after=False):
-         )
- 
-     def is_exhausted(self):
--        """ Are we out of retries? """
-+        """Are we out of retries?"""
-         retry_counts = (
-             self.total,
-             self.connect,
-diff --git a/third_party/python/urllib3/urllib3/util/ssl_.py b/third_party/python/urllib3/urllib3/util/ssl_.py
-index 1cb5e7cdc1c0c..8f867812a5eb3 100644
---- a/third_party/python/urllib3/urllib3/util/ssl_.py
-+++ b/third_party/python/urllib3/urllib3/util/ssl_.py
-@@ -44,13 +44,21 @@ def _const_compare_digest_backport(a, b):
- 
- try:  # Test for SSL features
-     import ssl
--    from ssl import HAS_SNI  # Has SNI?
-     from ssl import CERT_REQUIRED, wrap_socket
-+except ImportError:
-+    pass
-+
-+try:
-+    from ssl import HAS_SNI  # Has SNI?
-+except ImportError:
-+    pass
- 
-+try:
-     from .ssltransport import SSLTransport
- except ImportError:
-     pass
- 
-+
- try:  # Platform-specific: Python 3.6
-     from ssl import PROTOCOL_TLS
- 
-@@ -63,6 +71,11 @@ def _const_compare_digest_backport(a, b):
-     except ImportError:
-         PROTOCOL_SSLv23 = PROTOCOL_TLS = 2
- 
-+try:
-+    from ssl import PROTOCOL_TLS_CLIENT
-+except ImportError:
-+    PROTOCOL_TLS_CLIENT = PROTOCOL_TLS
-+
- 
- try:
-     from ssl import OP_NO_COMPRESSION, OP_NO_SSLv2, OP_NO_SSLv3
-@@ -151,7 +164,7 @@ def wrap_socket(self, socket, server_hostname=None, server_side=False):
-                 "urllib3 from configuring SSL appropriately and may cause "
-                 "certain SSL connections to fail. You can upgrade to a newer "
-                 "version of Python to solve this. For more information, see "
--                "https://urllib3.readthedocs.io/en/latest/advanced-usage.html"
-+                "https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
-                 "#ssl-warnings",
-                 InsecurePlatformWarning,
-             )
-@@ -270,7 +283,11 @@ def create_urllib3_context(
-         Constructed SSLContext object with specified options
-     :rtype: SSLContext
-     """
--    context = SSLContext(ssl_version or PROTOCOL_TLS)
-+    # PROTOCOL_TLS is deprecated in Python 3.10
-+    if not ssl_version or ssl_version == PROTOCOL_TLS:
-+        ssl_version = PROTOCOL_TLS_CLIENT
-+
-+    context = SSLContext(ssl_version)
- 
-     context.set_ciphers(ciphers or DEFAULT_CIPHERS)
- 
-@@ -305,13 +322,25 @@ def create_urllib3_context(
-     ) is not None:
-         context.post_handshake_auth = True
- 
--    context.verify_mode = cert_reqs
--    if (
--        getattr(context, "check_hostname", None) is not None
--    ):  # Platform-specific: Python 3.2
--        # We do our own verification, including fingerprints and alternative
--        # hostnames. So disable it here
--        context.check_hostname = False
-+    def disable_check_hostname():
-+        if (
-+            getattr(context, "check_hostname", None) is not None
-+        ):  # Platform-specific: Python 3.2
-+            # We do our own verification, including fingerprints and alternative
-+            # hostnames. So disable it here
-+            context.check_hostname = False
-+
-+    # The order of the below lines setting verify_mode and check_hostname
-+    # matter due to safe-guards SSLContext has to prevent an SSLContext with
-+    # check_hostname=True, verify_mode=NONE/OPTIONAL. This is made even more
-+    # complex because we don't know whether PROTOCOL_TLS_CLIENT will be used
-+    # or not so we don't know the initial state of the freshly created SSLContext.
-+    if cert_reqs == ssl.CERT_REQUIRED:
-+        context.verify_mode = cert_reqs
-+        disable_check_hostname()
-+    else:
-+        disable_check_hostname()
-+        context.verify_mode = cert_reqs
- 
-     # Enable logging of TLS session keys via defacto standard environment variable
-     # 'SSLKEYLOGFILE', if the feature is available (Python 3.8+). Skip empty values.
-@@ -393,7 +422,7 @@ def ssl_wrap_socket(
-     try:
-         if hasattr(context, "set_alpn_protocols"):
-             context.set_alpn_protocols(ALPN_PROTOCOLS)
--    except NotImplementedError:
-+    except NotImplementedError:  # Defensive: in CI, we always have set_alpn_protocols
-         pass
- 
-     # If we detect server_hostname is an IP address then the SNI
-@@ -411,7 +440,7 @@ def ssl_wrap_socket(
-             "This may cause the server to present an incorrect TLS "
-             "certificate, which can cause validation failures. You can upgrade to "
-             "a newer version of Python to solve this. For more information, see "
--            "https://urllib3.readthedocs.io/en/latest/advanced-usage.html"
-+            "https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html"
-             "#ssl-warnings",
-             SNIMissingWarning,
-         )
-diff --git a/third_party/python/urllib3/urllib3/packages/ssl_match_hostname/_implementation.py b/third_party/python/urllib3/urllib3/util/ssl_match_hostname.py
-similarity index 92%
-rename from third_party/python/urllib3/urllib3/packages/ssl_match_hostname/_implementation.py
-rename to third_party/python/urllib3/urllib3/util/ssl_match_hostname.py
-index 689208d3c63f1..1dd950c489607 100644
---- a/third_party/python/urllib3/urllib3/packages/ssl_match_hostname/_implementation.py
-+++ b/third_party/python/urllib3/urllib3/util/ssl_match_hostname.py
-@@ -9,7 +9,7 @@
- # ipaddress has been backported to 2.6+ in pypi.  If it is installed on the
- # system, use it to handle IPAddress ServerAltnames (this was added in
- # python-3.5) otherwise only do DNS matching.  This allows
--# backports.ssl_match_hostname to continue to be used in Python 2.7.
-+# util.ssl_match_hostname to continue to be used in Python 2.7.
- try:
-     import ipaddress
- except ImportError:
-@@ -78,7 +78,8 @@ def _dnsname_match(dn, hostname, max_wildcards=1):
- 
- def _to_unicode(obj):
-     if isinstance(obj, str) and sys.version_info < (3,):
--        obj = unicode(obj, encoding="ascii", errors="strict")
-+        # ignored flake8 # F821 to support python 2.7 function
-+        obj = unicode(obj, encoding="ascii", errors="strict")  # noqa: F821
-     return obj
- 
- 
-@@ -111,11 +112,9 @@ def match_hostname(cert, hostname):
-     try:
-         # Divergence from upstream: ipaddress can't handle byte str
-         host_ip = ipaddress.ip_address(_to_unicode(hostname))
--    except ValueError:
--        # Not an IP address (common case)
--        host_ip = None
--    except UnicodeError:
--        # Divergence from upstream: Have to deal with ipaddress not taking
-+    except (UnicodeError, ValueError):
-+        # ValueError: Not an IP address (common case)
-+        # UnicodeError: Divergence from upstream: Have to deal with ipaddress not taking
-         # byte strings.  addresses should be all ascii, so we consider it not
-         # an ipaddress in this case
-         host_ip = None
-@@ -123,7 +122,7 @@ def match_hostname(cert, hostname):
-         # Divergence from upstream: Make ipaddress library optional
-         if ipaddress is None:
-             host_ip = None
--        else:
-+        else:  # Defensive
-             raise
-     dnsnames = []
-     san = cert.get("subjectAltName", ())
-diff --git a/third_party/python/urllib3/urllib3/util/ssltransport.py b/third_party/python/urllib3/urllib3/util/ssltransport.py
-index 1e41354f5d458..4a7105d17916a 100644
---- a/third_party/python/urllib3/urllib3/util/ssltransport.py
-+++ b/third_party/python/urllib3/urllib3/util/ssltransport.py
-@@ -2,8 +2,8 @@
- import socket
- import ssl
- 
--from urllib3.exceptions import ProxySchemeUnsupported
--from urllib3.packages import six
-+from ..exceptions import ProxySchemeUnsupported
-+from ..packages import six
- 
- SSL_BLOCKSIZE = 16384
- 
-@@ -193,7 +193,7 @@ def _wrap_ssl_read(self, len, buffer=None):
-                 raise
- 
-     def _ssl_io_loop(self, func, *args):
--        """ Performs an I/O loop between incoming/outgoing and the socket."""
-+        """Performs an I/O loop between incoming/outgoing and the socket."""
-         should_loop = True
-         ret = None
- 
-diff --git a/third_party/python/urllib3/urllib3/util/timeout.py b/third_party/python/urllib3/urllib3/util/timeout.py
-index ff69593b05b5e..78e18a6272482 100644
---- a/third_party/python/urllib3/urllib3/util/timeout.py
-+++ b/third_party/python/urllib3/urllib3/util/timeout.py
-@@ -2,9 +2,8 @@
- 
- import time
- 
--# The default socket timeout, used by httplib to indicate that no timeout was
--# specified by the user
--from socket import _GLOBAL_DEFAULT_TIMEOUT
-+# The default socket timeout, used by httplib to indicate that no timeout was; specified by the user
-+from socket import _GLOBAL_DEFAULT_TIMEOUT, getdefaulttimeout
- 
- from ..exceptions import TimeoutStateError
- 
-@@ -116,6 +115,10 @@ def __repr__(self):
-     # __str__ provided for backwards compatibility
-     __str__ = __repr__
- 
-+    @classmethod
-+    def resolve_default_timeout(cls, timeout):
-+        return getdefaulttimeout() if timeout is cls.DEFAULT_TIMEOUT else timeout
-+
-     @classmethod
-     def _validate_timeout(cls, value, name):
-         """Check that a timeout attribute is valid.
-diff --git a/third_party/python/urllib3/urllib3/util/url.py b/third_party/python/urllib3/urllib3/util/url.py
-index 6ff238fe3cbd0..e5682d3be4293 100644
---- a/third_party/python/urllib3/urllib3/util/url.py
-+++ b/third_party/python/urllib3/urllib3/util/url.py
-@@ -50,7 +50,7 @@
-     "(?:(?:%(hex)s:){0,6}%(hex)s)?::",
- ]
- 
--UNRESERVED_PAT = r"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._!\-~"
-+UNRESERVED_PAT = r"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._\-~"
- IPV6_PAT = "(?:" + "|".join([x % _subs for x in _variations]) + ")"
- ZONE_ID_PAT = "(?:%25|%)(?:[" + UNRESERVED_PAT + "]|%[a-fA-F0-9]{2})+"
- IPV6_ADDRZ_PAT = r"\[" + IPV6_PAT + r"(?:" + ZONE_ID_PAT + r")?\]"
-@@ -63,12 +63,12 @@
- BRACELESS_IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT[2:-2] + "$")
- ZONE_ID_RE = re.compile("(" + ZONE_ID_PAT + r")\]$")
- 
--SUBAUTHORITY_PAT = (u"^(?:(.*)@)?(%s|%s|%s)(?::([0-9]{0,5}))?$") % (
-+_HOST_PORT_PAT = ("^(%s|%s|%s)(?::0*?(|0|[1-9][0-9]{0,4}))?$") % (
-     REG_NAME_PAT,
-     IPV4_PAT,
-     IPV6_ADDRZ_PAT,
- )
--SUBAUTHORITY_RE = re.compile(SUBAUTHORITY_PAT, re.UNICODE | re.DOTALL)
-+_HOST_PORT_RE = re.compile(_HOST_PORT_PAT, re.UNICODE | re.DOTALL)
- 
- UNRESERVED_CHARS = set(
-     "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-~"
-@@ -279,6 +279,9 @@ def _normalize_host(host, scheme):
-         if scheme in NORMALIZABLE_SCHEMES:
-             is_ipv6 = IPV6_ADDRZ_RE.match(host)
-             if is_ipv6:
-+                # IPv6 hosts of the form 'a::b%zone' are encoded in a URL as
-+                # such per RFC 6874: 'a::b%25zone'. Unquote the ZoneID
-+                # separator as necessary to return a valid RFC 4007 scoped IP.
-                 match = ZONE_ID_RE.search(host)
-                 if match:
-                     start, end = match.span(1)
-@@ -300,7 +303,7 @@ def _normalize_host(host, scheme):
- 
- 
- def _idna_encode(name):
--    if name and any([ord(x) > 128 for x in name]):
-+    if name and any(ord(x) >= 128 for x in name):
-         try:
-             import idna
-         except ImportError:
-@@ -331,7 +334,7 @@ def parse_url(url):
-     """
-     Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is
-     performed to parse incomplete urls. Fields not provided will be None.
--    This parser is RFC 3986 compliant.
-+    This parser is RFC 3986 and RFC 6874 compliant.
- 
-     The parser logic and helper functions are based heavily on
-     work done in the ``rfc3986`` module.
-@@ -365,7 +368,9 @@ def parse_url(url):
-             scheme = scheme.lower()
- 
-         if authority:
--            auth, host, port = SUBAUTHORITY_RE.match(authority).groups()
-+            auth, _, host_port = authority.rpartition("@")
-+            auth = auth or None
-+            host, port = _HOST_PORT_RE.match(host_port).groups()
-             if auth and normalize_uri:
-                 auth = _encode_invalid_chars(auth, USERINFO_CHARS)
-             if port == "":
-diff --git a/third_party/python/urllib3/urllib3/util/wait.py b/third_party/python/urllib3/urllib3/util/wait.py
-index c280646c7be0b..21b4590b3dc9b 100644
---- a/third_party/python/urllib3/urllib3/util/wait.py
-+++ b/third_party/python/urllib3/urllib3/util/wait.py
-@@ -42,7 +42,6 @@ class NoWayToWaitForSocketError(Exception):
-     def _retry_on_intr(fn, timeout):
-         return fn(timeout)
- 
--
- else:
-     # Old and broken Pythons.
-     def _retry_on_intr(fn, timeout):
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.6.0.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.6.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb
index 4d9bb0e..4e36aca 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb
@@ -15,10 +15,9 @@
            file://0001-rewrite-cargo-host-linker-in-python3.patch  \
            file://musl-disable-stackwalk.patch \
            file://0001-add-arm-to-list-of-mozinline.patch \
-           file://py3.12.patch \
            file://armv5.patch \
            "
-SRC_URI[sha256sum] = "66d7e6e5129ac8e6fe83e24227dc7bb8dc42650bc53b21838e614de80d22bc66"
+SRC_URI[sha256sum] = "af8086f23efc8492d286671f6035b1a915de6f4ed5c7897e40be0e1cb6b895ea"
 
 S = "${WORKDIR}/firefox-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-jsauthority-Bump-mozjs-to-115.patch b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-jsauthority-Bump-mozjs-to-115.patch
deleted file mode 100644
index 163a03cf..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-jsauthority-Bump-mozjs-to-115.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2f0de2a831ab106fce210c1d65baef041256bc18 Mon Sep 17 00:00:00 2001
-From: Xi Ruoyao <xry111@xry111.site>
-Date: Mon, 18 Sep 2023 01:53:04 +0800
-Subject: [PATCH] jsauthority: Bump mozjs to 115
-
-No code change is needed!
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/polkit/polkit/-/commit/b340f50b7bb963863ede7c63f9a0b5c50c80c1e1]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 3b96562..92b68fd 100644
---- a/meson.build
-+++ b/meson.build
-@@ -153,7 +153,7 @@ if js_engine == 'duktape'
-   func = 'pthread_condattr_setclock'
-   config_h.set('HAVE_' + func.to_upper(), cc.has_function(func, prefix : '#include <pthread.h>'))
- elif js_engine == 'mozjs'
--  js_dep = dependency('mozjs-102')
-+  js_dep = dependency('mozjs-115')
- 
-   _system = host_machine.system().to_lower()
-   if _system.contains('freebsd')
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch
index 9a09727..4f008f7 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch
@@ -1,4 +1,4 @@
-From 046d853818f18bac5df4dfc007151e06fd64a5b3 Mon Sep 17 00:00:00 2001
+From 95148a804be66092564f81306a02f625d5b8a5d0 Mon Sep 17 00:00:00 2001
 From: Markus Volk <f_l_k@t-online.de>
 Date: Sun, 17 Sep 2023 23:26:59 +0200
 Subject: [PATCH] polkit.service.in: disable MemoryDenyWriteExecute
@@ -16,11 +16,11 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/data/polkit.service.in b/data/polkit.service.in
-index 2113ff7..42dfd90 100644
+index e6db351..4390cce 100644
 --- a/data/polkit.service.in
 +++ b/data/polkit.service.in
-@@ -14,7 +14,7 @@ Group=@polkitd_user@
- IPAddressDeny=any
+@@ -12,7 +12,7 @@ ExecStart=@libprivdir@/polkitd --no-debug
+ User=@polkitd_user@
  LimitMEMLOCK=0
  LockPersonality=yes
 -MemoryDenyWriteExecute=yes
@@ -28,6 +28,3 @@
  NoNewPrivileges=yes
  PrivateDevices=yes
  PrivateNetwork=yes
--- 
-2.41.0
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_123.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_124.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-extended/polkit/polkit_123.bb
rename to meta-openembedded/meta-oe/recipes-extended/polkit/polkit_124.bb
index df9d25e..3eb0d52 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_123.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_124.bb
@@ -6,11 +6,10 @@
 
 SRC_URI = "git://gitlab.freedesktop.org/polkit/polkit.git;protocol=https;branch=master \
            file://0001-polkit.service.in-disable-MemoryDenyWriteExecute.patch \
-           file://0001-jsauthority-Bump-mozjs-to-115.patch \
            "
 
 S = "${WORKDIR}/git"
-SRCREV = "fc8b07e71d99f88a29258cde99b913b44da1846d"
+SRCREV = "82f0924dc0eb23b9df68e88dbaf9e07c81940a5a"
 
 DEPENDS = "expat glib-2.0"
 
@@ -51,4 +50,12 @@
 	chown polkitd:root ${D}/${sysconfdir}/polkit-1/rules.d
 }
 
-FILES:${PN} += "${libdir}/polkit-1 ${nonarch_libdir}/polkit-1 ${datadir}"
+FILES:${PN} += " \
+	${libdir}/pam.d/polkit-1 \
+	${libdir}/sysusers.d \
+	${libdir}/polkit-1 \
+	${nonarch_libdir}/pam.d/polkit-1 \
+	${nonarch_libdir}/sysusers.d \
+	${nonarch_libdir}/polkit-1 \
+	${datadir} \
+"
diff --git a/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb b/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
index 6cdfef9..7b3d728 100644
--- a/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
+++ b/meta-openembedded/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
@@ -55,7 +55,7 @@
 }
 
 
-RDEPENDS:${PN}-ptest += "bash lsb-release make"
+RDEPENDS:${PN}-ptest += "bash file lsb-release make"
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
 RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb b/meta-openembedded/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb
index 339bb35..d53e1a2 100644
--- a/meta-openembedded/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb
+++ b/meta-openembedded/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb
@@ -9,8 +9,9 @@
     ${GO_IMPORT}/cmd/crucible \
     ${GO_IMPORT}/cmd/habtool \
 "
-SRCREV = "358b5e7adb7f101f870f2b42fe5371460a3cccb6"
+SRCREV = "dec27cd4e0e0db106c0a21d429c04ca8d36bbdd5"
 
+export GOPROXY = "https://proxy.golang.org,direct"
 # Workaround for network access issue during compile step.
 # This needs to be fixed in the recipes buildsystem so that
 # it can be accomplished during do_fetch task.
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_29.1.bb b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_29.1.bb
index ae35367..5cbe455 100644
--- a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_29.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_29.1.bb
@@ -18,6 +18,7 @@
 PACKAGECONFIG[gnutls] = "--with-gnutls=yes,--with-gnutls=no,gnutls"
 PACKAGECONFIG[kerberos] = "--with-kerberos=yes,--with-kerberos=no,krb5"
 PACKAGECONFIG[libgmp] = "--with-libgmp=yes,--with-libgmp=no,gmp"
+PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux"
 
 PACKAGECONFIG ??= "gnutls kerberos libgmp"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.1.bb
index 1e92d00..33df709 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.1.bb
@@ -24,7 +24,7 @@
     bash \
     ${@bb.utils.contains('PTEST_ENABLED', '1', 'shunit2', '', d)} \
 "
-RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim"
+RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim kernel-module-configfs"
 
 do_install_ptest:append() {
     install -m 0755 ${S}/tools/gpio-tools-test.bash ${D}${PTEST_PATH}/tests/
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 0000000..0ec5b5b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,74 @@
+From 1e1ba9ecc16895bf472eae345d44631b65629611 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 13 Apr 2017 07:22:23 -0500
+Subject: [PATCH 01/12] RH: fixup udev rules for redhat
+
+The multipath rules need to run after scsi_id is run. This means moving
+them after 60-persistent-storage.rules for redhat. Redhat also uses a
+different naming scheme for partitions than SuSE. Also, there are some
+false warnings that gcc throws because of the changed options. Fix these
+too.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.inc        | 2 +-
+ kpartx/kpartx.rules | 2 +-
+ multipath/Makefile  | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 5668e638..de89b21f 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -59,7 +59,7 @@ tmpfilesdir	:= $(systemd_prefix)lib/tmpfiles.d
+ modulesloaddir	:= $(systemd_prefix)lib/modules-load.d
+ libudevdir	:= $(systemd_prefix)lib/udev
+ udevrulesdir	:= $(libudevdir)/rules.d
+-bindir		:= $(exec_prefix)sbin
++bindir		:= $(exec_prefix)/usr/sbin
+ mandir		:= $(usr_prefix)share/man
+ LIB		:= $(if $(shell test -d /lib64 && echo 1),lib64,lib)
+ syslibdir	:= $(prefix)$(LIB)
+diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
+index 1969dee0..d2b28233 100644
+--- a/kpartx/kpartx.rules
++++ b/kpartx/kpartx.rules
+@@ -39,6 +39,6 @@ LABEL="mpath_kpartx_end"
+ GOTO="kpartx_end"
+ 
+ LABEL="run_kpartx"
+-RUN+="/sbin/kpartx -un -p -part /dev/$name"
++RUN+="/sbin/kpartx -un /dev/$name"
+ 
+ LABEL="kpartx_end"
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 67fb5e62..2ea9e528 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -27,7 +27,7 @@ install:
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 99-z-dm-mpath-late.rules $(DESTDIR)$(udevrulesdir)
+-	$(Q)$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/56-multipath.rules
++	$(Q)$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/62-multipath.rules
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(tmpfilesdir)
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 tmpfiles.conf $(DESTDIR)$(tmpfilesdir)/multipath.conf
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)/man8
+@@ -50,7 +50,7 @@ uninstall:
+ 	$(Q)$(RM) $(DESTDIR)$(udevrulesdir)/99-z-dm-mpath-late.rules
+ 	$(Q)$(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
+ 	$(Q)$(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+-	$(Q)$(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++	$(Q)$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ 	$(Q)$(RM) $(DESTDIR)$(mandir)/man8/$(EXEC).8
+ 	$(Q)$(RM) $(DESTDIR)$(mandir)/man5/$(EXEC).conf.5
+ 	$(Q)$(RM) $(DESTDIR)$(tmpfilesdir)/multipath.conf
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch
similarity index 61%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch
index c15444a..a24c827 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -1,7 +1,7 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17
-00:00:00 2001 From:Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 2 Jul
-2014 12:49:53 -0500 Subject: [PATCH] RH: Remove the property blacklist
-exception builtin
+From bb6db01cc19940bb5162c1cc0c9b5f8e4c209822 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 1 Mar 2024 10:34:06 +0800
+Subject: [PATCH 02/12] RH: Remove the property blacklist exception builtin
 
 Multipath set the default property blacklist exceptions to
 (ID_SCSI_VPD|ID_WWN).  This has the effect of blacklisting some internal
@@ -15,31 +15,36 @@
 
 Upsteam-Status: Pending
 
-Update patch to 0.8.2
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
 [OP: Rebase to 0.9.3]
 Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
-Upstream-Status: Pending
 
- libmultipath/blacklist.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/blacklist.c | 16 +++++-----------
+ 1 file changed, 5 insertions(+), 11 deletions(-)
 
 diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
-index 8d15d2ea..820b0d68 100644
+index 75100b20..4fdaca76 100644
 --- a/libmultipath/blacklist.c
 +++ b/libmultipath/blacklist.c
-@@ -198,9 +198,6 @@ setup_default_blist (struct config * conf)
+@@ -221,15 +221,6 @@ setup_default_blist (struct config * conf)
  	struct hwentry *hwe;
  	int i;
  
--	if (store_ble(conf->blist_devnode, "!^(sd[a-z]|dasd[a-z]|nvme[0-9])", ORIGIN_DEFAULT))
--		return 1;
--
+-	if (nvme_multipath_enabled()) {
+-		if (store_ble(conf->blist_devnode, "!^(sd[a-z]|dasd[a-z])",
+-			      ORIGIN_DEFAULT))
+-			return 1;
+-	} else {
+-		if (store_ble(conf->blist_devnode, "!^(sd[a-z]|dasd[a-z]|nvme[0-9])",
+-			      ORIGIN_DEFAULT))
+-			return 1;
+-	}
  	if (store_ble(conf->elist_property, "(SCSI_IDENT_|ID_WWN)", ORIGIN_DEFAULT))
  		return 1;
  
-@@ -435,8 +432,11 @@ filter_property(const struct config *conf, struct udev_device *udev,
+@@ -464,8 +455,11 @@ filter_property(const struct config *conf, struct udev_device *udev,
  			r = MATCH_NOTHING;
  	}
  
@@ -54,5 +59,5 @@
  
  static void free_ble(struct blentry *ble)
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch
similarity index 72%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch
index 840b000..54b3bdc 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch
@@ -1,10 +1,7 @@
-From 056fdaece0f1a3a5ca92e8c08912730faa89875d Mon Sep 17 00:00:00 2001
+From de8ee3480ec7479ed014c197a9d747403f6e0237 Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Fri, 23 Nov 2018 17:25:15 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 15
- Oct 2014 10:39:30 -0500 Subject: [PATCH] RH: don't start without a config
- file
+Subject: [PATCH 03/12] RH: don't start without a config file
 
 If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
 all devices when running multipath.  A completely blank configuration file
@@ -17,20 +14,21 @@
 
 Upstream-Status: Pending
 
-update this patch to new version
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
 [OP: Rebase to 0.9.3]
 Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- libmultipath/config.c         | 18 ++++++++++++++++++
- libmultipath/config.h         |  1 +
- multipath/multipath.rules.in  |  1 +
- multipathd/multipathd.8       |  2 ++
- multipathd/multipathd.service |  1 +
+ libmultipath/config.c            | 18 ++++++++++++++++++
+ libmultipath/config.h            |  1 +
+ multipath/multipath.rules.in     |  1 +
+ multipathd/multipathd.8.in       |  2 ++
+ multipathd/multipathd.service.in |  1 +
  5 files changed, 23 insertions(+)
 
 diff --git a/libmultipath/config.c b/libmultipath/config.c
-index 5c5c0726..31894810 100644
+index 83fa7369..8a3a8f37 100644
 --- a/libmultipath/config.c
 +++ b/libmultipath/config.c
 @@ -26,6 +26,7 @@
@@ -41,7 +39,7 @@
  
  /*
   * We don't support re-initialization after
-@@ -966,6 +967,23 @@ int _init_config (const char *file, struct config *conf)
+@@ -959,6 +960,23 @@ int _init_config (const char *file, struct config *conf)
  		}
  		factorize_hwtable(conf->hwtable, builtin_hwtable_size, file);
  		validate_pctable(conf->overrides, 0, file);
@@ -66,7 +64,7 @@
  
  	conf->processed_main_config = 1;
 diff --git a/libmultipath/config.h b/libmultipath/config.h
-index 87947469..0dc89c16 100644
+index 384193ab..158cebf0 100644
 --- a/libmultipath/config.h
 +++ b/libmultipath/config.h
 @@ -10,6 +10,7 @@
@@ -78,7 +76,7 @@
  enum devtypes {
  	DEV_NONE,
 diff --git a/multipath/multipath.rules.in b/multipath/multipath.rules.in
-index 8d3cf33a..5c4447a2 100644
+index 780bf852..2c518378 100644
 --- a/multipath/multipath.rules.in
 +++ b/multipath/multipath.rules.in
 @@ -9,6 +9,7 @@ IMPORT{cmdline}="nompath"
@@ -89,11 +87,11 @@
  
  ENV{DEVTYPE}!="partition", GOTO="test_dev"
  IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
-diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
-index bdf102eb..a16a0bd5 100644
---- a/multipathd/multipathd.8
-+++ b/multipathd/multipathd.8
-@@ -48,6 +48,8 @@ map regains its maximum performance and redundancy.
+diff --git a/multipathd/multipathd.8.in b/multipathd/multipathd.8.in
+index f1cab3ff..5ae21db1 100644
+--- a/multipathd/multipathd.8.in
++++ b/multipathd/multipathd.8.in
+@@ -49,6 +49,8 @@ map regains its maximum performance and redundancy.
  With the \fB-k\fR option, \fBmultipathd\fR acts as a client utility that
  sends commands to a running instance of the multipathd daemon (see
  \fBCOMMANDS\fR below).
@@ -102,18 +100,18 @@
  .
  .
  .\" ----------------------------------------------------------------------------
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index aec62dbb..ab7585de 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
+diff --git a/multipathd/multipathd.service.in b/multipathd/multipathd.service.in
+index 6d03ff71..0cd85102 100644
+--- a/multipathd/multipathd.service.in
++++ b/multipathd/multipathd.service.in
 @@ -5,6 +5,7 @@ Before=local-fs-pre.target blk-availability.service shutdown.target
- Wants=systemd-udevd-kernel.socket
- After=systemd-udevd-kernel.socket
+ Wants=systemd-udevd-kernel.socket @MODPROBE_UNIT@
+ After=systemd-udevd-kernel.socket @MODPROBE_UNIT@
  After=multipathd.socket systemd-remount-fs.service
 +ConditionPathExists=/etc/multipath.conf
  Before=initrd-cleanup.service
  DefaultDependencies=no
  Conflicts=shutdown.target
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch
new file mode 100644
index 0000000..91477a4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch
@@ -0,0 +1,55 @@
+From f1b74f21875d6d9f0a5ac3d67df40a28b167052a Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 26 Nov 2018 09:19:17 +0800
+Subject: [PATCH 04/12] RH: use rpm optflags if present
+
+Use the passed in optflags when compiling as an RPM, and keep the
+default flags as close as possible to the current fedora flags, while
+still being generic.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.inc | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index de89b21f..6ac632ff 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -95,7 +95,15 @@ SYSTEMD_LIBDEPS := $(if $(SYSTEMD),$(if $(shell test $(SYSTEMD) -gt 209 && echo
+ MODPROBE_UNIT := $(shell test "0$(SYSTEMD)" -lt 245 2>/dev/null || \
+ 			echo "modprobe@dm_multipath.service")
+ 
+-OPTFLAGS	:= -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
++ifndef RPM_OPT_FLAGS
++	OPTFLAGS	:= -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
++else
++	OPTFLAGS = $(RPM_OPT_FLAGS)
++endif
++OPTFLAGS       += -Wextra -Wstrict-prototypes -Wformat=0 -Werror=implicit-int \
++                  -Werror=implicit-function-declaration -Wno-sign-compare \
++                  -Wno-unused-parameter -Werror=cast-qual \
++                  -Werror=discarded-qualifiers
+ WARNFLAGS	:= -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
+ 		  -Werror=implicit-function-declaration -Werror=format-security \
+ 		  $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) $(W_URCU_TYPE_LIMITS)
+@@ -105,7 +113,7 @@ CPPFLAGS	:= $(FORTIFY_OPT) $(CPPFLAGS) $(D_URCU_VERSION) \
+ 		   -DRUNTIME_DIR=\"$(runtimedir)\" -DCONFIG_DIR=\"$(configdir)\" \
+ 		   -DDEFAULT_CONFIGFILE=\"$(configfile)\" -DSTATE_DIR=\"$(statedir)\" \
+ 		   -DEXTRAVERSION=\"$(EXTRAVERSION)\" -MMD -MP
+-CFLAGS		:= -std=gnu99 $(CFLAGS) $(OPTFLAGS) $(WARNFLAGS) -pipe
++CFLAGS		:= -std=gnu99 $(CFLAGS) $(OPTFLAGS) -pipe
+ BIN_CFLAGS	:= -fPIE -DPIE
+ LIB_CFLAGS	:= -fPIC
+ SHARED_FLAGS	:= -shared
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
index 471ff09..c608961 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
@@ -1,9 +1,7 @@
-From b0b4cca566e3e0c3a232b3754555c41d4e0c1273 Mon Sep 17 00:00:00 2001
+From 8f52504859704466667e042baf437c2b6272ffb9 Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Mon, 26 Nov 2018 09:55:12 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Thu, 16
- Oct 2014 15:49:01 -0500 Subject: [PATCH] RH: add mpathconf
+Subject: [PATCH 05/12] RH: add mpathconf
 
 mpathconf is a program (largely based on lvmcomf) to help users
 configure /etc/multipath.conf and enable or disable multipathing.  It
@@ -16,11 +14,11 @@
 
 Upstream-Status: Pending
 
-update this patch to new version
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
 [OP: Rebase to 0.9.3]
 Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  libmultipath/config.c |   1 +
  multipath/Makefile    |   4 +
@@ -31,10 +29,10 @@
  create mode 100644 multipath/mpathconf.8
 
 diff --git a/libmultipath/config.c b/libmultipath/config.c
-index 31894810..af59dd3c 100644
+index 8a3a8f37..a40b41ab 100644
 --- a/libmultipath/config.c
 +++ b/libmultipath/config.c
-@@ -969,6 +969,7 @@ int _init_config (const char *file, struct config *conf)
+@@ -962,6 +962,7 @@ int _init_config (const char *file, struct config *conf)
  		validate_pctable(conf->overrides, 0, file);
  	} else {
  		condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
@@ -43,36 +41,36 @@
  			conf->blist_devnode = vector_alloc();
  			if (!conf->blist_devnode) {
 diff --git a/multipath/Makefile b/multipath/Makefile
-index 8482de6a..780b1b73 100644
+index 2ea9e528..6b1fa09e 100644
 --- a/multipath/Makefile
 +++ b/multipath/Makefile
-@@ -21,6 +21,7 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
+@@ -24,6 +24,7 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
  install:
- 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- 	$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
-+	$(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
- 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- 	$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
- 	$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/62-multipath.rules
-@@ -32,6 +33,7 @@ install:
- 	$(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(man8dir)
- 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
- 	$(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(man5dir)
-+	$(INSTALL_PROGRAM) -m 644 mpathconf.8 $(DESTDIR)$(man8dir)
- ifneq ($(SCSI_DH_MODULES_PRELOAD),)
- 	$(INSTALL_PROGRAM) -m 644 scsi_dh.conf $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
- 	for _x in $(SCSI_DH_MODULES_PRELOAD); do echo "$$_x"; done \
-@@ -44,8 +46,10 @@ uninstall:
- 	$(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
- 	$(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
- 	$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
-+	$(RM) $(DESTDIR)$(bindir)/mpathconf
- 	$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8
- 	$(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5
-+	$(RM) $(DESTDIR)$(man8dir)/mpathconf.8
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ 	$(Q)$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
++	$(Q)$(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 99-z-dm-mpath-late.rules $(DESTDIR)$(udevrulesdir)
+@@ -34,6 +35,7 @@ install:
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)/man8
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)/man5
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(mandir)/man5
++	$(Q)$(INSTALL_PROGRAM) -m 644 mpathconf.8 $(DESTDIR)$(mandir)/man8
+ 	$(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(modulesloaddir)
+ ifeq ($(MODPROBE_UNIT),)
+ 	$(Q)$(INSTALL_PROGRAM) -m 644 modules-load.conf $(DESTDIR)$(modulesloaddir)/multipath.conf
+@@ -51,8 +53,10 @@ uninstall:
+ 	$(Q)$(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
+ 	$(Q)$(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+ 	$(Q)$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
++	$(Q)$(RM) $(DESTDIR)$(bindir)/mpathconf
+ 	$(Q)$(RM) $(DESTDIR)$(mandir)/man8/$(EXEC).8
+ 	$(Q)$(RM) $(DESTDIR)$(mandir)/man5/$(EXEC).conf.5
++	$(Q)$(RM) $(DESTDIR)$(mandir)/man8/mpathconf.8
+ 	$(Q)$(RM) $(DESTDIR)$(tmpfilesdir)/multipath.conf
  
  clean: dep_clean
- 	$(RM) core *.o $(EXEC) multipath.rules tmpfiles.conf
 diff --git a/multipath/mpathconf b/multipath/mpathconf
 new file mode 100644
 index 00000000..e8391347
@@ -651,5 +649,5 @@
 +.SH AUTHOR
 +Benjamin Marzinski <bmarzins@redhat.com>
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
index 17c36e8..8df7de3 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -1,14 +1,7 @@
-From 262de33671ede81e424344ea9125d9e546cf8612 Mon Sep 17 00:00:00 2001
+From f93248d8e3598ccdc42b6d639107917c9cda268c Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Thu, 26 Sep 2019 16:29:48 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep
-
-17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Fri,
-17
- Oct 2014 11:20:34 -0500 Subject: [PATCH] RH: add wwids from kernel
-cmdline
- mpath.wwids with -A
+Subject: [PATCH 06/12] RH: add wwids from kernel cmdline mpath.wwids with -A
 
 This patch adds another option to multipath, "-A", which reads
 /proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
@@ -23,21 +16,21 @@
 
 Upstream-Status: Pending
 
-Update this patch to new version 0.8.2
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
 [OP: Rebase to 0.9.3]
 Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  libmultipath/wwids.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
  libmultipath/wwids.h |  1 +
  2 files changed, 45 insertions(+)
 
 diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index 89bb60ca..bab9aa85 100644
+index 591cd09b..b01f1b85 100644
 --- a/libmultipath/wwids.c
 +++ b/libmultipath/wwids.c
-@@ -451,3 +451,47 @@ int unmark_failed_wwid(const char *wwid)
+@@ -439,3 +439,47 @@ int unmark_failed_wwid(const char *wwid)
  	print_failed_wwid_result("unmark_failed", wwid, r);
  	return r;
  }
@@ -98,5 +91,5 @@
  enum {
  	WWID_IS_NOT_FAILED = 0,
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch
similarity index 76%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch
index 22cb4be..c64b8ae 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch
@@ -1,7 +1,7 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17
-00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Mon, 6 Nov
-2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of
-failing
+From 49d0b0279f54ceb96878e8e72e828efbb84a534c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 1 Mar 2024 11:45:10 +0800
+Subject: [PATCH 07/12] RH: warn on invalid regex instead of failing
 
 multipath.conf used to allow "*" as a match everything regular expression,
 instead of requiring ".*". Instead of erroring when the old style
@@ -12,21 +12,21 @@
 
 Upstream-Status: Pending
 
-update this patch to 0.8.2
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
 [OP: Rebase to 0.9.3]
 [OP: adjusted FREE() -> free(), made set_regex_value() static]
 Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
- libmultipath/dict.c | 42 +++++++++++++++++++++++++++++++++++-------
- 1 file changed, 35 insertions(+), 7 deletions(-)
+ libmultipath/dict.c | 40 ++++++++++++++++++++++++++++++++++------
+ 1 file changed, 34 insertions(+), 6 deletions(-)
 
 diff --git a/libmultipath/dict.c b/libmultipath/dict.c
-index aa93fe43..55a22d32 100644
+index 5af036b7..e494419d 100644
 --- a/libmultipath/dict.c
 +++ b/libmultipath/dict.c
-@@ -155,6 +155,34 @@ set_str_noslash(vector strvec, void *ptr, const char *file, int line_nr)
+@@ -189,6 +189,34 @@ set_str_noslash(vector strvec, void *ptr, const char *file, int line_nr)
  	return 0;
  }
  
@@ -61,18 +61,7 @@
  static int
  set_yes_no(vector strvec, void *ptr, const char *file, int line_nr)
  {
-@@ -1679,8 +1707,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec,		\
- 									\
- 	if (!conf->option)						\
- 		return 1;						\
--									\
--	buff = set_value(strvec);					\
-+									\	
-+	buff = set_regex_value(strvec);					\
- 	if (!buff)							\
- 		return 1;						\
- 									\
-@@ -1700,7 +1728,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec, \
+@@ -1798,7 +1826,7 @@ ble_ ## option ## _handler (struct config *conf, vector strvec,		\
  	if (!conf->option)						\
  		return 1;						\
  									\
@@ -81,7 +70,16 @@
  	if (!buff)							\
  		return 1;						\
  									\
-@@ -1806,16 +1834,16 @@ device_handler(struct config *conf, vector strvec, const char *file,
+@@ -1818,7 +1846,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec, \
+ 	if (!conf->option)						\
+ 		return 1;						\
+ 									\
+-	buff = set_value(strvec);					\
++	buff = set_regex_value(strvec);					\
+ 	if (!buff)							\
+ 		return 1;						\
+ 									\
+@@ -1924,16 +1952,16 @@ device_handler(struct config *conf, vector strvec, const char *file,
  	return 0;
  }
  
@@ -101,7 +99,7 @@
 +declare_hw_handler(bl_product, set_regex)
  declare_hw_snprint(bl_product, print_str)
  
- declare_hw_handler(hwhandler, set_str)
+ declare_hw_arg_str_handler(hwhandler, 0)
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch
similarity index 70%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch
index ad03b8a..1fa1f3b 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch
@@ -1,10 +1,7 @@
-From 16900150e02e5b367a8b33621b393975ad011130 Mon Sep 17 00:00:00 2001
+From fcba3e0d4c8448a2510025acb255c7335413bf56 Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Mon, 26 Nov 2018 11:12:01 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Thu, 7 Jun
- 2018 17:43:52 -0500 Subject: [PATCH] RH: reset default find_mutipaths value
- to off
+Subject: [PATCH 08/12] RH: reset default find_mutipaths value to off
 
 Upstream has changed to default find_multipaths to "strict". For now
 Redhat will retain the previous default of "off".
@@ -13,18 +10,17 @@
 
 Upstream-Status: Pending
 
-Update this patch to new version
-
+Rebase to 0.9.8
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  libmultipath/defaults.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
-index 6576939..a2404b2 100644
+index 64b633f2..a06a8a41 100644
 --- a/libmultipath/defaults.h
 +++ b/libmultipath/defaults.h
-@@ -17,7 +17,7 @@
+@@ -23,7 +23,7 @@
  #define DEFAULT_NO_PATH_RETRY	NO_PATH_RETRY_UNDEF
  #define DEFAULT_VERBOSITY	2
  #define DEFAULT_REASSIGN_MAPS	0
@@ -34,5 +30,5 @@
  #define DEFAULT_DEV_LOSS_TMO	600
  #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
 -- 
-2.7.4
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch
new file mode 100644
index 0000000..041b79a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch
@@ -0,0 +1,40 @@
+From 7452549e572b1c40aefe25524bf4bbbf34c952e5 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 4 Jun 2019 11:39:39 +0800
+Subject: [PATCH 09/12] multipath-tools: modify create-config.mk for
+ cross-compilation
+
+Do not look for systemd info on the host, and allow us to pass in CFLAGS
+using the OPTFLAGS variable.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ create-config.mk | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/create-config.mk b/create-config.mk
+index 4d318b96..a65975ba 100644
+--- a/create-config.mk
++++ b/create-config.mk
+@@ -127,10 +127,6 @@ ifeq ($(ENABLE_DMEVENTS_POLL),0)
+ 	DEFINES += -DNO_DMEVENTS_POLL
+ endif
+ 
+-SYSTEMD := $(strip $(or $(shell $(PKG_CONFIG) --modversion libsystemd 2>/dev/null | awk '{print $$1}'), \
+-			$(shell systemctl --version 2>/dev/null | sed -n 's/systemd \([0-9]*\).*/\1/p')))
+-
+-
+ # $(call TEST_CC_OPTION,option,fallback)
+ # Test if the C compiler supports the option.
+ # Evaluates to "option" if yes, and "fallback" otherwise.
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch
new file mode 100644
index 0000000..b48720b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch
@@ -0,0 +1,72 @@
+From 5d2fa3c5975266a6c02214afa6254e6eeeb1baad Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 26 Nov 2018 11:17:41 +0800
+Subject: [PATCH 10/12] Subject: [PATCH] Always use devmapper
+
+Do not try to compute several _API_ make variables
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ create-config.mk | 36 ++++++++----------------------------
+ 1 file changed, 8 insertions(+), 28 deletions(-)
+
+diff --git a/create-config.mk b/create-config.mk
+index a65975ba..8ba592f4 100644
+--- a/create-config.mk
++++ b/create-config.mk
+@@ -79,34 +79,14 @@ URCU_VERSION = $(shell \
+ 
+ DEFINES :=
+ 
+-ifneq ($(call check_func,dm_task_no_flush,$(devmapper_incdir)/libdevmapper.h),0)
+-	DEFINES += LIBDM_API_FLUSH
+-endif
+-
+-ifneq ($(call check_func,dm_task_get_errno,$(devmapper_incdir)/libdevmapper.h),0)
+-	DEFINES += LIBDM_API_GET_ERRNO
+-endif
+-
+-ifneq ($(call check_func,dm_task_set_cookie,$(devmapper_incdir)/libdevmapper.h),0)
+-	DEFINES += LIBDM_API_COOKIE
+-endif
+-
+-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,$(libudev_incdir)/libudev.h),0)
+-	DEFINES += LIBUDEV_API_RECVBUF
+-endif
+-
+-ifneq ($(call check_func,dm_task_deferred_remove,$(devmapper_incdir)/libdevmapper.h),0)
+-	DEFINES += LIBDM_API_DEFERRED
+-endif
+-
+-ifneq ($(call check_func,dm_hold_control_dev,$(devmapper_incdir)/libdevmapper.h),0)
+-	DEFINES += LIBDM_API_HOLD_CONTROL
+-endif
+-
+-ifneq ($(call check_var,ELS_DTAG_LNK_INTEGRITY,$(kernel_incdir)/scsi/fc/fc_els.h),0)
+-	DEFINES += FPIN_EVENT_HANDLER
+-	FPIN_SUPPORT = 1
+-endif
++DEFINES += LIBDM_API_FLUSH
++DEFINES += LIBDM_API_GET_ERRNO
++DEFINES += LIBDM_API_COOKIE
++DEFINES += LIBUDEV_API_RECVBUF
++DEFINES += LIBDM_API_DEFERRED
++DEFINES += LIBDM_API_HOLD_CONTROL
++DEFINES += FPIN_EVENT_HANDLER
++FPIN_SUPPORT = 1
+ 
+ libmount_h := $(shell $(PKG_CONFIG) --variable=includedir mount)/libmount/libmount.h
+ ifneq ($(call check_func,mnt_unref_cache,$(libmount_h)),0)
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch
similarity index 81%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch
index bc07d75..f32d789 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch
@@ -1,7 +1,7 @@
-From 51f1f351262a31d94c10504e4d135526c6a7caeb Mon Sep 17 00:00:00 2001
+From 949070286692dfff89213792571da233fe82e440 Mon Sep 17 00:00:00 2001
 From: Wang Mingyu <wangmy@cn.fujitsu.com>
 Date: Sun, 10 May 2020 21:22:53 +0800
-Subject: [PATCH] fix bug of do_compile and do_install
+Subject: [PATCH 11/12] fix bug of do_compile and do_install
 
 when multiple processes make run in parallel,
 because of dependency error will occur.
@@ -12,16 +12,14 @@
 [OP: Drop dependencies that are already present in the 0.9.3 Makefile]
 Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
 ---
-Upstream-Status: Pending
-
  Makefile | 10 ++++++++++
  1 file changed, 10 insertions(+)
 
 diff --git a/Makefile b/Makefile
-index 27b4641f..f195b570 100644
+index 4df5f161..065249c2 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -79,6 +79,16 @@ libmpathpersist libmpathvalid multipath multipathd: libmultipath
+@@ -91,6 +91,16 @@ libmpathpersist libmpathvalid multipath multipathd: libmultipath
  libmultipath/prioritizers libmultipath/checkers libmultipath/foreign: libmultipath
  mpathpersist multipathd:  libmpathpersist
  
@@ -39,5 +37,5 @@
  	libmultipath/prioritizers.install \
  	libmultipath/foreign.install: libmultipath.install
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch
index 3b0a704..2f77494 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch
@@ -1,7 +1,7 @@
-From ee9f7b6e764be5668bc958f8bb97a46e5056d050 Mon Sep 17 00:00:00 2001
+From 7a46f43682641436464579d8bf76c382e71ea557 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 25 May 2020 23:22:55 -0700
-Subject: [PATCH] add explicit dependency on libraries
+Subject: [PATCH 12/12] add explicit dependency on libraries
 
 [snip]
 gcc/i686-overc-linux/10.1.0/ld: cannot find -lmpathpersist
@@ -24,10 +24,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/Makefile b/Makefile
-index f195b570..2d22881c 100644
+index 065249c2..0444c2ea 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -78,6 +78,7 @@ libmultipath: libmpathutil
+@@ -90,6 +90,7 @@ libmultipath: libmpathutil
  libmpathpersist libmpathvalid multipath multipathd: libmultipath
  libmultipath/prioritizers libmultipath/checkers libmultipath/foreign: libmultipath
  mpathpersist multipathd:  libmpathpersist
@@ -36,5 +36,5 @@
  DEPS_ON_MULTIPATH := \
  	multipath \
 -- 
-2.38.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
deleted file mode 100644
index 395f9a9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 9a941729d3c0d19d30d65e16b291c380e589eeb3 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 13 Apr 2017 07:22:23 -0500
-Subject: [PATCH] RH: fixup udev rules for redhat
-
-The multipath rules need to run after scsi_id is run. This means moving
-them after 60-persistent-storage.rules for redhat. Redhat also uses a
-different naming scheme for partitions than SuSE. Also, there are some
-false warnings that gcc throws because of the changed options. Fix these
-too.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Update patch to 0.8.0
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-[OP: Rebase to 0.9.3]
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
-Upstream-Status: Pending
-
- Makefile.inc        | 2 +-
- kpartx/kpartx.rules | 2 +-
- multipath/Makefile  | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 4d843ce5..57779fd8 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -81,7 +81,7 @@ endif
- prefix		=
- exec_prefix	= $(prefix)
- usr_prefix	= $(prefix)
--bindir		= $(exec_prefix)/sbin
-+bindir		= $(exec_prefix)/usr/sbin
- libudevdir	= $(prefix)/$(SYSTEMDPATH)/udev
- tmpfilesdir	= $(prefix)/$(SYSTEMDPATH)/tmpfiles.d
- udevrulesdir	= $(libudevdir)/rules.d
-diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
-index 1969dee0..d2b28233 100644
---- a/kpartx/kpartx.rules
-+++ b/kpartx/kpartx.rules
-@@ -39,6 +39,6 @@ LABEL="mpath_kpartx_end"
- GOTO="kpartx_end"
- 
- LABEL="run_kpartx"
--RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+RUN+="/sbin/kpartx -un /dev/$name"
- 
- LABEL="kpartx_end"
-diff --git a/multipath/Makefile b/multipath/Makefile
-index 116348e2..8482de6a 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -23,7 +23,7 @@ install:
- 	$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
- 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- 	$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
--	$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/56-multipath.rules
-+	$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/62-multipath.rules
- 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(modulesloaddir)
- 	$(INSTALL_PROGRAM) -m 644 modules-load.conf $(DESTDIR)$(modulesloaddir)/multipath.conf
- 	$(INSTALL_PROGRAM) -d $(DESTDIR)$(tmpfilesdir)
-@@ -43,7 +43,7 @@ uninstall:
- 	$(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
- 	$(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
- 	$(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
--	$(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+	$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- 	$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8
- 	$(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5
- 
--- 
-2.38.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
deleted file mode 100644
index e7b3e12..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From cc38276a5d3926fd96e58366e15ba887d7d02ed0 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 09:19:17 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep
-
-17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Wed,
-19
- Apr 2017 06:10:01 -0500 Subject: [PATCH] RH: use rpm optflags if
-present
-
-Use the passed in optflags when compiling as an RPM, and keep the
-default flags as close as possible to the current fedora flags, while
-still being generic.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-update this patch to new version
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-[OP: Rebase to 0.9.3]
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
- Makefile.inc | 28 ++++++++++++++++++----------
- 1 file changed, 18 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 57779fd8..34f2cc6d 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -140,20 +140,28 @@ FORTIFY_OPT := $(shell \
- 		echo "-D_FORTIFY_SOURCE=2"; \
- 	fi)
- 
--STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
--ERROR_DISCARDED_QUALIFIERS := $(call TEST_CC_OPTION,-Werror=discarded-qualifiers,)
--WNOCLOBBERED := $(call TEST_CC_OPTION,-Wno-clobbered -Wno-error=clobbered,)
--WFORMATOVERFLOW := $(call TEST_CC_OPTION,-Wformat-overflow=2,)
--
--OPTFLAGS	:= -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
--WARNFLAGS	:= -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
--		  -Werror=implicit-function-declaration -Werror=format-security \
--		  $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS)
-+ifndef RPM_OPT_FLAGS
-+       STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
-+       OPTFLAGS        = -O2 -g -pipe -Wall -Werror=format-security \
-+                         -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
-+                         $(STACKPROT) --param=ssp-buffer-size=4 \
-+                         -grecord-gcc-switches
-+       ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1)
-+               OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-+       endif
-+else
-+       OPTFLAGS = $(RPM_OPT_FLAGS)
-+endif
-+OPTFLAGS       += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \
-+                  -Werror=implicit-function-declaration -Wno-sign-compare \
-+                  -Wno-unused-parameter -Werror=cast-qual \
-+                  -Werror=discarded-qualifiers
-+
- CPPFLAGS	:= $(FORTIFY_OPT) \
- 		   -DBIN_DIR=\"$(bindir)\" -DMULTIPATH_DIR=\"$(plugindir)\" -DRUN_DIR=\"${RUN}\" \
- 		   -DRUNTIME_DIR=\"$(runtimedir)\" \
- 		   -DCONFIG_DIR=\"$(configdir)\" -DEXTRAVERSION=\"$(EXTRAVERSION)\" -MMD -MP
--CFLAGS		:= --std=gnu99 $(CFLAGS) $(OPTFLAGS) $(WARNFLAGS) -pipe
-+CFLAGS		:= --std=gnu99 $(CFLAGS) $(OPTFLAGS) -pipe
- BIN_CFLAGS	= -fPIE -DPIE
- LIB_CFLAGS	= -fPIC
- SHARED_FLAGS	= -shared
--- 
-2.38.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
deleted file mode 100644
index 952009b..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From d139474f2a6d87c1cd20dfbb916fe650bfcce968 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 4 Jun 2019 11:39:39 +0800
-Subject: [PATCH] multipath-tools: modify Makefile.inc for cross-compilation
-
-Do not look for systemd info on the host, and allow us to pass in CFLAGS
-using the OPTFLAGS variable.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Update for version 0.5.0-144-g770e6d0
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-Update for version 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-update for version 0.7.7
-
-remove change about CFLAGS part, since patch 0024 already have similar function.
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-update for version 0.8.1
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-[OP: Rebase to 0.9.3]
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
- Makefile.inc | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 34f2cc6d..ee6a4c9f 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -42,17 +42,6 @@ ifndef RUN
- 	endif
- endif
- 
--ifndef SYSTEMD
--	ifeq ($(shell $(PKGCONFIG) --modversion libsystemd >/dev/null 2>&1 && echo 1), 1)
--		SYSTEMD = $(shell $(PKGCONFIG) --modversion libsystemd | awk '{print $$1}')
--	else
--		ifeq ($(shell systemctl --version >/dev/null 2>&1 && echo 1), 1)
--			SYSTEMD = $(shell systemctl --version 2> /dev/null | \
--				sed -n 's/systemd \([0-9]*\).*/\1/p')
--		endif
--	endif
--endif
--
- ifndef SYSTEMDPATH
- 	SYSTEMDPATH=usr/lib
- endif
--- 
-2.38.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
deleted file mode 100644
index c2025ed..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From f20d7651a62efff818ebd0d1bc920f6f362c890d Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 11:17:41 +0800
-Subject: [PATCH] Subject: [PATCH] Always use devmapper
-
-Do not try to compute several _API_ make variables
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Rebase to 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Rebase to 0.7.7
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-Rebase to 0.7.9
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-[OP: Rebase to 0.9.3]
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
- libmultipath/Makefile | 34 +++++++---------------------------
- 1 file changed, 7 insertions(+), 27 deletions(-)
-
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index 3b60a525..72aca7ca 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -22,33 +22,13 @@ ifdef SYSTEMD
- 	endif
- endif
- 
--ifneq ($(call check_func,dm_task_no_flush,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
--	CPPFLAGS += -DLIBDM_API_FLUSH
--endif
--
--ifneq ($(call check_func,dm_task_get_errno,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
--	CPPFLAGS += -DLIBDM_API_GET_ERRNO
--endif
--
--ifneq ($(call check_func,dm_task_set_cookie,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
--	CPPFLAGS += -DLIBDM_API_COOKIE
--endif
--
--ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,$(LIBUDEV_INCDIR)/libudev.h),0)
--	CPPFLAGS += -DLIBUDEV_API_RECVBUF
--endif
--
--ifneq ($(call check_func,dm_task_deferred_remove,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
--	CPPFLAGS += -DLIBDM_API_DEFERRED
--endif
--
--ifneq ($(call check_func,dm_hold_control_dev,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
--	CPPFLAGS += -DLIBDM_API_HOLD_CONTROL
--endif
--
--ifneq ($(call check_var,ELS_DTAG_LNK_INTEGRITY,$(LINUX_HEADERS_INCDIR)/scsi/fc/fc_els.h),0)
--	CPPFLAGS += -DFPIN_EVENT_HANDLER
--endif
-+CPPFLAGS += -DLIBDM_API_FLUSH
-+CPPFLAGS += -DLIBDM_API_GET_ERRNO
-+CPPFLAGS += -DLIBDM_API_COOKIE
-+CPPFLAGS += -DLIBUDEV_API_RECVBUF
-+CPPFLAGS += -DLIBDM_API_DEFERRED
-+CPPFLAGS += -DLIBDM_API_HOLD_CONTROL
-+CPPFLAGS += -DFPIN_EVENT_HANDLER
- 
- # object files referencing MULTIPATH_DIR or CONFIG_DIR
- # they need to be recompiled for unit tests
--- 
-2.38.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
deleted file mode 100644
index 2d043c3..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 820d2ef3596189041da43d1139da8689336bb918 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 11:19:45 +0800
-Subject: [PATCH] Subject: [PATCH] Always use devmapper for kpartx
-
-Do not try to compute the LIBDM_API_COOKIE make variable
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Rebase to 0.7.1
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Rebase to 0.7.7
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-Rebase to 0.7.9
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-[OP: Rebase to 0.9.3]
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
- kpartx/Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index 742d3bcd..d886483d 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -9,9 +9,7 @@ LDFLAGS += $(BIN_LDFLAGS)
- 
- LIBDEPS += -ldevmapper
- 
--ifneq ($(call check_func,dm_task_set_cookie,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
--	CPPFLAGS += -DLIBDM_API_COOKIE
--endif
-+CPPFLAGS += -DLIBDM_API_COOKIE
- 
- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
- 	gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
--- 
-2.38.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch
deleted file mode 100644
index ec123b2..0000000
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 21a8680b7bd436867ac689a0b4b1b18a3359e208 Mon Sep 17 00:00:00 2001
-From: Geoff Parker <geoffrey.parker@arthrex.com>
-Date: Fri, 9 Oct 2020 17:48:47 +0000
-Subject: [PATCH] libdmmp/Makefile: replace perl with sed in install target to
- work with pseudo
-
-The multipath-tools libdmmp/Makefile install target uses 'perl -i' instead
-of 'sed -i' for string substitutions. The perl method creates a temporary file
-and overwrites the original which changes the inodes and corrupts the pseudo
-db. Changes to pseduo cause a build abort rather than allow possible bad
-ownership or permissions settings on the files. 'sed -i' is compatible
-with pseudo.
-
-Signed-off-by: Geoff Parker <geoffrey.parker@arthrex.com>
-[OP: Rebase to 0.9.3]
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
-Upstream-Status: Pending
-
- libdmmp/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libdmmp/Makefile b/libdmmp/Makefile
-index e4589250..34e06425 100644
---- a/libdmmp/Makefile
-+++ b/libdmmp/Makefile
-@@ -39,11 +39,11 @@ install:
- 	$(LN) $(LIBS) $(DESTDIR)$(usrlibdir)/$(DEVLIB)
- 	$(INSTALL_PROGRAM) -m 644 -D \
- 		$(PKGFILE).in $(DESTDIR)$(pkgconfdir)/$(PKGFILE)
--	perl -i -pe 's|__VERSION__|$(LIBDMMP_VERSION)|g' \
-+	sed -i 's|__VERSION__|$(LIBDMMP_VERSION)|g' \
- 		$(DESTDIR)$(pkgconfdir)/$(PKGFILE)
--	perl -i -pe 's|__LIBDIR__|$(usrlibdir)|g' \
-+	sed -i 's|__LIBDIR__|$(usrlibdir)|g' \
- 		$(DESTDIR)$(pkgconfdir)/$(PKGFILE)
--	perl -i -pe 's|__INCLUDEDIR__|$(includedir)|g' \
-+	sed -i 's|__INCLUDEDIR__|$(includedir)|g' \
- 		$(DESTDIR)$(pkgconfdir)/$(PKGFILE)
- 	$(INSTALL_PROGRAM) -d 755 $(DESTDIR)$(man3dir)
- 	$(INSTALL_PROGRAM) -m 644 -t $(DESTDIR)$(man3dir) docs/man/*.3
--- 
-2.38.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.bb
rename to meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb
index a7a9019..df95df6 100644
--- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb
@@ -32,25 +32,23 @@
 SRC_URI = "git://github.com/opensvc/multipath-tools.git;protocol=https;branch=master \
            file://multipathd.oe \
            file://multipath.conf.example \
-           file://0021-RH-fixup-udev-rules-for-redhat.patch \
-           file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \
-           file://0023-RH-don-t-start-without-a-config-file.patch \
-           file://0024-RH-use-rpm-optflags-if-present.patch \
-           file://0025-RH-add-mpathconf.patch \
-           file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
-           file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \
-           file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \
-           file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
-           file://0030-Always-use-devmapper.patch \
-           file://0031-Always-use-devmapper-for-kpartx.patch \
-           file://0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch \
-           file://0001-fix-bug-of-do_compile-and-do_install.patch \
-           file://0001-add-explicit-dependency-on-libraries.patch \
+           file://0001-RH-fixup-udev-rules-for-redhat.patch \
+           file://0002-RH-Remove-the-property-blacklist-exception-builtin.patch \
+           file://0003-RH-don-t-start-without-a-config-file.patch \
+           file://0004-RH-use-rpm-optflags-if-present.patch \
+           file://0005-RH-add-mpathconf.patch \
+           file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
+           file://0007-RH-warn-on-invalid-regex-instead-of-failing.patch \
+           file://0008-RH-reset-default-find_mutipaths-value-to-off.patch \
+           file://0009-multipath-tools-modify-create-config.mk-for-cross-co.patch \
+           file://0010-Subject-PATCH-Always-use-devmapper.patch \
+           file://0011-fix-bug-of-do_compile-and-do_install.patch \
+           file://0012-add-explicit-dependency-on-libraries.patch \
            "
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
 
-SRCREV = "1332947447133fdf26246012b836868a3d974f0e"
+SRCREV = "3daacfdfd110b24a3a7d5a276dcf8512b7039199"
 
 S = "${WORKDIR}/git"
 
@@ -103,6 +101,7 @@
     ${D}${sysconfdir}/multipath.conf.example
 }
 
+FILES:${PN} += "${systemd_system_unitdir}"
 FILES:${PN}-dbg += "${base_libdir}/multipath/.debug"
 
 PACKAGES =+ "${PN}-libs"
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.16.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.6.7.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.16.bb
rename to meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.6.7.bb
index 8d13a4d..e807fde 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.16.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.6.7.bb
@@ -21,7 +21,7 @@
     file://0001-build-top.mk-unset-STRIP_OPTS.patch \
 "
 
-SRC_URI[sha256sum] = "546ba591822e8bb0e467d40c4d4a30f89d937c3a507fe83a578f582f6a211327"
+SRC_URI[sha256sum] = "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930"
 
 DEPENDS = "util-linux groff-native"
 
@@ -62,7 +62,7 @@
 # The backend must be set by the configuration.  This controls the
 # required database.
 #
-# Backends="asyncmeta dnssrv ldap mdb meta ndb null passwd perl relay sock sql wt"
+# Backends="asyncmeta dnssrv ldap mdb meta null passwd perl relay sock sql wt"
 #
 # Note that multiple backends can be built.  The ldbm backend requires a
 # build-time choice of database API. To use the gdbm (or other) API the 
@@ -85,9 +85,6 @@
 #--enable-meta         enable metadirectory backend no|yes|mod no
 PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
 
-#--enable-ndb          enable MySQL NDB Cluster backend no|yes|mod [no]
-PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
-
 #--enable-null         enable null backend no|yes|mod no
 PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
 
@@ -122,7 +119,7 @@
 
 #--enable-proxycache   Proxy Cache overlay no|yes|mod no
 PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
-FILES:${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
+FILES:${PN}-overlay-proxycache = "${md}/pcache.so.*"
 PACKAGES += "${PN}-overlay-proxycache"
 
 # Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
@@ -215,7 +212,7 @@
 python populate_packages:prepend () {
     backend_dir    = d.expand('${libexecdir}/openldap')
     do_split_packages(d, backend_dir, r'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
-    do_split_packages(d, backend_dir, r'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+    do_split_packages(d, backend_dir, r'back_([a-z]*)\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
 
     metapkg = "${PN}-backends"
     d.setVar('ALLOW_EMPTY:' + metapkg, "1")
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
rename to meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb
index 77a5e67..4cc5d84 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb
@@ -10,10 +10,10 @@
 HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
 
 LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=71d15c2fb22f43e1a380f3f799ebde30"
+LIC_FILES_CHKSUM = "file://COPYING;md5=924958cefc9f7de3e0b818832b8a1cec"
 
 # util-linux added to get libuuid
-DEPENDS = "libpcre flex glib-2.0 openssl util-linux bison-native"
+DEPENDS = "libpcre flex glib-2.0 openssl util-linux bison-native curl"
 
 SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
            file://syslog-ng.conf.systemd \
@@ -26,7 +26,7 @@
 "
 SRC_URI:append:powerpc64le = " file://0001-plugin.c-workaround-powerpc64le-segfaults-error.patch"
 
-SRC_URI[sha256sum] = "c16eafe447191c079f471846182876b7919d3d789af8c1f9fe55ab14521ceb2c"
+SRC_URI[sha256sum] = "b69e3360dfb96a754a4e1cbead4daef37128b1152a23572356db4ab64a475d4f"
 
 UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
 
diff --git a/meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.14.0.bb b/meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.14.0.bb
index 8c75f93..1b05f3d 100644
--- a/meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.14.0.bb
+++ b/meta-openembedded/meta-oe/recipes-test/googletest/googletest_1.14.0.bb
@@ -10,11 +10,17 @@
 SRCREV = "f8d7d77c06936315286eb55f8de22cd23c188571"
 SRC_URI = "git://github.com/google/googletest.git;branch=main;protocol=https"
 
-inherit cmake
+inherit cmake pkgconfig
+
+# allow for shared libraries, but do not default to them
+#
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
+
 
 ALLOW_EMPTY:${PN} = "1"
 ALLOW_EMPTY:${PN}-dbg = "1"
 
+ALLOW_EMPTY:${PN}-staticdev = "1"
 RDEPENDS:${PN}-dev += "${PN}-staticdev"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-test/syzkaller/syzkaller_git.bb b/meta-openembedded/meta-oe/recipes-test/syzkaller/syzkaller_git.bb
index 2adc06a..b43207f 100644
--- a/meta-openembedded/meta-oe/recipes-test/syzkaller/syzkaller_git.bb
+++ b/meta-openembedded/meta-oe/recipes-test/syzkaller/syzkaller_git.bb
@@ -10,7 +10,13 @@
            file://0001-sys-targets-targets.go-allow-users-to-override-hardc.patch;patchdir=src/${GO_IMPORT} \
            file://0001-executor-Include-missing-linux-falloc.h.patch;patchdir=src/${GO_IMPORT} \
            "
-SRCREV = "6d01f20890edf11b99bb54573025b11c1acd2d52"
+SRCREV = "25905f5d0a2a7883bd33491997556193582c6059"
+
+export GOPROXY = "https://proxy.golang.org,direct"
+# Workaround for network access issue during compile step.
+# This needs to be fixed in the recipes buildsystem so that
+# it can be accomplished during do_fetch task.
+do_compile[network] = "1"
 
 COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux"
 
@@ -26,6 +32,8 @@
 
 CGO_ENABLED = "1"
 
+LDFLAGS:append:class-target = "${@bb.utils.contains_any("TC_CXX_RUNTIME", "llvm android", " -lc++", " -lstdc++", d)}"
+
 DEPENDS:class-native += "qemu-system-native"
 
 do_compile:class-native() {
@@ -46,7 +54,7 @@
     unset GOOS
     unset GOARCH
 
-    oe_runmake GO="${GO}" CC="${CXX}" CFLAGS="${CXXFLAGS} ${LDFLAGS}" REV=${SRCREV} target
+    oe_runmake GO="${GO}" CFLAGS="${CXXFLAGS} ${LDFLAGS}" REV=${SRCREV} target
 }
 
 do_install:class-native() {
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 2289448..5d9eb0f 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
@@ -17,7 +17,9 @@
     python3-click \
     python3-dominate \
     python3-execnet \
+    python3-freezegun \
     python3-geojson \
+    python3-gpiod \
     python3-gunicorn \
     python3-html2text \
     python3-inflection \
@@ -29,6 +31,7 @@
     python3-jsmin \
     python3-msgpack \
     python3-multidict \
+    python3-netaddr \
     python3-ordered-set \
     python3-parse \
     python3-parse-type \
@@ -64,13 +67,17 @@
     python3-u-msgpack-python \
     python3-unidiff \
     python3-uritemplate \
+    python3-wrapt \
+    python3-xlrd \
     python3-xmltodict \
     python3-xxhash \
     python3-yarl \
 "
 
 PTESTS_SLOW_META_PYTHON = "\
+    python3-arrow \
     python3-lz4 \
+    python3-marshmallow \
     python3-yappi \
 "
 
@@ -78,11 +85,9 @@
     python3-betamax \
     python3-dnspython \
     python3-fastjsonschema \
-    python3-gpiod \
     python3-pillow \
     python3-pint \
     python3-pyzmq \
     python3-scrypt \
     python3-whoosh \
-    python3-xlrd \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb
index 0ca4834..edad28e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb
@@ -8,5 +8,5 @@
 
 inherit pypi python_poetry_core
 
-BBCLASSSEXTEND = "native nativesdk"
+BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb
index 90ba5de..c1b7c1a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb
@@ -1,13 +1,35 @@
 SUMMARY = "Better dates and times for Python"
-HOMEPAGE = "https://github.com/crsmithdev/arrow"
+HOMEPAGE = "https://github.com/arrow-py/arrow"
 SECTION = "devel/python"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=14a2e29a9d542fb9052d75344d67619d"
 
 SRC_URI[sha256sum] = "d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"
 
-inherit setuptools3 pypi
+inherit pypi python_flit_core ptest
+
+SRC_URI += " \
+    file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    python3-dateutil-zoneinfo \
+    python3-pytest \
+    python3-pytest-mock \
+    python3-pytz \
+    python3-simplejson \
+    python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
 
 RDEPENDS:${PN} += " \
-        python3-dateutil \
-        "
+    python3-compression \
+    python3-dateutil \
+    python3-dateutil-zoneinfo \
+    python3-json \
+    python3-types-python-dateutil \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch
index 7adcb68..52745a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch
@@ -1,7 +1,7 @@
-From 0e0b63ae80df5d7849b2e1c5ab9a668e8378b5e8 Mon Sep 17 00:00:00 2001
+From e5aa66b1af2d49f159c4daefc598f96744ee988d Mon Sep 17 00:00:00 2001
 From: Zhixiong Chi <zhixiong.chi@windriver.com>
-Date: Tue, 28 Mar 2023 06:05:45 +0000
-Subject: [PATCH] Drop ptests fixtures and recorde_modes
+Date: Thu, 29 Feb 2024 12:31:58 -0800
+Subject: [PATCH] [PATCH] Drop ptests fixtures and recorde_modes
 
 The usage of fixture in test_fixtures has been deprecated.
 See https://docs.pytest.org/en/stable/explanation/fixtures.html and
@@ -12,14 +12,15 @@
 diff for each request.
 It leads to ptest failure, so drop it now until we find the solution.
 
-Upstream-Status: Inappropriate [oe specific]
+Upstream-Status: Inappropriate [OE-Specific]
 
 Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  tests/integration/test_fixtures.py     |  60 -----------
- tests/integration/test_record_modes.py | 132 -------------------------
- tests/unit/test_fixtures.py            |  94 ------------------
- 3 files changed, 286 deletions(-)
+ tests/integration/test_record_modes.py | 141 -------------------------
+ tests/unit/test_fixtures.py            |  94 -----------------
+ 3 files changed, 295 deletions(-)
  delete mode 100644 tests/integration/test_fixtures.py
  delete mode 100644 tests/integration/test_record_modes.py
  delete mode 100644 tests/unit/test_fixtures.py
@@ -92,10 +93,12 @@
 -    assert True
 diff --git a/tests/integration/test_record_modes.py b/tests/integration/test_record_modes.py
 deleted file mode 100644
-index 58c8846..0000000
+index 988b851..0000000
 --- a/tests/integration/test_record_modes.py
 +++ /dev/null
-@@ -1,132 +0,0 @@
+@@ -1,141 +0,0 @@
+-import re
+-
 -from betamax import Betamax, BetamaxError
 -
 -from tests.integration.helper import IntegrationHelper
@@ -137,8 +140,15 @@
 -            # this test to succeed.
 -            # NOTE(hroncok): httpbin.org added X-Processed-Time header that
 -            # can possibly differ (and often does)
+-            r0_content = r0.content.decode(encoding='utf-8', errors='strict')
+-            r1_content = r1.content.decode(encoding='utf-8', errors='strict')
+-            r0_content = re.sub('"X-Amzn-Trace-Id": "[^"]+"', '"X-Amzn-Trace-Id": ""', r0_content)
+-            r1_content = re.sub('"X-Amzn-Trace-Id": "[^"]+"', '"X-Amzn-Trace-Id": ""', r1_content)
+-            # NOTE(jhatler): httpbin.org added "X-Amzn-Trace-Id" to their
+-            # response, which is a unique ID that will differ between requests.
+-            # We remove it from the response body before comparing.
 -            assert r0_headers == r1_headers
--            assert r0.content == r1.content
+-            assert r0_content == r1_content
 -
 -
 -class TestRecordNone(IntegrationHelper):
@@ -230,7 +240,7 @@
 -            assert len(cassette.interactions) == 5
 diff --git a/tests/unit/test_fixtures.py b/tests/unit/test_fixtures.py
 deleted file mode 100644
-index 387d9ce..0000000
+index 41f33eb..0000000
 --- a/tests/unit/test_fixtures.py
 +++ /dev/null
 @@ -1,94 +0,0 @@
@@ -263,9 +273,9 @@
 -        # Mock a pytest request object
 -        request = mock.MagicMock()
 -        request.cls = request.module = None
--        request.function.__name__ = 'test'
+-        request.node.name = request.function.__name__ = 'test'
 -
--        pytest_fixture.betamax_recorder(request)
+-        pytest_fixture._betamax_recorder(request)
 -        assert request.addfinalizer.called is True
 -        request.addfinalizer.assert_called_once_with(self.mocked_betamax.stop)
 -
@@ -273,9 +283,9 @@
 -        # Mock a pytest request object
 -        request = mock.MagicMock()
 -        request.cls = request.module = None
--        request.function.__name__ = 'test'
+-        request.node.name = request.function.__name__ = 'test'
 -
--        pytest_fixture.betamax_recorder(request)
+-        pytest_fixture._betamax_recorder(request)
 -        self.mocked_betamax.start.assert_called_once_with()
 -
 -
@@ -329,5 +339,5 @@
 -
 -        recorder.stop.assert_called_once_with()
 -- 
-2.35.5
+2.44.0
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb
index 468a107..a045468 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb
@@ -7,9 +7,7 @@
         file://run-ptest \
         file://0001-Drop-ptests-fixtures-and-recorde_modes.patch \
 "
-
-SRC_URI[md5sum] = "b8182d43a200fc126a3bf7555626f964"
-SRC_URI[sha256sum] = "5bf004ceffccae881213fb722f34517166b84a34919b92ffc14d1dbd050b71c2"
+SRC_URI[sha256sum] = "82316e1679bc6879e3c83318d016b54b7c9225ff08c4462de4813e22038d5f94"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
index c8e8a45..bcb68d7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause & Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
 
-SRC_URI[sha256sum] = "0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"
+SRC_URI[sha256sum] = "78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709"
 
 PYPI_PACKAGE = "python-dateutil"
 PIP_INSTALL_PACKAGE = "python_dateutil"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
index 6b74f72..b2e969c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
@@ -27,6 +27,7 @@
     python3-pytest \
     python3-pytest-benchmark \
     python3-pytest-cache \
+    python3-statistics \
     python3-unittest-automake-output \
 "
 RDEPENDS:${PN} += "\
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-freezegun/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-freezegun/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-freezegun/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb
new file mode 100644
index 0000000..15c0bf0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "FreezeGun is a library that allows your Python tests to travel through time by mocking the datetime module."
+HOMEPAGE = "https://github.com/spulec/freezegun"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=acf1d209bb6eddae4cbe6ffd6a0144fe"
+
+SRC_URI[sha256sum] = "10939b0ba0ff5adaecf3b06a5c2f73071d9678e507c5eaedb23c761d56ac774b"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-pytest \
+        python3-sqlite3 \
+        python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} = "\
+        python3-asyncio \
+        python3-dateutil \
+        python3-unittest \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
index 5799db4..4524cca 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.28.1.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "3cfc1b6e4e64797584fb53fc9bd0b7afa9b7c0dba2004fa7dcc9349e58cc3195"
+SRC_URI[sha256sum] = "34fc3046c257cedcf1622fc4b31fc2be7923d9b4d44973d481125ecc50d83885"
 
 RDEPENDS:${PN} += "\
     python3-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb
index 0dbb38d..d8c8628 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb
@@ -24,6 +24,7 @@
     libgpiod-ptest \
     python3-setuptools \
 "
+RRECOMMENDS:${PN}-ptest += "kernel-module-configfs"
 
 export LINK_SYSTEM_LIBGPIOD = "1"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.20.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.20.2.bb
deleted file mode 100644
index c08aec5..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.20.2.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Simplified object serialization in python"
-DESCRIPTION = "Marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes."
-HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "\
-                    file://LICENSE;md5=653847350fed2e0e7b02791a35b98d59 \
-                    file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb"
-
-SRC_URI[sha256sum] = "4c1daff273513dc5eb24b219a8035559dc573c8f322558ef85f5438ddd1236dd"
-
-inherit setuptools3 pypi
-
-PIP_INSTALL_PACKAGE = "marshmallow"
-
-RDEPENDS:${PN} += " \
-	python3-core \
-	python3-datetime \
-	python3-netclient \
-	python3-numbers \
-	python3-json \
-	python3-pprint \
-	python3-packaging \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
new file mode 100644
index 0000000..5a0a79a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Simplified object serialization in python"
+DESCRIPTION = "Marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes."
+HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "\
+                    file://LICENSE;md5=27586b20700d7544c06933afe56f7df4 \
+                    file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb"
+
+SRC_URI[sha256sum] = "4e65e9e0d80fc9e609574b9983cf32579f305c718afb30d7233ab818571768c3"
+
+inherit python_flit_core pypi ptest
+
+PIP_INSTALL_PACKAGE = "marshmallow"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+        python3-pytest \
+        python3-pytz \
+        python3-simplejson \
+        python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        rm -rf ${S}/tests/mypy_test_cases
+        cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+        python3-compression \
+        python3-datetime \
+        python3-email \
+        python3-json \
+        python3-numbers \
+        python3-pprint \
+        python3-packaging \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.1.bb
deleted file mode 100644
index ce16cc1..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_0.10.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A network address manipulation library for Python."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44"
-
-SRC_URI[sha256sum] = "f4da4222ca8c3f43c8e18a8263e5426c750a3a837fdfeccf74c68d0408eaa3bf"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    python3-io \
-    python3-pprint \
-    python3-xml \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb
new file mode 100644
index 0000000..082e7c5
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A network address manipulation library for Python."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=8afa43eca873b71d5d85dd0be1f707fa"
+
+SRC_URI[sha256sum] = "6eb8fedf0412c6d294d06885c110de945cf4d22d2b510d0404f4e06950857987"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    python3-pytest \
+    python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/netaddr/tests/* ${D}${PTEST_PATH}/tests/
+}
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb
index 5793db5..ca602d2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb
@@ -34,6 +34,7 @@
     ${PN}-test \
     python3-pytest \
     python3-unittest-automake-output \
+    python3-unixadmin \
 "
 
 do_compile:prepend() {
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb
new file mode 100644
index 0000000..2075d96
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.8.19.20240106.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Typing stubs for python-dateutil"
+HOMEPAGE = "https://github.com/python/typeshed"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1608a4a9c7b578e"
+
+SRC_URI[sha256sum] = "1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb
index 84c0528..056323c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb
@@ -6,7 +6,21 @@
 
 SRC_URI[sha256sum] = "5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"
 
-inherit pypi setuptools3 
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+	python3-pytest \
+	python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
 
 RDEPENDS:${PN}:class-target += "\
     python3-stringold \
diff --git a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb
index 4aac89f..dcae982 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb
@@ -4,9 +4,9 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
 
-DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file"
+DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file glib-2.0-native python3-packaging-native"
 
-inherit xfce-app mime-xdg
+inherit xfce-app mime-xdg python3native
 
 RRECOMMENDS:${PN} += "tumbler"
 
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
index 7dbd90c..96cfd32 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
@@ -10,9 +10,11 @@
     libxfce4ui \
     xfconf \
     xfce4-panel \
+    python3-packaging-native \
 "
 
 inherit xfce-app
+inherit python3native
 
 SRC_URI:append = " file://xfce4-notifyd-get-var-abs-path.patch"
 
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index ff0480a..e36b460 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -26,9 +26,15 @@
     overlays/gpio-poweroff.dtbo \
     overlays/gpio-shutdown.dtbo \
     overlays/hifiberry-amp.dtbo \
+    overlays/hifiberry-amp100.dtbo \
+    overlays/hifiberry-amp3.dtbo \
+    overlays/hifiberry-amp4pro.dtbo \
     overlays/hifiberry-dac.dtbo \
     overlays/hifiberry-dacplus.dtbo \
     overlays/hifiberry-dacplusadcpro.dtbo \
+    overlays/hifiberry-dacplusdsp.dtbo \
+    overlays/hifiberry-dacplushd.dtbo \
+    overlays/hifiberry-digi-pro.dtbo \
     overlays/hifiberry-digi.dtbo \
     overlays/justboom-both.dtbo \
     overlays/justboom-dac.dtbo \
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index ac0f4df..3529531 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -1115,7 +1115,8 @@
             logger.debug("Mirror fetch failure for url %s (original url: %s)" % (ud.url, origud.url))
             logger.debug(str(e))
         try:
-            ud.method.clean(ud, ld)
+            if ud.method.cleanup_upon_failure():
+                ud.method.clean(ud, ld)
         except UnboundLocalError:
             pass
         return False
@@ -1440,6 +1441,12 @@
         """
         return False
 
+    def cleanup_upon_failure(self):
+        """
+        When a fetch fails, should clean() be called?
+        """
+        return True
+
     def verify_donestamp(self, ud, d):
         """
         Verify the donestamp file
@@ -1885,7 +1892,7 @@
                             logger.debug(str(e))
                         firsterr = e
                         # Remove any incomplete fetch
-                        if not verified_stamp:
+                        if not verified_stamp and m.cleanup_upon_failure():
                             m.clean(ud, self.d)
                         logger.debug("Trying MIRRORS")
                         mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index b43ee0d..b9dc576 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -150,6 +150,9 @@
     def supports_checksum(self, urldata):
         return False
 
+    def cleanup_upon_failure(self):
+        return False
+
     def urldata_init(self, ud, d):
         """
         init git specific variable within url data
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index 068b631..ad13d04 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -604,7 +604,6 @@
     v = [
         'BBPATH',
         'BB_PRESERVE_ENV',
-        'BB_ENV_PASSTHROUGH',
         'BB_ENV_PASSTHROUGH_ADDITIONS',
     ]
     return v + preserved_envvars_exported()
diff --git a/poky/bitbake/lib/prserv/serv.py b/poky/bitbake/lib/prserv/serv.py
index 62d3b5a..5fc8863 100644
--- a/poky/bitbake/lib/prserv/serv.py
+++ b/poky/bitbake/lib/prserv/serv.py
@@ -262,8 +262,11 @@
             os.kill(pid, signal.SIGTERM)
             time.sleep(0.1)
 
-        if os.path.exists(pidfile):
+        try:
             os.remove(pidfile)
+        except FileNotFoundError:
+            # The PID file might have been removed by the exiting process
+            pass
 
     except OSError as e:
         err = str(e)
diff --git a/poky/documentation/contributor-guide/submit-changes.rst b/poky/documentation/contributor-guide/submit-changes.rst
index 61f3157..59f3c1e 100644
--- a/poky/documentation/contributor-guide/submit-changes.rst
+++ b/poky/documentation/contributor-guide/submit-changes.rst
@@ -221,6 +221,38 @@
    <https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>`__
    in the Linux kernel documentation.
 
+Test your changes
+-----------------
+
+For each contributions you make, you should test your changes as well.
+For this the Yocto Project offers several types of tests. Those tests cover
+different areas and it depends on your changes which are feasible. For example run:
+
+   -  For changes that affect the build environment:
+
+      -  ``bitbake-selftest``: for changes within BitBake
+
+      -  ``oe-selftest``: to test combinations of BitBake runs
+
+      -  ``oe-build-perf-test``: to test the performance of common build scenarios
+
+   -  For changes in a recipe:
+
+      - ``ptest``: run package specific tests, if they exist
+
+      - ``testimage``: build an image, boot it and run testcases on it
+
+      - If applicable, ensure also the ``native`` and ``nativesdk`` variants builds
+
+   -  For changes relating to the SDK:
+
+      - ``testsdk``: to build, install and run tests against a SDK
+
+      - ``testsdk_ext``: to build, install and run tests against an extended SDK
+
+Note that this list just gives suggestions and is not exhaustive. More details can
+be found here: :ref:`test-manual/intro:Yocto Project Tests --- Types of Testing Overview`.
+
 Creating Patches
 ================
 
@@ -285,8 +317,9 @@
 ``patchtest`` is available in ``openembedded-core`` as a tool for making
 sure that your patches are well-formatted and contain important info for
 maintenance purposes, such as ``Signed-off-by`` and ``Upstream-Status``
-tags. Currently, it only supports testing patches for
-``openembedded-core`` branches. To setup, perform the following::
+tags. Note that no functional testing of the changes will be performed by ``patchtest``.
+Currently, it only supports testing patches for ``openembedded-core`` branches.
+To setup, perform the following::
 
     pip install -r meta/lib/patchtest/requirements.txt
     source oe-init-build-env
diff --git a/poky/documentation/dev-manual/bmaptool.rst b/poky/documentation/dev-manual/bmaptool.rst
index 9add72c..f6f0e6a 100644
--- a/poky/documentation/dev-manual/bmaptool.rst
+++ b/poky/documentation/dev-manual/bmaptool.rst
@@ -4,10 +4,10 @@
 **********************************
 
 A fast and easy way to flash an image to a bootable device is to use
-Bmaptool, which is integrated into the OpenEmbedded build system.
-Bmaptool is a generic tool that creates a file's block map (bmap) and
+bmaptool, which is integrated into the OpenEmbedded build system.
+bmaptool is a generic tool that creates a file's block map (bmap) and
 then uses that map to copy the file. As compared to traditional tools
-such as dd or cp, Bmaptool can copy (or flash) large files like raw
+such as dd or cp, bmaptool can copy (or flash) large files like raw
 system image files much faster.
 
 .. note::
@@ -20,13 +20,13 @@
          $ sudo apt install bmap-tools
 
    -  If you are unable to install the ``bmap-tools`` package, you will
-      need to build Bmaptool before using it. Use the following command::
+      need to build bmaptool before using it. Use the following command::
 
-         $ bitbake bmap-tools-native
+         $ bitbake bmaptool-native
 
 Following, is an example that shows how to flash a Wic image. Realize
-that while this example uses a Wic image, you can use Bmaptool to flash
-any type of image. Use these steps to flash an image using Bmaptool:
+that while this example uses a Wic image, you can use bmaptool to flash
+any type of image. Use these steps to flash an image using bmaptool:
 
 #. *Update your local.conf File:* You need to have the following set
    in your ``local.conf`` file before building your image::
@@ -39,19 +39,19 @@
 
       $ bitbake image
 
-#. *Flash the Device:* Flash the device with the image by using Bmaptool
+#. *Flash the Device:* Flash the device with the image by using bmaptool
    depending on your particular setup. The following commands assume the
    image resides in the :term:`Build Directory`'s ``deploy/images/`` area:
 
    -  If you have write access to the media, use this command form::
 
-         $ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
+         $ oe-run-native bmaptool-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
 
    -  If you do not have write access to the media, set your permissions
       first and then use the same command form::
 
          $ sudo chmod 666 /dev/sdX
-         $ oe-run-native bmap-tools-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
+         $ oe-run-native bmaptool-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
 
 For help on the ``bmaptool`` command, use the following command::
 
diff --git a/poky/documentation/dev-manual/device-manager.rst b/poky/documentation/dev-manual/device-manager.rst
index 0343d19..49fc785 100644
--- a/poky/documentation/dev-manual/device-manager.rst
+++ b/poky/documentation/dev-manual/device-manager.rst
@@ -60,10 +60,10 @@
 All devices created by ``devtmpfs`` will be owned by ``root`` and have
 permissions ``0600``.
 
-To have more control over the device nodes, you can use a device manager
-like ``udev`` or ``busybox-mdev``. You choose the device manager by
-defining the ``VIRTUAL-RUNTIME_dev_manager`` variable in your machine or
-distro configuration file. Alternatively, you can set this variable in
+To have more control over the device nodes, you can use a device manager like
+``udev`` or ``busybox-mdev``. You choose the device manager by defining the
+:term:`VIRTUAL-RUNTIME_dev_manager <VIRTUAL-RUNTIME>` variable in your machine
+or distro configuration file. Alternatively, you can set this variable in
 your ``local.conf`` configuration file::
 
    VIRTUAL-RUNTIME_dev_manager = "udev"
diff --git a/poky/documentation/dev-manual/packages.rst b/poky/documentation/dev-manual/packages.rst
index a6e6af0..e5028ff 100644
--- a/poky/documentation/dev-manual/packages.rst
+++ b/poky/documentation/dev-manual/packages.rst
@@ -206,7 +206,7 @@
    part of the shared state (sstate) packages. If you maintain an sstate
    feed, it's expected that either all your building systems that
    contribute to the sstate feed use a shared PR service, or you do not
-   run a PR Service on any of your building systems.
+   run a PR service on any of your building systems.
 
    That's because if you had multiple machines sharing a PR service but
    not their sstate feed, you could end up with "diverging" hashes for
diff --git a/poky/documentation/dev-manual/wic.rst b/poky/documentation/dev-manual/wic.rst
index 312f78c..05e9cb3 100644
--- a/poky/documentation/dev-manual/wic.rst
+++ b/poky/documentation/dev-manual/wic.rst
@@ -503,7 +503,7 @@
 built your image, and boot from the media. You can write the image by using
 ``bmaptool`` or ``dd``::
 
-   $ oe-run-native bmap-tools-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX
+   $ oe-run-native bmaptool-native bmaptool copy mkefidisk-201804191017-sda.direct /dev/sdX
 
 or ::
 
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index d177ca3..62f2327 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -1375,7 +1375,7 @@
    Lists packages that make up the target part of the SDK (i.e. the part
    built for the target hardware).
 
--  :term:`SDKPATH`: Defines the
+-  :term:`SDKPATHINSTALL`: Defines the
    default SDK installation path offered by the installation script.
 
 -  :term:`SDK_HOST_MANIFEST`:
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 7300020..5aaf8ec 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -1297,6 +1297,11 @@
    paths to locations on the build host were used. Using such paths
    might result in host contamination of the build output.
 
+-  ``cve_status_not_in_db:`` Checks for each component if CVEs that are ignored
+   via :term:`CVE_STATUS`, that those are (still) reported for this component
+   in the NIST database. If not, a warning is printed. This check is disabled
+   by default.
+
 -  ``debug-deps:`` Checks that all packages except ``-dbg`` packages
    do not depend on ``-dbg`` packages, which would cause a packaging
    bug.
diff --git a/poky/documentation/ref-manual/tasks.rst b/poky/documentation/ref-manual/tasks.rst
index 0db960b..c28cd7a 100644
--- a/poky/documentation/ref-manual/tasks.rst
+++ b/poky/documentation/ref-manual/tasks.rst
@@ -470,9 +470,29 @@
 
    $ bitbake -c cleanall recipe
 
-Typically, you would not normally use the :ref:`ref-tasks-cleanall` task. Do so only
-if you want to start fresh with the :ref:`ref-tasks-fetch`
-task.
+You should never use the :ref:`ref-tasks-cleanall` task in a normal
+scenario. If you want to start fresh with the :ref:`ref-tasks-fetch` task,
+use instead::
+
+  $ bitbake -f -c fetch recipe
+
+.. note::
+
+   The reason to prefer ``bitbake -f -c fetch`` is that the
+   :ref:`ref-tasks-cleanall` task would break in some cases, such as::
+
+      $ bitbake -c fetch    recipe
+      $ bitbake -c cleanall recipe-native
+      $ bitbake -c unpack   recipe
+
+   because after step 1 there is a stamp file for the
+   :ref:`ref-tasks-fetch` task of ``recipe``, and it won't be removed at
+   step 2 because step 2 uses a different work directory. So the unpack task
+   at step 3 will try to extract the downloaded archive and fail as it has
+   been deleted in step 2.
+
+   Note that this also applies to BitBake from concurrent processes when a
+   shared download directory (:term:`DL_DIR`) is setup.
 
 .. _ref-tasks-cleansstate:
 
@@ -496,6 +516,18 @@
 
 .. note::
 
+   Using :ref:`ref-tasks-cleansstate` with a shared :term:`SSTATE_DIR` is
+   not recommended because it could trigger an error during the build of a
+   separate BitBake instance. This is because the builds check sstate "up
+   front" but download the files later, so it if is deleted in the
+   meantime, it will cause an error but not a total failure as it will
+   rebuild it.
+
+   The reliable and preferred way to force a new build is to use ``bitbake
+   -f`` instead.
+
+.. note::
+
    The :ref:`ref-tasks-cleansstate` task cannot remove sstate from a remote sstate
    mirror. If you need to build a target from scratch using remote mirrors, use
    the "-f" option as follows::
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index a0187a6..6e66dc7 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -3234,6 +3234,14 @@
 
          GROUPADD_PARAM:${PN} = "-r netdev"
 
+      More than one group can be added by separating each set of different
+      groups' parameters with a semicolon.
+
+      Here is an example adding multiple groups from the ``useradd-example.bb``
+      file in the ``meta-skeleton`` layer::
+
+         GROUPADD_PARAM:${PN} = "-g 880 group1; -g 890 group2"
+
       For information on the standard Linux shell command
       ``groupadd``, see https://linux.die.net/man/8/groupadd.
 
@@ -6742,11 +6750,11 @@
 
       .. note::
 
-         A corresponding mechanism for virtual runtime dependencies
-         (packages) exists. However, the mechanism does not depend on any
-         special functionality beyond ordinary variable assignments. For
-         example, ``VIRTUAL-RUNTIME_dev_manager`` refers to the package of
-         the component that manages the ``/dev`` directory.
+         A corresponding mechanism for virtual runtime dependencies (packages)
+         exists. However, the mechanism does not depend on any special
+         functionality beyond ordinary variable assignments. For example,
+         :term:`VIRTUAL-RUNTIME_dev_manager <VIRTUAL-RUNTIME>` refers to the
+         package of the component that manages the ``/dev`` directory.
 
          Setting the "preferred provider" for runtime dependencies is as
          simple as using the following assignment in a configuration file::
@@ -7598,6 +7606,10 @@
          configuration will not take effect.
 
    :term:`SDKPATH`
+      Defines the path used to collect the SDK components and build the
+      installer.
+
+   :term:`SDKPATHINSTALL`
       Defines the path offered to the user for installation of the SDK that
       is generated by the OpenEmbedded build system. The path appears as
       the default location for installing the SDK when you run the SDK's
@@ -7607,7 +7619,7 @@
    :term:`SDKTARGETSYSROOT`
       The full path to the sysroot used for cross-compilation within an SDK
       as it will be when installed into the default
-      :term:`SDKPATH`.
+      :term:`SDKPATHINSTALL`.
 
    :term:`SECTION`
       The section in which packages should be categorized. Package
@@ -9854,6 +9866,33 @@
       Additionally, you should also set the
       :term:`USERADD_ERROR_DYNAMIC` variable.
 
+   :term:`VIRTUAL-RUNTIME`
+      :term:`VIRTUAL-RUNTIME` is a commonly used prefix for defining virtual
+      packages for runtime usage, typically for use in :term:`RDEPENDS`
+      or in image definitions.
+
+      An example is ``VIRTUAL-RUNTIME_base-utils`` that makes it possible
+      to either use BusyBox based utilities::
+
+         VIRTUAL-RUNTIME_base-utils = "busybox"
+
+      or their full featured implementations from GNU Coreutils
+      and other projects::
+
+         VIRTUAL-RUNTIME_base-utils = "packagegroup-core-base-utils"
+
+      Here are two examples using this virtual runtime package. The
+      first one is in :yocto_git:`initramfs-framework_1.0.bb
+      </poky/tree/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb?h=scarthgap>`::
+
+         RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_base-utils}"
+
+      The second example is in the :yocto_git:`core-image-initramfs-boot
+      </poky/tree/meta/recipes-core/images/core-image-initramfs-boot.bb?h=scarthgap>`
+      image definition::
+
+         PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} base-passwd"
+
    :term:`VOLATILE_LOG_DIR`
       Specifies the persistence of the target's ``/var/log`` directory,
       which is used to house postinstall target log files.
diff --git a/poky/meta-poky/conf/templates/default/local.conf.sample b/poky/meta-poky/conf/templates/default/local.conf.sample
index 5fb6944..1a93c9b 100644
--- a/poky/meta-poky/conf/templates/default/local.conf.sample
+++ b/poky/meta-poky/conf/templates/default/local.conf.sample
@@ -31,6 +31,7 @@
 # demonstration purposes:
 #
 #MACHINE ?= "beaglebone-yocto"
+#MACHINE ?= "genericarm64"
 #MACHINE ?= "genericx86"
 #MACHINE ?= "genericx86-64"
 #
diff --git a/poky/meta-yocto-bsp/README.hardware.md b/poky/meta-yocto-bsp/README.hardware.md
index a8f38cb..bb8f579 100644
--- a/poky/meta-yocto-bsp/README.hardware.md
+++ b/poky/meta-yocto-bsp/README.hardware.md
@@ -28,6 +28,7 @@
 The following boards are supported by the meta-yocto-bsp layer:
 
   * Texas Instruments Beaglebone (beaglebone-yocto)
+  * General 64-bit Arm SystemReady platforms (genericarm64)
   * General IA platforms (genericx86 and genericx86-64)
 
 For more information see the board's section below. The appropriate MACHINE
@@ -55,7 +56,8 @@
 
 The following consumer devices are supported by the meta-yocto-bsp layer:
 
-  * Intel x86 based PCs and devices (genericx86)
+  * Arm-based SystemReady devices (genericarm64)
+  * Intel x86 based PCs and devices (genericx86 and genericx86-64)
 
 For more information see the device's section below. The appropriate MACHINE
 variable value corresponding to the device is given in brackets.
@@ -126,6 +128,20 @@
        dd command to write the image to a USB stick.
 
 
+SystemReady Arm Platforms
+=========================
+
+The genericarm64 MACHINE is designed to work on standard SystemReady IR
+compliant boards with preinstalled firmware.
+
+The genericarm64 MACHINE is currently tested on the following platforms:
+
+  * Texas Instruments BeaglePlay
+
+The images built are EFI bootable disk images and can be written directly to a
+SD card for booting, for example.
+
+
 Texas Instruments Beaglebone (beaglebone-yocto)
 ===============================================
 
diff --git a/poky/meta-yocto-bsp/conf/machine/genericarm64.conf b/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
new file mode 100644
index 0000000..83f1aca
--- /dev/null
+++ b/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
@@ -0,0 +1,29 @@
+#@TYPE: Machine
+#@NAME: genericarm64
+#@DESCRIPTION: Generic Arm64 machine for typical SystemReady platforms, which
+#have working firmware and boot via EFI.
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Arm Base System Architecture says v8.0+ is allowed, but FEAT_CRC32 is required
+DEFAULTTUNE = "armv8a-crc"
+
+MACHINE_FEATURES = "acpi alsa bluetooth efi keyboard pci qemu-usermode rtc screen usbhost vfat wifi"
+
+# Install all the kernel modules and all the firmware
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware"
+
+KERNEL_IMAGETYPE = "Image"
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
+
+# Use an initramfs and populate it with the kernel modules
+INITRAMFS_IMAGE ?= "core-image-initramfs-boot"
+PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " kernel-modules"
+
+IMAGE_FSTYPES ?= "wic"
+WKS_FILE ?= "genericarm64.wks.in"
+
+EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
+
+# Try to bring up one physical serial console, or a virtualized serial console
+SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
index 8e465c2..ca7b2b0 100644
--- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
+++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
@@ -1,19 +1,24 @@
+KBRANCH:genericarm64  = "v6.6/standard/base"
 KBRANCH:genericx86  = "v6.6/standard/base"
 KBRANCH:genericx86-64  = "v6.6/standard/base"
 KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone"
 
+KMACHINE:genericarm64 ?= "genericarm64"
 KMACHINE:genericx86 ?= "common-pc"
 KMACHINE:genericx86-64 ?= "common-pc-64"
 KMACHINE:beaglebone-yocto ?= "beaglebone"
 
+SRCREV_machine:genericarm64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
 SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089"
 SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089"
 SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089"
 
+COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
 COMPATIBLE_MACHINE:genericx86 = "genericx86"
 COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
 COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
 
+LINUX_VERSION:genericarm64 = "6.6.18"
 LINUX_VERSION:genericx86 = "6.6.15"
 LINUX_VERSION:genericx86-64 = "6.6.15"
 LINUX_VERSION:beaglebone-yocto = "6.6.15"
diff --git a/poky/meta-yocto-bsp/wic/genericarm64.wks.in b/poky/meta-yocto-bsp/wic/genericarm64.wks.in
new file mode 100644
index 0000000..417d4d8
--- /dev/null
+++ b/poky/meta-yocto-bsp/wic/genericarm64.wks.in
@@ -0,0 +1,11 @@
+# short-description: Create an EFI disk image
+# long-description: Creates a partitioned EFI disk image that the user
+# can directly dd to boot media.
+
+part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid
+
+part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
+
+part swap --size 44 --label swap --fstype=swap --use-uuid
+
+bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4"
diff --git a/poky/meta/classes-recipe/goarch.bbclass b/poky/meta/classes-recipe/goarch.bbclass
index 1ebe038..6899ec2 100644
--- a/poky/meta/classes-recipe/goarch.bbclass
+++ b/poky/meta/classes-recipe/goarch.bbclass
@@ -38,13 +38,13 @@
 # Go supports dynamic linking on a limited set of architectures.
 # See the supportsDynlink function in go/src/cmd/compile/internal/gc/main.go
 GO_DYNLINK = ""
-GO_DYNLINK:arm ?= "1"
-GO_DYNLINK:aarch64 ?= "1"
-GO_DYNLINK:x86 ?= "1"
-GO_DYNLINK:x86-64 ?= "1"
-GO_DYNLINK:powerpc64 ?= "1"
-GO_DYNLINK:powerpc64le ?= "1"
-GO_DYNLINK:class-native ?= ""
+GO_DYNLINK:arm = ""
+GO_DYNLINK:aarch64 = ""
+GO_DYNLINK:x86 = ""
+GO_DYNLINK:x86-64 = ""
+GO_DYNLINK:powerpc64 = ""
+GO_DYNLINK:powerpc64le = ""
+GO_DYNLINK:class-native = ""
 GO_DYNLINK:class-nativesdk = ""
 
 # define here because everybody inherits this class
diff --git a/poky/meta/classes-recipe/image_types.bbclass b/poky/meta/classes-recipe/image_types.bbclass
index 3733bdf..913cb87 100644
--- a/poky/meta/classes-recipe/image_types.bbclass
+++ b/poky/meta/classes-recipe/image_types.bbclass
@@ -133,8 +133,8 @@
 # can (e.g. device files, symlinks, etc.) and therefore it not suitable for all
 # use cases
 oe_mkvfatfs () {
-    mkfs.vfat $@ -C ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.vfat ${ROOTFS_SIZE}
-    mcopy -i "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.vfat" -vsmpQ ${IMAGE_ROOTFS}/* ::/
+    mkfs.vfat $@ -C ${IMGDEPLOYDIR}/${IMAGE_NAME}.vfat ${ROOTFS_SIZE}
+    mcopy -i "${IMGDEPLOYDIR}/${IMAGE_NAME}.vfat" -vsmpQ ${IMAGE_ROOTFS}/* ::/
 }
 
 IMAGE_CMD:vfat = "oe_mkvfatfs ${EXTRA_IMAGECMD}"
@@ -363,7 +363,7 @@
 CONVERSION_DEPENDS_7zip = "p7zip-native"
 CONVERSION_DEPENDS_zst = "zstd-native"
 CONVERSION_DEPENDS_sum = "mtd-utils-native"
-CONVERSION_DEPENDS_bmap = "bmap-tools-native"
+CONVERSION_DEPENDS_bmap = "bmaptool-native"
 CONVERSION_DEPENDS_u-boot = "u-boot-tools-native"
 CONVERSION_DEPENDS_vmdk = "qemu-system-native"
 CONVERSION_DEPENDS_vdi = "qemu-system-native"
diff --git a/poky/meta/classes-recipe/image_types_wic.bbclass b/poky/meta/classes-recipe/image_types_wic.bbclass
index ce7125f..cf3be90 100644
--- a/poky/meta/classes-recipe/image_types_wic.bbclass
+++ b/poky/meta/classes-recipe/image_types_wic.bbclass
@@ -106,7 +106,7 @@
 do_image_wic[deptask] += "do_image_complete"
 
 WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
-WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native erofs-utils-native"
+WKS_FILE_DEPENDS_DEFAULT += "bmaptool-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native erofs-utils-native"
 # Unified kernel images need objcopy
 WKS_FILE_DEPENDS_DEFAULT += "virtual/${TARGET_PREFIX}binutils"
 WKS_FILE_DEPENDS_BOOTLOADERS = ""
diff --git a/poky/meta/classes-recipe/testimage.bbclass b/poky/meta/classes-recipe/testimage.bbclass
index ad040ee..ed0d87b 100644
--- a/poky/meta/classes-recipe/testimage.bbclass
+++ b/poky/meta/classes-recipe/testimage.bbclass
@@ -221,6 +221,7 @@
     # ones of the current environment because some tests require them.
     for var in d.getVar('TESTIMAGE_UPDATE_VARS').split():
         td[var] = d.getVar(var)
+    td['ORIGPATH'] = d.getVar("BB_ORIGENV").getVar("PATH")
 
     image_manifest = "%s.manifest" % image_name
     image_packages = OERuntimeTestContextExecutor.readPackagesManifest(image_manifest)
diff --git a/poky/meta/classes-recipe/uboot-config.bbclass b/poky/meta/classes-recipe/uboot-config.bbclass
index 0c579e8..e55fc38 100644
--- a/poky/meta/classes-recipe/uboot-config.bbclass
+++ b/poky/meta/classes-recipe/uboot-config.bbclass
@@ -65,10 +65,6 @@
 UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
 UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
 
-# Default name of u-boot initial env, but enable individual recipes to change
-# this value.
-UBOOT_INITIAL_ENV ?= "${PN}-initial-env"
-
 # U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf
 # to find EXTLINUX conf file.
 UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 7e17e9b..4ca5430 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -70,7 +70,7 @@
 RECIPE_MAINTAINER:pn-blktool = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER:pn-blktrace = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-bluez5 = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER:pn-bmap-tools = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER:pn-bmaptool = "Trevor Woerner <twoerner@gmail.com>"
 RECIPE_MAINTAINER:pn-boost = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-boost-build-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-bootchart2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -650,6 +650,7 @@
 RECIPE_MAINTAINER:pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-python3-jsonpointer = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-jsonschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-jsonschema-specifications = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-license-expression = "Wang Mingyu <wangmy@fujitsu.com>"
 RECIPE_MAINTAINER:pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-lxml = "Khem Raj <raj.khem@gmail.com>"
@@ -689,10 +690,12 @@
 RECIPE_MAINTAINER:pn-python3-pytz = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-pyyaml = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-rdflib = "Wang Mingyu <wangmy@fujitsu.com>"
+RECIPE_MAINTAINER:pn-python3-referencing = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-requests = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-rfc3339-validator = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-rfc3986-validator = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-rfc3987 = "Bruce Ashfield <bruce.ashfield@gmail.com>"
+RECIPE_MAINTAINER:pn-python3-rpds-py = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-ruamel-yaml = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-scons = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-semantic-version = "Tim Orling <tim.orling@konsulko.com>"
@@ -706,12 +709,13 @@
 RECIPE_MAINTAINER:pn-python3-sortedcontainers = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-spdx-tools = "Marta Rybczynska <mrybczynska@syslinbit.com>"
 RECIPE_MAINTAINER:pn-python3-sphinx = "Tim Orling <tim.orling@konsulko.com>"
-RECIPE_MAINTAINER:pn-python3-sphinxcontrib-qthelp = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-sphinxcontrib-applehelp = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-sphinxcontrib-devhelp = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-sphinxcontrib-htmlhelp = "Tim Orling <tim.orling@konsulko.com>"
-RECIPE_MAINTAINER:pn-python3-sphinxcontrib-serializinghtml = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-sphinxcontrib-jsmath = "Tim Orling <tim.orling@konsulko.com>"
-RECIPE_MAINTAINER:pn-python3-sphinxcontrib-applehelp = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-sphinxcontrib-jquery = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-sphinxcontrib-qthelp = "Tim Orling <tim.orling@konsulko.com>"
+RECIPE_MAINTAINER:pn-python3-sphinxcontrib-serializinghtml = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-sphinx-rtd-theme = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-subunit = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-python3-testtools = "Unassigned <unassigned@yoctoproject.org>"
@@ -832,6 +836,7 @@
 RECIPE_MAINTAINER:pn-util-linux = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER:pn-util-linux-libuuid = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER:pn-util-macros = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-utfcpp = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-v86d = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-vala = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-valgrind = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -846,6 +851,7 @@
 RECIPE_MAINTAINER:pn-vulkan-tools = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-vulkan-utility-libraries = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-vulkan-validation-layers = "Vincent Davis Jr <vince@underview.tech>"
+RECIPE_MAINTAINER:pn-vulkan-volk = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-waffle = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-watchdog = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-watchdog-config = "Alexander Kanavin <alex.kanavin@gmail.com>"
diff --git a/poky/meta/conf/distro/include/no-gplv3.inc b/poky/meta/conf/distro/include/no-gplv3.inc
index bb2e836..b3eb936 100644
--- a/poky/meta/conf/distro/include/no-gplv3.inc
+++ b/poky/meta/conf/distro/include/no-gplv3.inc
@@ -6,7 +6,7 @@
 # will be a cost in reduced functionality.
 
 # Settings for full-cmdline
-RDEPENDS:packagegroup-core-full-cmdline-utils:remove = "bash bc coreutils cpio ed findutils gawk grep mc mc-fish mc-helpers mc-helpers-perl sed tar time"
+RDEPENDS:packagegroup-core-full-cmdline-utils:remove = "bash bc coreutils cpio ed findutils gawk grep mc mc-shell mc-helpers mc-helpers-perl sed tar time"
 RDEPENDS:packagegroup-core-full-cmdline-dev-utils:remove = "diffutils m4 make patch"
 RDEPENDS:packagegroup-core-full-cmdline-multiuser:remove = "gzip"
 
@@ -19,6 +19,8 @@
 # so install rpm but not dnf
 IMAGE_FEATURES:remove:pn-core-image-weston = "package-management"
 CORE_IMAGE_EXTRA_INSTALL:pn-core-image-weston += "rpm"
+IMAGE_FEATURES:remove:pn-core-image-full-cmdline = "package-management"
+CORE_IMAGE_EXTRA_INSTALL:pn-core-image-full-cmdline += "rpm"
 
 # matchbox-terminal depends on vte, which is gpl3
 CORE_IMAGE_BASE_INSTALL:remove:pn-core-image-weston = "matchbox-terminal"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index e3f028c..643394f 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -23,7 +23,7 @@
 GLIBCVERSION ?= "2.39%"
 LINUXLIBCVERSION ?= "6.6%"
 QEMUVERSION ?= "8.2%"
-GOVERSION ?= "1.20%"
+GOVERSION ?= "1.22%"
 RUSTVERSION ?= "1.75%"
 
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemuarm.png b/poky/meta/files/screenshot-tests/core-image-sato-qemuarm.png
new file mode 100644
index 0000000..5156eb2
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemuarm.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemuarm64.png b/poky/meta/files/screenshot-tests/core-image-sato-qemuarm64.png
new file mode 100644
index 0000000..372964e
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemuarm64.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemumips.png b/poky/meta/files/screenshot-tests/core-image-sato-qemumips.png
new file mode 100644
index 0000000..372964e
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemumips.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemumips64.png b/poky/meta/files/screenshot-tests/core-image-sato-qemumips64.png
new file mode 100644
index 0000000..372964e
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemumips64.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemuppc.png b/poky/meta/files/screenshot-tests/core-image-sato-qemuppc.png
new file mode 100644
index 0000000..17f7d1b
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemuppc.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemuriscv64.png b/poky/meta/files/screenshot-tests/core-image-sato-qemuriscv64.png
new file mode 100644
index 0000000..4f8980f
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemuriscv64.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemux86-64.png b/poky/meta/files/screenshot-tests/core-image-sato-qemux86-64.png
new file mode 100644
index 0000000..201c523
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemux86-64.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-qemux86.png b/poky/meta/files/screenshot-tests/core-image-sato-qemux86.png
new file mode 100644
index 0000000..201c523
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-qemux86.png
Binary files differ
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuarm.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuarm.png
new file mode 120000
index 0000000..9ba26a0
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuarm.png
@@ -0,0 +1 @@
+core-image-sato-qemuarm.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuarm64.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuarm64.png
new file mode 120000
index 0000000..67c3d41
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuarm64.png
@@ -0,0 +1 @@
+core-image-sato-qemuarm64.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemumips.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemumips.png
new file mode 120000
index 0000000..167227c
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemumips.png
@@ -0,0 +1 @@
+core-image-sato-qemumips.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemumips64.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemumips64.png
new file mode 120000
index 0000000..70ba35c
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemumips64.png
@@ -0,0 +1 @@
+core-image-sato-qemumips64.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuppc.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuppc.png
new file mode 120000
index 0000000..bdc87d3
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuppc.png
@@ -0,0 +1 @@
+core-image-sato-qemuppc.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuriscv64.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuriscv64.png
new file mode 120000
index 0000000..87b4e66
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemuriscv64.png
@@ -0,0 +1 @@
+core-image-sato-qemuriscv64.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemux86-64.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemux86-64.png
new file mode 120000
index 0000000..4ae853c
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemux86-64.png
@@ -0,0 +1 @@
+core-image-sato-qemux86-64.png
\ No newline at end of file
diff --git a/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemux86.png b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemux86.png
new file mode 120000
index 0000000..90d707f
--- /dev/null
+++ b/poky/meta/files/screenshot-tests/core-image-sato-sdk-qemux86.png
@@ -0,0 +1 @@
+core-image-sato-qemux86.png
\ No newline at end of file
diff --git a/poky/meta/lib/oeqa/runtime/cases/login.py b/poky/meta/lib/oeqa/runtime/cases/login.py
new file mode 100644
index 0000000..e1bc60d
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/login.py
@@ -0,0 +1,116 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+import shutil
+import subprocess
+import tempfile
+import time
+import os
+from datetime import datetime
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.runtime.decorator.package import OEHasPackage
+
+### Status of qemu images.
+#   - runqemu qemuppc64 comes up blank. (skip)
+#   - qemuarmv5 comes up with multiple heads but sending "head" to screendump.
+#     seems to create a png with a bad header? (skip for now, but come back to fix)
+#   - qemuriscv32 and qemuloongarch64 doesn't work with testimage apparently? (skip)
+#   - qemumips64 is missing mouse icon.
+#   - qemumips takes forever to render and is missing mouse icon.
+#   - qemuarm and qemuppc are odd as they don't resize so we need to just set width.
+#   - All images have home and screen flipper icons not always rendered fully at first.
+#     the sleep seems to help this out some, depending on machine load.
+###
+
+class LoginTest(OERuntimeTestCase):
+    @OEHasPackage(['matchbox-desktop', 'dbus-wait'])
+    def test_screenshot(self):
+        if self.td.get('MACHINE') in ("qemuppc64", "qemuarmv5", "qemuriscv32", "qemuriscv64", "qemuloongarch64"):
+            self.skipTest("{0} is not currently supported.".format(self.td.get('MACHINE')))
+
+        pn = self.td.get('PN')
+
+        ourenv = os.environ.copy()
+        origpath = self.td.get("ORIGPATH")
+        if origpath:
+            ourenv['PATH'] = ourenv['PATH'] + ":" + origpath
+
+        for cmd in ["identify.im7", "convert.im7", "compare.im7"]:
+            try:
+                subprocess.check_output(["which", cmd], env=ourenv)
+            except subprocess.CalledProcessError:
+                self.skipTest("%s (from imagemagick) not available" % cmd)
+
+
+        # Store images so we can debug them if needed
+        saved_screenshots_dir = self.td.get('T') + "/saved-screenshots/"
+
+        ###
+        # This is a really horrible way of doing this but I've not found the
+        # right event to determine "The system is loaded and screen is rendered"
+        #
+        # Using dbus-wait for matchbox is the wrong answer because while it
+        # ensures the system is up, it doesn't mean the screen is rendered.
+        #
+        # Checking the qmp socket doesn't work afaik either.
+        #
+        # One way to do this is to do compares of known good screendumps until
+        # we either get expected or close to expected or we time out. Part of the
+        # issue here with that is that there is a very fine difference in the
+        # diff between a screendump where the icons haven't loaded yet and
+        # one where they won't load. I'll look at that next, but, for now, this.
+        #
+        # Which is ugly and I hate it but it 'works' for various definitions of
+        # 'works'.
+        ###
+        # RP: if the signal is sent before we run this, it will never be seen and we'd timeout
+        #status, output = self.target.run('dbus-wait org.matchbox_project.desktop Loaded')
+        #if status != 0 or "Timeout" in output:
+        #    self.fail('dbus-wait failed (%s, %s). This could mean that the image never loaded the matchbox desktop.' % (status, output))
+
+        # Start taking screenshots every 2 seconds until diff=0 or timeout is 60 seconds
+        timeout = time.time() + 60
+        diff = True
+        with tempfile.NamedTemporaryFile(prefix="oeqa-screenshot-login", suffix=".png") as t:
+            while diff != 0 and time.time() < timeout:
+                time.sleep(2)
+                ret = self.target.runner.run_monitor("screendump", args={"filename": t.name, "format":"png"})
+
+                # Find out size of image so we can determine where to blank out clock.
+                # qemuarm and qemuppc are odd as it doesn't resize the window and returns
+                # incorrect widths
+                if self.td.get('MACHINE') == "qemuarm" or self.td.get('MACHINE') == "qemuppc":
+                    width = "640"
+                else:
+                    cmd = "identify.im7 -ping -format '%w' {0}".format(t.name)
+                    width = subprocess.check_output(cmd, shell=True, env=ourenv).decode()
+
+                rblank = int(float(width))
+                lblank = rblank-80
+
+                # Use the meta-oe version of convert, along with it's suffix. This blanks out the clock.
+                cmd = "convert.im7 {0} -fill white -draw 'rectangle {1},4 {2},28' {3}".format(t.name, str(rblank), str(lblank), t.name)
+                convert_out=subprocess.check_output(cmd, shell=True, env=ourenv).decode()
+
+                bb.utils.mkdirhier(saved_screenshots_dir)
+                savedfile = "{0}/saved-{1}-{2}-{3}.png".format(saved_screenshots_dir, \
+                                                                            datetime.timestamp(datetime.now()), \
+                                                                            pn, \
+                                                                            self.td.get('MACHINE'))
+                shutil.copy2(t.name, savedfile)
+
+                refimage = self.td.get('COREBASE') + "/meta/files/screenshot-tests/" + pn + "-" + self.td.get('MACHINE') +".png"
+                if not os.path.exists(refimage):
+                    self.skipTest("No reference image for comparision (%s)" % refimage)
+
+                cmd = "compare.im7 -metric MSE {0} {1} /dev/null".format(t.name, refimage)
+                compare_out = subprocess.run(cmd, shell=True, capture_output=True, text=True, env=ourenv)
+                diff=float(compare_out.stderr.replace("(", "").replace(")","").split()[1])
+            if diff > 0:
+                # Keep a copy of the failed screenshot so we can see what happened.
+                self.fail("Screenshot diff is {0}. Failed image stored in {1}".format(str(diff), savedfile))
+            else:
+                self.assertEqual(0, diff, "Screenshot diff is {0}.".format(str(diff)))
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index ecff3a9..a1cccc3 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -1165,9 +1165,10 @@
         result = runCmd('git commit -m "Add a new file"', cwd=tempdir)
         self.add_command_to_tearDown('cd %s; rm %s/*.patch; git checkout %s %s' % (os.path.dirname(recipefile), testrecipe, testrecipe, os.path.basename(recipefile)))
         result = runCmd('devtool update-recipe %s' % testrecipe)
+        result = runCmd('git add minicom', cwd=os.path.dirname(recipefile))
         expected_status = [(' M', '.*/%s$' % os.path.basename(recipefile)),
-                           ('??', '.*/0001-Change-the-README.patch$'),
-                           ('??', '.*/0002-Add-a-new-file.patch$')]
+                           ('A ', '.*/0001-Change-the-README.patch$'),
+                           ('A ', '.*/0002-Add-a-new-file.patch$')]
         self._check_repo_status(os.path.dirname(recipefile), expected_status)
 
     def test_devtool_update_recipe_git(self):
diff --git a/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py b/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
index 74c1c48..ee2cf4b 100644
--- a/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
+++ b/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
@@ -54,6 +54,7 @@
         cmd = cmd + "export GOPATH=%s; " % self.go_path
         cmd = cmd + "export GOFLAGS=-modcacherw; "
         cmd = cmd + "export CGO_ENABLED=1; "
+        cmd = cmd + "export GOPROXY=https://proxy.golang.org,direct; "
         cmd = cmd + "${CROSS_COMPILE}go %s" % gocmd
         return runCmd(cmd).status
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 56dfcdb..031c226 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -79,7 +79,7 @@
                         result.append(f)
         return result
 
-    # Test sstate files creation and their location
+    # Test sstate files creation and their location and directory perms
     def run_test_sstate_creation(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True, should_pass=True):
         self.config_sstate(temp_sstate_location, [self.sstate_path])
 
@@ -88,6 +88,19 @@
         else:
             bitbake(['-ccleansstate'] + targets)
 
+        # We need to test that the env umask have does not effect sstate directory creation
+        # So, first, we'll get the current umask and set it to something we know incorrect
+        # See: sstate_task_postfunc for correct umask of os.umask(0o002)
+        import os
+        def current_umask():
+            current_umask = os.umask(0)
+            os.umask(current_umask)
+            return current_umask
+
+        orig_umask = current_umask()
+        # Set it to a umask we know will be 'wrong'
+        os.umask(0o022)
+
         bitbake(targets)
         file_tracker = []
         results = self.search_sstate('|'.join(map(str, targets)), distro_specific, distro_nonspecific)
@@ -104,6 +117,19 @@
         else:
             self.assertTrue(not file_tracker , msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(file_tracker)))
 
+        # Now we'll walk the tree to check the mode and see if things are incorrect.
+        badperms = []
+        for root, dirs, files in os.walk(self.sstate_path):
+            for directory in dirs:
+                if (os.stat(os.path.join(root, directory)).st_mode & 0o777) != 0o775:
+                    badperms.append(os.path.join(root, directory))
+
+        # Return to original umask
+        os.umask(orig_umask)
+
+        if should_pass:
+            self.assertTrue(badperms , msg="Found sstate directories with the wrong permissions: %s (found %s)" % (', '.join(map(str, targets)), str(badperms)))
+
     # Test the sstate files deletion part of the do_cleansstate task
     def run_test_cleansstate_task(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True):
         self.config_sstate(temp_sstate_location, [self.sstate_path])
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 277cd32..cda43aa 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -650,9 +650,9 @@
         if hasattr(self, 'qmp') and self.qmp:
             self.qmp.settimeout(timeout)
             if args is not None:
-                return self.qmp.cmd(command, args)
+                return self.qmp.cmd_raw(command, args)
             else:
-                return self.qmp.cmd(command)
+                return self.qmp.cmd_raw(command)
 
     def run_serial(self, command, raw=False, timeout=60):
         # Returns (status, output) where status is 1 on success and 0 on error
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot.inc b/poky/meta/recipes-bsp/u-boot/u-boot.inc
index 79f84b0..f5b43f6 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot.inc
@@ -24,6 +24,10 @@
 # file already exists it will not be overwritten.
 UBOOT_LOCALVERSION ?= ""
 
+# Default name of u-boot initial env, but enable individual recipes to change
+# this value.
+UBOOT_INITIAL_ENV ?= "${PN}-initial-env"
+
 require u-boot-configure.inc
 
 do_savedefconfig() {
diff --git a/poky/meta/recipes-core/coreutils/coreutils/CVE-2024-0684.patch b/poky/meta/recipes-core/coreutils/coreutils/CVE-2024-0684.patch
new file mode 100644
index 0000000..0c68e2d
--- /dev/null
+++ b/poky/meta/recipes-core/coreutils/coreutils/CVE-2024-0684.patch
@@ -0,0 +1,39 @@
+From c4c5ed8f4e9cd55a12966d4f520e3a13101637d9 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 16 Jan 2024 13:48:32 -0800
+Subject: [PATCH 1/1] split: do not shrink hold buffer
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+* src/split.c (line_bytes_split): Do not shrink hold buffer.
+If it’s large for this batch it’s likely to be large for the next
+batch, and for ‘split’ it’s not worth the complexity/CPU hassle to
+shrink it.  Do not assume hold_size can be bufsize.
+
+CVE: CVE-2024-0684
+Upstream-Status: Backport [https://github.com/coreutils/coreutils/commit/c4c5ed8f4e9cd55a12966d4f520e3a13101637d9]
+Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
+---
+ src/split.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/split.c b/src/split.c
+index 64020c859..037960a59 100644
+--- a/src/split.c
++++ b/src/split.c
+@@ -809,10 +809,7 @@ line_bytes_split (intmax_t n_bytes, char *buf, idx_t bufsize)
+             {
+               cwrite (n_out == 0, hold, n_hold);
+               n_out += n_hold;
+-              if (n_hold > bufsize)
+-                hold = xirealloc (hold, bufsize);
+               n_hold = 0;
+-              hold_size = bufsize;
+             }
+ 
+           /* Output to eol if present.  */
+-- 
+2.11.4.GIT
+
+
diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.4.bb b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
index a79cabd..fc51adc 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
@@ -17,6 +17,7 @@
            file://remove-usr-local-lib-from-m4.patch \
            file://0001-local.mk-fix-cross-compiling-problem.patch \
            file://0001-posixtm-pacify-clang-18.patch \
+           file://CVE-2024-0684.patch \
            file://run-ptest \
            "
 SRC_URI[sha256sum] = "ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52"
diff --git a/poky/meta/recipes-core/ell/ell_0.62.bb b/poky/meta/recipes-core/ell/ell_0.63.bb
similarity index 89%
rename from poky/meta/recipes-core/ell/ell_0.62.bb
rename to poky/meta/recipes-core/ell/ell_0.63.bb
index c6ec91a..7ecb63a 100644
--- a/poky/meta/recipes-core/ell/ell_0.62.bb
+++ b/poky/meta/recipes-core/ell/ell_0.63.bb
@@ -15,7 +15,7 @@
 inherit autotools pkgconfig
 
 SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "f1efae12085610049714dc509c6fab3478925801609ad4232ce873b7daf1e03d"
+SRC_URI[sha256sum] = "7397c76996d7646b9917ebf016cd67586b10166295af2e0e18cdb5b8f6659965"
 
 do_configure:prepend () {
     mkdir -p ${S}/build-aux
diff --git a/poky/meta/recipes-core/expat/expat_2.6.0.bb b/poky/meta/recipes-core/expat/expat_2.6.1.bb
similarity index 92%
rename from poky/meta/recipes-core/expat/expat_2.6.0.bb
rename to poky/meta/recipes-core/expat/expat_2.6.1.bb
index 1f9f7b2..9bdc3b6 100644
--- a/poky/meta/recipes-core/expat/expat_2.6.0.bb
+++ b/poky/meta/recipes-core/expat/expat_2.6.1.bb
@@ -15,7 +15,7 @@
 GITHUB_BASE_URI = "https://github.com/libexpat/libexpat/releases/"
 UPSTREAM_CHECK_REGEX = "releases/tag/R_(?P<pver>.+)"
 
-SRC_URI[sha256sum] = "ff60e6a6b6ce570ae012dc7b73169c7fdf4b6bf08c12ed0ec6f55736b78d85ba"
+SRC_URI[sha256sum] = "4677d957c0c6cb2a3321101944574c24113b637c7ab1cf0659a27c5babc201fd"
 
 EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
 
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.4.bb b/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.5.bb
similarity index 100%
rename from poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.4.bb
rename to poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.5.bb
diff --git a/poky/meta/recipes-core/gettext/gettext-sources.inc b/poky/meta/recipes-core/gettext/gettext-sources.inc
index 8b4e240..fd05837 100644
--- a/poky/meta/recipes-core/gettext/gettext-sources.inc
+++ b/poky/meta/recipes-core/gettext/gettext-sources.inc
@@ -1,4 +1,4 @@
 HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
 SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
            "
-SRC_URI[sha256sum] = "c1e0bb2a4427a9024390c662cd532d664c4b36b8ff444ed5e54b115fdb7a1aea"
+SRC_URI[sha256sum] = "ec1705b1e969b83a9f073144ec806151db88127f5e40fe5a94cb6c8fa48996a0"
diff --git a/poky/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch b/poky/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch
index d45b758..33d45a0 100644
--- a/poky/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch
+++ b/poky/meta/recipes-core/gettext/gettext/0001-init-env.in-do-not-add-C-CXX-parameters.patch
@@ -1,4 +1,4 @@
-From 9b912a47f790a7b282ec0c2295a188c5d8fb6a7c Mon Sep 17 00:00:00 2001
+From c58c503c532d20883a93ef778327c86dd6de24f6 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 6 Mar 2020 21:04:05 +0000
 Subject: [PATCH] init-env.in: do not add C/CXX parameters
diff --git a/poky/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch b/poky/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
index b0bc6b9..94afb25 100644
--- a/poky/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
+++ b/poky/meta/recipes-core/gettext/gettext/0001-tests-autopoint-3-unset-MAKEFLAGS.patch
@@ -1,4 +1,4 @@
-From 38b256e5aa7dfeb42acffd89565e53a2c0bab3e3 Mon Sep 17 00:00:00 2001
+From 7006142d199af13628edc687847a9a5bac48b45d Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 7 Jan 2020 16:44:38 +0100
 Subject: [PATCH] tests/autopoint-3: unset MAKEFLAGS
@@ -13,10 +13,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/gettext-tools/tests/autopoint-3 b/gettext-tools/tests/autopoint-3
-index e13552b..55188df 100755
+index bd3fbf3..380eaac 100755
 --- a/gettext-tools/tests/autopoint-3
 +++ b/gettext-tools/tests/autopoint-3
-@@ -126,6 +126,7 @@ test $? = 0 || { cat autopoint.err; Exit 1; }
+@@ -131,6 +131,7 @@ test $? = 0 || { cat autopoint.err; Exit 1; }
  ${CONFIG_SHELL} ./configure >/dev/null 2>autpoint.err
  test $? = 0 || { cat autopoint.err; Exit 1; }
  
diff --git a/poky/meta/recipes-core/gettext/gettext/parallel.patch b/poky/meta/recipes-core/gettext/gettext/parallel.patch
index d96a376..8ecba46 100644
--- a/poky/meta/recipes-core/gettext/gettext/parallel.patch
+++ b/poky/meta/recipes-core/gettext/gettext/parallel.patch
@@ -1,4 +1,4 @@
-From 4a2a0a93b469093b60ffd0bec55d33d1e03d4713 Mon Sep 17 00:00:00 2001
+From 83333bc873c2655ff1de161f6b7db930f22f1cea Mon Sep 17 00:00:00 2001
 From: Joe Slater <jslater@windriver.com>
 Date: Thu, 7 Jun 2012 16:37:01 -0700
 Subject: [PATCH] instal libgettextlib.a before removing it
@@ -10,16 +10,15 @@
 Upstream-Status: Pending
 
 Signed-off-by: Joe Slater <jslater@windriver.com>
-
 ---
  gettext-tools/gnulib-lib/Makefile.am | 4 ++++
  1 file changed, 4 insertions(+)
 
 diff --git a/gettext-tools/gnulib-lib/Makefile.am b/gettext-tools/gnulib-lib/Makefile.am
-index 2126699..d2dd7e4 100644
+index ab729cd..a0d713e 100644
 --- a/gettext-tools/gnulib-lib/Makefile.am
 +++ b/gettext-tools/gnulib-lib/Makefile.am
-@@ -58,6 +58,10 @@ endif
+@@ -58,6 +58,10 @@ AM_CFLAGS = @WARN_CFLAGS@
  # Rules generated and collected by gnulib-tool.
  include Makefile.gnulib
  
diff --git a/poky/meta/recipes-core/gettext/gettext/serial-tests-config.patch b/poky/meta/recipes-core/gettext/gettext/serial-tests-config.patch
index 93f7c03..7d39d60 100644
--- a/poky/meta/recipes-core/gettext/gettext/serial-tests-config.patch
+++ b/poky/meta/recipes-core/gettext/gettext/serial-tests-config.patch
@@ -1,4 +1,4 @@
-From ed64a5724ef7d6eb4e9a876f817ea266a536e195 Mon Sep 17 00:00:00 2001
+From aa8dfe0aafd0b53a6c5bac61b356ca92e1430a36 Mon Sep 17 00:00:00 2001
 From: "Hongjun.Yang" <hongjun.yang@windriver.com>
 Date: Thu, 28 Jul 2016 12:36:15 +0800
 Subject: [PATCH] fix for ptest
@@ -8,7 +8,6 @@
 Upstream-Status: Inappropriate [oe specific]
 
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
 ---
  configure.ac                 | 2 +-
  gettext-runtime/configure.ac | 2 +-
@@ -16,7 +15,7 @@
  3 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 38db6fd..f019ae0 100644
+index f4e54ea..a47ff14 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -22,7 +22,7 @@ AC_INIT([gettext],
@@ -29,7 +28,7 @@
  dnl Override automake's tar command used for creating distributions.
  am__tar='${AMTAR} chf - --format=ustar --owner=root --group=root "$$tardir"'
 diff --git a/gettext-runtime/configure.ac b/gettext-runtime/configure.ac
-index de203e7..138a07f 100644
+index 126d069..aa23232 100644
 --- a/gettext-runtime/configure.ac
 +++ b/gettext-runtime/configure.ac
 @@ -22,7 +22,7 @@ AC_INIT([gettext-runtime],
@@ -42,7 +41,7 @@
  
  dnl Installation directories.
 diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac
-index cf1dd73..b544d6d 100644
+index 3610ee3..6f56a23 100644
 --- a/gettext-tools/configure.ac
 +++ b/gettext-tools/configure.ac
 @@ -22,7 +22,7 @@ AC_INIT([gettext-tools],
diff --git a/poky/meta/recipes-core/gettext/gettext/use-pkgconfig.patch b/poky/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
index f1fb61d..ceb1856 100644
--- a/poky/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
+++ b/poky/meta/recipes-core/gettext/gettext/use-pkgconfig.patch
@@ -1,4 +1,4 @@
-From 38c361e6860bfaefbefeccae621e698c301879f2 Mon Sep 17 00:00:00 2001
+From 6aa1338b916fe72c200b6f160b934be15b6ff590 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 23 Jan 2018 00:54:13 +0000
 Subject: [PATCH] gettext: beat library detection into shape
@@ -12,12 +12,11 @@
 
 Upstream-Status: Inappropriate [upstream still refuse to consider pkg-config]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
-
 ---
- gettext-tools/gnulib-m4/libxml.m4             | 105 +----------------
- libtextstyle/gnulib-local/m4/libglib.m4       | 106 +++---------------
- libtextstyle/gnulib-m4/libglib.m4             | 106 +++---------------
- 3 files changed, 79 insertions(+), 470 deletions(-)
+ gettext-tools/gnulib-m4/libxml.m4       | 105 ++---------------------
+ libtextstyle/gnulib-local/m4/libglib.m4 | 106 +++---------------------
+ libtextstyle/gnulib-m4/libglib.m4       | 106 +++---------------------
+ 3 files changed, 31 insertions(+), 286 deletions(-)
 
 diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4
 index 0340490..0355388 100644
@@ -143,7 +142,7 @@
    ])
    AC_SUBST([LIBXML])
 diff --git a/libtextstyle/gnulib-local/m4/libglib.m4 b/libtextstyle/gnulib-local/m4/libglib.m4
-index 7ee5029..bb1e5e4 100644
+index dbc9eb8..136e512 100644
 --- a/libtextstyle/gnulib-local/m4/libglib.m4
 +++ b/libtextstyle/gnulib-local/m4/libglib.m4
 @@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved.
@@ -267,7 +266,7 @@
    AC_SUBST([LTLIBGLIB])
    AC_SUBST([INCGLIB])
 diff --git a/libtextstyle/gnulib-m4/libglib.m4 b/libtextstyle/gnulib-m4/libglib.m4
-index 7ee5029..bb1e5e4 100644
+index dbc9eb8..136e512 100644
 --- a/libtextstyle/gnulib-m4/libglib.m4
 +++ b/libtextstyle/gnulib-m4/libglib.m4
 @@ -6,106 +6,26 @@ dnl with or without modifications, as long as this notice is preserved.
diff --git a/poky/meta/recipes-core/gettext/gettext_0.22.4.bb b/poky/meta/recipes-core/gettext/gettext_0.22.5.bb
similarity index 98%
rename from poky/meta/recipes-core/gettext/gettext_0.22.4.bb
rename to poky/meta/recipes-core/gettext/gettext_0.22.5.bb
index 75474c8..1a66d37 100644
--- a/poky/meta/recipes-core/gettext/gettext_0.22.4.bb
+++ b/poky/meta/recipes-core/gettext/gettext_0.22.5.bb
@@ -175,7 +175,7 @@
         install ${B}/gettext-tools/misc/*       ${D}${PTEST_PATH}/misc
         find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
         chmod 0755 ${D}${PTEST_PATH}/tests/lang-vala ${D}${PTEST_PATH}/tests/plural-1 ${D}${PTEST_PATH}/tests/xgettext-tcl-4 \
-                   ${D}${PTEST_PATH}/tests/xgettext-vala-1  ${D}${PTEST_PATH}/tests/xgettext-po-2
+                   ${D}${PTEST_PATH}/tests/xgettext-vala-1  ${D}${PTEST_PATH}/tests/xgettext-po-2 ${D}${PTEST_PATH}/tests/xgettext-vala-6
         sed -i -e 's|${DEBUG_PREFIX_MAP}||g' ${D}${PTEST_PATH}/tests/init-env
     fi
 }
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
index 0e5f371..8e6598f 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
@@ -1,4 +1,4 @@
-From cf7df91cc8c3b4811235ef8aec144c5f0cf90bdb Mon Sep 17 00:00:00 2001
+From e7077aa23bfcd31a8e72e39dc93ce4f854678376 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 15 Feb 2019 11:17:27 +0100
 Subject: [PATCH] Do not write $bindir into pkg-config files
@@ -9,7 +9,6 @@
 
 Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  gio/meson.build  | 16 ++++++++--------
  glib/meson.build |  6 +++---
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
index 1254466..eb9dfdb 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
@@ -1,4 +1,4 @@
-From b907a6681c4c24e5d3745538d9fcd471cf1c4c4a Mon Sep 17 00:00:00 2001
+From 9a5d4bf65b658d744d610ee27ecd2ae65b14b158 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 15 Mar 2014 22:42:29 -0700
 Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
@@ -8,7 +8,6 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Upstream-Status: Pending
-
 ---
  m4macros/glib-gettext.m4 | 4 ++++
  1 file changed, 4 insertions(+)
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
index 50d369c..ad69f7e 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
@@ -1,4 +1,4 @@
-From 6e2ddcb5465d10618345b12e0b4471ead0f14304 Mon Sep 17 00:00:00 2001
+From 4933aef791857a5aac650b60af800778658b875b Mon Sep 17 00:00:00 2001
 From: Jussi Kukkonen <jussi.kukkonen@intel.com>
 Date: Tue, 22 Mar 2016 15:14:58 +0200
 Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
@@ -8,7 +8,6 @@
 
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
 Upstream-Status: Inappropriate [OE specific]
-
 ---
  gio/meson.build | 1 +
  1 file changed, 1 insertion(+)
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
index f810574..0e3a62a 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
@@ -1,4 +1,4 @@
-From c8c223045821cac97f798cfa63f19853621a8a2a Mon Sep 17 00:00:00 2001
+From 8ae2e9c2a04e089306693a021149dc6b7d1bd679 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 12 Jun 2015 17:08:46 +0300
 Subject: [PATCH] Remove the warning about deprecated paths in schemas
@@ -9,7 +9,6 @@
 
 Upstream-Status: Inappropriate
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  gio/glib-compile-schemas.c | 13 -------------
  1 file changed, 13 deletions(-)
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
index e1d2fb0..32b4cea 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
@@ -1,11 +1,10 @@
-From bafde4eedc0a22b45e73ee6183b9a11393a1e400 Mon Sep 17 00:00:00 2001
+From c0733f7a91dfe13152abc60c5a3064456b3e9d63 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 13 Feb 2019 15:32:05 +0100
 Subject: [PATCH] Set host_machine correctly when building with mingw32
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  gio/tests/meson.build  | 8 ++++----
  glib/tests/meson.build | 2 +-
@@ -66,7 +65,7 @@
      glib_tests += {
        'gpoll' : {
 diff --git a/meson.build b/meson.build
-index f7e936e..122f8b5 100644
+index 813c9b7..6ee775e 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -54,6 +54,9 @@ else
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
index 50368ed..b11c283 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
@@ -1,4 +1,4 @@
-From 05f0674c93d94fe6b29c1b707980aac469ddcd72 Mon Sep 17 00:00:00 2001
+From a8eb944a10353403241608a084787f6efcbb2eb7 Mon Sep 17 00:00:00 2001
 From: Jordan Williams <jordan@jwillikers.com>
 Date: Fri, 1 Dec 2023 09:53:50 -0600
 Subject: [PATCH] Switch from the deprecated distutils module to the packaging
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
index e4c2f77..aee2986 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
@@ -1,4 +1,4 @@
-From 3f05b9418c88bbb83c08b57cc5529b006f26fff4 Mon Sep 17 00:00:00 2001
+From 878e51f82100c698236fda0e069e14ea9249350c Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 8 Jan 2020 18:22:46 +0100
 Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
@@ -8,7 +8,6 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  gio/tests/resources.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
index 071e4a7..0b10269 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
@@ -1,4 +1,4 @@
-From 17d718640ae6f953e5eea714c1bd64eeb6e4799f Mon Sep 17 00:00:00 2001
+From b4b523160ef550a53705fcc45ac6e10d086ce491 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 12 Oct 2019 17:46:26 -0700
 Subject: [PATCH] meson: Run atomics test on clang as well
@@ -9,13 +9,12 @@
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  meson.build | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index 122f8b5..f055079 100644
+index 6ee775e..8bc5fa7 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -1938,7 +1938,7 @@ atomicdefine = '''
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
index e03f9a3..14dcb27 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
@@ -1,4 +1,4 @@
-From 7865d698b5d392aac3a3d32e9ebd5fea45017d15 Mon Sep 17 00:00:00 2001
+From 294f3e6e9a0a9f4733e85ed6810d1b743055370b Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Sat, 16 Sep 2023 22:28:27 +0200
 Subject: [PATCH] meson.build: do not enable pidfd features on native glib
@@ -9,13 +9,12 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
 ---
  meson.build | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index f055079..77d78aa 100644
+index 8bc5fa7..df1fa60 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h>
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
index 4b75167..6dff517 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
@@ -1,11 +1,10 @@
-From 53bcd4b6cd3fe3fe4246914462e6724761eecf51 Mon Sep 17 00:00:00 2001
+From 50636758c73e5e61212a8f801c6c602b8aab5ba7 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 3 Oct 2017 10:45:55 +0300
 Subject: [PATCH] Do not hardcode python path into various tools
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +-
  gobject/glib-genmarshal.in             | 2 +-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
new file mode 100644
index 0000000..bdfbd55
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
@@ -0,0 +1,54 @@
+From cce3ae98a2c1966719daabff5a4ec6cf94a846f6 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <pwithnall@gnome.org>
+Date: Mon, 26 Feb 2024 16:55:44 +0000
+Subject: [PATCH] tests: Remove variable-length lookbehind tests for GRegex
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+PCRE2 10.43 has now introduced support for variable-length lookbehind,
+so these tests now fail if GLib is built against PCRE2 10.43 or higher.
+
+See
+https://github.com/PCRE2Project/pcre2/blob/e8db6fa7137f4c6f66cb87e0a3c9467252ec1ef7/ChangeLog#L94.
+
+Rather than making the tests conditional on the version of PCRE2 in use,
+just remove them. They are mostly testing the PCRE2 code rather than
+any code in GLib, so don’t have much value.
+
+This should fix CI runs on msys2-mingw32, which updated to PCRE2 10.43 2
+days ago.
+
+Signed-off-by: Philip Withnall <pwithnall@gnome.org>
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ glib/tests/regex.c | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+diff --git a/glib/tests/regex.c b/glib/tests/regex.c
+index 1082526292..d7a698ec67 100644
+--- a/glib/tests/regex.c
++++ b/glib/tests/regex.c
+@@ -1885,16 +1885,6 @@ test_lookbehind (void)
+   g_match_info_free (match);
+   g_regex_unref (regex);
+ 
+-  regex = g_regex_new ("(?<!dogs?|cats?) x", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
+-  g_assert (regex == NULL);
+-  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
+-  g_clear_error (&error);
+-
+-  regex = g_regex_new ("(?<=ab(c|de)) foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
+-  g_assert (regex == NULL);
+-  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
+-  g_clear_error (&error);
+-
+   regex = g_regex_new ("(?<=abc|abde)foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
+   g_assert (regex);
+   g_assert_no_error (error);
+-- 
+GitLab
+
+
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
index f9dfc5b..4f38509 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
@@ -1,4 +1,4 @@
-From df7506918efc8748dac8b8398021e1b79d694ba4 Mon Sep 17 00:00:00 2001
+From ce840b6b111e1e109e511f6833d6aa419e2b723a Mon Sep 17 00:00:00 2001
 From: Philip Withnall <philip@tecnocode.co.uk>
 Date: Tue, 23 Jan 2024 11:16:52 +0000
 Subject: [PATCH] Merge branch '2887-memory-monitor-tests' into 'main'
@@ -22,7 +22,7 @@
  4 files changed, 113 insertions(+), 74 deletions(-)
 
 diff --git a/gio/tests/memory-monitor-dbus.py.in b/gio/tests/memory-monitor-dbus.py.in
-index bf3291847..7aae01e70 100755
+index bf32918..7aae01e 100755
 --- a/gio/tests/memory-monitor-dbus.py.in
 +++ b/gio/tests/memory-monitor-dbus.py.in
 @@ -16,7 +16,6 @@ import sys
@@ -130,7 +130,7 @@
  except ImportError as e:
      @unittest.skip("Cannot import %s" % e.name)
 diff --git a/gio/tests/memory-monitor-portal.py.in b/gio/tests/memory-monitor-portal.py.in
-index 748cee850..f570508f9 100755
+index 748cee8..f570508 100755
 --- a/gio/tests/memory-monitor-portal.py.in
 +++ b/gio/tests/memory-monitor-portal.py.in
 @@ -16,7 +16,6 @@ import sys
@@ -222,7 +222,7 @@
  except ImportError as e:
      @unittest.skip("Cannot import %s" % e.name)
 diff --git a/gio/tests/power-profile-monitor-dbus.py.in b/gio/tests/power-profile-monitor-dbus.py.in
-index 06e594f4a..f955afc80 100755
+index 06e594f..f955afc 100755
 --- a/gio/tests/power-profile-monitor-dbus.py.in
 +++ b/gio/tests/power-profile-monitor-dbus.py.in
 @@ -16,7 +16,6 @@ import sys
@@ -295,7 +295,7 @@
  except ImportError as e:
      @unittest.skip("Cannot import %s" % e.name)
 diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in
-index 09e9a450d..ad2abf621 100755
+index 09e9a45..ad2abf6 100755
 --- a/gio/tests/power-profile-monitor-portal.py.in
 +++ b/gio/tests/power-profile-monitor-portal.py.in
 @@ -16,7 +16,6 @@ import sys
@@ -359,6 +359,3 @@
  
          def test_power_profile_power_saver_enabled_portal_default(self):
              '''power-saver-enabled property default value'''
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/native-gtkdoc.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/native-gtkdoc.patch
deleted file mode 100644
index f56c2b8..0000000
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/native-gtkdoc.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-docs/reference: depend on a native gtk-doc
-
-In a cross-compiled environment we don't need a target gtk-doc, but a
-native gtk-doc.
-
-Upstream-Status: Backport [f3ff370d1b24f8afb51cd4e865593d5b678188a9]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git a/docs/reference/meson.build b/docs/reference/meson.build
-index c417ffecb..67c1dda56 100644
---- a/docs/reference/meson.build
-+++ b/docs/reference/meson.build
-@@ -42,7 +42,7 @@ ignore_decorators = '|'.join(ignore_decorators)
- if get_option('gtk_doc')
-   # Check we have the minimum gtk-doc version required. Older versions won't
-   # generate correct documentation.
--  dependency('gtk-doc', version : '>=1.32.1',
-+  dependency('gtk-doc', version : '>=1.32.1', native: true,
-     fallback : ['gtk-doc', 'dummy_dep'],
-     default_options : ['tests=false'])
- 
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index 95a7329..3e79bbf 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From 03a069cb8066d3e8ef72a43f7b1db5c9625e9cc2 Mon Sep 17 00:00:00 2001
+From f40e89b3852df37959606ee13b1a14ade81fa886 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Fri, 11 Mar 2016 15:35:55 +0000
 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -13,7 +13,6 @@
 
 Port patch to 2.48
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
 ---
  gio/giomodule.c | 7 -------
  1 file changed, 7 deletions(-)
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
similarity index 94%
rename from poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb
rename to poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
index 6c3e99c..f0fd057 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
@@ -16,13 +16,13 @@
            file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
            file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \
            file://memory-monitor.patch \
-           file://native-gtkdoc.patch \
+           file://fix-regex.patch \
            "
 SRC_URI:append:class-native = " file://relocate-modules.patch \ 
                                 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
                               "
 
-SRC_URI[sha256sum] = "609801dd373796e515972bf95fc0b2daa44545481ee2f465c4f204d224b2bc21"
+SRC_URI[sha256sum] = "24b8e0672dca120cc32d394bccb85844e732e04fe75d18bb0573b2dbc7548f63"
 
 # Find any meson cross files in FILESPATH that are relevant for the current
 # build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/poky/meta/recipes-core/glib-networking/glib-networking/eagain.patch b/poky/meta/recipes-core/glib-networking/glib-networking/eagain.patch
index 062fc01..6c2e3c6 100644
--- a/poky/meta/recipes-core/glib-networking/glib-networking/eagain.patch
+++ b/poky/meta/recipes-core/glib-networking/glib-networking/eagain.patch
@@ -1,4 +1,4 @@
-From 025bb39dfdb81dd2852deaefea228b197ef3cd8d Mon Sep 17 00:00:00 2001
+From 5604707bed4b4a4bc4658c7158a18c1774775775 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Sat, 6 May 2023 12:18:50 +0100
 Subject: [PATCH] In autobuilder testing we regularly see glib-networking ptest
@@ -15,7 +15,6 @@
 Upstream-Status: Pending [testing to see if patch resolves the issue]
 
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
 ---
  tls/tests/connection.c | 4 ++++
  1 file changed, 4 insertions(+)
diff --git a/poky/meta/recipes-core/glib-networking/glib-networking_2.78.0.bb b/poky/meta/recipes-core/glib-networking/glib-networking_2.78.1.bb
similarity index 95%
rename from poky/meta/recipes-core/glib-networking/glib-networking_2.78.0.bb
rename to poky/meta/recipes-core/glib-networking/glib-networking_2.78.1.bb
index 68f9a2e..5060d9f 100644
--- a/poky/meta/recipes-core/glib-networking/glib-networking_2.78.0.bb
+++ b/poky/meta/recipes-core/glib-networking/glib-networking_2.78.1.bb
@@ -14,7 +14,7 @@
 SECTION = "libs"
 DEPENDS = "glib-2.0-native glib-2.0"
 
-SRC_URI[archive.sha256sum] = "52fe4ce93f7dc51334b102894599858d23c8a65ac4a1110b30920565d68d3aba"
+SRC_URI[archive.sha256sum] = "e48f2ddbb049832cbb09230529c5e45daca9f0df0eda325f832f7379859bf09f"
 
 # Upstream note that for the openssl backend, half the tests where this backend don't return
 # the expected error code or don't work as expected so default to gnutls
diff --git a/poky/meta/recipes-core/libxml/libxml2/install-tests.patch b/poky/meta/recipes-core/libxml/libxml2/install-tests.patch
index 14ccce5..478eeea 100644
--- a/poky/meta/recipes-core/libxml/libxml2/install-tests.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/install-tests.patch
@@ -1,4 +1,4 @@
-From 3fc716357ce1372d9418dc86f24315b34d9808de Mon Sep 17 00:00:00 2001
+From 0779511838a8cbd1e0f431c22f28f286a2a37b1b Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@arm.com>
 Date: Mon, 5 Dec 2022 17:02:32 +0000
 Subject: [PATCH] add yocto-specific install-ptest target
@@ -7,17 +7,16 @@
 
 Upstream-Status: Inappropriate
 Signed-off-by: Ross Burton <ross.burton@arm.com>
-
 ---
  Makefile.am | 10 ++++++++++
  1 file changed, 10 insertions(+)
 
 diff --git a/Makefile.am b/Makefile.am
-index 5bc4018..57d27af 100644
+index 0a49d37..1097c63 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -26,6 +26,16 @@ check_PROGRAMS = \
- 	testlimits \
+@@ -27,6 +27,16 @@ check_PROGRAMS = \
+ 	testparser \
  	testrecurse
  
 +ptestdir=$(libexecdir)
diff --git a/poky/meta/recipes-core/libxml/libxml2_2.11.5.bb b/poky/meta/recipes-core/libxml/libxml2_2.12.5.bb
similarity index 92%
rename from poky/meta/recipes-core/libxml/libxml2_2.11.5.bb
rename to poky/meta/recipes-core/libxml/libxml2_2.12.5.bb
index 44336c2..47c1a72 100644
--- a/poky/meta/recipes-core/libxml/libxml2_2.11.5.bb
+++ b/poky/meta/recipes-core/libxml/libxml2_2.12.5.bb
@@ -4,10 +4,11 @@
 BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
 SECTION = "libs"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
-                    file://hash.c;beginline=6;endline=15;md5=e77f77b12cb69e203d8b4090a0eee879 \
+LIC_FILES_CHKSUM = "file://Copyright;md5=fec7ecfe714722b2bb0aaff7d200c701 \
+                    file://dict.c;beginline=6;endline=15;md5=2b4b7b827d2d8b080372433c4c9c85b6 \
                     file://list.c;beginline=4;endline=13;md5=b9c25b021ccaf287e50060602d20f3a7 \
-                    file://trio.c;beginline=5;endline=14;md5=cd4f61e27f88c1d43df112966b1cd28f"
+                    file://trio.c;beginline=5;endline=14;md5=cd4f61e27f88c1d43df112966b1cd28f \
+                    "
 
 DEPENDS = "zlib virtual/libiconv"
 
@@ -19,7 +20,7 @@
            file://install-tests.patch \
            "
 
-SRC_URI[archive.sha256sum] = "3727b078c360ec69fa869de14bd6f75d7ee8d36987b071e6928d4720a28df3a6"
+SRC_URI[archive.sha256sum] = "a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21"
 SRC_URI[testtar.sha256sum] = "c6b2d42ee50b8b236e711a97d68e6c4b5c8d83e69a2be4722379f08702ea7273"
 
 # Disputed as a security issue, but fixed in d39f780
diff --git a/poky/meta/recipes-core/meta/wic-tools.bb b/poky/meta/recipes-core/meta/wic-tools.bb
index 9282d36..76494e7 100644
--- a/poky/meta/recipes-core/meta/wic-tools.bb
+++ b/poky/meta/recipes-core/meta/wic-tools.bb
@@ -4,7 +4,7 @@
 
 DEPENDS = "\
            parted-native gptfdisk-native dosfstools-native \
-           mtools-native bmap-tools-native grub-native cdrtools-native \
+           mtools-native bmaptool-native grub-native cdrtools-native \
            btrfs-tools-native squashfs-tools-native pseudo-native \
            e2fsprogs-native util-linux-native tar-native erofs-utils-native \
            virtual/${TARGET_PREFIX}binutils \
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index ae34a8a..df71695 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -40,7 +40,7 @@
     iptables \
     lsb-release \
     mc \
-    mc-fish \
+    mc-shell \
     mc-helpers \
     mc-helpers-perl \
     parted \
diff --git a/poky/meta/recipes-core/systemd/systemd-boot-native_254.4.bb b/poky/meta/recipes-core/systemd/systemd-boot-native_255.4.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd-boot-native_254.4.bb
rename to poky/meta/recipes-core/systemd/systemd-boot-native_255.4.bb
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_255.1.bb b/poky/meta/recipes-core/systemd/systemd-boot_255.4.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd-boot_255.1.bb
rename to poky/meta/recipes-core/systemd/systemd-boot_255.4.bb
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index 1417e01..a35db50 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -15,7 +15,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d"
+SRCREV = "387a14a7b67b8b76adaed4175e14bb7e39b2f738"
 SRCBRANCH = "v255-stable"
 SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}"
 
diff --git a/poky/meta/recipes-core/systemd/systemd_255.1.bb b/poky/meta/recipes-core/systemd/systemd_255.4.bb
similarity index 98%
rename from poky/meta/recipes-core/systemd/systemd_255.1.bb
rename to poky/meta/recipes-core/systemd/systemd_255.4.bb
index a907d60..d59ca30 100644
--- a/poky/meta/recipes-core/systemd/systemd_255.1.bb
+++ b/poky/meta/recipes-core/systemd/systemd_255.4.bb
@@ -247,6 +247,7 @@
                   -Dsystem-uid-max=999 \
                   -Dsystem-alloc-gid-min=101 \
                   -Dsystem-gid-max=999 \
+                  -Dcreate-log-dirs=false \
                   "
 
 # Hardcode target binary paths to avoid using paths from sysroot or worse
@@ -437,7 +438,7 @@
 "
 SYSTEMD_SERVICE:${PN}-binfmt = "systemd-binfmt.service"
 
-USERADD_PACKAGES = "${PN} ${PN}-extra-utils \
+USERADD_PACKAGES = "${PN} \
                     udev \
                     ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \
                     ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \
@@ -452,7 +453,6 @@
 USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /sbin/nologin systemd-resolve;', '', d)}"
 USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /sbin/nologin systemd-timesync;', '', d)}"
 USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'oomd', '--system -d / -M --shell /sbin/nologin systemd-oom;', '', d)}"
-USERADD_PARAM:${PN}-extra-utils = "--system -d / -M --shell /sbin/nologin systemd-bus-proxy"
 USERADD_PARAM:${PN}-journal-gatewayd = "--system -d / -M --shell /sbin/nologin systemd-journal-gateway"
 USERADD_PARAM:${PN}-journal-remote = "--system -d / -M --shell /sbin/nologin systemd-journal-remote"
 USERADD_PARAM:${PN}-journal-upload = "--system -d / -M --shell /sbin/nologin systemd-journal-upload"
@@ -490,7 +490,7 @@
                       ${systemd_system_unitdir}/systemd-binfmt.service"
 RRECOMMENDS:${PN}-binfmt = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', 'kernel-module-binfmt-misc', '', d)}"
 
-RRECOMMENDS:${PN}-vconsole-setup = "${@bb.utils.contains('PACKAGECONFIG', 'vconsole', 'kbd kbd-consolefonts kbd-keymaps', '', d)}"
+RDEPENDS:${PN}-vconsole-setup = "${@bb.utils.contains('PACKAGECONFIG', 'vconsole', 'kbd kbd-consolefonts kbd-keymaps', '', d)}"
 
 
 FILES:${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \
@@ -591,9 +591,6 @@
                         ${rootlibexecdir}/systemd/systemd-resolve-host \
                         ${rootlibexecdir}/systemd/systemd-ac-power \
                         ${rootlibexecdir}/systemd/systemd-activate \
-                        ${rootlibexecdir}/systemd/systemd-bus-proxyd \
-                        ${systemd_system_unitdir}/systemd-bus-proxyd.service \
-                        ${systemd_system_unitdir}/systemd-bus-proxyd.socket \
                         ${rootlibexecdir}/systemd/systemd-measure \
                         ${rootlibexecdir}/systemd/systemd-pcrphase \
                         ${rootlibexecdir}/systemd/systemd-socket-proxyd \
diff --git a/poky/meta/recipes-core/ttyrun/ttyrun_2.30.0.bb b/poky/meta/recipes-core/ttyrun/ttyrun_2.31.0.bb
similarity index 93%
rename from poky/meta/recipes-core/ttyrun/ttyrun_2.30.0.bb
rename to poky/meta/recipes-core/ttyrun/ttyrun_2.31.0.bb
index 73c6c58..122dd9d 100644
--- a/poky/meta/recipes-core/ttyrun/ttyrun_2.30.0.bb
+++ b/poky/meta/recipes-core/ttyrun/ttyrun_2.31.0.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f5118f167b055bfd7c3450803f1847af"
 
 SRC_URI = "git://github.com/ibm-s390-linux/s390-tools;protocol=https;branch=master"
-SRCREV = "c217f6be6addd4d008f110efa53fbec79681dbfd"
+SRCREV = "6f15ed326491a17d83ca60cd2bda47fb5e8a0175"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb b/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
index 043cb3f..ba622fe 100644
--- a/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
+++ b/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=d40a07c27f535425934bb5001f2037d9"
 
 SRC_URI = "git://git.yoctoproject.org/update-rc.d;branch=master;protocol=https"
-SRCREV = "8636cf478d426b568c1be11dbd9346f67e03adac"
+SRCREV = "b8f950105010270a768aa12245d6abf166346015"
 
 UPSTREAM_CHECK_COMMITS = "1"
 
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-a-possibility-to-specify-where-python-modules-ar.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-a-possibility-to-specify-where-python-modules-ar.patch
index 5846f04..4b1797b 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-a-possibility-to-specify-where-python-modules-ar.patch
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-a-possibility-to-specify-where-python-modules-ar.patch
@@ -1,4 +1,4 @@
-From d3adfc21c9cc264bd191722f102963cbc4794259 Mon Sep 17 00:00:00 2001
+From 980f6edc269fa3ef8d4d4b9cd1aada2328131c19 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 23 May 2018 21:20:35 +0300
 Subject: [PATCH] Add a possibility to specify where python modules are
@@ -11,10 +11,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index 1697794c..8ab38818 100644
+index 374f59b9..ed083f6b 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -651,7 +651,7 @@ endif
+@@ -959,7 +959,7 @@ endif
  ifeq ($(PYTHON_BINDINGS),1)
  install_python: libbtrfsutil_python
  	$(Q)cd libbtrfsutil/python; \
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.5.3.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.7.1.bb
similarity index 95%
rename from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.5.3.bb
rename to poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.7.1.bb
index 6455efd..8132c2c 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.5.3.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.7.1.bb
@@ -18,7 +18,7 @@
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master;protocol=https \
            file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
            "
-SRCREV = "a45c360b64660477c726e192d9e92ceb73a50f80"
+SRCREV = "60abf7a90776c2405f616182ef6129474bbcb109"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ??= " \
@@ -27,7 +27,7 @@
     python \
     crypto-builtin \
 "
-PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, python3-sphinx-native"
+PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, python3-sphinx-native python3-sphinx-rtd-theme-native"
 PACKAGECONFIG[programs] = "--enable-programs,--disable-programs"
 PACKAGECONFIG[convert] = "--enable-convert --with-convert=ext2,--disable-convert --without-convert,e2fsprogs"
 PACKAGECONFIG[zoned] = "--enable-zoned,--disable-zoned"
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch
index 6692b41..fd94222 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-Corretly-install-tmpfiles.d-configuration.patch
@@ -1,11 +1,10 @@
-From 05e059cd4e9910c00b32d377f4f98e3c8dde6bc6 Mon Sep 17 00:00:00 2001
+From f70eb308c837f2c944e23bb680a501a605004d65 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 26 Jan 2017 16:36:20 +0200
-Subject: [PATCH 4/5] Corretly install tmpfiles.d configuration
+Subject: [PATCH] Corretly install tmpfiles.d configuration
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  etc/tmpfiles.d/CMakeLists.txt | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -17,6 +16,3 @@
 @@ -1 +1 @@
 -INSTALL (FILES dnf.conf DESTINATION /usr/lib/tmpfiles.d/)
 +INSTALL (FILES dnf.conf DESTINATION ${SYSCONFDIR}/tmpfiles.d/)
--- 
-2.14.2
-
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch
index cb09f17..37359a5 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch
@@ -1,17 +1,16 @@
-From ffb7942cc73c3d2c6aa7c689cdaf9bc0bcbc144b Mon Sep 17 00:00:00 2001
+From 3ca6d14fbc6419ff6239b4ba16f77da20fb31d03 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 26 Jan 2017 16:25:47 +0200
 Subject: [PATCH] Do not hardcode /etc and systemd unit directories
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  CMakeLists.txt | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 73552967..38cf4fbf 100644
+index 4aee99fb..9e2e9e9e 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
 @@ -3,8 +3,8 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.4)
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
index eb0309d..18f9a30 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-write-the-log-lock-to-root.patch
@@ -1,4 +1,4 @@
-From 3bd0faf58cc9ad531e6b63d5660c4b8316e8daed Mon Sep 17 00:00:00 2001
+From 049e2832284ab883e185d9020c881518a68e6c38 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 28 Apr 2020 15:55:00 +0200
 Subject: [PATCH] dnf: write the log lock to root
@@ -10,7 +10,6 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  dnf/logging.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch
index 448f640..fcd970a 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch
@@ -1,4 +1,4 @@
-From 7e79b3b67fd5cecd7380e7e365fd88eca63b5bfa Mon Sep 17 00:00:00 2001
+From fa32c7dcabaa3c00d3620a3266e49629365c0cbe Mon Sep 17 00:00:00 2001
 From: Jeremy Puhlman <jpuhlman@mvista.com>
 Date: Wed, 11 Mar 2020 22:10:02 +0000
 Subject: [PATCH] set python path for completion_helper
@@ -10,7 +10,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/dnf/cli/completion_helper.py.in b/dnf/cli/completion_helper.py.in
-index 351226759..2835cd3b6 100644
+index 0da0f2a2..9330d15b 100644
 --- a/dnf/cli/completion_helper.py.in
 +++ b/dnf/cli/completion_helper.py.in
 @@ -1,4 +1,4 @@
@@ -19,6 +19,3 @@
  #
  # This file is part of dnf.
  #
--- 
-2.23.0
-
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch b/poky/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch
index 0e11c2e..cfbda11 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0005-Do-not-prepend-installroot-to-logdir.patch
@@ -1,7 +1,7 @@
-From 6365389074a1b86962f3d8b22a2ead2202026a98 Mon Sep 17 00:00:00 2001
+From c6d03b51e2098fc681e6811790bd5dc6597091eb Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 11 Jan 2017 15:10:13 +0200
-Subject: [PATCH 5/5] Do not prepend installroot to logdir.
+Subject: [PATCH] Do not prepend installroot to logdir.
 
 This would otherwise write the logs into rootfs/var/log
 (whereas we want them in $T),
@@ -14,7 +14,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/dnf/cli/cli.py b/dnf/cli/cli.py
-index d2d9c082..82270ecf 100644
+index 1824bd00..4dcb1c1c 100644
 --- a/dnf/cli/cli.py
 +++ b/dnf/cli/cli.py
 @@ -944,7 +944,7 @@ class Cli(object):
@@ -26,6 +26,3 @@
              conf.prepend_installroot(opt)
  
          self.base._logging._setup_from_dnf_conf(conf)
--- 
-2.14.2
-
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
index 5cffc9d..64ea787 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -1,11 +1,10 @@
-From ceb1043c4f3de095e36908232320b74a4128a94e Mon Sep 17 00:00:00 2001
+From d5b154ea69afdcd862299a0b7f255f6ece3686c6 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 30 Dec 2016 18:29:07 +0200
 Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  CMakeLists.txt | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch b/poky/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch
index eedbb57..eb46113 100644
--- a/poky/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch
+++ b/poky/meta/recipes-devtools/dnf/dnf/0030-Run-python-scripts-using-env.patch
@@ -1,20 +1,19 @@
-From 8d97b72a1d77149e2f9048d1ca6cef66da1a8aa5 Mon Sep 17 00:00:00 2001
+From d3556767b84f3687743fdad0a88af0739d736ea9 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 30 Dec 2016 18:29:37 +0200
-Subject: [PATCH 2/5] Run python scripts using env
+Subject: [PATCH] Run python scripts using env
 
 Otherwise the build tools hardcode the python path into them.
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  bin/dnf-automatic.in | 2 +-
  bin/dnf.in           | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/bin/dnf-automatic.in b/bin/dnf-automatic.in
-index 5b06aa26..891b4c24 100755
+index 17e35a05..28827e38 100755
 --- a/bin/dnf-automatic.in
 +++ b/bin/dnf-automatic.in
 @@ -1,4 +1,4 @@
@@ -24,7 +23,7 @@
  #
  # Copyright (C) 2014-2016 Red Hat, Inc.
 diff --git a/bin/dnf.in b/bin/dnf.in
-index 645d0f06..bdf7b3c4 100755
+index 55ceb3f2..e38973c7 100755
 --- a/bin/dnf.in
 +++ b/bin/dnf.in
 @@ -1,4 +1,4 @@
@@ -33,6 +32,3 @@
  # The dnf executable script.
  #
  # Copyright (C) 2012-2016 Red Hat, Inc.
--- 
-2.14.2
-
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.18.2.bb b/poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb
similarity index 98%
rename from poky/meta/recipes-devtools/dnf/dnf_4.18.2.bb
rename to poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb
index dc0c18b..784d7a9 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.18.2.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb
@@ -19,7 +19,7 @@
 
 SRC_URI:append:class-native = "file://0001-dnf-write-the-log-lock-to-root.patch"
 
-SRCREV = "1c43d0999178d492381ad0b43917ffd9c74016f8"
+SRCREV = "566a61f9d8a2830ac6dcc3a94c59224cef1c3d03"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb
similarity index 96%
rename from poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
rename to poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb
index 076ba47..b3b2476 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb
@@ -21,13 +21,11 @@
            file://0001-skip-the-test-when-gcc-not-deployed.patch \
            file://ptest.patch \
            file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
-           file://0001-Add-helper-function-for-basename.patch \
-           file://0001-tests-fix-build-against-upcoming-gcc-14-Werror-callo.patch \
            "
 SRC_URI:append:libc-musl = " \
            file://0003-musl-utils.patch \
            "
-SRC_URI[sha256sum] = "39bd8f1a338e2b7cd4abc3ff11a0eddc6e690f69578a57478d8179b4148708c8"
+SRC_URI[sha256sum] = "df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871"
 
 inherit autotools gettext ptest pkgconfig
 
@@ -69,7 +67,7 @@
 do_install_ptest() {
 	if [ ${PTEST_ENABLED} = "1" ]; then
 		# copy the files which needed by the cases
-		TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip"
+		TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip srcfiles"
 		install -d -m 755                       ${D}${PTEST_PATH}/src
 		install -d -m 755                       ${D}${PTEST_PATH}/lib
 		install -d -m 755                       ${D}${PTEST_PATH}/libelf
@@ -166,6 +164,7 @@
     ${PKGD}${PTEST_PATH}/src/elfclassify \
     ${PKGD}${PTEST_PATH}/src/stack \
     ${PKGD}${PTEST_PATH}/src/unstrip \
+    ${PKGD}${PTEST_PATH}/src/srcfiles \
     ${PKGD}${PTEST_PATH}/libelf/libelf.so \
     ${PKGD}${PTEST_PATH}/libdw/libdw.so \
     ${PKGD}${PTEST_PATH}/libasm/libasm.so \
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-Add-helper-function-for-basename.patch b/poky/meta/recipes-devtools/elfutils/files/0001-Add-helper-function-for-basename.patch
deleted file mode 100644
index 3e6033f..0000000
--- a/poky/meta/recipes-devtools/elfutils/files/0001-Add-helper-function-for-basename.patch
+++ /dev/null
@@ -1,404 +0,0 @@
-From 666372a5d8d5a23203c70d583904097c9e49c5a0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 9 Dec 2023 18:23:03 -0800
-Subject: [PATCH] Add helper function for basename
-
-musl does not provide GNU version of basename and lately have removed
-the definiton from string.h [1] which exposes this problem. It can be
-made to work by providing a local implementation of basename which
-implements the GNU basename behavior, this makes it work across C
-libraries which have POSIX implementation only.
-
-Upstream-Status: Submitted [https://sourceware.org/pipermail/elfutils-devel/2023q4/006727.html]
-[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/Makefile.am                      |  2 +-
- lib/libeu.h                          |  1 +
- lib/{libeu.h => xbasename.c}         | 31 ++++++++++------------------
- libdw/dwarf_getsrc_file.c            |  3 ++-
- libdwfl/core-file.c                  |  3 ++-
- libdwfl/dwfl_module_getsrc_file.c    |  3 ++-
- libdwfl/dwfl_segment_report_module.c |  3 ++-
- libdwfl/find-debuginfo.c             |  7 ++++---
- libdwfl/link_map.c                   |  3 ++-
- libdwfl/linux-kernel-modules.c       |  3 ++-
- src/addr2line.c                      |  5 +++--
- src/ar.c                             |  5 +++--
- src/nm.c                             |  4 ++--
- src/stack.c                          |  3 ++-
- src/strip.c                          |  2 +-
- tests/show-die-info.c                |  2 +-
- tests/varlocs.c                      |  2 +-
- 17 files changed, 42 insertions(+), 40 deletions(-)
- copy lib/{libeu.h => xbasename.c} (57%)
-
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -33,7 +33,7 @@ AM_CPPFLAGS += -I$(srcdir)/../libelf
- 
- noinst_LIBRARIES = libeu.a
- 
--libeu_a_SOURCES = xasprintf.c xstrdup.c xstrndup.c xmalloc.c next_prime.c \
-+libeu_a_SOURCES = xasprintf.c xbasename.c xstrdup.c xstrndup.c xmalloc.c next_prime.c \
- 		  crc32.c crc32_file.c \
- 		  color.c error.c printversion.c
- 
---- a/lib/libeu.h
-+++ b/lib/libeu.h
-@@ -42,6 +42,7 @@ extern char *xstrndup (const char *, siz
- extern char *xasprintf(const char *fmt, ...)
- 	__attribute__ ((format (printf, 1, 2))) __attribute__ ((__malloc__));
- 
-+extern const char *xbasename(const char *s);
- extern uint32_t crc32 (uint32_t crc, unsigned char *buf, size_t len);
- extern int crc32_file (int fd, uint32_t *resp);
- 
---- /dev/null
-+++ b/lib/xbasename.c
-@@ -0,0 +1,39 @@
-+/* Convenience function for basename extraction.
-+   Copyright (C) 2023 Khem Raj.
-+   This file is part of elfutils.
-+
-+   This file is free software; you can redistribute it and/or modify
-+   it under the terms of either
-+
-+     * the GNU Lesser General Public License as published by the Free
-+       Software Foundation; either version 3 of the License, or (at
-+       your option) any later version
-+
-+   or
-+
-+     * the GNU General Public License as published by the Free
-+       Software Foundation; either version 2 of the License, or (at
-+       your option) any later version
-+
-+   or both in parallel, as here.
-+
-+   elfutils is distributed in the hope that it will be useful, but
-+   WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   General Public License for more details.
-+
-+   You should have received copies of the GNU General Public License and
-+   the GNU Lesser General Public License along with this program.  If
-+   not, see <http://www.gnu.org/licenses/>.  */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
-+#include <string.h>
-+
-+const char *
-+xbasename(const char *s) {
-+    const char *p = strrchr(s, '/');
-+    return p ? p+1 : s;
-+}
---- a/libdw/dwarf_getsrc_file.c
-+++ b/libdw/dwarf_getsrc_file.c
-@@ -37,6 +37,7 @@
- #include <string.h>
- 
- #include "libdwP.h"
-+#include "libeu.h"
- 
- 
- int
-@@ -98,7 +99,7 @@ dwarf_getsrc_file (Dwarf *dbg, const cha
- 	      /* Match the name with the name the user provided.  */
- 	      const char *fname2 = line->files->info[lastfile].name;
- 	      if (is_basename)
--		lastmatch = strcmp (basename (fname2), fname) == 0;
-+		lastmatch = strcmp (xbasename (fname2), fname) == 0;
- 	      else
- 		lastmatch = strcmp (fname2, fname) == 0;
- 	    }
---- a/libdwfl/core-file.c
-+++ b/libdwfl/core-file.c
-@@ -29,6 +29,7 @@
- 
- #include <config.h>
- #include "libelfP.h"	/* For NOTE_ALIGN.  */
-+#include "libeu.h"
- #include "libdwflP.h"
- #include <gelf.h>
- 
-@@ -595,7 +596,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *
-       if (! __libdwfl_dynamic_vaddr_get (module->elf, &file_dynamic_vaddr))
- 	continue;
-       Dwfl_Module *mod;
--      mod = __libdwfl_report_elf (dwfl, basename (module->name), module->name,
-+      mod = __libdwfl_report_elf (dwfl, xbasename (module->name), module->name,
- 				  module->fd, module->elf,
- 				  module->l_ld - file_dynamic_vaddr,
- 				  true, true);
---- a/libdwfl/dwfl_module_getsrc_file.c
-+++ b/libdwfl/dwfl_module_getsrc_file.c
-@@ -31,6 +31,7 @@
- #endif
- 
- #include "libdwflP.h"
-+#include "libeu.h"
- #include "libdwP.h"
- 
- 
-@@ -103,7 +104,7 @@ dwfl_module_getsrc_file (Dwfl_Module *mo
- 		{
- 		  /* Match the name with the name the user provided.  */
- 		  lastfile = file;
--		  lastmatch = !strcmp (is_basename ? basename (file) : file,
-+		  lastmatch = !strcmp (is_basename ? xbasename (file) : file,
- 				       fname);
- 		}
- 	    }
---- a/libdwfl/dwfl_segment_report_module.c
-+++ b/libdwfl/dwfl_segment_report_module.c
-@@ -29,6 +29,7 @@
- 
- #include <config.h>
- #include "libelfP.h"	/* For NOTE_ALIGN4 and NOTE_ALIGN8.  */
-+#include "libeu.h"
- #include "libdwflP.h"
- #include "common.h"
- 
-@@ -718,7 +719,7 @@ dwfl_segment_report_module (Dwfl *dwfl,
- 	      bias += fixup;
- 	      if (module->name[0] != '\0')
- 		{
--		  name = basename (module->name);
-+		  name = xbasename (module->name);
- 		  name_is_final = true;
- 		}
- 	      break;
---- a/libdwfl/find-debuginfo.c
-+++ b/libdwfl/find-debuginfo.c
-@@ -31,6 +31,7 @@
- #endif
- 
- #include "libdwflP.h"
-+#include "libeu.h"
- #include <stdio.h>
- #include <fcntl.h>
- #include <sys/stat.h>
-@@ -164,7 +165,7 @@ find_debuginfo_in_path (Dwfl_Module *mod
- {
-   bool cancheck = debuglink_crc != (GElf_Word) 0;
- 
--  const char *file_basename = file_name == NULL ? NULL : basename (file_name);
-+  const char *file_basename = file_name == NULL ? NULL : xbasename (file_name);
-   char *localname = NULL;
- 
-   /* We invent a debuglink .debug name if NULL, but then want to try the
-@@ -278,7 +279,7 @@ find_debuginfo_in_path (Dwfl_Module *mod
- 	  else
- 	    {
- 	      subdir = NULL;
--	      file = basename (debuglink_file);
-+	      file = xbasename (debuglink_file);
- 	    }
- 	  try_file_basename = debuglink_null;
- 	  break;
-@@ -306,7 +307,7 @@ find_debuginfo_in_path (Dwfl_Module *mod
- 	    if (mod->dw != NULL && (p[0] == '\0' || p[0] == '/'))
- 	      {
- 		fd = try_open (&main_stat, dir, ".dwz",
--			       basename (file), &fname);
-+			       xbasename (file), &fname);
- 		if (fd < 0)
- 		  {
- 		    if (errno != ENOENT && errno != ENOTDIR)
---- a/libdwfl/link_map.c
-+++ b/libdwfl/link_map.c
-@@ -29,6 +29,7 @@
- 
- #include <config.h>
- #include "libdwflP.h"
-+#include "libeu.h"
- #include "memory-access.h"
- #include "system.h"
- 
-@@ -469,7 +470,7 @@ report_r_debug (uint_fast8_t elfclass, u
- 		      if (r_debug_info_module == NULL)
- 			{
- 			  // XXX hook for sysroot
--			  mod = __libdwfl_report_elf (dwfl, basename (name),
-+			  mod = __libdwfl_report_elf (dwfl, xbasename (name),
- 						      name, fd, elf, base,
- 						      true, true);
- 			  if (mod != NULL)
---- a/libdwfl/linux-kernel-modules.c
-+++ b/libdwfl/linux-kernel-modules.c
-@@ -40,6 +40,7 @@
- #include <system.h>
- 
- #include "libelfP.h"
-+#include "libeu.h"
- #include "libdwflP.h"
- #include <inttypes.h>
- #include <errno.h>
-@@ -116,7 +117,7 @@ try_kernel_name (Dwfl *dwfl, char **fnam
- 	/* Try the file's unadorned basename as DEBUGLINK_FILE,
- 	   to look only for "vmlinux" files.  */
- 	fd = INTUSE(dwfl_standard_find_debuginfo) (&fakemod, NULL, NULL, 0,
--						   *fname, basename (*fname),
-+						   *fname, xbasename (*fname),
- 						   0, &fakemod.debug.name);
- 
-       if (fakemod.debug.name != NULL)
---- a/src/addr2line.c
-+++ b/src/addr2line.c
-@@ -38,6 +38,7 @@
- 
- #include <system.h>
- #include <printversion.h>
-+#include "libeu.h"
- 
- 
- /* Name and version of program.  */
-@@ -385,7 +386,7 @@ print_dwarf_function (Dwfl_Module *mod,
- 		  if (file == NULL)
- 		    file = "???";
- 		  else if (only_basenames)
--		    file = basename (file);
-+		    file = xbasename (file);
- 		  else if (use_comp_dir && file[0] != '/')
- 		    {
- 		      const char *const *dirs;
-@@ -568,7 +569,7 @@ print_src (const char *src, int lineno,
-   const char *comp_dir_sep = "";
- 
-   if (only_basenames)
--    src = basename (src);
-+    src = xbasename (src);
-   else if (use_comp_dir && src[0] != '/')
-     {
-       Dwarf_Attribute attr;
---- a/src/ar.c
-+++ b/src/ar.c
-@@ -42,6 +42,7 @@
- #include <printversion.h>
- 
- #include "arlib.h"
-+#include "libeu.h"
- 
- 
- /* Name and version of program.  */
-@@ -1133,7 +1134,7 @@ do_oper_insert (int oper, const char *ar
-       for (int cnt = 0; cnt < argc; ++cnt)
- 	{
- 	  ENTRY entry;
--	  entry.key = full_path ? argv[cnt] : basename (argv[cnt]);
-+	  entry.key = full_path ? argv[cnt] : (char*)xbasename (argv[cnt]);
- 	  entry.data = &argv[cnt];
- 	  if (hsearch (entry, ENTER) == NULL)
- 	    error_exit (errno, _("cannot insert into hash table"));
-@@ -1242,7 +1243,7 @@ do_oper_insert (int oper, const char *ar
-       /* Open all the new files, get their sizes and add all symbols.  */
-       for (int cnt = 0; cnt < argc; ++cnt)
- 	{
--	  const char *bname = basename (argv[cnt]);
-+	  const char *bname = xbasename (argv[cnt]);
- 	  size_t bnamelen = strlen (bname);
- 	  if (found[cnt] == NULL)
- 	    {
---- a/src/nm.c
-+++ b/src/nm.c
-@@ -1417,7 +1417,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehd
- 			  int lineno;
- 			  (void) dwarf_lineno (line, &lineno);
- 			  const char *file = dwarf_linesrc (line, NULL, NULL);
--			  file = (file != NULL) ? basename (file) : "???";
-+			  file = (file != NULL) ? xbasename (file) : "???";
- 			  int n;
- 			  n = obstack_printf (&whereob, "%s:%d%c", file,
- 					      lineno, '\0');
-@@ -1448,7 +1448,7 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehd
- 		{
- 		  /* We found the line.  */
- 		  int n = obstack_printf (&whereob, "%s:%" PRIu64 "%c",
--					  basename ((*found)->file),
-+					  xbasename ((*found)->file),
- 					  (*found)->lineno,
- 					  '\0');
- 		  sym_mem[nentries_used].where = obstack_finish (&whereob);
---- a/src/stack.c
-+++ b/src/stack.c
-@@ -31,6 +31,7 @@
- #include <system.h>
- #include <printversion.h>
- 
-+#include "libeu.h"
- /* Name and version of program.  */
- ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
- 
-@@ -152,7 +153,7 @@ module_callback (Dwfl_Module *mod, void
- 
-   int width = get_addr_width (mod);
-   printf ("0x%0*" PRIx64 "-0x%0*" PRIx64 " %s\n",
--	  width, start, width, end, basename (name));
-+	  width, start, width, end, xbasename (name));
- 
-   const unsigned char *id;
-   GElf_Addr id_vaddr;
---- a/src/strip.c
-+++ b/src/strip.c
-@@ -1807,7 +1807,7 @@ handle_elf (int fd, Elf *elf, const char
- 		      elf_errmsg (-1));
- 	}
- 
--      char *debug_basename = basename (debug_fname_embed ?: debug_fname);
-+      const char *debug_basename = xbasename (debug_fname_embed ?: debug_fname);
-       off_t crc_offset = strlen (debug_basename) + 1;
-       /* Align to 4 byte boundary */
-       crc_offset = ((crc_offset - 1) & ~3) + 4;
---- a/tests/show-die-info.c
-+++ b/tests/show-die-info.c
-@@ -26,6 +26,7 @@
- #include <string.h>
- #include <unistd.h>
- 
-+#include "../lib/libeu.h"
- #include "../libdw/known-dwarf.h"
- 
- static const char *
-@@ -318,7 +319,7 @@ main (int argc, char *argv[])
-       int fd = open (argv[cnt], O_RDONLY);
-       Dwarf *dbg;
- 
--      printf ("file: %s\n", basename (argv[cnt]));
-+      printf ("file: %s\n", xbasename (argv[cnt]));
- 
-       dbg = dwarf_begin (fd, DWARF_C_READ);
-       if (dbg == NULL)
---- a/tests/varlocs.c
-+++ b/tests/varlocs.c
-@@ -33,6 +33,7 @@
- 
- #include "system.h"
- #include "../libdw/known-dwarf.h"
-+#include "../lib/libeu.h"
- 
- // The Dwarf, Dwarf_CFIs and address bias of
- // cfi table to adjust DWARF addresses against.
-@@ -1120,7 +1121,7 @@ main (int argc, char *argv[])
- 
- 	  const char *name = (modname[0] != '\0'
- 			      ? modname
--			      :  basename (mainfile));
-+			      :  xbasename (mainfile));
- 	  printf ("module '%s'\n", name);
- 	  print_die (&cudie, "CU", 0);
- 
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -692,7 +692,7 @@ update1_LDADD = $(libelf)
- update2_LDADD = $(libelf)
- update3_LDADD = $(libdw) $(libelf)
- update4_LDADD = $(libdw) $(libelf)
--show_die_info_LDADD = $(libdw) $(libelf)
-+show_die_info_LDADD = $(libeu) $(libdw) $(libelf)
- get_pubnames_LDADD = $(libdw) $(libelf)
- show_abbrev_LDADD = $(libdw) $(libelf)
- get_lines_LDADD = $(libdw) $(libelf)
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch b/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch
index 6acc036..4f7539b 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch
@@ -1,4 +1,4 @@
-From c5fb59ac0819b5b6d8244c613cbcf92cb09840c1 Mon Sep 17 00:00:00 2001
+From 63070df4b0dc7af37a720915b5e6494204463c9a Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 15 Aug 2017 17:10:57 +0800
 Subject: [PATCH] dso link change
@@ -16,31 +16,30 @@
 Rebase to 0.170
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  src/Makefile.am   | 2 +-
  tests/Makefile.am | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/Makefile.am b/src/Makefile.am
-index 88d0ac8..c28d81f 100644
+index 1d592d4..853eda4 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -45,7 +45,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread
- libelf = ../libelf/libelf.a -lz
+@@ -50,7 +50,7 @@ libdebuginfod =
+ endif
  else
  libasm = ../libasm/libasm.so
 -libdw = ../libdw/libdw.so
 +libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl
  libelf = ../libelf/libelf.so
- endif
- libebl = ../libebl/libebl.a ../backends/libebl_backends.a ../libcpu/libcpu.a
+ if LIBDEBUGINFOD
+ libdebuginfod = ../debuginfod/libdebuginfod.so
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index c145720..72afd0e 100644
+index 9141074..ee49d07 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -554,7 +554,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
- libelf = ../libelf/libelf.a -lz
+@@ -694,7 +694,7 @@ libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread
+ libelf = ../libelf/libelf.a -lz $(zstd_LIBS)
  libasm = ../libasm/libasm.a
  else
 -libdw = ../libdw/libdw.so
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch b/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch
index 09c9d3e..a9f5e03 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch
@@ -1,4 +1,4 @@
-From ed1975deeaa47f98d212fd144c8bda075b1a5d36 Mon Sep 17 00:00:00 2001
+From 46d9d889a07fc9f9f089f800e5c0e895889c44ae Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 4 Oct 2017 22:30:46 -0700
 Subject: [PATCH] libasm may link with libbz2 if found
@@ -11,26 +11,29 @@
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  src/Makefile.am | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/Makefile.am b/src/Makefile.am
-index c28d81f..951e978 100644
+index 853eda4..da7f3b4 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -40,11 +40,11 @@ EXTRA_DIST += make-debug-archive.in
+@@ -40,7 +40,7 @@ EXTRA_DIST += make-debug-archive.in
  CLEANFILES += make-debug-archive
  
  if BUILD_STATIC
 -libasm = ../libasm/libasm.a
 +libasm = ../libasm/libasm.a $(zip_LIBS)
  libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread
- libelf = ../libelf/libelf.a -lz
+ libelf = ../libelf/libelf.a -lz $(zstd_LIBS)
+ if LIBDEBUGINFOD
+@@ -49,7 +49,7 @@ else
+ libdebuginfod =
+ endif
  else
 -libasm = ../libasm/libasm.so
 +libasm = ../libasm/libasm.so $(zip_LIBS)
  libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl
  libelf = ../libelf/libelf.so
- endif
+ if LIBDEBUGINFOD
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch b/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch
index c8d55d5..57e4b38 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch
@@ -1,4 +1,4 @@
-From f40cbd43acdb1fefef4fa53a6034296d83cbff7d Mon Sep 17 00:00:00 2001
+From 19d9e9d838e74e4a0a22f08ae03167380f8aa490 Mon Sep 17 00:00:00 2001
 From: Robert Yang <liezhi.yang@windriver.com>
 Date: Thu, 16 Aug 2018 09:58:26 +0800
 Subject: [PATCH] libelf/elf_end.c: check data_list.data.d.d_buf before free it
@@ -14,16 +14,15 @@
 Upstream-Status: Submitted [https://sourceware.org/ml/elfutils-devel/2018-q3/msg00085.html]
 
 Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
 ---
  libelf/elf_end.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/libelf/elf_end.c b/libelf/elf_end.c
-index 160f0b8..5280a70 100644
+index 80f4d13..b103959 100644
 --- a/libelf/elf_end.c
 +++ b/libelf/elf_end.c
-@@ -160,14 +160,16 @@ elf_end (Elf *elf)
+@@ -169,14 +169,16 @@ elf_end (Elf *elf)
  		   architecture doesn't require overly stringent
  		   alignment the raw data buffer is the same as the
  		   one used for presenting to the caller.  */
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch b/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
index 0e6bf55..096361e 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch
@@ -1,4 +1,4 @@
-From 2fa52d61b1abdf4a3f3b153c771fb2081666430c Mon Sep 17 00:00:00 2001
+From f9ab54454000fd210dbaa92cf516084d05060f9d Mon Sep 17 00:00:00 2001
 From: Mingli Yu <Mingli.Yu@windriver.com>
 Date: Tue, 21 May 2019 15:20:34 +0800
 Subject: [PATCH] skip the test when gcc not deployed
@@ -9,7 +9,6 @@
 Upstream-Status: Submitted [https://sourceware.org/ml/elfutils-devel/2019-q2/msg00091.html]
 
 Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
-
 ---
  tests/run-disasm-x86-64.sh | 2 ++
  tests/run-disasm-x86.sh    | 2 ++
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch
index a2c0b90..d410eb1 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch
@@ -1,4 +1,4 @@
-From e355ca3b8ddcc6e73ee140f53d25634afdaec0da Mon Sep 17 00:00:00 2001
+From 2d4dfb814dda02193e49c9203147cf73e6d3f8b7 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 23 Jun 2020 07:49:35 +0000
 Subject: [PATCH] tests/Makefile.am: compile test_nlist with standard CFLAGS
@@ -8,16 +8,15 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  tests/Makefile.am | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 2ade5d9..f85cdba 100644
+index 3bd8e58..370c6a8 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -98,7 +98,7 @@ endif
+@@ -103,7 +103,7 @@ endif
  test-nlist$(EXEEXT): test-nlist.c
  	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
  	  $(AM_CPPFLAGS) $(CPPFLAGS) \
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-tests-fix-build-against-upcoming-gcc-14-Werror-callo.patch b/poky/meta/recipes-devtools/elfutils/files/0001-tests-fix-build-against-upcoming-gcc-14-Werror-callo.patch
deleted file mode 100644
index 5e0c7e9..0000000
--- a/poky/meta/recipes-devtools/elfutils/files/0001-tests-fix-build-against-upcoming-gcc-14-Werror-callo.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 901c6a8c78c3c4eee244b9d5298cbd7b9aa713d1 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyich@gmail.com>
-Date: Thu, 21 Dec 2023 09:23:30 +0000
-Subject: [PATCH] tests: fix build against upcoming `gcc-14`
- (`-Werror=calloc-transposed-args`)
-
-`gcc-14` added a new `-Wcalloc-transposed-args` warning recently. It
-detected minor infelicity in `calloc()` API usage in `elfutils`:
-
-    elfstrmerge.c: In function 'main':
-    elfstrmerge.c:450:32: error:
-      'calloc' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
-      450 |   newscnbufs = calloc (sizeof (void *), newshnums);
-          |                                ^~~~
-    elfstrmerge.c:450:32: note: earlier argument should specify number of elements, later size of each element
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=ae580d48278b9924da7503886b37be34378e1b04]
-Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/elfstrmerge.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/elfstrmerge.c b/tests/elfstrmerge.c
-index 56350bb..4eb58bb 100644
---- a/tests/elfstrmerge.c
-+++ b/tests/elfstrmerge.c
-@@ -447,7 +447,7 @@ main (int argc, char **argv)
-     }
- 
-   newshnums = shdrnum - 1;
--  newscnbufs = calloc (sizeof (void *), newshnums);
-+  newscnbufs = calloc (newshnums, sizeof (void *));
-   if (newscnbufs == NULL)
-     fail_errno ("Couldn't allocate memory for new section buffers", NULL);
- 
--- 
-2.43.0
-
diff --git a/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch b/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch
index be48ef0..fa2282b 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch
@@ -1,4 +1,4 @@
-From 1643d793761216252bb654e28aaa5b8eb1536bca Mon Sep 17 00:00:00 2001
+From d8f07a23d608b744dcc0592f9f32f258b186a77c Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 15 Aug 2017 17:13:59 +0800
 Subject: [PATCH] Fix elf_cvt_gunhash if dest and src are same.
@@ -12,16 +12,15 @@
 
 Rebase to 0.170
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  libelf/gnuhash_xlate.h | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/libelf/gnuhash_xlate.h b/libelf/gnuhash_xlate.h
-index 6faf113..04d9ca1 100644
+index 3a00ae0..40468fc 100644
 --- a/libelf/gnuhash_xlate.h
 +++ b/libelf/gnuhash_xlate.h
-@@ -40,6 +40,7 @@ elf_cvt_gnuhash (void *dest, const void *src, size_t len, int encode)
+@@ -42,6 +42,7 @@ elf_cvt_gnuhash (void *dest, const void *src, size_t len, int encode)
       words.  We must detangle them here.   */
    Elf32_Word *dest32 = dest;
    const Elf32_Word *src32 = src;
@@ -29,7 +28,7 @@
  
    /* First four control words, 32 bits.  */
    for (unsigned int cnt = 0; cnt < 4; ++cnt)
-@@ -50,7 +51,7 @@ elf_cvt_gnuhash (void *dest, const void *src, size_t len, int encode)
+@@ -52,7 +53,7 @@ elf_cvt_gnuhash (void *dest, const void *src, size_t len, int encode)
        len -= 4;
      }
  
diff --git a/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch b/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch
index 212b358..e8b986e 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch
@@ -1,4 +1,4 @@
-From 7e1f91c42ef5b0bf10afefec10dd08588df3ab1f Mon Sep 17 00:00:00 2001
+From 614f062b22e6da108643f8644a3e92a1108f2b9b Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 15 Aug 2017 17:17:20 +0800
 Subject: [PATCH] fixheadercheck
@@ -16,16 +16,15 @@
 
 Rebase to 0.170
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  libelf/elf32_updatenull.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/libelf/elf32_updatenull.c b/libelf/elf32_updatenull.c
-index d0d4d1e..4ecf5a5 100644
+index 3594e8b..a3314e5 100644
 --- a/libelf/elf32_updatenull.c
 +++ b/libelf/elf32_updatenull.c
-@@ -354,8 +354,8 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
+@@ -355,8 +355,8 @@ __elfw2(LIBELFBITS,updatenull_wrlock) (Elf *elf, int *change_bop, size_t shnum)
  		     we test for the alignment of the section being large
  		     enough for the largest alignment required by a data
  		     block.  */
diff --git a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
index 93f5bdc..230ea88 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch
@@ -1,4 +1,4 @@
-From 262ac90394e36e0b4e86042d9c5385703f5b6536 Mon Sep 17 00:00:00 2001
+From aab5985a29bd7ab6e0b06eaab190b42a04e10f70 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Fri, 23 Aug 2019 10:19:48 +0800
 Subject: [PATCH] musl-utils
@@ -13,7 +13,6 @@
 
 Rebase to 0.177
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  src/arlib.h       | 6 ++++++
  src/elfcompress.c | 7 +++++++
@@ -39,7 +38,7 @@
  /* State of -D/-U flags.  */
  extern bool arlib_deterministic_output;
 diff --git a/src/elfcompress.c b/src/elfcompress.c
-index 18ade66..a6ed4e1 100644
+index f771b92..263de62 100644
 --- a/src/elfcompress.c
 +++ b/src/elfcompress.c
 @@ -37,6 +37,13 @@
@@ -57,7 +56,7 @@
  ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
  
 diff --git a/src/strip.c b/src/strip.c
-index 2a2cc80..8e9f773 100644
+index 6436443..1608496 100644
 --- a/src/strip.c
 +++ b/src/strip.c
 @@ -45,6 +45,13 @@
@@ -75,7 +74,7 @@
  
  /* Name and version of program.  */
 diff --git a/src/unstrip.c b/src/unstrip.c
-index d5bd182..d797823 100644
+index d70053d..b8a6ff3 100644
 --- a/src/unstrip.c
 +++ b/src/unstrip.c
 @@ -51,6 +51,15 @@
diff --git a/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch b/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch
index 8942ad7..149e0e6 100644
--- a/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch
@@ -1,4 +1,4 @@
-From 2396fd67d81e54e18fbad67a5ff67d5684a01013 Mon Sep 17 00:00:00 2001
+From 4409f128c81a9d76b9360b002a1d76043c77b53e Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 15 Aug 2017 17:27:30 +0800
 Subject: [PATCH] Fix build on aarch64/musl
@@ -16,7 +16,6 @@
 
 Rebase to 0.170
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  backends/aarch64_initreg.c | 4 ++--
  backends/arm_initreg.c     | 2 +-
diff --git a/poky/meta/recipes-devtools/elfutils/files/ptest.patch b/poky/meta/recipes-devtools/elfutils/files/ptest.patch
index fe6f272..2152875 100644
--- a/poky/meta/recipes-devtools/elfutils/files/ptest.patch
+++ b/poky/meta/recipes-devtools/elfutils/files/ptest.patch
@@ -1,4 +1,4 @@
-From bfbf393e7d5b1b41df85ce1c37e887776c45d529 Mon Sep 17 00:00:00 2001
+From d49f6a135762ec1f1831d0e80b8df2a4269b0a66 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Wed, 1 May 2019 16:37:48 +0100
 Subject: [PATCH] Changes to allow ptest to run standalone on target:
@@ -14,7 +14,6 @@
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
 Upstream-Status: Inappropriate [oe specific]
-
 ---
  configure.ac       | 2 +-
  tests/Makefile.am  | 2 ++
@@ -22,10 +21,10 @@
  3 files changed, 3 insertions(+), 7 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index d345495..67933d1 100644
+index bbe8673..488712b 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -48,7 +48,7 @@ AC_COPYRIGHT([Copyright (C) 1996-2021 The elfutils developers.])
+@@ -49,7 +49,7 @@ AC_COPYRIGHT([Copyright (C) 1996-2024 The elfutils developers.])
  AC_PREREQ(2.63)			dnl Minimum Autoconf version required.
  
  dnl We use GNU make extensions; automake 1.10 defaults to -Wportability.
@@ -35,10 +34,10 @@
  
  AM_SILENT_RULES([yes])
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 72afd0e..a2dfd43 100644
+index ee49d07..3bd8e58 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -698,3 +698,5 @@ check: check-am coverage
+@@ -852,3 +852,5 @@ check: check-am coverage
  coverage:
  	-$(srcdir)/coverage.sh
  endif
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_14.1.bb b/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_14.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gdb/gdb-cross-canadian_14.1.bb
rename to poky/meta/recipes-devtools/gdb/gdb-cross-canadian_14.2.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb-cross_14.1.bb b/poky/meta/recipes-devtools/gdb/gdb-cross_14.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gdb/gdb-cross_14.1.bb
rename to poky/meta/recipes-devtools/gdb/gdb-cross_14.2.bb
diff --git a/poky/meta/recipes-devtools/gdb/gdb.inc b/poky/meta/recipes-devtools/gdb/gdb.inc
index eb480f3..81ac441 100644
--- a/poky/meta/recipes-devtools/gdb/gdb.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb.inc
@@ -14,4 +14,4 @@
            file://0007-Fix-invalid-sigprocmask-call.patch \
            file://0008-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
            "
-SRC_URI[sha256sum] = "d66df51276143451fcbff464cc8723d68f1e9df45a6a2d5635a54e71643edb80"
+SRC_URI[sha256sum] = "2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772"
diff --git a/poky/meta/recipes-devtools/gdb/gdb_14.1.bb b/poky/meta/recipes-devtools/gdb/gdb_14.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gdb/gdb_14.1.bb
rename to poky/meta/recipes-devtools/gdb/gdb_14.2.bb
diff --git a/poky/meta/recipes-devtools/go/go-1.20.14.inc b/poky/meta/recipes-devtools/go/go-1.22.0.inc
similarity index 80%
rename from poky/meta/recipes-devtools/go/go-1.20.14.inc
rename to poky/meta/recipes-devtools/go/go-1.22.0.inc
index 7e425ef..5b94051 100644
--- a/poky/meta/recipes-devtools/go/go-1.20.14.inc
+++ b/poky/meta/recipes-devtools/go/go-1.22.0.inc
@@ -11,8 +11,8 @@
     file://0004-make.bash-override-CC-when-building-dist-and-go_boot.patch \
     file://0005-cmd-dist-separate-host-and-target-builds.patch \
     file://0006-cmd-go-make-GOROOT-precious-by-default.patch \
-    file://0007-exec.go-do-not-write-linker-flags-into-buildids.patch \
     file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
     file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
+    file://0001-exec.go-filter-out-build-specific-paths-from-linker-.patch \
 "
-SRC_URI[main.sha256sum] = "1aef321a0e3e38b7e91d2d7eb64040666cabdcc77d383de3c9522d0d69b67f4e"
+SRC_URI[main.sha256sum] = "4d196c3d41a0d6c1dfc64d04e3cc1f608b0c436bd87b7060ce3e23234e1f4d5c"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.20.14.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.22.0.bb
similarity index 78%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.22.0.bb
index 95211e6..acd2018 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.20.14.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.22.0.bb
@@ -9,9 +9,9 @@
 
 # Checksums available at https://go.dev/dl/
 SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "ff445e48af27f93f66bd949ae060d97991c83e11289009d311f25426258f9c44"
-SRC_URI[go_linux_arm64.sha256sum] = "2096507509a98782850d1f0669786c09727053e9fe3c92b03c0d96f48700282b"
-SRC_URI[go_linux_ppc64le.sha256sum] = "237b1da9b65629a9b0fcf1f3ca75b4c84ef55fca1fc3eadf1681da7bbcb2e9cd"
+SRC_URI[go_linux_amd64.sha256sum] = "f6c8a87aa03b92c4b0bf3d558e28ea03006eb29db78917daec5cfb6ec1046265"
+SRC_URI[go_linux_arm64.sha256sum] = "6a63fef0e050146f275bf02a0896badfe77c11b6f05499bb647e7bd613a45a10"
+SRC_URI[go_linux_ppc64le.sha256sum] = "0e57f421df9449066f00155ce98a5be93744b3d81b00ee4c2c9b511be2a31d93"
 
 UPSTREAM_CHECK_URI = "https://golang.org/dl/"
 UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian.inc b/poky/meta/recipes-devtools/go/go-cross-canadian.inc
index 8298fe3..dd485b6 100644
--- a/poky/meta/recipes-devtools/go/go-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/go/go-cross-canadian.inc
@@ -16,7 +16,7 @@
 export GOTOOLDIR_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/${HOST_SYS}/go/pkg/tool/${BUILD_GOTUPLE}"
 export CGO_CFLAGS = "${CFLAGS}"
 export CGO_LDFLAGS = "${LDFLAGS}"
-export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "--sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS} ${HOST_CC_ARCH} ${LDFLAGS}"'
+export GO_LDFLAGS = '-extld ${HOST_PREFIX}gcc -extldflags "--sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS} ${HOST_CC_ARCH} ${LDFLAGS}"'
 
 do_configure[noexec] = "1"
 
diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.20.14.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.22.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.22.0.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.20.14.bb b/poky/meta/recipes-devtools/go/go-cross_1.22.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.22.0.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.20.14.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.22.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.22.0.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.20.14.bb b/poky/meta/recipes-devtools/go/go-native_1.22.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go-native_1.22.0.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.20.14.bb b/poky/meta/recipes-devtools/go/go-runtime_1.22.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.22.0.bb
diff --git a/poky/meta/recipes-devtools/go/go-target.inc b/poky/meta/recipes-devtools/go/go-target.inc
index a4b55ad..981c7ab 100644
--- a/poky/meta/recipes-devtools/go/go-target.inc
+++ b/poky/meta/recipes-devtools/go/go-target.inc
@@ -13,9 +13,7 @@
 export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-prefix-map'), d.getVar('LDFLAGS').split())) }"
 
 export GOCACHE = "${B}/.cache"
-GO_LDFLAGS = ""
-GO_LDFLAGS:class-nativesdk = " -linkmode external"
-export GO_LDFLAGS
+export GO_LDFLAGS = ""
 export GOBUILDFLAGS = "-gcflags=-trimpath=$GOPATH -asmflags=-trimpath=$GOPATH -trimpath"
 CC:append:class-nativesdk = " ${SECURITY_NOPIE_CFLAGS}"
 
diff --git a/poky/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch b/poky/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
index 9a25510..564837c 100644
--- a/poky/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
+++ b/poky/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
@@ -1,4 +1,4 @@
-From 10766ca6f4007b96e3f6bf4fb496e5df74397eb9 Mon Sep 17 00:00:00 2001
+From 9a6c5040cbcd88b10ceb8ceaebc8d6158c086670 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 28 Mar 2022 10:59:03 -0700
 Subject: [PATCH 1/9] cmd/go: make content-based hash generation less pedantic
@@ -25,16 +25,17 @@
 Signed-off-by: Alex Kube <alexander.j.kube@gmail.com>
 Signed-off-by: Matt Madison <matt@madison.systems>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/go/internal/envcmd/env.go |  2 +-
  src/cmd/go/internal/work/exec.go  | 44 ++++++++++++++++++++++++-------
  2 files changed, 36 insertions(+), 10 deletions(-)
 
 diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
-index 66ef5ce..fb7448a 100644
+index c7c2e83e0f..4a90d9da5c 100644
 --- a/src/cmd/go/internal/envcmd/env.go
 +++ b/src/cmd/go/internal/envcmd/env.go
-@@ -183,7 +183,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
+@@ -189,7 +189,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
  		}
  	}()
  
@@ -44,10 +45,10 @@
  		// Should not happen - b.CFlags was given an empty package.
  		fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
 diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index 67d1193..62e1774 100644
+index e05471b06c..9724cd07d0 100644
 --- a/src/cmd/go/internal/work/exec.go
 +++ b/src/cmd/go/internal/work/exec.go
-@@ -223,6 +223,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
+@@ -232,6 +232,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
  	writeActionGraph()
  }
  
@@ -56,7 +57,7 @@
  // buildActionID computes the action ID for a build action.
  func (b *Builder) buildActionID(a *Action) cache.ActionID {
  	p := a.Package
-@@ -244,7 +246,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -253,7 +255,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
  		if p.Module != nil {
  			fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version)
  		}
@@ -65,7 +66,7 @@
  		// The Go compiler always hides the exact value of $GOROOT
  		// when building things in GOROOT.
  		//
-@@ -276,9 +278,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -285,9 +287,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
  	}
  	if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 {
  		fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
@@ -77,7 +78,7 @@
  		fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, ldflags)
  		// Include the C compiler tool ID so that if the C
  		// compiler changes we rebuild the package.
-@@ -286,14 +288,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -295,14 +297,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
  			fmt.Fprintf(h, "CC ID=%q\n", ccID)
  		}
  		if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
@@ -94,16 +95,16 @@
  			fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
  			if fcID, _, err := b.gccToolID(fcExe[0], "f95"); err == nil {
  				fmt.Fprintf(h, "FC ID=%q\n", fcID)
-@@ -310,7 +312,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -319,7 +321,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
  		}
  	}
- 	if p.Internal.BuildInfo != "" {
--		fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
-+		//fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
+ 	if p.Internal.BuildInfo != nil {
+-		fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo.String())
++		//fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo.String())
  	}
  
  	// Configuration specific to compiler toolchain.
-@@ -2989,8 +2991,25 @@ func envList(key, def string) []string {
+@@ -2679,8 +2681,25 @@ func envList(key, def string) []string {
  	return args
  }
  
@@ -130,7 +131,7 @@
  	if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
  		return
  	}
-@@ -3006,6 +3025,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
+@@ -2696,6 +2715,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
  	if ldflags, err = buildFlags("LDFLAGS", defaultCFlags, p.CgoLDFLAGS, checkLinkerFlags); err != nil {
  		return
  	}
@@ -144,24 +145,24 @@
  
  	return
  }
-@@ -3021,7 +3047,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
- 
- func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
+@@ -2713,7 +2739,7 @@ func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgo
  	p := a.Package
+ 	sh := b.Shell(a)
+ 
 -	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p)
 +	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false)
  	if err != nil {
  		return nil, nil, err
  	}
-@@ -3577,7 +3603,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
+@@ -3268,7 +3294,7 @@ func (b *Builder) swigOne(a *Action, file, objdir string, pcCFLAGS []string, cxx
+ 	p := a.Package
+ 	sh := b.Shell(a)
  
- // Run SWIG on one SWIG input file.
- func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
 -	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p)
 +	cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false)
  	if err != nil {
  		return "", "", err
  	}
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0001-exec.go-filter-out-build-specific-paths-from-linker-.patch b/poky/meta/recipes-devtools/go/go/0001-exec.go-filter-out-build-specific-paths-from-linker-.patch
new file mode 100644
index 0000000..c5bf28f
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go/0001-exec.go-filter-out-build-specific-paths-from-linker-.patch
@@ -0,0 +1,61 @@
+From 083b5c74b12a1abeb11dd7f58a1cb1593d0000c0 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Feb 2024 18:06:51 +0800
+Subject: [PATCH] exec.go: filter out build-specific paths from linker flags
+
+The flags can contain build-specific paths, breaking reproducibility.
+Filter out options that have build-specific paths.
+
+Upstream-Status: Inappropriate [ Not perfect for upstream ]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/cmd/go/internal/work/exec.go | 25 ++++++++++++++++++++++++-
+ 1 file changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
+index cde867b..e3ce17d 100644
+--- a/src/cmd/go/internal/work/exec.go
++++ b/src/cmd/go/internal/work/exec.go
+@@ -1358,6 +1358,29 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
+ 	return h.Sum()
+ }
+ 
++func filterLinkerFlags(flags []string) []string {
++	var newflags []string
++	var skipflag bool
++	skipflag = false
++	for i, flag := range flags {
++		if skipflag == true {
++			skipflag = false
++			continue
++		}
++		if strings.HasPrefix(flag, "--sysroot") || strings.HasPrefix(flag, "-fmacro-prefix-map") || strings.HasPrefix(flag, "-fdebug-prefix-map") || strings.HasPrefix(flag, "-ffile-prefix-map") || strings.HasPrefix(flag, "-fcanon-prefix-map") || strings.HasPrefix(flag, "-fprofile-prefix-map") || strings.HasPrefix(flag, "-Wl,-rpath-link"){
++			continue
++		} else if strings.HasPrefix(flag, "-extldflags") {
++			skipflag = true
++			newflags = append(newflags, flag)
++			var filterd_Extldflags []string = filterLinkerFlags(strings.Split(flags[i+1], " "))
++			newflags = append(newflags, strings.Join(filterd_Extldflags, " "))
++		} else {
++			newflags = append(newflags, flag)
++		}
++	}
++	return newflags
++}
++
+ // printLinkerConfig prints the linker config into the hash h,
+ // as part of the computation of a linker-related action ID.
+ func (b *Builder) printLinkerConfig(h io.Writer, p *load.Package) {
+@@ -1368,7 +1391,7 @@ func (b *Builder) printLinkerConfig(h io.Writer, p *load.Package) {
+ 	case "gc":
+ 		fmt.Fprintf(h, "link %s %q %s\n", b.toolID("link"), forcedLdflags, ldBuildmode)
+ 		if p != nil {
+-			fmt.Fprintf(h, "linkflags %q\n", p.Internal.Ldflags)
++			fmt.Fprintf(h, "linkflags %q\n", filterLinkerFlags(p.Internal.Ldflags))
+ 		}
+ 
+ 		// GOARM, GOMIPS, etc.
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch b/poky/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
index 6abd424..001c94a 100644
--- a/poky/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
+++ b/poky/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
@@ -1,4 +1,4 @@
-From 5cca2fa5997292a87302bdc7e7ed3231371e98bd Mon Sep 17 00:00:00 2001
+From e3f9a8a69d3a340c1a1d0bba566e71f20f635a43 Mon Sep 17 00:00:00 2001
 From: Alex Kube <alexander.j.kube@gmail.com>
 Date: Wed, 23 Oct 2019 21:15:37 +0430
 Subject: [PATCH 2/9] cmd/go: Allow GOTOOLDIR to be overridden in the
@@ -13,16 +13,17 @@
 Upstream-Status: Inappropriate [OE specific]
 
 Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/dist/build.go          | 4 +++-
  src/cmd/go/internal/cfg/cfg.go | 6 +++++-
  2 files changed, 8 insertions(+), 2 deletions(-)
 
 diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
-index c36a12e..5d31718 100644
+index 32e59b446a..06ee4de8a9 100644
 --- a/src/cmd/dist/build.go
 +++ b/src/cmd/dist/build.go
-@@ -264,7 +264,9 @@ func xinit() {
+@@ -259,7 +259,9 @@ func xinit() {
  	}
  	xatexit(rmworkdir)
  
@@ -30,14 +31,14 @@
 +	if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
 +		tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
 +	}
- }
  
- // compilerEnv returns a map from "goos/goarch" to the
+ 	goversion := findgoversion()
+ 	isRelease = strings.HasPrefix(goversion, "release.") || strings.HasPrefix(goversion, "go")
 diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
-index 3257140..bb46253 100644
+index a8daa2dfc3..393ada39c9 100644
 --- a/src/cmd/go/internal/cfg/cfg.go
 +++ b/src/cmd/go/internal/cfg/cfg.go
-@@ -229,7 +229,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
+@@ -230,7 +230,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
  			// This matches the initialization of ToolDir in go/build, except for
  			// using ctxt.GOROOT and the installed GOOS and GOARCH rather than the
  			// GOROOT, GOOS, and GOARCH reported by the runtime package.
@@ -51,5 +52,5 @@
  	}
  }
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch b/poky/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
index 8f5ad04..9cab296 100644
--- a/poky/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
+++ b/poky/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
@@ -1,4 +1,4 @@
-From c7536a820f713013ab1d4acef74a4c8bd970bf8f Mon Sep 17 00:00:00 2001
+From 7dde77b3ce8138314dd2736604b1b110dbcc0ac1 Mon Sep 17 00:00:00 2001
 From: Alex Kube <alexander.j.kube@gmail.com>
 Date: Wed, 23 Oct 2019 21:16:32 +0430
 Subject: [PATCH 3/9] ld: add soname to shareable objects
@@ -13,15 +13,16 @@
 Upstream-Status: Inappropriate [OE specific]
 
 Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/link/internal/ld/lib.go | 3 +++
  1 file changed, 3 insertions(+)
 
 diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
-index 6eae900..0462ee8 100644
+index eab74dc328..ae9bbc9093 100644
 --- a/src/cmd/link/internal/ld/lib.go
 +++ b/src/cmd/link/internal/ld/lib.go
-@@ -1508,6 +1508,7 @@ func (ctxt *Link) hostlink() {
+@@ -1576,6 +1576,7 @@ func (ctxt *Link) hostlink() {
  				argv = append(argv, "-Wl,-z,relro")
  			}
  			argv = append(argv, "-shared")
@@ -29,7 +30,7 @@
  			if ctxt.HeadType == objabi.Hwindows {
  				argv = addASLRargs(argv, *flagAslr)
  			} else {
-@@ -1523,6 +1524,7 @@ func (ctxt *Link) hostlink() {
+@@ -1591,6 +1592,7 @@ func (ctxt *Link) hostlink() {
  			argv = append(argv, "-Wl,-z,relro")
  		}
  		argv = append(argv, "-shared")
@@ -37,7 +38,7 @@
  	case BuildModePlugin:
  		if ctxt.HeadType == objabi.Hdarwin {
  			argv = append(argv, "-dynamiclib")
-@@ -1531,6 +1533,7 @@ func (ctxt *Link) hostlink() {
+@@ -1599,6 +1601,7 @@ func (ctxt *Link) hostlink() {
  				argv = append(argv, "-Wl,-z,relro")
  			}
  			argv = append(argv, "-shared")
@@ -46,5 +47,5 @@
  	}
  
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch b/poky/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
index 85e42f7..8889aef 100644
--- a/poky/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
+++ b/poky/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
@@ -1,4 +1,4 @@
-From 31ff609cc3d3bfcc2f2257fda1dbaafaec31eb0b Mon Sep 17 00:00:00 2001
+From 9f59e46991074d3e3c4d00f3971e62bfcd707167 Mon Sep 17 00:00:00 2001
 From: Alex Kube <alexander.j.kube@gmail.com>
 Date: Wed, 23 Oct 2019 21:17:16 +0430
 Subject: [PATCH 4/9] make.bash: override CC when building dist and
@@ -13,24 +13,25 @@
 Upstream-Status: Inappropriate [OE specific]
 
 Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/make.bash | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/make.bash b/src/make.bash
-index c07f39b..6ca7242 100755
+index 76ad51624a..074e129a24 100755
 --- a/src/make.bash
 +++ b/src/make.bash
-@@ -194,7 +194,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+@@ -198,7 +198,7 @@ if [[ "$GOROOT_BOOTSTRAP" == "$GOROOT" ]]; then
  	exit 1
  fi
  rm -f cmd/dist/dist
--GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
-+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
+-GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
  
  # -e doesn't propagate out of eval, so check success by hand.
  eval $(./cmd/dist/dist env -p || echo FAIL=true)
-@@ -219,7 +219,7 @@ fi
+@@ -223,7 +223,7 @@ fi
  # Run dist bootstrap to complete make.bash.
  # Bootstrap installs a proper cmd/dist, built with the new toolchain.
  # Throw ours, built with the bootstrap toolchain, away after bootstrap.
@@ -40,5 +41,5 @@
  
  # DO NOT ADD ANY NEW CODE HERE.
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch b/poky/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
index 2959844..364fce9 100644
--- a/poky/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
+++ b/poky/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
@@ -1,10 +1,8 @@
-From 7a191e5191c8b813e929caedb3f3918bb08692a1 Mon Sep 17 00:00:00 2001
+From 6dda78d528e60993a4688cd9d49440a726378ac8 Mon Sep 17 00:00:00 2001
 From: Alex Kube <alexander.j.kube@gmail.com>
 Date: Wed, 23 Oct 2019 21:18:12 +0430
 Subject: [PATCH 5/9] cmd/dist: separate host and target builds
 
-Upstream-Status: Inappropriate [OE specific]
-
 Change the dist tool to allow for OE-style cross-
 and cross-canadian builds:
 
@@ -33,41 +31,49 @@
 the meta/recipes-devtools/go tree by
 Matt Madison <matt@madison.systems>.
 
+Rework the patch to avoid identation, it breaks formatting rules but
+makes the changes more obvious and maintainable.
+Jose Quaresma <jose.quaresma@foundries.io>
+Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Upstream-Status: Inappropriate [OE specific]
+
 Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
- src/cmd/dist/build.go | 152 +++++++++++++++++++++++++++++++-----------
- 1 file changed, 113 insertions(+), 39 deletions(-)
+ src/cmd/dist/build.go | 76 ++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 75 insertions(+), 1 deletion(-)
 
 diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
-index 5d31718..1c7f308 100644
+index 06ee4de8a9..74b7c7098f 100644
 --- a/src/cmd/dist/build.go
 +++ b/src/cmd/dist/build.go
-@@ -44,6 +44,7 @@ var (
+@@ -46,6 +46,7 @@ var (
  	goexperiment     string
  	workdir          string
  	tooldir          string
 +	build_tooldir    string
  	oldgoos          string
  	oldgoarch        string
- 	exe              string
-@@ -55,6 +56,7 @@ var (
- 	rebuildall   bool
- 	defaultclang bool
- 	noOpt        bool
-+	crossBuild   bool
+ 	oldgocache       string
+@@ -58,6 +59,7 @@ var (
+ 	rebuildall bool
+ 	noOpt      bool
+ 	isRelease  bool
++	crossBuild bool
  
  	vflag int // verbosity
  )
-@@ -267,6 +269,8 @@ func xinit() {
- 	if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
- 		tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
- 	}
+@@ -265,6 +267,8 @@ func xinit() {
+ 
+ 	goversion := findgoversion()
+ 	isRelease = strings.HasPrefix(goversion, "release.") || strings.HasPrefix(goversion, "go")
 +
 +	build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
  }
  
  // compilerEnv returns a map from "goos/goarch" to the
-@@ -468,8 +472,10 @@ func setup() {
+@@ -499,8 +503,10 @@ func setup() {
  	goosGoarch := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
  	if rebuildall {
  		xremoveall(goosGoarch)
@@ -78,16 +84,18 @@
  	xatexit(func() {
  		if files := xreaddir(goosGoarch); len(files) == 0 {
  			xremove(goosGoarch)
-@@ -1276,17 +1282,35 @@ func cmdbootstrap() {
+@@ -1338,14 +1344,20 @@ func cmdbootstrap() {
+ 	defer timelog("end", "dist bootstrap")
  
- 	var noBanner, noClean bool
- 	var debug bool
+ 	var debug, distpack, force, noBanner, noClean bool
 +	var hostOnly bool
 +	var targetOnly bool
 +	var toBuild = []string{"std", "cmd"}
 +
  	flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
  	flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
+ 	flag.BoolVar(&distpack, "distpack", distpack, "write distribution files to pkg/distpack")
+ 	flag.BoolVar(&force, "force", force, "build even if the port is marked as broken")
  	flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
  	flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation warning")
 +	flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target")
@@ -98,6 +106,8 @@
  
  	if noClean {
  		xprintf("warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead\n")
+@@ -1357,6 +1369,18 @@ func cmdbootstrap() {
+ 			"Use the -force flag to build anyway.\n", goos, goarch)
  	}
  
 +	if hostOnly && targetOnly {
@@ -115,47 +125,46 @@
  	// Set GOPATH to an internal directory. We shouldn't actually
  	// need to store files here, since the toolchain won't
  	// depend on modules outside of vendor directories, but if
-@@ -1354,9 +1378,14 @@ func cmdbootstrap() {
+@@ -1434,9 +1458,14 @@ func cmdbootstrap() {
  		xprintf("\n")
  	}
  
--	gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
--	setNoOpt()
--	goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
 +	// For split host/target cross/cross-canadian builds, we don't
 +	// want to be setting these flags until after we have compiled
 +	// the toolchain that runs on the build host.
-+	if !crossBuild {
-+		gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
-+		setNoOpt()
-+		goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
-+	}
++if !crossBuild {
+ 	gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
+ 	setNoOpt()
+ 	goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
++}
  	goBootstrap := pathf("%s/go_bootstrap", tooldir)
- 	cmdGo := pathf("%s/go", gorootBin)
  	if debug {
-@@ -1385,7 +1414,11 @@ func cmdbootstrap() {
+ 		run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
+@@ -1464,7 +1493,11 @@ func cmdbootstrap() {
  		xprintf("\n")
  	}
  	xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
--	os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+	if crossBuild {
++if !crossBuild {
+ 	os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
++} else {
 +		os.Setenv("CC", defaultcc[""])
-+	} else {
-+		os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+	}
++}
  	// Now that cmd/go is in charge of the build process, enable GOEXPERIMENT.
  	os.Setenv("GOEXPERIMENT", goexperiment)
- 	goInstall(goBootstrap, toolchain...)
-@@ -1421,46 +1454,84 @@ func cmdbootstrap() {
- 		copyfile(pathf("%s/compile3", tooldir), pathf("%s/compile", tooldir), writeExec)
+ 	// No need to enable PGO for toolchain2.
+@@ -1517,6 +1550,7 @@ func cmdbootstrap() {
+ 		os.Setenv("GOCACHE", oldgocache)
  	}
  
--	if goos == oldgoos && goarch == oldgoarch {
--		// Common case - not setting up for cross-compilation.
--		timelog("build", "toolchain")
--		if vflag > 0 {
--			xprintf("\n")
-+	if crossBuild {
++if !crossBuild {
+ 	if goos == oldgoos && goarch == oldgoarch {
+ 		// Common case - not setting up for cross-compilation.
+ 		timelog("build", "toolchain")
+@@ -1560,6 +1594,42 @@ func cmdbootstrap() {
+ 		checkNotStale(toolenv(), goBootstrap, toolchain...)
+ 		copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
+ 	}
++} else {
 +		gogcflags = os.Getenv("GO_GCFLAGS")
 +		goldflags = os.Getenv("GO_LDFLAGS")
 +		tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
@@ -171,8 +180,8 @@
 +				xprintf("\n")
 +			}
 +			xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
-+			goInstall(goBootstrap, toBuild...)
-+			checkNotStale(goBootstrap, toBuild...)
++			goInstall(toolenv(), goBootstrap, toBuild...)
++			checkNotStale(toolenv(), goBootstrap, toBuild...)
 +			// Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary
 +
 +			timelog("build", "target toolchain")
@@ -184,99 +193,29 @@
 +			goarch = oldgoarch
 +			os.Setenv("GOOS", goos)
 +			os.Setenv("GOARCH", goarch)
-+			os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++			os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
 +			xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
-+			goInstall(goBootstrap, toBuild...)
-+			checkNotStale(goBootstrap, toBuild...)
++			goInstall(toolenv(), goBootstrap, toBuild...)
++			checkNotStale(toolenv(), goBootstrap, toBuild...)
 +			// Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary
- 		}
--		xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
- 	} else {
--		// GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
--		// Finish GOHOSTOS/GOHOSTARCH installation and then
--		// run GOOS/GOARCH installation.
--		timelog("build", "host toolchain")
--		if vflag > 0 {
--			xprintf("\n")
-+
-+		if goos == oldgoos && goarch == oldgoarch {
-+			// Common case - not setting up for cross-compilation.
-+			timelog("build", "toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
-+		} else {
-+			// GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
-+			// Finish GOHOSTOS/GOHOSTARCH installation and then
-+			// run GOOS/GOARCH installation.
-+			timelog("build", "host toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
-+			goInstall(goBootstrap, "std", "cmd")
-+			checkNotStale(goBootstrap, "std", "cmd")
-+			checkNotStale(cmdGo, "std", "cmd")
-+
-+			timelog("build", "target toolchain")
-+			if vflag > 0 {
-+				xprintf("\n")
-+			}
-+			goos = oldgoos
-+			goarch = oldgoarch
-+			os.Setenv("GOOS", goos)
-+			os.Setenv("GOARCH", goarch)
-+			os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+			xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
- 		}
--		xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
- 		goInstall(goBootstrap, "std", "cmd")
- 		checkNotStale(goBootstrap, "std", "cmd")
- 		checkNotStale(cmdGo, "std", "cmd")
- 
--		timelog("build", "target toolchain")
--		if vflag > 0 {
--			xprintf("\n")
-+		if debug {
-+			run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-+			run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
-+			checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
-+			copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
- 		}
--		goos = oldgoos
--		goarch = oldgoarch
--		os.Setenv("GOOS", goos)
--		os.Setenv("GOARCH", goarch)
--		os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
--		xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
--	}
--	targets := []string{"std", "cmd"}
--	goInstall(goBootstrap, targets...)
--	checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
--	checkNotStale(goBootstrap, targets...)
--	checkNotStale(cmdGo, targets...)
--	if debug {
--		run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
--		checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
--		copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
- 	}
++		}
++}
  
  	// Check that there are no new files in $GOROOT/bin other than
-@@ -1477,8 +1548,11 @@ func cmdbootstrap() {
+ 	// go and gofmt and $GOOS_$GOARCH (target bin when cross-compiling).
+@@ -1582,8 +1652,12 @@ func cmdbootstrap() {
  		}
  	}
  
--	// Remove go_bootstrap now that we're done.
--	xremove(pathf("%s/go_bootstrap", tooldir))
 +	// Except that for split host/target cross-builds, we need to
 +	// keep it.
-+	if !crossBuild {
-+		xremove(pathf("%s/go_bootstrap", tooldir))
-+	}
++if !crossBuild {
+ 	// Remove go_bootstrap now that we're done.
+ 	xremove(pathf("%s/go_bootstrap"+exe, tooldir))
++}
  
  	if goos == "android" {
  		// Make sure the exec wrapper will sync a fresh $GOROOT to the device.
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch b/poky/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
index 520e41d..262f1e9 100644
--- a/poky/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
+++ b/poky/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
@@ -1,10 +1,8 @@
-From efab470498bb0a30ee2d00455a0c8c10459f6347 Mon Sep 17 00:00:00 2001
+From aff5a740d6286c04beb0593fc68b0aea5a95ad39 Mon Sep 17 00:00:00 2001
 From: Alex Kube <alexander.j.kube@gmail.com>
 Date: Wed, 23 Oct 2019 21:18:56 +0430
 Subject: [PATCH 6/9] cmd/go: make GOROOT precious by default
 
-Upstream-Status: Inappropriate [OE specific]
-
 The go build tool normally rebuilds whatever it detects is
 stale.  This can be a problem when GOROOT is intended to
 be read-only and the go runtime has been built as a shared
@@ -20,7 +18,10 @@
 the meta/recipes-devtools/go tree by
 Matt Madison <matt@madison.systems>.
 
+Upstream-Status: Inappropriate [OE specific]
+
 Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/go/internal/work/action.go |  3 +++
  src/cmd/go/internal/work/build.go  |  6 ++++++
@@ -28,10 +29,10 @@
  3 files changed, 34 insertions(+)
 
 diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
-index 8beb134..68a8cfe 100644
+index a59072e591..9e35ebde0c 100644
 --- a/src/cmd/go/internal/work/action.go
 +++ b/src/cmd/go/internal/work/action.go
-@@ -718,6 +718,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
+@@ -754,6 +754,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
  			if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] {
  				continue
  			}
@@ -42,10 +43,10 @@
  			// TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild,
  			// we'll end up building an overall library or executable that depends at runtime
 diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
-index 2f2860a..8cc6166 100644
+index 408edb5119..3d60252127 100644
 --- a/src/cmd/go/internal/work/build.go
 +++ b/src/cmd/go/internal/work/build.go
-@@ -217,6 +217,8 @@ See also: go install, go get, go clean.
+@@ -233,6 +233,8 @@ See also: go install, go get, go clean.
  
  const concurrentGCBackendCompilationEnabledByDefault = true
  
@@ -54,7 +55,7 @@
  func init() {
  	// break init cycle
  	CmdBuild.Run = runBuild
-@@ -230,6 +232,10 @@ func init() {
+@@ -246,6 +248,10 @@ func init() {
  		AddCoverFlags(CmdBuild, nil)
  		AddCoverFlags(CmdInstall, nil)
  	}
@@ -66,11 +67,11 @@
  
  // Note that flags consulted by other parts of the code
 diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index 62e1774..cde867b 100644
+index 9724cd07d0..544df461a2 100644
 --- a/src/cmd/go/internal/work/exec.go
 +++ b/src/cmd/go/internal/work/exec.go
-@@ -546,6 +546,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
- 		return errors.New("cannot compile Go " + p.Module.GoVersion + " code")
+@@ -544,6 +544,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
+ 		return err
  	}
  
 +	if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
@@ -90,10 +91,10 @@
 +		}
 +	}
 +
- 	if err := b.Mkdir(a.Objdir); err != nil {
+ 	if err := sh.Mkdir(a.Objdir); err != nil {
  		return err
  	}
-@@ -1643,6 +1660,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) {
+@@ -1737,6 +1754,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) {
  		return err
  	}
  
@@ -105,9 +106,9 @@
 +		}
 +	}
 +
- 	if err := b.Mkdir(a.Objdir); err != nil {
+ 	if err := b.Shell(a).Mkdir(a.Objdir); err != nil {
  		return err
  	}
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch b/poky/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
index 7d9869b..35f3a98 100644
--- a/poky/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
+++ b/poky/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
@@ -1,4 +1,4 @@
-From 0ba747e6a4b251a0d9eed0cfd8f8c491bb508040 Mon Sep 17 00:00:00 2001
+From 619991feab04f331d081a91243434ccd859f611d Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 23 Nov 2020 19:22:04 +0000
 Subject: [PATCH 7/9] exec.go: do not write linker flags into buildids
@@ -9,16 +9,18 @@
 removing those known to be buildhost-specific.
 
 Upstream-Status: Inappropriate [needs upstream discussion]
+
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/go/internal/work/exec.go | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index cde867b..5cb1812 100644
+index 544df461a2..75df5a4aa8 100644
 --- a/src/cmd/go/internal/work/exec.go
 +++ b/src/cmd/go/internal/work/exec.go
-@@ -1331,7 +1331,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
+@@ -1374,7 +1374,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
  	}
  
  	// Toolchain-dependent configuration, shared with b.linkSharedActionID.
@@ -27,7 +29,7 @@
  
  	// Input files.
  	for _, a1 := range a.Deps {
-@@ -1626,7 +1626,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID {
+@@ -1720,7 +1720,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID {
  	fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch)
  
  	// Toolchain-dependent configuration, shared with b.linkActionID.
@@ -37,5 +39,5 @@
  	// Input files.
  	for _, a1 := range a.Deps {
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch b/poky/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
index fe830ce..0662f66 100644
--- a/poky/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
+++ b/poky/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
@@ -1,4 +1,4 @@
-From 1cbb416538a9c7c3fbedcb23f4d90d5c48becca8 Mon Sep 17 00:00:00 2001
+From e0999902687e2e394499f7153db8d62440c4dab0 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 10 Nov 2020 16:33:27 +0000
 Subject: [PATCH 8/9] src/cmd/dist/buildgo.go: do not hardcode host compilers
@@ -8,16 +8,18 @@
 additionally as they contain host specific paths, this helps reproducibility.
 
 Upstream-Status: Inappropriate [needs upstream discussion]
+
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/dist/buildgo.go | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go
-index 29b0167..63a49f0 100644
+index 884e9d729a..2f52edacfe 100644
 --- a/src/cmd/dist/buildgo.go
 +++ b/src/cmd/dist/buildgo.go
-@@ -33,8 +33,8 @@ func mkzdefaultcc(dir, file string) {
+@@ -51,8 +51,8 @@ func mkzdefaultcc(dir, file string) {
  		fmt.Fprintf(&buf, "package cfg\n")
  		fmt.Fprintln(&buf)
  		fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig)
@@ -28,7 +30,7 @@
  		writefile(buf.String(), file, writeSkipSame)
  		return
  	}
-@@ -45,8 +45,8 @@ func mkzdefaultcc(dir, file string) {
+@@ -62,8 +62,8 @@ func mkzdefaultcc(dir, file string) {
  	fmt.Fprintf(&buf, "package main\n")
  	fmt.Fprintln(&buf)
  	fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
@@ -40,5 +42,5 @@
  }
  
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch b/poky/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
index 49da5f6..cc45496 100644
--- a/poky/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
+++ b/poky/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
@@ -1,4 +1,4 @@
-From 18011f72125bbea273d07ee5d792ac0ce6059572 Mon Sep 17 00:00:00 2001
+From 6c2438f187ca912c54a71b4ac65ab98999a019d2 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Sat, 2 Jul 2022 23:08:13 +0100
 Subject: [PATCH 9/9] go: Filter build paths on staticly linked arches
@@ -11,17 +11,18 @@
 Upstream-Status: Submitted [https://github.com/golang/go/pull/56410]
 
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
 ---
  src/cmd/go/internal/load/pkg.go | 15 +++++++++++++--
  1 file changed, 13 insertions(+), 2 deletions(-)
 
 diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
-index f427e29..6d6dc4e 100644
+index 1549800afb..f41fb2c4ef 100644
 --- a/src/cmd/go/internal/load/pkg.go
 +++ b/src/cmd/go/internal/load/pkg.go
-@@ -2270,6 +2270,17 @@ func (p *Package) collectDeps() {
- // to their VCS information (vcsStatusError).
- var vcsStatusCache par.Cache
+@@ -2277,6 +2277,17 @@ func appendBuildSetting(info *debug.BuildInfo, key, value string) {
+ 	info.Settings = append(info.Settings, debug.BuildSetting{Key: key, Value: value})
+ }
  
 +func filterCompilerFlags(flags string) string {
 +	var newflags []string
@@ -34,10 +35,10 @@
 +	return strings.Join(newflags, " ")
 +}
 +
- // setBuildInfo gathers build information, formats it as a string to be
- // embedded in the binary, then sets p.Internal.BuildInfo to that string.
- // setBuildInfo should only be called on a main package with no errors.
-@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
+ // setBuildInfo gathers build information and sets it into
+ // p.Internal.BuildInfo, which will later be formatted as a string and embedded
+ // in the binary. setBuildInfo should only be called on a main package with no
+@@ -2384,7 +2395,7 @@ func (p *Package) setBuildInfo(ctx context.Context, autoVCS bool) {
  	if gcflags := BuildGcflags.String(); gcflags != "" && cfg.BuildContext.Compiler == "gc" {
  		appendSetting("-gcflags", gcflags)
  	}
@@ -46,7 +47,7 @@
  		// https://go.dev/issue/52372: only include ldflags if -trimpath is not set,
  		// since it can include system paths through various linker flags (notably
  		// -extar, -extld, and -extldflags).
-@@ -2422,7 +2433,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
+@@ -2427,7 +2438,7 @@ func (p *Package) setBuildInfo(ctx context.Context, autoVCS bool) {
  	// subset of flags that are known not to be paths?
  	if cfg.BuildContext.CgoEnabled && !cfg.BuildTrimpath {
  		for _, name := range []string{"CGO_CFLAGS", "CGO_CPPFLAGS", "CGO_CXXFLAGS", "CGO_LDFLAGS"} {
@@ -56,5 +57,5 @@
  	}
  	appendSetting("GOARCH", cfg.BuildContext.GOARCH)
 -- 
-2.30.2
+2.44.0
 
diff --git a/poky/meta/recipes-devtools/go/go_1.20.14.bb b/poky/meta/recipes-devtools/go/go_1.22.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.20.14.bb
rename to poky/meta/recipes-devtools/go/go_1.22.0.bb
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch
index 791a32e..046e09e 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch
@@ -1,7 +1,7 @@
-From 9bb7630915c3e787732463a3e2064fe0e177101b Mon Sep 17 00:00:00 2001
+From 5d6db56791d326e6b486dca54fe2335af0225229 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 24 Nov 2016 14:33:07 +0200
-Subject: [PATCH 1/4] FindGtkDoc.cmake: drop the requirement for
+Subject: [PATCH] FindGtkDoc.cmake: drop the requirement for
  GTKDOC_SCANGOBJ_WRAPPER
 
 For some reason cmake is not able to find it when building in openembedded,
@@ -14,7 +14,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/cmake/modules/FindGtkDoc.cmake b/cmake/modules/FindGtkDoc.cmake
-index 92b2cc7..39f34bd 100644
+index 92b2cc7e..39f34bd5 100644
 --- a/cmake/modules/FindGtkDoc.cmake
 +++ b/cmake/modules/FindGtkDoc.cmake
 @@ -52,7 +52,7 @@ find_program(GTKDOC_MKHTML_EXE gtkdoc-mkhtml PATH "${GLIB_PREFIX}/bin")
@@ -26,6 +26,3 @@
      VERSION_VAR GtkDoc_VERSION)
  
  # ::
--- 
-2.11.0
-
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch
index 08d0859..223c1be 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch
@@ -1,4 +1,4 @@
-From b87ae6860ea44996b677ad1c4a9793720b77c67c Mon Sep 17 00:00:00 2001
+From bf9bde4af952b67cc357d25b9863889099ea9665 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 7 Feb 2017 12:16:03 +0200
 Subject: [PATCH] Get parameters for both libsolv and libsolvext (libdnf is
@@ -7,7 +7,6 @@
 
 Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/312]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  CMakeLists.txt | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch
index d483dd4..27f7607 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-drop-FindPythonInstDir.cmake.patch
@@ -1,4 +1,4 @@
-From c0a465ccae395871ab10932975e37894220bc6a1 Mon Sep 17 00:00:00 2001
+From a6b3bc4fb3db996cd6c5616a99c16d085704dae0 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 1 Jun 2021 10:23:59 +0800
 Subject: [PATCH] drop FindPythonInstDir.cmake
@@ -37,6 +37,3 @@
 -stdout.write(path)"
 -OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
 +
--- 
-2.18.1
-
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch
index 32f2bb6..ecab47e 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch
@@ -1,4 +1,4 @@
-From 0b8eceb9161711003cd25ab400cadde7c1601733 Mon Sep 17 00:00:00 2001
+From e40def862bdeb10da295b15c5904fe2829d391c7 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 30 Dec 2016 18:24:50 +0200
 Subject: [PATCH] Set libsolv variables with pkg-config (cmake's own module
@@ -7,7 +7,6 @@
 
 Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/312]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  CMakeLists.txt | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/armarch.patch b/poky/meta/recipes-devtools/libdnf/libdnf/armarch.patch
index 99eaf1d..63debdb 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/armarch.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/armarch.patch
@@ -1,3 +1,8 @@
+From aa0f8b65feec64420a9b7b61cfcc8bcce161e14b Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 9 Nov 2023 10:29:31 +0000
+Subject: [PATCH] libdnf: Fix arm arch mapping issues for qemuarmv5
+
 We change the way rpm architectures work, we make the machine name the default machine
 specific package architecture.
 
@@ -5,11 +10,14 @@
 armv5hl which doesn't exist and causes errrors. We can simply remove it, we don't need it.
 
 Upstream-Status: Inappropriate [Relies on OE rpm config]
+---
+ libdnf/hy-util.cpp | 23 -----------------------
+ 1 file changed, 23 deletions(-)
 
-Index: git/libdnf/hy-util.cpp
-===================================================================
---- git.orig/libdnf/hy-util.cpp
-+++ git/libdnf/hy-util.cpp
+diff --git a/libdnf/hy-util.cpp b/libdnf/hy-util.cpp
+index 9978c8e9..aa1369b6 100644
+--- a/libdnf/hy-util.cpp
++++ b/libdnf/hy-util.cpp
 @@ -117,29 +117,6 @@ hy_detect_arch(char **arch)
      if (uname(&un) < 0)
          return DNF_ERROR_FAILED;
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch b/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
index 8b1a597..e4f6d44 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch
@@ -1,4 +1,4 @@
-From dc83a79053597546b2b42fcf578f3a7727b13f3b Mon Sep 17 00:00:00 2001
+From 25229773a9d4472235278bb45f75439e56630cee Mon Sep 17 00:00:00 2001
 From: Joe Slater <joe.slater@windriver.com>
 Date: Wed, 22 Jul 2020 13:31:11 -0700
 Subject: [PATCH] libdnf: allow reproducible binary builds
@@ -9,7 +9,6 @@
 Upstream-Status: Pending
 
 Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
 ---
  CMakeLists.txt | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.72.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.73.0.bb
similarity index 96%
rename from poky/meta/recipes-devtools/libdnf/libdnf_0.72.0.bb
rename to poky/meta/recipes-devtools/libdnf/libdnf_0.73.0.bb
index a8685a1..dc2ddf9 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf_0.72.0.bb
+++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.73.0.bb
@@ -13,7 +13,7 @@
            file://armarch.patch \
            "
 
-SRCREV = "908dba63c9e18c86a2d81166ce7523559e65338c"
+SRCREV = "1f30b3479528e8b62754f9047195c8e5a31f07ed"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!4\.90)\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/librepo/librepo/0001-gpg_gpgme.c-fix-build-errors-with-older-gcc.patch b/poky/meta/recipes-devtools/librepo/librepo/0001-gpg_gpgme.c-fix-build-errors-with-older-gcc.patch
new file mode 100644
index 0000000..8727b18
--- /dev/null
+++ b/poky/meta/recipes-devtools/librepo/librepo/0001-gpg_gpgme.c-fix-build-errors-with-older-gcc.patch
@@ -0,0 +1,36 @@
+From b525cdec3051d1c6ff0c3cd38bf3070b18d6fb50 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 6 Mar 2024 10:13:38 +0100
+Subject: [PATCH] gpg_gpgme.c: fix build errors with older gcc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When selinux is not enabled, older gcc versions error out this way:
+
+| /home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/hosttools/gcc -DG_LOG_DOMAIN=\"librepo\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Dlibrepo_EXPORTS -I/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/git -I/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/include/libmount -I/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/include/blkid -I/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/include/glib-2.0 -I/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/lib/glib-2.0/include -I/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/include/libxml2 -isystem/home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/recipe-sysroot-native/usr/include -O2 -pipe -std=c99 -Wall -fPIC -MD -MT librepo/CMakeFiles/librepo.dir/gpg_gpgme.c.o -MF librepo/CMakeFiles/librepo.dir/gpg_gpgme.c.o.d -o librepo/CMakeFiles/librepo.dir/gpg_gpgme.c.o -c /home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/git/librepo/gpg_gpgme.c
+| /home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/git/librepo/gpg_gpgme.c: In function ‘lr_gpg_ensure_socket_dir_exists’:
+| /home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-1938845/tmp-mc-tiny/work/aarch64-linux/librepo-native/1.17.0/git/librepo/gpg_gpgme.c:135:1: error: label at end of compound statement
+|   135 | exit:
+|       | ^~~~
+
+Ensuring the exit: block is not empty fixes the issue.
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/librepo/pull/300]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ librepo/gpg_gpgme.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/librepo/gpg_gpgme.c b/librepo/gpg_gpgme.c
+index c4addb2..47c3153 100644
+--- a/librepo/gpg_gpgme.c
++++ b/librepo/gpg_gpgme.c
+@@ -144,6 +144,7 @@ exit:
+     }
+     freecon(old_default_context);
+ #endif
++    return;
+ }
+ 
+ static gpgme_ctx_t
diff --git a/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch b/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch
index 2ea50f0..4a851ad 100644
--- a/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch
+++ b/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch
@@ -1,4 +1,4 @@
-From 82bd6d196a0453657cbacaaedd75b2d2fe0bf9ba Mon Sep 17 00:00:00 2001
+From 76052aa40c61580869472fd3f009a4ab1620b998 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 30 Dec 2016 18:05:36 +0200
 Subject: [PATCH] Do not try to obtain PYTHON_INSTALL_DIR by running python.
@@ -33,6 +33,3 @@
  INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
  
  MESSAGE(STATUS "Python3 install dir is ${PYTHON_INSTALL_DIR}")
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch b/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch
index a0a4d49..fd1df95 100644
--- a/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch
+++ b/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch
@@ -1,4 +1,4 @@
-From 25113b34bc1aae377d7bf447e69528783e2c177e Mon Sep 17 00:00:00 2001
+From b5918f06d790dc346d41de4b3a3ec01f290c1d25 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 30 Dec 2016 18:23:27 +0200
 Subject: [PATCH] Set gpgme variables with pkg-config, not with cmake module
@@ -6,25 +6,21 @@
 
 Upstream-Status: Inappropriate [gpgme upstream does not have pkg-config support and is not interested in it]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  CMakeLists.txt | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cd975a8..713cc87 100644
+index 6c00024..a2f57af 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -35,7 +35,8 @@ PKG_CHECK_MODULES(LIBXML2 libxml-2.0 REQUIRED)
+@@ -37,7 +37,8 @@ PKG_CHECK_MODULES(LIBXML2 libxml-2.0 REQUIRED)
  FIND_PACKAGE(CURL 7.52.0 REQUIRED)
  
  IF (USE_GPGME)
 -    FIND_PACKAGE(Gpgme REQUIRED)
 +    PKG_CHECK_MODULES(GPGME gpgme REQUIRED)
 +    set(GPGME_VANILLA_LIBRARIES ${GPGME_LIBRARIES})
- ELSE (USE_GPGME)
-     PKG_CHECK_MODULES(RPM REQUIRED rpm>=4.18.0)
- ENDIF (USE_GPGME)
--- 
-2.34.1
-
+     IF (ENABLE_SELINUX)
+         PKG_CHECK_MODULES(SELINUX REQUIRED libselinux)
+     ENDIF(ENABLE_SELINUX)
diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.16.0.bb b/poky/meta/recipes-devtools/librepo/librepo_1.17.0.bb
similarity index 85%
rename from poky/meta/recipes-devtools/librepo/librepo_1.16.0.bb
rename to poky/meta/recipes-devtools/librepo/librepo_1.17.0.bb
index 4710a6b..8101914 100644
--- a/poky/meta/recipes-devtools/librepo/librepo_1.16.0.bb
+++ b/poky/meta/recipes-devtools/librepo/librepo_1.17.0.bb
@@ -8,9 +8,10 @@
 SRC_URI = "git://github.com/rpm-software-management/librepo.git;branch=master;protocol=https \
            file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \
            file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \
+           file://0001-gpg_gpgme.c-fix-build-errors-with-older-gcc.patch \
            "
 
-SRCREV = "7c9af219abd49f8961542b7622fc82cfdaa572e3"
+SRCREV = "ae727d99086f70f39fba5695af5460e1da908c1b"
 
 S = "${WORKDIR}/git"
 
@@ -24,6 +25,7 @@
     -DENABLE_TESTS=OFF \
     -DENABLE_DOCS=OFF \
     -DWITH_ZCHUNK=OFF \
+    -DENABLE_SELINUX=OFF \
 "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/orc/orc_0.4.37.bb b/poky/meta/recipes-devtools/orc/orc_0.4.38.bb
similarity index 92%
rename from poky/meta/recipes-devtools/orc/orc_0.4.37.bb
rename to poky/meta/recipes-devtools/orc/orc_0.4.38.bb
index 9985204..5d22966 100644
--- a/poky/meta/recipes-devtools/orc/orc_0.4.37.bb
+++ b/poky/meta/recipes-devtools/orc/orc_0.4.38.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=1400bd9d09e8af56b9ec982b3d85797e"
 
 SRC_URI = "http://gstreamer.freedesktop.org/src/orc/orc-${PV}.tar.xz"
-SRC_URI[sha256sum] = "85638c0d447d989cd0d7e03406adbfbc380e67db2a622a4727a0ce3d440b2974"
+SRC_URI[sha256sum] = "a55a98d4772567aa3faed8fb84d540c3db77eaba16d3e2e10b044fbc9228668d"
 
 inherit meson pkgconfig gtk-doc
 
diff --git a/poky/meta/recipes-devtools/python/python3-build_1.0.3.bb b/poky/meta/recipes-devtools/python/python3-build_1.1.1.bb
similarity index 89%
rename from poky/meta/recipes-devtools/python/python3-build_1.0.3.bb
rename to poky/meta/recipes-devtools/python/python3-build_1.1.1.bb
index 2d8faef..7fc3eef 100644
--- a/poky/meta/recipes-devtools/python/python3-build_1.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-build_1.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c"
 
-SRC_URI[sha256sum] = "538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b"
+SRC_URI[sha256sum] = "8eea65bb45b1aac2e734ba2cc8dad3a6d97d97901a395bd0ed3e7b46953d2a31"
 
 inherit pypi python_flit_core
 
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb b/poky/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb
index 2bcb571..732f925 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb
@@ -60,9 +60,6 @@
     cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/
 }
 
-FILES:${PN}-ptest += " \
-    ${PTEST_PATH}/check-memfree.py \
-"
 FILES:${PN}-dbg += " \
     ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \
 "
diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2023.7.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2024.2.bb
similarity index 78%
rename from poky/meta/recipes-devtools/python/python3-dtschema_2023.7.bb
rename to poky/meta/recipes-devtools/python/python3-dtschema_2024.2.bb
index c1dc3e0..0e911df 100644
--- a/poky/meta/recipes-devtools/python/python3-dtschema_2023.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-dtschema_2024.2.bb
@@ -3,11 +3,11 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811"
 
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 PYPI_PACKAGE = "dtschema"
 
-SRC_URI[sha256sum] = "de7cd73a35244cf76a8cdd9919bbeb31f362aa5744f3c76c80e0e612489dd0c0"
+SRC_URI[sha256sum] = "df4e5afb35bda93894209d2465e87fb7103f1a95a05909ebcb594fc4cf4fdd1e"
 
 DEPENDS += "python3-setuptools-scm-native"
 RDEPENDS:${PN} += "\
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.98.12.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.98.15.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.98.12.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.98.15.bb
index a74c3af..a17abe5 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.98.12.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.98.15.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "584ef03a847464b0d14a63e53fcc3335a75b1f1eb3bcc770a03ff950ee4e279e"
+SRC_URI[sha256sum] = "1e31210951511b24ce8b3b6e04d791c466385a30ac3af571bf2223954b025d77"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb b/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb
new file mode 100644
index 0000000..bffd59a
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-jsonschema-specifications_2023.12.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry"
+DESCRIPTION = "JSON support files from the JSON Schema Specifications (metaschemas, \
+vocabularies, etc.), packaged for runtime access from Python as a referencing-based Schema Registry."
+HOMEPAGE = "https://pypi.org/project/jsonschema-specifications/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2"
+
+SRC_URI[sha256sum] = "48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"
+
+inherit pypi python_hatchling
+
+DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
+
+S = "${WORKDIR}/jsonschema_specifications-${PV}"
+
+PYPI_ARCHIVE_NAME = "jsonschema_specifications-${PV}.${PYPI_PACKAGE_EXT}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb b/poky/meta/recipes-devtools/python/python3-jsonschema_4.21.1.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb
rename to poky/meta/recipes-devtools/python/python3-jsonschema_4.21.1.bb
index be51a15..381148f 100644
--- a/poky/meta/recipes-devtools/python/python3-jsonschema_4.17.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-jsonschema_4.21.1.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
                     file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
 
-SRC_URI[sha256sum] = "0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"
+SRC_URI[sha256sum] = "85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"
 
 inherit pypi python_hatchling
 
@@ -36,10 +36,12 @@
     python3-importlib-metadata \
     python3-io \
     python3-json \
+    python3-jsonschema-specifications \
     python3-netclient \
     python3-numbers \
     python3-pprint \
     python3-pyrsistent \
+    python3-referencing \
     python3-zipp \
 "
 
diff --git a/poky/meta/recipes-devtools/python/python3-referencing_0.33.0.bb b/poky/meta/recipes-devtools/python/python3-referencing_0.33.0.bb
new file mode 100644
index 0000000..5b50932
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-referencing_0.33.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "An implementation-agnostic implementation of JSON reference resolution."
+HOMEPAGE = "https://github.com/python-jsonschema/referencing"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=93eb9740964b59e9ba30281255b044e2"
+
+SRC_URI[sha256sum] = "c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"
+
+inherit pypi python_hatchling
+
+DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
+
+RDEPENDS:${PN} += "python3-rpds-py"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-rpds-py-crates.inc b/poky/meta/recipes-devtools/python/python3-rpds-py-crates.inc
new file mode 100644
index 0000000..b9048bd
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-rpds-py-crates.inc
@@ -0,0 +1,80 @@
+# Autogenerated with 'bitbake -c update_crates python3-rpds-py'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/archery/1.1.0 \
+    crate://crates.io/autocfg/1.1.0 \
+    crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/heck/0.4.1 \
+    crate://crates.io/indoc/2.0.4 \
+    crate://crates.io/libc/0.2.147 \
+    crate://crates.io/lock_api/0.4.10 \
+    crate://crates.io/memoffset/0.9.0 \
+    crate://crates.io/once_cell/1.18.0 \
+    crate://crates.io/parking_lot/0.12.1 \
+    crate://crates.io/parking_lot_core/0.9.8 \
+    crate://crates.io/proc-macro2/1.0.66 \
+    crate://crates.io/pyo3/0.20.2 \
+    crate://crates.io/pyo3-build-config/0.20.2 \
+    crate://crates.io/pyo3-ffi/0.20.2 \
+    crate://crates.io/pyo3-macros/0.20.2 \
+    crate://crates.io/pyo3-macros-backend/0.20.2 \
+    crate://crates.io/quote/1.0.31 \
+    crate://crates.io/redox_syscall/0.3.5 \
+    crate://crates.io/rpds/1.1.0 \
+    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/smallvec/1.11.0 \
+    crate://crates.io/static_assertions/1.1.0 \
+    crate://crates.io/syn/2.0.32 \
+    crate://crates.io/target-lexicon/0.12.9 \
+    crate://crates.io/triomphe/0.1.9 \
+    crate://crates.io/unicode-ident/1.0.11 \
+    crate://crates.io/unindent/0.2.3 \
+    crate://crates.io/windows-targets/0.48.1 \
+    crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+    crate://crates.io/windows_aarch64_msvc/0.48.0 \
+    crate://crates.io/windows_i686_gnu/0.48.0 \
+    crate://crates.io/windows_i686_msvc/0.48.0 \
+    crate://crates.io/windows_x86_64_gnu/0.48.0 \
+    crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+    crate://crates.io/windows_x86_64_msvc/0.48.0 \
+"
+
+SRC_URI[archery-1.1.0.sha256sum] = "487955f60962765486ce000015a3492ca45c34a2ebbf12bc0aa2b5110ca6e7d2"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[lock_api-0.4.10.sha256sum] = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.8.sha256sum] = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+SRC_URI[proc-macro2-1.0.66.sha256sum] = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+SRC_URI[pyo3-0.20.2.sha256sum] = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
+SRC_URI[pyo3-build-config-0.20.2.sha256sum] = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
+SRC_URI[pyo3-ffi-0.20.2.sha256sum] = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
+SRC_URI[pyo3-macros-0.20.2.sha256sum] = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
+SRC_URI[pyo3-macros-backend-0.20.2.sha256sum] = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
+SRC_URI[quote-1.0.31.sha256sum] = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[rpds-1.1.0.sha256sum] = "a0e15515d3ce3313324d842629ea4905c25a13f81953eadb88f85516f59290a4"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[smallvec-1.11.0.sha256sum] = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[syn-2.0.32.sha256sum] = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
+SRC_URI[target-lexicon-0.12.9.sha256sum] = "df8e77cb757a61f51b947ec4a7e3646efd825b73561db1c232a8ccb639e611a0"
+SRC_URI[triomphe-0.1.9.sha256sum] = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/poky/meta/recipes-devtools/python/python3-rpds-py_0.18.0.bb b/poky/meta/recipes-devtools/python/python3-rpds-py_0.18.0.bb
new file mode 100644
index 0000000..01fb3d4
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-rpds-py_0.18.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Python bindings to the Rust rpds crate for persistent data structures."
+HOMEPAGE = "https://pypi.org/project/rpds-py/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7767fa537c4596c54141f32882c4a984"
+
+SRC_URI[sha256sum] = "42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"
+
+require ${BPN}-crates.inc
+
+inherit pypi cargo-update-recipe-crates python_maturin
+
+S = "${WORKDIR}/rpds_py-${PV}"
+
+PYPI_ARCHIVE_NAME = "rpds_py-${PV}.${PYPI_PACKAGE_EXT}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.35.bb b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.6.bb
similarity index 73%
rename from poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.35.bb
rename to poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.6.bb
index 02911eb..197bf91 100644
--- a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.35.bb
+++ b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.18.6.bb
@@ -2,13 +2,13 @@
 HOMEPAGE = "https://pypi.org/project/ruamel.yaml/"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5f41db57c3a8d3584b450d35985ad1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=30cbbccd94bf3a2b0285ec35671a1938"
 
 PYPI_PACKAGE = "ruamel.yaml"
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "801046a9caacb1b43acc118969b49b96b65e8847f29029563b29ac61d02db61b"
+SRC_URI[sha256sum] = "8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b"
 
 RDEPENDS:${PN} += "\
     python3-shell \
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch
index 7cafde4..0f6c9d2 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch
@@ -1,4 +1,4 @@
-From bfa655d63e79ba5a75441604ca14a70800794189 Mon Sep 17 00:00:00 2001
+From d393759315b189a738e4b6a2ce31dc18dbbfae29 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Wed, 11 May 2022 21:41:14 +0200
 Subject: [PATCH] _distutils/sysconfig.py: make it possible to substite the
@@ -15,7 +15,6 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
 ---
  setuptools/_distutils/sysconfig.py | 12 ++++++++++--
  1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index 9b17dba..2a3c71f 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From 519e2845014f04b4c23b5cf8f92fc4e5dcf40f20 Mon Sep 17 00:00:00 2001
+From 40648dfa770f9f7b9b9efa501c9ef7af96be9f2d Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 17 Jul 2018 10:13:38 +0800
 Subject: [PATCH] conditionally do not fetch code by easy_install
@@ -9,13 +9,12 @@
 Upstream-Status: Inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  setuptools/command/easy_install.py | 5 +++++
  1 file changed, 5 insertions(+)
 
 diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
-index 8ba4f09..8ea40c5 100644
+index 5d6fd5c..377e575 100644
 --- a/setuptools/command/easy_install.py
 +++ b/setuptools/command/easy_install.py
 @@ -676,6 +676,11 @@ class easy_install(Command):
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_69.0.3.bb b/poky/meta/recipes-devtools/python/python3-setuptools_69.1.1.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-setuptools_69.0.3.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_69.1.1.bb
index 715c893..77d4e0a 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_69.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_69.1.1.bb
@@ -11,7 +11,7 @@
 SRC_URI += " \
             file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
 
-SRC_URI[sha256sum] = "be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"
+SRC_URI[sha256sum] = "5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"
 
 DEPENDS += "python3"
 
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb
index 46b46bf..22b4d96 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb
@@ -9,6 +9,7 @@
 RDEPENDS:${PN} += " \
     python3-compile \
     python3-sphinx \
+    python3-sphinxcontrib-jquery \
 "
 
 PYPI_PACKAGE = "sphinx_rtd_theme"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jquery_4.1.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jquery_4.1.bb
new file mode 100644
index 0000000..5f91566
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jquery_4.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Extension to include jQuery on newer Sphinx releases"
+HOMEPAGE = "https://pypi.org/project/sphinxcontrib-jquery/"
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=926e8b7e89e3ebb2a2d1dfaf0873f241"
+
+SRC_URI[sha256sum] = "1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"
+
+PYPI_PACKAGE = "sphinxcontrib-jquery"
+
+inherit pypi python_flit_core
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.12.bb b/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb
similarity index 72%
rename from poky/meta/recipes-devtools/python/python3-wcwidth_0.2.12.bb
rename to poky/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb
index 6ce5e70..4a9bf75 100644
--- a/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.12.bb
+++ b/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.13.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb"
 
-SRC_URI[sha256sum] = "f01c104efdf57971bcb756f054dd58ddec5204dd15fa31d6503ea57947d97c02"
+SRC_URI[sha256sum] = "72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"
 
 inherit pypi setuptools3 ptest
 
@@ -18,8 +18,10 @@
 "
 
 do_install_ptest() {
-      install -d ${D}${PTEST_PATH}/tests
+      install -d ${D}${PTEST_PATH}/tests 
       cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+      install -d ${D}${PTEST_PATH}/bin
+      cp -rf ${S}/bin/* ${D}${PTEST_PATH}/bin/
 }
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index a403f7d..4501f84 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -33,7 +33,13 @@
            file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \
            file://fixedmeson.patch \
            file://no-pip.patch \
-           file://fix_segv.patch \
+           file://4a8579ad8629b57a43daa62e46cc7af6e1078116.patch \
+           file://0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch \
+           file://0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch \
+           file://0003-linux-user-Add-strace-for-shmat.patch \
+           file://0004-linux-user-Rewrite-target_shmat.patch \
+           file://0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch \
+           file://CVE-2023-6683.patch \
            file://qemu-guest-agent.init \
            file://qemu-guest-agent.udev \
            "
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
new file mode 100644
index 0000000..2eaebe8
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
@@ -0,0 +1,56 @@
+From 4517e2046610722879761bcdb60edbb2b929c848 Mon Sep 17 00:00:00 2001
+From: Richard Henderson <richard.henderson@linaro.org>
+Date: Wed, 28 Feb 2024 10:25:14 -1000
+Subject: [PATCH 1/5] linux-user/x86_64: Handle the vsyscall page in
+ open_self_maps_{2,4}
+
+This is the only case in which we expect to have no host memory backing
+for a guest memory page, because in general linux user processes cannot
+map any pages in the top half of the 64-bit address space.
+
+Upstream-Status: Submitted [https://www.mail-archive.com/qemu-devel@nongnu.org/msg1026793.html]
+
+Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2170
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ linux-user/syscall.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/linux-user/syscall.c b/linux-user/syscall.c
+index a114f29a8..8307a8a61 100644
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -7922,6 +7922,10 @@ static void open_self_maps_4(const struct open_self_maps_data *d,
+         path = "[heap]";
+     } else if (start == info->vdso) {
+         path = "[vdso]";
++#ifdef TARGET_X86_64
++    } else if (start == TARGET_VSYSCALL_PAGE) {
++        path = "[vsyscall]";
++#endif
+     }
+ 
+     /* Except null device (MAP_ANON), adjust offset for this fragment. */
+@@ -8010,6 +8014,18 @@ static int open_self_maps_2(void *opaque, target_ulong guest_start,
+     uintptr_t host_start = (uintptr_t)g2h_untagged(guest_start);
+     uintptr_t host_last = (uintptr_t)g2h_untagged(guest_end - 1);
+ 
++#ifdef TARGET_X86_64
++    /*
++     * Because of the extremely high position of the page within the guest
++     * virtual address space, this is not backed by host memory at all.
++     * Therefore the loop below would fail.  This is the only instance
++     * of not having host backing memory.
++     */
++    if (guest_start == TARGET_VSYSCALL_PAGE) {
++        return open_self_maps_3(opaque, guest_start, guest_end, flags);
++    }
++#endif
++
+     while (1) {
+         IntervalTreeNode *n =
+             interval_tree_iter_first(d->host_maps, host_start, host_start);
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch b/poky/meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch
new file mode 100644
index 0000000..3f01aaa
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0002-linux-user-loongarch64-Remove-TARGET_FORCE_SHMLBA.patch
@@ -0,0 +1,43 @@
+From 5bf65b24414d3ff8339f6f1beb221c7c35c91e5d Mon Sep 17 00:00:00 2001
+From: Richard Henderson <richard.henderson@linaro.org>
+Date: Wed, 28 Feb 2024 10:25:15 -1000
+Subject: [PATCH 2/5] linux-user/loongarch64: Remove TARGET_FORCE_SHMLBA
+
+The kernel abi was changed with
+
+    commit d23b77953f5a4fbf94c05157b186aac2a247ae32
+    Author: Huacai Chen <chenhuacai@kernel.org>
+    Date:   Wed Jan 17 12:43:08 2024 +0800
+
+        LoongArch: Change SHMLBA from SZ_64K to PAGE_SIZE
+
+during the v6.8 cycle.
+
+Upstream-Status: Submitted [https://www.mail-archive.com/qemu-devel@nongnu.org/msg1026793.html]
+
+Reviewed-by: Song Gao <gaosong@loongson.cn>
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ linux-user/loongarch64/target_syscall.h | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/linux-user/loongarch64/target_syscall.h b/linux-user/loongarch64/target_syscall.h
+index 8b5de5212..39f229bb9 100644
+--- a/linux-user/loongarch64/target_syscall.h
++++ b/linux-user/loongarch64/target_syscall.h
+@@ -38,11 +38,4 @@ struct target_pt_regs {
+ #define TARGET_MCL_FUTURE  2
+ #define TARGET_MCL_ONFAULT 4
+ 
+-#define TARGET_FORCE_SHMLBA
+-
+-static inline abi_ulong target_shmlba(CPULoongArchState *env)
+-{
+-    return 64 * KiB;
+-}
+-
+ #endif
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch b/poky/meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch
new file mode 100644
index 0000000..0c601c8
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0003-linux-user-Add-strace-for-shmat.patch
@@ -0,0 +1,71 @@
+From e8f06676c6c88e12cd5f4f81a839b7111c683596 Mon Sep 17 00:00:00 2001
+From: Richard Henderson <richard.henderson@linaro.org>
+Date: Wed, 28 Feb 2024 10:25:16 -1000
+Subject: [PATCH 3/5] linux-user: Add strace for shmat
+
+Upstream-Status: Submitted [https://www.mail-archive.com/qemu-devel@nongnu.org/msg1026793.html]
+
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ linux-user/strace.c    | 23 +++++++++++++++++++++++
+ linux-user/strace.list |  2 +-
+ 2 files changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/linux-user/strace.c b/linux-user/strace.c
+index cf26e5526..47d6ec326 100644
+--- a/linux-user/strace.c
++++ b/linux-user/strace.c
+@@ -670,6 +670,25 @@ print_semctl(CPUArchState *cpu_env, const struct syscallname *name,
+ }
+ #endif
+ 
++static void
++print_shmat(CPUArchState *cpu_env, const struct syscallname *name,
++            abi_long arg0, abi_long arg1, abi_long arg2,
++            abi_long arg3, abi_long arg4, abi_long arg5)
++{
++    static const struct flags shmat_flags[] = {
++        FLAG_GENERIC(SHM_RND),
++        FLAG_GENERIC(SHM_REMAP),
++        FLAG_GENERIC(SHM_RDONLY),
++        FLAG_GENERIC(SHM_EXEC),
++    };
++
++    print_syscall_prologue(name);
++    print_raw_param(TARGET_ABI_FMT_ld, arg0, 0);
++    print_pointer(arg1, 0);
++    print_flags(shmat_flags, arg2, 1);
++    print_syscall_epilogue(name);
++}
++
+ #ifdef TARGET_NR_ipc
+ static void
+ print_ipc(CPUArchState *cpu_env, const struct syscallname *name,
+@@ -683,6 +702,10 @@ print_ipc(CPUArchState *cpu_env, const struct syscallname *name,
+         print_ipc_cmd(arg3);
+         qemu_log(",0x" TARGET_ABI_FMT_lx ")", arg4);
+         break;
++    case IPCOP_shmat:
++        print_shmat(cpu_env, &(const struct syscallname){ .name = "shmat" },
++                    arg1, arg4, arg2, 0, 0, 0);
++        break;
+     default:
+         qemu_log(("%s("
+                   TARGET_ABI_FMT_ld ","
+diff --git a/linux-user/strace.list b/linux-user/strace.list
+index 6655d4f26..dfd4237d1 100644
+--- a/linux-user/strace.list
++++ b/linux-user/strace.list
+@@ -1398,7 +1398,7 @@
+ { TARGET_NR_sgetmask, "sgetmask" , NULL, NULL, NULL },
+ #endif
+ #ifdef TARGET_NR_shmat
+-{ TARGET_NR_shmat, "shmat" , NULL, NULL, print_syscall_ret_addr },
++{ TARGET_NR_shmat, "shmat" , NULL, print_shmat, print_syscall_ret_addr },
+ #endif
+ #ifdef TARGET_NR_shmctl
+ { TARGET_NR_shmctl, "shmctl" , NULL, NULL, NULL },
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch b/poky/meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch
new file mode 100644
index 0000000..88c3ed4
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0004-linux-user-Rewrite-target_shmat.patch
@@ -0,0 +1,236 @@
+From cb48d5d1592e63ebd0d4a3e300ef98e38e6306d7 Mon Sep 17 00:00:00 2001
+From: Richard Henderson <richard.henderson@linaro.org>
+Date: Wed, 28 Feb 2024 10:25:17 -1000
+Subject: [PATCH 4/5] linux-user: Rewrite target_shmat
+
+Handle combined host and guest alignment requirements.
+Handle host and guest page size differences.
+Handle SHM_EXEC.
+
+Upstream-Status: Submitted [https://www.mail-archive.com/qemu-devel@nongnu.org/msg1026793.html]
+
+Resolves: https://gitlab.com/qemu-project/qemu/-/issues/115
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ linux-user/mmap.c | 166 +++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 133 insertions(+), 33 deletions(-)
+
+diff --git a/linux-user/mmap.c b/linux-user/mmap.c
+index 18fb3aaf7..6a2f649bb 100644
+--- a/linux-user/mmap.c
++++ b/linux-user/mmap.c
+@@ -1062,69 +1062,161 @@ static inline abi_ulong target_shmlba(CPUArchState *cpu_env)
+ }
+ #endif
+ 
++#if defined(__arm__) || defined(__mips__) || defined(__sparc__)
++#define HOST_FORCE_SHMLBA 1
++#else
++#define HOST_FORCE_SHMLBA 0
++#endif
++
+ abi_ulong target_shmat(CPUArchState *cpu_env, int shmid,
+                        abi_ulong shmaddr, int shmflg)
+ {
+     CPUState *cpu = env_cpu(cpu_env);
+-    abi_ulong raddr;
+     struct shmid_ds shm_info;
+     int ret;
+-    abi_ulong shmlba;
++    int h_pagesize;
++    int t_shmlba, h_shmlba, m_shmlba;
++    size_t t_len, h_len, m_len;
+ 
+     /* shmat pointers are always untagged */
+ 
+-    /* find out the length of the shared memory segment */
++    /*
++     * Because we can't use host shmat() unless the address is sufficiently
++     * aligned for the host, we'll need to check both.
++     * TODO: Could be fixed with softmmu.
++     */
++    t_shmlba = target_shmlba(cpu_env);
++    h_pagesize = qemu_real_host_page_size();
++    h_shmlba = (HOST_FORCE_SHMLBA ? SHMLBA : h_pagesize);
++    m_shmlba = MAX(t_shmlba, h_shmlba);
++
++    if (shmaddr) {
++        if (shmaddr & (m_shmlba - 1)) {
++            if (shmflg & SHM_RND) {
++                /*
++                 * The guest is allowing the kernel to round the address.
++                 * Assume that the guest is ok with us rounding to the
++                 * host required alignment too.  Anyway if we don't, we'll
++                 * get an error from the kernel.
++                 */
++                shmaddr &= ~(m_shmlba - 1);
++                if (shmaddr == 0 && (shmflg & SHM_REMAP)) {
++                    return -TARGET_EINVAL;
++                }
++            } else {
++                int require = TARGET_PAGE_SIZE;
++#ifdef TARGET_FORCE_SHMLBA
++                require = t_shmlba;
++#endif
++                /*
++                 * Include host required alignment, as otherwise we cannot
++                 * use host shmat at all.
++                 */
++                require = MAX(require, h_shmlba);
++                if (shmaddr & (require - 1)) {
++                    return -TARGET_EINVAL;
++                }
++            }
++        }
++    } else {
++        if (shmflg & SHM_REMAP) {
++            return -TARGET_EINVAL;
++        }
++    }
++    /* All rounding now manually concluded. */
++    shmflg &= ~SHM_RND;
++
++    /* Find out the length of the shared memory segment. */
+     ret = get_errno(shmctl(shmid, IPC_STAT, &shm_info));
+     if (is_error(ret)) {
+         /* can't get length, bail out */
+         return ret;
+     }
++    t_len = TARGET_PAGE_ALIGN(shm_info.shm_segsz);
++    h_len = ROUND_UP(shm_info.shm_segsz, h_pagesize);
++    m_len = MAX(t_len, h_len);
+ 
+-    shmlba = target_shmlba(cpu_env);
+-
+-    if (shmaddr & (shmlba - 1)) {
+-        if (shmflg & SHM_RND) {
+-            shmaddr &= ~(shmlba - 1);
+-        } else {
+-            return -TARGET_EINVAL;
+-        }
+-    }
+-    if (!guest_range_valid_untagged(shmaddr, shm_info.shm_segsz)) {
++    if (!guest_range_valid_untagged(shmaddr, m_len)) {
+         return -TARGET_EINVAL;
+     }
+ 
+     WITH_MMAP_LOCK_GUARD() {
+-        void *host_raddr;
++        bool mapped = false;
++        void *want, *test;
+         abi_ulong last;
+ 
+-        if (shmaddr) {
+-            host_raddr = shmat(shmid, (void *)g2h_untagged(shmaddr), shmflg);
++        if (!shmaddr) {
++            shmaddr = mmap_find_vma(0, m_len, m_shmlba);
++            if (shmaddr == -1) {
++                return -TARGET_ENOMEM;
++            }
++            mapped = !reserved_va;
++        } else if (shmflg & SHM_REMAP) {
++            /*
++             * If host page size > target page size, the host shmat may map
++             * more memory than the guest expects.  Reject a mapping that
++             * would replace memory in the unexpected gap.
++             * TODO: Could be fixed with softmmu.
++             */
++            if (t_len < h_len &&
++                !page_check_range_empty(shmaddr + t_len,
++                                        shmaddr + h_len - 1)) {
++                return -TARGET_EINVAL;
++            }
+         } else {
+-            abi_ulong mmap_start;
++            if (!page_check_range_empty(shmaddr, shmaddr + m_len - 1)) {
++                return -TARGET_EINVAL;
++            }
++        }
+ 
+-            /* In order to use the host shmat, we need to honor host SHMLBA.  */
+-            mmap_start = mmap_find_vma(0, shm_info.shm_segsz,
+-                                       MAX(SHMLBA, shmlba));
++        /* All placement is now complete. */
++        want = (void *)g2h_untagged(shmaddr);
+ 
+-            if (mmap_start == -1) {
+-                return -TARGET_ENOMEM;
++        /*
++         * Map anonymous pages across the entire range, then remap with
++         * the shared memory.  This is required for a number of corner
++         * cases for which host and guest page sizes differ.
++         */
++        if (h_len != t_len) {
++            int mmap_p = PROT_READ | (shmflg & SHM_RDONLY ? 0 : PROT_WRITE);
++            int mmap_f = MAP_PRIVATE | MAP_ANONYMOUS
++                       | (reserved_va || (shmflg & SHM_REMAP)
++                          ? MAP_FIXED : MAP_FIXED_NOREPLACE);
++
++            test = mmap(want, m_len, mmap_p, mmap_f, -1, 0);
++            if (unlikely(test != want)) {
++                /* shmat returns EINVAL not EEXIST like mmap. */
++                ret = (test == MAP_FAILED && errno != EEXIST
++                       ? get_errno(-1) : -TARGET_EINVAL);
++                if (mapped) {
++                    do_munmap(want, m_len);
++                }
++                return ret;
+             }
+-            host_raddr = shmat(shmid, g2h_untagged(mmap_start),
+-                               shmflg | SHM_REMAP);
++            mapped = true;
+         }
+ 
+-        if (host_raddr == (void *)-1) {
+-            return get_errno(-1);
++        if (reserved_va || mapped) {
++            shmflg |= SHM_REMAP;
++        }
++        test = shmat(shmid, want, shmflg);
++        if (test == MAP_FAILED) {
++            ret = get_errno(-1);
++            if (mapped) {
++                do_munmap(want, m_len);
++            }
++            return ret;
+         }
+-        raddr = h2g(host_raddr);
+-        last = raddr + shm_info.shm_segsz - 1;
++        assert(test == want);
+ 
+-        page_set_flags(raddr, last,
++        last = shmaddr + m_len - 1;
++        page_set_flags(shmaddr, last,
+                        PAGE_VALID | PAGE_RESET | PAGE_READ |
+-                       (shmflg & SHM_RDONLY ? 0 : PAGE_WRITE));
++                       (shmflg & SHM_RDONLY ? 0 : PAGE_WRITE) |
++                       (shmflg & SHM_EXEC ? PAGE_EXEC : 0));
+ 
+-        shm_region_rm_complete(raddr, last);
+-        shm_region_add(raddr, last);
++        shm_region_rm_complete(shmaddr, last);
++        shm_region_add(shmaddr, last);
+     }
+ 
+     /*
+@@ -1138,7 +1230,15 @@ abi_ulong target_shmat(CPUArchState *cpu_env, int shmid,
+         tb_flush(cpu);
+     }
+ 
+-    return raddr;
++    if (qemu_loglevel_mask(CPU_LOG_PAGE)) {
++        FILE *f = qemu_log_trylock();
++        if (f) {
++            fprintf(f, "page layout changed following shmat\n");
++            page_dump(f);
++            qemu_log_unlock(f);
++        }
++    }
++    return shmaddr;
+ }
+ 
+ abi_long target_shmdt(abi_ulong shmaddr)
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch b/poky/meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch
new file mode 100644
index 0000000..5afb35e
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0005-tests-tcg-Check-that-shmat-does-not-break-proc-self-.patch
@@ -0,0 +1,85 @@
+From 1234063488134ad1f541f56dd30caa7896905f06 Mon Sep 17 00:00:00 2001
+From: Ilya Leoshkevich <iii@linux.ibm.com>
+Date: Wed, 28 Feb 2024 10:25:18 -1000
+Subject: [PATCH 5/5] tests/tcg: Check that shmat() does not break
+ /proc/self/maps
+
+Add a regression test for a recently fixed issue, where shmat()
+desynced the guest and the host view of the address space and caused
+open("/proc/self/maps") to SEGV.
+
+Upstream-Status: Submitted [https://www.mail-archive.com/qemu-devel@nongnu.org/msg1026793.html]
+
+Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
+Message-Id: <jwyuvao4apydvykmsnvacwshdgy3ixv7qvkh4dbxm3jkwgnttw@k4wpaayou7oq>
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ tests/tcg/multiarch/linux/linux-shmat-maps.c | 55 ++++++++++++++++++++
+ 1 file changed, 55 insertions(+)
+ create mode 100644 tests/tcg/multiarch/linux/linux-shmat-maps.c
+
+diff --git a/tests/tcg/multiarch/linux/linux-shmat-maps.c b/tests/tcg/multiarch/linux/linux-shmat-maps.c
+new file mode 100644
+index 000000000..0ccf7a973
+--- /dev/null
++++ b/tests/tcg/multiarch/linux/linux-shmat-maps.c
+@@ -0,0 +1,55 @@
++/*
++ * Test that shmat() does not break /proc/self/maps.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++#include <assert.h>
++#include <fcntl.h>
++#include <stdlib.h>
++#include <sys/ipc.h>
++#include <sys/shm.h>
++#include <unistd.h>
++
++int main(void)
++{
++    char buf[128];
++    int err, fd;
++    int shmid;
++    ssize_t n;
++    void *p;
++
++    shmid = shmget(IPC_PRIVATE, 1, IPC_CREAT | 0600);
++    assert(shmid != -1);
++
++    /*
++     * The original bug required a non-NULL address, which skipped the
++     * mmap_find_vma step, which could result in a host mapping smaller
++     * than the target mapping.  Choose an address at random.
++     */
++    p = shmat(shmid, (void *)0x800000, SHM_RND);
++    if (p == (void *)-1) {
++        /*
++         * Because we are now running the testcase for all guests for which
++         * we have a cross-compiler, the above random address might conflict
++         * with the guest executable in some way.  Rather than stopping,
++         * continue with a system supplied address, which should never fail.
++         */
++        p = shmat(shmid, NULL, 0);
++        assert(p != (void *)-1);
++    }
++
++    fd = open("/proc/self/maps", O_RDONLY);
++    assert(fd != -1);
++    do {
++        n = read(fd, buf, sizeof(buf));
++        assert(n >= 0);
++    } while (n != 0);
++    close(fd);
++
++    err = shmdt(p);
++    assert(err == 0);
++    err = shmctl(shmid, IPC_RMID, NULL);
++    assert(err == 0);
++
++    return EXIT_SUCCESS;
++}
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch b/poky/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
index 672d545..cc53b1e 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0011-linux-user-workaround-for-missing-MAP_FIXED_NOREPLAC.patch
@@ -40,10 +40,10 @@
  create mode 100644 linux-user/mmap-fixed.c
  create mode 100644 linux-user/mmap-fixed.h
 
-Index: qemu-8.2.0/linux-user/elfload.c
+Index: qemu-8.2.1/linux-user/elfload.c
 ===================================================================
---- qemu-8.2.0.orig/linux-user/elfload.c
-+++ qemu-8.2.0/linux-user/elfload.c
+--- qemu-8.2.1.orig/linux-user/elfload.c
++++ qemu-8.2.1/linux-user/elfload.c
 @@ -22,6 +22,7 @@
  #include "qemu/error-report.h"
  #include "target_signal.h"
@@ -65,10 +65,10 @@
      int ret;
  
      if (p == MAP_FAILED) {
-Index: qemu-8.2.0/linux-user/meson.build
+Index: qemu-8.2.1/linux-user/meson.build
 ===================================================================
---- qemu-8.2.0.orig/linux-user/meson.build
-+++ qemu-8.2.0/linux-user/meson.build
+--- qemu-8.2.1.orig/linux-user/meson.build
++++ qemu-8.2.1/linux-user/meson.build
 @@ -14,6 +14,7 @@ linux_user_ss.add(files(
    'linuxload.c',
    'main.c',
@@ -77,10 +77,10 @@
    'signal.c',
    'strace.c',
    'syscall.c',
-Index: qemu-8.2.0/linux-user/mmap-fixed.c
+Index: qemu-8.2.1/linux-user/mmap-fixed.c
 ===================================================================
 --- /dev/null
-+++ qemu-8.2.0/linux-user/mmap-fixed.c
++++ qemu-8.2.1/linux-user/mmap-fixed.c
 @@ -0,0 +1,63 @@
 +/*
 + * Workaround for MAP_FIXED_NOREPLACE
@@ -145,10 +145,10 @@
 +}
 +
 +#endif
-Index: qemu-8.2.0/linux-user/mmap-fixed.h
+Index: qemu-8.2.1/linux-user/mmap-fixed.h
 ===================================================================
 --- /dev/null
-+++ qemu-8.2.0/linux-user/mmap-fixed.h
++++ qemu-8.2.1/linux-user/mmap-fixed.h
 @@ -0,0 +1,39 @@
 +/*
 + * Workaround for MAP_FIXED_NOREPLACE
@@ -189,10 +189,10 @@
 +#endif /* MAP_FIXED_NOREPLACE */
 +
 +#endif /* MMAP_FIXED_H */
-Index: qemu-8.2.0/linux-user/mmap.c
+Index: qemu-8.2.1/linux-user/mmap.c
 ===================================================================
---- qemu-8.2.0.orig/linux-user/mmap.c
-+++ qemu-8.2.0/linux-user/mmap.c
+--- qemu-8.2.1.orig/linux-user/mmap.c
++++ qemu-8.2.1/linux-user/mmap.c
 @@ -25,6 +25,7 @@
  #include "user-mmap.h"
  #include "target_mman.h"
@@ -201,7 +201,16 @@
  
  #ifdef TARGET_ARM
  #include "target/arm/cpu-features.h"
-@@ -304,9 +305,9 @@ static bool mmap_frag(abi_ulong real_sta
+@@ -273,7 +274,7 @@ int target_mprotect(abi_ulong start, abi
+ static int do_munmap(void *addr, size_t len)
+ {
+     if (reserved_va) {
+-        void *ptr = mmap(addr, len, PROT_NONE,
++        void *ptr =  mmap_fixed_noreplace(addr, len, PROT_NONE,
+                          MAP_FIXED | MAP_ANONYMOUS
+                          | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
+         return ptr == addr ? 0 : -1;
+@@ -319,9 +320,9 @@ static bool mmap_frag(abi_ulong real_sta
           * outside of the fragment we need to map.  Allocate a new host
           * page to cover, discarding whatever else may have been present.
           */
@@ -214,7 +223,7 @@
          if (p != host_start) {
              if (p != MAP_FAILED) {
                  munmap(p, qemu_host_page_size);
-@@ -405,8 +406,9 @@ abi_ulong mmap_find_vma(abi_ulong start,
+@@ -420,8 +421,9 @@ abi_ulong mmap_find_vma(abi_ulong start,
           *  - mremap() with MREMAP_FIXED flag
           *  - shmat() with SHM_REMAP flag
           */
@@ -226,7 +235,7 @@
  
          /* ENOMEM, if host address space has no memory */
          if (ptr == MAP_FAILED) {
-@@ -600,16 +602,16 @@ abi_long target_mmap(abi_ulong start, ab
+@@ -615,16 +617,16 @@ abi_long target_mmap(abi_ulong start, ab
           * especially important if qemu_host_page_size >
           * qemu_real_host_page_size.
           */
@@ -247,7 +256,7 @@
              if (p == MAP_FAILED) {
                  munmap(g2h_untagged(start), host_len);
                  goto fail;
-@@ -734,8 +736,9 @@ abi_long target_mmap(abi_ulong start, ab
+@@ -749,8 +751,9 @@ abi_long target_mmap(abi_ulong start, ab
              len1 = real_last - real_start + 1;
              want_p = g2h_untagged(real_start);
  
@@ -259,23 +268,10 @@
              if (p != want_p) {
                  if (p != MAP_FAILED) {
                      munmap(p, len1);
-@@ -837,9 +840,9 @@ static int mmap_reserve_or_unmap(abi_ulo
-     host_start = g2h_untagged(real_start);
- 
-     if (reserved_va) {
--        void *ptr = mmap(host_start, real_len, PROT_NONE,
--                         MAP_FIXED | MAP_ANONYMOUS
--                         | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
-+        void *ptr = mmap_fixed_noreplace(host_start, real_len, PROT_NONE,
-+                                         MAP_FIXED | MAP_ANONYMOUS
-+                                         | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
-         return ptr == host_start ? 0 : -1;
-     }
-     return munmap(host_start, real_len);
-Index: qemu-8.2.0/linux-user/syscall.c
+Index: qemu-8.2.1/linux-user/syscall.c
 ===================================================================
---- qemu-8.2.0.orig/linux-user/syscall.c
-+++ qemu-8.2.0/linux-user/syscall.c
+--- qemu-8.2.1.orig/linux-user/syscall.c
++++ qemu-8.2.1/linux-user/syscall.c
 @@ -145,6 +145,7 @@
  #include "qapi/error.h"
  #include "fd-trans.h"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch b/poky/meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch
new file mode 100644
index 0000000..5ad859e
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/4a8579ad8629b57a43daa62e46cc7af6e1078116.patch
@@ -0,0 +1,60 @@
+From 4a8579ad8629b57a43daa62e46cc7af6e1078116 Mon Sep 17 00:00:00 2001
+From: Richard Henderson <richard.henderson@linaro.org>
+Date: Tue, 13 Feb 2024 10:20:27 -1000
+Subject: [PATCH] linux-user: Split out do_munmap
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://gitlab.com/rth7680/qemu/-/commit/4a8579ad8629b57a43daa62e46cc7af6e1078116]
+
+Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+---
+ linux-user/mmap.c | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/linux-user/mmap.c b/linux-user/mmap.c
+index 1bbfeb25b14..8ebcca44444 100644
+--- a/linux-user/mmap.c
++++ b/linux-user/mmap.c
+@@ -267,6 +267,21 @@ int target_mprotect(abi_ulong start, abi_ulong len, int target_prot)
+     return ret;
+ }
+ 
++/*
++ * Perform munmap on behalf of the target, with host parameters.
++ * If reserved_va, we must replace the memory reservation.
++ */
++static int do_munmap(void *addr, size_t len)
++{
++    if (reserved_va) {
++        void *ptr = mmap(addr, len, PROT_NONE,
++                         MAP_FIXED | MAP_ANONYMOUS
++                         | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
++        return ptr == addr ? 0 : -1;
++    }
++    return munmap(addr, len);
++}
++
+ /* map an incomplete host page */
+ static bool mmap_frag(abi_ulong real_start, abi_ulong start, abi_ulong last,
+                       int prot, int flags, int fd, off_t offset)
+@@ -854,13 +869,7 @@ static int mmap_reserve_or_unmap(abi_ulong start, abi_ulong len)
+     real_len = real_last - real_start + 1;
+     host_start = g2h_untagged(real_start);
+ 
+-    if (reserved_va) {
+-        void *ptr = mmap(host_start, real_len, PROT_NONE,
+-                         MAP_FIXED | MAP_ANONYMOUS
+-                         | MAP_PRIVATE | MAP_NORESERVE, -1, 0);
+-        return ptr == host_start ? 0 : -1;
+-    }
+-    return munmap(host_start, real_len);
++    return do_munmap(host_start, real_len);
+ }
+ 
+ int target_munmap(abi_ulong start, abi_ulong len)
+-- 
+GitLab
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch
new file mode 100644
index 0000000..732cb6a
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2023-6683.patch
@@ -0,0 +1,91 @@
+From 405484b29f6548c7b86549b0f961b906337aa68a Mon Sep 17 00:00:00 2001
+From: Fiona Ebner <f.ebner@proxmox.com>
+Date: Wed, 24 Jan 2024 11:57:48 +0100
+Subject: [PATCH] ui/clipboard: mark type as not available when there is no
+ data
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With VNC, a client can send a non-extended VNC_MSG_CLIENT_CUT_TEXT
+message with len=0. In qemu_clipboard_set_data(), the clipboard info
+will be updated setting data to NULL (because g_memdup(data, size)
+returns NULL when size is 0). If the client does not set the
+VNC_ENCODING_CLIPBOARD_EXT feature when setting up the encodings, then
+the 'request' callback for the clipboard peer is not initialized.
+Later, because data is NULL, qemu_clipboard_request() can be reached
+via vdagent_chr_write() and vdagent_clipboard_recv_request() and
+there, the clipboard owner's 'request' callback will be attempted to
+be called, but that is a NULL pointer.
+
+In particular, this can happen when using the KRDC (22.12.3) VNC
+client.
+
+Another scenario leading to the same issue is with two clients (say
+noVNC and KRDC):
+
+The noVNC client sets the extension VNC_FEATURE_CLIPBOARD_EXT and
+initializes its cbpeer.
+
+The KRDC client does not, but triggers a vnc_client_cut_text() (note
+it's not the _ext variant)). There, a new clipboard info with it as
+the 'owner' is created and via qemu_clipboard_set_data() is called,
+which in turn calls qemu_clipboard_update() with that info.
+
+In qemu_clipboard_update(), the notifier for the noVNC client will be
+called, i.e. vnc_clipboard_notify() and also set vs->cbinfo for the
+noVNC client. The 'owner' in that clipboard info is the clipboard peer
+for the KRDC client, which did not initialize the 'request' function.
+That sounds correct to me, it is the owner of that clipboard info.
+
+Then when noVNC sends a VNC_MSG_CLIENT_CUT_TEXT message (it did set
+the VNC_FEATURE_CLIPBOARD_EXT feature correctly, so a check for it
+passes), that clipboard info is passed to qemu_clipboard_request() and
+the original segfault still happens.
+
+Fix the issue by handling updates with size 0 differently. In
+particular, mark in the clipboard info that the type is not available.
+
+While at it, switch to g_memdup2(), because g_memdup() is deprecated.
+
+Cc: qemu-stable@nongnu.org
+Fixes: CVE-2023-6683
+Reported-by: Markus Frank <m.frank@proxmox.com>
+Suggested-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
+Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+Tested-by: Markus Frank <m.frank@proxmox.com>
+Message-ID: <20240124105749.204610-1-f.ebner@proxmox.com>
+
+CVE: CVE-2023-6683
+
+Upstream-Status: Backport [https://github.com/qemu/qemu/commit/405484b29f6548c7b86549b0f961b906337aa68a]
+Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
+
+---
+ ui/clipboard.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/ui/clipboard.c b/ui/clipboard.c
+index 3d14bffaf80f..b3f6fa3c9e1f 100644
+--- a/ui/clipboard.c
++++ b/ui/clipboard.c
+@@ -163,9 +163,15 @@ void qemu_clipboard_set_data(QemuClipboardPeer *peer,
+     }
+ 
+     g_free(info->types[type].data);
+-    info->types[type].data = g_memdup(data, size);
+-    info->types[type].size = size;
+-    info->types[type].available = true;
++    if (size) {
++        info->types[type].data = g_memdup2(data, size);
++        info->types[type].size = size;
++        info->types[type].available = true;
++    } else {
++        info->types[type].data = NULL;
++        info->types[type].size = 0;
++        info->types[type].available = false;
++    }
+ 
+     if (update) {
+         qemu_clipboard_update(info);
diff --git a/poky/meta/recipes-devtools/qemu/qemu/fix_segv.patch b/poky/meta/recipes-devtools/qemu/qemu/fix_segv.patch
deleted file mode 100644
index da5ae87..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/fix_segv.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-With qemu 8.2.0 we started seeing SEGV errors when compiling webkitgtk from
-usermode qemu:
-
-qemu-x86_64: QEMU internal SIGSEGV {code=MAPERR, addr=0x20}
-Segmentation fault
-
-By bisection, this was tracked down to:
-
-commit 7b7a3366e142d3baeb3fd1d3660a50e7956c19eb
-Author: Richard Henderson <richard.henderson@linaro.org>
-Date:   Tue Aug 8 20:02:19 2023 -0700
-
-    linux-user: Use walk_memory_regions for open_self_maps
-    
-    Replace the by-hand method of region identification with
-    the official user-exec interface.  Cross-check the region
-    provided to the callback with the interval tree from
-    read_self_maps().
-    
-    Tested-by: Helge Deller <deller@gmx.de>
-    Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
-    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-
-and specifically to 'n' being NULL. For now, just skip in that case
-until a proper fix can be identified.
-
-Reported upstream: https://www.mail-archive.com/qemu-devel@nongnu.org/msg1018813.html
-
-YOCTO #15367
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Pending
-
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index e384e14248..2577fb770d 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -8085,6 +8085,9 @@ static int open_self_maps_2(void *opaque, target_ulong guest_start,
-     while (1) {
-         IntervalTreeNode *n =
-             interval_tree_iter_first(d->host_maps, host_start, host_start);
-+        if (!n) {
-+            return 0;
-+        }
-         MapInfo *mi = container_of(n, MapInfo, itree);
-         uintptr_t this_hlast = MIN(host_last, n->last);
-         target_ulong this_gend = h2g(this_hlast) + 1;
diff --git a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
deleted file mode 100644
index fba89a3..0000000
--- a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b8e84b202cd302a7c99288d3835dc9c63071f8f2 Mon Sep 17 00:00:00 2001
-From: Jasper Orschulko <Jasper.Orschulko@iris-sensing.com>
-Date: Tue, 14 Sep 2021 16:46:51 +0200
-Subject: [PATCH] python3 shebang
-
-Yocto does not symlink from python to python3, thus change the shebang from
-python to python3.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Jasper Orschulko <Jasper.Orschulko@iris-sensing.com>
----
- repo | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/repo b/repo
-index b13e34c..205e0e5 100755
---- a/repo
-+++ b/repo
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Copyright (C) 2008 The Android Open Source Project
- #
---
-2.33.0
diff --git a/poky/meta/recipes-devtools/repo/repo_2.41.bb b/poky/meta/recipes-devtools/repo/repo_2.42.bb
similarity index 90%
rename from poky/meta/recipes-devtools/repo/repo_2.41.bb
rename to poky/meta/recipes-devtools/repo/repo_2.42.bb
index 4d614d9..9bb5000 100644
--- a/poky/meta/recipes-devtools/repo/repo_2.41.bb
+++ b/poky/meta/recipes-devtools/repo/repo_2.42.bb
@@ -10,9 +10,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRC_URI = "git://gerrit.googlesource.com/git-repo.git;protocol=https;branch=main \
-           file://0001-python3-shebang.patch \
            "
-SRCREV = "4217a82bec7b95c1a0bc7b081a1764a6a6d6c59b"
+SRCREV = "5554572f02537b8646139d59ab520e59e1d5f7b3"
 
 MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git"
 
diff --git a/poky/meta/recipes-devtools/rust/files/rv32-cargo-rustix-0.38.19-fix.patch b/poky/meta/recipes-devtools/rust/files/rv32-cargo-rustix-0.38.19-fix.patch
index 4c17c66..a7f3d11 100644
--- a/poky/meta/recipes-devtools/rust/files/rv32-cargo-rustix-0.38.19-fix.patch
+++ b/poky/meta/recipes-devtools/rust/files/rv32-cargo-rustix-0.38.19-fix.patch
@@ -11,7 +11,7 @@
 
 --- a/vendor/rustix-0.38.19/src/backend/libc/termios/syscalls.rs
 +++ b/vendor/rustix-0.38.19/src/backend/libc/termios/syscalls.rs
-@@ -102,7 +102,7 @@ pub(crate) fn tcsetattr(
+@@ -138,7 +138,7 @@ pub(crate) fn tcsetattr(
          use crate::utils::default_array;
          use linux_raw_sys::general::{termios2, BOTHER, CBAUD, IBSHIFT};
  
@@ -20,7 +20,7 @@
          use linux_raw_sys::ioctl::{TCSETS, TCSETS2};
  
          // linux-raw-sys' ioctl-generation script for sparc isn't working yet,
-@@ -111,6 +111,10 @@ pub(crate) fn tcsetattr(
+@@ -147,6 +147,10 @@ pub(crate) fn tcsetattr(
          const TCSETS: u32 = 0x80245409;
          #[cfg(any(target_arch = "sparc", target_arch = "sparc64"))]
          const TCSETS2: u32 = 0x802c540d;
@@ -28,7 +28,7 @@
 +        const TCSETS: u32 = 0x5402;
 +        #[cfg(any(target_arch = "riscv32"))]
 +        const TCSETS2: u32 = 0x402C542B;
-
+ 
          // Translate from `optional_actions` into an ioctl request code. On
          // MIPS, `optional_actions` already has `TCGETS` added to it.
 --- a/vendor/rustix-0.38.19/.cargo-checksum.json
@@ -36,10 +36,10 @@
 @@ -1 +1 @@
 -{"files":{"CODE_OF_CONDUCT.md":"f210602311e3f74b32f46237fd55f4ce36d798e85e3db1432ec667f63a7ffc44","CONTRIBUTING.md":"3fd57de5c678db1c972da676a8231d2fde9820695ef1f0d53f1e55a3e81d9de0","COPYRIGHT":"377c2e7c53250cc5905c0b0532d35973392af16ffb9596a41d99d202cf3617c9","Cargo.toml":"c994094b77085196394cd7cc03161f4810af7da799cfb40c696973e912929a8f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-Apache-2.0_WITH_LLVM-exception":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","ORG_CODE_OF_CONDUCT.md":"a62b69bf86e605ee1bcbb2f0a12ba79e4cebb6983a7b6491949750aecc4f2178","README.md":"58d2ee38dad64ff142e98872860b282b36a09076df537af57aba39d675d84a28","SECURITY.md":"4d75afb09dd28eb5982e3a1f768ee398d90204669ceef3240a16b31dcf04148a","benches/mod.rs":"e260e67273aa0a37cffdc5cd451699335b8ee656c17275a0d0f2b4563c6018ca","build.rs":"5f93559819ca7fe233f01579d51ff5b58cb6e96ef9e7817a3358a9b410d5bbf6","src/backend/libc/c.rs":"63a6b16d4c13db9946c58ef643dd92ac4c81c4be8b5d2adf9bb0f5c797593d3b","src/backend/libc/conv.rs":"c4b4a6fdcf2f9295ab0498229a780942b031a2847ddf2466f90884bfb30255f8","src/backend/libc/event/epoll.rs":"f35eb0fddf9c4327551e1995f109a537f9899b9231e914671bdf26b616048370","src/backend/libc/event/mod.rs":"7f8547c599b8263eb791890bbe4a0b22fe2676d007ffdcc3e07b2e48d1c994db","src/backend/libc/event/poll_fd.rs":"06e2ce2fb30a45b90279ae753a67085e9f818a1b16d99cc92c525e2c46d61d51","src/backend/libc/event/syscalls.rs":"295a930521b345192caaf916b39189299f81f5f7c9f1aaed235baf3bf6f2f5fa","src/backend/libc/event/types.rs":"09e813690f44752708485e5a5ee59a43834a4a3e9577f2739b310c3ea8b4b64e","src/backend/libc/event/windows_syscalls.rs":"ebfac665c6676c4b803134ab8806be8aa2e96bdbc7799a19c544cd9069b35787","src/backend/libc/fs/dir.rs":"6f9526714c525e219399371d5acbe2666f0ac3ee88f73dc03fb31cf195ced95d","src/backend/libc/fs/inotify.rs":"f4e471484c4633dbb91c875ba8df87b687dd174cc45fdd2a1f717ffcb1591b00","src/backend/libc/fs/makedev.rs":"89c679a0ef18dd41b3c6223bce0f329ad35bf6cadbf16e47b33fad3f312ba4a6","src/backend/libc/fs/mod.rs":"576b6fcce723fcd5fc76637abd3b3565b00ca0bac309b63aecd6b8ee005fa81d","src/backend/libc/fs/syscalls.rs":"bba2a6a475fcd980f9352007f2b0b74b97abffe9d025e4c311e6f1f2f84eee3a","src/backend/libc/fs/types.rs":"20618e1a675fff5a8d2f08b4278425a3ec5c43d83518a5cbf3a934f135709a7a","src/backend/libc/io/errno.rs":"048d4350b9836fb9c9400127509705835a4992da86410e33a9e67cc43e22f35a","src/backend/libc/io/mod.rs":"746647bd864e4ec7717925b6d176cebdb392b7d015070244cc48d92780351dd6","src/backend/libc/io/syscalls.rs":"380d9be17ec7e46fdc24682aeae6410dcd8b10fd129090b479bb8ee405d9b5c6","src/backend/libc/io/types.rs":"8df53d41d72a39f334ed124707cb501e83b3624b769c80b78c62bd45179bc04a","src/backend/libc/io/windows_syscalls.rs":"fab3fa099aa89cea56a6edc651dd37750e581534f4f45b04a7e425f130b08468","src/backend/libc/io_uring/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/io_uring/syscalls.rs":"5af8146d5971c833e6fd657f652c618b31f854e1b0811864fba9b658cb633e19","src/backend/libc/mm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/mm/syscalls.rs":"9b7c383f8ef1e258800c9797abbcd45374b97b6680637b1a247cb93878213b5a","src/backend/libc/mm/types.rs":"a427ff490880e92f1ddaa4aea55bb3ff2f43bd29712a6af09b25be2984ecb3e1","src/backend/libc/mod.rs":"2b396834f47b8771d2274eaa2632fbecebc17316d20f26d5e94f060bb8796f7d","src/backend/libc/mount/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/mount/syscalls.rs":"1bc87501a078616d0190d2e85de55f3f968b8cb79d49bd9eb839a350eed26089","src/backend/libc/mount/types.rs":"8e2b66822cd1148e5fe4023f5608f36afb0d47bad454db9560fbca4b0dbd2b6f","src/backend/libc/net/addr.rs":"b6644e0169c6681084704e9ca231863364d81e3d3cb5d3689e0df8acf7b4ec16","src/backend/libc/net/ext.rs":"0ec74196ace553c9bff355e2e35ad3b70cab46e32f8f7194715e4528fe1f54bc","src/backend/libc/net/mod.rs":"4e2d6c72bef19985a2935e7891288f0045d1ff1287ec50492882b4dfbaf0fea3","src/backend/libc/net/msghdr.rs":"f82825d40d8872e2e804cde32bbcc68bef43a5f48ad857fb1030550c4eb44838","src/backend/libc/net/read_sockaddr.rs":"af90cf19e2bebc04976b9ac97010c38db91dcd90fd81b48a14528d45be97fe20","src/backend/libc/net/send_recv.rs":"52ee998bc8422a074e5105607440631e569e531caa7d356157529c3ddb07b684","src/backend/libc/net/sockopt.rs":"c1e9974478f027d9053fed5b4f28e6dce49dd15f05e1ed574cb4eddf1be47b7c","src/backend/libc/net/syscalls.rs":"b876541609622003a9e8cd2787ecbb93b0a155cfd61914c043ac2401ed3fd923","src/backend/libc/net/write_sockaddr.rs":"14e941b5a11e4d7a17182860c47b1ee972b56ff7f0aadbcc6ab2c8740b13cea9","src/backend/libc/param/auxv.rs":"fdc85b7c33bcd05a16471e42eb4228c48c98c642443635ba5fc3e9a45438d6d3","src/backend/libc/param/mod.rs":"5234b8f1bcb886cca6ea003d411d75eaeebe58deedd80e3441354bf46ed85d4d","src/backend/libc/pid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/pid/syscalls.rs":"49ea679b96c0741d048e82964038f9a931bc3cf3a0b59c7db3df89629b9c49e6","src/backend/libc/pipe/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/pipe/syscalls.rs":"8affde100f6a9dfc762b79d1e48be5c1039be414f8ef7d5a6acaba882a68d259","src/backend/libc/pipe/types.rs":"1e797beb383bb2e4038f1de21bea204caec4a4922b25a6ef84dbbe6e953e78b0","src/backend/libc/prctl/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/prctl/syscalls.rs":"8a2684f444a7555098dce2b92270d81cefdae902716c6e5d59bd7b0657e8a29d","src/backend/libc/process/cpu_set.rs":"b3d36b01b53b0b6c61a20ed8a69d48eccdd90cc17f82f2926ef1e844f002d0b7","src/backend/libc/process/mod.rs":"d7dc401255bad2e55ffff365339cdc3aad306861d269ad727a817d3cd7763166","src/backend/libc/process/syscalls.rs":"17b7eab2e0ea2898d41ec4e0d2a84baf57eae9f6e3e016e6b74f0e174440cffb","src/backend/libc/process/types.rs":"c26796486e9f9e7bbc44715ecaac285eb808fd9a8c08d237b2ac19f34954d608","src/backend/libc/process/wait.rs":"0cc556aed976b4bbb3965f74fd76b8216c755fce25043b7b21ce54afa07c9773","src/backend/libc/pty/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/pty/syscalls.rs":"699a4c325fc590b8b5dabfe5a9ff386809be14dd24bf35aa6ef581b2bd75457b","src/backend/libc/rand/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/rand/syscalls.rs":"78c7201e6bcb75e9cab9486d1878861319f865de2b2c46437be68690bd17bf13","src/backend/libc/rand/types.rs":"7763e6b40e4b9df825fdd2aa5ba1770da999137d04776561167116c58f8fa618","src/backend/libc/shm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/shm/syscalls.rs":"60d797d4e85e08e6330e6b8d80094356ce377e5484952f88ae2a6e49231c268c","src/backend/libc/shm/types.rs":"be4034353ab434568053260712fa5f55ed6d8a1a9fae64fa4fe1ea4f2e82120b","src/backend/libc/system/mod.rs":"38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909","src/backend/libc/system/syscalls.rs":"4c632a6d59fef0bb516d89f119f7f37aa18f8a75f63aeba73d71c464473874cb","src/backend/libc/system/types.rs":"6871e16aee14fe2ae03cea798c3e509ffe44778a9c0e5608fd73e2e015876d7e","src/backend/libc/termios/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/termios/syscalls.rs":"dbe38f61f52f78dabf39e35a2fed3fb5f958270afa102e6bc3a374dc2621faf4","src/backend/libc/thread/futex.rs":"b666828653b12634bbd7fd709acf69641b648ec40962a1d4f904c5db14d2eff5","src/backend/libc/thread/mod.rs":"fa710053974d7f16a6c49242ee6c10a3b9e1143452b9daeaed8837302a679fff","src/backend/libc/thread/syscalls.rs":"120cb13fe7ffdef7a52ca1d141d31bf189176e9f5862f87bb171d54370a682a9","src/backend/libc/time/mod.rs":"38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909","src/backend/libc/time/syscalls.rs":"f82e0725c5af8a52e61ee83aad2c77694f2f7a72ac1e6eb284109a70ac6edc38","src/backend/libc/time/types.rs":"d4e55d2b9fb8de772c8bf5bba157472c49a12c25502e62a9c599a2e6d3196a5b","src/backend/libc/ugid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/ugid/syscalls.rs":"8edf91b8790add23902c9f5418da6b0723a371677f29f490e0c8af852f0f1a0c","src/backend/libc/winsock_c.rs":"3bf3884fd250eca806ffdf96da68e29c133a697810b78b333ea449e523e58562","src/backend/linux_raw/arch/aarch64.rs":"2a255c9135bc8a321c180f52b88eb2b158bc9170cd222149caeae63c24587d44","src/backend/linux_raw/arch/arm.rs":"165bccb5883d0136e55d42091183765f83d86e9d37a7cb2cec9ae8af32774db6","src/backend/linux_raw/arch/mips.rs":"24af364aa93fd4b9917639d473336490a143f0d1723b09f388e72d534160ee51","src/backend/linux_raw/arch/mips32r6.rs":"e436a2ade34f2f7c58b8924462b07a2499dfc951e1e1318d51759444fb8b658e","src/backend/linux_raw/arch/mips64.rs":"897da9ddc877963ad59464d7f81dc59df8a7e91251e6adea14cfd946e2740a1c","src/backend/linux_raw/arch/mips64r6.rs":"3c08aea13c1139fb0dfbe74ca3d0147f007c3aa2eda641afb82c46f6aa4f6cd1","src/backend/linux_raw/arch/mod.rs":"37eaeea601d39be00d170856a31a8ec6a27b0d3ac22ab3ee642ab0e45dee237d","src/backend/linux_raw/arch/powerpc64.rs":"dfb001f8636a5e46d728900b0804fe6c374e5e18a6f0e76d7d62e0c07da74477","src/backend/linux_raw/arch/riscv64.rs":"41d33242d941030f46077dc2b1bc4c7913fe7630d693a5a7eef966bcf38f9d8b","src/backend/linux_raw/arch/thumb.rs":"2fd979ab421248c0a4c592bc0cefee63edc26528f469b71b63eaed35356e42e8","src/backend/linux_raw/arch/x86.rs":"81c73c0a13925854b54db754f533dec565b1db2d9586e210a2450c6f5915171d","src/backend/linux_raw/arch/x86_64.rs":"e929036a1f3cf93ba538f4523b241605cc7b5e61f84ffe6d9d5cdbcb6f73e543","src/backend/linux_raw/c.rs":"74cdf34fcd5bba9628c04585fa13721073e2bffe6740315c7655d1a55150230f","src/backend/linux_raw/conv.rs":"3b452e19c6b8285df205baa790e19f32061952ae7c7c4e39ba01726de6beb4fb","src/backend/linux_raw/event/epoll.rs":"18980136ee6d3e327d6c46a33306fa934a80eaee609a329098935569507440d0","src/backend/linux_raw/event/mod.rs":"72e46b04637e2d1d2a6b97af616144995399e489d1fe916faf835d72fc8c64cd","src/backend/linux_raw/event/poll_fd.rs":"78d040f7ce0574fc18cebf6b7766c210a3254abdbafe175f51c6b460fa19c514","src/backend/linux_raw/event/syscalls.rs":"8782cdf978bff0773bf5f35c1056d5c29a40742cf6f99d9606d951b52596cd34","src/backend/linux_raw/event/types.rs":"2ffdcb728587dbc25d302527f4a52296b96013d5199c946291b059ba4f7d466f","src/backend/linux_raw/fs/dir.rs":"c675dc5413428d2defd6752e99d210da83639779e853db209de6a1c08d35e0e7","src/backend/linux_raw/fs/inotify.rs":"42a6ed7b091eee20d7fd9becfea240deb99d0b8ca3e8e083cf365d484d8eeeeb","src/backend/linux_raw/fs/makedev.rs":"c6b4505c4bcbbc2460e80f3097eb15e2c8ef38d6c6e7abd78e39c53c372139e2","src/backend/linux_raw/fs/mod.rs":"8689e46f9c4c3e1190ae5fe39176c573cccac10b3739472128ca237f41e2686a","src/backend/linux_raw/fs/syscalls.rs":"a4512f58e2ef01bf0799c96fa7821284866b6826594642565f46d93e566e2e12","src/backend/linux_raw/fs/types.rs":"c015cf3cde945ad4a42ec706c6e1140c7342041ace1da6e0ef1bbf5e9e019ce2","src/backend/linux_raw/io/errno.rs":"8f15d735435b722466696094aed8b612b8526658ab7e079f386037cf8a3b1a6e","src/backend/linux_raw/io/mod.rs":"7ae2324427892cca6f5ab53858d847b165f790a72ec25f3d99fb15f0506c9f27","src/backend/linux_raw/io/syscalls.rs":"026f99b397ae521ac4b2ba41acec6547018073a9da5fa355aa8f9ac61298c172","src/backend/linux_raw/io/types.rs":"0cfffdc2fc9c33faa4055f9686db5922676f17d5c069362bae3745f39da3594a","src/backend/linux_raw/io_uring/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/io_uring/syscalls.rs":"0f7c9cb7ccddf5687e4b9e5b23558871a452a29ac6095a0184a06c47b9b18eb6","src/backend/linux_raw/mm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/mm/syscalls.rs":"7d43752e8abaa8cec02cd3329e08303c56a9e6ac97aec447293397b9953c3ba3","src/backend/linux_raw/mm/types.rs":"4407b4b54c4048bb1d4e702575e20037c24483a22f6a5cfcc940e4738fcff381","src/backend/linux_raw/mod.rs":"bb26fe4783f834a4624c99ecf9e4ea8fa4d1c7fe9adfb6d7310fac689e7797bc","src/backend/linux_raw/mount/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/mount/syscalls.rs":"3947261b5d46b9737f02dc5352c3a3a35c63c461fd75bcd8ae6619dfc0bfb54d","src/backend/linux_raw/mount/types.rs":"8d39c4d6e555c88de5da3115a301562fafdcb3942aa69a0e01d42de8edb1c78f","src/backend/linux_raw/net/addr.rs":"fbb6c071a8ebc2c557c7013d36d4b540c1ff6ed63103d0a8abcacd8977fbf5c8","src/backend/linux_raw/net/mod.rs":"904b2ccd4228ebcda25db0223b92fb03e4042bcc7b0a202f19410a8a5ff517a5","src/backend/linux_raw/net/msghdr.rs":"3198339ccd00224aefdba74e9144818fe387222066a387a9dfd95fd8c48cf9d9","src/backend/linux_raw/net/read_sockaddr.rs":"24075ac4c05fab5fe44aae4445cdd12ec7e474f047150baa9b768741d6b9693d","src/backend/linux_raw/net/send_recv.rs":"85b1a78ecc920e919ce7a0a9f7ad79cba5ad09af4f53018df8c46c7c112bd7a9","src/backend/linux_raw/net/sockopt.rs":"2ea8625ecd68a799c14ed48dec2f3e01f085222b6cc36f4916b20143e08ae575","src/backend/linux_raw/net/syscalls.rs":"eb897e0074ec53c5b18594c39cbb9ec5bd796c9120bf029f0b05145a7eee1804","src/backend/linux_raw/net/write_sockaddr.rs":"0eeeb7ec8dadf95503a2f89fdc933b8f9c7e45e03fdb343ce490b6cc8eec0f96","src/backend/linux_raw/param/auxv.rs":"c1b1a628d6c51ce8adc981f58c6e08abba4a151356ff98cdbc0b3e75abeadb8a","src/backend/linux_raw/param/init.rs":"a5024f9afe361884f22fb4d65e632ccd8a60f1138ff6bd526df600d40e0d9b7e","src/backend/linux_raw/param/libc_auxv.rs":"e567f471ab21068141acb9fb2f88b9ba553f630945bc8f01b689955b48414512","src/backend/linux_raw/param/mod.rs":"2e6a1a1c00351b9c88bd615aa923f71d76208df5626dd9bea03067f28f81dc31","src/backend/linux_raw/pid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/pid/syscalls.rs":"eef6aa01830ddd510b83f507da2002c03e58318b73744be2c06ebbe33c4f194f","src/backend/linux_raw/pipe/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/pipe/syscalls.rs":"366c730fc3e991bddb9f5a15b8c3917a8e6ace6d1d5a9113b2749e476faf6f83","src/backend/linux_raw/pipe/types.rs":"9d4bd3da7cd078d42574ad7d6b7554e301a1a7e97b292a77993a6d263726ef1e","src/backend/linux_raw/prctl/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/prctl/syscalls.rs":"a18b224307e0d27bda9b7b85c75cd6c7ddfe39f5ce52efb7bb0bf0585b757343","src/backend/linux_raw/process/cpu_set.rs":"dfdcbdf35aff6a3e08e7d38193bf18c12ca8aa64eb0dc417667be82dcc0f7c55","src/backend/linux_raw/process/mod.rs":"fb393c70a9c63ef9a6bf1fb5a2dc94f07d6b0b6987cc5231c15c607015dafd68","src/backend/linux_raw/process/syscalls.rs":"3730c155663d727d5b239f57f220727ef33dd257e74a1b697274de0f94e1da79","src/backend/linux_raw/process/types.rs":"6811ba822bc12a1a6336649151b4adb1f5d3365684a31c07f01953ea9547743d","src/backend/linux_raw/process/wait.rs":"921aee4b0048746087f52615a98edc2aa0fb4b53d6df44be4533098df55d1b05","src/backend/linux_raw/pty/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/pty/syscalls.rs":"ae09c4aecc0ae87b1ca58d82efc58007b9dddaae78460d615f48da19d1cd0f89","src/backend/linux_raw/rand/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/rand/syscalls.rs":"a84f70251672e92f253838bf05e989434f67373233e88d21d8835cbb792b1fe3","src/backend/linux_raw/rand/types.rs":"b7217c98f2da4ecf89225f36eb52c396ba2a73debdeca739ba864a9030b6a23d","src/backend/linux_raw/reg.rs":"39b6234971122d247054bda8c2dc3b44493be30482635baa9e2fcbe048e78cbd","src/backend/linux_raw/runtime/mod.rs":"b2cae8cce3822c3c92942f06ea0b68464040dcac33c6f0f7ee392c6269993347","src/backend/linux_raw/runtime/syscalls.rs":"fc9c9edbe07dd7644ab75c51a1597a31467a3421301503a072bef93e6df07643","src/backend/linux_raw/runtime/tls.rs":"6316060560a112c2e9cd9807cdba6e8c91414113a04a739160929ae9a67bba1f","src/backend/linux_raw/shm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/shm/syscalls.rs":"3ebf91610b02de0312e1f0f0cc5d56e12b4d93794540087b3182cbdf3cb9c8db","src/backend/linux_raw/shm/types.rs":"76f587e0edc78e3b780b66ddf9bdf56d5bcb57822111e9f8f66a7eec07c2c0fa","src/backend/linux_raw/system/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/system/syscalls.rs":"2af6c2672a6528b404b52f501d9803a63e9f47886d3b5d2d2dc5a71cefa7327a","src/backend/linux_raw/system/types.rs":"1ceab8d738a71043473b26e97fa3fd79d588a86d4774cbc9b9e1d4f1447a016e","src/backend/linux_raw/termios/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/termios/syscalls.rs":"01c4c8028595d8f53197ac3f2accb83057cb80fb5f78db63bbf85eb46d40e1c9","src/backend/linux_raw/thread/futex.rs":"0aa0f9f5be6a79de81e82c9f11f1bf8831f682a4b2f6cb29669e1591636f084e","src/backend/linux_raw/thread/mod.rs":"6ad4a4b90b9234e79900b27ebbe8837e3a7a36aec532912e3e253edce5225067","src/backend/linux_raw/thread/syscalls.rs":"0e3dca63be7322e1e9c58456b28eb8548abb9f08b4436b87b139e891c01c446d","src/backend/linux_raw/time/mod.rs":"672724f55b7b7be6a7452bb1cc2d28b5f0aaa840a2856fe363acce624e1beefc","src/backend/linux_raw/time/syscalls.rs":"451da0bbb66accdf58ee7f2f8746a93b22ee985907a08717a3d3b1650457d878","src/backend/linux_raw/time/types.rs":"56cb936dc36af759e06d0b7bcfa7db02818dff6084c1d1d9a538a6d5945032d5","src/backend/linux_raw/ugid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/ugid/syscalls.rs":"8c86d251db33b399a1d1cbb8e87afe650b78db84f444d3251309b7a0480b54f7","src/backend/linux_raw/vdso.rs":"056314f72c71d4b041739337ca2098afb7fe070f844327f462c293f43481b75b","src/backend/linux_raw/vdso_wrappers.rs":"6bd4b8c15761e16defff7d2eed18c008c9f980ebee6c9bdc2e104b16b9b7c631","src/bitcast.rs":"e21c87c292c781b27256c6f5dcf9fd52dd69ed6e21016cbd67ac31a8219ebf8e","src/check_types.rs":"bc31f9b293bfbf272284ed4d0da24e941206a1ac3f18d3abb0b1a61f1ede1dae","src/clockid.rs":"1d2e1cfcf23160b55d6b046d235edf2eb2408f072a8bdef3e3a3871885abdd5a","src/cstr.rs":"41af2a4429fe6c67a8883f8a8f63d66c90df566abda74fd2b03bcef7b9f24218","src/event/eventfd.rs":"81cbd08f7bdf40a6ce1ca692b63da1dc8ba925282990668d9d68f1203e839fa1","src/event/kqueue.rs":"f13f40b97c4413902115408fc2f340e7c82bba42d2468015b007e8ac6ef23132","src/event/mod.rs":"326a7ddfeb33bb95dd31391d65f400fa622e5d0ab827c096cab16af4b6843b51","src/event/poll.rs":"0ee583dbd457a573a82a06c04a2a24bd2c76e751d27a435507d55338e2871327","src/event/port.rs":"4e51ff150e5d17cbd44aa64a38b99c15e26eaaf2e350768b5dcacdfde4fa5212","src/ffi.rs":"c2b8b38c02d72749aceb715c496726caba1f1fa989ad3856d0103a2fafed89ed","src/fs/abs.rs":"6f0b57878f61c009fd0a3698a3983aa8076ba4fe3b5c28feec0307d65a77891c","src/fs/at.rs":"9b5f35afcaca9dd19d501cee3ad305b1d1c1b588c5fd925b18b6d3b614f05011","src/fs/constants.rs":"24076a01f8bfc126b0905e9bc0521d2c3a3abc6c3b8c86ddb1e545070d097127","src/fs/copy_file_range.rs":"d3b644374390d482b2ff749a2459458872b57d0dcf9670368739b7833509a7c2","src/fs/cwd.rs":"9f429a79ace6e17455634da09216ee0ad3d067a4541518b3193ae6a8d9ff1e26","src/fs/dir.rs":"347a52f4ca9ac6321c52e802e97ec90d1b4c62ec955c8996fc17f8f5aed69966","src/fs/fadvise.rs":"beef66ebe1310fb92628240b2cde68f744c78e50f6ff61bb1404bd4868d9cae8","src/fs/fcntl.rs":"2085102d05d0ba963e100ab3e3f19dac4ff27d142fbf798626d20a2a596ba96d","src/fs/fcntl_apple.rs":"e2f23f038083621bcdecc98d02ce1023508afaecdb2ed0fba5c8b70f955301e5","src/fs/fcopyfile.rs":"ec95929cbbe02cf49233a785e5238931bb107b7903cc5bc95e4231de960995f2","src/fs/fd.rs":"68d19bb99da0444444acbafd27ba10a69fc2ac35ede4e0106ac2043c30ce4f8f","src/fs/file_type.rs":"fefd865f91011f66126213b0994773d99e373b468c31e866002228c98c64ad85","src/fs/getpath.rs":"28f6970fc1bbc37bb35c84724b59eac436ea7407a4522e18c2bdacb1fdd2edd9","src/fs/id.rs":"1b5c8a8baf9a9bb1f895f97189cea4e5982a0d35b192afeec6340a6c6222e0cb","src/fs/ioctl.rs":"e798eb41bbc201c375bc295ad2928c2467b45b4fbbff3c82236dccbc0d6391a5","src/fs/makedev.rs":"85520b484cb7c15ab71ea1c368578ea3b7e484d82f8510db92b6ce9f7ca341ae","src/fs/memfd_create.rs":"15a8f28e040cffd8c24c7903483440f88853b2e538ad48d80f3c00b4b2befdea","src/fs/mod.rs":"ecd20bf01d651b1866b198c4fc0dc8e7d681eb581e28708c8a0abd062de137ce","src/fs/mount.rs":"8f6ea2b997dd83c50c90291b9ada3ed77a9ce1ad701c9b0d533b5113b317be5b","src/fs/openat2.rs":"4a95c15dab533a41201b5fa25c8a212956b7571d58cad696bdaf45af8aef96db","src/fs/raw_dir.rs":"18ad797876d6230c38d4cacbed081c4028e03ace477d0520d9b226b40de942f0","src/fs/seek_from.rs":"a9efa0feb9ac789cf47667e91efee2e3f2dcde16cb3b7a928c99da640fa0e0d6","src/fs/sendfile.rs":"e3b2058741cf4b1698f34d84bb37130cf2b72806d522a16fe541e832cde136cb","src/fs/statx.rs":"c5192f54311faeb5a8e7ba7da1acd4fa5a8f69f6c15c4d78b4b7a495d21d0864","src/fs/sync.rs":"a3b23543834281f347b0f873bd38154d31d404871188ac08f2b20b9196234cfd","src/fs/xattr.rs":"b976eece822f69e768d91e61d86ee990ea18097b20f7ebeedaaf718c61b48962","src/io/close.rs":"0aa3cd05a8fed8e5244f97b8b6c2e7f65ed93a4e5435c6329852bb3da7514440","src/io/dup.rs":"a8a59c5d345dc54c57ded890720c33eb78c4d53917c71e8bb6317f7ed122cb87","src/io/errno.rs":"58a4d20ba0924e4d514e3c876fbe08982f1623187642ae14780815e65989c8c8","src/io/fcntl.rs":"c0f7bd7fce1119b0c1d0085b7ab77d5df02470ae3e06035428a2452dacbec296","src/io/ioctl.rs":"a47a5ec14607142f2c2ffcb93d016b8e86c8b15ba94b56b35382b545db62ea34","src/io/is_read_write.rs":"1bfb9ee5d58e0b29b44af12fe2668c7bccc841358698dcde47f1519ff9bb73b4","src/io/mod.rs":"75f1d0646be1d4c7c08b5887d8119b0103be8c25c43ccd4e0e97015508c0bb8f","src/io/read_write.rs":"54ba528b11601af1338bb0c71a41b256a0033076d30b3946c3fd0bdfa61dd021","src/io_uring.rs":"61e6dce7a53ce141604b5f577e20ec5aa73a20e2c2101825c7c52396ba221886","src/ioctl/bsd.rs":"e33772530b1b2d1e7d61ce53d9267e68d88f7f5df13301f90412d89a46c6faaa","src/ioctl/linux.rs":"256aef9fb51c67cd7f43a581b702aa62757e3bdd7c38f71bf849f818194c2285","src/ioctl/mod.rs":"739a4f6d4e9a816745e42133c1b4c51c1285bf5cde3e1ee3ea72ef0b802e3806","src/ioctl/patterns.rs":"26dda154aabf67d45362d9378875f95c1593391ecbc62be02d187b7e19e7f9da","src/lib.rs":"7430fd1db444a72dc8f9b762f2fb61226dd00c89c7c932481e94958f60678383","src/maybe_polyfill/no_std/io/mod.rs":"77889bb5c5a4f2e50e38379cdaa5d0fef4b0cafc3da056735df01f6deae75747","src/maybe_polyfill/no_std/mod.rs":"ec94a4aab4bc475785e469d10fd6bc95667e1d47d958e9cff3a19049d88c8c80","src/maybe_polyfill/no_std/net/ip_addr.rs":"046327ee244f758f2bc31d3be305d8cd0dfd8342aac1add8259e999b4b46c4a7","src/maybe_polyfill/no_std/net/mod.rs":"b0ee611c454679226a15bf647e7779995f3fe9c8e0507930a0d0613eb414b7c2","src/maybe_polyfill/no_std/net/socket_addr.rs":"bfeb32d32c176cde76323abcffebfc47e9898fb8d7ce3668c602dc8451086a2d","src/maybe_polyfill/no_std/os/fd/mod.rs":"27ef0afbcb0695cbb15101070f417eb51e0ef85ae66ec967d95e80771d507c47","src/maybe_polyfill/no_std/os/fd/owned.rs":"ab86ffa2693a04f3085770faf395f95e5303001711be8b19c44a47a0ac574091","src/maybe_polyfill/no_std/os/fd/raw.rs":"f3648c7bd4a6ff94bd823ed9e0d99d398e02f24875cf9b25962736999e7c6943","src/maybe_polyfill/no_std/os/mod.rs":"27dab639a765827644005d5f2fcc7c825310606b889cc8dd83f54c9528350dc0","src/maybe_polyfill/no_std/os/windows/io/mod.rs":"5bbcc05c83fee5026dd744a994e0458469466d5be39081baa62df07753b92fd2","src/maybe_polyfill/no_std/os/windows/io/raw.rs":"4c32609a489dd938a49328b5637cb3bafb96437f2f9f269ab66d7d3cb90247f6","src/maybe_polyfill/no_std/os/windows/io/socket.rs":"c658f42f24eff44a661f2adfd24a11af80fe9897f3e2af4dc5d2c64808308d65","src/maybe_polyfill/no_std/os/windows/mod.rs":"fdb416f8f231a4e778b5f985b9ae712ece5e1a1402963ad1a5f6a8b9843795f4","src/maybe_polyfill/std/mod.rs":"7c16c86cc73e226e65ead598e4018238b22000a345040b706bf1e1b3eba115fc","src/mm/madvise.rs":"3c262b3713a73fafcedf1b04bb12c048bb11d47ca43c959e5dfa48c27651f4f0","src/mm/mmap.rs":"28523bceb2b7e3bc1207f351d8a1771867159e1b9ff1d9c37fbdc05aeb696b50","src/mm/mod.rs":"b3a6cb838986d45825b912355cedead761211a494ca6f89b2367a2d2157e340e","src/mm/msync.rs":"9dcfe5f54235e9314a595edb8d548ac79d222bbcc58bb3263cf7e96d603b23ad","src/mm/userfaultfd.rs":"8073443bd181ff0b3ba4d0b1ae67370b4864035a0c8b4898cd709dc47c518ae7","src/mount/fsopen.rs":"160e384e9175fd98669cda1cf3590bb195c2ba7e1c724e9ea06e692595e58ba1","src/mount/mod.rs":"5f0c9df4727592695deb1cd63ae1de021b03dcd9d0d1b68e1f34d12a7136cb19","src/mount/mount_unmount.rs":"8ad11675e5d762d33fbefbed06a6a9f9e52a9b689bd06662446152614321ab77","src/mount/types.rs":"601ae3e10b7dc496fed7f3b40a80e81c6edd7bf13189d7be45c3212d4c684c39","src/net/mod.rs":"a6bc55f9e086caf46a7c00783498d73a328a66f2a991f1ec65d5f13931377b0f","src/net/send_recv/mod.rs":"f33e39c7b228cd8109823b0a0a1aa397cddad504d49e69b36f74c5b84e5070e5","src/net/send_recv/msg.rs":"6a73e4fd2b78fbeb683f48bcd8404a362245c6cd66e0d59e6378467600b44268","src/net/socket.rs":"bc825a94831557bf4c2cabd8ef5ae21ffe0986c24f9ada564eefa66270f69ae9","src/net/socket_addr_any.rs":"a9af81e967a91b45e51aec4f46a068fade7035c5d19dfaf05bfdcd3b3c32e9bf","src/net/socketpair.rs":"56f4885c31d2664cd16e18a9a88792a4912fedd953cec36dba67e8581fd57921","src/net/sockopt.rs":"58fbabf73ede7afaeac279241ff874dcee5604f63b3f38e4435a61a354da2196","src/net/types.rs":"5914e786d6a24a6efc355023fd71a28bc29fc85fb672e5388370243fe83e4191","src/net/wsa.rs":"6e546b42f50a851fc833c57cda76cfb347203ed4b0dea574a3d325bf5a2ebf80","src/param/auxv.rs":"886e57d52adf0199b8146f849c2db1e3136c07fc4ec61f60dc781fea11070604","src/param/init.rs":"a31c0e5cea61a1a999767fe74f87c0d59eeb6bce66578b842fe0e0c32be27a55","src/param/mod.rs":"25b10acd5b1da8faa6f5204e6b0379b38bfab667916e886cca64bea01a42dec2","src/path/arg.rs":"b1329485ad525e8d067792b0890a1241c20f6c08d29f0661f2a9f429581a7818","src/path/dec_int.rs":"fad9793b89eac526953b994cbed6b614f01c25108f9763e19fb98029feda93a4","src/path/mod.rs":"6b1b949c94bcc47e0f08a3f8e8db5b61ff497d0dfd3e0655f51c01d3e4b7dfd6","src/pid.rs":"f1c486000c5b1311b2d720cee88f089c17ef9a171709673dd06e6f35f4ff98a3","src/pipe.rs":"fd021deeacf78790886ae03f1e8f0fe5a13909c7532b2246581667eb3d0483d7","src/prctl.rs":"c9daa9397460a27ed6e31fc454fc40dff83720312a002b66f4c178fc005379ec","src/process/chdir.rs":"6947b80d468d906d528de328f30fe7509acfe4976a0de3fa600a7cc39618c049","src/process/chroot.rs":"2b5f6124eb19f26ad2705174f7ad50cdc0a5d15abd59ffcf55421228d82130b4","src/process/exit.rs":"48de66e5504a00cb375d8f415ce63b6225a3f5204268d40726a7d0fbba43f587","src/process/id.rs":"e4733f9e8e4b5f50e98ef7a23802e126f1f14ece8b3d7ae7446c6a66affc6bc1","src/process/ioctl.rs":"23ad0285671e8d7ca71a63c50655dbf732ccea8af11d754a0558e0236db37e76","src/process/kill.rs":"7b879e5cff8a064acd0e7488f4e21bd4e4a8506ce380688b72cc48d283ff9c89","src/process/membarrier.rs":"d6c8821ec73019040c926f4e1018f399c286e87074ab9c6692370c88772af044","src/process/mod.rs":"0ef104be820068409648ed83739a51a7dcf07612088f9a6ed6c7ebdb6ad54092","src/process/pidfd.rs":"4be2fba21430ba84244e11c636c91201bc1d1dffff3e63a4da84cc96f501786b","src/process/pidfd_getfd.rs":"cbc42a1548280ae76c3c66e851fd53cc2a3d4c089cb5798c17a2cdf654f0e229","src/process/prctl.rs":"3396b39a0f161385f02f6a4a17db0a3fcd2d70f4d6d2e1d8d1b9091b36d5704c","src/process/priority.rs":"f135482e71ea8aa0daf92b9f238051178a4c904070fa8409622f94155df3c544","src/process/procctl.rs":"0ca2f5fd4cd39335c141758cac132a3271e318c688f8882e527f58c02d5ab0e2","src/process/rlimit.rs":"10b79de3ced0e64059a94c879742d46a35a6176c776d8eed75031d5e6340283d","src/process/sched.rs":"7c3bfc5be624e7d7f5e043c3ee0b0566fcab3d684d61c272e7b4233410ab1c42","src/process/sched_yield.rs":"6565faa3928b66ddc74a65e893e15edfa4b9be4f7e5f5f68527501a7f6bc3350","src/process/umask.rs":"1a0f31a842303c978e3f05ec191e2b5e96104c09c6596473b42b1fac34898a50","src/process/wait.rs":"cef08e74f5d87df925fa6a6acc95e8de0e689fb420ba514b9fbf94a9ca403465","src/procfs.rs":"63b286dd3302be7f426841eb3b9261ef4785c3159ed78c24734bd5094c9b0b2e","src/pty.rs":"ee697b226230b65c0432a42cd82b2fad885ca70285dbb0a7b8ec0ff81d23e3a0","src/rand/getrandom.rs":"1c8166a02a74f5593bb4673ef907524df04cbc1568020a5ab2ff7f4aa1283f8b","src/rand/mod.rs":"cab59332aadd9b679f5b22cbb222d48ee028af5eb9fd4a4d43922da659b895d7","src/runtime.rs":"9aed98071bf8124c6913e8517b28ef63c7b88001042f0522d877ab65ac88099a","src/shm.rs":"b96fe8a05ee5d4536464a8843a776d43a938abaf22c772fc35b5373d95644a8d","src/signal.rs":"c071b4f011deef19a679d7a832d5408a3cd68627161d6510008d6312266a2611","src/static_assertions.rs":"39986672f489949be1d6469f0c30fb7d2eaa21bdaa2702a8c150b2b150bf5535","src/stdio.rs":"a5de2d7d9c3c5a901f88b6acf4754687c958a2f3a93c7945c2b8fcb948d468af","src/system.rs":"e594c16b4600a8ebea01c5850cd9e1521acf242f1a9f083403cfe95adcde4679","src/termios/ioctl.rs":"a1ac967f7811a482f8bb53847c37c8359f518cd26da9df7b816ba678a0139623","src/termios/mod.rs":"b44b7caa60b6f458657ed58a0e0eca41bb4e6d6be4b0f042bbb8ab7056cebe4b","src/termios/tc.rs":"e41312d15464b83b2457c2502fc3f3b9998cfb02ba68739026dd4285cc7130ac","src/termios/tty.rs":"906ee160ffb5ba3a92ea3a61374cf2cd617cebae51f5490073b6700c438d5eee","src/termios/types.rs":"8c4f029e8dbb9b2c59082bd13d628a741f6f0a31f5ecf485c93795b73c1daeca","src/thread/clock.rs":"469326c822dfb63405ee8537552cedde0b344978280e6645bbadd47dedc71e18","src/thread/futex.rs":"985f9a0dce1e2a4892ae7f26bd1bf119ceae3f9fa6b4707e166624fc1cee76d4","src/thread/id.rs":"ad72db4fea9fccb728310bbfd01ef8c00f6cc60fa2a750f6349646a134f7009b","src/thread/libcap.rs":"a3e316e6d0f58b075125fa939b9b824e1595de20a23d341a36999416b0d10d36","src/thread/mod.rs":"98634ece0b882f123ad887017692f2a4d94a23a1dec278ed660b3497cac5cceb","src/thread/prctl.rs":"10e2878ef856557bc5bd24c77f5699266e746f912e73690980371cc99c7417e8","src/thread/setns.rs":"730badd8db8ce7b905767b341211f1226eeeb38019727bf994eb64f2531b7b7f","src/time/clock.rs":"e59a29f1bed8c31c3d5b6fad60f2d4fa6cab8dd8e86148bb3693a5e3a1ce735f","src/time/mod.rs":"43afee938c80d124d04d4ba190c03f4d21d1e3bfc154fff309211e4f6eabe940","src/time/timerfd.rs":"f17092b84553741aa2d2b44c6992b5d2c8c96cc2c2007fc9a2c6b2064485e53f","src/timespec.rs":"32a4d930cbc0f6dbd23153290db920671cf4ce65a4a127e176f897c1cde42d7d","src/ugid.rs":"6616c6e35b7e43aee5b150f1efae7a50711e0947943c9a96833dbe214ad9e85f","src/utils.rs":"9ae76f8a41d6cc350cdd58c9084b5c3a5a708eeecd769783debdbcbaef442182","src/weak.rs":"c7cf03bf2aeba494b1999ab32183fa8c603ab72e254c0e312a67f168877e410d"},"package":"745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"}
 \ No newline at end of file
-+{"files":{"CODE_OF_CONDUCT.md":"f210602311e3f74b32f46237fd55f4ce36d798e85e3db1432ec667f63a7ffc44","CONTRIBUTING.md":"3fd57de5c678db1c972da676a8231d2fde9820695ef1f0d53f1e55a3e81d9de0","COPYRIGHT":"377c2e7c53250cc5905c0b0532d35973392af16ffb9596a41d99d202cf3617c9","Cargo.toml":"c994094b77085196394cd7cc03161f4810af7da799cfb40c696973e912929a8f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-Apache-2.0_WITH_LLVM-exception":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","ORG_CODE_OF_CONDUCT.md":"a62b69bf86e605ee1bcbb2f0a12ba79e4cebb6983a7b6491949750aecc4f2178","README.md":"58d2ee38dad64ff142e98872860b282b36a09076df537af57aba39d675d84a28","SECURITY.md":"4d75afb09dd28eb5982e3a1f768ee398d90204669ceef3240a16b31dcf04148a","benches/mod.rs":"e260e67273aa0a37cffdc5cd451699335b8ee656c17275a0d0f2b4563c6018ca","build.rs":"5f93559819ca7fe233f01579d51ff5b58cb6e96ef9e7817a3358a9b410d5bbf6","src/backend/libc/c.rs":"63a6b16d4c13db9946c58ef643dd92ac4c81c4be8b5d2adf9bb0f5c797593d3b","src/backend/libc/conv.rs":"c4b4a6fdcf2f9295ab0498229a780942b031a2847ddf2466f90884bfb30255f8","src/backend/libc/event/epoll.rs":"f35eb0fddf9c4327551e1995f109a537f9899b9231e914671bdf26b616048370","src/backend/libc/event/mod.rs":"7f8547c599b8263eb791890bbe4a0b22fe2676d007ffdcc3e07b2e48d1c994db","src/backend/libc/event/poll_fd.rs":"06e2ce2fb30a45b90279ae753a67085e9f818a1b16d99cc92c525e2c46d61d51","src/backend/libc/event/syscalls.rs":"295a930521b345192caaf916b39189299f81f5f7c9f1aaed235baf3bf6f2f5fa","src/backend/libc/event/types.rs":"09e813690f44752708485e5a5ee59a43834a4a3e9577f2739b310c3ea8b4b64e","src/backend/libc/event/windows_syscalls.rs":"ebfac665c6676c4b803134ab8806be8aa2e96bdbc7799a19c544cd9069b35787","src/backend/libc/fs/dir.rs":"6f9526714c525e219399371d5acbe2666f0ac3ee88f73dc03fb31cf195ced95d","src/backend/libc/fs/inotify.rs":"f4e471484c4633dbb91c875ba8df87b687dd174cc45fdd2a1f717ffcb1591b00","src/backend/libc/fs/makedev.rs":"89c679a0ef18dd41b3c6223bce0f329ad35bf6cadbf16e47b33fad3f312ba4a6","src/backend/libc/fs/mod.rs":"576b6fcce723fcd5fc76637abd3b3565b00ca0bac309b63aecd6b8ee005fa81d","src/backend/libc/fs/syscalls.rs":"bba2a6a475fcd980f9352007f2b0b74b97abffe9d025e4c311e6f1f2f84eee3a","src/backend/libc/fs/types.rs":"20618e1a675fff5a8d2f08b4278425a3ec5c43d83518a5cbf3a934f135709a7a","src/backend/libc/io/errno.rs":"048d4350b9836fb9c9400127509705835a4992da86410e33a9e67cc43e22f35a","src/backend/libc/io/mod.rs":"746647bd864e4ec7717925b6d176cebdb392b7d015070244cc48d92780351dd6","src/backend/libc/io/syscalls.rs":"380d9be17ec7e46fdc24682aeae6410dcd8b10fd129090b479bb8ee405d9b5c6","src/backend/libc/io/types.rs":"8df53d41d72a39f334ed124707cb501e83b3624b769c80b78c62bd45179bc04a","src/backend/libc/io/windows_syscalls.rs":"fab3fa099aa89cea56a6edc651dd37750e581534f4f45b04a7e425f130b08468","src/backend/libc/io_uring/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/io_uring/syscalls.rs":"5af8146d5971c833e6fd657f652c618b31f854e1b0811864fba9b658cb633e19","src/backend/libc/mm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/mm/syscalls.rs":"9b7c383f8ef1e258800c9797abbcd45374b97b6680637b1a247cb93878213b5a","src/backend/libc/mm/types.rs":"a427ff490880e92f1ddaa4aea55bb3ff2f43bd29712a6af09b25be2984ecb3e1","src/backend/libc/mod.rs":"2b396834f47b8771d2274eaa2632fbecebc17316d20f26d5e94f060bb8796f7d","src/backend/libc/mount/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/mount/syscalls.rs":"1bc87501a078616d0190d2e85de55f3f968b8cb79d49bd9eb839a350eed26089","src/backend/libc/mount/types.rs":"8e2b66822cd1148e5fe4023f5608f36afb0d47bad454db9560fbca4b0dbd2b6f","src/backend/libc/net/addr.rs":"b6644e0169c6681084704e9ca231863364d81e3d3cb5d3689e0df8acf7b4ec16","src/backend/libc/net/ext.rs":"0ec74196ace553c9bff355e2e35ad3b70cab46e32f8f7194715e4528fe1f54bc","src/backend/libc/net/mod.rs":"4e2d6c72bef19985a2935e7891288f0045d1ff1287ec50492882b4dfbaf0fea3","src/backend/libc/net/msghdr.rs":"f82825d40d8872e2e804cde32bbcc68bef43a5f48ad857fb1030550c4eb44838","src/backend/libc/net/read_sockaddr.rs":"af90cf19e2bebc04976b9ac97010c38db91dcd90fd81b48a14528d45be97fe20","src/backend/libc/net/send_recv.rs":"52ee998bc8422a074e5105607440631e569e531caa7d356157529c3ddb07b684","src/backend/libc/net/sockopt.rs":"c1e9974478f027d9053fed5b4f28e6dce49dd15f05e1ed574cb4eddf1be47b7c","src/backend/libc/net/syscalls.rs":"b876541609622003a9e8cd2787ecbb93b0a155cfd61914c043ac2401ed3fd923","src/backend/libc/net/write_sockaddr.rs":"14e941b5a11e4d7a17182860c47b1ee972b56ff7f0aadbcc6ab2c8740b13cea9","src/backend/libc/param/auxv.rs":"fdc85b7c33bcd05a16471e42eb4228c48c98c642443635ba5fc3e9a45438d6d3","src/backend/libc/param/mod.rs":"5234b8f1bcb886cca6ea003d411d75eaeebe58deedd80e3441354bf46ed85d4d","src/backend/libc/pid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/pid/syscalls.rs":"49ea679b96c0741d048e82964038f9a931bc3cf3a0b59c7db3df89629b9c49e6","src/backend/libc/pipe/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/pipe/syscalls.rs":"8affde100f6a9dfc762b79d1e48be5c1039be414f8ef7d5a6acaba882a68d259","src/backend/libc/pipe/types.rs":"1e797beb383bb2e4038f1de21bea204caec4a4922b25a6ef84dbbe6e953e78b0","src/backend/libc/prctl/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/prctl/syscalls.rs":"8a2684f444a7555098dce2b92270d81cefdae902716c6e5d59bd7b0657e8a29d","src/backend/libc/process/cpu_set.rs":"b3d36b01b53b0b6c61a20ed8a69d48eccdd90cc17f82f2926ef1e844f002d0b7","src/backend/libc/process/mod.rs":"d7dc401255bad2e55ffff365339cdc3aad306861d269ad727a817d3cd7763166","src/backend/libc/process/syscalls.rs":"17b7eab2e0ea2898d41ec4e0d2a84baf57eae9f6e3e016e6b74f0e174440cffb","src/backend/libc/process/types.rs":"c26796486e9f9e7bbc44715ecaac285eb808fd9a8c08d237b2ac19f34954d608","src/backend/libc/process/wait.rs":"0cc556aed976b4bbb3965f74fd76b8216c755fce25043b7b21ce54afa07c9773","src/backend/libc/pty/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/pty/syscalls.rs":"699a4c325fc590b8b5dabfe5a9ff386809be14dd24bf35aa6ef581b2bd75457b","src/backend/libc/rand/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/rand/syscalls.rs":"78c7201e6bcb75e9cab9486d1878861319f865de2b2c46437be68690bd17bf13","src/backend/libc/rand/types.rs":"7763e6b40e4b9df825fdd2aa5ba1770da999137d04776561167116c58f8fa618","src/backend/libc/shm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/shm/syscalls.rs":"60d797d4e85e08e6330e6b8d80094356ce377e5484952f88ae2a6e49231c268c","src/backend/libc/shm/types.rs":"be4034353ab434568053260712fa5f55ed6d8a1a9fae64fa4fe1ea4f2e82120b","src/backend/libc/system/mod.rs":"38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909","src/backend/libc/system/syscalls.rs":"4c632a6d59fef0bb516d89f119f7f37aa18f8a75f63aeba73d71c464473874cb","src/backend/libc/system/types.rs":"6871e16aee14fe2ae03cea798c3e509ffe44778a9c0e5608fd73e2e015876d7e","src/backend/libc/termios/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/termios/syscalls.rs":"19c3a0cfd146ada30e04bfc6b8bc8cc2319890851c803fa0024ff05085137151","src/backend/libc/thread/futex.rs":"b666828653b12634bbd7fd709acf69641b648ec40962a1d4f904c5db14d2eff5","src/backend/libc/thread/mod.rs":"fa710053974d7f16a6c49242ee6c10a3b9e1143452b9daeaed8837302a679fff","src/backend/libc/thread/syscalls.rs":"120cb13fe7ffdef7a52ca1d141d31bf189176e9f5862f87bb171d54370a682a9","src/backend/libc/time/mod.rs":"38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909","src/backend/libc/time/syscalls.rs":"f82e0725c5af8a52e61ee83aad2c77694f2f7a72ac1e6eb284109a70ac6edc38","src/backend/libc/time/types.rs":"d4e55d2b9fb8de772c8bf5bba157472c49a12c25502e62a9c599a2e6d3196a5b","src/backend/libc/ugid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/ugid/syscalls.rs":"8edf91b8790add23902c9f5418da6b0723a371677f29f490e0c8af852f0f1a0c","src/backend/libc/winsock_c.rs":"3bf3884fd250eca806ffdf96da68e29c133a697810b78b333ea449e523e58562","src/backend/linux_raw/arch/aarch64.rs":"2a255c9135bc8a321c180f52b88eb2b158bc9170cd222149caeae63c24587d44","src/backend/linux_raw/arch/arm.rs":"165bccb5883d0136e55d42091183765f83d86e9d37a7cb2cec9ae8af32774db6","src/backend/linux_raw/arch/mips.rs":"24af364aa93fd4b9917639d473336490a143f0d1723b09f388e72d534160ee51","src/backend/linux_raw/arch/mips32r6.rs":"e436a2ade34f2f7c58b8924462b07a2499dfc951e1e1318d51759444fb8b658e","src/backend/linux_raw/arch/mips64.rs":"897da9ddc877963ad59464d7f81dc59df8a7e91251e6adea14cfd946e2740a1c","src/backend/linux_raw/arch/mips64r6.rs":"3c08aea13c1139fb0dfbe74ca3d0147f007c3aa2eda641afb82c46f6aa4f6cd1","src/backend/linux_raw/arch/mod.rs":"37eaeea601d39be00d170856a31a8ec6a27b0d3ac22ab3ee642ab0e45dee237d","src/backend/linux_raw/arch/powerpc64.rs":"dfb001f8636a5e46d728900b0804fe6c374e5e18a6f0e76d7d62e0c07da74477","src/backend/linux_raw/arch/riscv64.rs":"41d33242d941030f46077dc2b1bc4c7913fe7630d693a5a7eef966bcf38f9d8b","src/backend/linux_raw/arch/thumb.rs":"2fd979ab421248c0a4c592bc0cefee63edc26528f469b71b63eaed35356e42e8","src/backend/linux_raw/arch/x86.rs":"81c73c0a13925854b54db754f533dec565b1db2d9586e210a2450c6f5915171d","src/backend/linux_raw/arch/x86_64.rs":"e929036a1f3cf93ba538f4523b241605cc7b5e61f84ffe6d9d5cdbcb6f73e543","src/backend/linux_raw/c.rs":"74cdf34fcd5bba9628c04585fa13721073e2bffe6740315c7655d1a55150230f","src/backend/linux_raw/conv.rs":"3b452e19c6b8285df205baa790e19f32061952ae7c7c4e39ba01726de6beb4fb","src/backend/linux_raw/event/epoll.rs":"18980136ee6d3e327d6c46a33306fa934a80eaee609a329098935569507440d0","src/backend/linux_raw/event/mod.rs":"72e46b04637e2d1d2a6b97af616144995399e489d1fe916faf835d72fc8c64cd","src/backend/linux_raw/event/poll_fd.rs":"78d040f7ce0574fc18cebf6b7766c210a3254abdbafe175f51c6b460fa19c514","src/backend/linux_raw/event/syscalls.rs":"8782cdf978bff0773bf5f35c1056d5c29a40742cf6f99d9606d951b52596cd34","src/backend/linux_raw/event/types.rs":"2ffdcb728587dbc25d302527f4a52296b96013d5199c946291b059ba4f7d466f","src/backend/linux_raw/fs/dir.rs":"c675dc5413428d2defd6752e99d210da83639779e853db209de6a1c08d35e0e7","src/backend/linux_raw/fs/inotify.rs":"42a6ed7b091eee20d7fd9becfea240deb99d0b8ca3e8e083cf365d484d8eeeeb","src/backend/linux_raw/fs/makedev.rs":"c6b4505c4bcbbc2460e80f3097eb15e2c8ef38d6c6e7abd78e39c53c372139e2","src/backend/linux_raw/fs/mod.rs":"8689e46f9c4c3e1190ae5fe39176c573cccac10b3739472128ca237f41e2686a","src/backend/linux_raw/fs/syscalls.rs":"a4512f58e2ef01bf0799c96fa7821284866b6826594642565f46d93e566e2e12","src/backend/linux_raw/fs/types.rs":"c015cf3cde945ad4a42ec706c6e1140c7342041ace1da6e0ef1bbf5e9e019ce2","src/backend/linux_raw/io/errno.rs":"8f15d735435b722466696094aed8b612b8526658ab7e079f386037cf8a3b1a6e","src/backend/linux_raw/io/mod.rs":"7ae2324427892cca6f5ab53858d847b165f790a72ec25f3d99fb15f0506c9f27","src/backend/linux_raw/io/syscalls.rs":"026f99b397ae521ac4b2ba41acec6547018073a9da5fa355aa8f9ac61298c172","src/backend/linux_raw/io/types.rs":"0cfffdc2fc9c33faa4055f9686db5922676f17d5c069362bae3745f39da3594a","src/backend/linux_raw/io_uring/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/io_uring/syscalls.rs":"0f7c9cb7ccddf5687e4b9e5b23558871a452a29ac6095a0184a06c47b9b18eb6","src/backend/linux_raw/mm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/mm/syscalls.rs":"7d43752e8abaa8cec02cd3329e08303c56a9e6ac97aec447293397b9953c3ba3","src/backend/linux_raw/mm/types.rs":"4407b4b54c4048bb1d4e702575e20037c24483a22f6a5cfcc940e4738fcff381","src/backend/linux_raw/mod.rs":"bb26fe4783f834a4624c99ecf9e4ea8fa4d1c7fe9adfb6d7310fac689e7797bc","src/backend/linux_raw/mount/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/mount/syscalls.rs":"3947261b5d46b9737f02dc5352c3a3a35c63c461fd75bcd8ae6619dfc0bfb54d","src/backend/linux_raw/mount/types.rs":"8d39c4d6e555c88de5da3115a301562fafdcb3942aa69a0e01d42de8edb1c78f","src/backend/linux_raw/net/addr.rs":"fbb6c071a8ebc2c557c7013d36d4b540c1ff6ed63103d0a8abcacd8977fbf5c8","src/backend/linux_raw/net/mod.rs":"904b2ccd4228ebcda25db0223b92fb03e4042bcc7b0a202f19410a8a5ff517a5","src/backend/linux_raw/net/msghdr.rs":"3198339ccd00224aefdba74e9144818fe387222066a387a9dfd95fd8c48cf9d9","src/backend/linux_raw/net/read_sockaddr.rs":"24075ac4c05fab5fe44aae4445cdd12ec7e474f047150baa9b768741d6b9693d","src/backend/linux_raw/net/send_recv.rs":"85b1a78ecc920e919ce7a0a9f7ad79cba5ad09af4f53018df8c46c7c112bd7a9","src/backend/linux_raw/net/sockopt.rs":"2ea8625ecd68a799c14ed48dec2f3e01f085222b6cc36f4916b20143e08ae575","src/backend/linux_raw/net/syscalls.rs":"eb897e0074ec53c5b18594c39cbb9ec5bd796c9120bf029f0b05145a7eee1804","src/backend/linux_raw/net/write_sockaddr.rs":"0eeeb7ec8dadf95503a2f89fdc933b8f9c7e45e03fdb343ce490b6cc8eec0f96","src/backend/linux_raw/param/auxv.rs":"c1b1a628d6c51ce8adc981f58c6e08abba4a151356ff98cdbc0b3e75abeadb8a","src/backend/linux_raw/param/init.rs":"a5024f9afe361884f22fb4d65e632ccd8a60f1138ff6bd526df600d40e0d9b7e","src/backend/linux_raw/param/libc_auxv.rs":"e567f471ab21068141acb9fb2f88b9ba553f630945bc8f01b689955b48414512","src/backend/linux_raw/param/mod.rs":"2e6a1a1c00351b9c88bd615aa923f71d76208df5626dd9bea03067f28f81dc31","src/backend/linux_raw/pid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/pid/syscalls.rs":"eef6aa01830ddd510b83f507da2002c03e58318b73744be2c06ebbe33c4f194f","src/backend/linux_raw/pipe/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/pipe/syscalls.rs":"366c730fc3e991bddb9f5a15b8c3917a8e6ace6d1d5a9113b2749e476faf6f83","src/backend/linux_raw/pipe/types.rs":"9d4bd3da7cd078d42574ad7d6b7554e301a1a7e97b292a77993a6d263726ef1e","src/backend/linux_raw/prctl/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/prctl/syscalls.rs":"a18b224307e0d27bda9b7b85c75cd6c7ddfe39f5ce52efb7bb0bf0585b757343","src/backend/linux_raw/process/cpu_set.rs":"dfdcbdf35aff6a3e08e7d38193bf18c12ca8aa64eb0dc417667be82dcc0f7c55","src/backend/linux_raw/process/mod.rs":"fb393c70a9c63ef9a6bf1fb5a2dc94f07d6b0b6987cc5231c15c607015dafd68","src/backend/linux_raw/process/syscalls.rs":"3730c155663d727d5b239f57f220727ef33dd257e74a1b697274de0f94e1da79","src/backend/linux_raw/process/types.rs":"6811ba822bc12a1a6336649151b4adb1f5d3365684a31c07f01953ea9547743d","src/backend/linux_raw/process/wait.rs":"921aee4b0048746087f52615a98edc2aa0fb4b53d6df44be4533098df55d1b05","src/backend/linux_raw/pty/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/pty/syscalls.rs":"ae09c4aecc0ae87b1ca58d82efc58007b9dddaae78460d615f48da19d1cd0f89","src/backend/linux_raw/rand/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/rand/syscalls.rs":"a84f70251672e92f253838bf05e989434f67373233e88d21d8835cbb792b1fe3","src/backend/linux_raw/rand/types.rs":"b7217c98f2da4ecf89225f36eb52c396ba2a73debdeca739ba864a9030b6a23d","src/backend/linux_raw/reg.rs":"39b6234971122d247054bda8c2dc3b44493be30482635baa9e2fcbe048e78cbd","src/backend/linux_raw/runtime/mod.rs":"b2cae8cce3822c3c92942f06ea0b68464040dcac33c6f0f7ee392c6269993347","src/backend/linux_raw/runtime/syscalls.rs":"fc9c9edbe07dd7644ab75c51a1597a31467a3421301503a072bef93e6df07643","src/backend/linux_raw/runtime/tls.rs":"6316060560a112c2e9cd9807cdba6e8c91414113a04a739160929ae9a67bba1f","src/backend/linux_raw/shm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/shm/syscalls.rs":"3ebf91610b02de0312e1f0f0cc5d56e12b4d93794540087b3182cbdf3cb9c8db","src/backend/linux_raw/shm/types.rs":"76f587e0edc78e3b780b66ddf9bdf56d5bcb57822111e9f8f66a7eec07c2c0fa","src/backend/linux_raw/system/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/system/syscalls.rs":"2af6c2672a6528b404b52f501d9803a63e9f47886d3b5d2d2dc5a71cefa7327a","src/backend/linux_raw/system/types.rs":"1ceab8d738a71043473b26e97fa3fd79d588a86d4774cbc9b9e1d4f1447a016e","src/backend/linux_raw/termios/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/termios/syscalls.rs":"01c4c8028595d8f53197ac3f2accb83057cb80fb5f78db63bbf85eb46d40e1c9","src/backend/linux_raw/thread/futex.rs":"0aa0f9f5be6a79de81e82c9f11f1bf8831f682a4b2f6cb29669e1591636f084e","src/backend/linux_raw/thread/mod.rs":"6ad4a4b90b9234e79900b27ebbe8837e3a7a36aec532912e3e253edce5225067","src/backend/linux_raw/thread/syscalls.rs":"0e3dca63be7322e1e9c58456b28eb8548abb9f08b4436b87b139e891c01c446d","src/backend/linux_raw/time/mod.rs":"672724f55b7b7be6a7452bb1cc2d28b5f0aaa840a2856fe363acce624e1beefc","src/backend/linux_raw/time/syscalls.rs":"451da0bbb66accdf58ee7f2f8746a93b22ee985907a08717a3d3b1650457d878","src/backend/linux_raw/time/types.rs":"56cb936dc36af759e06d0b7bcfa7db02818dff6084c1d1d9a538a6d5945032d5","src/backend/linux_raw/ugid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/ugid/syscalls.rs":"8c86d251db33b399a1d1cbb8e87afe650b78db84f444d3251309b7a0480b54f7","src/backend/linux_raw/vdso.rs":"056314f72c71d4b041739337ca2098afb7fe070f844327f462c293f43481b75b","src/backend/linux_raw/vdso_wrappers.rs":"6bd4b8c15761e16defff7d2eed18c008c9f980ebee6c9bdc2e104b16b9b7c631","src/bitcast.rs":"e21c87c292c781b27256c6f5dcf9fd52dd69ed6e21016cbd67ac31a8219ebf8e","src/check_types.rs":"bc31f9b293bfbf272284ed4d0da24e941206a1ac3f18d3abb0b1a61f1ede1dae","src/clockid.rs":"1d2e1cfcf23160b55d6b046d235edf2eb2408f072a8bdef3e3a3871885abdd5a","src/cstr.rs":"41af2a4429fe6c67a8883f8a8f63d66c90df566abda74fd2b03bcef7b9f24218","src/event/eventfd.rs":"81cbd08f7bdf40a6ce1ca692b63da1dc8ba925282990668d9d68f1203e839fa1","src/event/kqueue.rs":"f13f40b97c4413902115408fc2f340e7c82bba42d2468015b007e8ac6ef23132","src/event/mod.rs":"326a7ddfeb33bb95dd31391d65f400fa622e5d0ab827c096cab16af4b6843b51","src/event/poll.rs":"0ee583dbd457a573a82a06c04a2a24bd2c76e751d27a435507d55338e2871327","src/event/port.rs":"4e51ff150e5d17cbd44aa64a38b99c15e26eaaf2e350768b5dcacdfde4fa5212","src/ffi.rs":"c2b8b38c02d72749aceb715c496726caba1f1fa989ad3856d0103a2fafed89ed","src/fs/abs.rs":"6f0b57878f61c009fd0a3698a3983aa8076ba4fe3b5c28feec0307d65a77891c","src/fs/at.rs":"9b5f35afcaca9dd19d501cee3ad305b1d1c1b588c5fd925b18b6d3b614f05011","src/fs/constants.rs":"24076a01f8bfc126b0905e9bc0521d2c3a3abc6c3b8c86ddb1e545070d097127","src/fs/copy_file_range.rs":"d3b644374390d482b2ff749a2459458872b57d0dcf9670368739b7833509a7c2","src/fs/cwd.rs":"9f429a79ace6e17455634da09216ee0ad3d067a4541518b3193ae6a8d9ff1e26","src/fs/dir.rs":"347a52f4ca9ac6321c52e802e97ec90d1b4c62ec955c8996fc17f8f5aed69966","src/fs/fadvise.rs":"beef66ebe1310fb92628240b2cde68f744c78e50f6ff61bb1404bd4868d9cae8","src/fs/fcntl.rs":"2085102d05d0ba963e100ab3e3f19dac4ff27d142fbf798626d20a2a596ba96d","src/fs/fcntl_apple.rs":"e2f23f038083621bcdecc98d02ce1023508afaecdb2ed0fba5c8b70f955301e5","src/fs/fcopyfile.rs":"ec95929cbbe02cf49233a785e5238931bb107b7903cc5bc95e4231de960995f2","src/fs/fd.rs":"68d19bb99da0444444acbafd27ba10a69fc2ac35ede4e0106ac2043c30ce4f8f","src/fs/file_type.rs":"fefd865f91011f66126213b0994773d99e373b468c31e866002228c98c64ad85","src/fs/getpath.rs":"28f6970fc1bbc37bb35c84724b59eac436ea7407a4522e18c2bdacb1fdd2edd9","src/fs/id.rs":"1b5c8a8baf9a9bb1f895f97189cea4e5982a0d35b192afeec6340a6c6222e0cb","src/fs/ioctl.rs":"9486ca15b95c7bbfa97d03c215f160e273543406a387443991d3bef3f4713416","src/fs/makedev.rs":"85520b484cb7c15ab71ea1c368578ea3b7e484d82f8510db92b6ce9f7ca341ae","src/fs/memfd_create.rs":"15a8f28e040cffd8c24c7903483440f88853b2e538ad48d80f3c00b4b2befdea","src/fs/mod.rs":"ecd20bf01d651b1866b198c4fc0dc8e7d681eb581e28708c8a0abd062de137ce","src/fs/mount.rs":"8f6ea2b997dd83c50c90291b9ada3ed77a9ce1ad701c9b0d533b5113b317be5b","src/fs/openat2.rs":"4a95c15dab533a41201b5fa25c8a212956b7571d58cad696bdaf45af8aef96db","src/fs/raw_dir.rs":"18ad797876d6230c38d4cacbed081c4028e03ace477d0520d9b226b40de942f0","src/fs/seek_from.rs":"a9efa0feb9ac789cf47667e91efee2e3f2dcde16cb3b7a928c99da640fa0e0d6","src/fs/sendfile.rs":"e3b2058741cf4b1698f34d84bb37130cf2b72806d522a16fe541e832cde136cb","src/fs/statx.rs":"c5192f54311faeb5a8e7ba7da1acd4fa5a8f69f6c15c4d78b4b7a495d21d0864","src/fs/sync.rs":"a3b23543834281f347b0f873bd38154d31d404871188ac08f2b20b9196234cfd","src/fs/xattr.rs":"b976eece822f69e768d91e61d86ee990ea18097b20f7ebeedaaf718c61b48962","src/io/close.rs":"0aa3cd05a8fed8e5244f97b8b6c2e7f65ed93a4e5435c6329852bb3da7514440","src/io/dup.rs":"a8a59c5d345dc54c57ded890720c33eb78c4d53917c71e8bb6317f7ed122cb87","src/io/errno.rs":"58a4d20ba0924e4d514e3c876fbe08982f1623187642ae14780815e65989c8c8","src/io/fcntl.rs":"c0f7bd7fce1119b0c1d0085b7ab77d5df02470ae3e06035428a2452dacbec296","src/io/ioctl.rs":"a47a5ec14607142f2c2ffcb93d016b8e86c8b15ba94b56b35382b545db62ea34","src/io/is_read_write.rs":"1bfb9ee5d58e0b29b44af12fe2668c7bccc841358698dcde47f1519ff9bb73b4","src/io/mod.rs":"75f1d0646be1d4c7c08b5887d8119b0103be8c25c43ccd4e0e97015508c0bb8f","src/io/read_write.rs":"54ba528b11601af1338bb0c71a41b256a0033076d30b3946c3fd0bdfa61dd021","src/io_uring.rs":"61e6dce7a53ce141604b5f577e20ec5aa73a20e2c2101825c7c52396ba221886","src/ioctl/bsd.rs":"e33772530b1b2d1e7d61ce53d9267e68d88f7f5df13301f90412d89a46c6faaa","src/ioctl/linux.rs":"256aef9fb51c67cd7f43a581b702aa62757e3bdd7c38f71bf849f818194c2285","src/ioctl/mod.rs":"739a4f6d4e9a816745e42133c1b4c51c1285bf5cde3e1ee3ea72ef0b802e3806","src/ioctl/patterns.rs":"26dda154aabf67d45362d9378875f95c1593391ecbc62be02d187b7e19e7f9da","src/lib.rs":"7430fd1db444a72dc8f9b762f2fb61226dd00c89c7c932481e94958f60678383","src/maybe_polyfill/no_std/io/mod.rs":"77889bb5c5a4f2e50e38379cdaa5d0fef4b0cafc3da056735df01f6deae75747","src/maybe_polyfill/no_std/mod.rs":"ec94a4aab4bc475785e469d10fd6bc95667e1d47d958e9cff3a19049d88c8c80","src/maybe_polyfill/no_std/net/ip_addr.rs":"046327ee244f758f2bc31d3be305d8cd0dfd8342aac1add8259e999b4b46c4a7","src/maybe_polyfill/no_std/net/mod.rs":"b0ee611c454679226a15bf647e7779995f3fe9c8e0507930a0d0613eb414b7c2","src/maybe_polyfill/no_std/net/socket_addr.rs":"bfeb32d32c176cde76323abcffebfc47e9898fb8d7ce3668c602dc8451086a2d","src/maybe_polyfill/no_std/os/fd/mod.rs":"27ef0afbcb0695cbb15101070f417eb51e0ef85ae66ec967d95e80771d507c47","src/maybe_polyfill/no_std/os/fd/owned.rs":"ab86ffa2693a04f3085770faf395f95e5303001711be8b19c44a47a0ac574091","src/maybe_polyfill/no_std/os/fd/raw.rs":"f3648c7bd4a6ff94bd823ed9e0d99d398e02f24875cf9b25962736999e7c6943","src/maybe_polyfill/no_std/os/mod.rs":"27dab639a765827644005d5f2fcc7c825310606b889cc8dd83f54c9528350dc0","src/maybe_polyfill/no_std/os/windows/io/mod.rs":"5bbcc05c83fee5026dd744a994e0458469466d5be39081baa62df07753b92fd2","src/maybe_polyfill/no_std/os/windows/io/raw.rs":"4c32609a489dd938a49328b5637cb3bafb96437f2f9f269ab66d7d3cb90247f6","src/maybe_polyfill/no_std/os/windows/io/socket.rs":"c658f42f24eff44a661f2adfd24a11af80fe9897f3e2af4dc5d2c64808308d65","src/maybe_polyfill/no_std/os/windows/mod.rs":"fdb416f8f231a4e778b5f985b9ae712ece5e1a1402963ad1a5f6a8b9843795f4","src/maybe_polyfill/std/mod.rs":"7c16c86cc73e226e65ead598e4018238b22000a345040b706bf1e1b3eba115fc","src/mm/madvise.rs":"3c262b3713a73fafcedf1b04bb12c048bb11d47ca43c959e5dfa48c27651f4f0","src/mm/mmap.rs":"28523bceb2b7e3bc1207f351d8a1771867159e1b9ff1d9c37fbdc05aeb696b50","src/mm/mod.rs":"b3a6cb838986d45825b912355cedead761211a494ca6f89b2367a2d2157e340e","src/mm/msync.rs":"9dcfe5f54235e9314a595edb8d548ac79d222bbcc58bb3263cf7e96d603b23ad","src/mm/userfaultfd.rs":"8073443bd181ff0b3ba4d0b1ae67370b4864035a0c8b4898cd709dc47c518ae7","src/mount/fsopen.rs":"160e384e9175fd98669cda1cf3590bb195c2ba7e1c724e9ea06e692595e58ba1","src/mount/mod.rs":"5f0c9df4727592695deb1cd63ae1de021b03dcd9d0d1b68e1f34d12a7136cb19","src/mount/mount_unmount.rs":"8ad11675e5d762d33fbefbed06a6a9f9e52a9b689bd06662446152614321ab77","src/mount/types.rs":"601ae3e10b7dc496fed7f3b40a80e81c6edd7bf13189d7be45c3212d4c684c39","src/net/mod.rs":"a6bc55f9e086caf46a7c00783498d73a328a66f2a991f1ec65d5f13931377b0f","src/net/send_recv/mod.rs":"f33e39c7b228cd8109823b0a0a1aa397cddad504d49e69b36f74c5b84e5070e5","src/net/send_recv/msg.rs":"6a73e4fd2b78fbeb683f48bcd8404a362245c6cd66e0d59e6378467600b44268","src/net/socket.rs":"bc825a94831557bf4c2cabd8ef5ae21ffe0986c24f9ada564eefa66270f69ae9","src/net/socket_addr_any.rs":"a9af81e967a91b45e51aec4f46a068fade7035c5d19dfaf05bfdcd3b3c32e9bf","src/net/socketpair.rs":"56f4885c31d2664cd16e18a9a88792a4912fedd953cec36dba67e8581fd57921","src/net/sockopt.rs":"58fbabf73ede7afaeac279241ff874dcee5604f63b3f38e4435a61a354da2196","src/net/types.rs":"5914e786d6a24a6efc355023fd71a28bc29fc85fb672e5388370243fe83e4191","src/net/wsa.rs":"6e546b42f50a851fc833c57cda76cfb347203ed4b0dea574a3d325bf5a2ebf80","src/param/auxv.rs":"886e57d52adf0199b8146f849c2db1e3136c07fc4ec61f60dc781fea11070604","src/param/init.rs":"a31c0e5cea61a1a999767fe74f87c0d59eeb6bce66578b842fe0e0c32be27a55","src/param/mod.rs":"25b10acd5b1da8faa6f5204e6b0379b38bfab667916e886cca64bea01a42dec2","src/path/arg.rs":"b1329485ad525e8d067792b0890a1241c20f6c08d29f0661f2a9f429581a7818","src/path/dec_int.rs":"fad9793b89eac526953b994cbed6b614f01c25108f9763e19fb98029feda93a4","src/path/mod.rs":"6b1b949c94bcc47e0f08a3f8e8db5b61ff497d0dfd3e0655f51c01d3e4b7dfd6","src/pid.rs":"f1c486000c5b1311b2d720cee88f089c17ef9a171709673dd06e6f35f4ff98a3","src/pipe.rs":"fd021deeacf78790886ae03f1e8f0fe5a13909c7532b2246581667eb3d0483d7","src/prctl.rs":"c9daa9397460a27ed6e31fc454fc40dff83720312a002b66f4c178fc005379ec","src/process/chdir.rs":"6947b80d468d906d528de328f30fe7509acfe4976a0de3fa600a7cc39618c049","src/process/chroot.rs":"2b5f6124eb19f26ad2705174f7ad50cdc0a5d15abd59ffcf55421228d82130b4","src/process/exit.rs":"48de66e5504a00cb375d8f415ce63b6225a3f5204268d40726a7d0fbba43f587","src/process/id.rs":"e4733f9e8e4b5f50e98ef7a23802e126f1f14ece8b3d7ae7446c6a66affc6bc1","src/process/ioctl.rs":"23ad0285671e8d7ca71a63c50655dbf732ccea8af11d754a0558e0236db37e76","src/process/kill.rs":"7b879e5cff8a064acd0e7488f4e21bd4e4a8506ce380688b72cc48d283ff9c89","src/process/membarrier.rs":"d6c8821ec73019040c926f4e1018f399c286e87074ab9c6692370c88772af044","src/process/mod.rs":"0ef104be820068409648ed83739a51a7dcf07612088f9a6ed6c7ebdb6ad54092","src/process/pidfd.rs":"4be2fba21430ba84244e11c636c91201bc1d1dffff3e63a4da84cc96f501786b","src/process/pidfd_getfd.rs":"cbc42a1548280ae76c3c66e851fd53cc2a3d4c089cb5798c17a2cdf654f0e229","src/process/prctl.rs":"3396b39a0f161385f02f6a4a17db0a3fcd2d70f4d6d2e1d8d1b9091b36d5704c","src/process/priority.rs":"f135482e71ea8aa0daf92b9f238051178a4c904070fa8409622f94155df3c544","src/process/procctl.rs":"0ca2f5fd4cd39335c141758cac132a3271e318c688f8882e527f58c02d5ab0e2","src/process/rlimit.rs":"10b79de3ced0e64059a94c879742d46a35a6176c776d8eed75031d5e6340283d","src/process/sched.rs":"7c3bfc5be624e7d7f5e043c3ee0b0566fcab3d684d61c272e7b4233410ab1c42","src/process/sched_yield.rs":"6565faa3928b66ddc74a65e893e15edfa4b9be4f7e5f5f68527501a7f6bc3350","src/process/umask.rs":"1a0f31a842303c978e3f05ec191e2b5e96104c09c6596473b42b1fac34898a50","src/process/wait.rs":"cef08e74f5d87df925fa6a6acc95e8de0e689fb420ba514b9fbf94a9ca403465","src/procfs.rs":"63b286dd3302be7f426841eb3b9261ef4785c3159ed78c24734bd5094c9b0b2e","src/pty.rs":"ee697b226230b65c0432a42cd82b2fad885ca70285dbb0a7b8ec0ff81d23e3a0","src/rand/getrandom.rs":"1c8166a02a74f5593bb4673ef907524df04cbc1568020a5ab2ff7f4aa1283f8b","src/rand/mod.rs":"cab59332aadd9b679f5b22cbb222d48ee028af5eb9fd4a4d43922da659b895d7","src/runtime.rs":"9aed98071bf8124c6913e8517b28ef63c7b88001042f0522d877ab65ac88099a","src/shm.rs":"b96fe8a05ee5d4536464a8843a776d43a938abaf22c772fc35b5373d95644a8d","src/signal.rs":"c071b4f011deef19a679d7a832d5408a3cd68627161d6510008d6312266a2611","src/static_assertions.rs":"39986672f489949be1d6469f0c30fb7d2eaa21bdaa2702a8c150b2b150bf5535","src/stdio.rs":"a5de2d7d9c3c5a901f88b6acf4754687c958a2f3a93c7945c2b8fcb948d468af","src/system.rs":"e594c16b4600a8ebea01c5850cd9e1521acf242f1a9f083403cfe95adcde4679","src/termios/ioctl.rs":"a1ac967f7811a482f8bb53847c37c8359f518cd26da9df7b816ba678a0139623","src/termios/mod.rs":"b44b7caa60b6f458657ed58a0e0eca41bb4e6d6be4b0f042bbb8ab7056cebe4b","src/termios/tc.rs":"e41312d15464b83b2457c2502fc3f3b9998cfb02ba68739026dd4285cc7130ac","src/termios/tty.rs":"906ee160ffb5ba3a92ea3a61374cf2cd617cebae51f5490073b6700c438d5eee","src/termios/types.rs":"8c4f029e8dbb9b2c59082bd13d628a741f6f0a31f5ecf485c93795b73c1daeca","src/thread/clock.rs":"469326c822dfb63405ee8537552cedde0b344978280e6645bbadd47dedc71e18","src/thread/futex.rs":"985f9a0dce1e2a4892ae7f26bd1bf119ceae3f9fa6b4707e166624fc1cee76d4","src/thread/id.rs":"ad72db4fea9fccb728310bbfd01ef8c00f6cc60fa2a750f6349646a134f7009b","src/thread/libcap.rs":"a3e316e6d0f58b075125fa939b9b824e1595de20a23d341a36999416b0d10d36","src/thread/mod.rs":"98634ece0b882f123ad887017692f2a4d94a23a1dec278ed660b3497cac5cceb","src/thread/prctl.rs":"10e2878ef856557bc5bd24c77f5699266e746f912e73690980371cc99c7417e8","src/thread/setns.rs":"730badd8db8ce7b905767b341211f1226eeeb38019727bf994eb64f2531b7b7f","src/time/clock.rs":"e59a29f1bed8c31c3d5b6fad60f2d4fa6cab8dd8e86148bb3693a5e3a1ce735f","src/time/mod.rs":"43afee938c80d124d04d4ba190c03f4d21d1e3bfc154fff309211e4f6eabe940","src/time/timerfd.rs":"f17092b84553741aa2d2b44c6992b5d2c8c96cc2c2007fc9a2c6b2064485e53f","src/timespec.rs":"32a4d930cbc0f6dbd23153290db920671cf4ce65a4a127e176f897c1cde42d7d","src/ugid.rs":"6616c6e35b7e43aee5b150f1efae7a50711e0947943c9a96833dbe214ad9e85f","src/utils.rs":"9ae76f8a41d6cc350cdd58c9084b5c3a5a708eeecd769783debdbcbaef442182","src/weak.rs":"c7cf03bf2aeba494b1999ab32183fa8c603ab72e254c0e312a67f168877e410d"},"package":"745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"}
++{"files":{"CODE_OF_CONDUCT.md":"f210602311e3f74b32f46237fd55f4ce36d798e85e3db1432ec667f63a7ffc44","CONTRIBUTING.md":"3fd57de5c678db1c972da676a8231d2fde9820695ef1f0d53f1e55a3e81d9de0","COPYRIGHT":"377c2e7c53250cc5905c0b0532d35973392af16ffb9596a41d99d202cf3617c9","Cargo.toml":"c994094b77085196394cd7cc03161f4810af7da799cfb40c696973e912929a8f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-Apache-2.0_WITH_LLVM-exception":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","ORG_CODE_OF_CONDUCT.md":"a62b69bf86e605ee1bcbb2f0a12ba79e4cebb6983a7b6491949750aecc4f2178","README.md":"58d2ee38dad64ff142e98872860b282b36a09076df537af57aba39d675d84a28","SECURITY.md":"4d75afb09dd28eb5982e3a1f768ee398d90204669ceef3240a16b31dcf04148a","benches/mod.rs":"e260e67273aa0a37cffdc5cd451699335b8ee656c17275a0d0f2b4563c6018ca","build.rs":"5f93559819ca7fe233f01579d51ff5b58cb6e96ef9e7817a3358a9b410d5bbf6","src/backend/libc/c.rs":"22550be154471f160ebfdb9e7b45a1e06452ec426a8d70b23a648a069c0216f4","src/backend/libc/conv.rs":"c4b4a6fdcf2f9295ab0498229a780942b031a2847ddf2466f90884bfb30255f8","src/backend/libc/event/epoll.rs":"f35eb0fddf9c4327551e1995f109a537f9899b9231e914671bdf26b616048370","src/backend/libc/event/mod.rs":"7f8547c599b8263eb791890bbe4a0b22fe2676d007ffdcc3e07b2e48d1c994db","src/backend/libc/event/poll_fd.rs":"06e2ce2fb30a45b90279ae753a67085e9f818a1b16d99cc92c525e2c46d61d51","src/backend/libc/event/syscalls.rs":"295a930521b345192caaf916b39189299f81f5f7c9f1aaed235baf3bf6f2f5fa","src/backend/libc/event/types.rs":"09e813690f44752708485e5a5ee59a43834a4a3e9577f2739b310c3ea8b4b64e","src/backend/libc/event/windows_syscalls.rs":"ebfac665c6676c4b803134ab8806be8aa2e96bdbc7799a19c544cd9069b35787","src/backend/libc/fs/dir.rs":"6f9526714c525e219399371d5acbe2666f0ac3ee88f73dc03fb31cf195ced95d","src/backend/libc/fs/inotify.rs":"f4e471484c4633dbb91c875ba8df87b687dd174cc45fdd2a1f717ffcb1591b00","src/backend/libc/fs/makedev.rs":"89c679a0ef18dd41b3c6223bce0f329ad35bf6cadbf16e47b33fad3f312ba4a6","src/backend/libc/fs/mod.rs":"576b6fcce723fcd5fc76637abd3b3565b00ca0bac309b63aecd6b8ee005fa81d","src/backend/libc/fs/syscalls.rs":"bba2a6a475fcd980f9352007f2b0b74b97abffe9d025e4c311e6f1f2f84eee3a","src/backend/libc/fs/types.rs":"20618e1a675fff5a8d2f08b4278425a3ec5c43d83518a5cbf3a934f135709a7a","src/backend/libc/io/errno.rs":"048d4350b9836fb9c9400127509705835a4992da86410e33a9e67cc43e22f35a","src/backend/libc/io/mod.rs":"746647bd864e4ec7717925b6d176cebdb392b7d015070244cc48d92780351dd6","src/backend/libc/io/syscalls.rs":"380d9be17ec7e46fdc24682aeae6410dcd8b10fd129090b479bb8ee405d9b5c6","src/backend/libc/io/types.rs":"8df53d41d72a39f334ed124707cb501e83b3624b769c80b78c62bd45179bc04a","src/backend/libc/io/windows_syscalls.rs":"fab3fa099aa89cea56a6edc651dd37750e581534f4f45b04a7e425f130b08468","src/backend/libc/io_uring/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/io_uring/syscalls.rs":"5af8146d5971c833e6fd657f652c618b31f854e1b0811864fba9b658cb633e19","src/backend/libc/mm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/mm/syscalls.rs":"9b7c383f8ef1e258800c9797abbcd45374b97b6680637b1a247cb93878213b5a","src/backend/libc/mm/types.rs":"a427ff490880e92f1ddaa4aea55bb3ff2f43bd29712a6af09b25be2984ecb3e1","src/backend/libc/mod.rs":"2b396834f47b8771d2274eaa2632fbecebc17316d20f26d5e94f060bb8796f7d","src/backend/libc/mount/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/mount/syscalls.rs":"1bc87501a078616d0190d2e85de55f3f968b8cb79d49bd9eb839a350eed26089","src/backend/libc/mount/types.rs":"8e2b66822cd1148e5fe4023f5608f36afb0d47bad454db9560fbca4b0dbd2b6f","src/backend/libc/net/addr.rs":"b6644e0169c6681084704e9ca231863364d81e3d3cb5d3689e0df8acf7b4ec16","src/backend/libc/net/ext.rs":"0ec74196ace553c9bff355e2e35ad3b70cab46e32f8f7194715e4528fe1f54bc","src/backend/libc/net/mod.rs":"4e2d6c72bef19985a2935e7891288f0045d1ff1287ec50492882b4dfbaf0fea3","src/backend/libc/net/msghdr.rs":"f82825d40d8872e2e804cde32bbcc68bef43a5f48ad857fb1030550c4eb44838","src/backend/libc/net/read_sockaddr.rs":"af90cf19e2bebc04976b9ac97010c38db91dcd90fd81b48a14528d45be97fe20","src/backend/libc/net/send_recv.rs":"52ee998bc8422a074e5105607440631e569e531caa7d356157529c3ddb07b684","src/backend/libc/net/sockopt.rs":"c1e9974478f027d9053fed5b4f28e6dce49dd15f05e1ed574cb4eddf1be47b7c","src/backend/libc/net/syscalls.rs":"b876541609622003a9e8cd2787ecbb93b0a155cfd61914c043ac2401ed3fd923","src/backend/libc/net/write_sockaddr.rs":"14e941b5a11e4d7a17182860c47b1ee972b56ff7f0aadbcc6ab2c8740b13cea9","src/backend/libc/param/auxv.rs":"fdc85b7c33bcd05a16471e42eb4228c48c98c642443635ba5fc3e9a45438d6d3","src/backend/libc/param/mod.rs":"5234b8f1bcb886cca6ea003d411d75eaeebe58deedd80e3441354bf46ed85d4d","src/backend/libc/pid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/pid/syscalls.rs":"49ea679b96c0741d048e82964038f9a931bc3cf3a0b59c7db3df89629b9c49e6","src/backend/libc/pipe/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/pipe/syscalls.rs":"8affde100f6a9dfc762b79d1e48be5c1039be414f8ef7d5a6acaba882a68d259","src/backend/libc/pipe/types.rs":"1e797beb383bb2e4038f1de21bea204caec4a4922b25a6ef84dbbe6e953e78b0","src/backend/libc/prctl/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/prctl/syscalls.rs":"8a2684f444a7555098dce2b92270d81cefdae902716c6e5d59bd7b0657e8a29d","src/backend/libc/process/cpu_set.rs":"b3d36b01b53b0b6c61a20ed8a69d48eccdd90cc17f82f2926ef1e844f002d0b7","src/backend/libc/process/mod.rs":"d7dc401255bad2e55ffff365339cdc3aad306861d269ad727a817d3cd7763166","src/backend/libc/process/syscalls.rs":"17b7eab2e0ea2898d41ec4e0d2a84baf57eae9f6e3e016e6b74f0e174440cffb","src/backend/libc/process/types.rs":"c26796486e9f9e7bbc44715ecaac285eb808fd9a8c08d237b2ac19f34954d608","src/backend/libc/process/wait.rs":"0cc556aed976b4bbb3965f74fd76b8216c755fce25043b7b21ce54afa07c9773","src/backend/libc/pty/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/pty/syscalls.rs":"699a4c325fc590b8b5dabfe5a9ff386809be14dd24bf35aa6ef581b2bd75457b","src/backend/libc/rand/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/rand/syscalls.rs":"78c7201e6bcb75e9cab9486d1878861319f865de2b2c46437be68690bd17bf13","src/backend/libc/rand/types.rs":"7763e6b40e4b9df825fdd2aa5ba1770da999137d04776561167116c58f8fa618","src/backend/libc/shm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/libc/shm/syscalls.rs":"60d797d4e85e08e6330e6b8d80094356ce377e5484952f88ae2a6e49231c268c","src/backend/libc/shm/types.rs":"be4034353ab434568053260712fa5f55ed6d8a1a9fae64fa4fe1ea4f2e82120b","src/backend/libc/system/mod.rs":"38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909","src/backend/libc/system/syscalls.rs":"4c632a6d59fef0bb516d89f119f7f37aa18f8a75f63aeba73d71c464473874cb","src/backend/libc/system/types.rs":"6871e16aee14fe2ae03cea798c3e509ffe44778a9c0e5608fd73e2e015876d7e","src/backend/libc/termios/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/termios/syscalls.rs":"19c3a0cfd146ada30e04bfc6b8bc8cc2319890851c803fa0024ff05085137151","src/backend/libc/thread/futex.rs":"b666828653b12634bbd7fd709acf69641b648ec40962a1d4f904c5db14d2eff5","src/backend/libc/thread/mod.rs":"fa710053974d7f16a6c49242ee6c10a3b9e1143452b9daeaed8837302a679fff","src/backend/libc/thread/syscalls.rs":"120cb13fe7ffdef7a52ca1d141d31bf189176e9f5862f87bb171d54370a682a9","src/backend/libc/time/mod.rs":"38563ea68829ca5a4b1b0695ac8a5c05718e85bdc88a36dc805efdfce45d3909","src/backend/libc/time/syscalls.rs":"f82e0725c5af8a52e61ee83aad2c77694f2f7a72ac1e6eb284109a70ac6edc38","src/backend/libc/time/types.rs":"d4e55d2b9fb8de772c8bf5bba157472c49a12c25502e62a9c599a2e6d3196a5b","src/backend/libc/ugid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/libc/ugid/syscalls.rs":"8edf91b8790add23902c9f5418da6b0723a371677f29f490e0c8af852f0f1a0c","src/backend/libc/winsock_c.rs":"3bf3884fd250eca806ffdf96da68e29c133a697810b78b333ea449e523e58562","src/backend/linux_raw/arch/aarch64.rs":"2a255c9135bc8a321c180f52b88eb2b158bc9170cd222149caeae63c24587d44","src/backend/linux_raw/arch/arm.rs":"165bccb5883d0136e55d42091183765f83d86e9d37a7cb2cec9ae8af32774db6","src/backend/linux_raw/arch/mips.rs":"24af364aa93fd4b9917639d473336490a143f0d1723b09f388e72d534160ee51","src/backend/linux_raw/arch/mips32r6.rs":"e436a2ade34f2f7c58b8924462b07a2499dfc951e1e1318d51759444fb8b658e","src/backend/linux_raw/arch/mips64.rs":"897da9ddc877963ad59464d7f81dc59df8a7e91251e6adea14cfd946e2740a1c","src/backend/linux_raw/arch/mips64r6.rs":"3c08aea13c1139fb0dfbe74ca3d0147f007c3aa2eda641afb82c46f6aa4f6cd1","src/backend/linux_raw/arch/mod.rs":"37eaeea601d39be00d170856a31a8ec6a27b0d3ac22ab3ee642ab0e45dee237d","src/backend/linux_raw/arch/powerpc64.rs":"dfb001f8636a5e46d728900b0804fe6c374e5e18a6f0e76d7d62e0c07da74477","src/backend/linux_raw/arch/riscv64.rs":"41d33242d941030f46077dc2b1bc4c7913fe7630d693a5a7eef966bcf38f9d8b","src/backend/linux_raw/arch/thumb.rs":"2fd979ab421248c0a4c592bc0cefee63edc26528f469b71b63eaed35356e42e8","src/backend/linux_raw/arch/x86.rs":"81c73c0a13925854b54db754f533dec565b1db2d9586e210a2450c6f5915171d","src/backend/linux_raw/arch/x86_64.rs":"e929036a1f3cf93ba538f4523b241605cc7b5e61f84ffe6d9d5cdbcb6f73e543","src/backend/linux_raw/c.rs":"74cdf34fcd5bba9628c04585fa13721073e2bffe6740315c7655d1a55150230f","src/backend/linux_raw/conv.rs":"3b452e19c6b8285df205baa790e19f32061952ae7c7c4e39ba01726de6beb4fb","src/backend/linux_raw/event/epoll.rs":"18980136ee6d3e327d6c46a33306fa934a80eaee609a329098935569507440d0","src/backend/linux_raw/event/mod.rs":"72e46b04637e2d1d2a6b97af616144995399e489d1fe916faf835d72fc8c64cd","src/backend/linux_raw/event/poll_fd.rs":"78d040f7ce0574fc18cebf6b7766c210a3254abdbafe175f51c6b460fa19c514","src/backend/linux_raw/event/syscalls.rs":"8782cdf978bff0773bf5f35c1056d5c29a40742cf6f99d9606d951b52596cd34","src/backend/linux_raw/event/types.rs":"2ffdcb728587dbc25d302527f4a52296b96013d5199c946291b059ba4f7d466f","src/backend/linux_raw/fs/dir.rs":"c675dc5413428d2defd6752e99d210da83639779e853db209de6a1c08d35e0e7","src/backend/linux_raw/fs/inotify.rs":"42a6ed7b091eee20d7fd9becfea240deb99d0b8ca3e8e083cf365d484d8eeeeb","src/backend/linux_raw/fs/makedev.rs":"c6b4505c4bcbbc2460e80f3097eb15e2c8ef38d6c6e7abd78e39c53c372139e2","src/backend/linux_raw/fs/mod.rs":"8689e46f9c4c3e1190ae5fe39176c573cccac10b3739472128ca237f41e2686a","src/backend/linux_raw/fs/syscalls.rs":"a4512f58e2ef01bf0799c96fa7821284866b6826594642565f46d93e566e2e12","src/backend/linux_raw/fs/types.rs":"c015cf3cde945ad4a42ec706c6e1140c7342041ace1da6e0ef1bbf5e9e019ce2","src/backend/linux_raw/io/errno.rs":"8f15d735435b722466696094aed8b612b8526658ab7e079f386037cf8a3b1a6e","src/backend/linux_raw/io/mod.rs":"7ae2324427892cca6f5ab53858d847b165f790a72ec25f3d99fb15f0506c9f27","src/backend/linux_raw/io/syscalls.rs":"026f99b397ae521ac4b2ba41acec6547018073a9da5fa355aa8f9ac61298c172","src/backend/linux_raw/io/types.rs":"0cfffdc2fc9c33faa4055f9686db5922676f17d5c069362bae3745f39da3594a","src/backend/linux_raw/io_uring/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/io_uring/syscalls.rs":"0f7c9cb7ccddf5687e4b9e5b23558871a452a29ac6095a0184a06c47b9b18eb6","src/backend/linux_raw/mm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/mm/syscalls.rs":"7d43752e8abaa8cec02cd3329e08303c56a9e6ac97aec447293397b9953c3ba3","src/backend/linux_raw/mm/types.rs":"4407b4b54c4048bb1d4e702575e20037c24483a22f6a5cfcc940e4738fcff381","src/backend/linux_raw/mod.rs":"bb26fe4783f834a4624c99ecf9e4ea8fa4d1c7fe9adfb6d7310fac689e7797bc","src/backend/linux_raw/mount/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/mount/syscalls.rs":"3947261b5d46b9737f02dc5352c3a3a35c63c461fd75bcd8ae6619dfc0bfb54d","src/backend/linux_raw/mount/types.rs":"8d39c4d6e555c88de5da3115a301562fafdcb3942aa69a0e01d42de8edb1c78f","src/backend/linux_raw/net/addr.rs":"fbb6c071a8ebc2c557c7013d36d4b540c1ff6ed63103d0a8abcacd8977fbf5c8","src/backend/linux_raw/net/mod.rs":"904b2ccd4228ebcda25db0223b92fb03e4042bcc7b0a202f19410a8a5ff517a5","src/backend/linux_raw/net/msghdr.rs":"3198339ccd00224aefdba74e9144818fe387222066a387a9dfd95fd8c48cf9d9","src/backend/linux_raw/net/read_sockaddr.rs":"24075ac4c05fab5fe44aae4445cdd12ec7e474f047150baa9b768741d6b9693d","src/backend/linux_raw/net/send_recv.rs":"85b1a78ecc920e919ce7a0a9f7ad79cba5ad09af4f53018df8c46c7c112bd7a9","src/backend/linux_raw/net/sockopt.rs":"2ea8625ecd68a799c14ed48dec2f3e01f085222b6cc36f4916b20143e08ae575","src/backend/linux_raw/net/syscalls.rs":"eb897e0074ec53c5b18594c39cbb9ec5bd796c9120bf029f0b05145a7eee1804","src/backend/linux_raw/net/write_sockaddr.rs":"0eeeb7ec8dadf95503a2f89fdc933b8f9c7e45e03fdb343ce490b6cc8eec0f96","src/backend/linux_raw/param/auxv.rs":"c1b1a628d6c51ce8adc981f58c6e08abba4a151356ff98cdbc0b3e75abeadb8a","src/backend/linux_raw/param/init.rs":"a5024f9afe361884f22fb4d65e632ccd8a60f1138ff6bd526df600d40e0d9b7e","src/backend/linux_raw/param/libc_auxv.rs":"e567f471ab21068141acb9fb2f88b9ba553f630945bc8f01b689955b48414512","src/backend/linux_raw/param/mod.rs":"2e6a1a1c00351b9c88bd615aa923f71d76208df5626dd9bea03067f28f81dc31","src/backend/linux_raw/pid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/pid/syscalls.rs":"eef6aa01830ddd510b83f507da2002c03e58318b73744be2c06ebbe33c4f194f","src/backend/linux_raw/pipe/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/pipe/syscalls.rs":"366c730fc3e991bddb9f5a15b8c3917a8e6ace6d1d5a9113b2749e476faf6f83","src/backend/linux_raw/pipe/types.rs":"9d4bd3da7cd078d42574ad7d6b7554e301a1a7e97b292a77993a6d263726ef1e","src/backend/linux_raw/prctl/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/prctl/syscalls.rs":"a18b224307e0d27bda9b7b85c75cd6c7ddfe39f5ce52efb7bb0bf0585b757343","src/backend/linux_raw/process/cpu_set.rs":"dfdcbdf35aff6a3e08e7d38193bf18c12ca8aa64eb0dc417667be82dcc0f7c55","src/backend/linux_raw/process/mod.rs":"fb393c70a9c63ef9a6bf1fb5a2dc94f07d6b0b6987cc5231c15c607015dafd68","src/backend/linux_raw/process/syscalls.rs":"3730c155663d727d5b239f57f220727ef33dd257e74a1b697274de0f94e1da79","src/backend/linux_raw/process/types.rs":"6811ba822bc12a1a6336649151b4adb1f5d3365684a31c07f01953ea9547743d","src/backend/linux_raw/process/wait.rs":"921aee4b0048746087f52615a98edc2aa0fb4b53d6df44be4533098df55d1b05","src/backend/linux_raw/pty/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/pty/syscalls.rs":"ae09c4aecc0ae87b1ca58d82efc58007b9dddaae78460d615f48da19d1cd0f89","src/backend/linux_raw/rand/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/rand/syscalls.rs":"a84f70251672e92f253838bf05e989434f67373233e88d21d8835cbb792b1fe3","src/backend/linux_raw/rand/types.rs":"b7217c98f2da4ecf89225f36eb52c396ba2a73debdeca739ba864a9030b6a23d","src/backend/linux_raw/reg.rs":"39b6234971122d247054bda8c2dc3b44493be30482635baa9e2fcbe048e78cbd","src/backend/linux_raw/runtime/mod.rs":"b2cae8cce3822c3c92942f06ea0b68464040dcac33c6f0f7ee392c6269993347","src/backend/linux_raw/runtime/syscalls.rs":"fc9c9edbe07dd7644ab75c51a1597a31467a3421301503a072bef93e6df07643","src/backend/linux_raw/runtime/tls.rs":"6316060560a112c2e9cd9807cdba6e8c91414113a04a739160929ae9a67bba1f","src/backend/linux_raw/shm/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/shm/syscalls.rs":"3ebf91610b02de0312e1f0f0cc5d56e12b4d93794540087b3182cbdf3cb9c8db","src/backend/linux_raw/shm/types.rs":"76f587e0edc78e3b780b66ddf9bdf56d5bcb57822111e9f8f66a7eec07c2c0fa","src/backend/linux_raw/system/mod.rs":"8aa966faf3853d1a93d0ed91f7e5f4a53539b0287b25a5bfe489fa1d07f7cfd7","src/backend/linux_raw/system/syscalls.rs":"2af6c2672a6528b404b52f501d9803a63e9f47886d3b5d2d2dc5a71cefa7327a","src/backend/linux_raw/system/types.rs":"1ceab8d738a71043473b26e97fa3fd79d588a86d4774cbc9b9e1d4f1447a016e","src/backend/linux_raw/termios/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/termios/syscalls.rs":"01c4c8028595d8f53197ac3f2accb83057cb80fb5f78db63bbf85eb46d40e1c9","src/backend/linux_raw/thread/futex.rs":"0aa0f9f5be6a79de81e82c9f11f1bf8831f682a4b2f6cb29669e1591636f084e","src/backend/linux_raw/thread/mod.rs":"6ad4a4b90b9234e79900b27ebbe8837e3a7a36aec532912e3e253edce5225067","src/backend/linux_raw/thread/syscalls.rs":"0e3dca63be7322e1e9c58456b28eb8548abb9f08b4436b87b139e891c01c446d","src/backend/linux_raw/time/mod.rs":"672724f55b7b7be6a7452bb1cc2d28b5f0aaa840a2856fe363acce624e1beefc","src/backend/linux_raw/time/syscalls.rs":"451da0bbb66accdf58ee7f2f8746a93b22ee985907a08717a3d3b1650457d878","src/backend/linux_raw/time/types.rs":"56cb936dc36af759e06d0b7bcfa7db02818dff6084c1d1d9a538a6d5945032d5","src/backend/linux_raw/ugid/mod.rs":"2c6478857a0751625edabd61acb841819bfba1093b1faeded15693c805d84952","src/backend/linux_raw/ugid/syscalls.rs":"8c86d251db33b399a1d1cbb8e87afe650b78db84f444d3251309b7a0480b54f7","src/backend/linux_raw/vdso.rs":"056314f72c71d4b041739337ca2098afb7fe070f844327f462c293f43481b75b","src/backend/linux_raw/vdso_wrappers.rs":"6bd4b8c15761e16defff7d2eed18c008c9f980ebee6c9bdc2e104b16b9b7c631","src/bitcast.rs":"e21c87c292c781b27256c6f5dcf9fd52dd69ed6e21016cbd67ac31a8219ebf8e","src/check_types.rs":"bc31f9b293bfbf272284ed4d0da24e941206a1ac3f18d3abb0b1a61f1ede1dae","src/clockid.rs":"1d2e1cfcf23160b55d6b046d235edf2eb2408f072a8bdef3e3a3871885abdd5a","src/cstr.rs":"41af2a4429fe6c67a8883f8a8f63d66c90df566abda74fd2b03bcef7b9f24218","src/event/eventfd.rs":"81cbd08f7bdf40a6ce1ca692b63da1dc8ba925282990668d9d68f1203e839fa1","src/event/kqueue.rs":"f13f40b97c4413902115408fc2f340e7c82bba42d2468015b007e8ac6ef23132","src/event/mod.rs":"326a7ddfeb33bb95dd31391d65f400fa622e5d0ab827c096cab16af4b6843b51","src/event/poll.rs":"0ee583dbd457a573a82a06c04a2a24bd2c76e751d27a435507d55338e2871327","src/event/port.rs":"4e51ff150e5d17cbd44aa64a38b99c15e26eaaf2e350768b5dcacdfde4fa5212","src/ffi.rs":"c2b8b38c02d72749aceb715c496726caba1f1fa989ad3856d0103a2fafed89ed","src/fs/abs.rs":"6f0b57878f61c009fd0a3698a3983aa8076ba4fe3b5c28feec0307d65a77891c","src/fs/at.rs":"9b5f35afcaca9dd19d501cee3ad305b1d1c1b588c5fd925b18b6d3b614f05011","src/fs/constants.rs":"24076a01f8bfc126b0905e9bc0521d2c3a3abc6c3b8c86ddb1e545070d097127","src/fs/copy_file_range.rs":"d3b644374390d482b2ff749a2459458872b57d0dcf9670368739b7833509a7c2","src/fs/cwd.rs":"9f429a79ace6e17455634da09216ee0ad3d067a4541518b3193ae6a8d9ff1e26","src/fs/dir.rs":"347a52f4ca9ac6321c52e802e97ec90d1b4c62ec955c8996fc17f8f5aed69966","src/fs/fadvise.rs":"beef66ebe1310fb92628240b2cde68f744c78e50f6ff61bb1404bd4868d9cae8","src/fs/fcntl.rs":"2085102d05d0ba963e100ab3e3f19dac4ff27d142fbf798626d20a2a596ba96d","src/fs/fcntl_apple.rs":"e2f23f038083621bcdecc98d02ce1023508afaecdb2ed0fba5c8b70f955301e5","src/fs/fcopyfile.rs":"ec95929cbbe02cf49233a785e5238931bb107b7903cc5bc95e4231de960995f2","src/fs/fd.rs":"68d19bb99da0444444acbafd27ba10a69fc2ac35ede4e0106ac2043c30ce4f8f","src/fs/file_type.rs":"fefd865f91011f66126213b0994773d99e373b468c31e866002228c98c64ad85","src/fs/getpath.rs":"28f6970fc1bbc37bb35c84724b59eac436ea7407a4522e18c2bdacb1fdd2edd9","src/fs/id.rs":"1b5c8a8baf9a9bb1f895f97189cea4e5982a0d35b192afeec6340a6c6222e0cb","src/fs/ioctl.rs":"71327efab1e73c7844c681ea7e822b5124738196b2fc687aabc786b90be9fe32","src/fs/makedev.rs":"85520b484cb7c15ab71ea1c368578ea3b7e484d82f8510db92b6ce9f7ca341ae","src/fs/memfd_create.rs":"15a8f28e040cffd8c24c7903483440f88853b2e538ad48d80f3c00b4b2befdea","src/fs/mod.rs":"ecd20bf01d651b1866b198c4fc0dc8e7d681eb581e28708c8a0abd062de137ce","src/fs/mount.rs":"8f6ea2b997dd83c50c90291b9ada3ed77a9ce1ad701c9b0d533b5113b317be5b","src/fs/openat2.rs":"4a95c15dab533a41201b5fa25c8a212956b7571d58cad696bdaf45af8aef96db","src/fs/raw_dir.rs":"18ad797876d6230c38d4cacbed081c4028e03ace477d0520d9b226b40de942f0","src/fs/seek_from.rs":"a9efa0feb9ac789cf47667e91efee2e3f2dcde16cb3b7a928c99da640fa0e0d6","src/fs/sendfile.rs":"e3b2058741cf4b1698f34d84bb37130cf2b72806d522a16fe541e832cde136cb","src/fs/statx.rs":"c5192f54311faeb5a8e7ba7da1acd4fa5a8f69f6c15c4d78b4b7a495d21d0864","src/fs/sync.rs":"a3b23543834281f347b0f873bd38154d31d404871188ac08f2b20b9196234cfd","src/fs/xattr.rs":"b976eece822f69e768d91e61d86ee990ea18097b20f7ebeedaaf718c61b48962","src/io/close.rs":"0aa3cd05a8fed8e5244f97b8b6c2e7f65ed93a4e5435c6329852bb3da7514440","src/io/dup.rs":"a8a59c5d345dc54c57ded890720c33eb78c4d53917c71e8bb6317f7ed122cb87","src/io/errno.rs":"58a4d20ba0924e4d514e3c876fbe08982f1623187642ae14780815e65989c8c8","src/io/fcntl.rs":"c0f7bd7fce1119b0c1d0085b7ab77d5df02470ae3e06035428a2452dacbec296","src/io/ioctl.rs":"a47a5ec14607142f2c2ffcb93d016b8e86c8b15ba94b56b35382b545db62ea34","src/io/is_read_write.rs":"1bfb9ee5d58e0b29b44af12fe2668c7bccc841358698dcde47f1519ff9bb73b4","src/io/mod.rs":"75f1d0646be1d4c7c08b5887d8119b0103be8c25c43ccd4e0e97015508c0bb8f","src/io/read_write.rs":"54ba528b11601af1338bb0c71a41b256a0033076d30b3946c3fd0bdfa61dd021","src/io_uring.rs":"61e6dce7a53ce141604b5f577e20ec5aa73a20e2c2101825c7c52396ba221886","src/ioctl/bsd.rs":"e33772530b1b2d1e7d61ce53d9267e68d88f7f5df13301f90412d89a46c6faaa","src/ioctl/linux.rs":"256aef9fb51c67cd7f43a581b702aa62757e3bdd7c38f71bf849f818194c2285","src/ioctl/mod.rs":"739a4f6d4e9a816745e42133c1b4c51c1285bf5cde3e1ee3ea72ef0b802e3806","src/ioctl/patterns.rs":"26dda154aabf67d45362d9378875f95c1593391ecbc62be02d187b7e19e7f9da","src/lib.rs":"7430fd1db444a72dc8f9b762f2fb61226dd00c89c7c932481e94958f60678383","src/maybe_polyfill/no_std/io/mod.rs":"77889bb5c5a4f2e50e38379cdaa5d0fef4b0cafc3da056735df01f6deae75747","src/maybe_polyfill/no_std/mod.rs":"ec94a4aab4bc475785e469d10fd6bc95667e1d47d958e9cff3a19049d88c8c80","src/maybe_polyfill/no_std/net/ip_addr.rs":"046327ee244f758f2bc31d3be305d8cd0dfd8342aac1add8259e999b4b46c4a7","src/maybe_polyfill/no_std/net/mod.rs":"b0ee611c454679226a15bf647e7779995f3fe9c8e0507930a0d0613eb414b7c2","src/maybe_polyfill/no_std/net/socket_addr.rs":"bfeb32d32c176cde76323abcffebfc47e9898fb8d7ce3668c602dc8451086a2d","src/maybe_polyfill/no_std/os/fd/mod.rs":"27ef0afbcb0695cbb15101070f417eb51e0ef85ae66ec967d95e80771d507c47","src/maybe_polyfill/no_std/os/fd/owned.rs":"ab86ffa2693a04f3085770faf395f95e5303001711be8b19c44a47a0ac574091","src/maybe_polyfill/no_std/os/fd/raw.rs":"f3648c7bd4a6ff94bd823ed9e0d99d398e02f24875cf9b25962736999e7c6943","src/maybe_polyfill/no_std/os/mod.rs":"27dab639a765827644005d5f2fcc7c825310606b889cc8dd83f54c9528350dc0","src/maybe_polyfill/no_std/os/windows/io/mod.rs":"5bbcc05c83fee5026dd744a994e0458469466d5be39081baa62df07753b92fd2","src/maybe_polyfill/no_std/os/windows/io/raw.rs":"4c32609a489dd938a49328b5637cb3bafb96437f2f9f269ab66d7d3cb90247f6","src/maybe_polyfill/no_std/os/windows/io/socket.rs":"c658f42f24eff44a661f2adfd24a11af80fe9897f3e2af4dc5d2c64808308d65","src/maybe_polyfill/no_std/os/windows/mod.rs":"fdb416f8f231a4e778b5f985b9ae712ece5e1a1402963ad1a5f6a8b9843795f4","src/maybe_polyfill/std/mod.rs":"7c16c86cc73e226e65ead598e4018238b22000a345040b706bf1e1b3eba115fc","src/mm/madvise.rs":"3c262b3713a73fafcedf1b04bb12c048bb11d47ca43c959e5dfa48c27651f4f0","src/mm/mmap.rs":"28523bceb2b7e3bc1207f351d8a1771867159e1b9ff1d9c37fbdc05aeb696b50","src/mm/mod.rs":"b3a6cb838986d45825b912355cedead761211a494ca6f89b2367a2d2157e340e","src/mm/msync.rs":"9dcfe5f54235e9314a595edb8d548ac79d222bbcc58bb3263cf7e96d603b23ad","src/mm/userfaultfd.rs":"8073443bd181ff0b3ba4d0b1ae67370b4864035a0c8b4898cd709dc47c518ae7","src/mount/fsopen.rs":"160e384e9175fd98669cda1cf3590bb195c2ba7e1c724e9ea06e692595e58ba1","src/mount/mod.rs":"5f0c9df4727592695deb1cd63ae1de021b03dcd9d0d1b68e1f34d12a7136cb19","src/mount/mount_unmount.rs":"8ad11675e5d762d33fbefbed06a6a9f9e52a9b689bd06662446152614321ab77","src/mount/types.rs":"601ae3e10b7dc496fed7f3b40a80e81c6edd7bf13189d7be45c3212d4c684c39","src/net/mod.rs":"a6bc55f9e086caf46a7c00783498d73a328a66f2a991f1ec65d5f13931377b0f","src/net/send_recv/mod.rs":"f33e39c7b228cd8109823b0a0a1aa397cddad504d49e69b36f74c5b84e5070e5","src/net/send_recv/msg.rs":"6a73e4fd2b78fbeb683f48bcd8404a362245c6cd66e0d59e6378467600b44268","src/net/socket.rs":"bc825a94831557bf4c2cabd8ef5ae21ffe0986c24f9ada564eefa66270f69ae9","src/net/socket_addr_any.rs":"a9af81e967a91b45e51aec4f46a068fade7035c5d19dfaf05bfdcd3b3c32e9bf","src/net/socketpair.rs":"56f4885c31d2664cd16e18a9a88792a4912fedd953cec36dba67e8581fd57921","src/net/sockopt.rs":"58fbabf73ede7afaeac279241ff874dcee5604f63b3f38e4435a61a354da2196","src/net/types.rs":"5914e786d6a24a6efc355023fd71a28bc29fc85fb672e5388370243fe83e4191","src/net/wsa.rs":"6e546b42f50a851fc833c57cda76cfb347203ed4b0dea574a3d325bf5a2ebf80","src/param/auxv.rs":"886e57d52adf0199b8146f849c2db1e3136c07fc4ec61f60dc781fea11070604","src/param/init.rs":"a31c0e5cea61a1a999767fe74f87c0d59eeb6bce66578b842fe0e0c32be27a55","src/param/mod.rs":"25b10acd5b1da8faa6f5204e6b0379b38bfab667916e886cca64bea01a42dec2","src/path/arg.rs":"b1329485ad525e8d067792b0890a1241c20f6c08d29f0661f2a9f429581a7818","src/path/dec_int.rs":"fad9793b89eac526953b994cbed6b614f01c25108f9763e19fb98029feda93a4","src/path/mod.rs":"6b1b949c94bcc47e0f08a3f8e8db5b61ff497d0dfd3e0655f51c01d3e4b7dfd6","src/pid.rs":"f1c486000c5b1311b2d720cee88f089c17ef9a171709673dd06e6f35f4ff98a3","src/pipe.rs":"fd021deeacf78790886ae03f1e8f0fe5a13909c7532b2246581667eb3d0483d7","src/prctl.rs":"c9daa9397460a27ed6e31fc454fc40dff83720312a002b66f4c178fc005379ec","src/process/chdir.rs":"6947b80d468d906d528de328f30fe7509acfe4976a0de3fa600a7cc39618c049","src/process/chroot.rs":"2b5f6124eb19f26ad2705174f7ad50cdc0a5d15abd59ffcf55421228d82130b4","src/process/exit.rs":"48de66e5504a00cb375d8f415ce63b6225a3f5204268d40726a7d0fbba43f587","src/process/id.rs":"e4733f9e8e4b5f50e98ef7a23802e126f1f14ece8b3d7ae7446c6a66affc6bc1","src/process/ioctl.rs":"23ad0285671e8d7ca71a63c50655dbf732ccea8af11d754a0558e0236db37e76","src/process/kill.rs":"7b879e5cff8a064acd0e7488f4e21bd4e4a8506ce380688b72cc48d283ff9c89","src/process/membarrier.rs":"d6c8821ec73019040c926f4e1018f399c286e87074ab9c6692370c88772af044","src/process/mod.rs":"0ef104be820068409648ed83739a51a7dcf07612088f9a6ed6c7ebdb6ad54092","src/process/pidfd.rs":"4be2fba21430ba84244e11c636c91201bc1d1dffff3e63a4da84cc96f501786b","src/process/pidfd_getfd.rs":"cbc42a1548280ae76c3c66e851fd53cc2a3d4c089cb5798c17a2cdf654f0e229","src/process/prctl.rs":"3396b39a0f161385f02f6a4a17db0a3fcd2d70f4d6d2e1d8d1b9091b36d5704c","src/process/priority.rs":"f135482e71ea8aa0daf92b9f238051178a4c904070fa8409622f94155df3c544","src/process/procctl.rs":"0ca2f5fd4cd39335c141758cac132a3271e318c688f8882e527f58c02d5ab0e2","src/process/rlimit.rs":"10b79de3ced0e64059a94c879742d46a35a6176c776d8eed75031d5e6340283d","src/process/sched.rs":"7c3bfc5be624e7d7f5e043c3ee0b0566fcab3d684d61c272e7b4233410ab1c42","src/process/sched_yield.rs":"6565faa3928b66ddc74a65e893e15edfa4b9be4f7e5f5f68527501a7f6bc3350","src/process/umask.rs":"1a0f31a842303c978e3f05ec191e2b5e96104c09c6596473b42b1fac34898a50","src/process/wait.rs":"cef08e74f5d87df925fa6a6acc95e8de0e689fb420ba514b9fbf94a9ca403465","src/procfs.rs":"63b286dd3302be7f426841eb3b9261ef4785c3159ed78c24734bd5094c9b0b2e","src/pty.rs":"ee697b226230b65c0432a42cd82b2fad885ca70285dbb0a7b8ec0ff81d23e3a0","src/rand/getrandom.rs":"1c8166a02a74f5593bb4673ef907524df04cbc1568020a5ab2ff7f4aa1283f8b","src/rand/mod.rs":"cab59332aadd9b679f5b22cbb222d48ee028af5eb9fd4a4d43922da659b895d7","src/runtime.rs":"9aed98071bf8124c6913e8517b28ef63c7b88001042f0522d877ab65ac88099a","src/shm.rs":"b96fe8a05ee5d4536464a8843a776d43a938abaf22c772fc35b5373d95644a8d","src/signal.rs":"c071b4f011deef19a679d7a832d5408a3cd68627161d6510008d6312266a2611","src/static_assertions.rs":"39986672f489949be1d6469f0c30fb7d2eaa21bdaa2702a8c150b2b150bf5535","src/stdio.rs":"a5de2d7d9c3c5a901f88b6acf4754687c958a2f3a93c7945c2b8fcb948d468af","src/system.rs":"e594c16b4600a8ebea01c5850cd9e1521acf242f1a9f083403cfe95adcde4679","src/termios/ioctl.rs":"a1ac967f7811a482f8bb53847c37c8359f518cd26da9df7b816ba678a0139623","src/termios/mod.rs":"b44b7caa60b6f458657ed58a0e0eca41bb4e6d6be4b0f042bbb8ab7056cebe4b","src/termios/tc.rs":"e41312d15464b83b2457c2502fc3f3b9998cfb02ba68739026dd4285cc7130ac","src/termios/tty.rs":"906ee160ffb5ba3a92ea3a61374cf2cd617cebae51f5490073b6700c438d5eee","src/termios/types.rs":"8c4f029e8dbb9b2c59082bd13d628a741f6f0a31f5ecf485c93795b73c1daeca","src/thread/clock.rs":"469326c822dfb63405ee8537552cedde0b344978280e6645bbadd47dedc71e18","src/thread/futex.rs":"985f9a0dce1e2a4892ae7f26bd1bf119ceae3f9fa6b4707e166624fc1cee76d4","src/thread/id.rs":"ad72db4fea9fccb728310bbfd01ef8c00f6cc60fa2a750f6349646a134f7009b","src/thread/libcap.rs":"a3e316e6d0f58b075125fa939b9b824e1595de20a23d341a36999416b0d10d36","src/thread/mod.rs":"98634ece0b882f123ad887017692f2a4d94a23a1dec278ed660b3497cac5cceb","src/thread/prctl.rs":"10e2878ef856557bc5bd24c77f5699266e746f912e73690980371cc99c7417e8","src/thread/setns.rs":"730badd8db8ce7b905767b341211f1226eeeb38019727bf994eb64f2531b7b7f","src/time/clock.rs":"e59a29f1bed8c31c3d5b6fad60f2d4fa6cab8dd8e86148bb3693a5e3a1ce735f","src/time/mod.rs":"43afee938c80d124d04d4ba190c03f4d21d1e3bfc154fff309211e4f6eabe940","src/time/timerfd.rs":"f17092b84553741aa2d2b44c6992b5d2c8c96cc2c2007fc9a2c6b2064485e53f","src/timespec.rs":"32a4d930cbc0f6dbd23153290db920671cf4ce65a4a127e176f897c1cde42d7d","src/ugid.rs":"6616c6e35b7e43aee5b150f1efae7a50711e0947943c9a96833dbe214ad9e85f","src/utils.rs":"9ae76f8a41d6cc350cdd58c9084b5c3a5a708eeecd769783debdbcbaef442182","src/weak.rs":"c7cf03bf2aeba494b1999ab32183fa8c603ab72e254c0e312a67f168877e410d"},"package":"745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"}
 --- a/vendor/rustix-0.38.19/src/fs/ioctl.rs
 +++ b/vendor/rustix-0.38.19/src/fs/ioctl.rs
-@@ -34,7 +34,7 @@ pub fn ioctl_blkpbszget<Fd: AsFd>(fd: Fd
+@@ -48,7 +48,7 @@ pub fn ioctl_blkpbszget<Fd: AsFd>(fd: Fd
  ///  - [Linux]
  ///
  /// [Linux]: https://man7.org/linux/man-pages/man2/ioctl_ficlone.2.html
@@ -48,3 +48,23 @@
  #[inline]
  #[doc(alias = "FICLONE")]
  pub fn ioctl_ficlone<Fd: AsFd, SrcFd: AsFd>(fd: Fd, src_fd: SrcFd) -> io::Result<()> {
+@@ -77,7 +77,7 @@ unsafe impl ioctl::Ioctl for Ficlone<'_>
+     type Output = ();
+ 
+     const IS_MUTATING: bool = false;
+-    const OPCODE: ioctl::Opcode = ioctl::Opcode::old(c::FICLONE as ioctl::RawOpcode);
++    const OPCODE: ioctl::Opcode = ioctl::Opcode::old(linux_raw_sys::ioctl::FICLONE as ioctl::RawOpcode);
+ 
+     fn as_ptr(&mut self) -> *mut c::c_void {
+         self.0.as_raw_fd() as *mut c::c_void
+--- a/vendor/rustix-0.38.19/src/backend/libc/c.rs
++++ b/vendor/rustix-0.38.19/src/backend/libc/c.rs
+@@ -6,6 +6,8 @@
+ // things below.
+ pub(crate) use libc::*;
+ 
++use linux_raw_sys::ioctl::FICLONE;
++
+ /// `PROC_SUPER_MAGIC`—The magic number for the procfs filesystem.
+ #[cfg(all(linux_kernel, target_env = "musl"))]
+ pub(crate) const PROC_SUPER_MAGIC: u32 = 0x0000_9fa0;
diff --git a/poky/meta/recipes-devtools/vala/vala.inc b/poky/meta/recipes-devtools/vala/vala.inc
index 162e99b..0177e86 100644
--- a/poky/meta/recipes-devtools/vala/vala.inc
+++ b/poky/meta/recipes-devtools/vala/vala.inc
@@ -3,7 +3,7 @@
 DESCRIPTION = "Vala is a C#-like language dedicated to ease GObject programming. \
 Vala compiles to plain C and has no runtime environment nor penalities whatsoever."
 SECTION = "devel"
-DEPENDS = "bison-native flex-native glib-2.0"
+DEPENDS = "bison-native flex-native glib-2.0 gobject-introspection"
 
 # Appending libxslt-native to dependencies has an effect
 # of rebuilding the manual, which is very slow. Let's do this
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.13.bb b/poky/meta/recipes-devtools/vala/vala_0.56.13.bb
deleted file mode 100644
index 0d43ac5..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.56.13.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI[sha256sum] = "4988223036c7e1e4874c476d0de8bd9cbe500ee25ef19a76e560dc0b6d56ae07"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.15.bb b/poky/meta/recipes-devtools/vala/vala_0.56.15.bb
new file mode 100644
index 0000000..dc483b1
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.56.15.bb
@@ -0,0 +1,3 @@
+require ${BPN}.inc
+
+SRC_URI[sha256sum] = "535b6452ed310fd5fb5c7dd6794b6213dac3b48e645e5bff3173741ec2cb3f2b"
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index 04f159d..5bfba1c 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -1,5 +1,4 @@
 drd/tests/annotate_sem
-drd/tests/boost_thread
 gdbserver_tests/hgtls
 helgrind/tests/hg05_race2
 helgrind/tests/tc20_verifywrap
@@ -15,7 +14,6 @@
 memcheck/tests/bug464969_d_demangle
 memcheck/tests/cxx17_aligned_new
 memcheck/tests/demangle
-memcheck/tests/linux/timerfd-syscall
 memcheck/tests/long_namespace_xml
 memcheck/tests/mismatches
 memcheck/tests/mismatches_xml
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
index 004589a..8435a6d 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
@@ -1,8 +1,12 @@
 cachegrind/tests/wrap5
+drd/tests/boost_thread
 none/tests/amd64/fb_test_amd64
+none/tests/tls
 gdbserver_tests/hginfo
+gdbserver_tests/mcinvokeRU
 memcheck/tests/linux/dlclose_leak-no-keep
 memcheck/tests/linux/dlclose_leak
+memcheck/tests/linux/timerfd-syscall
 memcheck/tests/supp_unknown
 memcheck/tests/wrap1
 memcheck/tests/wrap2
diff --git a/poky/meta/recipes-extended/images/core-image-full-cmdline.bb b/poky/meta/recipes-extended/images/core-image-full-cmdline.bb
index 4e1cf58..b034cd0 100644
--- a/poky/meta/recipes-extended/images/core-image-full-cmdline.bb
+++ b/poky/meta/recipes-extended/images/core-image-full-cmdline.bb
@@ -1,7 +1,7 @@
 SUMMARY = "A console-only image with more full-featured Linux system \
 functionality installed."
 
-IMAGE_FEATURES += "splash ssh-server-openssh"
+IMAGE_FEATURES += "splash ssh-server-openssh package-management"
 
 IMAGE_INSTALL = "\
     packagegroup-core-boot \
diff --git a/poky/meta/recipes-extended/lsof/files/remove-host-information.patch b/poky/meta/recipes-extended/lsof/files/remove-host-information.patch
index fb90366..1f2b4af 100644
--- a/poky/meta/recipes-extended/lsof/files/remove-host-information.patch
+++ b/poky/meta/recipes-extended/lsof/files/remove-host-information.patch
@@ -1,14 +1,50 @@
+From 4f05492ac07a7bbaf06dd8265b9cba329e1b53e9 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Wed, 30 Aug 2017 15:05:16 +0800
+Subject: [PATCH] lsof: remove host information from version.h
+
 lsof doesn't embed the username or hostname in the build if SOURCE_DATE_EPOCH is
 defined, but this still embeds build paths.  Delete all of the host details to
 ensure that no host information is leaked into the binary.
 
 Upstream-Status: Inappropriate
 Signed-off-by: Ross Burton <ross.burton@arm.com>
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ autotools/version.h.in      | 16 ++++-----
+ lib/dialects/linux/Makefile | 69 ++++++-------------------------------
+ 2 files changed, 19 insertions(+), 66 deletions(-)
 
-diff --git a/dialects/linux/Makefile b/dialects/linux/Makefile
-index 176a4c2..ef5a633 100644
---- a/dialects/linux/Makefile
-+++ b/dialects/linux/Makefile
+diff --git a/autotools/version.h.in b/autotools/version.h.in
+index aac0b80..2e635a5 100644
+--- a/autotools/version.h.in
++++ b/autotools/version.h.in
+@@ -37,13 +37,13 @@
+ 
+ #include "config.h"
+ #define LSOF_VERSION PACKAGE_VERSION
+-#define LSOF_HOST "@host@"
+-#define LSOF_LOGNAME "@logname@"
+-#define LSOF_USER "@user@"
+-#define LSOF_CC "@cc@"
+-#define LSOF_CCV "@ccv@"
+-#define LSOF_CCFLAGS "@ccflags@"
+-#define LSOF_LDFLAGS "@ldflags@"
+-#define LSOF_SYSINFO "@sysinfo@"
++#define LSOF_HOST ""
++#define LSOF_LOGNAME ""
++#define LSOF_USER ""
++#define LSOF_CC ""
++#define LSOF_CCV ""
++#define LSOF_CCFLAGS ""
++#define LSOF_LDFLAGS ""
++#define LSOF_SYSINFO ""
+ 
+ #endif
+diff --git a/lib/dialects/linux/Makefile b/lib/dialects/linux/Makefile
+index f8adaa6..7a79ca7 100644
+--- a/lib/dialects/linux/Makefile
++++ b/lib/dialects/linux/Makefile
 @@ -83,64 +83,17 @@ ${LIB}: FRC
  version.h:	FRC
  	@echo Constructing version.h
diff --git a/poky/meta/recipes-extended/lsof/lsof_4.98.0.bb b/poky/meta/recipes-extended/lsof/lsof_4.98.0.bb
deleted file mode 100644
index 835ce3b..0000000
--- a/poky/meta/recipes-extended/lsof/lsof_4.98.0.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "LiSt Open Files tool"
-DESCRIPTION = "Lsof is a Unix-specific diagnostic tool. \
-Its name stands for LiSt Open Files, and it does just that."
-HOMEPAGE = "http://people.freebsd.org/~abe/"
-SECTION = "devel"
-LICENSE = "Spencer-94"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a48ac97a8550eff12395a2c0d6151510"
-
-SRC_URI = "git://github.com/lsof-org/lsof;branch=master;protocol=https \
-           file://remove-host-information.patch"
-SRCREV = "546eb1c9910e7c137fdff551683c35a736021e05"
-
-S = "${WORKDIR}/git"
-
-
-inherit update-alternatives
-
-ALTERNATIVE:${PN} = "lsof"
-ALTERNATIVE_LINK_NAME[lsof] = "${sbindir}/lsof"
-# Make our priority higher than busybox
-ALTERNATIVE_PRIORITY = "100"
-
-
-export LSOF_INCLUDE = "${STAGING_INCDIR}"
-
-do_configure () {
-	export LSOF_AR="${AR} cr"
-	export LSOF_RANLIB="${RANLIB}"
-	if [ "x${GLIBCVERSION}" != "x" ]; then
-		LINUX_CLIB=`echo ${GLIBCVERSION} |sed -e 's,\.,,g'`
-		LINUX_CLIB="-DGLIBCV=${LINUX_CLIB}"
-		export LINUX_CLIB
-	fi
-	yes | ./Configure linux
-}
-
-export I = "${STAGING_INCDIR}"
-export L = "${STAGING_INCDIR}"
-
-do_compile () {
-	oe_runmake 'CC=${CC}' 'CFGL=${LDFLAGS} -L./lib -llsof' 'DEBUG=' 'INCL=${CFLAGS} -I..'
-}
-
-do_install () {
-	install -d ${D}${sbindir} ${D}${mandir}/man8
-	install -m 0755 lsof ${D}${sbindir}/lsof
-	install -m 0644 Lsof.8 ${D}${mandir}/man8/lsof.8
-}
diff --git a/poky/meta/recipes-extended/lsof/lsof_4.99.3.bb b/poky/meta/recipes-extended/lsof/lsof_4.99.3.bb
new file mode 100644
index 0000000..93e91fb
--- /dev/null
+++ b/poky/meta/recipes-extended/lsof/lsof_4.99.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "LiSt Open Files tool"
+DESCRIPTION = "Lsof is a Unix-specific diagnostic tool. \
+Its name stands for LiSt Open Files, and it does just that."
+HOMEPAGE = "http://people.freebsd.org/~abe/"
+SECTION = "devel"
+LICENSE = "Spencer-94"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a48ac97a8550eff12395a2c0d6151510"
+
+SRC_URI = "git://github.com/lsof-org/lsof;branch=master;protocol=https \
+           file://remove-host-information.patch"
+SRCREV = "2e4c7a1a9bc7258dc5b6a3ab28ebca44174279a8"
+
+S = "${WORKDIR}/git"
+
+inherit update-alternatives autotools pkgconfig manpages
+PACKAGECONFIG[manpages] = ""
+
+DEPENDS += "groff-native"
+
+ALTERNATIVE:${PN} = "lsof"
+ALTERNATIVE_LINK_NAME[lsof] = "${bindir}/lsof"
+# Make our priority higher than busybox
+ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-extended/man-pages/man-pages/0001-man.ml-do-not-use-dev-stdin.patch b/poky/meta/recipes-extended/man-pages/man-pages/0001-man.ml-do-not-use-dev-stdin.patch
new file mode 100644
index 0000000..ec2d060
--- /dev/null
+++ b/poky/meta/recipes-extended/man-pages/man-pages/0001-man.ml-do-not-use-dev-stdin.patch
@@ -0,0 +1,33 @@
+From f16cd8c4986b7f250e8465dfbe4bda8d366e05dd Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 4 Mar 2024 14:35:16 +0100
+Subject: [PATCH] man.ml: do not use /dev/stdin
+
+This was introduced in https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/?id=30c38a8bf8ae8f4a6e71d3b8ac4abf0a40778f1e
+(presumably to build a 'sed | install' pipeline instead of previous 'install; sed' sequence),
+but it doesn't work under pseudo where /dev/stdin is absent.
+
+Upstream-Status: Inappropriate [yocto specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ share/mk/install/man.mk | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/share/mk/install/man.mk b/share/mk/install/man.mk
+index b9865b9..06880f0 100644
+--- a/share/mk/install/man.mk
++++ b/share/mk/install/man.mk
+@@ -60,10 +60,10 @@ $(foreach s, $(MANSECTIONS),                                                  \
+ 
+ $(_manpages):
+ 	$(info INSTALL	$@)
+-	<$< \
+-	$(SED) $(foreach s, $(MANSECTIONS), \
++	$(INSTALL_DATA) -T $< $@
++	$(SED) -i $(foreach s, $(MANSECTIONS), \
+ 		-e '/^\.so /s, man$(s)/\(.*\)\.$(s)$$, $(notdir $(man$(s)dir))/\1$(man$(s)ext)$(Z),') \
+-	| $(INSTALL_DATA) -T /dev/stdin $@
++	$@
+ ifeq ($(LINK_PAGES),symlink)
+ 	if $(GREP) '^\.so ' <$@ >/dev/null; then \
+ 		$(GREP) '^\.so ' <$@ \
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_6.05.01.bb b/poky/meta/recipes-extended/man-pages/man-pages_6.06.bb
similarity index 64%
rename from poky/meta/recipes-extended/man-pages/man-pages_6.05.01.bb
rename to poky/meta/recipes-extended/man-pages/man-pages_6.06.bb
index f0eb1a6..fa2e6b2 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_6.05.01.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_6.06.bb
@@ -4,19 +4,24 @@
 HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
 LICENSE = "GPL-2.0-or-later & GPL-2.0-only & GPL-1.0-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause & MIT"
 
-LIC_FILES_CHKSUM = "file://README;md5=cbd51cd3dd298230df8ddd4637e65c37 \
-                    file://LICENSES/BSD-2-Clause.txt;md5=d0f280d1058e77e66264a9b9e10e6c89 \
-                    file://LICENSES/BSD-3-Clause.txt;md5=71f739ef75581cae312e8c711bcdab16 \
+LIC_FILES_CHKSUM = "file://README;md5=72cff06b7954222c24d38bc2c41b234e \
+                    file://LICENSES/BSD-2-Clause.txt;md5=9e16594a228301089d759b4f178db91f \
+                    file://LICENSES/BSD-3-Clause.txt;md5=407426fcc1a243b7b2eff6e35c56aca9 \
                     file://LICENSES/BSD-4-Clause-UC.txt;md5=1da3cf8ad50cd8d5d1de3cfc53196d01 \
                     file://LICENSES/GPL-1.0-or-later.txt;md5=e5b7c80002ef72ab868b43ce47b65125 \
                     file://LICENSES/GPL-2.0-only.txt;md5=3d26203303a722dedc6bf909d95ba815 \
                     file://LICENSES/GPL-2.0-or-later.txt;md5=3d26203303a722dedc6bf909d95ba815 \
+                    file://LICENSES/Linux-man-pages-1-para.txt;md5=97ab07585ce6700273bc66461bf46bf2 \
+                    file://LICENSES/Linux-man-pages-copyleft-2-para.txt;md5=1cafc230857da5e43f3d509c425d3c64 \
                     file://LICENSES/Linux-man-pages-copyleft.txt;md5=173b960c686ff2d26f043ddaeb63f6ce \
+                    file://LICENSES/Linux-man-pages-copyleft-var.txt;md5=d33708712c5918521f47f23b0c4e0d20 \
                     file://LICENSES/MIT.txt;md5=7dda4e90ded66ab88b86f76169f28663 \
                     "
-SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
+SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz \
+           file://0001-man.ml-do-not-use-dev-stdin.patch \
+           "
 
-SRC_URI[sha256sum] = "b2dd44ca0342b50923291f06bdba38c42438e10c04843ce1f731cf3f50631e0a"
+SRC_URI[sha256sum] = "006906e7be81a71c2d347809597bcb91485fa7fa488acdaa79e681ddfa894568"
 
 inherit manpages
 
diff --git a/poky/meta/recipes-extended/mc/files/nomandate.patch b/poky/meta/recipes-extended/mc/files/nomandate.patch
index 4ebaaa2..92fa443 100644
--- a/poky/meta/recipes-extended/mc/files/nomandate.patch
+++ b/poky/meta/recipes-extended/mc/files/nomandate.patch
@@ -1,4 +1,4 @@
-From 4482ed0b8bd506cc2590ceacfdada6cc34450796 Mon Sep 17 00:00:00 2001
+From 78c5fd90a052f95157b3914c708a08b2eeab0154 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Tue, 4 Feb 2020 18:12:15 +0000
 Subject: [PATCH] mc: Fix manpage date indeterminism
@@ -15,13 +15,12 @@
 
 Upstream-Status: Inappropriate [OE specficic reproducibility workaround]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
 ---
  doc/man/date-of-man-include.am | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/doc/man/date-of-man-include.am b/doc/man/date-of-man-include.am
-index c6b1e69..165a796 100644
+index 96f9f10..d734c5d 100644
 --- a/doc/man/date-of-man-include.am
 +++ b/doc/man/date-of-man-include.am
 @@ -1,5 +1,5 @@
diff --git a/poky/meta/recipes-extended/mc/mc_4.8.30.bb b/poky/meta/recipes-extended/mc/mc_4.8.31.bb
similarity index 91%
rename from poky/meta/recipes-extended/mc/mc_4.8.30.bb
rename to poky/meta/recipes-extended/mc/mc_4.8.31.bb
index 258ac38..69c3288 100644
--- a/poky/meta/recipes-extended/mc/mc_4.8.30.bb
+++ b/poky/meta/recipes-extended/mc/mc_4.8.31.bb
@@ -11,7 +11,7 @@
 SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
            file://nomandate.patch \
            "
-SRC_URI[sha256sum] = "38171f22f889e3030ec9055463d3ecd7843984ab24e6497d8294d1c441a7ddb4"
+SRC_URI[sha256sum] = "f42f4114ed42f6cf9995f1d896fa6c797ccb36dac57760dda8dd9f78ac462841"
 
 inherit autotools gettext pkgconfig
 
@@ -39,7 +39,7 @@
         rm ${D}${libexecdir}/mc/extfs.d/s3+ ${D}${libexecdir}/mc/extfs.d/uc1541
 }
 
-PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers ${BPN}-fish"
+PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers ${BPN}-shell"
 
 SUMMARY:${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts"
 FILES:${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \
@@ -53,5 +53,5 @@
 SUMMARY:${BPN}-helpers = "Midnight Commander shell helper scripts"
 FILES:${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*"
 
-SUMMARY:${BPN}-fish = "Midnight Commander Fish scripts"
-FILES:${BPN}-fish = "${libexecdir}/mc/fish"
+SUMMARY:${BPN}-shell = "Midnight Commander Shell scripts"
+FILES:${BPN}-shell = "${libexecdir}/mc/shell"
diff --git a/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch b/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch
deleted file mode 100644
index 9e67126..0000000
--- a/poky/meta/recipes-extended/minicom/minicom/0001-fix-minicom-h-v-return-value-is-not-0.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Exit normally for help/verison options
-
-If -v or -h is used for the help/version information, it is a normal exit situation,
-not an error condition. Sometimes these are used as a simple operation test of the
-resulting binary so the exit code does matter.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [https://salsa.debian.org/minicom-team/minicom/-/merge_requests/14]
----
- src/minicom.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-Index: minicom-2.8/src/minicom.c
-===================================================================
---- minicom-2.8.orig/src/minicom.c
-+++ minicom-2.8/src/minicom.c
-@@ -1257,14 +1257,14 @@ int main(int argc, char **argv)
-                  "modify it under the terms of the GNU General Public License\n"
-                  "as published by the Free Software Foundation; either version\n"
-                  "2 of the License, or (at your option) any later version.\n\n"));
--          exit(1);
-+          exit(0);
-           break;
-         case 's': /* setup mode */
-           dosetup = 1;
-           break;
-         case 'h':
-           helpthem();
--          exit(1);
-+          exit(0);
-           break;
-         case 'p': /* Pseudo terminal to use. */
-           if (strncmp(optarg, "/dev/", 5) == 0)
diff --git a/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch b/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch
deleted file mode 100644
index 39dc5c0..0000000
--- a/poky/meta/recipes-extended/minicom/minicom/allow.to.disable.lockdev.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-configure: Allow lockdev to be disabled
-
-When the pkgconfig dependencies may be present, it is useful to be
-able to explictly disable the lockdev dependency. This adds such an
-option.
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Upstream-Status: Submitted [https://salsa.debian.org/minicom-team/minicom/-/merge_requests/14]
-
-Index: minicom-2.8/configure.ac
-===================================================================
---- minicom-2.8.orig/configure.ac
-+++ minicom-2.8/configure.ac
-@@ -43,7 +43,13 @@ if test "x$enable_socket" = xyes; then
- fi
- 
- PKG_PROG_PKG_CONFIG
--if test -n "$PKG_CONFIG"; then
-+
-+AC_ARG_ENABLE([lockdev],
-+        AS_HELP_STRING([--enable-lockdev],
-+                       [Enable lockdev support (def: enabled)]),
-+        [], [enable_lockdev="yes"])
-+
-+if test -n "$PKG_CONFIG" && test "x$enable_lockdev" = xyes; then
- 	PKG_CHECK_MODULES([LOCKDEV], [lockdev], AC_DEFINE([HAVE_LOCKDEV],[1],[Define if you have lockdev]),[:])
- fi
- 
diff --git a/poky/meta/recipes-extended/minicom/minicom_2.8.bb b/poky/meta/recipes-extended/minicom/minicom_2.9.bb
similarity index 79%
rename from poky/meta/recipes-extended/minicom/minicom_2.8.bb
rename to poky/meta/recipes-extended/minicom/minicom_2.9.bb
index 2640c6b..907d5c7 100644
--- a/poky/meta/recipes-extended/minicom/minicom_2.8.bb
+++ b/poky/meta/recipes-extended/minicom/minicom_2.9.bb
@@ -7,12 +7,9 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=420477abc567404debca0a2a1cb6b645 \
                     file://src/minicom.h;beginline=1;endline=12;md5=a58838cb709f0db517f4e42730c49e81"
 
-SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.bz2 \
-           file://allow.to.disable.lockdev.patch \
-           file://0001-fix-minicom-h-v-return-value-is-not-0.patch \
-"
+SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.bz2"
 
-SRC_URI[sha256sum] = "38cea30913a20349326ff3f1763ee1512b7b41601c24f065f365e18e9db0beba"
+SRC_URI[sha256sum] = "9efbb6458140e5a0de445613f0e76bcf12cbf7a9892b2f53e075c2e7beaba86c"
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[lockdev] = "--enable-lockdev,--disable-lockdev,lockdev"
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index e9531fa..8dc6295 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -42,7 +42,7 @@
     less \
     makedevs \
     mc \
-    mc-fish \
+    mc-shell \
     mc-helpers \
     mc-helpers-perl \
     ncurses \
diff --git a/poky/meta/recipes-extended/xz/xz_5.4.6.bb b/poky/meta/recipes-extended/xz/xz_5.4.6.bb
index 6c13e7e..da3b75a 100644
--- a/poky/meta/recipes-extended/xz/xz_5.4.6.bb
+++ b/poky/meta/recipes-extended/xz/xz_5.4.6.bb
@@ -28,7 +28,8 @@
            file://run-ptest \
           "
 SRC_URI[sha256sum] = "aeba3e03bf8140ddedf62a0a367158340520f6b384f75ca6045ccc6c0d43fd5c"
-UPSTREAM_CHECK_REGEX = "xz-(?P<pver>\d+(\.\d+)+)\.tar"
+UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+(\.\d+)+)"
+UPSTREAM_CHECK_URI = "https://github.com/tukaani-project/xz/releases/"
 
 CACHED_CONFIGUREVARS += "gl_cv_posix_shell=/bin/sh"
 
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb b/poky/meta/recipes-gnome/epiphany/epiphany_45.3.bb
similarity index 94%
rename from poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_45.3.bb
index c8631e0..eec52e3 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_45.3.bb
@@ -31,7 +31,7 @@
            file://migrator.patch \
            file://distributor.patch \
            "
-SRC_URI[archive.sha256sum] = "7c994ef34ecd60e915de331ee123c08938f9623cefada6d50b99e3c9c5ad8135"
+SRC_URI[archive.sha256sum] = "6c302e9bdd66290cb0e26f62843cd4c435a4955abdbb4f151f07dc80495d6730"
 
 # Developer mode enables debugging
 PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
diff --git a/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch b/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
index a6c4f92..e505466 100644
--- a/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
+++ b/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
@@ -1,4 +1,4 @@
-From 77c9f87dc2b3ad0854a678e234e22dfb31902b82 Mon Sep 17 00:00:00 2001
+From bd45c75fe691e275d7a7d7e641ac66b153369a1c Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 31 Jan 2018 15:50:38 +0200
 Subject: [PATCH] help/meson.build: disable the use of yelp
@@ -7,7 +7,6 @@
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  help/meson.build | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/poky/meta/recipes-gnome/epiphany/files/distributor.patch b/poky/meta/recipes-gnome/epiphany/files/distributor.patch
index b09c9b3..a2800eb 100644
--- a/poky/meta/recipes-gnome/epiphany/files/distributor.patch
+++ b/poky/meta/recipes-gnome/epiphany/files/distributor.patch
@@ -1,12 +1,19 @@
-Don't encode the distro from /etc/os-release into the binaries.
+From c297f5b89d7c8e98ac98e1d9a7506df6db6fc025 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Fri, 26 Feb 2021 10:17:52 +0000
+Subject: [PATCH] Don't encode the distro from /etc/os-release into the
+ binaries.
 
 Upstream-Status: Pending
 RP 2021/2/26
+---
+ meson.build | 1 +
+ 1 file changed, 1 insertion(+)
 
-Index: epiphany-3.38.2/meson.build
-===================================================================
---- epiphany-3.38.2.orig/meson.build
-+++ epiphany-3.38.2/meson.build
+diff --git a/meson.build b/meson.build
+index e416cc7..ee5f7b1 100644
+--- a/meson.build
++++ b/meson.build
 @@ -15,6 +15,7 @@ if r.returncode() == 0
  else
    distributor_name = 'GNOME Web'
diff --git a/poky/meta/recipes-gnome/epiphany/files/migrator.patch b/poky/meta/recipes-gnome/epiphany/files/migrator.patch
index a9a650a..1b4404c 100644
--- a/poky/meta/recipes-gnome/epiphany/files/migrator.patch
+++ b/poky/meta/recipes-gnome/epiphany/files/migrator.patch
@@ -1,15 +1,23 @@
+From b38a4ceaeec05efb1b822d52c43590e7fd518113 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 25 Feb 2021 14:52:32 +0000
+Subject: [PATCH] epiphany: Fix reproducibility issue
+
 We don't want to encide BUILD_ROOT into target packages. This is used
 for build time tests but in our case those would be on target anyway
 do use the target paths.
 
 Upstream-Status: Pending
 RP 2021/2/25
+---
+ lib/ephy-profile-utils.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
-Index: epiphany-3.38.2/lib/ephy-profile-utils.c
-===================================================================
---- epiphany-3.38.2.orig/lib/ephy-profile-utils.c
-+++ epiphany-3.38.2/lib/ephy-profile-utils.c
-@@ -130,10 +130,10 @@ ephy_profile_utils_do_migration (const c
+diff --git a/lib/ephy-profile-utils.c b/lib/ephy-profile-utils.c
+index a2f6181..5218077 100644
+--- a/lib/ephy-profile-utils.c
++++ b/lib/ephy-profile-utils.c
+@@ -130,10 +130,10 @@ ephy_profile_utils_do_migration (const char *profile_directory,
    argv[i++] = NULL;
  
  #if DEVELOPER_MODE
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3/opengl.patch b/poky/meta/recipes-gnome/gtk+/gtk+3/opengl.patch
index 7354265..8f2feb0 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3/opengl.patch
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3/opengl.patch
@@ -141,17 +141,18 @@
 index 9690077cc2..55f85ef605 100644
 --- a/gdk/gdkgl.c
 +++ b/gdk/gdkgl.c
-@@ -26,7 +26,9 @@
- # include "win32/gdkwin32.h"
- #endif
+@@ -21,8 +21,9 @@
+ #include "gdkglcontextprivate.h"
  
+ #include "gdkinternals.h"
+-
 +#ifdef HAVE_OPENGL
  #include <epoxy/gl.h>
 +#endif
  #include <math.h>
  #include <string.h>
  
-@@ -40,6 +42,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface,
+@@ -36,6 +37,7 @@
                                 g_object_ref (window),  g_object_unref);
  }
  
@@ -159,7 +160,7 @@
  static const char *
  get_vertex_type_name (int type)
  {
-@@ -212,6 +215,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data)
+@@ -208,6 +210,7 @@
        glUseProgram (paint_data->current_program->program);
      }
  }
@@ -167,7 +168,7 @@
  
  void
  gdk_gl_texture_quads (GdkGLContext *paint_context,
-@@ -220,6 +224,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
+@@ -216,6 +219,7 @@
                        GdkTexturedQuad *quads,
                        gboolean flip_colors)
  {
@@ -175,7 +176,7 @@
    GdkGLContextPaintData *paint_data  = gdk_gl_context_get_paint_data (paint_context);
    GdkGLContextProgram *program;
    GdkWindow *window = gdk_gl_context_get_window (paint_context);
-@@ -293,6 +298,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
+@@ -289,6 +293,7 @@
  
    glDisableVertexAttribArray (program->position_location);
    glDisableVertexAttribArray (program->uv_location);
@@ -183,15 +184,15 @@
  }
  
  /* x,y,width,height describes a rectangle in the gl render buffer
-@@ -341,6 +347,7 @@ gdk_cairo_draw_from_gl (cairo_t              *cr,
+@@ -337,6 +342,7 @@
                          int                   width,
                          int                   height)
  {
 +#ifdef HAVE_OPENGL
-   GdkGLContext *paint_context;
+   GdkGLContext *paint_context, *current_context;
    cairo_surface_t *image;
    cairo_matrix_t matrix;
-@@ -718,6 +725,7 @@ out:
+@@ -703,6 +709,7 @@
    if (clip_region)
      cairo_region_destroy (clip_region);
  
@@ -199,7 +200,7 @@
  }
  
  /* This is always called with the paint context current */
-@@ -725,6 +733,7 @@ void
+@@ -710,6 +717,7 @@
  gdk_gl_texture_from_surface (cairo_surface_t *surface,
  			     cairo_region_t  *region)
  {
@@ -207,7 +208,7 @@
    GdkGLContext *paint_context;
    cairo_surface_t *image;
    double device_x_offset, device_y_offset;
-@@ -825,4 +834,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
+@@ -810,4 +818,5 @@
  
    glDisable (GL_SCISSOR_TEST);
    glDeleteTextures (1, &texture_id);
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.38.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb
similarity index 86%
rename from poky/meta/recipes-gnome/gtk+/gtk+3_3.24.38.bb
rename to poky/meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb
index c23c46a..17e90c5 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.38.bb
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.41.bb
@@ -5,7 +5,7 @@
 SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
            file://opengl.patch \
            "
-SRC_URI[sha256sum] = "ce11decf018b25bdd8505544a4f87242854ec88be054d9ade5f3a20444dd8ee7"
+SRC_URI[sha256sum] = "47da61487af3087a94bc49296fd025ca0bc02f96ef06c556e7c8988bd651b6fa"
 
 S = "${WORKDIR}/gtk+-${PV}"
 
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc b/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
index 5886f3d..94eba30 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
+++ b/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
@@ -3,604 +3,544 @@
 # from Cargo.lock
 SRC_URI += " \
     crate://crates.io/adler/1.0.2 \
-    crate://crates.io/aho-corasick/1.0.2 \
+    crate://crates.io/aho-corasick/1.1.2 \
     crate://crates.io/android-tzdata/0.1.1 \
     crate://crates.io/android_system_properties/0.1.5 \
     crate://crates.io/anes/0.1.6 \
-    crate://crates.io/anstream/0.3.2 \
-    crate://crates.io/anstyle/1.0.1 \
-    crate://crates.io/anstyle-parse/0.2.1 \
-    crate://crates.io/anstyle-query/1.0.0 \
-    crate://crates.io/anstyle-wincon/1.0.1 \
-    crate://crates.io/anyhow/1.0.72 \
+    crate://crates.io/anstream/0.6.5 \
+    crate://crates.io/anstyle/1.0.4 \
+    crate://crates.io/anstyle-parse/0.2.3 \
+    crate://crates.io/anstyle-query/1.0.2 \
+    crate://crates.io/anstyle-wincon/3.0.2 \
+    crate://crates.io/anyhow/1.0.75 \
     crate://crates.io/approx/0.5.1 \
-    crate://crates.io/assert_cmd/2.0.11 \
-    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/assert_cmd/2.0.12 \
     crate://crates.io/autocfg/1.1.0 \
-    crate://crates.io/base-x/0.2.11 \
     crate://crates.io/bit-set/0.5.3 \
     crate://crates.io/bit-vec/0.6.3 \
     crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/bitflags/2.3.3 \
+    crate://crates.io/bitflags/2.4.1 \
     crate://crates.io/block/0.1.6 \
-    crate://crates.io/bstr/1.6.0 \
-    crate://crates.io/bumpalo/3.13.0 \
-    crate://crates.io/bytemuck/1.13.1 \
-    crate://crates.io/byteorder/1.4.3 \
-    crate://crates.io/cairo-rs/0.17.10 \
-    crate://crates.io/cairo-sys-rs/0.17.10 \
+    crate://crates.io/bstr/1.8.0 \
+    crate://crates.io/bumpalo/3.14.0 \
+    crate://crates.io/bytemuck/1.14.0 \
+    crate://crates.io/byteorder/1.5.0 \
+    crate://crates.io/cairo-rs/0.18.3 \
+    crate://crates.io/cairo-sys-rs/0.18.2 \
     crate://crates.io/cast/0.3.0 \
-    crate://crates.io/cc/1.0.79 \
-    crate://crates.io/cfg-expr/0.15.3 \
+    crate://crates.io/cc/1.0.83 \
+    crate://crates.io/cfg-expr/0.15.5 \
     crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.26 \
+    crate://crates.io/chrono/0.4.31 \
     crate://crates.io/ciborium/0.2.1 \
     crate://crates.io/ciborium-io/0.2.1 \
     crate://crates.io/ciborium-ll/0.2.1 \
-    crate://crates.io/clap/3.2.25 \
-    crate://crates.io/clap/4.3.17 \
-    crate://crates.io/clap_builder/4.3.17 \
-    crate://crates.io/clap_complete/4.3.2 \
-    crate://crates.io/clap_derive/4.3.12 \
-    crate://crates.io/clap_lex/0.2.4 \
-    crate://crates.io/clap_lex/0.5.0 \
+    crate://crates.io/clap/4.4.11 \
+    crate://crates.io/clap_builder/4.4.11 \
+    crate://crates.io/clap_complete/4.4.4 \
+    crate://crates.io/clap_derive/4.4.7 \
+    crate://crates.io/clap_lex/0.6.0 \
     crate://crates.io/colorchoice/1.0.0 \
     crate://crates.io/const-cstr/0.3.0 \
-    crate://crates.io/const_fn/0.4.9 \
-    crate://crates.io/convert_case/0.4.0 \
-    crate://crates.io/core-foundation-sys/0.8.4 \
+    crate://crates.io/core-foundation-sys/0.8.6 \
     crate://crates.io/crc32fast/1.3.2 \
-    crate://crates.io/criterion/0.4.0 \
+    crate://crates.io/criterion/0.5.1 \
     crate://crates.io/criterion-plot/0.5.0 \
-    crate://crates.io/crossbeam-channel/0.5.8 \
-    crate://crates.io/crossbeam-deque/0.8.3 \
-    crate://crates.io/crossbeam-epoch/0.9.15 \
-    crate://crates.io/crossbeam-utils/0.8.16 \
-    crate://crates.io/cssparser/0.29.6 \
+    crate://crates.io/crossbeam-deque/0.8.4 \
+    crate://crates.io/crossbeam-epoch/0.9.16 \
+    crate://crates.io/crossbeam-utils/0.8.17 \
+    crate://crates.io/cssparser/0.31.2 \
     crate://crates.io/cssparser-macros/0.6.1 \
-    crate://crates.io/data-url/0.2.0 \
+    crate://crates.io/cstr/0.2.11 \
+    crate://crates.io/data-url/0.3.1 \
+    crate://crates.io/deranged/0.3.10 \
     crate://crates.io/derive_more/0.99.17 \
     crate://crates.io/difflib/0.4.0 \
-    crate://crates.io/discard/1.0.4 \
     crate://crates.io/dlib/0.5.2 \
     crate://crates.io/doc-comment/0.3.3 \
     crate://crates.io/dtoa/1.0.9 \
     crate://crates.io/dtoa-short/0.3.4 \
-    crate://crates.io/either/1.8.1 \
-    crate://crates.io/encoding/0.2.33 \
-    crate://crates.io/encoding-index-japanese/1.20141219.5 \
-    crate://crates.io/encoding-index-korean/1.20141219.5 \
-    crate://crates.io/encoding-index-simpchinese/1.20141219.5 \
-    crate://crates.io/encoding-index-singlebyte/1.20141219.5 \
-    crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
-    crate://crates.io/encoding_index_tests/0.1.4 \
-    crate://crates.io/encoding_rs/0.8.32 \
+    crate://crates.io/either/1.9.0 \
+    crate://crates.io/encoding_rs/0.8.33 \
     crate://crates.io/equivalent/1.0.1 \
-    crate://crates.io/errno/0.3.1 \
-    crate://crates.io/errno-dragonfly/0.1.2 \
-    crate://crates.io/fastrand/2.0.0 \
-    crate://crates.io/fdeflate/0.3.0 \
-    crate://crates.io/flate2/1.0.26 \
+    crate://crates.io/errno/0.3.8 \
+    crate://crates.io/fastrand/2.0.1 \
+    crate://crates.io/fdeflate/0.3.1 \
+    crate://crates.io/flate2/1.0.28 \
     crate://crates.io/float-cmp/0.9.0 \
     crate://crates.io/fnv/1.0.7 \
-    crate://crates.io/form_urlencoded/1.2.0 \
+    crate://crates.io/form_urlencoded/1.2.1 \
     crate://crates.io/futf/0.1.5 \
-    crate://crates.io/futures-channel/0.3.28 \
-    crate://crates.io/futures-core/0.3.28 \
-    crate://crates.io/futures-executor/0.3.28 \
-    crate://crates.io/futures-io/0.3.28 \
-    crate://crates.io/futures-macro/0.3.28 \
-    crate://crates.io/futures-task/0.3.28 \
-    crate://crates.io/futures-util/0.3.28 \
+    crate://crates.io/futures-channel/0.3.29 \
+    crate://crates.io/futures-core/0.3.29 \
+    crate://crates.io/futures-executor/0.3.29 \
+    crate://crates.io/futures-io/0.3.29 \
+    crate://crates.io/futures-macro/0.3.29 \
+    crate://crates.io/futures-task/0.3.29 \
+    crate://crates.io/futures-util/0.3.29 \
     crate://crates.io/fxhash/0.2.1 \
-    crate://crates.io/gdk-pixbuf/0.17.10 \
-    crate://crates.io/gdk-pixbuf-sys/0.17.10 \
-    crate://crates.io/getrandom/0.1.16 \
-    crate://crates.io/getrandom/0.2.10 \
-    crate://crates.io/gio/0.17.10 \
-    crate://crates.io/gio-sys/0.17.10 \
-    crate://crates.io/glib/0.17.10 \
-    crate://crates.io/glib-macros/0.17.10 \
-    crate://crates.io/glib-sys/0.17.10 \
-    crate://crates.io/gobject-sys/0.17.10 \
+    crate://crates.io/gdk-pixbuf/0.18.3 \
+    crate://crates.io/gdk-pixbuf-sys/0.18.0 \
+    crate://crates.io/getrandom/0.2.11 \
+    crate://crates.io/gio/0.18.4 \
+    crate://crates.io/gio-sys/0.18.1 \
+    crate://crates.io/glib/0.18.4 \
+    crate://crates.io/glib-macros/0.18.3 \
+    crate://crates.io/glib-sys/0.18.1 \
+    crate://crates.io/gobject-sys/0.18.0 \
     crate://crates.io/half/1.8.2 \
-    crate://crates.io/hashbrown/0.12.3 \
-    crate://crates.io/hashbrown/0.14.0 \
+    crate://crates.io/hashbrown/0.14.3 \
     crate://crates.io/heck/0.4.1 \
-    crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/hermit-abi/0.3.2 \
-    crate://crates.io/iana-time-zone/0.1.57 \
+    crate://crates.io/hermit-abi/0.3.3 \
+    crate://crates.io/iana-time-zone/0.1.58 \
     crate://crates.io/iana-time-zone-haiku/0.1.2 \
-    crate://crates.io/idna/0.4.0 \
-    crate://crates.io/indexmap/1.9.3 \
-    crate://crates.io/indexmap/2.0.0 \
+    crate://crates.io/idna/0.5.0 \
+    crate://crates.io/indexmap/2.1.0 \
     crate://crates.io/is-terminal/0.4.9 \
     crate://crates.io/itertools/0.10.5 \
-    crate://crates.io/itoa/1.0.9 \
-    crate://crates.io/js-sys/0.3.64 \
+    crate://crates.io/itertools/0.11.0 \
+    crate://crates.io/itoa/1.0.10 \
+    crate://crates.io/js-sys/0.3.66 \
     crate://crates.io/language-tags/0.3.2 \
     crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.147 \
-    crate://crates.io/libloading/0.8.0 \
-    crate://crates.io/libm/0.2.7 \
+    crate://crates.io/libc/0.2.151 \
+    crate://crates.io/libloading/0.8.1 \
+    crate://crates.io/libm/0.2.8 \
     crate://crates.io/linked-hash-map/0.5.6 \
-    crate://crates.io/linux-raw-sys/0.4.3 \
+    crate://crates.io/linux-raw-sys/0.4.12 \
     crate://crates.io/locale_config/0.3.0 \
-    crate://crates.io/lock_api/0.4.10 \
-    crate://crates.io/log/0.4.19 \
-    crate://crates.io/lopdf/0.29.0 \
+    crate://crates.io/lock_api/0.4.11 \
+    crate://crates.io/log/0.4.20 \
+    crate://crates.io/lopdf/0.31.0 \
     crate://crates.io/mac/0.1.1 \
     crate://crates.io/malloc_buf/0.0.6 \
     crate://crates.io/markup5ever/0.11.0 \
     crate://crates.io/matches/0.1.10 \
-    crate://crates.io/matrixmultiply/0.3.7 \
-    crate://crates.io/memchr/2.5.0 \
+    crate://crates.io/matrixmultiply/0.3.8 \
+    crate://crates.io/md5/0.7.0 \
+    crate://crates.io/memchr/2.6.4 \
     crate://crates.io/memoffset/0.9.0 \
+    crate://crates.io/minimal-lexical/0.2.1 \
     crate://crates.io/miniz_oxide/0.7.1 \
     crate://crates.io/nalgebra/0.32.3 \
     crate://crates.io/nalgebra-macros/0.2.1 \
     crate://crates.io/new_debug_unreachable/1.0.4 \
-    crate://crates.io/nodrop/0.1.14 \
+    crate://crates.io/nom/7.1.3 \
     crate://crates.io/normalize-line-endings/0.3.0 \
-    crate://crates.io/num-complex/0.4.3 \
+    crate://crates.io/num-complex/0.4.4 \
     crate://crates.io/num-integer/0.1.45 \
     crate://crates.io/num-rational/0.4.1 \
-    crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num_cpus/1.16.0 \
+    crate://crates.io/num-traits/0.2.17 \
     crate://crates.io/objc/0.2.7 \
     crate://crates.io/objc-foundation/0.1.1 \
     crate://crates.io/objc_id/0.1.1 \
-    crate://crates.io/once_cell/1.18.0 \
+    crate://crates.io/once_cell/1.19.0 \
     crate://crates.io/oorandom/11.1.3 \
-    crate://crates.io/os_str_bytes/6.5.1 \
-    crate://crates.io/pango/0.17.10 \
-    crate://crates.io/pango-sys/0.17.10 \
-    crate://crates.io/pangocairo/0.17.10 \
-    crate://crates.io/pangocairo-sys/0.17.10 \
+    crate://crates.io/pango/0.18.3 \
+    crate://crates.io/pango-sys/0.18.0 \
+    crate://crates.io/pangocairo/0.18.0 \
+    crate://crates.io/pangocairo-sys/0.18.0 \
     crate://crates.io/parking_lot/0.12.1 \
-    crate://crates.io/parking_lot_core/0.9.8 \
+    crate://crates.io/parking_lot_core/0.9.9 \
     crate://crates.io/paste/1.0.14 \
-    crate://crates.io/percent-encoding/2.3.0 \
-    crate://crates.io/phf/0.8.0 \
+    crate://crates.io/percent-encoding/2.3.1 \
     crate://crates.io/phf/0.10.1 \
-    crate://crates.io/phf_codegen/0.8.0 \
+    crate://crates.io/phf/0.11.2 \
     crate://crates.io/phf_codegen/0.10.0 \
-    crate://crates.io/phf_generator/0.8.0 \
     crate://crates.io/phf_generator/0.10.0 \
-    crate://crates.io/phf_macros/0.10.0 \
-    crate://crates.io/phf_shared/0.8.0 \
+    crate://crates.io/phf_generator/0.11.2 \
+    crate://crates.io/phf_macros/0.11.2 \
     crate://crates.io/phf_shared/0.10.0 \
-    crate://crates.io/pin-project-lite/0.2.10 \
+    crate://crates.io/phf_shared/0.11.2 \
+    crate://crates.io/pin-project-lite/0.2.13 \
     crate://crates.io/pin-utils/0.1.0 \
     crate://crates.io/pkg-config/0.3.27 \
     crate://crates.io/plotters/0.3.5 \
     crate://crates.io/plotters-backend/0.3.5 \
     crate://crates.io/plotters-svg/0.3.5 \
-    crate://crates.io/png/0.17.9 \
-    crate://crates.io/pom/3.3.0 \
+    crate://crates.io/png/0.17.10 \
+    crate://crates.io/powerfmt/0.2.0 \
     crate://crates.io/ppv-lite86/0.2.17 \
     crate://crates.io/precomputed-hash/0.1.1 \
-    crate://crates.io/predicates/2.1.5 \
-    crate://crates.io/predicates/3.0.3 \
+    crate://crates.io/predicates/3.0.4 \
     crate://crates.io/predicates-core/1.0.6 \
     crate://crates.io/predicates-tree/1.0.9 \
-    crate://crates.io/proc-macro-crate/1.3.1 \
+    crate://crates.io/proc-macro-crate/2.0.1 \
     crate://crates.io/proc-macro-error/1.0.4 \
     crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-hack/0.5.20+deprecated \
-    crate://crates.io/proc-macro2/1.0.66 \
-    crate://crates.io/proptest/1.2.0 \
+    crate://crates.io/proc-macro2/1.0.70 \
+    crate://crates.io/proptest/1.4.0 \
     crate://crates.io/quick-error/1.2.3 \
-    crate://crates.io/quote/1.0.31 \
-    crate://crates.io/rand/0.7.3 \
+    crate://crates.io/quick-error/2.0.1 \
+    crate://crates.io/quote/1.0.33 \
     crate://crates.io/rand/0.8.5 \
-    crate://crates.io/rand_chacha/0.2.2 \
     crate://crates.io/rand_chacha/0.3.1 \
-    crate://crates.io/rand_core/0.5.1 \
     crate://crates.io/rand_core/0.6.4 \
-    crate://crates.io/rand_hc/0.2.0 \
-    crate://crates.io/rand_pcg/0.2.1 \
     crate://crates.io/rand_xorshift/0.3.0 \
     crate://crates.io/rawpointer/0.2.1 \
-    crate://crates.io/rayon/1.7.0 \
-    crate://crates.io/rayon-core/1.11.0 \
+    crate://crates.io/rayon/1.8.0 \
+    crate://crates.io/rayon-core/1.12.0 \
     crate://crates.io/rctree/0.5.0 \
-    crate://crates.io/redox_syscall/0.3.5 \
-    crate://crates.io/regex/1.9.1 \
-    crate://crates.io/regex-automata/0.3.3 \
-    crate://crates.io/regex-syntax/0.6.29 \
-    crate://crates.io/regex-syntax/0.7.4 \
-    crate://crates.io/rgb/0.8.36 \
-    crate://crates.io/rustc_version/0.2.3 \
-    crate://crates.io/rustc_version/0.4.0 \
-    crate://crates.io/rustix/0.38.4 \
+    crate://crates.io/redox_syscall/0.4.1 \
+    crate://crates.io/regex/1.10.2 \
+    crate://crates.io/regex-automata/0.4.3 \
+    crate://crates.io/regex-syntax/0.8.2 \
+    crate://crates.io/rgb/0.8.37 \
+    crate://crates.io/rustix/0.38.28 \
     crate://crates.io/rusty-fork/0.3.0 \
-    crate://crates.io/ryu/1.0.15 \
+    crate://crates.io/ryu/1.0.16 \
     crate://crates.io/safe_arch/0.7.1 \
     crate://crates.io/same-file/1.0.6 \
     crate://crates.io/scopeguard/1.2.0 \
-    crate://crates.io/selectors/0.24.0 \
-    crate://crates.io/semver/0.9.0 \
-    crate://crates.io/semver/1.0.18 \
-    crate://crates.io/semver-parser/0.7.0 \
-    crate://crates.io/serde/1.0.173 \
-    crate://crates.io/serde_derive/1.0.173 \
-    crate://crates.io/serde_json/1.0.103 \
-    crate://crates.io/serde_spanned/0.6.3 \
-    crate://crates.io/servo_arc/0.2.0 \
-    crate://crates.io/sha1/0.6.1 \
-    crate://crates.io/sha1_smol/1.0.0 \
+    crate://crates.io/selectors/0.25.0 \
+    crate://crates.io/serde/1.0.193 \
+    crate://crates.io/serde_derive/1.0.193 \
+    crate://crates.io/serde_json/1.0.108 \
+    crate://crates.io/serde_spanned/0.6.4 \
+    crate://crates.io/servo_arc/0.3.0 \
     crate://crates.io/simba/0.8.1 \
-    crate://crates.io/simd-adler32/0.3.5 \
-    crate://crates.io/siphasher/0.3.10 \
-    crate://crates.io/slab/0.4.8 \
-    crate://crates.io/smallvec/1.11.0 \
+    crate://crates.io/simd-adler32/0.3.7 \
+    crate://crates.io/siphasher/0.3.11 \
+    crate://crates.io/slab/0.4.9 \
+    crate://crates.io/smallvec/1.11.2 \
     crate://crates.io/stable_deref_trait/1.2.0 \
-    crate://crates.io/standback/0.2.17 \
-    crate://crates.io/stdweb/0.4.20 \
-    crate://crates.io/stdweb-derive/0.5.3 \
-    crate://crates.io/stdweb-internal-macros/0.2.9 \
-    crate://crates.io/stdweb-internal-runtime/0.1.5 \
     crate://crates.io/string_cache/0.8.7 \
     crate://crates.io/string_cache_codegen/0.5.2 \
     crate://crates.io/strsim/0.10.0 \
     crate://crates.io/syn/1.0.109 \
-    crate://crates.io/syn/2.0.26 \
-    crate://crates.io/system-deps/6.1.1 \
-    crate://crates.io/target-lexicon/0.12.10 \
-    crate://crates.io/tempfile/3.7.0 \
+    crate://crates.io/syn/2.0.41 \
+    crate://crates.io/system-deps/6.2.0 \
+    crate://crates.io/target-lexicon/0.12.12 \
+    crate://crates.io/tempfile/3.8.1 \
     crate://crates.io/tendril/0.4.3 \
     crate://crates.io/termtree/0.4.1 \
-    crate://crates.io/textwrap/0.16.0 \
-    crate://crates.io/thiserror/1.0.43 \
-    crate://crates.io/thiserror-impl/1.0.43 \
-    crate://crates.io/time/0.2.27 \
-    crate://crates.io/time-macros/0.1.1 \
-    crate://crates.io/time-macros-impl/0.1.2 \
+    crate://crates.io/thiserror/1.0.50 \
+    crate://crates.io/thiserror-impl/1.0.50 \
+    crate://crates.io/time/0.3.30 \
+    crate://crates.io/time-core/0.1.2 \
+    crate://crates.io/time-macros/0.2.15 \
     crate://crates.io/tinytemplate/1.2.1 \
     crate://crates.io/tinyvec/1.6.0 \
     crate://crates.io/tinyvec_macros/0.1.1 \
-    crate://crates.io/toml/0.7.6 \
+    crate://crates.io/toml/0.8.2 \
     crate://crates.io/toml_datetime/0.6.3 \
-    crate://crates.io/toml_edit/0.19.14 \
-    crate://crates.io/typenum/1.16.0 \
+    crate://crates.io/toml_edit/0.20.2 \
+    crate://crates.io/typenum/1.17.0 \
     crate://crates.io/unarray/0.1.4 \
-    crate://crates.io/unicode-bidi/0.3.13 \
-    crate://crates.io/unicode-ident/1.0.11 \
+    crate://crates.io/unicode-bidi/0.3.14 \
+    crate://crates.io/unicode-ident/1.0.12 \
     crate://crates.io/unicode-normalization/0.1.22 \
-    crate://crates.io/url/2.4.0 \
+    crate://crates.io/url/2.5.0 \
     crate://crates.io/utf-8/0.7.6 \
     crate://crates.io/utf8parse/0.2.1 \
     crate://crates.io/version-compare/0.1.1 \
     crate://crates.io/version_check/0.9.4 \
     crate://crates.io/wait-timeout/0.2.0 \
-    crate://crates.io/walkdir/2.3.3 \
-    crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
+    crate://crates.io/walkdir/2.4.0 \
     crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen/0.2.87 \
-    crate://crates.io/wasm-bindgen-backend/0.2.87 \
-    crate://crates.io/wasm-bindgen-macro/0.2.87 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.87 \
-    crate://crates.io/wasm-bindgen-shared/0.2.87 \
-    crate://crates.io/web-sys/0.3.64 \
+    crate://crates.io/wasm-bindgen/0.2.89 \
+    crate://crates.io/wasm-bindgen-backend/0.2.89 \
+    crate://crates.io/wasm-bindgen-macro/0.2.89 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.89 \
+    crate://crates.io/wasm-bindgen-shared/0.2.89 \
+    crate://crates.io/web-sys/0.3.66 \
     crate://crates.io/weezl/0.1.7 \
-    crate://crates.io/wide/0.7.11 \
+    crate://crates.io/wide/0.7.13 \
     crate://crates.io/winapi/0.3.9 \
     crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
+    crate://crates.io/winapi-util/0.1.6 \
     crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/windows/0.48.0 \
+    crate://crates.io/windows-core/0.51.1 \
     crate://crates.io/windows-sys/0.48.0 \
-    crate://crates.io/windows-targets/0.48.1 \
-    crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
-    crate://crates.io/windows_aarch64_msvc/0.48.0 \
-    crate://crates.io/windows_i686_gnu/0.48.0 \
-    crate://crates.io/windows_i686_msvc/0.48.0 \
-    crate://crates.io/windows_x86_64_gnu/0.48.0 \
-    crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
-    crate://crates.io/windows_x86_64_msvc/0.48.0 \
-    crate://crates.io/winnow/0.5.0 \
+    crate://crates.io/windows-sys/0.52.0 \
+    crate://crates.io/windows-targets/0.48.5 \
+    crate://crates.io/windows-targets/0.52.0 \
+    crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
+    crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
+    crate://crates.io/windows_aarch64_msvc/0.48.5 \
+    crate://crates.io/windows_aarch64_msvc/0.52.0 \
+    crate://crates.io/windows_i686_gnu/0.48.5 \
+    crate://crates.io/windows_i686_gnu/0.52.0 \
+    crate://crates.io/windows_i686_msvc/0.48.5 \
+    crate://crates.io/windows_i686_msvc/0.52.0 \
+    crate://crates.io/windows_x86_64_gnu/0.48.5 \
+    crate://crates.io/windows_x86_64_gnu/0.52.0 \
+    crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
+    crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
+    crate://crates.io/windows_x86_64_msvc/0.48.5 \
+    crate://crates.io/windows_x86_64_msvc/0.52.0 \
+    crate://crates.io/winnow/0.5.28 \
     crate://crates.io/xml5ever/0.17.0 \
     crate://crates.io/yeslogic-fontconfig-sys/4.0.1 \
 "
 
 SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
 SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
 SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
-SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
-SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
-SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
-SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
-SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
-SRC_URI[anyhow-1.0.72.sha256sum] = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+SRC_URI[anstream-0.6.5.sha256sum] = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
+SRC_URI[anstyle-1.0.4.sha256sum] = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+SRC_URI[anstyle-parse-0.2.3.sha256sum] = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+SRC_URI[anstyle-query-1.0.2.sha256sum] = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+SRC_URI[anstyle-wincon-3.0.2.sha256sum] = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+SRC_URI[anyhow-1.0.75.sha256sum] = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 SRC_URI[approx-0.5.1.sha256sum] = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-SRC_URI[assert_cmd-2.0.11.sha256sum] = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151"
-SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[assert_cmd-2.0.12.sha256sum] = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-SRC_URI[base-x-0.2.11.sha256sum] = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
 SRC_URI[bit-set-0.5.3.sha256sum] = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
 SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-SRC_URI[bstr-1.6.0.sha256sum] = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
-SRC_URI[bumpalo-3.13.0.sha256sum] = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-SRC_URI[bytemuck-1.13.1.sha256sum] = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
-SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-SRC_URI[cairo-rs-0.17.10.sha256sum] = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a"
-SRC_URI[cairo-sys-rs-0.17.10.sha256sum] = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1"
+SRC_URI[bstr-1.8.0.sha256sum] = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+SRC_URI[bumpalo-3.14.0.sha256sum] = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+SRC_URI[bytemuck-1.14.0.sha256sum] = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+SRC_URI[cairo-rs-0.18.3.sha256sum] = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1"
+SRC_URI[cairo-sys-rs-0.18.2.sha256sum] = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
 SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
-SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
-SRC_URI[cfg-expr-0.15.3.sha256sum] = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c"
+SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+SRC_URI[cfg-expr-0.15.5.sha256sum] = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono-0.4.26.sha256sum] = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+SRC_URI[chrono-0.4.31.sha256sum] = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
 SRC_URI[ciborium-0.2.1.sha256sum] = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
 SRC_URI[ciborium-io-0.2.1.sha256sum] = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
 SRC_URI[ciborium-ll-0.2.1.sha256sum] = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
-SRC_URI[clap-3.2.25.sha256sum] = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
-SRC_URI[clap-4.3.17.sha256sum] = "5b0827b011f6f8ab38590295339817b0d26f344aa4932c3ced71b45b0c54b4a9"
-SRC_URI[clap_builder-4.3.17.sha256sum] = "9441b403be87be858db6a23edb493e7f694761acdc3343d5a0fcaafd304cbc9e"
-SRC_URI[clap_complete-4.3.2.sha256sum] = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce"
-SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
-SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[clap-4.4.11.sha256sum] = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
+SRC_URI[clap_builder-4.4.11.sha256sum] = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
+SRC_URI[clap_complete-4.4.4.sha256sum] = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae"
+SRC_URI[clap_derive-4.4.7.sha256sum] = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+SRC_URI[clap_lex-0.6.0.sha256sum] = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 SRC_URI[const-cstr-0.3.0.sha256sum] = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
-SRC_URI[const_fn-0.4.9.sha256sum] = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
-SRC_URI[convert_case-0.4.0.sha256sum] = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-SRC_URI[criterion-0.4.0.sha256sum] = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+SRC_URI[criterion-0.5.1.sha256sum] = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
 SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
-SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-SRC_URI[crossbeam-epoch-0.9.15.sha256sum] = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
-SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-SRC_URI[cssparser-0.29.6.sha256sum] = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
+SRC_URI[crossbeam-deque-0.8.4.sha256sum] = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
+SRC_URI[crossbeam-epoch-0.9.16.sha256sum] = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa"
+SRC_URI[crossbeam-utils-0.8.17.sha256sum] = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
+SRC_URI[cssparser-0.31.2.sha256sum] = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be"
 SRC_URI[cssparser-macros-0.6.1.sha256sum] = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
-SRC_URI[data-url-0.2.0.sha256sum] = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
+SRC_URI[cstr-0.2.11.sha256sum] = "8aa998c33a6d3271e3678950a22134cd7dd27cef86dee1b611b5b14207d1d90b"
+SRC_URI[data-url-0.3.1.sha256sum] = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
+SRC_URI[deranged-0.3.10.sha256sum] = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
 SRC_URI[derive_more-0.99.17.sha256sum] = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
-SRC_URI[discard-1.0.4.sha256sum] = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
 SRC_URI[dlib-0.5.2.sha256sum] = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 SRC_URI[doc-comment-0.3.3.sha256sum] = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 SRC_URI[dtoa-1.0.9.sha256sum] = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
 SRC_URI[dtoa-short-0.3.4.sha256sum] = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
-SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
-SRC_URI[encoding-0.2.33.sha256sum] = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
-SRC_URI[encoding-index-japanese-1.20141219.5.sha256sum] = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-SRC_URI[encoding-index-korean-1.20141219.5.sha256sum] = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-SRC_URI[encoding-index-simpchinese-1.20141219.5.sha256sum] = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-SRC_URI[encoding-index-singlebyte-1.20141219.5.sha256sum] = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-SRC_URI[encoding-index-tradchinese-1.20141219.5.sha256sum] = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-SRC_URI[encoding_index_tests-0.1.4.sha256sum] = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-SRC_URI[encoding_rs-0.8.32.sha256sum] = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+SRC_URI[encoding_rs-0.8.33.sha256sum] = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-SRC_URI[fastrand-2.0.0.sha256sum] = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
-SRC_URI[fdeflate-0.3.0.sha256sum] = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
-SRC_URI[flate2-1.0.26.sha256sum] = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+SRC_URI[fdeflate-0.3.1.sha256sum] = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 SRC_URI[float-cmp-0.9.0.sha256sum] = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
 SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-SRC_URI[form_urlencoded-1.2.0.sha256sum] = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 SRC_URI[futf-0.1.5.sha256sum] = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
-SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+SRC_URI[futures-channel-0.3.29.sha256sum] = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+SRC_URI[futures-core-0.3.29.sha256sum] = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+SRC_URI[futures-executor-0.3.29.sha256sum] = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+SRC_URI[futures-io-0.3.29.sha256sum] = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+SRC_URI[futures-macro-0.3.29.sha256sum] = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+SRC_URI[futures-task-0.3.29.sha256sum] = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+SRC_URI[futures-util-0.3.29.sha256sum] = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
 SRC_URI[fxhash-0.2.1.sha256sum] = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-SRC_URI[gdk-pixbuf-0.17.10.sha256sum] = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717"
-SRC_URI[gdk-pixbuf-sys-0.17.10.sha256sum] = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb"
-SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
-SRC_URI[gio-0.17.10.sha256sum] = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a"
-SRC_URI[gio-sys-0.17.10.sha256sum] = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3"
-SRC_URI[glib-0.17.10.sha256sum] = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b"
-SRC_URI[glib-macros-0.17.10.sha256sum] = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26"
-SRC_URI[glib-sys-0.17.10.sha256sum] = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0"
-SRC_URI[gobject-sys-0.17.10.sha256sum] = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062"
+SRC_URI[gdk-pixbuf-0.18.3.sha256sum] = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c"
+SRC_URI[gdk-pixbuf-sys-0.18.0.sha256sum] = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+SRC_URI[getrandom-0.2.11.sha256sum] = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+SRC_URI[gio-0.18.4.sha256sum] = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+SRC_URI[gio-sys-0.18.1.sha256sum] = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+SRC_URI[glib-0.18.4.sha256sum] = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
+SRC_URI[glib-macros-0.18.3.sha256sum] = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
+SRC_URI[glib-sys-0.18.1.sha256sum] = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+SRC_URI[gobject-sys-0.18.0.sha256sum] = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
 SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
-SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-SRC_URI[hashbrown-0.14.0.sha256sum] = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
-SRC_URI[iana-time-zone-0.1.57.sha256sum] = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+SRC_URI[hermit-abi-0.3.3.sha256sum] = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+SRC_URI[iana-time-zone-0.1.58.sha256sum] = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
 SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-SRC_URI[idna-0.4.0.sha256sum] = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+SRC_URI[indexmap-2.1.0.sha256sum] = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-SRC_URI[js-sys-0.3.64.sha256sum] = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+SRC_URI[itoa-1.0.10.sha256sum] = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+SRC_URI[js-sys-0.3.66.sha256sum] = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 SRC_URI[language-tags-0.3.2.sha256sum] = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
 SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
-SRC_URI[libloading-0.8.0.sha256sum] = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
-SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+SRC_URI[libc-0.2.151.sha256sum] = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+SRC_URI[libloading-0.8.1.sha256sum] = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+SRC_URI[libm-0.2.8.sha256sum] = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+SRC_URI[linux-raw-sys-0.4.12.sha256sum] = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 SRC_URI[locale_config-0.3.0.sha256sum] = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
-SRC_URI[lock_api-0.4.10.sha256sum] = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
-SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
-SRC_URI[lopdf-0.29.0.sha256sum] = "de0f69c40d6dbc68ebac4bf5aec3d9978e094e22e29fcabd045acd9cec74a9dc"
+SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+SRC_URI[lopdf-0.31.0.sha256sum] = "07c8e1b6184b1b32ea5f72f572ebdc40e5da1d2921fa469947ff7c480ad1f85a"
 SRC_URI[mac-0.1.1.sha256sum] = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
 SRC_URI[markup5ever-0.11.0.sha256sum] = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 SRC_URI[matches-0.1.10.sha256sum] = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-SRC_URI[matrixmultiply-0.3.7.sha256sum] = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"
-SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[matrixmultiply-0.3.8.sha256sum] = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
+SRC_URI[md5-0.7.0.sha256sum] = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+SRC_URI[memchr-2.6.4.sha256sum] = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
 SRC_URI[nalgebra-0.32.3.sha256sum] = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa"
 SRC_URI[nalgebra-macros-0.2.1.sha256sum] = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
 SRC_URI[new_debug_unreachable-1.0.4.sha256sum] = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
-SRC_URI[nodrop-0.1.14.sha256sum] = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
-SRC_URI[num-complex-0.4.3.sha256sum] = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
+SRC_URI[num-complex-0.4.4.sha256sum] = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
 SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[num-traits-0.2.17.sha256sum] = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
 SRC_URI[objc-foundation-0.1.1.sha256sum] = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
 SRC_URI[objc_id-0.1.1.sha256sum] = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
-SRC_URI[os_str_bytes-6.5.1.sha256sum] = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
-SRC_URI[pango-0.17.10.sha256sum] = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48"
-SRC_URI[pango-sys-0.17.10.sha256sum] = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195"
-SRC_URI[pangocairo-0.17.10.sha256sum] = "86bf29cb1c2e73817944f66011fb12135e1c6d268e8e4c5cfc689101c25822cf"
-SRC_URI[pangocairo-sys-0.17.10.sha256sum] = "94dfd38d9bf8ff5f881be2107ba49fcb22090d247aa00133f8dadf96b122b97a"
+SRC_URI[pango-0.18.3.sha256sum] = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+SRC_URI[pango-sys-0.18.0.sha256sum] = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+SRC_URI[pangocairo-0.18.0.sha256sum] = "57036589a9cfcacf83f9e606d15813fc6bf03f0e9e69aa2b5e3bb85af86b38a5"
+SRC_URI[pangocairo-sys-0.18.0.sha256sum] = "fc3c8ff676a37e7a72ec1d5fc029f91c407278083d2752784ff9f5188c108833"
 SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-SRC_URI[parking_lot_core-0.9.8.sha256sum] = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
-SRC_URI[percent-encoding-2.3.0.sha256sum] = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-SRC_URI[phf-0.8.0.sha256sum] = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 SRC_URI[phf-0.10.1.sha256sum] = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
-SRC_URI[phf_codegen-0.8.0.sha256sum] = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+SRC_URI[phf-0.11.2.sha256sum] = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
 SRC_URI[phf_codegen-0.10.0.sha256sum] = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
-SRC_URI[phf_generator-0.8.0.sha256sum] = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
 SRC_URI[phf_generator-0.10.0.sha256sum] = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
-SRC_URI[phf_macros-0.10.0.sha256sum] = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
-SRC_URI[phf_shared-0.8.0.sha256sum] = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+SRC_URI[phf_generator-0.11.2.sha256sum] = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+SRC_URI[phf_macros-0.11.2.sha256sum] = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
 SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
-SRC_URI[pin-project-lite-0.2.10.sha256sum] = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+SRC_URI[phf_shared-0.11.2.sha256sum] = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 SRC_URI[plotters-0.3.5.sha256sum] = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
 SRC_URI[plotters-backend-0.3.5.sha256sum] = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
 SRC_URI[plotters-svg-0.3.5.sha256sum] = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
-SRC_URI[png-0.17.9.sha256sum] = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
-SRC_URI[pom-3.3.0.sha256sum] = "5c2d73a5fe10d458e77534589512104e5aa8ac480aa9ac30b74563274235cce4"
+SRC_URI[png-0.17.10.sha256sum] = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 SRC_URI[precomputed-hash-0.1.1.sha256sum] = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
-SRC_URI[predicates-2.1.5.sha256sum] = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
-SRC_URI[predicates-3.0.3.sha256sum] = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9"
+SRC_URI[predicates-3.0.4.sha256sum] = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
 SRC_URI[predicates-core-1.0.6.sha256sum] = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
 SRC_URI[predicates-tree-1.0.9.sha256sum] = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
-SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+SRC_URI[proc-macro-crate-2.0.1.sha256sum] = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
 SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-SRC_URI[proc-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-SRC_URI[proc-macro2-1.0.66.sha256sum] = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-SRC_URI[proptest-1.2.0.sha256sum] = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65"
+SRC_URI[proc-macro2-1.0.70.sha256sum] = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+SRC_URI[proptest-1.4.0.sha256sum] = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-SRC_URI[quote-1.0.31.sha256sum] = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
-SRC_URI[rand-0.7.3.sha256sum] = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+SRC_URI[quote-1.0.33.sha256sum] = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-SRC_URI[rand_chacha-0.2.2.sha256sum] = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-SRC_URI[rand_pcg-0.2.1.sha256sum] = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
 SRC_URI[rand_xorshift-0.3.0.sha256sum] = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
 SRC_URI[rawpointer-0.2.1.sha256sum] = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
-SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+SRC_URI[rayon-1.8.0.sha256sum] = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+SRC_URI[rayon-core-1.12.0.sha256sum] = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 SRC_URI[rctree-0.5.0.sha256sum] = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
-SRC_URI[regex-automata-0.3.3.sha256sum] = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
-SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
-SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
-SRC_URI[rgb-0.8.36.sha256sum] = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
-SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-SRC_URI[rustix-0.38.4.sha256sum] = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
+SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+SRC_URI[rgb-0.8.37.sha256sum] = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
+SRC_URI[rustix-0.38.28.sha256sum] = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
 SRC_URI[rusty-fork-0.3.0.sha256sum] = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
-SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+SRC_URI[ryu-1.0.16.sha256sum] = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 SRC_URI[safe_arch-0.7.1.sha256sum] = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-SRC_URI[selectors-0.24.0.sha256sum] = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
-SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-SRC_URI[semver-1.0.18.sha256sum] = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-SRC_URI[serde-1.0.173.sha256sum] = "e91f70896d6720bc714a4a57d22fc91f1db634680e65c8efe13323f1fa38d53f"
-SRC_URI[serde_derive-1.0.173.sha256sum] = "a6250dde8342e0232232be9ca3db7aa40aceb5a3e5dd9bddbc00d99a007cde49"
-SRC_URI[serde_json-1.0.103.sha256sum] = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
-SRC_URI[serde_spanned-0.6.3.sha256sum] = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
-SRC_URI[servo_arc-0.2.0.sha256sum] = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
-SRC_URI[sha1-0.6.1.sha256sum] = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
-SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+SRC_URI[selectors-0.25.0.sha256sum] = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
+SRC_URI[serde-1.0.193.sha256sum] = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+SRC_URI[serde_derive-1.0.193.sha256sum] = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+SRC_URI[serde_json-1.0.108.sha256sum] = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+SRC_URI[serde_spanned-0.6.4.sha256sum] = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+SRC_URI[servo_arc-0.3.0.sha256sum] = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44"
 SRC_URI[simba-0.8.1.sha256sum] = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae"
-SRC_URI[simd-adler32-0.3.5.sha256sum] = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
-SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
-SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
-SRC_URI[smallvec-1.11.0.sha256sum] = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+SRC_URI[simd-adler32-0.3.7.sha256sum] = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+SRC_URI[siphasher-0.3.11.sha256sum] = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-SRC_URI[standback-0.2.17.sha256sum] = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
-SRC_URI[stdweb-0.4.20.sha256sum] = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
-SRC_URI[stdweb-derive-0.5.3.sha256sum] = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
-SRC_URI[stdweb-internal-macros-0.2.9.sha256sum] = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
-SRC_URI[stdweb-internal-runtime-0.1.5.sha256sum] = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
 SRC_URI[string_cache-0.8.7.sha256sum] = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
 SRC_URI[string_cache_codegen-0.5.2.sha256sum] = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
 SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-SRC_URI[syn-2.0.26.sha256sum] = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
-SRC_URI[system-deps-6.1.1.sha256sum] = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
-SRC_URI[target-lexicon-0.12.10.sha256sum] = "1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e"
-SRC_URI[tempfile-3.7.0.sha256sum] = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998"
+SRC_URI[syn-2.0.41.sha256sum] = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
+SRC_URI[system-deps-6.2.0.sha256sum] = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+SRC_URI[tempfile-3.8.1.sha256sum] = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 SRC_URI[tendril-0.4.3.sha256sum] = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
 SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
-SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-SRC_URI[thiserror-1.0.43.sha256sum] = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
-SRC_URI[thiserror-impl-1.0.43.sha256sum] = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
-SRC_URI[time-0.2.27.sha256sum] = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
-SRC_URI[time-macros-0.1.1.sha256sum] = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
-SRC_URI[time-macros-impl-0.1.2.sha256sum] = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
+SRC_URI[thiserror-1.0.50.sha256sum] = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+SRC_URI[thiserror-impl-1.0.50.sha256sum] = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+SRC_URI[time-0.3.30.sha256sum] = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+SRC_URI[time-macros-0.2.15.sha256sum] = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
 SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
 SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
 SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-SRC_URI[toml-0.7.6.sha256sum] = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+SRC_URI[toml-0.8.2.sha256sum] = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
 SRC_URI[toml_datetime-0.6.3.sha256sum] = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-SRC_URI[toml_edit-0.19.14.sha256sum] = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
-SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[toml_edit-0.20.2.sha256sum] = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 SRC_URI[unarray-0.1.4.sha256sum] = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
-SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[unicode-bidi-0.3.14.sha256sum] = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-SRC_URI[url-2.4.0.sha256sum] = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 SRC_URI[version-compare-0.1.1.sha256sum] = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
 SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
-SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
-SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[wasm-bindgen-0.2.87.sha256sum] = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
-SRC_URI[wasm-bindgen-backend-0.2.87.sha256sum] = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
-SRC_URI[wasm-bindgen-macro-0.2.87.sha256sum] = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
-SRC_URI[wasm-bindgen-macro-support-0.2.87.sha256sum] = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
-SRC_URI[wasm-bindgen-shared-0.2.87.sha256sum] = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
-SRC_URI[web-sys-0.3.64.sha256sum] = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+SRC_URI[wasm-bindgen-0.2.89.sha256sum] = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+SRC_URI[wasm-bindgen-backend-0.2.89.sha256sum] = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+SRC_URI[wasm-bindgen-macro-0.2.89.sha256sum] = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+SRC_URI[wasm-bindgen-macro-support-0.2.89.sha256sum] = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+SRC_URI[wasm-bindgen-shared-0.2.89.sha256sum] = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+SRC_URI[web-sys-0.3.66.sha256sum] = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
 SRC_URI[weezl-0.1.7.sha256sum] = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-SRC_URI[wide-0.7.11.sha256sum] = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f"
+SRC_URI[wide-0.7.13.sha256sum] = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242"
 SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[windows-0.48.0.sha256sum] = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+SRC_URI[windows-core-0.51.1.sha256sum] = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
 SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
-SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-SRC_URI[winnow-0.5.0.sha256sum] = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
+SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+SRC_URI[winnow-0.5.28.sha256sum] = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2"
 SRC_URI[xml5ever-0.17.0.sha256sum] = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 SRC_URI[yeslogic-fontconfig-sys-4.0.1.sha256sum] = "ec657fd32bbcbeaef5c7bc8e10b3db95b143fab8db0a50079773dbf936fd4f73"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0001-Add-riscv32-support.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0001-Add-riscv32-support.patch
deleted file mode 100644
index 2e36eaf..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0001-Add-riscv32-support.patch
+++ /dev/null
@@ -1,1511 +0,0 @@
-From a4066c09bec2d4ec956459237e0a48501cc4780f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 8 Nov 2023 22:41:54 -0800
-Subject: [PATCH] Add riscv32 support
-
-Upstream-Status: Submitted [https://github.com/sunfishcode/linux-raw-sys/pull/95]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/riscv32/ioctl.rs | 1490 +++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 1488 insertions(+), 2 deletions(-)
-
-diff --git a/src/riscv32/ioctl.rs b/src/riscv32/ioctl.rs
-index 85bcbe8..1d97396 100644
---- a/src/riscv32/ioctl.rs
-+++ b/src/riscv32/ioctl.rs
-@@ -1,3 +1,1489 @@
--/* automatically generated by rust-bindgen 0.65.1 */
--
-+/* automatically generated by rust-bindgen 0.66.1 */
- 
-+pub const FIONREAD: u32 = 21531;
-+pub const FIONBIO: u32 = 21537;
-+pub const FIOCLEX: u32 = 21585;
-+pub const FIONCLEX: u32 = 21584;
-+pub const FIOASYNC: u32 = 21586;
-+pub const FIOQSIZE: u32 = 21600;
-+pub const TCXONC: u32 = 21514;
-+pub const TCFLSH: u32 = 21515;
-+pub const TIOCSCTTY: u32 = 21518;
-+pub const TIOCSPGRP: u32 = 21520;
-+pub const TIOCOUTQ: u32 = 21521;
-+pub const TIOCSTI: u32 = 21522;
-+pub const TIOCSWINSZ: u32 = 21524;
-+pub const TIOCMGET: u32 = 21525;
-+pub const TIOCMBIS: u32 = 21526;
-+pub const TIOCMBIC: u32 = 21527;
-+pub const TIOCMSET: u32 = 21528;
-+pub const TIOCSSOFTCAR: u32 = 21530;
-+pub const TIOCLINUX: u32 = 21532;
-+pub const TIOCCONS: u32 = 21533;
-+pub const TIOCSSERIAL: u32 = 21535;
-+pub const TIOCPKT: u32 = 21536;
-+pub const TIOCNOTTY: u32 = 21538;
-+pub const TIOCSETD: u32 = 21539;
-+pub const TIOCSBRK: u32 = 21543;
-+pub const TIOCCBRK: u32 = 21544;
-+pub const TIOCSRS485: u32 = 21551;
-+pub const TIOCSPTLCK: u32 = 1074025521;
-+pub const TIOCSIG: u32 = 1074025526;
-+pub const TIOCVHANGUP: u32 = 21559;
-+pub const TIOCSERCONFIG: u32 = 21587;
-+pub const TIOCSERGWILD: u32 = 21588;
-+pub const TIOCSERSWILD: u32 = 21589;
-+pub const TIOCSLCKTRMIOS: u32 = 21591;
-+pub const TIOCSERGSTRUCT: u32 = 21592;
-+pub const TIOCSERGETLSR: u32 = 21593;
-+pub const TIOCSERGETMULTI: u32 = 21594;
-+pub const TIOCSERSETMULTI: u32 = 21595;
-+pub const TIOCMIWAIT: u32 = 21596;
-+pub const TCGETS: u32 = 21505;
-+pub const TCGETA: u32 = 21509;
-+pub const TCSBRK: u32 = 21513;
-+pub const TCSBRKP: u32 = 21541;
-+pub const TCSETA: u32 = 21510;
-+pub const TCSETAF: u32 = 21512;
-+pub const TCSETAW: u32 = 21511;
-+pub const TIOCEXCL: u32 = 21516;
-+pub const TIOCNXCL: u32 = 21517;
-+pub const TIOCGDEV: u32 = 2147767346;
-+pub const TIOCGEXCL: u32 = 2147767360;
-+pub const TIOCGICOUNT: u32 = 21597;
-+pub const TIOCGLCKTRMIOS: u32 = 21590;
-+pub const TIOCGPGRP: u32 = 21519;
-+pub const TIOCGPKT: u32 = 2147767352;
-+pub const TIOCGPTLCK: u32 = 2147767353;
-+pub const TIOCGPTN: u32 = 2147767344;
-+pub const TIOCGPTPEER: u32 = 21569;
-+pub const TIOCGRS485: u32 = 21550;
-+pub const TIOCGSERIAL: u32 = 21534;
-+pub const TIOCGSID: u32 = 21545;
-+pub const TIOCGSOFTCAR: u32 = 21529;
-+pub const TIOCGWINSZ: u32 = 21523;
-+pub const TCGETS2: u32 = 2150388778;
-+pub const TCGETX: u32 = 21554;
-+pub const TCSETS: u32 = 21506;
-+pub const TCSETS2: u32 = 1076646955;
-+pub const TCSETSF: u32 = 21508;
-+pub const TCSETSF2: u32 = 1076646957;
-+pub const TCSETSW: u32 = 21507;
-+pub const TCSETSW2: u32 = 1076646956;
-+pub const TCSETX: u32 = 21555;
-+pub const TCSETXF: u32 = 21556;
-+pub const TCSETXW: u32 = 21557;
-+pub const TIOCGETD: u32 = 21540;
-+pub const MTIOCGET: u32 = 2150657282;
-+pub const BLKSSZGET: u32 = 4712;
-+pub const BLKPBSZGET: u32 = 4731;
-+pub const BLKROSET: u32 = 4701;
-+pub const BLKROGET: u32 = 4702;
-+pub const BLKRRPART: u32 = 4703;
-+pub const BLKGETSIZE: u32 = 4704;
-+pub const BLKFLSBUF: u32 = 4705;
-+pub const BLKRASET: u32 = 4706;
-+pub const BLKRAGET: u32 = 4707;
-+pub const BLKFRASET: u32 = 4708;
-+pub const BLKFRAGET: u32 = 4709;
-+pub const BLKSECTSET: u32 = 4710;
-+pub const BLKSECTGET: u32 = 4711;
-+pub const BLKPG: u32 = 4713;
-+pub const BLKBSZGET: u32 = 2148012656;
-+pub const BLKBSZSET: u32 = 1074270833;
-+pub const BLKGETSIZE64: u32 = 2148012658;
-+pub const BLKTRACESETUP: u32 = 3225948787;
-+pub const BLKTRACESTART: u32 = 4724;
-+pub const BLKTRACESTOP: u32 = 4725;
-+pub const BLKTRACETEARDOWN: u32 = 4726;
-+pub const BLKDISCARD: u32 = 4727;
-+pub const BLKIOMIN: u32 = 4728;
-+pub const BLKIOOPT: u32 = 4729;
-+pub const BLKALIGNOFF: u32 = 4730;
-+pub const BLKDISCARDZEROES: u32 = 4732;
-+pub const BLKSECDISCARD: u32 = 4733;
-+pub const BLKROTATIONAL: u32 = 4734;
-+pub const BLKZEROOUT: u32 = 4735;
-+pub const UFFDIO_REGISTER: u32 = 3223366144;
-+pub const UFFDIO_UNREGISTER: u32 = 2148575745;
-+pub const UFFDIO_WAKE: u32 = 2148575746;
-+pub const UFFDIO_COPY: u32 = 3223890435;
-+pub const UFFDIO_ZEROPAGE: u32 = 3223366148;
-+pub const UFFDIO_WRITEPROTECT: u32 = 3222841862;
-+pub const UFFDIO_API: u32 = 3222841919;
-+pub const NS_GET_USERNS: u32 = 46849;
-+pub const NS_GET_PARENT: u32 = 46850;
-+pub const NS_GET_NSTYPE: u32 = 46851;
-+pub const KDGETLED: u32 = 19249;
-+pub const KDSETLED: u32 = 19250;
-+pub const KDGKBLED: u32 = 19300;
-+pub const KDSKBLED: u32 = 19301;
-+pub const KDGKBTYPE: u32 = 19251;
-+pub const KDADDIO: u32 = 19252;
-+pub const KDDELIO: u32 = 19253;
-+pub const KDENABIO: u32 = 19254;
-+pub const KDDISABIO: u32 = 19255;
-+pub const KDSETMODE: u32 = 19258;
-+pub const KDGETMODE: u32 = 19259;
-+pub const KDMKTONE: u32 = 19248;
-+pub const KIOCSOUND: u32 = 19247;
-+pub const GIO_CMAP: u32 = 19312;
-+pub const PIO_CMAP: u32 = 19313;
-+pub const GIO_FONT: u32 = 19296;
-+pub const GIO_FONTX: u32 = 19307;
-+pub const PIO_FONT: u32 = 19297;
-+pub const PIO_FONTX: u32 = 19308;
-+pub const PIO_FONTRESET: u32 = 19309;
-+pub const GIO_SCRNMAP: u32 = 19264;
-+pub const GIO_UNISCRNMAP: u32 = 19305;
-+pub const PIO_SCRNMAP: u32 = 19265;
-+pub const PIO_UNISCRNMAP: u32 = 19306;
-+pub const GIO_UNIMAP: u32 = 19302;
-+pub const PIO_UNIMAP: u32 = 19303;
-+pub const PIO_UNIMAPCLR: u32 = 19304;
-+pub const KDGKBMODE: u32 = 19268;
-+pub const KDSKBMODE: u32 = 19269;
-+pub const KDGKBMETA: u32 = 19298;
-+pub const KDSKBMETA: u32 = 19299;
-+pub const KDGKBENT: u32 = 19270;
-+pub const KDSKBENT: u32 = 19271;
-+pub const KDGKBSENT: u32 = 19272;
-+pub const KDSKBSENT: u32 = 19273;
-+pub const KDGKBDIACR: u32 = 19274;
-+pub const KDGETKEYCODE: u32 = 19276;
-+pub const KDSETKEYCODE: u32 = 19277;
-+pub const KDSIGACCEPT: u32 = 19278;
-+pub const VT_OPENQRY: u32 = 22016;
-+pub const VT_GETMODE: u32 = 22017;
-+pub const VT_SETMODE: u32 = 22018;
-+pub const VT_GETSTATE: u32 = 22019;
-+pub const VT_RELDISP: u32 = 22021;
-+pub const VT_ACTIVATE: u32 = 22022;
-+pub const VT_WAITACTIVE: u32 = 22023;
-+pub const VT_DISALLOCATE: u32 = 22024;
-+pub const VT_RESIZE: u32 = 22025;
-+pub const VT_RESIZEX: u32 = 22026;
-+pub const FIOSETOWN: u32 = 35073;
-+pub const SIOCSPGRP: u32 = 35074;
-+pub const FIOGETOWN: u32 = 35075;
-+pub const SIOCGPGRP: u32 = 35076;
-+pub const SIOCATMARK: u32 = 35077;
-+pub const SIOCGSTAMP: u32 = 35078;
-+pub const TIOCINQ: u32 = 21531;
-+pub const SIOCADDRT: u32 = 35083;
-+pub const SIOCDELRT: u32 = 35084;
-+pub const SIOCGIFNAME: u32 = 35088;
-+pub const SIOCSIFLINK: u32 = 35089;
-+pub const SIOCGIFCONF: u32 = 35090;
-+pub const SIOCGIFFLAGS: u32 = 35091;
-+pub const SIOCSIFFLAGS: u32 = 35092;
-+pub const SIOCGIFADDR: u32 = 35093;
-+pub const SIOCSIFADDR: u32 = 35094;
-+pub const SIOCGIFDSTADDR: u32 = 35095;
-+pub const SIOCSIFDSTADDR: u32 = 35096;
-+pub const SIOCGIFBRDADDR: u32 = 35097;
-+pub const SIOCSIFBRDADDR: u32 = 35098;
-+pub const SIOCGIFNETMASK: u32 = 35099;
-+pub const SIOCSIFNETMASK: u32 = 35100;
-+pub const SIOCGIFMETRIC: u32 = 35101;
-+pub const SIOCSIFMETRIC: u32 = 35102;
-+pub const SIOCGIFMEM: u32 = 35103;
-+pub const SIOCSIFMEM: u32 = 35104;
-+pub const SIOCGIFMTU: u32 = 35105;
-+pub const SIOCSIFMTU: u32 = 35106;
-+pub const SIOCSIFHWADDR: u32 = 35108;
-+pub const SIOCGIFENCAP: u32 = 35109;
-+pub const SIOCSIFENCAP: u32 = 35110;
-+pub const SIOCGIFHWADDR: u32 = 35111;
-+pub const SIOCGIFSLAVE: u32 = 35113;
-+pub const SIOCSIFSLAVE: u32 = 35120;
-+pub const SIOCADDMULTI: u32 = 35121;
-+pub const SIOCDELMULTI: u32 = 35122;
-+pub const SIOCDARP: u32 = 35155;
-+pub const SIOCGARP: u32 = 35156;
-+pub const SIOCSARP: u32 = 35157;
-+pub const SIOCDRARP: u32 = 35168;
-+pub const SIOCGRARP: u32 = 35169;
-+pub const SIOCSRARP: u32 = 35170;
-+pub const SIOCGIFMAP: u32 = 35184;
-+pub const SIOCSIFMAP: u32 = 35185;
-+pub const SIOCRTMSG: u32 = 35085;
-+pub const SIOCSIFNAME: u32 = 35107;
-+pub const SIOCGIFINDEX: u32 = 35123;
-+pub const SIOGIFINDEX: u32 = 35123;
-+pub const SIOCSIFPFLAGS: u32 = 35124;
-+pub const SIOCGIFPFLAGS: u32 = 35125;
-+pub const SIOCDIFADDR: u32 = 35126;
-+pub const SIOCSIFHWBROADCAST: u32 = 35127;
-+pub const SIOCGIFCOUNT: u32 = 35128;
-+pub const SIOCGIFBR: u32 = 35136;
-+pub const SIOCSIFBR: u32 = 35137;
-+pub const SIOCGIFTXQLEN: u32 = 35138;
-+pub const SIOCSIFTXQLEN: u32 = 35139;
-+pub const SIOCADDDLCI: u32 = 35200;
-+pub const SIOCDELDLCI: u32 = 35201;
-+pub const SIOCDEVPRIVATE: u32 = 35312;
-+pub const SIOCPROTOPRIVATE: u32 = 35296;
-+pub const FIBMAP: u32 = 1;
-+pub const FIGETBSZ: u32 = 2;
-+pub const FIFREEZE: u32 = 3221510263;
-+pub const FITHAW: u32 = 3221510264;
-+pub const FITRIM: u32 = 3222820985;
-+pub const FICLONE: u32 = 1074041865;
-+pub const FICLONERANGE: u32 = 1075876877;
-+pub const FIDEDUPERANGE: u32 = 3222836278;
-+pub const FS_IOC_GETFLAGS: u32 = 2148034049;
-+pub const FS_IOC_SETFLAGS: u32 = 1074292226;
-+pub const FS_IOC_GETVERSION: u32 = 2148038145;
-+pub const FS_IOC_SETVERSION: u32 = 1074296322;
-+pub const FS_IOC_FIEMAP: u32 = 3223348747;
-+pub const FS_IOC32_GETFLAGS: u32 = 2147771905;
-+pub const FS_IOC32_SETFLAGS: u32 = 1074030082;
-+pub const FS_IOC32_GETVERSION: u32 = 2147776001;
-+pub const FS_IOC32_SETVERSION: u32 = 1074034178;
-+pub const FS_IOC_FSGETXATTR: u32 = 2149341215;
-+pub const FS_IOC_FSSETXATTR: u32 = 1075599392;
-+pub const FS_IOC_GETFSLABEL: u32 = 2164298801;
-+pub const FS_IOC_SETFSLABEL: u32 = 1090556978;
-+pub const EXT4_IOC_GETVERSION: u32 = 2148034051;
-+pub const EXT4_IOC_SETVERSION: u32 = 1074292228;
-+pub const EXT4_IOC_GETVERSION_OLD: u32 = 2148038145;
-+pub const EXT4_IOC_SETVERSION_OLD: u32 = 1074296322;
-+pub const EXT4_IOC_GETRSVSZ: u32 = 2148034053;
-+pub const EXT4_IOC_SETRSVSZ: u32 = 1074292230;
-+pub const EXT4_IOC_GROUP_EXTEND: u32 = 1074292231;
-+pub const EXT4_IOC_MIGRATE: u32 = 26121;
-+pub const EXT4_IOC_ALLOC_DA_BLKS: u32 = 26124;
-+pub const EXT4_IOC_RESIZE_FS: u32 = 1074292240;
-+pub const EXT4_IOC_SWAP_BOOT: u32 = 26129;
-+pub const EXT4_IOC_PRECACHE_EXTENTS: u32 = 26130;
-+pub const EXT4_IOC_CLEAR_ES_CACHE: u32 = 26152;
-+pub const EXT4_IOC_GETSTATE: u32 = 1074030121;
-+pub const EXT4_IOC_GET_ES_CACHE: u32 = 3223348778;
-+pub const EXT4_IOC_CHECKPOINT: u32 = 1074030123;
-+pub const EXT4_IOC_SHUTDOWN: u32 = 2147768445;
-+pub const EXT4_IOC32_GETVERSION: u32 = 2147771907;
-+pub const EXT4_IOC32_SETVERSION: u32 = 1074030084;
-+pub const EXT4_IOC32_GETRSVSZ: u32 = 2147771909;
-+pub const EXT4_IOC32_SETRSVSZ: u32 = 1074030086;
-+pub const EXT4_IOC32_GROUP_EXTEND: u32 = 1074030087;
-+pub const EXT4_IOC32_GETVERSION_OLD: u32 = 2147776001;
-+pub const EXT4_IOC32_SETVERSION_OLD: u32 = 1074034178;
-+pub const VIDIOC_SUBDEV_QUERYSTD: u32 = 2148030015;
-+pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085;
-+pub const LIRC_SET_SEND_CARRIER: u32 = 1074030867;
-+pub const AUTOFS_IOC_PROTOSUBVER: u32 = 2147783527;
-+pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400;
-+pub const FSI_SCOM_WRITE: u32 = 3223352066;
-+pub const ATM_GETCIRANGE: u32 = 1074815370;
-+pub const DMA_BUF_SET_NAME_B: u32 = 1074291201;
-+pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961;
-+pub const TUNSETPERSIST: u32 = 1074025675;
-+pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 1074554389;
-+pub const CEC_RECEIVE: u32 = 3224920326;
-+pub const MGSL_IOCGPARAMS: u32 = 2150657281;
-+pub const ENI_SETMULT: u32 = 1074815335;
-+pub const RIO_GET_EVENT_MASK: u32 = 2147773710;
-+pub const LIRC_GET_MAX_TIMEOUT: u32 = 2147772681;
-+pub const USBDEVFS_CLAIMINTERFACE: u32 = 2147767567;
-+pub const CHIOMOVE: u32 = 1075077889;
-+pub const SONYPI_IOCGBATFLAGS: u32 = 2147579399;
-+pub const BTRFS_IOC_SYNC: u32 = 37896;
-+pub const VIDIOC_TRY_FMT: u32 = 3234879040;
-+pub const LIRC_SET_REC_MODE: u32 = 1074030866;
-+pub const VIDIOC_DQEVENT: u32 = 2156418649;
-+pub const RPMSG_DESTROY_EPT_IOCTL: u32 = 46338;
-+pub const UVCIOC_CTRL_MAP: u32 = 3227546912;
-+pub const VHOST_SET_BACKEND_FEATURES: u32 = 1074310949;
-+pub const VHOST_VSOCK_SET_GUEST_CID: u32 = 1074311008;
-+pub const UI_SET_KEYBIT: u32 = 1074025829;
-+pub const LIRC_SET_REC_TIMEOUT: u32 = 1074030872;
-+pub const FS_IOC_GET_ENCRYPTION_KEY_STATUS: u32 = 3229640218;
-+pub const BTRFS_IOC_TREE_SEARCH_V2: u32 = 3228603409;
-+pub const VHOST_SET_VRING_BASE: u32 = 1074310930;
-+pub const RIO_ENABLE_DOORBELL_RANGE: u32 = 1074294025;
-+pub const VIDIOC_TRY_EXT_CTRLS: u32 = 3223344713;
-+pub const LIRC_GET_REC_MODE: u32 = 2147772674;
-+pub const PPGETTIME: u32 = 2148561045;
-+pub const BTRFS_IOC_RM_DEV: u32 = 1342215179;
-+pub const ATM_SETBACKEND: u32 = 1073897970;
-+pub const FSL_HV_IOCTL_PARTITION_START: u32 = 3222318851;
-+pub const FBIO_WAITEVENT: u32 = 18056;
-+pub const SWITCHTEC_IOCTL_PORT_TO_PFF: u32 = 3222034245;
-+pub const NVME_IOCTL_IO_CMD: u32 = 3225964099;
-+pub const IPMICTL_RECEIVE_MSG_TRUNC: u32 = 3224398091;
-+pub const FDTWADDLE: u32 = 601;
-+pub const NVME_IOCTL_SUBMIT_IO: u32 = 1076907586;
-+pub const NILFS_IOCTL_SYNC: u32 = 2148036234;
-+pub const VIDIOC_SUBDEV_S_DV_TIMINGS: u32 = 3229898327;
-+pub const ASPEED_LPC_CTRL_IOCTL_GET_SIZE: u32 = 3222319616;
-+pub const DM_DEV_STATUS: u32 = 3241737479;
-+pub const TEE_IOC_CLOSE_SESSION: u32 = 2147787781;
-+pub const NS_GETPSTAT: u32 = 3222298977;
-+pub const UI_SET_PROPBIT: u32 = 1074025838;
-+pub const TUNSETFILTEREBPF: u32 = 2147767521;
-+pub const RIO_MPORT_MAINT_COMPTAG_SET: u32 = 1074031874;
-+pub const AUTOFS_DEV_IOCTL_VERSION: u32 = 3222836081;
-+pub const WDIOC_SETOPTIONS: u32 = 2147768068;
-+pub const VHOST_SCSI_SET_ENDPOINT: u32 = 1088991040;
-+pub const MGSL_IOCGTXIDLE: u32 = 27907;
-+pub const ATM_ADDLECSADDR: u32 = 1074815374;
-+pub const FSL_HV_IOCTL_GETPROP: u32 = 3223891719;
-+pub const FDGETPRM: u32 = 2149581316;
-+pub const HIDIOCAPPLICATION: u32 = 18434;
-+pub const ENI_MEMDUMP: u32 = 1074815328;
-+pub const PTP_SYS_OFFSET2: u32 = 1128283406;
-+pub const VIDIOC_SUBDEV_G_DV_TIMINGS: u32 = 3229898328;
-+pub const DMA_BUF_SET_NAME_A: u32 = 1074029057;
-+pub const PTP_PIN_GETFUNC: u32 = 3227532550;
-+pub const PTP_SYS_OFFSET_EXTENDED: u32 = 3300932873;
-+pub const DFL_FPGA_PORT_UINT_SET_IRQ: u32 = 1074312776;
-+pub const RTC_EPOCH_READ: u32 = 2148036621;
-+pub const VIDIOC_SUBDEV_S_SELECTION: u32 = 3225441854;
-+pub const VIDIOC_QUERY_EXT_CTRL: u32 = 3236451943;
-+pub const ATM_GETLECSADDR: u32 = 1074815376;
-+pub const FSL_HV_IOCTL_PARTITION_STOP: u32 = 3221794564;
-+pub const SONET_GETDIAG: u32 = 2147770644;
-+pub const ATMMPC_DATA: u32 = 25049;
-+pub const IPMICTL_UNREGISTER_FOR_CMD_CHANS: u32 = 2148296989;
-+pub const HIDIOCGCOLLECTIONINDEX: u32 = 1075333136;
-+pub const RPMSG_CREATE_EPT_IOCTL: u32 = 1076409601;
-+pub const GPIOHANDLE_GET_LINE_VALUES_IOCTL: u32 = 3225465864;
-+pub const UI_DEV_SETUP: u32 = 1079792899;
-+pub const ISST_IF_IO_CMD: u32 = 1074331138;
-+pub const RIO_MPORT_MAINT_READ_REMOTE: u32 = 2149084423;
-+pub const VIDIOC_OMAP3ISP_HIST_CFG: u32 = 3224393412;
-+pub const BLKGETNRZONES: u32 = 2147750533;
-+pub const VIDIOC_G_MODULATOR: u32 = 3225703990;
-+pub const VBG_IOCTL_WRITE_CORE_DUMP: u32 = 3223082515;
-+pub const USBDEVFS_SETINTERFACE: u32 = 2148029700;
-+pub const PPPIOCGCHAN: u32 = 2147775543;
-+pub const EVIOCGVERSION: u32 = 2147763457;
-+pub const VHOST_NET_SET_BACKEND: u32 = 1074310960;
-+pub const USBDEVFS_REAPURBNDELAY: u32 = 1074287885;
-+pub const RNDZAPENTCNT: u32 = 20996;
-+pub const VIDIOC_G_PARM: u32 = 3234616853;
-+pub const TUNGETDEVNETNS: u32 = 21731;
-+pub const LIRC_SET_MEASURE_CARRIER_MODE: u32 = 1074030877;
-+pub const VHOST_SET_VRING_ERR: u32 = 1074310946;
-+pub const VDUSE_VQ_SETUP: u32 = 1075872020;
-+pub const AUTOFS_IOC_SETTIMEOUT: u32 = 3221787492;
-+pub const VIDIOC_S_FREQUENCY: u32 = 1076647481;
-+pub const F2FS_IOC_SEC_TRIM_FILE: u32 = 1075377428;
-+pub const FS_IOC_REMOVE_ENCRYPTION_KEY: u32 = 3225445912;
-+pub const WDIOC_GETPRETIMEOUT: u32 = 2147768073;
-+pub const USBDEVFS_DROP_PRIVILEGES: u32 = 1074025758;
-+pub const BTRFS_IOC_SNAP_CREATE_V2: u32 = 1342215191;
-+pub const VHOST_VSOCK_SET_RUNNING: u32 = 1074048865;
-+pub const STP_SET_OPTIONS: u32 = 1074275586;
-+pub const FBIO_RADEON_GET_MIRROR: u32 = 2148024323;
-+pub const IVTVFB_IOC_DMA_FRAME: u32 = 1075336896;
-+pub const IPMICTL_SEND_COMMAND: u32 = 2150131981;
-+pub const VIDIOC_G_ENC_INDEX: u32 = 2283296332;
-+pub const DFL_FPGA_FME_PORT_PR: u32 = 46720;
-+pub const CHIOSVOLTAG: u32 = 1076912914;
-+pub const ATM_SETESIF: u32 = 1074815373;
-+pub const FW_CDEV_IOC_SEND_RESPONSE: u32 = 1075323652;
-+pub const PMU_IOC_GET_MODEL: u32 = 2148024835;
-+pub const JSIOCGBTNMAP: u32 = 2214619700;
-+pub const USBDEVFS_HUB_PORTINFO: u32 = 2155894035;
-+pub const VBG_IOCTL_INTERRUPT_ALL_WAIT_FOR_EVENTS: u32 = 3222820363;
-+pub const FDCLRPRM: u32 = 577;
-+pub const BTRFS_IOC_SCRUB: u32 = 3288372251;
-+pub const USBDEVFS_DISCONNECT: u32 = 21782;
-+pub const TUNSETVNETBE: u32 = 1074025694;
-+pub const ATMTCP_REMOVE: u32 = 24975;
-+pub const VHOST_VDPA_GET_CONFIG: u32 = 2148052851;
-+pub const PPPIOCGNPMODE: u32 = 3221779532;
-+pub const FDGETDRVPRM: u32 = 2155872785;
-+pub const TUNSETVNETLE: u32 = 1074025692;
-+pub const PHN_SETREG: u32 = 1074294790;
-+pub const PPPIOCDETACH: u32 = 1074033724;
-+pub const MMTIMER_GETRES: u32 = 2148035841;
-+pub const VIDIOC_SUBDEV_ENUMSTD: u32 = 3225966105;
-+pub const PPGETFLAGS: u32 = 2147774618;
-+pub const VDUSE_DEV_GET_FEATURES: u32 = 2148040977;
-+pub const CAPI_MANUFACTURER_CMD: u32 = 3222291232;
-+pub const VIDIOC_G_TUNER: u32 = 3226752541;
-+pub const DM_TABLE_STATUS: u32 = 3241737484;
-+pub const DM_DEV_ARM_POLL: u32 = 3241737488;
-+pub const NE_CREATE_VM: u32 = 2148052512;
-+pub const MEDIA_IOC_ENUM_LINKS: u32 = 3223878658;
-+pub const F2FS_IOC_PRECACHE_EXTENTS: u32 = 62735;
-+pub const DFL_FPGA_PORT_DMA_MAP: u32 = 46659;
-+pub const MGSL_IOCGXCTRL: u32 = 27926;
-+pub const FW_CDEV_IOC_SEND_REQUEST: u32 = 1076372225;
-+pub const SONYPI_IOCGBLUE: u32 = 2147579400;
-+pub const F2FS_IOC_DECOMPRESS_FILE: u32 = 62743;
-+pub const I2OHTML: u32 = 3224398089;
-+pub const VFIO_GET_API_VERSION: u32 = 15204;
-+pub const IDT77105_GETSTATZ: u32 = 1074815283;
-+pub const I2OPARMSET: u32 = 3223873795;
-+pub const TEE_IOC_CANCEL: u32 = 2148049924;
-+pub const PTP_SYS_OFFSET_PRECISE2: u32 = 3225435409;
-+pub const DFL_FPGA_PORT_RESET: u32 = 46656;
-+pub const PPPIOCGASYNCMAP: u32 = 2147775576;
-+pub const EVIOCGKEYCODE_V2: u32 = 2150122756;
-+pub const DM_DEV_SET_GEOMETRY: u32 = 3241737487;
-+pub const HIDIOCSUSAGE: u32 = 1075333132;
-+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323664;
-+pub const PTP_EXTTS_REQUEST: u32 = 1074806018;
-+pub const SWITCHTEC_IOCTL_EVENT_CTL: u32 = 3223869251;
-+pub const WDIOC_SETPRETIMEOUT: u32 = 3221509896;
-+pub const VHOST_SCSI_CLEAR_ENDPOINT: u32 = 1088991041;
-+pub const JSIOCGAXES: u32 = 2147576337;
-+pub const HIDIOCSFLAG: u32 = 1074022415;
-+pub const PTP_PEROUT_REQUEST2: u32 = 1077427468;
-+pub const PPWDATA: u32 = 1073836166;
-+pub const PTP_CLOCK_GETCAPS: u32 = 2152742145;
-+pub const FDGETMAXERRS: u32 = 2148794894;
-+pub const TUNSETQUEUE: u32 = 1074025689;
-+pub const PTP_ENABLE_PPS: u32 = 1074019588;
-+pub const SIOCSIFATMTCP: u32 = 24960;
-+pub const CEC_ADAP_G_LOG_ADDRS: u32 = 2153537795;
-+pub const ND_IOCTL_ARS_CAP: u32 = 3223342593;
-+pub const NBD_SET_BLKSIZE: u32 = 43777;
-+pub const NBD_SET_TIMEOUT: u32 = 43785;
-+pub const VHOST_SCSI_GET_ABI_VERSION: u32 = 1074048834;
-+pub const RIO_UNMAP_INBOUND: u32 = 1074294034;
-+pub const ATM_QUERYLOOP: u32 = 1074815316;
-+pub const DFL_FPGA_GET_API_VERSION: u32 = 46592;
-+pub const USBDEVFS_WAIT_FOR_RESUME: u32 = 21795;
-+pub const FBIO_CURSOR: u32 = 3228059144;
-+pub const RNDCLEARPOOL: u32 = 20998;
-+pub const VIDIOC_QUERYSTD: u32 = 2148030015;
-+pub const DMA_BUF_IOCTL_SYNC: u32 = 1074291200;
-+pub const SCIF_RECV: u32 = 3222827783;
-+pub const PTP_PIN_GETFUNC2: u32 = 3227532559;
-+pub const FW_CDEV_IOC_ALLOCATE: u32 = 3223331586;
-+pub const CEC_ADAP_G_CAPS: u32 = 3226231040;
-+pub const VIDIOC_G_FBUF: u32 = 2150651402;
-+pub const PTP_ENABLE_PPS2: u32 = 1074019597;
-+pub const PCITEST_CLEAR_IRQ: u32 = 20496;
-+pub const IPMICTL_SET_GETS_EVENTS_CMD: u32 = 2147772688;
-+pub const BTRFS_IOC_DEVICES_READY: u32 = 2415957031;
-+pub const JSIOCGAXMAP: u32 = 2151705138;
-+pub const FW_CDEV_IOC_GET_CYCLE_TIMER: u32 = 2148541196;
-+pub const FW_CDEV_IOC_SET_ISO_CHANNELS: u32 = 1074799383;
-+pub const RTC_WIE_OFF: u32 = 28688;
-+pub const PPGETMODE: u32 = 2147774616;
-+pub const VIDIOC_DBG_G_REGISTER: u32 = 3224917584;
-+pub const PTP_SYS_OFFSET: u32 = 1128283397;
-+pub const BTRFS_IOC_SPACE_INFO: u32 = 3222311956;
-+pub const VIDIOC_SUBDEV_ENUM_FRAME_SIZE: u32 = 3225441866;
-+pub const ND_IOCTL_VENDOR: u32 = 3221769737;
-+pub const SCIF_VREADFROM: u32 = 3223876364;
-+pub const BTRFS_IOC_TRANS_START: u32 = 37894;
-+pub const INOTIFY_IOC_SETNEXTWD: u32 = 1074022656;
-+pub const SNAPSHOT_GET_IMAGE_SIZE: u32 = 2148021006;
-+pub const TUNDETACHFILTER: u32 = 1074812118;
-+pub const ND_IOCTL_CLEAR_ERROR: u32 = 3223342596;
-+pub const IOC_PR_CLEAR: u32 = 1074819277;
-+pub const SCIF_READFROM: u32 = 3223876362;
-+pub const PPPIOCGDEBUG: u32 = 2147775553;
-+pub const BLKGETZONESZ: u32 = 2147750532;
-+pub const HIDIOCGUSAGES: u32 = 3491514387;
-+pub const SONYPI_IOCGTEMP: u32 = 2147579404;
-+pub const UI_SET_MSCBIT: u32 = 1074025832;
-+pub const APM_IOC_SUSPEND: u32 = 16642;
-+pub const BTRFS_IOC_TREE_SEARCH: u32 = 3489698833;
-+pub const RTC_PLL_GET: u32 = 2149609489;
-+pub const RIO_CM_EP_GET_LIST: u32 = 3221512962;
-+pub const USBDEVFS_DISCSIGNAL: u32 = 2148553998;
-+pub const LIRC_GET_MIN_TIMEOUT: u32 = 2147772680;
-+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY: u32 = 2174244674;
-+pub const DM_TARGET_MSG: u32 = 3241737486;
-+pub const SONYPI_IOCGBAT1REM: u32 = 2147644931;
-+pub const EVIOCSFF: u32 = 1076905344;
-+pub const TUNSETGROUP: u32 = 1074025678;
-+pub const EVIOCGKEYCODE: u32 = 2148025604;
-+pub const KCOV_REMOTE_ENABLE: u32 = 1075340134;
-+pub const ND_IOCTL_GET_CONFIG_SIZE: u32 = 3222031876;
-+pub const FDEJECT: u32 = 602;
-+pub const TUNSETOFFLOAD: u32 = 1074025680;
-+pub const PPPIOCCONNECT: u32 = 1074033722;
-+pub const ATM_ADDADDR: u32 = 1074815368;
-+pub const VDUSE_DEV_INJECT_CONFIG_IRQ: u32 = 33043;
-+pub const AUTOFS_DEV_IOCTL_ASKUMOUNT: u32 = 3222836093;
-+pub const VHOST_VDPA_GET_STATUS: u32 = 2147594097;
-+pub const CCISS_PASSTHRU: u32 = 3227009547;
-+pub const MGSL_IOCCLRMODCOUNT: u32 = 27919;
-+pub const TEE_IOC_SUPPL_SEND: u32 = 2148574215;
-+pub const ATMARPD_CTRL: u32 = 25057;
-+pub const UI_ABS_SETUP: u32 = 1075598596;
-+pub const UI_DEV_DESTROY: u32 = 21762;
-+pub const BTRFS_IOC_QUOTA_CTL: u32 = 3222311976;
-+pub const RTC_AIE_ON: u32 = 28673;
-+pub const AUTOFS_IOC_EXPIRE: u32 = 2165085029;
-+pub const PPPIOCSDEBUG: u32 = 1074033728;
-+pub const GPIO_V2_LINE_SET_VALUES_IOCTL: u32 = 3222320143;
-+pub const PPPIOCSMRU: u32 = 1074033746;
-+pub const CCISS_DEREGDISK: u32 = 16908;
-+pub const UI_DEV_CREATE: u32 = 21761;
-+pub const FUSE_DEV_IOC_CLONE: u32 = 2147804416;
-+pub const BTRFS_IOC_START_SYNC: u32 = 2148045848;
-+pub const NILFS_IOCTL_DELETE_CHECKPOINT: u32 = 1074294401;
-+pub const SNAPSHOT_AVAIL_SWAP_SIZE: u32 = 2148021011;
-+pub const DM_TABLE_CLEAR: u32 = 3241737482;
-+pub const CCISS_GETINTINFO: u32 = 2148024834;
-+pub const PPPIOCSASYNCMAP: u32 = 1074033751;
-+pub const I2OEVTGET: u32 = 2154326283;
-+pub const NVME_IOCTL_RESET: u32 = 20036;
-+pub const PPYIELD: u32 = 28813;
-+pub const NVME_IOCTL_IO64_CMD: u32 = 3226488392;
-+pub const TUNSETCARRIER: u32 = 1074025698;
-+pub const DM_DEV_WAIT: u32 = 3241737480;
-+pub const RTC_WIE_ON: u32 = 28687;
-+pub const MEDIA_IOC_DEVICE_INFO: u32 = 3238034432;
-+pub const RIO_CM_CHAN_CREATE: u32 = 3221381891;
-+pub const MGSL_IOCSPARAMS: u32 = 1076915456;
-+pub const RTC_SET_TIME: u32 = 1076129802;
-+pub const VHOST_RESET_OWNER: u32 = 44802;
-+pub const IOC_OPAL_PSID_REVERT_TPR: u32 = 1091072232;
-+pub const AUTOFS_DEV_IOCTL_OPENMOUNT: u32 = 3222836084;
-+pub const UDF_GETEABLOCK: u32 = 2148035649;
-+pub const VFIO_IOMMU_MAP_DMA: u32 = 15217;
-+pub const VIDIOC_SUBSCRIBE_EVENT: u32 = 1075861082;
-+pub const HIDIOCGFLAG: u32 = 2147764238;
-+pub const HIDIOCGUCODE: u32 = 3222816781;
-+pub const VIDIOC_OMAP3ISP_AF_CFG: u32 = 3226228421;
-+pub const DM_REMOVE_ALL: u32 = 3241737473;
-+pub const ASPEED_LPC_CTRL_IOCTL_MAP: u32 = 1074835969;
-+pub const CCISS_GETFIRMVER: u32 = 2147762696;
-+pub const ND_IOCTL_ARS_START: u32 = 3223342594;
-+pub const PPPIOCSMRRU: u32 = 1074033723;
-+pub const CEC_ADAP_S_LOG_ADDRS: u32 = 3227279620;
-+pub const RPROC_GET_SHUTDOWN_ON_RELEASE: u32 = 2147792642;
-+pub const DMA_HEAP_IOCTL_ALLOC: u32 = 3222816768;
-+pub const PPSETTIME: u32 = 1074819222;
-+pub const RTC_ALM_READ: u32 = 2149871624;
-+pub const VDUSE_SET_API_VERSION: u32 = 1074299137;
-+pub const RIO_MPORT_MAINT_WRITE_REMOTE: u32 = 1075342600;
-+pub const VIDIOC_SUBDEV_S_CROP: u32 = 3224917564;
-+pub const USBDEVFS_CONNECT: u32 = 21783;
-+pub const SYNC_IOC_FILE_INFO: u32 = 3224911364;
-+pub const ATMARP_MKIP: u32 = 25058;
-+pub const VFIO_IOMMU_SPAPR_TCE_GET_INFO: u32 = 15216;
-+pub const CCISS_GETHEARTBEAT: u32 = 2147762694;
-+pub const ATM_RSTADDR: u32 = 1074815367;
-+pub const NBD_SET_SIZE: u32 = 43778;
-+pub const UDF_GETVOLIDENT: u32 = 2148035650;
-+pub const GPIO_V2_LINE_GET_VALUES_IOCTL: u32 = 3222320142;
-+pub const MGSL_IOCSTXIDLE: u32 = 27906;
-+pub const FSL_HV_IOCTL_SETPROP: u32 = 3223891720;
-+pub const BTRFS_IOC_GET_DEV_STATS: u32 = 3288896564;
-+pub const PPRSTATUS: u32 = 2147577985;
-+pub const MGSL_IOCTXENABLE: u32 = 27908;
-+pub const UDF_GETEASIZE: u32 = 2147773504;
-+pub const NVME_IOCTL_ADMIN64_CMD: u32 = 3226488391;
-+pub const VHOST_SET_OWNER: u32 = 44801;
-+pub const RIO_ALLOC_DMA: u32 = 3222826259;
-+pub const RIO_CM_CHAN_ACCEPT: u32 = 3221775111;
-+pub const I2OHRTGET: u32 = 3222825217;
-+pub const ATM_SETCIRANGE: u32 = 1074815371;
-+pub const HPET_IE_ON: u32 = 26625;
-+pub const PERF_EVENT_IOC_ID: u32 = 2148017159;
-+pub const TUNSETSNDBUF: u32 = 1074025684;
-+pub const PTP_PIN_SETFUNC: u32 = 1080048903;
-+pub const PPPIOCDISCONN: u32 = 29753;
-+pub const VIDIOC_QUERYCTRL: u32 = 3225703972;
-+pub const PPEXCL: u32 = 28815;
-+pub const PCITEST_MSI: u32 = 1074024451;
-+pub const FDWERRORCLR: u32 = 598;
-+pub const AUTOFS_IOC_FAIL: u32 = 37729;
-+pub const USBDEVFS_IOCTL: u32 = 3222295826;
-+pub const VIDIOC_S_STD: u32 = 1074288152;
-+pub const F2FS_IOC_RESIZE_FS: u32 = 1074328848;
-+pub const SONET_SETDIAG: u32 = 3221512466;
-+pub const BTRFS_IOC_DEFRAG: u32 = 1342215170;
-+pub const CCISS_GETDRIVVER: u32 = 2147762697;
-+pub const IPMICTL_GET_TIMING_PARMS_CMD: u32 = 2148034839;
-+pub const HPET_IRQFREQ: u32 = 1074292742;
-+pub const ATM_GETESI: u32 = 1074815365;
-+pub const CCISS_GETLUNINFO: u32 = 2148286993;
-+pub const AUTOFS_DEV_IOCTL_ISMOUNTPOINT: u32 = 3222836094;
-+pub const TEE_IOC_SHM_ALLOC: u32 = 3222316033;
-+pub const PERF_EVENT_IOC_SET_BPF: u32 = 1074013192;
-+pub const UDMABUF_CREATE_LIST: u32 = 1074296131;
-+pub const VHOST_SET_LOG_BASE: u32 = 1074310916;
-+pub const ZATM_GETPOOL: u32 = 1074815329;
-+pub const BR2684_SETFILT: u32 = 1075601808;
-+pub const RNDGETPOOL: u32 = 2148028930;
-+pub const PPS_GETPARAMS: u32 = 2148036769;
-+pub const IOC_PR_RESERVE: u32 = 1074819273;
-+pub const VIDIOC_TRY_DECODER_CMD: u32 = 3225966177;
-+pub const RIO_CM_CHAN_CLOSE: u32 = 1073898244;
-+pub const VIDIOC_DV_TIMINGS_CAP: u32 = 3230684772;
-+pub const IOCTL_MEI_CONNECT_CLIENT_VTAG: u32 = 3222554628;
-+pub const PMU_IOC_GET_BACKLIGHT: u32 = 2148024833;
-+pub const USBDEVFS_GET_CAPABILITIES: u32 = 2147767578;
-+pub const SCIF_WRITETO: u32 = 3223876363;
-+pub const UDF_RELOCATE_BLOCKS: u32 = 3221777475;
-+pub const FSL_HV_IOCTL_PARTITION_RESTART: u32 = 3221794561;
-+pub const CCISS_REGNEWD: u32 = 16910;
-+pub const FAT_IOCTL_SET_ATTRIBUTES: u32 = 1074033169;
-+pub const VIDIOC_CREATE_BUFS: u32 = 3238024796;
-+pub const CAPI_GET_VERSION: u32 = 3222291207;
-+pub const SWITCHTEC_IOCTL_EVENT_SUMMARY: u32 = 2228770626;
-+pub const VFIO_EEH_PE_OP: u32 = 15225;
-+pub const FW_CDEV_IOC_CREATE_ISO_CONTEXT: u32 = 3223331592;
-+pub const F2FS_IOC_RELEASE_COMPRESS_BLOCKS: u32 = 2148070674;
-+pub const NBD_SET_SIZE_BLOCKS: u32 = 43783;
-+pub const IPMI_BMC_IOCTL_SET_SMS_ATN: u32 = 45312;
-+pub const ASPEED_P2A_CTRL_IOCTL_GET_MEMORY_CONFIG: u32 = 3222319873;
-+pub const VIDIOC_S_AUDOUT: u32 = 1077171762;
-+pub const VIDIOC_S_FMT: u32 = 3234878981;
-+pub const PPPIOCATTACH: u32 = 1074033725;
-+pub const VHOST_GET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310948;
-+pub const FS_IOC_MEASURE_VERITY: u32 = 3221513862;
-+pub const CCISS_BIG_PASSTHRU: u32 = 3227533842;
-+pub const IPMICTL_SET_MY_LUN_CMD: u32 = 2147772691;
-+pub const PCITEST_LEGACY_IRQ: u32 = 20482;
-+pub const USBDEVFS_SUBMITURB: u32 = 2151175434;
-+pub const AUTOFS_IOC_READY: u32 = 37728;
-+pub const BTRFS_IOC_SEND: u32 = 1078498342;
-+pub const VIDIOC_G_EXT_CTRLS: u32 = 3223344711;
-+pub const JSIOCSBTNMAP: u32 = 1140877875;
-+pub const PPPIOCSFLAGS: u32 = 1074033753;
-+pub const NVRAM_INIT: u32 = 28736;
-+pub const RFKILL_IOCTL_NOINPUT: u32 = 20993;
-+pub const BTRFS_IOC_BALANCE: u32 = 1342215180;
-+pub const FS_IOC_GETFSMAP: u32 = 3233830971;
-+pub const IPMICTL_GET_MY_CHANNEL_LUN_CMD: u32 = 2147772699;
-+pub const STP_POLICY_ID_GET: u32 = 2148541697;
-+pub const PPSETFLAGS: u32 = 1074032795;
-+pub const CEC_ADAP_S_PHYS_ADDR: u32 = 1073897730;
-+pub const ATMTCP_CREATE: u32 = 24974;
-+pub const IPMI_BMC_IOCTL_FORCE_ABORT: u32 = 45314;
-+pub const PPPIOCGXASYNCMAP: u32 = 2149610576;
-+pub const VHOST_SET_VRING_CALL: u32 = 1074310945;
-+pub const LIRC_GET_FEATURES: u32 = 2147772672;
-+pub const GSMIOC_DISABLE_NET: u32 = 18179;
-+pub const AUTOFS_IOC_CATATONIC: u32 = 37730;
-+pub const NBD_DO_IT: u32 = 43779;
-+pub const LIRC_SET_REC_CARRIER_RANGE: u32 = 1074030879;
-+pub const IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772697;
-+pub const EVIOCSCLOCKID: u32 = 1074021792;
-+pub const USBDEVFS_FREE_STREAMS: u32 = 2148029725;
-+pub const FSI_SCOM_RESET: u32 = 1074033411;
-+pub const PMU_IOC_GRAB_BACKLIGHT: u32 = 2148024838;
-+pub const VIDIOC_SUBDEV_S_FMT: u32 = 3227014661;
-+pub const FDDEFPRM: u32 = 1075839555;
-+pub const TEE_IOC_INVOKE: u32 = 2148574211;
-+pub const USBDEVFS_BULK: u32 = 3222820098;
-+pub const SCIF_VWRITETO: u32 = 3223876365;
-+pub const SONYPI_IOCSBRT: u32 = 1073837568;
-+pub const BTRFS_IOC_FILE_EXTENT_SAME: u32 = 3222836278;
-+pub const RTC_PIE_ON: u32 = 28677;
-+pub const BTRFS_IOC_SCAN_DEV: u32 = 1342215172;
-+pub const PPPIOCXFERUNIT: u32 = 29774;
-+pub const WDIOC_GETTIMEOUT: u32 = 2147768071;
-+pub const BTRFS_IOC_SET_RECEIVED_SUBVOL: u32 = 3234370597;
-+pub const DFL_FPGA_PORT_ERR_SET_IRQ: u32 = 1074312774;
-+pub const FBIO_WAITFORVSYNC: u32 = 1074021920;
-+pub const RTC_PIE_OFF: u32 = 28678;
-+pub const EVIOCGRAB: u32 = 1074021776;
-+pub const PMU_IOC_SET_BACKLIGHT: u32 = 1074283010;
-+pub const EVIOCGREP: u32 = 2148025603;
-+pub const PERF_EVENT_IOC_MODIFY_ATTRIBUTES: u32 = 1074275339;
-+pub const UFFDIO_CONTINUE: u32 = 3223366151;
-+pub const VDUSE_GET_API_VERSION: u32 = 2148040960;
-+pub const RTC_RD_TIME: u32 = 2149871625;
-+pub const FDMSGOFF: u32 = 582;
-+pub const IPMICTL_REGISTER_FOR_CMD_CHANS: u32 = 2148296988;
-+pub const CAPI_GET_ERRCODE: u32 = 2147631905;
-+pub const PCITEST_SET_IRQTYPE: u32 = 1074024456;
-+pub const VIDIOC_SUBDEV_S_EDID: u32 = 3223868969;
-+pub const MATROXFB_SET_OUTPUT_MODE: u32 = 1074294522;
-+pub const RIO_DEV_ADD: u32 = 1075866903;
-+pub const VIDIOC_ENUM_FREQ_BANDS: u32 = 3225441893;
-+pub const FBIO_RADEON_SET_MIRROR: u32 = 1074282500;
-+pub const PCITEST_GET_IRQTYPE: u32 = 20489;
-+pub const JSIOCGVERSION: u32 = 2147772929;
-+pub const SONYPI_IOCSBLUE: u32 = 1073837577;
-+pub const SNAPSHOT_PREF_IMAGE_SIZE: u32 = 13074;
-+pub const F2FS_IOC_GET_FEATURES: u32 = 2147808524;
-+pub const SCIF_REG: u32 = 3223876360;
-+pub const NILFS_IOCTL_CLEAN_SEGMENTS: u32 = 1081634440;
-+pub const FW_CDEV_IOC_INITIATE_BUS_RESET: u32 = 1074012933;
-+pub const RIO_WAIT_FOR_ASYNC: u32 = 1074294038;
-+pub const VHOST_SET_VRING_NUM: u32 = 1074310928;
-+pub const AUTOFS_DEV_IOCTL_PROTOVER: u32 = 3222836082;
-+pub const RIO_FREE_DMA: u32 = 1074294036;
-+pub const MGSL_IOCRXENABLE: u32 = 27909;
-+pub const IOCTL_VM_SOCKETS_GET_LOCAL_CID: u32 = 1977;
-+pub const IPMICTL_SET_TIMING_PARMS_CMD: u32 = 2148034838;
-+pub const PPPIOCGL2TPSTATS: u32 = 2152231990;
-+pub const PERF_EVENT_IOC_PERIOD: u32 = 1074275332;
-+pub const PTP_PIN_SETFUNC2: u32 = 1080048912;
-+pub const CHIOEXCHANGE: u32 = 1075602178;
-+pub const NILFS_IOCTL_GET_SUINFO: u32 = 2149084804;
-+pub const CEC_DQEVENT: u32 = 3226493191;
-+pub const UI_SET_SWBIT: u32 = 1074025837;
-+pub const VHOST_VDPA_SET_CONFIG: u32 = 1074311028;
-+pub const TUNSETIFF: u32 = 1074025674;
-+pub const CHIOPOSITION: u32 = 1074553603;
-+pub const IPMICTL_SET_MAINTENANCE_MODE_CMD: u32 = 1074030879;
-+pub const BTRFS_IOC_DEFAULT_SUBVOL: u32 = 1074304019;
-+pub const RIO_UNMAP_OUTBOUND: u32 = 1076391184;
-+pub const CAPI_CLR_FLAGS: u32 = 2147762981;
-+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE: u32 = 1075323663;
-+pub const MATROXFB_GET_OUTPUT_CONNECTION: u32 = 2148036344;
-+pub const EVIOCSMASK: u32 = 1074808211;
-+pub const BTRFS_IOC_FORGET_DEV: u32 = 1342215173;
-+pub const CXL_MEM_QUERY_COMMANDS: u32 = 2148060673;
-+pub const CEC_S_MODE: u32 = 1074028809;
-+pub const MGSL_IOCSIF: u32 = 27914;
-+pub const SWITCHTEC_IOCTL_PFF_TO_PORT: u32 = 3222034244;
-+pub const PPSETMODE: u32 = 1074032768;
-+pub const VFIO_DEVICE_SET_IRQS: u32 = 15214;
-+pub const VIDIOC_PREPARE_BUF: u32 = 3227014749;
-+pub const CEC_ADAP_G_CONNECTOR_INFO: u32 = 2151964938;
-+pub const IOC_OPAL_WRITE_SHADOW_MBR: u32 = 1092645098;
-+pub const VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: u32 = 3225441867;
-+pub const UDMABUF_CREATE: u32 = 1075344706;
-+pub const SONET_CLRDIAG: u32 = 3221512467;
-+pub const PHN_SET_REG: u32 = 1074294785;
-+pub const RNDADDTOENTCNT: u32 = 1074024961;
-+pub const VBG_IOCTL_CHECK_BALLOON: u32 = 3223344657;
-+pub const VIDIOC_OMAP3ISP_STAT_REQ: u32 = 3223869126;
-+pub const PPS_FETCH: u32 = 3221778596;
-+pub const RTC_AIE_OFF: u32 = 28674;
-+pub const VFIO_GROUP_SET_CONTAINER: u32 = 15208;
-+pub const FW_CDEV_IOC_RECEIVE_PHY_PACKETS: u32 = 1074275094;
-+pub const VFIO_IOMMU_SPAPR_TCE_REMOVE: u32 = 15224;
-+pub const VFIO_IOMMU_GET_INFO: u32 = 15216;
-+pub const DM_DEV_SUSPEND: u32 = 3241737478;
-+pub const F2FS_IOC_GET_COMPRESS_OPTION: u32 = 2147677461;
-+pub const FW_CDEV_IOC_STOP_ISO: u32 = 1074012939;
-+pub const GPIO_V2_GET_LINEINFO_IOCTL: u32 = 3238048773;
-+pub const ATMMPC_CTRL: u32 = 25048;
-+pub const PPPIOCSXASYNCMAP: u32 = 1075868751;
-+pub const CHIOGSTATUS: u32 = 1074815752;
-+pub const FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE: u32 = 3222807309;
-+pub const RIO_MPORT_MAINT_PORT_IDX_GET: u32 = 2147773699;
-+pub const CAPI_SET_FLAGS: u32 = 2147762980;
-+pub const VFIO_GROUP_GET_DEVICE_FD: u32 = 15210;
-+pub const VHOST_SET_MEM_TABLE: u32 = 1074310915;
-+pub const MATROXFB_SET_OUTPUT_CONNECTION: u32 = 1074294520;
-+pub const DFL_FPGA_PORT_GET_REGION_INFO: u32 = 46658;
-+pub const VHOST_GET_FEATURES: u32 = 2148052736;
-+pub const LIRC_GET_REC_RESOLUTION: u32 = 2147772679;
-+pub const PACKET_CTRL_CMD: u32 = 3222820865;
-+pub const LIRC_SET_TRANSMITTER_MASK: u32 = 1074030871;
-+pub const BTRFS_IOC_ADD_DEV: u32 = 1342215178;
-+pub const JSIOCGCORR: u32 = 2149870114;
-+pub const VIDIOC_G_FMT: u32 = 3234878980;
-+pub const RTC_EPOCH_SET: u32 = 1074294798;
-+pub const CAPI_GET_PROFILE: u32 = 3225436937;
-+pub const ATM_GETLOOP: u32 = 1074815314;
-+pub const SCIF_LISTEN: u32 = 1074033410;
-+pub const NBD_CLEAR_QUE: u32 = 43781;
-+pub const F2FS_IOC_MOVE_RANGE: u32 = 3223385353;
-+pub const LIRC_GET_LENGTH: u32 = 2147772687;
-+pub const I8K_SET_FAN: u32 = 3221776775;
-+pub const FDSETMAXERRS: u32 = 1075053132;
-+pub const VIDIOC_SUBDEV_QUERYCAP: u32 = 2151699968;
-+pub const SNAPSHOT_SET_SWAP_AREA: u32 = 1074541325;
-+pub const LIRC_GET_REC_TIMEOUT: u32 = 2147772708;
-+pub const EVIOCRMFF: u32 = 1074021761;
-+pub const GPIO_GET_LINEEVENT_IOCTL: u32 = 3224417284;
-+pub const PPRDATA: u32 = 2147577989;
-+pub const RIO_MPORT_GET_PROPERTIES: u32 = 2150657284;
-+pub const TUNSETVNETHDRSZ: u32 = 1074025688;
-+pub const GPIO_GET_LINEINFO_IOCTL: u32 = 3225990146;
-+pub const GSMIOC_GETCONF: u32 = 2152482560;
-+pub const LIRC_GET_SEND_MODE: u32 = 2147772673;
-+pub const PPPIOCSACTIVE: u32 = 1074820166;
-+pub const SIOCGSTAMPNS_NEW: u32 = 2148567303;
-+pub const IPMICTL_RECEIVE_MSG: u32 = 3224398092;
-+pub const LIRC_SET_SEND_DUTY_CYCLE: u32 = 1074030869;
-+pub const UI_END_FF_ERASE: u32 = 1074550219;
-+pub const SWITCHTEC_IOCTL_FLASH_PART_INFO: u32 = 3222296385;
-+pub const FW_CDEV_IOC_SEND_PHY_PACKET: u32 = 3222807317;
-+pub const NBD_SET_FLAGS: u32 = 43786;
-+pub const VFIO_DEVICE_GET_REGION_INFO: u32 = 15212;
-+pub const REISERFS_IOC_UNPACK: u32 = 1074318593;
-+pub const FW_CDEV_IOC_REMOVE_DESCRIPTOR: u32 = 1074012935;
-+pub const RIO_SET_EVENT_MASK: u32 = 1074031885;
-+pub const SNAPSHOT_ALLOC_SWAP_PAGE: u32 = 2148021012;
-+pub const VDUSE_VQ_INJECT_IRQ: u32 = 1074037015;
-+pub const I2OPASSTHRU: u32 = 2148559116;
-+pub const IOC_OPAL_SET_PW: u32 = 1109422304;
-+pub const FSI_SCOM_READ: u32 = 3223352065;
-+pub const VHOST_VDPA_GET_DEVICE_ID: u32 = 2147790704;
-+pub const VIDIOC_QBUF: u32 = 3227014671;
-+pub const VIDIOC_S_TUNER: u32 = 1079268894;
-+pub const TUNGETVNETHDRSZ: u32 = 2147767511;
-+pub const CAPI_NCCI_GETUNIT: u32 = 2147762983;
-+pub const DFL_FPGA_PORT_UINT_GET_IRQ_NUM: u32 = 2147792455;
-+pub const VIDIOC_OMAP3ISP_STAT_EN: u32 = 3221771975;
-+pub const GPIO_V2_LINE_SET_CONFIG_IOCTL: u32 = 3239097357;
-+pub const TEE_IOC_VERSION: u32 = 2148312064;
-+pub const VIDIOC_LOG_STATUS: u32 = 22086;
-+pub const IPMICTL_SEND_COMMAND_SETTIME: u32 = 2150656277;
-+pub const VHOST_SET_LOG_FD: u32 = 1074048775;
-+pub const SCIF_SEND: u32 = 3222827782;
-+pub const VIDIOC_SUBDEV_G_FMT: u32 = 3227014660;
-+pub const NS_ADJBUFLEV: u32 = 24931;
-+pub const VIDIOC_DBG_S_REGISTER: u32 = 1077433935;
-+pub const NILFS_IOCTL_RESIZE: u32 = 1074294411;
-+pub const PHN_GETREG: u32 = 3221778437;
-+pub const I2OSWDL: u32 = 3224398085;
-+pub const VBG_IOCTL_VMMDEV_REQUEST_BIG: u32 = 22019;
-+pub const JSIOCGBUTTONS: u32 = 2147576338;
-+pub const VFIO_IOMMU_ENABLE: u32 = 15219;
-+pub const DM_DEV_RENAME: u32 = 3241737477;
-+pub const MEDIA_IOC_SETUP_LINK: u32 = 3224665091;
-+pub const VIDIOC_ENUMOUTPUT: u32 = 3225966128;
-+pub const STP_POLICY_ID_SET: u32 = 3222283520;
-+pub const VHOST_VDPA_SET_CONFIG_CALL: u32 = 1074048887;
-+pub const VIDIOC_SUBDEV_G_CROP: u32 = 3224917563;
-+pub const VIDIOC_S_CROP: u32 = 1075074620;
-+pub const WDIOC_GETTEMP: u32 = 2147768067;
-+pub const IOC_OPAL_ADD_USR_TO_LR: u32 = 1092120804;
-+pub const UI_SET_LEDBIT: u32 = 1074025833;
-+pub const NBD_SET_SOCK: u32 = 43776;
-+pub const BTRFS_IOC_SNAP_DESTROY_V2: u32 = 1342215231;
-+pub const HIDIOCGCOLLECTIONINFO: u32 = 3222292497;
-+pub const I2OSWUL: u32 = 3224398086;
-+pub const IOCTL_MEI_NOTIFY_GET: u32 = 2147764227;
-+pub const FDFMTTRK: u32 = 1074528840;
-+pub const MMTIMER_GETBITS: u32 = 27908;
-+pub const VIDIOC_ENUMSTD: u32 = 3225966105;
-+pub const VHOST_GET_VRING_BASE: u32 = 3221794578;
-+pub const VFIO_DEVICE_IOEVENTFD: u32 = 15220;
-+pub const ATMARP_SETENTRY: u32 = 25059;
-+pub const CCISS_REVALIDVOLS: u32 = 16906;
-+pub const MGSL_IOCLOOPTXDONE: u32 = 27913;
-+pub const RTC_VL_READ: u32 = 2147774483;
-+pub const ND_IOCTL_ARS_STATUS: u32 = 3224391171;
-+pub const RIO_DEV_DEL: u32 = 1075866904;
-+pub const VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: u32 = 3223606797;
-+pub const VIDIOC_SUBDEV_DV_TIMINGS_CAP: u32 = 3230684772;
-+pub const SONYPI_IOCSFAN: u32 = 1073837579;
-+pub const SPIOCSTYPE: u32 = 1074295041;
-+pub const IPMICTL_REGISTER_FOR_CMD: u32 = 2147641614;
-+pub const I8K_GET_FAN: u32 = 3221776774;
-+pub const TUNGETVNETBE: u32 = 2147767519;
-+pub const AUTOFS_DEV_IOCTL_FAIL: u32 = 3222836087;
-+pub const UI_END_FF_UPLOAD: u32 = 1080579529;
-+pub const TOSH_SMM: u32 = 3222828176;
-+pub const SONYPI_IOCGBAT2REM: u32 = 2147644933;
-+pub const F2FS_IOC_GET_COMPRESS_BLOCKS: u32 = 2148070673;
-+pub const PPPIOCSNPMODE: u32 = 1074295883;
-+pub const USBDEVFS_CONTROL: u32 = 3222820096;
-+pub const HIDIOCGUSAGE: u32 = 3222816779;
-+pub const TUNSETTXFILTER: u32 = 1074025681;
-+pub const TUNGETVNETLE: u32 = 2147767517;
-+pub const VIDIOC_ENUM_DV_TIMINGS: u32 = 3230946914;
-+pub const BTRFS_IOC_INO_PATHS: u32 = 3224933411;
-+pub const MGSL_IOCGXSYNC: u32 = 27924;
-+pub const HIDIOCGFIELDINFO: u32 = 3224913930;
-+pub const VIDIOC_SUBDEV_G_STD: u32 = 2148029975;
-+pub const I2OVALIDATE: u32 = 2147772680;
-+pub const VIDIOC_TRY_ENCODER_CMD: u32 = 3223869006;
-+pub const NILFS_IOCTL_GET_CPINFO: u32 = 2149084802;
-+pub const VIDIOC_G_FREQUENCY: u32 = 3224131128;
-+pub const VFAT_IOCTL_READDIR_SHORT: u32 = 2184212994;
-+pub const ND_IOCTL_GET_CONFIG_DATA: u32 = 3222031877;
-+pub const F2FS_IOC_RESERVE_COMPRESS_BLOCKS: u32 = 2148070675;
-+pub const FDGETDRVSTAT: u32 = 2152727058;
-+pub const SYNC_IOC_MERGE: u32 = 3224387075;
-+pub const VIDIOC_S_DV_TIMINGS: u32 = 3229898327;
-+pub const PPPIOCBRIDGECHAN: u32 = 1074033717;
-+pub const LIRC_SET_SEND_MODE: u32 = 1074030865;
-+pub const RIO_ENABLE_PORTWRITE_RANGE: u32 = 1074818315;
-+pub const ATM_GETTYPE: u32 = 1074815364;
-+pub const PHN_GETREGS: u32 = 3223875591;
-+pub const FDSETEMSGTRESH: u32 = 586;
-+pub const NILFS_IOCTL_GET_VINFO: u32 = 3222826630;
-+pub const MGSL_IOCWAITEVENT: u32 = 3221515528;
-+pub const CAPI_INSTALLED: u32 = 2147631906;
-+pub const EVIOCGMASK: u32 = 2148550034;
-+pub const BTRFS_IOC_SUBVOL_GETFLAGS: u32 = 2148045849;
-+pub const FSL_HV_IOCTL_PARTITION_GET_STATUS: u32 = 3222056706;
-+pub const MEDIA_IOC_ENUM_ENTITIES: u32 = 3238034433;
-+pub const GSMIOC_GETFIRST: u32 = 2147763972;
-+pub const FW_CDEV_IOC_FLUSH_ISO: u32 = 1074012952;
-+pub const VIDIOC_DBG_G_CHIP_INFO: u32 = 3234354790;
-+pub const F2FS_IOC_RELEASE_VOLATILE_WRITE: u32 = 62724;
-+pub const CAPI_GET_SERIAL: u32 = 3221504776;
-+pub const FDSETDRVPRM: u32 = 1082131088;
-+pub const IOC_OPAL_SAVE: u32 = 1092120796;
-+pub const VIDIOC_G_DV_TIMINGS: u32 = 3229898328;
-+pub const TUNSETIFINDEX: u32 = 1074025690;
-+pub const CCISS_SETINTINFO: u32 = 1074283011;
-+pub const CM_IOSDBGLVL: u32 = 1074291706;
-+pub const RTC_VL_CLR: u32 = 28692;
-+pub const VIDIOC_REQBUFS: u32 = 3222558216;
-+pub const USBDEVFS_REAPURBNDELAY32: u32 = 1074025741;
-+pub const TEE_IOC_SHM_REGISTER: u32 = 3222840329;
-+pub const USBDEVFS_SETCONFIGURATION: u32 = 2147767557;
-+pub const CCISS_GETNODENAME: u32 = 2148549124;
-+pub const VIDIOC_SUBDEV_S_FRAME_INTERVAL: u32 = 3224393238;
-+pub const VIDIOC_ENUM_FRAMESIZES: u32 = 3224131146;
-+pub const VFIO_DEVICE_PCI_HOT_RESET: u32 = 15217;
-+pub const FW_CDEV_IOC_SEND_BROADCAST_REQUEST: u32 = 1076372242;
-+pub const LPSETTIMEOUT_NEW: u32 = 1074791951;
-+pub const RIO_CM_MPORT_GET_LIST: u32 = 3221512971;
-+pub const FW_CDEV_IOC_QUEUE_ISO: u32 = 3222807305;
-+pub const FDRAWCMD: u32 = 600;
-+pub const SCIF_UNREG: u32 = 3222303497;
-+pub const PPPIOCGIDLE64: u32 = 2148561983;
-+pub const USBDEVFS_RELEASEINTERFACE: u32 = 2147767568;
-+pub const VIDIOC_CROPCAP: u32 = 3224131130;
-+pub const DFL_FPGA_PORT_GET_INFO: u32 = 46657;
-+pub const PHN_SET_REGS: u32 = 1074294787;
-+pub const ATMLEC_DATA: u32 = 25041;
-+pub const PPPOEIOCDFWD: u32 = 45313;
-+pub const VIDIOC_S_SELECTION: u32 = 3225441887;
-+pub const SNAPSHOT_FREE_SWAP_PAGES: u32 = 13065;
-+pub const BTRFS_IOC_LOGICAL_INO: u32 = 3224933412;
-+pub const VIDIOC_S_CTRL: u32 = 3221771804;
-+pub const ZATM_SETPOOL: u32 = 1074815331;
-+pub const MTIOCPOS: u32 = 2148035843;
-+pub const PMU_IOC_SLEEP: u32 = 16896;
-+pub const AUTOFS_DEV_IOCTL_PROTOSUBVER: u32 = 3222836083;
-+pub const VBG_IOCTL_CHANGE_FILTER_MASK: u32 = 3223344652;
-+pub const NILFS_IOCTL_GET_SUSTAT: u32 = 2150657669;
-+pub const VIDIOC_QUERYCAP: u32 = 2154321408;
-+pub const HPET_INFO: u32 = 2149083139;
-+pub const VIDIOC_AM437X_CCDC_CFG: u32 = 1074288321;
-+pub const DM_LIST_DEVICES: u32 = 3241737474;
-+pub const TUNSETOWNER: u32 = 1074025676;
-+pub const VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: u32 = 3223344654;
-+pub const RNDADDENTROPY: u32 = 1074287107;
-+pub const USBDEVFS_RESET: u32 = 21780;
-+pub const BTRFS_IOC_SUBVOL_CREATE: u32 = 1342215182;
-+pub const USBDEVFS_FORBID_SUSPEND: u32 = 21793;
-+pub const FDGETDRVTYP: u32 = 2148532751;
-+pub const PPWCONTROL: u32 = 1073836164;
-+pub const VIDIOC_ENUM_FRAMEINTERVALS: u32 = 3224655435;
-+pub const KCOV_DISABLE: u32 = 25445;
-+pub const IOC_OPAL_ACTIVATE_LSP: u32 = 1092120799;
-+pub const VHOST_VDPA_GET_IOVA_RANGE: u32 = 2148577144;
-+pub const PPPIOCSPASS: u32 = 1074820167;
-+pub const RIO_CM_CHAN_CONNECT: u32 = 1074291464;
-+pub const I2OSWDEL: u32 = 3224398087;
-+pub const FS_IOC_SET_ENCRYPTION_POLICY: u32 = 2148296211;
-+pub const IOC_OPAL_MBR_DONE: u32 = 1091596521;
-+pub const PPPIOCSMAXCID: u32 = 1074033745;
-+pub const PPSETPHASE: u32 = 1074032788;
-+pub const VHOST_VDPA_SET_VRING_ENABLE: u32 = 1074311029;
-+pub const USBDEVFS_GET_SPEED: u32 = 21791;
-+pub const SONET_GETFRAMING: u32 = 2147770646;
-+pub const VIDIOC_QUERYBUF: u32 = 3227014665;
-+pub const VIDIOC_S_EDID: u32 = 3223868969;
-+pub const BTRFS_IOC_QGROUP_ASSIGN: u32 = 1075352617;
-+pub const PPS_GETCAP: u32 = 2148036771;
-+pub const SNAPSHOT_PLATFORM_SUPPORT: u32 = 13071;
-+pub const LIRC_SET_REC_TIMEOUT_REPORTS: u32 = 1074030873;
-+pub const SCIF_GET_NODEIDS: u32 = 3222827790;
-+pub const NBD_DISCONNECT: u32 = 43784;
-+pub const VIDIOC_SUBDEV_G_FRAME_INTERVAL: u32 = 3224393237;
-+pub const VFIO_IOMMU_DISABLE: u32 = 15220;
-+pub const SNAPSHOT_CREATE_IMAGE: u32 = 1074017041;
-+pub const SNAPSHOT_POWER_OFF: u32 = 13072;
-+pub const APM_IOC_STANDBY: u32 = 16641;
-+pub const PPPIOCGUNIT: u32 = 2147775574;
-+pub const AUTOFS_IOC_EXPIRE_MULTI: u32 = 1074041702;
-+pub const SCIF_BIND: u32 = 3221779201;
-+pub const IOC_WATCH_QUEUE_SET_SIZE: u32 = 22368;
-+pub const NILFS_IOCTL_CHANGE_CPMODE: u32 = 1074818688;
-+pub const IOC_OPAL_LOCK_UNLOCK: u32 = 1092120797;
-+pub const F2FS_IOC_SET_PIN_FILE: u32 = 1074066701;
-+pub const PPPIOCGRASYNCMAP: u32 = 2147775573;
-+pub const MMTIMER_MMAPAVAIL: u32 = 27910;
-+pub const I2OPASSTHRU32: u32 = 2148034828;
-+pub const DFL_FPGA_FME_PORT_RELEASE: u32 = 1074050689;
-+pub const VIDIOC_SUBDEV_QUERY_DV_TIMINGS: u32 = 2156156515;
-+pub const UI_SET_SNDBIT: u32 = 1074025834;
-+pub const VIDIOC_G_AUDOUT: u32 = 2150913585;
-+pub const RTC_PLL_SET: u32 = 1075867666;
-+pub const VIDIOC_ENUMAUDIO: u32 = 3224655425;
-+pub const AUTOFS_DEV_IOCTL_TIMEOUT: u32 = 3222836090;
-+pub const VBG_IOCTL_DRIVER_VERSION_INFO: u32 = 3224131072;
-+pub const VHOST_SCSI_GET_EVENTS_MISSED: u32 = 1074048836;
-+pub const VHOST_SET_VRING_ADDR: u32 = 1076408081;
-+pub const VDUSE_CREATE_DEV: u32 = 1095794946;
-+pub const FDFLUSH: u32 = 587;
-+pub const VBG_IOCTL_WAIT_FOR_EVENTS: u32 = 3223344650;
-+pub const DFL_FPGA_FME_ERR_SET_IRQ: u32 = 1074312836;
-+pub const F2FS_IOC_GET_PIN_FILE: u32 = 2147808526;
-+pub const SCIF_CONNECT: u32 = 3221779203;
-+pub const BLKREPORTZONE: u32 = 3222278786;
-+pub const AUTOFS_IOC_ASKUMOUNT: u32 = 2147783536;
-+pub const ATM_ADDPARTY: u32 = 1074815476;
-+pub const FDSETPRM: u32 = 1075839554;
-+pub const ATM_GETSTATZ: u32 = 1074815313;
-+pub const ISST_IF_MSR_COMMAND: u32 = 3221814788;
-+pub const BTRFS_IOC_GET_SUBVOL_INFO: u32 = 2180551740;
-+pub const VIDIOC_UNSUBSCRIBE_EVENT: u32 = 1075861083;
-+pub const SEV_ISSUE_CMD: u32 = 3222295296;
-+pub const GPIOHANDLE_SET_LINE_VALUES_IOCTL: u32 = 3225465865;
-+pub const PCITEST_COPY: u32 = 1074286598;
-+pub const IPMICTL_GET_MY_ADDRESS_CMD: u32 = 2147772690;
-+pub const CHIOGPICKER: u32 = 2147771140;
-+pub const CAPI_NCCI_OPENCOUNT: u32 = 2147762982;
-+pub const CXL_MEM_SEND_COMMAND: u32 = 3224423938;
-+pub const PERF_EVENT_IOC_SET_FILTER: u32 = 1074275334;
-+pub const IOC_OPAL_REVERT_TPR: u32 = 1091072226;
-+pub const CHIOGVPARAMS: u32 = 2154849043;
-+pub const PTP_PEROUT_REQUEST: u32 = 1077427459;
-+pub const FSI_SCOM_CHECK: u32 = 2147775232;
-+pub const RTC_IRQP_READ: u32 = 2148036619;
-+pub const RIO_MPORT_MAINT_READ_LOCAL: u32 = 2149084421;
-+pub const HIDIOCGRDESCSIZE: u32 = 2147764225;
-+pub const UI_GET_VERSION: u32 = 2147767597;
-+pub const NILFS_IOCTL_GET_CPSTAT: u32 = 2149084803;
-+pub const CCISS_GETBUSTYPES: u32 = 2147762695;
-+pub const VFIO_IOMMU_SPAPR_TCE_CREATE: u32 = 15223;
-+pub const VIDIOC_EXPBUF: u32 = 3225441808;
-+pub const UI_SET_RELBIT: u32 = 1074025830;
-+pub const VFIO_SET_IOMMU: u32 = 15206;
-+pub const VIDIOC_S_MODULATOR: u32 = 1078220343;
-+pub const TUNGETFILTER: u32 = 2148553947;
-+pub const MEYEIOC_SYNC: u32 = 3221518019;
-+pub const CCISS_SETNODENAME: u32 = 1074807301;
-+pub const FBIO_GETCONTROL2: u32 = 2148025993;
-+pub const TUNSETDEBUG: u32 = 1074025673;
-+pub const DM_DEV_REMOVE: u32 = 3241737476;
-+pub const HIDIOCSUSAGES: u32 = 1344030740;
-+pub const FS_IOC_ADD_ENCRYPTION_KEY: u32 = 3226494487;
-+pub const FBIOGET_VBLANK: u32 = 2149598738;
-+pub const ATM_GETSTAT: u32 = 1074815312;
-+pub const VIDIOC_G_JPEGCOMP: u32 = 2156680765;
-+pub const TUNATTACHFILTER: u32 = 1074812117;
-+pub const UI_SET_ABSBIT: u32 = 1074025831;
-+pub const DFL_FPGA_PORT_ERR_GET_IRQ_NUM: u32 = 2147792453;
-+pub const USBDEVFS_REAPURB32: u32 = 1074025740;
-+pub const BTRFS_IOC_TRANS_END: u32 = 37895;
-+pub const CAPI_REGISTER: u32 = 1074545409;
-+pub const F2FS_IOC_COMPRESS_FILE: u32 = 62744;
-+pub const USBDEVFS_DISCARDURB: u32 = 21771;
-+pub const HE_GET_REG: u32 = 1074815328;
-+pub const ATM_SETLOOP: u32 = 1074815315;
-+pub const ATMSIGD_CTRL: u32 = 25072;
-+pub const CIOC_KERNEL_VERSION: u32 = 3221775114;
-+pub const BTRFS_IOC_CLONE_RANGE: u32 = 1075876877;
-+pub const SNAPSHOT_UNFREEZE: u32 = 13058;
-+pub const F2FS_IOC_START_VOLATILE_WRITE: u32 = 62723;
-+pub const PMU_IOC_HAS_ADB: u32 = 2148024836;
-+pub const I2OGETIOPS: u32 = 2149607680;
-+pub const VIDIOC_S_FBUF: u32 = 1076909579;
-+pub const PPRCONTROL: u32 = 2147577987;
-+pub const CHIOSPICKER: u32 = 1074029317;
-+pub const VFIO_IOMMU_SPAPR_REGISTER_MEMORY: u32 = 15221;
-+pub const TUNGETSNDBUF: u32 = 2147767507;
-+pub const GSMIOC_SETCONF: u32 = 1078740737;
-+pub const IOC_PR_PREEMPT: u32 = 1075343563;
-+pub const KCOV_INIT_TRACE: u32 = 2148033281;
-+pub const SONYPI_IOCGBAT1CAP: u32 = 2147644930;
-+pub const SWITCHTEC_IOCTL_FLASH_INFO: u32 = 2148554560;
-+pub const MTIOCTOP: u32 = 1074294017;
-+pub const VHOST_VDPA_SET_STATUS: u32 = 1073852274;
-+pub const VHOST_SCSI_SET_EVENTS_MISSED: u32 = 1074048835;
-+pub const VFIO_IOMMU_DIRTY_PAGES: u32 = 15221;
-+pub const BTRFS_IOC_SCRUB_PROGRESS: u32 = 3288372253;
-+pub const PPPIOCGMRU: u32 = 2147775571;
-+pub const BTRFS_IOC_DEV_REPLACE: u32 = 3391657013;
-+pub const PPPIOCGFLAGS: u32 = 2147775578;
-+pub const NILFS_IOCTL_SET_SUINFO: u32 = 1075342989;
-+pub const FW_CDEV_IOC_GET_CYCLE_TIMER2: u32 = 3222807316;
-+pub const ATM_DELLECSADDR: u32 = 1074815375;
-+pub const FW_CDEV_IOC_GET_SPEED: u32 = 8977;
-+pub const PPPIOCGIDLE32: u32 = 2148037695;
-+pub const VFIO_DEVICE_RESET: u32 = 15215;
-+pub const GPIO_GET_LINEINFO_UNWATCH_IOCTL: u32 = 3221533708;
-+pub const WDIOC_GETSTATUS: u32 = 2147768065;
-+pub const BTRFS_IOC_SET_FEATURES: u32 = 1076925497;
-+pub const IOCTL_MEI_CONNECT_CLIENT: u32 = 3222292481;
-+pub const VIDIOC_OMAP3ISP_AEWB_CFG: u32 = 3223344835;
-+pub const PCITEST_READ: u32 = 1074286597;
-+pub const VFIO_GROUP_GET_STATUS: u32 = 15207;
-+pub const MATROXFB_GET_ALL_OUTPUTS: u32 = 2148036347;
-+pub const USBDEVFS_CLEAR_HALT: u32 = 2147767573;
-+pub const VIDIOC_DECODER_CMD: u32 = 3225966176;
-+pub const VIDIOC_G_AUDIO: u32 = 2150913569;
-+pub const CCISS_RESCANDISK: u32 = 16912;
-+pub const RIO_DISABLE_PORTWRITE_RANGE: u32 = 1074818316;
-+pub const IOC_OPAL_SECURE_ERASE_LR: u32 = 1091596519;
-+pub const USBDEVFS_REAPURB: u32 = 1074287884;
-+pub const DFL_FPGA_CHECK_EXTENSION: u32 = 46593;
-+pub const AUTOFS_IOC_PROTOVER: u32 = 2147783523;
-+pub const FSL_HV_IOCTL_MEMCPY: u32 = 3223891717;
-+pub const BTRFS_IOC_GET_FEATURES: u32 = 2149094457;
-+pub const PCITEST_MSIX: u32 = 1074024455;
-+pub const BTRFS_IOC_DEFRAG_RANGE: u32 = 1076925456;
-+pub const UI_BEGIN_FF_ERASE: u32 = 3222033866;
-+pub const DM_GET_TARGET_VERSION: u32 = 3241737489;
-+pub const PPPIOCGIDLE: u32 = 2148561983;
-+pub const NVRAM_SETCKS: u32 = 28737;
-+pub const WDIOC_GETSUPPORT: u32 = 2150127360;
-+pub const GSMIOC_ENABLE_NET: u32 = 1077167874;
-+pub const GPIO_GET_CHIPINFO_IOCTL: u32 = 2151986177;
-+pub const NE_ADD_VCPU: u32 = 3221532193;
-+pub const EVIOCSKEYCODE_V2: u32 = 1076380932;
-+pub const PTP_SYS_OFFSET_EXTENDED2: u32 = 3300932882;
-+pub const SCIF_FENCE_WAIT: u32 = 3221517072;
-+pub const RIO_TRANSFER: u32 = 3222826261;
-+pub const FSL_HV_IOCTL_DOORBELL: u32 = 3221794566;
-+pub const RIO_MPORT_MAINT_WRITE_LOCAL: u32 = 1075342598;
-+pub const I2OEVTREG: u32 = 1074555146;
-+pub const I2OPARMGET: u32 = 3223873796;
-+pub const EVIOCGID: u32 = 2148025602;
-+pub const BTRFS_IOC_QGROUP_CREATE: u32 = 1074828330;
-+pub const AUTOFS_DEV_IOCTL_SETPIPEFD: u32 = 3222836088;
-+pub const VIDIOC_S_PARM: u32 = 3234616854;
-+pub const TUNSETSTEERINGEBPF: u32 = 2147767520;
-+pub const ATM_GETNAMES: u32 = 1074815363;
-+pub const VIDIOC_QUERYMENU: u32 = 3224131109;
-+pub const DFL_FPGA_PORT_DMA_UNMAP: u32 = 46660;
-+pub const I2OLCTGET: u32 = 3222825218;
-+pub const FS_IOC_GET_ENCRYPTION_PWSALT: u32 = 1074816532;
-+pub const NS_SETBUFLEV: u32 = 1074815330;
-+pub const BLKCLOSEZONE: u32 = 1074795143;
-+pub const SONET_GETFRSENSE: u32 = 2147901719;
-+pub const UI_SET_EVBIT: u32 = 1074025828;
-+pub const DM_LIST_VERSIONS: u32 = 3241737485;
-+pub const HIDIOCGSTRING: u32 = 2164541444;
-+pub const PPPIOCATTCHAN: u32 = 1074033720;
-+pub const VDUSE_DEV_SET_CONFIG: u32 = 1074299154;
-+pub const TUNGETFEATURES: u32 = 2147767503;
-+pub const VFIO_GROUP_UNSET_CONTAINER: u32 = 15209;
-+pub const IPMICTL_SET_MY_ADDRESS_CMD: u32 = 2147772689;
-+pub const CCISS_REGNEWDISK: u32 = 1074020877;
-+pub const VIDIOC_QUERY_DV_TIMINGS: u32 = 2156156515;
-+pub const PHN_SETREGS: u32 = 1076391944;
-+pub const FAT_IOCTL_GET_ATTRIBUTES: u32 = 2147774992;
-+pub const FSL_MC_SEND_MC_COMMAND: u32 = 3225440992;
-+pub const TUNGETIFF: u32 = 2147767506;
-+pub const PTP_CLOCK_GETCAPS2: u32 = 2152742154;
-+pub const BTRFS_IOC_RESIZE: u32 = 1342215171;
-+pub const VHOST_SET_VRING_ENDIAN: u32 = 1074310931;
-+pub const PPS_KC_BIND: u32 = 1074294949;
-+pub const F2FS_IOC_WRITE_CHECKPOINT: u32 = 62727;
-+pub const UI_SET_FFBIT: u32 = 1074025835;
-+pub const IPMICTL_GET_MY_LUN_CMD: u32 = 2147772692;
-+pub const CEC_ADAP_G_PHYS_ADDR: u32 = 2147639553;
-+pub const CEC_G_MODE: u32 = 2147770632;
-+pub const USBDEVFS_RESETEP: u32 = 2147767555;
-+pub const MEDIA_REQUEST_IOC_QUEUE: u32 = 31872;
-+pub const USBDEVFS_ALLOC_STREAMS: u32 = 2148029724;
-+pub const MGSL_IOCSXCTRL: u32 = 27925;
-+pub const MEDIA_IOC_G_TOPOLOGY: u32 = 3225975812;
-+pub const PPPIOCUNBRIDGECHAN: u32 = 29748;
-+pub const F2FS_IOC_COMMIT_ATOMIC_WRITE: u32 = 62722;
-+pub const ISST_IF_GET_PLATFORM_INFO: u32 = 2148072960;
-+pub const SCIF_FENCE_MARK: u32 = 3222303503;
-+pub const USBDEVFS_RELEASE_PORT: u32 = 2147767577;
-+pub const VFIO_CHECK_EXTENSION: u32 = 15205;
-+pub const BTRFS_IOC_QGROUP_LIMIT: u32 = 2150667307;
-+pub const FAT_IOCTL_GET_VOLUME_ID: u32 = 2147774995;
-+pub const UI_SET_PHYS: u32 = 1074287980;
-+pub const FDWERRORGET: u32 = 2150105623;
-+pub const VIDIOC_SUBDEV_G_EDID: u32 = 3223868968;
-+pub const MGSL_IOCGSTATS: u32 = 27911;
-+pub const RPROC_SET_SHUTDOWN_ON_RELEASE: u32 = 1074050817;
-+pub const SIOCGSTAMP_NEW: u32 = 2148567302;
-+pub const RTC_WKALM_RD: u32 = 2150133776;
-+pub const PHN_GET_REG: u32 = 3221778432;
-+pub const DELL_WMI_SMBIOS_CMD: u32 = 3224655616;
-+pub const PHN_NOT_OH: u32 = 28676;
-+pub const PPGETMODES: u32 = 2147774615;
-+pub const CHIOGPARAMS: u32 = 2148819718;
-+pub const VFIO_DEVICE_GET_GFX_DMABUF: u32 = 15219;
-+pub const VHOST_SET_VRING_BUSYLOOP_TIMEOUT: u32 = 1074310947;
-+pub const VIDIOC_SUBDEV_G_SELECTION: u32 = 3225441853;
-+pub const BTRFS_IOC_RM_DEV_V2: u32 = 1342215226;
-+pub const MGSL_IOCWAITGPIO: u32 = 3222301970;
-+pub const PMU_IOC_CAN_SLEEP: u32 = 2148024837;
-+pub const KCOV_ENABLE: u32 = 25444;
-+pub const BTRFS_IOC_CLONE: u32 = 1074041865;
-+pub const F2FS_IOC_DEFRAGMENT: u32 = 3222336776;
-+pub const FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE: u32 = 1074012942;
-+pub const AGPIOC_ALLOCATE: u32 = 3221766406;
-+pub const NE_SET_USER_MEMORY_REGION: u32 = 1075359267;
-+pub const MGSL_IOCTXABORT: u32 = 27910;
-+pub const MGSL_IOCSGPIO: u32 = 1074818320;
-+pub const LIRC_SET_REC_CARRIER: u32 = 1074030868;
-+pub const F2FS_IOC_FLUSH_DEVICE: u32 = 1074328842;
-+pub const SNAPSHOT_ATOMIC_RESTORE: u32 = 13060;
-+pub const RTC_UIE_OFF: u32 = 28676;
-+pub const BT_BMC_IOCTL_SMS_ATN: u32 = 45312;
-+pub const NVME_IOCTL_ID: u32 = 20032;
-+pub const NE_START_ENCLAVE: u32 = 3222318628;
-+pub const VIDIOC_STREAMON: u32 = 1074026002;
-+pub const FDPOLLDRVSTAT: u32 = 2152727059;
-+pub const AUTOFS_DEV_IOCTL_READY: u32 = 3222836086;
-+pub const VIDIOC_ENUMAUDOUT: u32 = 3224655426;
-+pub const VIDIOC_SUBDEV_S_STD: u32 = 1074288152;
-+pub const WDIOC_GETTIMELEFT: u32 = 2147768074;
-+pub const ATM_GETLINKRATE: u32 = 1074815361;
-+pub const RTC_WKALM_SET: u32 = 1076391951;
-+pub const VHOST_GET_BACKEND_FEATURES: u32 = 2148052774;
-+pub const ATMARP_ENCAP: u32 = 25061;
-+pub const CAPI_GET_FLAGS: u32 = 2147762979;
-+pub const IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD: u32 = 2147772696;
-+pub const DFL_FPGA_FME_PORT_ASSIGN: u32 = 1074050690;
-+pub const NS_GET_OWNER_UID: u32 = 46852;
-+pub const VIDIOC_OVERLAY: u32 = 1074025998;
-+pub const BTRFS_IOC_WAIT_SYNC: u32 = 1074304022;
-+pub const GPIOHANDLE_SET_CONFIG_IOCTL: u32 = 3226776586;
-+pub const VHOST_GET_VRING_ENDIAN: u32 = 1074310932;
-+pub const ATM_GETADDR: u32 = 1074815366;
-+pub const PHN_GET_REGS: u32 = 3221778434;
-+pub const AUTOFS_DEV_IOCTL_REQUESTER: u32 = 3222836091;
-+pub const AUTOFS_DEV_IOCTL_EXPIRE: u32 = 3222836092;
-+pub const SNAPSHOT_S2RAM: u32 = 13067;
-+pub const JSIOCSAXMAP: u32 = 1077963313;
-+pub const F2FS_IOC_SET_COMPRESS_OPTION: u32 = 1073935638;
-+pub const VBG_IOCTL_HGCM_DISCONNECT: u32 = 3223082501;
-+pub const SCIF_FENCE_SIGNAL: u32 = 3223876369;
-+pub const VFIO_DEVICE_GET_PCI_HOT_RESET_INFO: u32 = 15216;
-+pub const VIDIOC_SUBDEV_ENUM_MBUS_CODE: u32 = 3224393218;
-+pub const MMTIMER_GETOFFSET: u32 = 27904;
-+pub const RIO_CM_CHAN_LISTEN: u32 = 1073898246;
-+pub const ATM_SETSC: u32 = 1074029041;
-+pub const F2FS_IOC_SHUTDOWN: u32 = 2147768445;
-+pub const NVME_IOCTL_RESCAN: u32 = 20038;
-+pub const BLKOPENZONE: u32 = 1074795142;
-+pub const DM_VERSION: u32 = 3241737472;
-+pub const CEC_TRANSMIT: u32 = 3224920325;
-+pub const FS_IOC_GET_ENCRYPTION_POLICY_EX: u32 = 3221841430;
-+pub const SIOCMKCLIP: u32 = 25056;
-+pub const IPMI_BMC_IOCTL_CLEAR_SMS_ATN: u32 = 45313;
-+pub const HIDIOCGVERSION: u32 = 2147764225;
-+pub const VIDIOC_S_INPUT: u32 = 3221509671;
-+pub const VIDIOC_G_CROP: u32 = 3222558267;
-+pub const LIRC_SET_WIDEBAND_RECEIVER: u32 = 1074030883;
-+pub const EVIOCGEFFECTS: u32 = 2147763588;
-+pub const UVCIOC_CTRL_QUERY: u32 = 3222304033;
-+pub const IOC_OPAL_GENERIC_TABLE_RW: u32 = 1094217963;
-+pub const FS_IOC_READ_VERITY_METADATA: u32 = 3223873159;
-+pub const ND_IOCTL_SET_CONFIG_DATA: u32 = 3221769734;
-+pub const USBDEVFS_GETDRIVER: u32 = 1090802952;
-+pub const IDT77105_GETSTAT: u32 = 1074815282;
-+pub const HIDIOCINITREPORT: u32 = 18437;
-+pub const VFIO_DEVICE_GET_INFO: u32 = 15211;
-+pub const RIO_CM_CHAN_RECEIVE: u32 = 3222299402;
-+pub const RNDGETENTCNT: u32 = 2147766784;
-+pub const PPPIOCNEWUNIT: u32 = 3221517374;
-+pub const BTRFS_IOC_INO_LOOKUP: u32 = 3489698834;
-+pub const FDRESET: u32 = 596;
-+pub const IOC_PR_REGISTER: u32 = 1075343560;
-+pub const HIDIOCSREPORT: u32 = 1074546696;
-+pub const TEE_IOC_OPEN_SESSION: u32 = 2148574210;
-+pub const TEE_IOC_SUPPL_RECV: u32 = 2148574214;
-+pub const BTRFS_IOC_BALANCE_CTL: u32 = 1074041889;
-+pub const GPIO_GET_LINEINFO_WATCH_IOCTL: u32 = 3225990155;
-+pub const HIDIOCGRAWINFO: u32 = 2148026371;
-+pub const PPPIOCSCOMPRESS: u32 = 1074820173;
-+pub const USBDEVFS_CONNECTINFO: u32 = 1074287889;
-+pub const BLKRESETZONE: u32 = 1074795139;
-+pub const CHIOINITELEM: u32 = 25361;
-+pub const NILFS_IOCTL_SET_ALLOC_RANGE: u32 = 1074818700;
-+pub const AUTOFS_DEV_IOCTL_CATATONIC: u32 = 3222836089;
-+pub const RIO_MPORT_MAINT_HDID_SET: u32 = 1073900801;
-+pub const PPGETPHASE: u32 = 2147774617;
-+pub const USBDEVFS_DISCONNECT_CLAIM: u32 = 2164806939;
-+pub const FDMSGON: u32 = 581;
-+pub const VIDIOC_G_SLICED_VBI_CAP: u32 = 3228849733;
-+pub const BTRFS_IOC_BALANCE_V2: u32 = 3288372256;
-+pub const MEDIA_REQUEST_IOC_REINIT: u32 = 31873;
-+pub const IOC_OPAL_ERASE_LR: u32 = 1091596518;
-+pub const FDFMTBEG: u32 = 583;
-+pub const RNDRESEEDCRNG: u32 = 20999;
-+pub const ISST_IF_GET_PHY_ID: u32 = 3221814785;
-+pub const TUNSETNOCSUM: u32 = 1074025672;
-+pub const SONET_GETSTAT: u32 = 2149867792;
-+pub const TFD_IOC_SET_TICKS: u32 = 1074287616;
-+pub const PPDATADIR: u32 = 1074032784;
-+pub const IOC_OPAL_ENABLE_DISABLE_MBR: u32 = 1091596517;
-+pub const GPIO_V2_GET_LINE_IOCTL: u32 = 3260068871;
-+pub const RIO_CM_CHAN_SEND: u32 = 1074815753;
-+pub const PPWCTLONIRQ: u32 = 1073836178;
-+pub const SONYPI_IOCGBRT: u32 = 2147579392;
-+pub const IOC_PR_RELEASE: u32 = 1074819274;
-+pub const PPCLRIRQ: u32 = 2147774611;
-+pub const IPMICTL_SET_MY_CHANNEL_LUN_CMD: u32 = 2147772698;
-+pub const MGSL_IOCSXSYNC: u32 = 27923;
-+pub const HPET_IE_OFF: u32 = 26626;
-+pub const IOC_OPAL_ACTIVATE_USR: u32 = 1091596513;
-+pub const SONET_SETFRAMING: u32 = 1074028821;
-+pub const PERF_EVENT_IOC_PAUSE_OUTPUT: u32 = 1074013193;
-+pub const BTRFS_IOC_LOGICAL_INO_V2: u32 = 3224933435;
-+pub const VBG_IOCTL_HGCM_CONNECT: u32 = 3231471108;
-+pub const BLKFINISHZONE: u32 = 1074795144;
-+pub const EVIOCREVOKE: u32 = 1074021777;
-+pub const VFIO_DEVICE_FEATURE: u32 = 15221;
-+pub const CCISS_GETPCIINFO: u32 = 2148024833;
-+pub const ISST_IF_MBOX_COMMAND: u32 = 3221814787;
-+pub const SCIF_ACCEPTREQ: u32 = 3222303492;
-+pub const PERF_EVENT_IOC_QUERY_BPF: u32 = 3221758986;
-+pub const VIDIOC_STREAMOFF: u32 = 1074026003;
-+pub const VDUSE_DESTROY_DEV: u32 = 1090552067;
-+pub const FDGETFDCSTAT: u32 = 2150105621;
-+pub const CM_IOCGATR: u32 = 3221775105;
-+pub const VIDIOC_S_PRIORITY: u32 = 1074026052;
-+pub const SNAPSHOT_FREEZE: u32 = 13057;
-+pub const VIDIOC_ENUMINPUT: u32 = 3226490394;
-+pub const ZATM_GETPOOLZ: u32 = 1074815330;
-+pub const RIO_DISABLE_DOORBELL_RANGE: u32 = 1074294026;
-+pub const GPIO_V2_GET_LINEINFO_WATCH_IOCTL: u32 = 3238048774;
-+pub const VIDIOC_G_STD: u32 = 2148029975;
-+pub const USBDEVFS_ALLOW_SUSPEND: u32 = 21794;
-+pub const SONET_GETSTATZ: u32 = 2149867793;
-+pub const SCIF_ACCEPTREG: u32 = 3221779205;
-+pub const VIDIOC_ENCODER_CMD: u32 = 3223869005;
-+pub const PPPIOCSRASYNCMAP: u32 = 1074033748;
-+pub const IOCTL_MEI_NOTIFY_SET: u32 = 1074022402;
-+pub const BTRFS_IOC_QUOTA_RESCAN_STATUS: u32 = 2151715885;
-+pub const F2FS_IOC_GARBAGE_COLLECT: u32 = 1074066694;
-+pub const ATMLEC_CTRL: u32 = 25040;
-+pub const MATROXFB_GET_AVAILABLE_OUTPUTS: u32 = 2148036345;
-+pub const DM_DEV_CREATE: u32 = 3241737475;
-+pub const VHOST_VDPA_GET_VRING_NUM: u32 = 2147659638;
-+pub const VIDIOC_G_CTRL: u32 = 3221771803;
-+pub const NBD_CLEAR_SOCK: u32 = 43780;
-+pub const VFIO_DEVICE_QUERY_GFX_PLANE: u32 = 15218;
-+pub const WDIOC_KEEPALIVE: u32 = 2147768069;
-+pub const NVME_IOCTL_SUBSYS_RESET: u32 = 20037;
-+pub const PTP_EXTTS_REQUEST2: u32 = 1074806027;
-+pub const PCITEST_BAR: u32 = 20481;
-+pub const MGSL_IOCGGPIO: u32 = 2148560145;
-+pub const EVIOCSREP: u32 = 1074283779;
-+pub const VFIO_DEVICE_GET_IRQ_INFO: u32 = 15213;
-+pub const HPET_DPI: u32 = 26629;
-+pub const VDUSE_VQ_SETUP_KICKFD: u32 = 1074299158;
-+pub const ND_IOCTL_CALL: u32 = 3225439754;
-+pub const HIDIOCGDEVINFO: u32 = 2149337091;
-+pub const DM_TABLE_DEPS: u32 = 3241737483;
-+pub const BTRFS_IOC_DEV_INFO: u32 = 3489698846;
-+pub const VDUSE_IOTLB_GET_FD: u32 = 3223355664;
-+pub const FW_CDEV_IOC_GET_INFO: u32 = 3223855872;
-+pub const VIDIOC_G_PRIORITY: u32 = 2147767875;
-+pub const ATM_NEWBACKENDIF: u32 = 1073897971;
-+pub const VIDIOC_S_EXT_CTRLS: u32 = 3223344712;
-+pub const VIDIOC_SUBDEV_ENUM_DV_TIMINGS: u32 = 3230946914;
-+pub const VIDIOC_OMAP3ISP_CCDC_CFG: u32 = 3224917697;
-+pub const VIDIOC_S_HW_FREQ_SEEK: u32 = 1076909650;
-+pub const DM_TABLE_LOAD: u32 = 3241737481;
-+pub const F2FS_IOC_START_ATOMIC_WRITE: u32 = 62721;
-+pub const VIDIOC_G_OUTPUT: u32 = 2147767854;
-+pub const ATM_DROPPARTY: u32 = 1074029045;
-+pub const CHIOGELEM: u32 = 1080845072;
-+pub const BTRFS_IOC_GET_SUPPORTED_FEATURES: u32 = 2152240185;
-+pub const EVIOCSKEYCODE: u32 = 1074283780;
-+pub const NE_GET_IMAGE_LOAD_INFO: u32 = 3222318626;
-+pub const TUNSETLINK: u32 = 1074025677;
-+pub const FW_CDEV_IOC_ADD_DESCRIPTOR: u32 = 3222807302;
-+pub const BTRFS_IOC_SCRUB_CANCEL: u32 = 37916;
-+pub const PPS_SETPARAMS: u32 = 1074294946;
-+pub const IOC_OPAL_LR_SETUP: u32 = 1093169379;
-+pub const FW_CDEV_IOC_DEALLOCATE: u32 = 1074012931;
-+pub const WDIOC_SETTIMEOUT: u32 = 3221509894;
-+pub const IOC_WATCH_QUEUE_SET_FILTER: u32 = 22369;
-+pub const CAPI_GET_MANUFACTURER: u32 = 3221504774;
-+pub const VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY: u32 = 15222;
-+pub const ASPEED_P2A_CTRL_IOCTL_SET_WINDOW: u32 = 1074836224;
-+pub const VIDIOC_G_EDID: u32 = 3223868968;
-+pub const F2FS_IOC_GARBAGE_COLLECT_RANGE: u32 = 1075377419;
-+pub const RIO_MAP_INBOUND: u32 = 3223874833;
-+pub const IOC_OPAL_TAKE_OWNERSHIP: u32 = 1091072222;
-+pub const USBDEVFS_CLAIM_PORT: u32 = 2147767576;
-+pub const VIDIOC_S_AUDIO: u32 = 1077171746;
-+pub const FS_IOC_GET_ENCRYPTION_NONCE: u32 = 2148558363;
-+pub const FW_CDEV_IOC_SEND_STREAM_PACKET: u32 = 1076372243;
-+pub const BTRFS_IOC_SNAP_DESTROY: u32 = 1342215183;
-+pub const SNAPSHOT_FREE: u32 = 13061;
-+pub const I8K_GET_SPEED: u32 = 3221776773;
-+pub const HIDIOCGREPORT: u32 = 1074546695;
-+pub const HPET_EPI: u32 = 26628;
-+pub const JSIOCSCORR: u32 = 1076128289;
-+pub const IOC_PR_PREEMPT_ABORT: u32 = 1075343564;
-+pub const RIO_MAP_OUTBOUND: u32 = 3223874831;
-+pub const ATM_SETESI: u32 = 1074815372;
-+pub const FW_CDEV_IOC_START_ISO: u32 = 1074799370;
-+pub const ATM_DELADDR: u32 = 1074815369;
-+pub const PPFCONTROL: u32 = 1073901710;
-+pub const SONYPI_IOCGFAN: u32 = 2147579402;
-+pub const RTC_IRQP_SET: u32 = 1074294796;
-+pub const PCITEST_WRITE: u32 = 1074286596;
-+pub const PPCLAIM: u32 = 28811;
-+pub const VIDIOC_S_JPEGCOMP: u32 = 1082938942;
-+pub const IPMICTL_UNREGISTER_FOR_CMD: u32 = 2147641615;
-+pub const VHOST_SET_FEATURES: u32 = 1074310912;
-+pub const TOSHIBA_ACPI_SCI: u32 = 3222828177;
-+pub const VIDIOC_DQBUF: u32 = 3227014673;
-+pub const BTRFS_IOC_BALANCE_PROGRESS: u32 = 2214630434;
-+pub const BTRFS_IOC_SUBVOL_SETFLAGS: u32 = 1074304026;
-+pub const ATMLEC_MCAST: u32 = 25042;
-+pub const MMTIMER_GETFREQ: u32 = 2148035842;
-+pub const VIDIOC_G_SELECTION: u32 = 3225441886;
-+pub const RTC_ALM_SET: u32 = 1076129799;
-+pub const PPPOEIOCSFWD: u32 = 1074311424;
-+pub const IPMICTL_GET_MAINTENANCE_MODE_CMD: u32 = 2147772702;
-+pub const FS_IOC_ENABLE_VERITY: u32 = 1082156677;
-+pub const NILFS_IOCTL_GET_BDESCS: u32 = 3222826631;
-+pub const FDFMTEND: u32 = 585;
-+pub const DMA_BUF_SET_NAME: u32 = 1074291201;
-+pub const UI_BEGIN_FF_UPLOAD: u32 = 3228063176;
-+pub const RTC_UIE_ON: u32 = 28675;
-+pub const PPRELEASE: u32 = 28812;
-+pub const VFIO_IOMMU_UNMAP_DMA: u32 = 15218;
-+pub const VIDIOC_OMAP3ISP_PRV_CFG: u32 = 3228587714;
-+pub const GPIO_GET_LINEHANDLE_IOCTL: u32 = 3245126659;
-+pub const VFAT_IOCTL_READDIR_BOTH: u32 = 2184212993;
-+pub const NVME_IOCTL_ADMIN_CMD: u32 = 3225964097;
-+pub const VHOST_SET_VRING_KICK: u32 = 1074310944;
-+pub const BTRFS_IOC_SUBVOL_CREATE_V2: u32 = 1342215192;
-+pub const BTRFS_IOC_SNAP_CREATE: u32 = 1342215169;
-+pub const SONYPI_IOCGBAT2CAP: u32 = 2147644932;
-+pub const PPNEGOT: u32 = 1074032785;
-+pub const NBD_PRINT_DEBUG: u32 = 43782;
-+pub const BTRFS_IOC_INO_LOOKUP_USER: u32 = 3489698878;
-+pub const BTRFS_IOC_GET_SUBVOL_ROOTREF: u32 = 3489698877;
-+pub const FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS: u32 = 3225445913;
-+pub const BTRFS_IOC_FS_INFO: u32 = 2214630431;
-+pub const VIDIOC_ENUM_FMT: u32 = 3225441794;
-+pub const VIDIOC_G_INPUT: u32 = 2147767846;
-+pub const VTPM_PROXY_IOC_NEW_DEV: u32 = 3222577408;
-+pub const DFL_FPGA_FME_ERR_GET_IRQ_NUM: u32 = 2147792515;
-+pub const ND_IOCTL_DIMM_FLAGS: u32 = 3221769731;
-+pub const BTRFS_IOC_QUOTA_RESCAN: u32 = 1077974060;
-+pub const MMTIMER_GETCOUNTER: u32 = 2148035849;
-+pub const MATROXFB_GET_OUTPUT_MODE: u32 = 3221778170;
-+pub const BTRFS_IOC_QUOTA_RESCAN_WAIT: u32 = 37934;
-+pub const RIO_CM_CHAN_BIND: u32 = 1074291461;
-+pub const HIDIOCGRDESC: u32 = 2416199682;
-+pub const MGSL_IOCGIF: u32 = 27915;
-+pub const VIDIOC_S_OUTPUT: u32 = 3221509679;
-+pub const HIDIOCGREPORTINFO: u32 = 3222030345;
-+pub const WDIOC_GETBOOTSTATUS: u32 = 2147768066;
-+pub const VDUSE_VQ_GET_INFO: u32 = 3224404245;
-+pub const ACRN_IOCTL_ASSIGN_PCIDEV: u32 = 1076142677;
-+pub const BLKGETDISKSEQ: u32 = 2148012672;
-+pub const ACRN_IOCTL_PM_GET_CPU_STATE: u32 = 3221791328;
-+pub const ACRN_IOCTL_DESTROY_VM: u32 = 41489;
-+pub const ACRN_IOCTL_SET_PTDEV_INTR: u32 = 1075094099;
-+pub const ACRN_IOCTL_CREATE_IOREQ_CLIENT: u32 = 41522;
-+pub const ACRN_IOCTL_IRQFD: u32 = 1075356273;
-+pub const ACRN_IOCTL_CREATE_VM: u32 = 3224412688;
-+pub const ACRN_IOCTL_INJECT_MSI: u32 = 1074831907;
-+pub const ACRN_IOCTL_ATTACH_IOREQ_CLIENT: u32 = 41523;
-+pub const ACRN_IOCTL_RESET_PTDEV_INTR: u32 = 1075094100;
-+pub const ACRN_IOCTL_NOTIFY_REQUEST_FINISH: u32 = 1074307633;
-+pub const ACRN_IOCTL_SET_IRQLINE: u32 = 1074307621;
-+pub const ACRN_IOCTL_START_VM: u32 = 41490;
-+pub const ACRN_IOCTL_SET_VCPU_REGS: u32 = 1093181974;
-+pub const ACRN_IOCTL_SET_MEMSEG: u32 = 1075880513;
-+pub const ACRN_IOCTL_PAUSE_VM: u32 = 41491;
-+pub const ACRN_IOCTL_CLEAR_VM_IOREQ: u32 = 41525;
-+pub const ACRN_IOCTL_UNSET_MEMSEG: u32 = 1075880514;
-+pub const ACRN_IOCTL_IOEVENTFD: u32 = 1075880560;
-+pub const ACRN_IOCTL_DEASSIGN_PCIDEV: u32 = 1076142678;
-+pub const ACRN_IOCTL_RESET_VM: u32 = 41493;
-+pub const ACRN_IOCTL_DESTROY_IOREQ_CLIENT: u32 = 41524;
-+pub const ACRN_IOCTL_VM_INTR_MONITOR: u32 = 1074307620;
--- 
-2.42.1
-
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch
index d7487c2..c34a610 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch
+++ b/poky/meta/recipes-gnome/librsvg/librsvg/0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch
@@ -1,4 +1,4 @@
-From 95b2cd0169cb1b4694c2bce67169b1aa1d5e2be0 Mon Sep 17 00:00:00 2001
+From d0f4f5b3ae900b9d092407e29b5372d93910c18c Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Tue, 21 Sep 2021 16:27:14 +0200
 Subject: [PATCH] Makefile.am: pass rust target to cargo also when not cross
@@ -14,10 +14,10 @@
  2 files changed, 1 insertion(+), 5 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index e93714e..effe5d3 100644
+index 2a89954..4e296d3 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -137,9 +137,7 @@ else
+@@ -173,9 +173,7 @@ else
  CARGO_RELEASE_ARGS=--release
  endif
  
@@ -28,10 +28,10 @@
  CARGO_VERBOSE = $(cargo_verbose_$(V))
  cargo_verbose_ = $(cargo_verbose_$(AM_DEFAULT_VERBOSITY))
 diff --git a/configure.ac b/configure.ac
-index 41590ca..84cd56b 100644
+index 42215cf..2499c96 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -255,9 +255,7 @@ AC_ARG_VAR(RUST_TARGET, [Set rust target (default=$host)])
+@@ -292,9 +292,7 @@ AC_ARG_VAR(RUST_TARGET, [Set rust target (default=$host)])
  : ${RUST_TARGET:=$host}
  
  AM_CONDITIONAL([CROSS_COMPILING], [test "x$cross_compiling" = xyes])
@@ -42,6 +42,3 @@
  AC_SUBST([RUST_TARGET_SUBDIR])
  
  dnl ===========================================================================
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.56.3.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.57.1.bb
similarity index 91%
rename from poky/meta/recipes-gnome/librsvg/librsvg_2.56.3.bb
rename to poky/meta/recipes-gnome/librsvg/librsvg_2.57.1.bb
index 9824b88..4b52d40 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg_2.56.3.bb
+++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.57.1.bb
@@ -19,11 +19,11 @@
 
 require ${BPN}-crates.inc
 
-SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
-            file://0001-Add-riscv32-support.patch;patchdir=../cargo_home/bitbake/linux-raw-sys-0.4.3 \
+SRC_URI += " \
+           file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
            "
 
-SRC_URI[archive.sha256sum] = "5a328048a02d014645cd27f61140f4e0b11280fb2c7f2a21864fe0c59ac1ce88"
+SRC_URI[archive.sha256sum] = "074671a3ed6fbcd67cae2a40e539107f4f097ca8a4ab1a894c05e2524ff340ef"
 
 UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
diff --git a/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch b/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch
index a2dcb13..316a57f 100644
--- a/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch
+++ b/poky/meta/recipes-graphics/glslang/glslang/0001-generate-glslang-pkg-config.patch
@@ -1,4 +1,4 @@
-From e8c1b7e1dc6d108a3b49d0adfdc4f836cfafcf1a Mon Sep 17 00:00:00 2001
+From 4cede5edcff96134baf35953d58595c4aa5f1fc5 Mon Sep 17 00:00:00 2001
 From: Jose Quaresma <quaresma.jose@gmail.com>
 Date: Sun, 7 Feb 2021 01:30:39 +0000
 Subject: [PATCH] generate glslang pkg-config
@@ -8,7 +8,6 @@
 Upstream-Status: Pending
 
 Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
-
 ---
  glslang/CMakeLists.txt      |  2 ++
  glslang/glslang.pc.cmake.in | 11 +++++++++++
@@ -16,21 +15,21 @@
  create mode 100644 glslang/glslang.pc.cmake.in
 
 diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
-index 72e82b48..c6188e12 100644
+index 37eecaad..6974935c 100644
 --- a/glslang/CMakeLists.txt
 +++ b/glslang/CMakeLists.txt
-@@ -223,6 +223,8 @@ if(ENABLE_GLSLANG_INSTALL)
+@@ -251,6 +251,8 @@ if(PROJECT_IS_TOP_LEVEL)
          ")
          install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslangTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
      endif()
 +    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/glslang.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc @ONLY)
 +    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
  
-     set(ALL_HEADERS
-         ${GLSLANG_HEADERS}
+     set(PUBLIC_HEADERS
+         Public/ResourceLimits.h
 diff --git a/glslang/glslang.pc.cmake.in b/glslang/glslang.pc.cmake.in
 new file mode 100644
-index 00000000..948a0952
+index 00000000..43104e68
 --- /dev/null
 +++ b/glslang/glslang.pc.cmake.in
 @@ -0,0 +1,11 @@
diff --git a/poky/meta/recipes-graphics/glslang/glslang_1.3.268.0.bb b/poky/meta/recipes-graphics/glslang/glslang_1.3.275.0.bb
similarity index 96%
rename from poky/meta/recipes-graphics/glslang/glslang_1.3.268.0.bb
rename to poky/meta/recipes-graphics/glslang/glslang_1.3.275.0.bb
index 033830b..2fd1e72 100644
--- a/poky/meta/recipes-graphics/glslang/glslang_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/glslang/glslang_1.3.275.0.bb
@@ -8,7 +8,7 @@
 LICENSE = "BSD-3-Clause & BSD-2-Clause & MIT & Apache-2.0 & GPL-3-with-bison-exception"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2a2b5acd7bc4844964cfda45fe807dc3"
 
-SRCREV = "36d08c0d940cf307a23928299ef52c7970d8cee6"
+SRCREV = "a91631b260cba3f22858d6c6827511e636c2458a"
 SRC_URI = "git://github.com/KhronosGroup/glslang.git;protocol=https;branch=main \
            file://0001-generate-glslang-pkg-config.patch \
            "
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch b/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch
index 6843a66..f8608d4 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch
+++ b/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch
@@ -1,4 +1,4 @@
-From 0651c4edc9909832ff2acbbf170268f34e36616d Mon Sep 17 00:00:00 2001
+From 5f54f067da7ee24a61d6cb41e0636383729e2bad Mon Sep 17 00:00:00 2001
 From: Fabio Estevam <festevam@gmail.com>
 Date: Mon, 8 Jan 2024 15:00:01 -0300
 Subject: [PATCH] cube-gears: Change header file to <GLES3/gl3.h>
@@ -17,17 +17,15 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/cube-gears.c b/cube-gears.c
-index d5b7a5f9cbef..cb538ecc4aee 100644
+index d5b7a5f..cb538ec 100644
 --- a/cube-gears.c
 +++ b/cube-gears.c
 @@ -31,7 +31,7 @@
  #include <sys/time.h>
  #include <math.h>
-
+ 
 -#include <GL/gl.h>
 +#include <GLES3/gl3.h>
-
+ 
  #include "common.h"
  #include "esUtil.h"
---
-2.34.1
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index 505acb0..19bbcd1 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -10,7 +10,7 @@
 
 LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
 
-SRCREV = "96d63eb59e34c647cda1cbb489265f8c536ae055"
+SRCREV = "6ab022fdfcfedd28f4b5dbd8d3299414a367746f"
 SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \
            file://0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch \
            "
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch b/poky/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
new file mode 100644
index 0000000..ab16152
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-drisw-fix-build-without-dri3.patch
@@ -0,0 +1,58 @@
+From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Tue, 6 Feb 2024 09:47:09 +0100
+Subject: [PATCH 1/2] drisw: fix build without dri3
+
+commit 1887368df41 ("glx/sw: check for modifier support in the kopper path")
+added dri3_priv.h header and dri3_check_multibuffer() function in drisw that
+can be build without dri3.
+
+  i686-buildroot-linux-gnu/bin/ld: src/glx/libglx.a.p/drisw_glx.c.o: in function `driswCreateScreenDriver':
+  drisw_glx.c:(.text.driswCreateScreenDriver+0x3a0): undefined reference to `dri3_check_multibuffer'
+  collect2: error: ld returned 1 exit status
+
+Add HAVE_DRI3 guard around dri3_priv.h header and the zink code using
+dri3_check_multibuffer().
+
+Fixes: 1887368df41 ("glx/sw: check for modifier support in the kopper path")
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478]
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/glx/drisw_glx.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
+index 3d3f752..4b19e2d 100644
+--- a/src/glx/drisw_glx.c
++++ b/src/glx/drisw_glx.c
+@@ -32,7 +32,9 @@
+ #include <dlfcn.h>
+ #include "dri_common.h"
+ #include "drisw_priv.h"
++#ifdef HAVE_DRI3
+ #include "dri3_priv.h"
++#endif
+ #include <X11/extensions/shmproto.h>
+ #include <assert.h>
+ #include <vulkan/vulkan_core.h>
+@@ -995,6 +997,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv,
+        goto handle_error;
+    }
+ 
++#ifdef HAVE_DRI3
+    if (pdpyp->zink) {
+       bool err;
+       psc->has_multibuffer = dri3_check_multibuffer(priv->dpy, &err);
+@@ -1005,6 +1008,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv,
+          goto handle_error;
+       }
+    }
++#endif
+ 
+    glx_config_destroy_list(psc->base.configs);
+    psc->base.configs = configs;
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch b/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
index 237f940..ceb0153 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
@@ -1,4 +1,4 @@
-From 6d07f6aa7f92f40d78a2db645f16f0f3e7d3c2e8 Mon Sep 17 00:00:00 2001
+From 3e1e5c475b52651657c906e6b03ee13567cccdd7 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 23 Jun 2023 01:20:38 -0700
 Subject: [PATCH] gallium: Fix build with llvm 17
@@ -9,7 +9,6 @@
 
 Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23827]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  src/gallium/auxiliary/gallivm/lp_bld_init.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
index 9cd9bee..baa98a0 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
@@ -1,11 +1,10 @@
-From 3ef37c63f03ad6f2af407de350486fdd25e9132a Mon Sep 17 00:00:00 2001
+From 02cc21800fe29f566add525e63f619c0536d6e7b Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 13 Jan 2020 15:23:47 -0800
 Subject: [PATCH] meson misdetects 64bit atomics on mips/clang
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  src/util/u_atomic.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
index b0be8d0..7be7d81 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
@@ -1,4 +1,4 @@
-From f2fe76d506f356de055b8eca83a7c9d0744a40af Mon Sep 17 00:00:00 2001
+From e8ec6b1cc5e401ba719095722d8b317d755ae613 Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair@alistair23.me>
 Date: Thu, 14 Nov 2019 13:04:49 -0800
 Subject: [PATCH] meson.build: check for all linux host_os combinations
@@ -14,16 +14,15 @@
 Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
 Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
 Signed-off-by: Alistair Francis <alistair@alistair23.me>
-
 ---
  meson.build | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index 35cc5f1..9a49c0d 100644
+index 133fd9a..817861e 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -128,7 +128,7 @@
+@@ -128,7 +128,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
  # Only build shared_glapi if at least one OpenGL API is enabled
  with_shared_glapi = with_shared_glapi and with_any_opengl
  
@@ -32,7 +31,7 @@
  
  gallium_drivers = get_option('gallium-drivers')
  if gallium_drivers.contains('auto')
-@@ -998,7 +998,7 @@
+@@ -997,7 +997,7 @@ if cc.has_function('fmemopen')
  endif
  
  # TODO: this is very incomplete
diff --git a/poky/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/poky/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
new file mode 100644
index 0000000..036a0b4
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
@@ -0,0 +1,42 @@
+From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Tue, 6 Feb 2024 09:47:10 +0100
+Subject: [PATCH 2/2] glxext: don't try zink if not enabled in mesa
+
+Commit 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers")
+added an automatic zink fallback even when the zink gallium is not
+enabled at build time.
+
+It leads to unexpected error log while loading drisw driver and
+zink is not installed on the rootfs:
+
+  MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so
+
+Fixes: 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers")
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478]
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/glx/glxext.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/glx/glxext.c b/src/glx/glxext.c
+index 05c825a..7a06aa9 100644
+--- a/src/glx/glxext.c
++++ b/src/glx/glxext.c
+@@ -908,9 +908,11 @@ __glXInitialize(Display * dpy)
+ #endif /* HAVE_DRI3 */
+       if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false))
+          dpyPriv->dri2Display = dri2CreateDisplay(dpy);
++#if defined(HAVE_ZINK)
+       if (!dpyPriv->dri3Display && !dpyPriv->dri2Display)
+          try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) &&
+                     !getenv("GALLIUM_DRIVER");
++#endif /* HAVE_ZINK */
+    }
+ #endif /* GLX_USE_DRM */
+    if (glx_direct)
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_24.0.1.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_24.0.2.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa-gl_24.0.1.bb
rename to poky/meta/recipes-graphics/mesa/mesa-gl_24.0.2.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index cdac01d..12d7a18 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -18,9 +18,11 @@
            file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
            file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
            file://0001-gallium-Fix-build-with-llvm-17.patch \
+           file://0001-drisw-fix-build-without-dri3.patch \
+           file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \
 "
 
-SRC_URI[sha256sum] = "f387192b08c471c545590dd12230a2a343244804b5fe866fec6aea02eab57613"
+SRC_URI[sha256sum] = "94e28a8edad06d8ed2b83eb53f253b9eb5aa62c3080f939702e1b3039b56c9e8"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa_24.0.1.bb b/poky/meta/recipes-graphics/mesa/mesa_24.0.2.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa_24.0.1.bb
rename to poky/meta/recipes-graphics/mesa/mesa_24.0.2.bb
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch
index b1bb00e..08e709b 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-narrowing-errors-seen-with-clang.patch
@@ -1,4 +1,4 @@
-From cd38c91e8c743bfc1841bcdd08e1ab18bf22f0e1 Mon Sep 17 00:00:00 2001
+From 77f327909e4a99c64261290cd76e234e10cc64d2 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 3 May 2023 21:59:43 -0700
 Subject: [PATCH] tests: Fix narrowing errors seen with clang
@@ -48,6 +48,3 @@
  		glClearBufferuiv(GL_COLOR, 0, clear_color);
  		break;
  	}
--- 
-2.40.1
-
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0001-utils-Include-libgen.h-on-musl-linux-systems.patch b/poky/meta/recipes-graphics/piglit/piglit/0001-utils-Include-libgen.h-on-musl-linux-systems.patch
index 35e919e..e180664 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0001-utils-Include-libgen.h-on-musl-linux-systems.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0001-utils-Include-libgen.h-on-musl-linux-systems.patch
@@ -1,4 +1,4 @@
-From 232a67b651ccb415b7d4d47584613359b7ebd920 Mon Sep 17 00:00:00 2001
+From 608cdeddc8e8a679b195927c4d34dc8d93142a91 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 13 Feb 2024 08:53:37 -0800
 Subject: [PATCH] utils: Include libgen.h on musl/linux systems
@@ -26,6 +26,3 @@
  #  include "libgen.h" // for basename
  #elif defined(_MSC_VER)
  
--- 
-2.43.1
-
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch b/poky/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch
index 5d6ec36..70bb550 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch
@@ -1,4 +1,4 @@
-From 3bf1beee1ddd19bc536ff2856e04ac269d43daa2 Mon Sep 17 00:00:00 2001
+From cb8e4b99fcfe81399e3e6d922156db4a48a39a8e Mon Sep 17 00:00:00 2001
 From: Pascal Bach <pascal.bach@siemens.com>
 Date: Thu, 4 Oct 2018 14:43:17 +0200
 Subject: [PATCH] cmake: use proper WAYLAND_INCLUDE_DIRS variable
@@ -15,7 +15,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
-index a5f080156..a303a9f58 100644
+index 1714ab41f..3b67aa7da 100644
 --- a/tests/util/CMakeLists.txt
 +++ b/tests/util/CMakeLists.txt
 @@ -97,7 +97,7 @@ if(PIGLIT_USE_WAFFLE)
@@ -27,6 +27,3 @@
  		)
  	endif()
  	if(PIGLIT_HAS_X11)
--- 
-2.11.0
-
diff --git a/poky/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch b/poky/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch
index 16c7c5c..ce5cbd3 100644
--- a/poky/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch
+++ b/poky/meta/recipes-graphics/piglit/piglit/0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch
@@ -1,8 +1,8 @@
-From 1c67250308a92d4991ed05d9d240090ab84accae Mon Sep 17 00:00:00 2001
+From 7d2d23125f1946a7b74f9a427388d469500fcd8d Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 10 Nov 2020 17:13:50 +0000
-Subject: [PATCH 2/2] tests/util/piglit-shader.c: do not hardcode build path
- into target binary
+Subject: [PATCH] tests/util/piglit-shader.c: do not hardcode build path into
+ target binary
 
 This helps reproducibilty.
 
@@ -13,7 +13,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/tests/util/piglit-shader.c b/tests/util/piglit-shader.c
-index 4fd68d21e..c9ea8295e 100644
+index 1787eb180..9e74704b1 100644
 --- a/tests/util/piglit-shader.c
 +++ b/tests/util/piglit-shader.c
 @@ -73,7 +73,7 @@ piglit_compile_shader(GLenum target, const char *filename)
@@ -25,6 +25,3 @@
  	}
  
  	snprintf(filename_with_path, FILENAME_MAX - 1,
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index ab749f7..99d75e6 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -14,7 +14,7 @@
            "
 UPSTREAM_CHECK_COMMITS = "1"
 
-SRCREV = "f3f1b3f960611a88cb1a037114ba4724f1bf330e"
+SRCREV = "22eaf6a91cfd57f7bb3df4e5068c2ac1472d4ec1"
 # (when PV goes above 1.0 remove the trailing r)
 PV = "1.0+gitr"
 
diff --git a/poky/meta/recipes-graphics/shaderc/files/0001-CMakeLists.txt-drop-OSDependent-OGLCompiler-from-lis.patch b/poky/meta/recipes-graphics/shaderc/files/0001-CMakeLists.txt-drop-OSDependent-OGLCompiler-from-lis.patch
deleted file mode 100644
index ecaa2dd..0000000
--- a/poky/meta/recipes-graphics/shaderc/files/0001-CMakeLists.txt-drop-OSDependent-OGLCompiler-from-lis.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 7f6c60f928dabd8b15aa948886523ddf15709215 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Wed, 2 Nov 2022 15:42:58 +0100
-Subject: [PATCH] CMakeLists.txt: drop OSDependent/OGLCompiler from lists of
- glslang libraries
-
-glslang no longer installs them separately, and all needed
-functionality has been merged into glslang shared library itself:
-
-This wasn't a problem previously as they were still provided,
-as static libraries but in latest glslang they no longer are:
-https://github.com/KhronosGroup/glslang/commit/7cd519511c32d7e86d901c7ed231cb84c652d18d
-
-Upstream-Status: Submitted [https://github.com/google/shaderc/pull/1276]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- glslc/CMakeLists.txt           | 2 +-
- libshaderc/CMakeLists.txt      | 2 +-
- libshaderc/README.md           | 4 ++--
- libshaderc_util/CMakeLists.txt | 2 +-
- 4 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt
-index 31664d1..5093bd9 100644
---- a/glslc/CMakeLists.txt
-+++ b/glslc/CMakeLists.txt
-@@ -43,7 +43,7 @@ if (SHADERC_ENABLE_WGSL_OUTPUT)
- endif(SHADERC_ENABLE_WGSL_OUTPUT)
- 
- target_link_libraries(glslc PRIVATE
--  glslang OSDependent OGLCompiler HLSL glslang SPIRV    # Glslang libraries
-+  glslang HLSL glslang SPIRV    # Glslang libraries
-   $<$<BOOL:${SHADERC_ENABLE_WGSL_OUTPUT}>:libtint>      # Tint libraries, optional
-   shaderc_util shaderc                                  # internal Shaderc libraries
-   ${CMAKE_THREAD_LIBS_INIT})
-diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt
-index 3ada419..d3542bf 100644
---- a/libshaderc/CMakeLists.txt
-+++ b/libshaderc/CMakeLists.txt
-@@ -62,7 +62,7 @@ endif(SHADERC_ENABLE_INSTALL)
- 
- find_package(Threads)
- set(SHADERC_LIBS
--  glslang OSDependent OGLCompiler glslang ${CMAKE_THREAD_LIBS_INIT}
-+  glslang glslang ${CMAKE_THREAD_LIBS_INIT}
-   shaderc_util
-   SPIRV # from glslang
-   SPIRV-Tools
-diff --git a/libshaderc/README.md b/libshaderc/README.md
-index bf9d317..1071769 100644
---- a/libshaderc/README.md
-+++ b/libshaderc/README.md
-@@ -7,8 +7,8 @@ A library for compiling shader strings into SPIR-V.
- There are two main shaderc libraries that are created during a CMake
- compilation. The first is `libshaderc`, which is a static library
- containing just the functionality exposed by libshaderc. It depends
--on other compilation targets `glslang`, `OSDependent`, `OGLCompiler`,
--`shaderc_util`, `SPIRV`, `HLSL`, `SPIRV-Tools`, and `SPIRV-Tools-opt`.
-+on other compilation targets `glslang`, `shaderc_util`, `SPIRV`,
-+`HLSL`, `SPIRV-Tools`, and `SPIRV-Tools-opt`.
- 
- The other is `libshaderc_combined`, which is a static library containing
- libshaderc and all of its dependencies.
-diff --git a/libshaderc_util/CMakeLists.txt b/libshaderc_util/CMakeLists.txt
-index 99ce3c4..5291175 100644
---- a/libshaderc_util/CMakeLists.txt
-+++ b/libshaderc_util/CMakeLists.txt
-@@ -46,7 +46,7 @@ add_definitions(-DENABLE_HLSL)
- 
- find_package(Threads)
- target_link_libraries(shaderc_util PRIVATE
--  glslang OSDependent OGLCompiler HLSL glslang SPIRV
-+  glslang HLSL glslang SPIRV
-   SPIRV-Tools-opt ${CMAKE_THREAD_LIBS_INIT})
- 
- shaderc_add_tests(
diff --git a/poky/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch b/poky/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch
index 35855bd..4212512 100644
--- a/poky/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch
+++ b/poky/meta/recipes-graphics/shaderc/files/0001-cmake-disable-building-external-dependencies.patch
@@ -1,4 +1,4 @@
-From d3fbd6b9427f29606540528d17fe02930cd78d0c Mon Sep 17 00:00:00 2001
+From 792a46ef27ef879a21c9f01a198eae213ea535e6 Mon Sep 17 00:00:00 2001
 From: Jose Quaresma <quaresma.jose@gmail.com>
 Date: Sat, 13 Feb 2021 00:45:56 +0000
 Subject: [PATCH] cmake: disable building external dependencies
@@ -9,17 +9,16 @@
 Upstream-Status: Inappropriate [OE-core specific]
 
 Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
-
 ---
  CMakeLists.txt                | 13 ++++++++++---
  utils/update_build_version.py | 22 +++++++++++++++-------
  2 files changed, 25 insertions(+), 10 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 633c244..75b01da 100644
+index 7bc8f5d..13fc535 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -67,6 +67,7 @@ else()
+@@ -62,6 +62,7 @@ else()
  endif()
  
  option(SHADERC_ENABLE_WERROR_COMPILE "Enable passing -Werror to compiler, if available" ON)
@@ -27,7 +26,7 @@
  
  set (CMAKE_CXX_STANDARD 17)
  
-@@ -129,8 +130,14 @@ endif(MSVC)
+@@ -123,8 +124,14 @@ endif(MSVC)
  
  
  # Configure subdirectories.
@@ -44,7 +43,7 @@
  
  add_subdirectory(libshaderc_util)
  add_subdirectory(libshaderc)
-@@ -142,7 +149,7 @@ endif()
+@@ -136,7 +143,7 @@ endif()
  add_custom_target(build-version
    ${PYTHON_EXECUTABLE}
    ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
@@ -54,7 +53,7 @@
  
  function(define_pkg_config_file NAME LIBS)
 diff --git a/utils/update_build_version.py b/utils/update_build_version.py
-index 5785390..f72b762 100755
+index 11ee53e..d39e59d 100755
 --- a/utils/update_build_version.py
 +++ b/utils/update_build_version.py
 @@ -30,6 +30,7 @@ import re
diff --git a/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch b/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch
index 0e8ad7e..39f982b 100644
--- a/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch
+++ b/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch
@@ -1,4 +1,4 @@
-From d02ad48d5c9b48af70ddea2e6998081347ef82f3 Mon Sep 17 00:00:00 2001
+From ec2442940e1d5338971861bb81537bae3a6c19e2 Mon Sep 17 00:00:00 2001
 From: Jose Quaresma <quaresma.jose@gmail.com>
 Date: Sat, 13 Feb 2021 00:45:56 +0000
 Subject: [PATCH] libshaderc_util: fix glslang header file location
@@ -6,13 +6,12 @@
 Upstream-Status: Pending
 
 Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
-
 ---
  libshaderc_util/src/compiler.cc | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc
-index 051558b..9c4476c 100644
+index e5f5d10..5fd6d3c 100644
 --- a/libshaderc_util/src/compiler.cc
 +++ b/libshaderc_util/src/compiler.cc
 @@ -20,7 +20,7 @@
diff --git a/poky/meta/recipes-graphics/shaderc/shaderc_2023.7.bb b/poky/meta/recipes-graphics/shaderc/shaderc_2023.8.bb
similarity index 88%
rename from poky/meta/recipes-graphics/shaderc/shaderc_2023.7.bb
rename to poky/meta/recipes-graphics/shaderc/shaderc_2023.8.bb
index cf2ced9..bc7afbd 100644
--- a/poky/meta/recipes-graphics/shaderc/shaderc_2023.7.bb
+++ b/poky/meta/recipes-graphics/shaderc/shaderc_2023.8.bb
@@ -6,11 +6,10 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRCREV = "3882b16417077aa8eaa7b5775920e7ba4b8a224d"
+SRCREV = "f8a25c591bf5edbb462ca4aea99dcc666f096d13"
 SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main \
            file://0001-cmake-disable-building-external-dependencies.patch \
            file://0002-libshaderc_util-fix-glslang-header-file-location.patch \
-           file://0001-CMakeLists.txt-drop-OSDependent-OGLCompiler-from-lis.patch \
            "
 UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/spir/spirv-headers_1.3.268.0.bb b/poky/meta/recipes-graphics/spir/spirv-headers_1.3.275.0.bb
similarity index 93%
rename from poky/meta/recipes-graphics/spir/spirv-headers_1.3.268.0.bb
rename to poky/meta/recipes-graphics/spir/spirv-headers_1.3.275.0.bb
index 7045f70..598a8fc 100644
--- a/poky/meta/recipes-graphics/spir/spirv-headers_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-headers_1.3.275.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c938b85bceb8fb26c1a807f28a52ae2d"
 
-SRCREV = "e867c06631767a2d96424cbec530f9ee5e78180f"
+SRCREV = "1c6bb2743599e6eb6f37b2969acc0aef812e32e3"
 SRC_URI = "git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;branch=main"
 PE = "1"
 # These recipes need to be updated in lockstep with each other:
diff --git a/poky/meta/recipes-graphics/spir/spirv-tools_1.3.268.0.bb b/poky/meta/recipes-graphics/spir/spirv-tools_1.3.275.0.bb
similarity index 96%
rename from poky/meta/recipes-graphics/spir/spirv-tools_1.3.268.0.bb
rename to poky/meta/recipes-graphics/spir/spirv-tools_1.3.275.0.bb
index 1cccafd..05c6de1 100644
--- a/poky/meta/recipes-graphics/spir/spirv-tools_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-tools_1.3.275.0.bb
@@ -7,7 +7,7 @@
 LICENSE  = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRCREV = "360d469b9eac54d6c6e20f609f9ec35e3a5380ad"
+SRCREV = "f0cc85efdbbe3a46eae90e0f915dc1509836d0fc"
 SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;branch=main;protocol=https"
 PE = "1"
 # These recipes need to be updated in lockstep with each other:
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.268.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.275.0.bb
similarity index 95%
rename from poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.268.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.275.0.bb
index a1a8331..aacec8c 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.3.275.0.bb
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=1bc355d8c4196f774c8b87ed1a8dd625"
 SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=main;protocol=https"
 
-SRCREV = "7b3466a1f47a9251ac1113efbe022ff016e2f95b"
+SRCREV = "217e93c664ec6704ec2d8c36fa116c1a4a1e2d40"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.268.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.275.0.bb
similarity index 94%
rename from poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.268.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.275.0.bb
index 5a5749d..7caed67 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.3.275.0.bb
@@ -9,8 +9,8 @@
 
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=vulkan-sdk-1.3.268;protocol=https"
-SRCREV = "f4c838e2e7358fc450f8112119bbdbb5b03e03fa"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=vulkan-sdk-1.3.275;protocol=https"
+SRCREV = "00893b9a03e526aec2c5bf487521d16dfa435229"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.268.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.275.0.bb
similarity index 93%
rename from poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.268.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.275.0.bb
index 78bd9b0e..f86912c 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.3.275.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
 SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=main;protocol=https"
-SRCREV = "1532001f7edae559af1988293eec90bc5e2607d5"
+SRCREV = "c86d42cf9eb620eeac377e3bff46ae342c5cd664"
 
 S = "${WORKDIR}/git"
 
@@ -15,7 +15,7 @@
 ANY_OF_DISTRO_FEATURES = "x11 wayland"
 REQUIRED_DISTRO_FEATURES = "vulkan"
 
-DEPENDS += "vulkan-headers vulkan-loader"
+DEPENDS += "vulkan-headers vulkan-loader vulkan-volk"
 
 EXTRA_OECMAKE = "\
                  -DBUILD_TESTS=OFF \
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.268.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.275.0.bb
similarity index 94%
rename from poky/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.268.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.275.0.bb
index fee4ba6..759a039 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-utility-libraries_1.3.275.0.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=4ca2d6799091aaa98a8520f1b793939b"
 
 SRC_URI = "git://github.com/KhronosGroup/Vulkan-Utility-Libraries.git;branch=main;protocol=https"
-SRCREV = "c9ca4ac620a238a93c65d864f2eaa33954d74509"
+SRCREV = "4cfc176e3242b4dbdfd3f6c5680c5d8f2cb7db45"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.268.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.275.0.bb
similarity index 94%
rename from poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.268.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.275.0.bb
index 6c2715b..2395891 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.268.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.275.0.bb
@@ -8,8 +8,8 @@
 LICENSE = "Apache-2.0 & MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd3c0bc366cd9b6a906e22f0bcb5910f"
 
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=vulkan-sdk-1.3.268;protocol=https"
-SRCREV = "3c64adb4e052062fc60b6580c365429fddfbcfbf"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=vulkan-sdk-1.3.275;protocol=https"
+SRCREV = "780c65337e111c7385109c7b720d757a778e4fe2"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-volk_1.3.275.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-volk_1.3.275.0.bb
new file mode 100644
index 0000000..f4e6e89
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-volk_1.3.275.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "A meta-loader for Vulkan"
+DESCRIPTION = "Volk allows one to dynamically load entrypoints required \
+to use Vulkan without linking to vulkan-1.dll or statically linking Vulkan loader. \
+"
+HOMEPAGE = "https://www.khronos.org/vulkan/"
+BUGTRACKER = "https://github.com/zeux/volk"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=b2dd098d35668a801190a9d9d47461b0"
+
+SRC_URI = "git://github.com/zeux/volk.git;branch=master;protocol=https"
+SRCREV = "f2a16e3e19c2349b873343b2dc38a1d4c25af23a"
+
+S = "${WORKDIR}/git"
+
+REQUIRED_DISTRO_FEATURES = "vulkan"
+
+DEPENDS = "vulkan-headers"
+
+EXTRA_OECMAKE = "\
+    -DVOLK_INSTALL=ON \
+    "
+
+inherit cmake features_check pkgconfig
+
+# These recipes need to be updated in lockstep with each other:
+# glslang, vulkan-headers, vulkan-loader, vulkan-tools,
+# vulkan-validation-layers, spirv-headers, spirv-tools,
+# vulkan-utility-libraries.
+# The tags versions should always be sdk-x.y.z, as this is what
+# upstream considers a release.
+UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
+
+do_install:append() {
+    sed -i -e 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/cmake/volk/volkTargets.cmake
+}
diff --git a/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0001-linux_sysfs-Use-pwrite-pread-instead-of-64bit-versio.patch b/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0001-linux_sysfs-Use-pwrite-pread-instead-of-64bit-versio.patch
deleted file mode 100644
index 512a473..0000000
--- a/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0001-linux_sysfs-Use-pwrite-pread-instead-of-64bit-versio.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From d20ff4f2e4feaafa6a6191b9cae3815b85617943 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 11 Nov 2022 11:15:58 -0800
-Subject: [PATCH] linux_sysfs: Use pwrite/pread instead of 64bit versions
-
-pread64/pwrite64 are aliased to pread/pwrite when largefile support is
-enabled e.g. using _FILE_OFFSET_BITS=64 macro
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/merge_requests/26]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/linux_sysfs.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/linux_sysfs.c b/src/linux_sysfs.c
-index d62f48c..20c800e 100644
---- a/src/linux_sysfs.c
-+++ b/src/linux_sysfs.c
-@@ -462,7 +462,7 @@ pci_device_linux_sysfs_read( struct pci_device * dev, void * data,
- 
- 
-     while ( temp_size > 0 ) {
--	const ssize_t bytes = pread64( fd, data_bytes, temp_size, offset );
-+	const ssize_t bytes = pread( fd, data_bytes, temp_size, offset );
- 
- 	/* If zero bytes were read, then we assume it's the end of the
- 	 * config file.
-@@ -522,7 +522,7 @@ pci_device_linux_sysfs_write( struct pci_device * dev, const void * data,
- 
- 
-     while ( temp_size > 0 ) {
--	const ssize_t bytes = pwrite64( fd, data_bytes, temp_size, offset );
-+	const ssize_t bytes = pwrite( fd, data_bytes, temp_size, offset );
- 
- 	/* If zero bytes were written, then we assume it's the end of the
- 	 * config file.
--- 
-2.38.1
-
diff --git a/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.17.bb b/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.17.bb
deleted file mode 100644
index 54bdb08..0000000
--- a/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.17.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Generic PCI access library for X"
-
-DESCRIPTION = "libpciaccess provides functionality for X to access the \
-PCI bus and devices in a platform-independent way."
-
-require xorg-lib-common.inc
-
-SRC_URI += "file://0001-linux_sysfs-Use-pwrite-pread-instead-of-64bit-versio.patch"
-
-SRC_URI[sha256sum] = "74283ba3c974913029e7a547496a29145b07ec51732bbb5b5c58d5025ad95b73"
-
-LICENSE = "MIT & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=277aada5222b9a22fbf3471ff3687068"
-
-REQUIRED_DISTRO_FEATURES = ""
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.18.bb b/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.18.bb
new file mode 100644
index 0000000..74b308c
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.18.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Generic PCI access library for X"
+
+DESCRIPTION = "libpciaccess provides functionality for X to access the \
+PCI bus and devices in a platform-independent way."
+
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/libs"
+LICENSE = "MIT"
+DEPENDS = "util-macros"
+
+SRC_URI = "${XORG_MIRROR}/individual/lib/${BP}.tar.xz"
+
+inherit features_check pkgconfig meson
+
+REQUIRED_DISTRO_FEATURES ?= "x11"
+
+SRC_URI[sha256sum] = "5461b0257d495254346f52a9c329b44b346262663675d3fecdb204a7e7c262a9"
+
+LICENSE = "MIT & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=54c978968e565218eea36cf03ef24352"
+
+REQUIRED_DISTRO_FEATURES = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231211.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
similarity index 99%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231211.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
index 3a3690b..1fd44f4 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231211.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
@@ -93,7 +93,7 @@
                     file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \
                     file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \
                     file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \
-                    file://LICENSE.cirrus;md5=bb18d943382abf8e8232a9407bfdafe0 \
+                    file://LICENSE.cirrus;md5=662ea2c1a8888f7d79ed7f27c27472e1 \
                     file://LICENCE.cnm;md5=93b67e6bac7f8fec22b96b8ad0a1a9d0 \
                     file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \
                     file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \
@@ -155,7 +155,7 @@
                     "
 # WHENCE checksum is defined separately to ease overriding it if
 # class-devupstream is selected.
-WHENCE_CHKSUM  = "3113c4ea08e5171555f3bf49eceb5b07"
+WHENCE_CHKSUM  = "a344e6c28970fc7daafa81c10247aeb6"
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
@@ -243,7 +243,7 @@
 # Pin this to the 20220509 release, override this in local.conf
 SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae"
 
-SRC_URI[sha256sum] = "96af7e4b5eabd37869cdb3dcbb7ab36911106d39b76e799fa1caab16a9dbe8bb"
+SRC_URI[sha256sum] = "bf0f239dc0801e9d6bf5d5fb3e2f549575632cf4688f4348184199cb02c2bcd7"
 
 inherit allarch
 
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
index 723a588..5449b7e 100644
--- a/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
@@ -1,9 +1,9 @@
 
 # Auto-generated CVE metadata, DO NOT EDIT BY HAND.
-# Generated at 2024-02-26 20:14:05.493685+00:00 for version 6.6.18
+# Generated at 2024-03-03 16:30:03.739466+00:00 for version 6.6.20
 
 python check_kernel_cve_status_version() {
-    this_version = "6.6.18"
+    this_version = "6.6.20"
     kernel_version = d.getVar("LINUX_VERSION")
     if kernel_version != this_version:
         bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index c91aa07..bd3e5a9 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -61,6 +61,6 @@
 KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
 
 KERNEL_VERSION_SANITY_SKIP = "1"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
index 6eca6de..e80594b 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
@@ -14,13 +14,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "3c1e1f6195b25babe903679416ed839a53c8b3e8"
-SRCREV_meta ?= "c97276cdc9d89cceef61184e296e5c837a265ed1"
+SRCREV_machine ?= "7c5911ab2e70bf84bb38a598b2a7e094618a9620"
+SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
 
-LINUX_VERSION ?= "6.6.18"
+LINUX_VERSION ?= "6.6.20"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
@@ -45,4 +45,4 @@
 KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
index c6ba2a8..c2a0387 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
@@ -8,7 +8,7 @@
 # CVE exclusions
 include recipes-kernel/linux/cve-exclusion_6.6.inc
 
-LINUX_VERSION ?= "6.6.18"
+LINUX_VERSION ?= "6.6.20"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_meta ?= "c97276cdc9d89cceef61184e296e5c837a265ed1"
+SRCREV_machine ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
 
 PV = "${LINUX_VERSION}+git"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
index 2d21869..0f62dea 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
@@ -18,25 +18,25 @@
 KBRANCH:qemuloongarch64  ?= "v6.6/standard/base"
 KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "ea82a603d36f829f4267018d4c425f5f921074ea"
-SRCREV_machine:qemuarm64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemuloongarch64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemumips ?= "cf67a27829c10d065e0447af29ee330e385bcafb"
-SRCREV_machine:qemuppc ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemuriscv64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemuriscv32 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemux86 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemux86-64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_machine:qemumips64 ?= "52456b6cb3393c1848da3ccdae37727c31896f1c"
-SRCREV_machine ?= "e064a7d658a30b027b999183e21cd37305caff2a"
-SRCREV_meta ?= "c97276cdc9d89cceef61184e296e5c837a265ed1"
+SRCREV_machine:qemuarm ?= "9d30fb4668cd7087e81b40f223cdd0090863602b"
+SRCREV_machine:qemuarm64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemuloongarch64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemumips ?= "4b49da8bb522bdaf928855c2c102fa839625c6c1"
+SRCREV_machine:qemuppc ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemuriscv64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemuriscv32 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemux86 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemux86-64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_machine:qemumips64 ?= "8e7605bafdfeb842396292181d524b183a1e13d6"
+SRCREV_machine ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
+SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "d8a27ea2c98685cdaa5fa66c809c7069a4ff394b"
+SRCREV_machine:class-devupstream ?= "9b4a8eac17f0d840729384618b4b1e876233026c"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v6.6/base"
 
@@ -44,7 +44,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.6.18"
+LINUX_VERSION ?= "6.6.20"
 
 PV = "${LINUX_VERSION}+git"
 
@@ -63,7 +63,7 @@
 KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"
 KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc"
 KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc"
 KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc"
diff --git a/poky/meta/recipes-multimedia/libpng/libpng_1.6.42.bb b/poky/meta/recipes-multimedia/libpng/libpng_1.6.42.bb
index d84cb19..cadbe95 100644
--- a/poky/meta/recipes-multimedia/libpng/libpng_1.6.42.bb
+++ b/poky/meta/recipes-multimedia/libpng/libpng_1.6.42.bb
@@ -10,10 +10,10 @@
 
 LIBV = "16"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
 SRC_URI[sha256sum] = "c919dbc11f4c03b05aba3f8884d8eb7adfe3572ad228af972bb60057bdb48450"
 
-MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/"
+MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/"
 
 UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html"
 
diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
index ab4b239..e9403ee 100644
--- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -2,7 +2,7 @@
 DESCRIPTION = "Collection of small computer programs which implement one-player puzzle games."
 HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=92d2b7a2fc96b5f7f17101df7db1fefa"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=191542b32377bde254e9799e0a46f18b"
 
 # gtk support includes a bunch of x11 headers
 REQUIRED_DISTRO_FEATURES = "x11"
@@ -10,7 +10,7 @@
 SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main;protocol=https"
 
 UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "08365fb260ae6e32442dd9f196e65d13facb4b33"
+SRCREV = "80aac3104096aee4057b675c53ece8e60793aa90"
 PE = "2"
 PV = "0.0+git"
 
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
index e7d520e..016614b 100644
--- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
+++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc
@@ -6,7 +6,7 @@
 output. It also supports mixing multiple fonts at the \
 same time, including Xft fonts."
 HOMEPAGE = "https://rxvt.org/"
-DEPENDS = "virtual/libx11 libxt libxft gdk-pixbuf libxmu libptytty"
+DEPENDS = "virtual/libx11 libxt libxft gdk-pixbuf libxmu libptytty ncurses-native"
 
 SRC_URI = "http://dist.schmorp.de/rxvt-unicode/Attic/rxvt-unicode-${PV}.tar.bz2 \
 	   file://xwc.patch \
@@ -53,6 +53,9 @@
 
 	install -m 0644 ${WORKDIR}/rxvt.png ${D}/${datadir}/pixmaps
 	install -m 0644 ${WORKDIR}/rxvt.desktop ${D}/${datadir}/applications
+
+	${STAGING_BINDIR_NATIVE}/tic -x ${S}/doc/etc/rxvt-unicode.terminfo -o ${D}${datadir}/terminfo || \
+	${STAGING_BINDIR_NATIVE}/tic ${S}/doc/etc/rxvt-unicode.terminfo -o ${D}${datadir}/terminfo
 }
 
-FILES:${PN} += "${datadir}/applications/rxvt.desktop ${datadir}/pixmaps/rxvt.png"
+FILES:${PN} += "${datadir}/applications/rxvt.desktop ${datadir}/pixmaps/rxvt.png ${datadir}/terminfo"
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop
index 6b7978a..1ac3d99 100644
--- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop
+++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/rxvt.desktop
@@ -1,6 +1,6 @@
 [Desktop Entry]
 Version=1.0
-Name=Terminal
+Name=Rxvt Terminal
 Comment=A unicode capable rxvt clone
 Exec=rxvt
 Icon=utilities-terminal
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch
index 4266d11..a819e22 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch
@@ -1,7 +1,7 @@
-From 73efe0ea75c3ac4cb088f300acc3de44d5dd3344 Mon Sep 17 00:00:00 2001
+From 575b848a3b3c14280679db80d0d518922c83d62a Mon Sep 17 00:00:00 2001
 From: Kai Kang <kai.kang@windriver.com>
 Date: Fri, 11 Aug 2023 14:20:48 +0800
-Subject: [PATCH] [CMake] Add a variable to control macro
+Subject: [PATCH] Add a variable to control macro
  __PAS_ALWAYS_INLINE_BUT_NOT_INLINE
  https://bugs.webkit.org/show_bug.cgi?id=260065
 
@@ -44,7 +44,7 @@
  2 files changed, 8 insertions(+), 1 deletion(-)
 
 diff --git a/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h b/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h
-index 5d5fb38cddbd..a554f70064eb 100644
+index 5d5fb38c..a554f700 100644
 --- a/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h
 +++ b/Source/bmalloc/libpas/src/libpas/pas_utils_prefix.h
 @@ -44,7 +44,7 @@ __PAS_BEGIN_EXTERN_C;
@@ -57,7 +57,7 @@
  #else
  #define __PAS_ALWAYS_INLINE_BUT_NOT_INLINE
 diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake
-index 9b2fecf9a0d3..7cdc2b6afbe0 100644
+index 9b2fecf9..7cdc2b6a 100644
 --- a/Source/cmake/WebKitCompilerFlags.cmake
 +++ b/Source/cmake/WebKitCompilerFlags.cmake
 @@ -453,3 +453,10 @@ endif ()
@@ -71,6 +71,3 @@
 +if (WEBKIT_NO_INLINE_HINTS)
 +    add_definitions(-DWEBKIT_NO_INLINE_HINTS)
 +endif ()
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
index 8ae39f1..8e29ce1 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -1,4 +1,4 @@
-From 10cfdcc905915d8814c609008a069102f2bc7e39 Mon Sep 17 00:00:00 2001
+From 6348f91c29e2350ad3fec5264aa57dd4994d4583 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 27 Oct 2015 16:02:19 +0200
 Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
@@ -14,7 +14,7 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
-index af039cbb..b3e810cd 100644
+index fdc56b21..d42eca52 100644
 --- a/Source/cmake/FindGI.cmake
 +++ b/Source/cmake/FindGI.cmake
 @@ -72,6 +72,9 @@ if (PKG_CONFIG_FOUND)
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
index e5ece82..a4ef565 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
@@ -1,4 +1,4 @@
-From 95398982f4a120147a98a27e176facf6d95b2bf7 Mon Sep 17 00:00:00 2001
+From a180f6821f81c65e320be0cebac72b4dcf86342e Mon Sep 17 00:00:00 2001
 From: Adrian Perez de Castro <aperez@igalia.com>
 Date: Thu, 2 Jun 2022 11:19:06 +0300
 Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
@@ -33,7 +33,6 @@
 
 Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  .../cpu/arm/filters/FELightingNEON.cpp        |  4 +-
  .../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/no-musttail-arm.patch b/poky/meta/recipes-sato/webkit/webkitgtk/no-musttail-arm.patch
index a6d67c1..8ce37a0 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/no-musttail-arm.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/no-musttail-arm.patch
@@ -1,4 +1,7 @@
-clang/arm: Do not use MUST_TAIL_CALL
+From a9c874f7418cefbe78f7cd26505ae495cb59bbcf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 12 Jan 2024 09:21:39 -0800
+Subject: [PATCH] clang/arm: Do not use MUST_TAIL_CALL
 
 This causes clang-17 to crash see [1]
 this code is new in webkit 2.42[2] thats why we do not see the crash in older webkit
@@ -8,6 +11,12 @@
 
 Upstream-Status: Inappropriate [work around to avoid clang compiler crash]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/WTF/wtf/Compiler.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h
+index 0ea5cb76..c5480dbc 100644
 --- a/Source/WTF/wtf/Compiler.h
 +++ b/Source/WTF/wtf/Compiler.h
 @@ -284,7 +284,7 @@
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch b/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch
index e866a1a..93a431a 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/reproducibility.patch
@@ -1,3 +1,8 @@
+From d096b945113ddecaf33062296e20b6d5a007cab3 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Mon, 3 Jan 2022 14:18:34 +0000
+Subject: [PATCH] webkitgtk: Add reproducibility fix
+
 Injection a year based on the current date isn't reproducible. Hack this
 to a specific year for now for reproducibilty and to avoid autobuilder failures.
 
@@ -6,11 +11,14 @@
 
 Upstream-Status: Pending [could be reworked]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ Source/JavaScriptCore/generator/GeneratedFile.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
-===================================================================
---- webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb
-+++ webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+diff --git a/Source/JavaScriptCore/generator/GeneratedFile.rb b/Source/JavaScriptCore/generator/GeneratedFile.rb
+index 6ed2b6e4..86a28286 100644
+--- a/Source/JavaScriptCore/generator/GeneratedFile.rb
++++ b/Source/JavaScriptCore/generator/GeneratedFile.rb
 @@ -25,7 +25,7 @@ require 'date'
  require 'digest'
  
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/t6-not-declared.patch b/poky/meta/recipes-sato/webkit/webkitgtk/t6-not-declared.patch
new file mode 100644
index 0000000..d4720e4
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/t6-not-declared.patch
@@ -0,0 +1,37 @@
+From 3d5373575695b293b8559155431d0079a6153aff Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@redhat.com>
+Date: Mon, 5 Feb 2024 11:00:49 -0600
+Subject: [PATCH] =?UTF-8?q?[GTK]=20[2.42.5]=20LowLevelInterpreter.cpp:339:?=
+ =?UTF-8?q?21:=20error:=20=E2=80=98t6=E2=80=99=20was=20not=20declared=20in?=
+ =?UTF-8?q?=20this=20scope=20https://bugs.webkit.org/show=5Fbug.cgi=3Fid?=
+ =?UTF-8?q?=3D268739?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Unreviewed build fix. Seems a backport went badly, and we didn't notice
+because the code is architecture-specific.
+
+* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:
+(JSC::CLoop::execute):
+
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/3d5373575695b293b8559155431d0079a6153aff]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/JavaScriptCore/llint/LowLevelInterpreter.cpp | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
+index 5064ead6cd2e7..9a2e2653b1219 100644
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
+@@ -336,8 +336,6 @@ JSValue CLoop::execute(OpcodeID entryOpcodeID, void* executableAddress, VM* vm,
+     UNUSED_VARIABLE(t2);
+     UNUSED_VARIABLE(t3);
+     UNUSED_VARIABLE(t5);
+-    UNUSED_VARIABLE(t6);
+-    UNUSED_VARIABLE(t7);
+ 
+     struct StackPointerScope {
+         StackPointerScope(CLoopStack& stack)
+
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.42.5.bb
similarity index 98%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.42.5.bb
index 997aa55..6790814 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.42.5.bb
@@ -15,8 +15,9 @@
            file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
            file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \
            file://no-musttail-arm.patch \
+           file://t6-not-declared.patch \
            "
-SRC_URI[sha256sum] = "5720aa3e8627f1b9f63252187d4df0f8233ae71d697b1796ebfbe5ca750bd118"
+SRC_URI[sha256sum] = "b64278c1f20b8cfdbfb5ff573c37d871aba74a1db26d9b39f74e8953fe61e749"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
 
diff --git a/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch b/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
index 66687a5..bc811d6 100644
--- a/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
+++ b/poky/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
@@ -1,4 +1,4 @@
-From 6ab00a4279823829a9b82dc9e4d055da4de88c6e Mon Sep 17 00:00:00 2001
+From fe9ebb8c0fa7b84a9c5c667386b8fbb3baea2fad Mon Sep 17 00:00:00 2001
 From: Markus Volk <f_l_k@t-online.de>
 Date: Mon, 12 Dec 2022 15:42:42 +0100
 Subject: [PATCH] remove hardcoded path
@@ -10,11 +10,11 @@
 
 Upstream-Status: Inappropriate [oe-specific]
 ---
- meson.build       | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index fd0e3373..2f273ada 100644
+index fa171d5..79d5168 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -185,10 +185,10 @@ endif
@@ -30,6 +30,3 @@
          else
              error('Unable to find Snowball header "libstemmer.h". Please ensure libstemmer/Snowball is installed properly in order to continue.')
          endif
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-support/appstream/appstream_1.0.0.bb b/poky/meta/recipes-support/appstream/appstream_1.0.2.bb
similarity index 92%
rename from poky/meta/recipes-support/appstream/appstream_1.0.0.bb
rename to poky/meta/recipes-support/appstream/appstream_1.0.2.bb
index 3f8bfcd..7eb12a0 100644
--- a/poky/meta/recipes-support/appstream/appstream_1.0.0.bb
+++ b/poky/meta/recipes-support/appstream/appstream_1.0.2.bb
@@ -28,7 +28,7 @@
 	https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \
 	file://0001-remove-hardcoded-path.patch \
 "
-SRC_URI[sha256sum] = "ef23477a380e8b525e92cfa87687f1146b9cef74c641349a1ae11250be5401d0"
+SRC_URI[sha256sum] = "1a5148ca97dcbf5eb6e9c380278bb0d20938569292ea8652df1b3cac8bd2736b"
 
 S = "${WORKDIR}/AppStream-${PV}"
 
diff --git a/poky/meta/recipes-support/attr/acl/0001-chacl-Use-portable-version-of-dirent-and-readdir.patch b/poky/meta/recipes-support/attr/acl/0001-chacl-Use-portable-version-of-dirent-and-readdir.patch
deleted file mode 100644
index 775675e..0000000
--- a/poky/meta/recipes-support/attr/acl/0001-chacl-Use-portable-version-of-dirent-and-readdir.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1a5671a4eb13b81b98c3e71f00370781563f66d8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 10 Nov 2022 17:57:24 -0800
-Subject: [PATCH] chacl: Use portable version of dirent and readdir
-
-Using 64bit versions on 32bit architectures should be enabled with
---enable-largefile, this makes it portable across musl and glibc
-
-Upstream-Status: Backport [https://git.savannah.nongnu.org/cgit/acl.git/commit/?id=2b42f64737adf6a2ddd491213580d6e9cdd2f5af]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tools/chacl.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tools/chacl.c b/tools/chacl.c
-index 525a7ff..8fff875 100644
---- a/tools/chacl.c
-+++ b/tools/chacl.c
-@@ -320,7 +320,7 @@ walk_dir(acl_t acl, acl_t dacl, const char *fname)
- {
- 	int failed = 0;
- 	DIR *dir;
--	struct dirent64 *d;
-+	struct dirent *d;
- 	char *name;
- 
- 	if ((dir = opendir(fname)) == NULL) {
-@@ -332,7 +332,7 @@ walk_dir(acl_t acl, acl_t dacl, const char *fname)
- 		return(0);	/* got a file, not an error */
- 	}
- 
--	while ((d = readdir64(dir)) != NULL) {
-+	while ((d = readdir(dir)) != NULL) {
- 		/* skip "." and ".." entries */
- 		if (strcmp(d->d_name, ".") == 0 || strcmp(d->d_name, "..") == 0)
- 			continue;
--- 
-2.38.1
-
diff --git a/poky/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch b/poky/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
index ba2ffee..219feac 100644
--- a/poky/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
+++ b/poky/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
@@ -1,4 +1,4 @@
-From 9e08219e0e99ee2589cf35fa8d52cef3515accce Mon Sep 17 00:00:00 2001
+From 7dec6fa3b3494a55120402ff1ea3eb96b67138e8 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 12 Dec 2019 15:47:49 +0100
 Subject: [PATCH] test: patch out failing bits
@@ -58,6 +58,3 @@
  	$ : > f
  	$ : <> f
  	>~ .*f: Permission denied$
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch b/poky/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
index 57ef0bb..748f37f 100644
--- a/poky/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
+++ b/poky/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
@@ -1,4 +1,4 @@
-From 39d332a8801de5d9ef09dacb3dba85c208b7b2ad Mon Sep 17 00:00:00 2001
+From 42ae3f8a5e32ba0681ccd1552a203ddad8748a6e Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 12 Dec 2019 13:45:52 +0100
 Subject: [PATCH] tests: do not hardcode the build path into a helper library
@@ -10,7 +10,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/test/Makemodule.am b/test/Makemodule.am
-index 17d4927..015de7f 100644
+index e1d715d..cffe732 100644
 --- a/test/Makemodule.am
 +++ b/test/Makemodule.am
 @@ -30,7 +30,7 @@ EXTRA_DIST += \
@@ -21,4 +21,4 @@
 +libtestlookup_la_CFLAGS = -DBASEDIR=\"/tmp/acl-ptest\"
  libtestlookup_la_LDFLAGS = -rpath $(abs_builddir)
  
- AM_TESTS_ENVIRONMENT = PATH="$(abs_top_builddir):$$PATH";
+ # Make sure translations don't break tests when matching output.
diff --git a/poky/meta/recipes-support/attr/acl_2.3.1.bb b/poky/meta/recipes-support/attr/acl_2.3.2.bb
similarity index 94%
rename from poky/meta/recipes-support/attr/acl_2.3.1.bb
rename to poky/meta/recipes-support/attr/acl_2.3.2.bb
index 9badd33..6178473 100644
--- a/poky/meta/recipes-support/attr/acl_2.3.1.bb
+++ b/poky/meta/recipes-support/attr/acl_2.3.2.bb
@@ -19,10 +19,9 @@
            file://run-ptest \
            file://0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch \
            file://0001-test-patch-out-failing-bits.patch \
-           file://0001-chacl-Use-portable-version-of-dirent-and-readdir.patch \
            "
 
-SRC_URI[sha256sum] = "760c61c68901b37fdd5eefeeaf4c0c7a26bdfdd8ac747a1edff1ce0e243c11af"
+SRC_URI[sha256sum] = "5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c"
 
 inherit autotools gettext ptest
 
diff --git a/poky/meta/recipes-support/bmap-tools/bmap-tools_git.bb b/poky/meta/recipes-support/bmaptool/bmaptool_git.bb
similarity index 78%
rename from poky/meta/recipes-support/bmap-tools/bmap-tools_git.bb
rename to poky/meta/recipes-support/bmaptool/bmaptool_git.bb
index ffb6ccf..87328af 100644
--- a/poky/meta/recipes-support/bmap-tools/bmap-tools_git.bb
+++ b/poky/meta/recipes-support/bmaptool/bmaptool_git.bb
@@ -1,16 +1,16 @@
 SUMMARY = "Tools to generate block map (AKA bmap) and flash images using bmap"
-DESCRIPTION = "Bmap-tools - tools to generate block map (AKA bmap) and flash images using \
-bmap. Bmaptool is a generic tool for creating the block map (bmap) for a file, \
+DESCRIPTION = "bmaptool - tools to generate block map (AKA bmap) and flash images using \
+bmap. bmaptool is a generic tool for creating the block map (bmap) for a file, \
 and copying files using the block map. The idea is that large file containing \
 unused blocks, like raw system image files, can be copied or flashed a lot \
 faster with bmaptool than with traditional tools like "dd" or "cp"."
-HOMEPAGE = "https://github.com/01org/bmap-tools"
+HOMEPAGE = "https://github.com/yoctoproject/bmaptool"
 SECTION = "console/utils"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
-SRC_URI = "git://github.com/intel/${BPN};branch=main;protocol=https \
+SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https \
 	file://0001-BmapCopy.py-fix-error-message.patch \
 	file://0002-CLI.py-fix-block-device-udev-race-condition.patch \
 	file://0003-BmapCopy.py-tweak-suggested-udev-rule.patch \
diff --git a/poky/meta/recipes-support/bmap-tools/files/0001-BmapCopy.py-fix-error-message.patch b/poky/meta/recipes-support/bmaptool/files/0001-BmapCopy.py-fix-error-message.patch
similarity index 100%
rename from poky/meta/recipes-support/bmap-tools/files/0001-BmapCopy.py-fix-error-message.patch
rename to poky/meta/recipes-support/bmaptool/files/0001-BmapCopy.py-fix-error-message.patch
diff --git a/poky/meta/recipes-support/bmap-tools/files/0002-CLI.py-fix-block-device-udev-race-condition.patch b/poky/meta/recipes-support/bmaptool/files/0002-CLI.py-fix-block-device-udev-race-condition.patch
similarity index 100%
rename from poky/meta/recipes-support/bmap-tools/files/0002-CLI.py-fix-block-device-udev-race-condition.patch
rename to poky/meta/recipes-support/bmaptool/files/0002-CLI.py-fix-block-device-udev-race-condition.patch
diff --git a/poky/meta/recipes-support/bmap-tools/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch b/poky/meta/recipes-support/bmaptool/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch
similarity index 100%
rename from poky/meta/recipes-support/bmap-tools/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch
rename to poky/meta/recipes-support/bmaptool/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch
diff --git a/poky/meta/recipes-support/boost/boost-1.83.0.inc b/poky/meta/recipes-support/boost/boost-1.84.0.inc
similarity index 90%
rename from poky/meta/recipes-support/boost/boost-1.83.0.inc
rename to poky/meta/recipes-support/boost/boost-1.84.0.inc
index da275f1..5bbea2b 100644
--- a/poky/meta/recipes-support/boost/boost-1.83.0.inc
+++ b/poky/meta/recipes-support/boost/boost-1.84.0.inc
@@ -12,7 +12,7 @@
 BOOST_P = "boost_${BOOST_VER}"
 
 SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2"
-SRC_URI[sha256sum] = "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e"
+SRC_URI[sha256sum] = "cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454"
 
 UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
 UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
diff --git a/poky/meta/recipes-support/boost/boost-build-native_1.83.0.bb b/poky/meta/recipes-support/boost/boost-build-native_1.84.0.bb
similarity index 100%
rename from poky/meta/recipes-support/boost/boost-build-native_1.83.0.bb
rename to poky/meta/recipes-support/boost/boost-build-native_1.84.0.bb
diff --git a/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
index 4fe1574..9ba5d5c 100644
--- a/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
+++ b/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
@@ -1,4 +1,4 @@
-From 21ba558abe074e7d49bdc931018ce2138e6e8eb5 Mon Sep 17 00:00:00 2001
+From 18185e939ca121335a6172c8e50872af8122a759 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 18 Dec 2018 15:42:57 +0100
 Subject: [PATCH] Don't set up arch/instruction-set flags, we do that
@@ -8,16 +8,15 @@
 Upstream-Status: Inappropriate
 Signed-off-by: Christopher Larson <chris_larson@mentor.com>
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
 ---
  tools/build/src/tools/gcc.jam | 153 ----------------------------------
  1 file changed, 153 deletions(-)
 
 diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
-index 726555369..5c5f8ba91 100644
+index 834f5e1bf..493a43e6d 100644
 --- a/tools/build/src/tools/gcc.jam
 +++ b/tools/build/src/tools/gcc.jam
-@@ -1124,156 +1124,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
+@@ -1113,156 +1113,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
          <architecture>$(architecture)/<instruction-set>$(instruction-set)
          : $(values) ;
  }
diff --git a/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch b/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
index 78b1922..913810a 100644
--- a/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
+++ b/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
@@ -1,4 +1,4 @@
-From 59402e3a61d14eb7ce8c2019ea1a87ad4bd28605 Mon Sep 17 00:00:00 2001
+From bbb0845c0a79238fb2e84cca41826a0944b6ce7e Mon Sep 17 00:00:00 2001
 From: Anuj Mittal <anuj.mittal@intel.com>
 Date: Thu, 14 Nov 2019 10:13:53 +0800
 Subject: [PATCH] dont setup compiler flags -m32/-m64
@@ -13,13 +13,14 @@
  1 file changed, 14 deletions(-)
 
 diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
-index c7e3cf3..24486e0 100644
+index 493a43e6d..42dccbdfe 100644
 --- a/tools/build/src/tools/gcc.jam
 +++ b/tools/build/src/tools/gcc.jam
-@@ -430,20 +430,6 @@ local rule compile-link-flags ( * )
+@@ -360,20 +360,6 @@ local rule compile-link-flags ( * )
+     compile-link-flags <link>shared/<target-os>$(non-windows) : -fPIC ;
  }
  
- {
+-{
 -    # Handle address-model
 -    compile-link-flags <target-os>aix/<address-model>32 : -maix32 ;
 -    compile-link-flags <target-os>aix/<address-model>64 : -maix64 ;
@@ -33,10 +34,6 @@
 -    compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ;
 -}
 -
--{
+ {
      # Handle threading
      local rule threading-flags ( * )
-     {
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch b/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
index 595ba17..9b6fcc6 100644
--- a/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
+++ b/poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
@@ -1,4 +1,4 @@
-From cabfcba1ff7511ffd6b91ca244288d44f585aad2 Mon Sep 17 00:00:00 2001
+From d6864bd78c01c5e8578805a7b67555c70a0e99a2 Mon Sep 17 00:00:00 2001
 From: Jackie Huang <jackie.huang@windriver.com>
 Date: Fri, 23 Sep 2016 01:04:50 -0700
 Subject: [PATCH] boost-math: disable pch for gcc
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2
-index e19fb2e..82472a7 100644
+index fd840287e..5aff7d724 100644
 --- a/libs/math/build/Jamfile.v2
 +++ b/libs/math/build/Jamfile.v2
-@@ -13,7 +13,7 @@ project
+@@ -14,7 +14,7 @@ project
        #<toolset>intel-linux:<pch>off
        <toolset>intel-darwin:<pch>off
        <toolset>msvc-7.1:<pch>off
@@ -26,6 +26,3 @@
        #<toolset>gcc:<cxxflags>-fvisibility=hidden
        <toolset>intel-linux:<cxxflags>-fvisibility=hidden
        #<toolset>sun:<cxxflags>-xldscope=hidden
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/boost/boost_1.83.0.bb b/poky/meta/recipes-support/boost/boost_1.84.0.bb
similarity index 100%
rename from poky/meta/recipes-support/boost/boost_1.83.0.bb
rename to poky/meta/recipes-support/boost/boost_1.84.0.bb
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_253.bb b/poky/meta/recipes-support/diffoscope/diffoscope_259.bb
similarity index 93%
rename from poky/meta/recipes-support/diffoscope/diffoscope_253.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_259.bb
index a1fc63e..eca2c20 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_253.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_259.bb
@@ -12,7 +12,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "ca3d826b691f4998d6de28a016b3555d56a7283b97ad92944ce643ea6e7eb614"
+SRC_URI[sha256sum] = "c1f14452467f84c4be804a3725cbfdd5eadf977ece7ad463be8b647d1a87fb42"
 
 RDEPENDS:${PN} += "\
         binutils \
diff --git a/poky/meta/recipes-support/libbsd/libbsd_0.11.8.bb b/poky/meta/recipes-support/libbsd/libbsd_0.12.1.bb
similarity index 90%
rename from poky/meta/recipes-support/libbsd/libbsd_0.11.8.bb
rename to poky/meta/recipes-support/libbsd/libbsd_0.12.1.bb
index 17049c8..161dc6d 100644
--- a/poky/meta/recipes-support/libbsd/libbsd_0.11.8.bb
+++ b/poky/meta/recipes-support/libbsd/libbsd_0.12.1.bb
@@ -33,12 +33,12 @@
 LICENSE:${PN}-src = "BSD-3-Clause & ISC & PD"
 LICENSE:${PN}-staticdev = "BSD-3-Clause & ISC & PD"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=befe09fada57bdcf7f7c12f51081b08f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9b087a0981a1fcad42efbba6d4925a0f"
 SECTION = "libs"
 
 SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "55fdfa2696fb4d55a592fa9ad14a9df897c7b0008ddb3b30c419914841f85f33"
+SRC_URI[sha256sum] = "d7747f8ec1baa6ff5c096a9dd587c061233dec90da0f1aedd66d830f6db6996a"
 
 inherit autotools pkgconfig
 
diff --git a/poky/meta/recipes-support/libpcre/libpcre2_10.42.bb b/poky/meta/recipes-support/libpcre/libpcre2_10.43.bb
similarity index 91%
rename from poky/meta/recipes-support/libpcre/libpcre2_10.42.bb
rename to poky/meta/recipes-support/libpcre/libpcre2_10.43.bb
index f471b3f..fd0bd79 100644
--- a/poky/meta/recipes-support/libpcre/libpcre2_10.42.bb
+++ b/poky/meta/recipes-support/libpcre/libpcre2_10.43.bb
@@ -8,14 +8,14 @@
 HOMEPAGE = "http://www.pcre.org"
 SECTION = "devel"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=41bfb977e4933c506588724ce69bf5d2"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=321a5eb46acae6b6c1ff2c7a866d836a"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2"
 
 GITHUB_BASE_URI = "https://github.com/PhilipHazel/pcre2/releases"
 UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>\d+(\.\d+)+)$"
 
-SRC_URI[sha256sum] = "8d36cd8cb6ea2a4c2bb358ff6411b0c788633a2a45dabbf1aeb4b701d1b5e840"
+SRC_URI[sha256sum] = "e2a53984ff0b07dfdb5ae4486bbb9b21cca8e7df2434096cc9bf1b728c350bcb"
 
 CVE_PRODUCT = "pcre2"
 
diff --git a/poky/meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch b/poky/meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch
deleted file mode 100644
index 3c223e0..0000000
--- a/poky/meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 95e601ce116dd46ea7915c171976b85ea0905d58 Mon Sep 17 00:00:00 2001
-From: Lonnie Abelbeck <lonnie@abelbeck.com>
-Date: Sun, 8 May 2022 14:05:56 -0500
-Subject: [PATCH] configure.ac: Link with -latomic only if no atomic builtins
-
-Follow-up to 561dbda, a check of GCC atomic builtins needs to be done
-first.
-
-I'm no autoconf guru, but using this:
-https://github.com/mesa3d/mesa/blob/0df485c285b73c34ba9062f0c27e55c3c702930d/configure.ac#L469
-as inspiration, I created a pre-check before calling AC_SEARCH_LIBS(...)
-
-Fixes #1135
-Closes #1139
-Upstream-Status: Backport [https://github.com/kraj/libusb/commit/95e601ce116dd46ea7915c171976b85ea0905d58]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac          | 16 +++++++++++++++-
- libusb/version_nano.h |  2 +-
- 2 files changed, 16 insertions(+), 2 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -153,7 +153,21 @@ if test "x$platform" = xposix; then
- 	AC_SEARCH_LIBS([pthread_create], [pthread],
- 		[test "x$ac_cv_search_pthread_create" != "xnone required" && AC_SUBST(THREAD_LIBS, [-lpthread])],
- 		[], [])
--	AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic])
-+	dnl Check for new-style atomic builtins. We first check without linking to -latomic.
-+	AC_MSG_CHECKING(whether __atomic_load_n is supported)
-+	AC_LINK_IFELSE([AC_LANG_SOURCE([[
-+	#include <stdint.h>
-+	int main() {
-+		struct {
-+			uint64_t *v;
-+		} x;
-+		return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) &
-+		       (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL);
-+	}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes, GCC_ATOMIC_BUILTINS_SUPPORTED=no)
-+	AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_SUPPORTED)
-+	if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" != xyes; then
-+		AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic])
-+	fi
- elif test "x$platform" = xwindows; then
- 	AC_DEFINE([PLATFORM_WINDOWS], [1], [Define to 1 if compiling for a Windows platform.])
- else
diff --git a/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb b/poky/meta/recipes-support/libusb/libusb1_1.0.27.bb
similarity index 82%
rename from poky/meta/recipes-support/libusb/libusb1_1.0.26.bb
rename to poky/meta/recipes-support/libusb/libusb1_1.0.27.bb
index 2af6fcd..f2431d7 100644
--- a/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb
+++ b/poky/meta/recipes-support/libusb/libusb1_1.0.27.bb
@@ -11,14 +11,13 @@
 BBCLASSEXTEND = "native nativesdk"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \
-           file://0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch \
            file://run-ptest \
-          "
+           "
 
 GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases"
 UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
 
-SRC_URI[sha256sum] = "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5"
+SRC_URI[sha256sum] = "ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575"
 
 S = "${WORKDIR}/libusb-${PV}"
 
@@ -41,7 +40,7 @@
 }
 
 do_install_ptest() {
-    install -m 755 ${B}/tests/.libs/stress ${D}${PTEST_PATH}
+    install -m 755 ${B}/tests/stress ${D}${PTEST_PATH}
 }
 
 FILES:${PN} += "${base_libdir}/*.so.*"
diff --git a/poky/meta/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch b/poky/meta/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch
deleted file mode 100644
index e4db096..0000000
--- a/poky/meta/recipes-support/nghttp2/nghttp2/0001-fetch-ocsp-response-use-python3.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 73ec79432fc557a8be4f1500982b1c0f5fdf12a9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
-Date: Thu, 7 Nov 2019 09:58:52 +0000
-Subject: [PATCH] fetch-ocsp-response: use python3
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [oe specific]
-Signed-off-by: André Draszik <git@andred.net>
----
- script/fetch-ocsp-response | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/script/fetch-ocsp-response b/script/fetch-ocsp-response
-index 0ff7461..185116b 100755
---- a/script/fetch-ocsp-response
-+++ b/script/fetch-ocsp-response
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- # nghttp2 - HTTP/2 C Library
--- 
-2.23.0.rc1
-
diff --git a/poky/meta/recipes-support/nghttp2/nghttp2_1.59.0.bb b/poky/meta/recipes-support/nghttp2/nghttp2_1.60.0.bb
similarity index 78%
rename from poky/meta/recipes-support/nghttp2/nghttp2_1.59.0.bb
rename to poky/meta/recipes-support/nghttp2/nghttp2_1.60.0.bb
index fa0013c..cf62c32 100644
--- a/poky/meta/recipes-support/nghttp2/nghttp2_1.59.0.bb
+++ b/poky/meta/recipes-support/nghttp2/nghttp2_1.60.0.bb
@@ -4,11 +4,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
 
-SRC_URI = "\
-    ${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz \
-    file://0001-fetch-ocsp-response-use-python3.patch \
-"
-SRC_URI[sha256sum] = "fdc9bd71f5cf8d3fdfb63066b89364c10eb2fdeab55f3c6755cd7917b2ec4ffb"
+SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz"
+SRC_URI[sha256sum] = "625d6c3da1d9ca4fd643a638256431ae68fd1901653b2a61a245eea7b261bf4e"
 
 inherit cmake manpages python3native github-releases
 PACKAGECONFIG[manpages] = ""
diff --git a/poky/meta/recipes-support/taglib/taglib_1.13.1.bb b/poky/meta/recipes-support/taglib/taglib_2.0.bb
similarity index 93%
rename from poky/meta/recipes-support/taglib/taglib_1.13.1.bb
rename to poky/meta/recipes-support/taglib/taglib_2.0.bb
index b26563a..4bf9be1 100644
--- a/poky/meta/recipes-support/taglib/taglib_1.13.1.bb
+++ b/poky/meta/recipes-support/taglib/taglib_2.0.bb
@@ -7,11 +7,11 @@
                     file://COPYING.MPL;md5=bfe1f75d606912a4111c90743d6c7325 \
                     file://taglib/audioproperties.h;beginline=1;endline=24;md5=9df2c7399519b7310568a7c55042ecee"
 
-DEPENDS = "zlib"
+DEPENDS = "zlib utfcpp"
 
 SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz"
 
-SRC_URI[sha256sum] = "c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b"
+SRC_URI[sha256sum] = "e36ea877a6370810b97d84cf8f72b1e4ed205149ab3ac8232d44c850f38a2859"
 
 UPSTREAM_CHECK_URI = "https://taglib.org/"
 UPSTREAM_CHECK_REGEX = "taglib-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb b/poky/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb
new file mode 100644
index 0000000..5ac6fd3
--- /dev/null
+++ b/poky/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = " UTF-8 with C++ in a Portable Way"
+HOMEPAGE = "https://github.com/nemtrif/utfcpp"
+
+LICENSE = "BSL-1.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e4224ccaecb14d942c71d31bef20d78c \
+                    file://extern/ftest/LICENSE;md5=d33c6488d3b003723a5f17ac984db030"
+
+SRC_URI = "gitsm://github.com/nemtrif/utfcpp;protocol=https;branch=master"
+
+SRCREV = "6be08bbea14ffa0a5c594257fb6285a054395cd7"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+FILES:${PN}-dev += "${datadir}/utf8cpp/cmake"
diff --git a/poky/scripts/lib/wic/misc.py b/poky/scripts/lib/wic/misc.py
index 2b90821..1a7c140 100644
--- a/poky/scripts/lib/wic/misc.py
+++ b/poky/scripts/lib/wic/misc.py
@@ -25,7 +25,7 @@
 logger = logging.getLogger('wic')
 
 # executable -> recipe pairs for exec_native_cmd
-NATIVE_RECIPES = {"bmaptool": "bmap-tools",
+NATIVE_RECIPES = {"bmaptool": "bmaptool",
                   "dumpe2fs": "e2fsprogs",
                   "grub-mkimage": "grub-efi",
                   "isohybrid": "syslinux",