subtree updates

meta-security: 30e755c592..283a773f24:
  Armin Kuster (2):
        meta-security: Drop ${PYTHON_PN}
        openscap: update to tip to fix new build issue.

  Jeremy A. Puhlman (4):
        arpwatch: fix misspelling of PACKAGECONFIG
        aprwatch: Add path for sendmail
        Check for usrmerge before removing /usr/lib
        arpwatch: install man8 dir

  Kevin Hao (4):
        docs: dm-verity.txt: Fix a typo
        dm-verity: Adjust the image names according to the oe-core change
        dm-verity: Set the IMAGE_FSTYPES correctly when dm-verity is enabled
        dm-verity-image-initramfs: Set IMAGE_NAME_SUFFIX to empty

  Max Krummenacher (1):
        layer.conf: Update for the scarthgap release series

  Mingli Yu (1):
        python3-pyinotify: Make asyncore support optional for Python 3

poky: 7165c23237..110ee701b3:
  Alejandro Hernandez Samaniego (1):
        python3-manifest: Sync RDEPENDS with latest version

  Alexander Kanavin (11):
        meson: correct upstream version check (exclude pre-releases)
        cargo-c-native: convert from git fetcher to crate fetcher
        cargo-c-native: update 0.9.18 -> 0.9.30
        man-pages: use env from coreutils-native
        sdk-manual: correctly describe separate build-sysroots tasks in direct sdk workflows
        dev/ref-manual: document conf-summary.txt together with conf-notes.txt
        dev-manual: improve descriptions of 'bitbake -S printdiff'
        wayland: fix upstream version check by asking gitlab directly
        python3: correct upstream version check
        bitbake: bitbake: improve descriptions of '-S printdiff'
        selftest/sstatetests: run CDN check twice, ignoring errors the first time

  Alexandre Truong (1):
        oeqa/selftest/devtool: fix test_devtool_add_git_style2

  Anibal Limon (1):
        wic: bootimg-partition allow to set var to get boot files

  BELOUARGA Mohamed (1):
        ref-manual: add documentation of the variable SPDX_NAMESPACE_PREFIX

  Bartosz Golaszewski (1):
        linux-firmware: update to 20240312

  Baruch Siach (1):
        oeqa/selftest/overlayfs: test read-only rootfs

  Bruce Ashfield (16):
        linux-yocto/6.6: cfg: generic arm64
        linux-yocto/6.6: cfg: riscv XHCI
        linux-yocto/6.6: update to v6.6.21
        linux-yocto/6.6: update CVE exclusions (6.6.21)
        linux-yocto/6.6: cfg: drop unsettable options
        linux-yocto/6.6: drm/tilcdc: Set preferred depth
        linux-yocto/6.6: update to v6.6.22
        linux-yocto/6.6: update CVE exclusions (6.6.22)
        yocto-bsps: update to v6.6.21
        linux-yocto/6.6: cfg: genericarm64 platform/peripheral support
        linux-yocto/6.6: cfg: genericarm64 configuration updates
        linux-yocto/6.6: nftables: ptest and cleanup tweaks
        linux-yocto/6.6: update to v6.6.23
        linux-yocto/6.6: update CVE exclusions (6.6.23)
        linux-yocto-dev: bump to v6.9
        lttng-modules: update to v2.13.12

  Changqing Li (1):
        dnf: fix Exception handling for class ProcessLock

  Chen Qi (1):
        ovmf: set CVE_PRODUCT and CVE_VERSION

  Christian Taedcke (1):
        kernel-fitImage: only include valid compatible line

  Derek Erdmann (1):
        bitbake: fetch2/git: Install Git LFS in local repository config

  Enrico Jörns (3):
        cml1: remove needless check for write_taint attribute
        cml1: prompt location of updated .config after do_menuconfig()
        perf: fix TMPDIR contamination for recent mainline kernels

  Enrico Scholz (1):
        shadow: fix copydir operation with 'pseudo'

  Felix Moessbauer (1):
        bitbake: utils: better estimate number of available cpus

  Harish Sadineni (3):
        gcc: Oe-selftest failure analysis - fix for tcl errors
        gcc: Oe-selftest failure analysis - fix for vect-simd test failures
        binutils: gprofng - change use of bignum to use of bignint

  Jermain Horsman (1):
        bblayers/makesetup.py: Move git utility functions to oe.buildcfg module

  Joe Slater (1):
        systemd: enable mac based names in NamePolicy

  Jose Quaresma (5):
        go.bbclass: set GOPROXY
        elfutils: fix unused variable BUFFER_SIZE
        go: keep the patches in order
        go: upgrade 1.22.1 -> 1.22.2
        sstatesig: fix netrc.NetrcParseError exception

  Joshua Watt (4):
        sstatesig: Set hash server credentials from bitbake variables
        bitbake: siggen: Add support for hashserve credentials
        sstatesig: Warn on bad .netrc
        bitbake: bitbake-hashclient: Warn on bad .netrc

  Jörg Sommer (1):
        autotools: update link in comment for cross compiling

  Kevin Hao (1):
        image-live.bbclass: Adjust the default value for INITRD_LIVE

  Khem Raj (13):
        systemd: Check for directory before chmod'ing it
        llvm: Update to 18.1.1 release
        elfutils: Fix build break with clang
        glibc: Update to tip of 2.39 branch
        pam: Fix build with musl
        piglit: Switch to upstreamed patch for musl fix
        qemuriscv: Fix kbd and mouse emulation for qemuriscv64
        llvm: Upgrade to 18.1.2 bugfix release
        glibc: Repace aarch configure patch fix with a backport
        valgrind: Backport fixes from 3.22 branch
        tcl: Forward port skip logic for musl ptests
        readline: Apply patches from readline-8.2-patches
        mesa: Drop LLVM-17 patch

  Lee Chee Yang (1):
        migration-guides: add release notes for 4.0.17

  Marcel Ziswiler (1):
        mesa: enable imagination powervr support

  Markus Volk (11):
        mesa: fix opencl-spirv build
        vala: merge bb and inc files
        vala: fix for gtk4 prior to 4.14
        libsoup: enable vapi support
        gsettings-desktop-schemas: update 45.0 -> 46.0
        libadwaita: update 1.4.4 -> 1.5.0
        gtk4: update 4.12.5 -> 4.14.1
        systemd: disable mdns feature in resolved for zeroconf
        webkitgtk: update 2.42.5 -> 2.44.0
        gtk+3: disable wayland without opengl
        epiphany: update 45.3 -> 46.0

  Martin Jansa (2):
        contributor-guide: be more specific about meta-* trees
        pixman: explicitly disable openmp in native builds

  Max Krummenacher (1):
        git: git-replacement-native: depend on ca-certificate

  Michael Opdenacker (8):
        manuals: add initial stylechecks with Vale
        profile-manual: usage.rst: formatting fixes
        manuals: use "manual page(s)"
        profile-manual: usage.rst: fix reference to bug report
        documentation: Makefile: remove releases.rst in "make clean"
        migration-guides: draft notes for upcoming release 5.0
        manuals: add initial stylechecks with Vale
        profile-manual: usage.rst: further style improvements

  Oleh Matiusha (3):
        bash: improve reproducibility
        curl: improve reproducibility
        gmp: improve reproducibility

  Paul Barker (1):
        kernel: Fix check_oldest_kernel

  Peter A. Bigot (1):
        bitbake: lib/bb: support NO_COLOR

  Peter Kjellerstedt (1):
        util-linux: Set the license for util-linux-fcntl-lock to MIT

  Philippe Rivest (1):
        bitbake: bitbake: fetch2/git: Escape parentheses in git src name

  Quentin Schulz (1):
        u-boot: fix externalsrc not triggering do_configure on defconfig changes

  Randy MacLeod (1):
        gstreamer: upgrade 1.22.10 -> 1.22.11

  Richard Purdie (10):
        poky: Update to prepare for scarthgap release
        layer.conf: Prepare for release, drop nanbield LAYERSERIES
        expat: Upgrade 2.6.1 -> 2.6.2
        bash/flex: Ensure BUILD_FLAGS doesn't leak onto target
        uninative: Add pthread linking workaround
        poky-altcfg: Default to ipk packaging
        util-linux: Add missing MIT license
        util-linux: Add fcntl-lock
        run-postinsts: Add workaround for locking deadlock issue
        oeqa/sstatetests: Fix race issue

  Ross Burton (22):
        genericarm64.wks: reorder partitions
        genericarm64: clean up kernel modules and firmware
        linux-firmware: add support for deduplicating the firmware
        linux-firmware: set LICENSE field for -liquidui and -mellanox
        linux-firmware: remove pointless linux-firmware-gplv2-license package
        curl: improve run-ptest
        curl: increase test timeouts
        gstreamer1.0: improve test reliability
        linux-yocto: put COMPATIBLE_MACHINE first
        linux-yocto: implicitly track oe-core's kernel version for genericarm64
        bitbake: fetch2: handle URIs with single-valued query parameters
        python3_pip517: just count wheels in the directory, not subdirectories
        python-*: don't set PYPI_ARCHIVE_NAME and S when PYPI_PACKAGE is sufficient
        tcl: improve run-ptest
        tcl: skip I/O channel 46.1
        genericarm64: add qemuboot configuration
        classes/qemuboot: add depends on qemu-system-native and qemu-helper-native
        README.hardware.md: fix Markdown formatting
        README.hardware.md: add section on genericarm64 on qemu
        glib-2.0: skip a timing sensitive ptest
        openssl: fix crash on aarch64 if BTI is enabled but no Crypto instructions
        curl: fix quoting when disabling flaky tests

  Ryan Eatmon (1):
        perf: Fix QA error due to most recent kernel

  Sam Van Den Berge (1):
        shadow: don't install libattr.so.* when xattr not in DISTRO_FEATURES

  Sava Jakovljev (1):
        bitbake: bitbake-worker: Fix bug where umask 0 was not being applied to a task

  Simone Weiß (1):
        gnutls: upgrade 3.8.3 -> 3.8.4

  Soumya Sambu (1):
        go: Upgrade 1.22.0 -> 1.22.1

  Sourav Kumar Pramanik (1):
        libseccomp: Add back in PTESTS_SLOW list

  Sundeep KOKKONDA (1):
        rust: reproducibility issue fix with v1.75

  Tim Orling (2):
        coreutils: drop obsolete liberror-perl RDEPENDS
        liberror-perl: move to meta-perl

  Timon Bergelt (1):
        populate_sdk_ext.bbclass: only overwirte lsb string if uninative is used

  Tom Hochstein (2):
        bmaptool: Add bmap-tools runtime alias for compatibility
        toolchain-shar-relocate.sh: Add check for missing command 'file'

  Trevor Woerner (1):
        bmaptool: update to latest

  Ulrich Ölmann (1):
        ref-manual: classes: update description of class 'image_types'

  Viswanath Kraleti (1):
        bitbake: fetch2: Fix misleading "no output" msg

  Wang Mingyu (1):
        libadwaita: upgrade 1.4.3 -> 1.4.4

  William Lyu (1):
        openssh: Add a workaround for ICE on powerpc64le

  Xiangyu Chen (3):
        lttng-tools: skip kernel tests if no kernel modules present
        ltp: fix missing connectors tests in scenario_groups/default
        lttng-tools: fix rotation-destroy-flush test fails if no kernel module present

  Yang Xu (1):
        bitbake: bitbake-worker: Fix silent hang issue caused by unexpected stdout content

  Yannick Rodriguez (1):
        linux-firmware: Move Intel 9260 modules firmware.

  Yash Shinde (1):
        glibc: Skip 2 qemu tests that can hang in oe-selftest

  Yi Zhao (1):
        libtirpc: drop redundant PACKAGECONFIG

  Yoann Congal (6):
        cve-update-nvd2-native: Fix typo in comment
        cve-update-nvd2-native: Add an age threshold for incremental update
        cve-update-nvd2-native: Remove duplicated CVE_CHECK_DB_FILE definition
        cve-update-nvd2-native: nvd_request_next: Improve comment
        cve-update-nvd2-native: Fix CVE configuration update
        cve-update-nvd2-native: Remove rejected CVE from database

  Yogesh Tyagi (1):
        lttng-modules: fix v6.8+ build

  david d zuhn (1):
        bitbake: bitbake-worker: allow '=' in environment variable values

  lixiaoyong (3):
        kernel-module-split.bbclass: enhance objcopy command call for kernel compilation with llvm
        utils: enhance readelf command call with llvm
        oe/package: enhance objdump command call with llvm

meta-raspberrypi: 92a9b7a012..d072cc8a48:
  Khem Raj (9):
        linux-raspberrypi: Add recipe for 6.6 LTS kernel
        bluez-firmware-rpidistro: Upgrade to 1.2-9+rpt3 release
        linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt2
        raspberrypi-firmware: Fetch using git URI
        rpi-base: Add missing broadcom/ prefix to find DTB files
        rpi-default-versions: Switch default kernel to 6.6
        linux-raspberrypi_6.6: Bump to 6.6.22
        rpi-bootfiles: Resort to github APIs for tarballs
        raspberrypi-firmware: Revert to debian archive

  Martin Jansa (1):
        userland: fix installed-vs-shipped in multilib builds

  jdavidsson (1):
        rpi-base: Add hifiberry-dacplusadc overlay

meta-arm: aba9250494..d9e18ce792:
  Abdellatif El Khlifi (1):
        arm-bsp/corstone1000: add documentation disclaimer

  Alexander Sverdlin (1):
        optee-ftpm: fix EARLY_TA_PATHS passed to optee-os

  Ali Can Ozaslan (4):
        arm-bsp/trusted-firmware-m: corstone1000: update to 2.0
        arm-bsp/trusted-services: corstone1000: Client Id adjustments after TF-M 2.0
        arm/trusted-firmware-m: Change GNU Arm compiler version for TF-M 2.0
        arm-bsp/trusted-firmware-a: n1sdp: update to 2.10

  Anusmita Dutta Mazumder (2):
        arm-bsp/n1sdp: Update scp-firmware version
        arm-bsp/n1sdp: Update EDK2 version

  Bence Balogh (2):
        arm-bsp/u-boot: corstone1000: fix SMCCC_ARCH_FEATURES detection in the PSCI driver
        arm-bsp/trusted-firmware-a: corstone1000: remove SMCCC_ARCH_FEATURES discovery workaround

  Delane Brandy (1):
        arm/trusted-firmware-a: fix mbedTLS version

  Drew Reed (2):
        kas: Corstone-1000 kas files updated
        bsp: Corstone-1000 userguide updates

  Emekcan Aras (2):
        arm-bsp/trusted-firmware-a: Upgrade Corstone1000 to TF-A v2.10
        arm/trusted-services: Add recipe for block storage service

  Jon Mason (17):
        README: Add information about release process and mailing list
        arm/linux-yocto: remove unreferenced patch
        arm/optee: disable clang due to breakage
        arm-bsp/tf-a-tests: remove corstone1000 intermediate SHA
        arm-bsp/tfa-tests: move n1sdp patch to platform directory
        CI: update kas to 4.3.1
        arm/edk2: update to 202402
        arm/trusted-firmware-a: update to 2.10.2
        arm/sbsa-acs: update to 7.1.4
        arm/scp-firmware: update to v2.14.0
        arm-toolchain/gcc-arm-none-eabi: remove 11.2
        CI: reduce coverage of dev kernel
        arm/sbsa-acs: remove unreferenced patch
        arm-toolchain: correct UPSTREAM_CHECK
        Revert "arm/rmm: Add bitbake, include and patch file for RMM firmware"
        arm/sbsa-acs: use UPSTREAM_CHECK_URI for version checking
        arm: use UPSTREAM_CHECK_COMMITS for git versioned recipes

  Mathieu Poirier (1):
        arm/rmm: Add bitbake, include and patch file for RMM firmware

  Ross Burton (3):
        arm arm-bsp: enable patch-status warnings
        Add SECURITY.md
        CI: ignore netrc warnings caused by Kas

meta-openembedded: a0237019f5..a6bcdca5b4:
  Bartosz Golaszewski (1):
        libgpiod: update to v2.1.1

  Chad Rockey (1):
        cppzmq-dev expects /usr/lib/libzmq.a

  Changqing Li (1):
        postgresql: fix a runtime error

  Chen Qi (1):
        tcprelay: fix a minor cross compilation do_configure issue

  Christophe Chapuis (9):
        lvgl: fix typo in lv-conf.inc
        lvgl: install lv_conf.h
        lvgl: remove useless FILES include
        lvgl: cleanup sed instructions in lv-conf.inc
        lvgl: add more variables to lv-conf.inc
        lvgl: fix libdrm include
        lvgl: lv-conf.inc: generalize sed instructions
        lvgl: make libdrm include conditional
        lvgl: cleanup sed expression

  Dan McGregor (2):
        python3-pylint: Update to 3.1.0
        python3-pylint: Fix ptest failures

  Derek Straka (1):
        python3-dbus: re-add recipe with latest patches and add ptest

  Etienne Cordonnier (1):
        uutils-coreutils: upgrade 0.0.24 -> 0.0.25

  Fathi Boudra (1):
        python3-django: upgrade 4.2.10 -> 4.2.11

  Guðni Már Gilbert (2):
        python3-ecdsa: remove python3-pbr
        python3-ecdsa: cleanup DEPENDS

  Jaeyoon Jung (1):
        lvgl: Set resolution prior to buffer

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

  Jose Quaresma (1):
        ostree: Upgrade 2024.4 -> 2024.5

  Jörg Sommer (3):
        sngrep: new recipe for ncurses SIP Messages flow viewer
        spandsp: new telephony DSP library
        bluez-tools: New recipe for bluez5 tools

  Kai Kang (2):
        Packages depends on libadwaita should require distro feature opengl
        thin-provisioning-tools: install binary to ${sbindir}

  Khem Raj (55):
        squid: Upgrade to 6.8
        libosinfo: Fix build with libxml2 v2.12
        xmlstarlet: Fix build with API breakage in libxml2 2.12
        mariadb: Fix build with libxml2 2.12 ABI changes
        libmusicbrainz: Update to tip of trunk
        gnome-commander: Fix build with taglib 2.0
        gnome-online-accounts: Fix build with libxml2 2.12
        vlc: Upgrade to 3.0.20
        netcf: Fix build with latest gnulib
        php: Upgrade to 8.2.16
        vlc: Fix build on 32bit x86
        libtinyxml2: Extend for nativesdk
        lvgl: Fix dev-elf build QA
        layer.conf: Update for the scarthgap release series
        dietsplash: Update and fix build with musl
        frr: Upgrade to latest on 9.1 stable
        frr: Fix build on newer musl
        layer.conf: Prepare for release, drop nanbield LAYERSERIES
        libcamera: Fix clang support patches
        plocate: Fix sys/stat.h and linux/stat.h conflicts with musl
        liburing: Upgrade to 2.5
        openflow: Delete recipe for 1.0
        openflow: Merge .inc into .bb
        openflow: Fix build with musl
        tracker-miners: Disable seccomp support on musl
        libcamera: Fix build on musl systems
        ipset: Update to 7.21
        ot-daemon: Update to tip of trunk
        ot-br-posix: Update to latest
        wpantund: Update to latest
        xfsdump: Fix build with musl >= 1.2.5
        xfstests: Fix build with musl >= 1.2.5
        net-snmp: Fix build with musl
        rdma-core: Fix build with musl >= 1.2.5
        ssmtp: Fix build with musl >= 1.2.5
        autofs: Fix build with musl >= 1.2.5
        lvm2: Fix build with musl 1.5.2+
        sanlock: Fix build with musl >= 1.2.5
        ndctl: Fix build issues seen with musl 1.2.5
        sdbus-c++-libsystemd: Upgrade to 255.4 release of systemd
        sdbus-c++,sdbus-c++-tools: Upgrade to 1.5.0 release
        wtmpdb: Upgrade to 0.11.0 release
        uftrace: Fix build with musl >= 1.2.5
        fio: Upgrade to 3.36+git
        i2cdev: Include libgen.h on musl
        directfb: Fix build with musl >= 1.2.5
        iwd: Upgrade to 2.16
        minifi-cpp: Fix libsodium build on aarch64/clang
        multipath-tools: Fix build with musl >= 1.2.5
        aer-inject: Fix build with latest musl
        aer-inject: Replace hardcoded /usr with ${prefix}
        microsoft-gsl: Disable disabled-macro-expansion warning as error on clang/musl
        meta-python-image-ptest: Use 2G RAM for some demanding tests
        python3-pydbus: Add bash dependency for ptests
        highway,libjxl: Remove -mfp16-format=ieee when using clang compiler

  Leon Anavi (7):
        python3-anyio: Upgrade 4.2.0 -> 4.3.0
        python3-httpx: Upgrade 0.26.0 -> 0.27.0
        python3-multidict: Upgrade 6.0.4 -> 6.0.5
        python3-croniter: Upgrade 2.0.1 -> 2.0.3
        python3-paho-mqtt: Upgrade 1.6.1 -> 2.0.0
        python3-typeguard: Upgrade 4.1.5 -> 4.2.1
        python3-cachetools: Upgrade 5.3.2 -> 5.3.3

  Marek Vasut (14):
        lvgl: Drop dialog-lvgl
        lvgl: Upgrade to LVGL 9 series
        lvgl: Rename lv-drivers.inc to lv-conf.inc
        lvgl: Add SDL2 fullscreen mode configuration option
        lvgl: Configure assertions based on DEBUG_BUILD
        lvgl: Default to XRGB8888 DRM framebuffer
        lvgl: Build shared library
        lvgl: Replace sed patching with real patches
        lvgl: Generate proper shared libraries with version suffix
        lvgl: Reinstate demo configuration settings
        lvgl: Update to 9.1.0
        lvgl: Drop superfluous ALLOW_EMPTY
        lvgl: Drop unnecessary PV append
        lvgl: Deduplicate PACKAGECONFIG into lv-conf

  Markus Volk (66):
        mozjs-115: fix reproducibility issue
        webp-pixbuf-loader: update 0.2.5 -> 0.2.7
        gnome-control-center: fix reproducibility issue
        gnome-disk-utility: fix reproducibility issue
        gnome-settings-daemon: fix reproducibility issue
        gnome-terminal: fix reproducibility issue
        libvncserver: fix reproducibility issue
        editorconfig-core-c: fix reproducibility issue
        crossguid: fix reproducibility issue
        waylandpp: fix reproducibility issue
        polkit: remove unneeded workaround
        gtk-vnc: fix reproducibility issue
        pipewire: update 1.0.3 -> 1.0.4
        mutter: remove zenity from rdepends
        mutter: update 45.4 -> 46.0
        gnome-shell: update 45.4 -> 46.0
        gnome-settings-daemon: update 45.0 -> 46.0
        gnome-software: update 45.3 -> 46.0
        evince: update 45.0 -> 46.0
        gnome-online-accounts: update 3.48.0 -> 3.50.0
        evolution-data-server: build with webkitgtk4
        folks: update 0.15.7 -> 0.15.8
        gnome-control-center: update 45.3 -> 46.0
        xdg-desktop-portal-gnome: update 45.1 -> 46.0
        tracker: update 3.6.0 -> 3.7.0
        tracker-miners: update 3.6.2 -> 3.7.0
        freerdp3: add recipe
        wireplumber: update 0.4.17 -> 0.5.0
        tecle: update 45.0 -> 46.0
        gnome-calculator: update 45.0.2 -> 46.0
        gnome-session: update 45.0 -> 46.0
        gnome-remote-desktop: update 45.1 -> 46.0
        gnome-calendar: update 45.1 -> 46.0
        libgweather4: update 4.4.0 -> 4.4.2
        gtksourceview5: update 5.10.0 -> 5.12.0
        gnome-control-center: use gcr4 variant
        libcloudproviders: update 0.3.5 -> 0.3.6
        gnome-themes-extra: build with gtk+3
        gtk4mm: add recipe
        gnome-system-monitor: update 45.0.1 -> 46.0
        gnome-boxes: update 45.0 -> 46.0
        eog: update 45.2 -> 45.3
        gparted: update 1.5.0 -> 1.6.0
        libgtop: update 2.41.1 -> 2.41.3
        gnome-bluetooth: update 42.8 -> 46.0
        gnome-text-editor: update 45.1 -> 46.0
        gnome-chess: update 43.2 -> 46.0
        gnome-disk-utility: update 45.0 -> 46.0
        gnome-shell-extensions: update 45.2 -> 46.0
        msgraph: add recipe
        gvfs: update 1.52.2 -> 1.54.0
        tracker-miners: drop buildpath from tracker-miner-fs-3
        evolution-data-server: disable tests and examples
        tracker-miners: fix reproducibility issue for landlock
        file-roller: update 43.1 -> 44.0
        apache2: preset mpm=prefork by default
        gnome-user-share: add recipe
        gnome-control-center: update 46.0 -> 46.0.1
        gdm: update 45.0.1 -> 46.0
        gnome-user-share: remove hardcoded paths
        ghex: update 45.1 -> 46.0
        libjxl: add recipe
        gnome-backgrounds: add runtime depenency for libjxl
        highway: add recipe
        webkitgtk3: update 2.42.5 -> 2.44.0
        gnome-control-center: restore Upstream-Status line

  Martin Jansa (5):
        unionfs-fuse, dropwatch, postgresql, yasm, multipath-tools, python3-pybind11: add missing Upstream-Status
        recipes: Drop remaining PR values from recipes
        freerdp3: disable shadow without x11
        xfstests: upgrade to v2024.03.03
        gtkmm4: add x11 to REQUIRED_DISTRO_FEATURES

  Maxin John (7):
        tracker: remove unused patch
        openal-soft: remove unused patches
        libio-pty-perl: remove unsed patch
        opengl-es-cts: remove unused patch
        emacs: remove unused patch
        webkitgtk3: remove unused patch
        python3-eth-utils: remove unused patches

  Michael Heimpold (1):
        ser2net: add a systemd service file

  Mingli Yu (4):
        gosu: Upgrade to 1.17
        googletest: Pass -fPIC to CFLAGS
        re2: Upgrade 2023.03.01 -> 2024.03.01
        nss: Upgrade 3.74 -> 3.98

  Ola x Nilsson (2):
        abseil-cpp: Split so-files into separate packages
        abseil-cpp: Split so-files into separate packages

  Peter Kjellerstedt (3):
        abseil-cpp: A little clean-up
        libnice: Disable the examples and the tests
        abseil-cpp: A little clean-up

  Peter Marko (5):
        jwt-cpp: fix cmake file install path
        soci: fix buildpaths warning
        libcpr: add new recipe
        python3-grpcio: cleanup dependencies
        microsoft-gsl: add new recipe including ptest

  Petr Gotthard (2):
        libmbim: Revert back to the latest stable 1.30.0
        libqmi: Revert back to the latest stable 1.34.0

  Randy MacLeod (2):
        rsyslog: update from 8.2306.0 to 8.2402.0
        nftables: Add DESCRIPTION and HOMEPAGE

  Richard Purdie (2):
        imagemagick/lcms/fftw: Allow nativesdk versions to exist
        buildtools-imagemagick: Add new recipe

  Robert P. J. Day (1):
        fmt: remove unnecessary "inherit ptest" directive

  Robert Yang (6):
        yaffs2-utils: Upgrade to 20221209
        xfsprogs: 6.5.0 -> 6.6.0
        gnulib: 2018-12-18 -> 202401
        thin-provisioning-tools: 1.0.9 -> 1.0.12
        gperftools: 2.10 -> 2.15
        freeradius: 3.0.26 -> 3.2.3

  Ross Burton (1):
        python3-pydantic-core: just set PYPI_PACKAGE

  Sam Van Den Berge (1):
        python3-aiohttp: add missing dependencies

  Samuli Piippo (1):
        geoclue: enable demo agent

  Thomas Roos (1):
        usrsctp: upgrade to latest version

  Tim Orling (1):
        liberror-perl: move recipe from oe-core

  Tomasz Żyjewski (1):
        python: python-libusb1: add recipe

  Wang Mingyu (124):
        bats: upgrade 1.10.0 -> 1.11.0
        c-ares: upgrade 1.26.0 -> 1.27.0
        ctags: upgrade 6.1.20240114.0 -> 6.1.20240225.0
        dbus-cxx: upgrade 2.5.0 -> 2.5.1
        ddrescue: upgrade 1.27 -> 1.28
        fetchmail: upgrade 6.4.37 -> 6.4.38
        libtalloc: upgrade 2.4.1 -> 2.4.2
        libtdb: upgrade 1.4.9 -> 1.4.10
        neatvnc: upgrade 0.7.2 -> 0.8.0
        ostree: upgrade 2024.3 -> 2024.4
        python3-astroid: upgrade 3.0.3 -> 3.1.0
        python3-cbor2: upgrade 5.6.1 -> 5.6.2
        python3-dnspython: upgrade 2.6.0 -> 2.6.1
        python3-eventlet: upgrade 0.35.1 -> 0.35.2
        python3-gcovr: upgrade 7.0 -> 7.2
        python3-google-api-core: upgrade 2.16.2 -> 2.17.1
        python3-google-api-python-client: upgrade 2.118.0 -> 2.120.0
        python3-grpcio(-tools): upgrade 1.60.1 -> 1.62.0
        python3-ipython: upgrade 8.21.0 -> 8.22.1
        python3-pdm: upgrade 2.12.3 -> 2.12.4
        python3-pymisp: upgrade 2.4.185 -> 2.4.186
        python3-scrypt: upgrade 0.8.20 -> 0.8.24
        python3-sentry-sdk: upgrade 1.40.4 -> 1.40.6
        smarty: upgrade 4.3.4 -> 4.4.1
        stunnel: upgrade 5.69 -> 5.72
        abseil-cpp: upgrade 20230802.1 -> 20240116.1
        dnf-plugin-tui: upgrade 1.3 -> 1.4
        boost-sml: upgrade 1.1.9 -> 1.1.11
        ctags: upgrade 6.1.20240225.0 -> 6.1.20240310.0
        dialog: upgrade 1.3-20240101 -> 1.3-20240307
        flatbuffers: upgrade 23.5.26 -> 24.3.7
        gjs: upgrade 1.78.4 -> 1.80.0
        hwdata: upgrade 0.379 -> 0.380
        iceauth: upgrade 1.0.9 -> 1.0.10
        libdnet: upgrade 1.17.0 -> 1.18.0
        libopus: upgrade 1.4 -> 1.5.1
        libreport: upgrade 2.17.11 -> 2.17.15
        libxaw: upgrade 1.0.15 -> 1.0.16
        mcelog: upgrade 196 -> 197
        networkd-dispatcher: upgrade 2.1 -> 2.2.4
        openlldp: upgrade 1.1.0 -> 1.1.1
        opensc: upgrade 0.24.0 -> 0.25.0
        pcsc-lite: upgrade 2.0.1 -> 2.0.3
        python3-a2wsgi: upgrade 1.10.2 -> 1.10.4
        python3-apiflask: upgrade 2.1.0 -> 2.1.1
        python3-argcomplete: upgrade 3.2.2 -> 3.2.3
        python3-bandit: upgrade 1.7.7 -> 1.7.8
        python3-blivet: upgrade 3.8.2 -> 3.9.1
        python3-blivetgui: upgrade 2.4.2 -> 2.5.0
        python3-django: upgrade 5.0.2 -> 5.0.3
        python3-elementpath: upgrade 4.3.0 -> 4.4.0
        python3-eth-abi: upgrade 5.0.0 -> 5.0.1
        python3-eth-rlp: upgrade 1.0.1 -> 2.0.0
        python3-flask-migrate: upgrade 4.0.5 -> 4.0.7
        python3-google-api-python-client: upgrade 2.120.0 -> 2.122.0
        python3-google-auth: upgrade 2.28.1 -> 2.28.2
        python3-googleapis-common-protos: upgrade 1.62.0 -> 1.63.0
        python3-grpcio-tools: upgrade 1.62.0 -> 1.62.1
        python3-grpcio: upgrade 1.62.0 -> 1.62.1
        python3-ipython: upgrade 8.22.1 -> 8.22.2
        python3-mypy: upgrade 1.8.0 -> 1.9.0
        python3-pydantic: upgrade 2.6.3 -> 2.6.4
        python3-pymisp: upgrade 2.4.186 -> 2.4.187
        python3-pymodbus: upgrade 3.6.4 -> 3.6.6
        python3-pyperf: upgrade 2.6.2 -> 2.6.3
        python3-pytest-lazy-fixtures: upgrade 1.0.5 -> 1.0.6
        python3-pytest-timeout: upgrade 2.2.0 -> 2.3.1
        python3-requests-oauthlib: upgrade 1.3.1 -> 1.4.0
        python3-sentry-sdk: upgrade 1.40.6 -> 1.42.0
        python3-tox: upgrade 4.13.0 -> 4.14.1
        python3-traitlets: upgrade 5.14.1 -> 5.14.2
        python3-types-psutil: upgrade 5.9.5.20240205 -> 5.9.5.20240316
        python3-types-python-dateutil: upgrade 2.8.19.20240106 -> 2.9.0.20240316
        tcsh: upgrade 6.24.10 -> 6.24.11
        thingsboard-gateway: upgrade 3.4.4 -> 3.4.5
        xmessage: upgrade 1.0.6 -> 1.0.7
        xrefresh: upgrade 1.0.7 -> 1.1.0
        gjs: upgrade 1.80.0 -> 1.80.2
        gnome-backgrounds: upgrade 45.0 -> 46.0
        gnome-font-viewer: upgrade 45.0 -> 46.0
        libblockdev: upgrade 3.1.0 -> 3.1.1
        libdeflate: upgrade 1.19 -> 1.20
        libmbim: upgrade 1.30.0 -> 1.31.2
        libqmi: upgrade 1.34.0 -> 1.35.2
        libtommath: upgrade 1.2.1 -> 1.3.0
        mcelog: upgrade 197 -> 198
        metacity: upgrade 3.50.0 -> 3.52.0
        python3-asgiref: upgrade 3.7.2 -> 3.8.1
        python3-blivet: upgrade 3.9.1 -> 3.9.2
        python3-cassandra-driver: upgrade 3.29.0 -> 3.29.1
        python3-djangorestframework: upgrade 3.14.0 -> 3.15.1
        python3-eth-rlp: upgrade 2.0.0 -> 2.1.0
        python3-eventlet: upgrade 0.35.2 -> 0.36.1
        python3-filelock: upgrade 3.13.1 -> 3.13.3
        python3-flask-marshmallow: upgrade 1.2.0 -> 1.2.1
        python3-flatbuffers: upgrade 24.3.7 -> 24.3.25
        python3-google-api-core: upgrade 2.17.1 -> 2.18.0
        python3-google-api-python-client: upgrade 2.122.0 -> 2.124.0
        python3-google-auth: upgrade 2.28.2 -> 2.29.0
        python3-graphviz: upgrade 0.20.1 -> 0.20.3
        python3-gspread: upgrade 6.0.2 -> 6.1.0
        python3-jdatetime: upgrade 4.1.1 -> 5.0.0
        python3-pdm: upgrade 2.12.4 -> 2.13.2
        python3-pyasn1-modules: upgrade 0.3.0 -> 0.4.0
        python3-pymisp: upgrade 2.4.187 -> 2.4.188
        python3-pytest-asyncio: upgrade 0.23.5 -> 0.23.6
        python3-pytest-cov: upgrade 4.1.0 -> 5.0.0
        python3-pytest-lazy-fixtures: upgrade 1.0.6 -> 1.0.7
        python3-pywbem: upgrade 1.6.2 -> 1.6.3
        python3-pywbemtools: upgrade 1.2.0 -> 1.2.1
        python3-pyzstd: upgrade 0.15.9 -> 0.15.10
        python3-requests-oauthlib: upgrade 1.4.0 -> 2.0.0
        python3-sentry-sdk: upgrade 1.42.0 -> 1.44.0
        python3-socketio: upgrade 5.11.1 -> 5.11.2
        python3-thrift: upgrade 0.16.0 -> 0.20.0
        python3-tox: upgrade 4.14.1 -> 4.14.2
        python3-web3: upgrade 6.15.1 -> 6.16.0
        st: upgrade 0.9 -> 0.9.1
        thingsboard-gateway: upgrade 3.4.5 -> 3.4.6
        thrift: upgrade 0.19.0 -> 0.20.0
        tracker-miners: upgrade 3.7.0 -> 3.7.1
        tracker: upgrade 3.7.0 -> 3.7.1
        wireshark: upgrade 4.2.3 -> 4.2.4
        wolfssl: upgrade 5.6.6 -> 5.7.0

  William Lyu (3):
        nftables: Fix ptest output format issues
        nftables: Fix ShellCheck violations in ptest wrapper script "run-ptest"
        nftables: Fix failed ptest testcases

  Yi Zhao (13):
        netplan: upgrade 0.106 -> 1.0
        networkmanager: 1.44.0 -> 1.46.0
        postfix: upgrade 3.8.5 -> 3.8.6
        net-snmp: upgrade 5.9.3 -> 5.9.4
        cryptsetup: upgrade 2.7.0 -> 2.7.1
        samba: upgrade 4.19.4 -> 4.19.5
        civetweb: remove buildpaths from civetweb-targets.cmake
        minifi-cpp: upgrade 0.7.0 -> 0.15.0
        openvpn: upgrade 2.6.9 -> 2.6.10
        rocksdb: upgrade 7.9.2 -> 9.0.0
        audit: upgrade 4.0 -> 4.0.1
        netplan: add missing config directory
        strongswan: upgrade 5.9.13 -> 5.9.14

  alperak (15):
        python3-icecream: add recipe
        python3-invoke: add recipe
        python3-traitlets: add ptest and update runtime dependencies
        python3-google-auth-oauthlib: add ptest
        python3-tomli-w: added recipe which is also include ptest
        python3-pytest-localserver: added recipe which is also include ptest
        python3-responses: add recipe
        python3-google-auth: add ptest and update runtime dependencies
        remove obsolete PIP_INSTALL_PACKAGE and PIP_INSTALL_DIST_PATH
        python3-a2wsgi: added recipe which is also include ptest
        python3-httptools: added recipe which is also include ptest
        python3-wsproto: Add recipe
        python3-portalocker: enable ptest
        python3-validators: upgrade 0.22.0 > 0.24.0 and enable ptest
        python3-pydbus: Drop ${PYTHON_PN}

  chenheyun (1):
        aer-inject:add new recipe

Change-Id: I3cf0e5c87ecdfa18c35d318cb64c0e6559348618
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/poky/bitbake/bin/bitbake-hashclient b/poky/bitbake/bin/bitbake-hashclient
index 47dd27c..610787e 100755
--- a/poky/bitbake/bin/bitbake-hashclient
+++ b/poky/bitbake/bin/bitbake-hashclient
@@ -346,6 +346,8 @@
                 login, _, password = auth
         except FileNotFoundError:
             pass
+        except netrc.NetrcParseError as e:
+            sys.stderr.write(f"Error parsing {e.filename}:{e.lineno}: {e.msg}\n")
 
     func = getattr(args, 'func', None)
     if func:
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index eba9c56..e8073f2 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -183,7 +183,7 @@
     if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
         fakeroot = True
         envvars = (runtask['fakerootenv'] or "").split()
-        for key, value in (var.split('=') for var in envvars):
+        for key, value in (var.split('=',1) for var in envvars):
             envbackup[key] = os.environ.get(key)
             os.environ[key] = value
             fakeenv[key] = value
@@ -195,7 +195,7 @@
                         (fn, taskname, ', '.join(fakedirs)))
     else:
         envvars = (runtask['fakerootnoenv'] or "").split()
-        for key, value in (var.split('=') for var in envvars):
+        for key, value in (var.split('=',1) for var in envvars):
             envbackup[key] = os.environ.get(key)
             os.environ[key] = value
             fakeenv[key] = value
@@ -237,11 +237,13 @@
             # Let SIGHUP exit as SIGTERM
             signal.signal(signal.SIGHUP, sigterm_handler)
 
-            # No stdin
-            newsi = os.open(os.devnull, os.O_RDWR)
-            os.dup2(newsi, sys.stdin.fileno())
+            # No stdin & stdout
+            # stdout is used as a status report channel and must not be used by child processes.
+            dumbio = os.open(os.devnull, os.O_RDWR)
+            os.dup2(dumbio, sys.stdin.fileno())
+            os.dup2(dumbio, sys.stdout.fileno())
 
-            if umask:
+            if umask is not None:
                 os.umask(umask)
 
             try:
@@ -305,6 +307,10 @@
                 if not quieterrors:
                     logger.critical(traceback.format_exc())
                 os._exit(1)
+
+            sys.stdout.flush()
+            sys.stderr.flush()
+
             try:
                 if dry_run:
                     return 0
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
index 4fa3ca4..d58fbb3 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
@@ -586,10 +586,11 @@
 simplest parameter to pass is "none", which causes a set of signature
 information to be written out into ``STAMPS_DIR`` corresponding to the
 targets specified. The other currently available parameter is
-"printdiff", which causes BitBake to try to establish the closest
+"printdiff", which causes BitBake to try to establish the most recent
 signature match it can (e.g. in the sstate cache) and then run
-``bitbake-diffsigs`` over the matches to determine the stamps and delta
-where these two stamp trees diverge.
+compare the matched signatures to determine the stamps and delta
+where these two stamp trees diverge. This can be used to determine why
+tasks need to be re-run in situations where that is not expected.
 
 .. note::
 
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 3529531..5bf2c4b 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -290,12 +290,12 @@
 
     def _param_str_split(self, string, elmdelim, kvdelim="="):
         ret = collections.OrderedDict()
-        for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim) if x]:
+        for k, v in [x.split(kvdelim, 1) if kvdelim in x else (x, None) for x in string.split(elmdelim) if x]:
             ret[k] = v
         return ret
 
     def _param_str_join(self, dict_, elmdelim, kvdelim="="):
-        return elmdelim.join([kvdelim.join([k, v]) for k, v in dict_.items()])
+        return elmdelim.join([kvdelim.join([k, v]) if v else k for k, v in dict_.items()])
 
     @property
     def hostport(self):
@@ -943,7 +943,10 @@
         elif e.stderr:
             output = "output:\n%s" % e.stderr
         else:
-            output = "no output"
+            if log:
+                output = "see logfile for output"
+            else:
+                output = "no output"
         error_message = "Fetch command %s failed with exit code %s, %s" % (e.command, e.exitcode, output)
     except bb.process.CmdError as e:
         error_message = "Fetch command %s could not be run:\n%s" % (e.command, e.msg)
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index b9dc576..c7ff769 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -277,7 +277,7 @@
                     ud.unresolvedrev[name] = ud.revisions[name]
                 ud.revisions[name] = self.latest_revision(ud, d, name)
 
-        gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.').replace(' ','_'))
+        gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.').replace(' ','_').replace('(', '_').replace(')', '_'))
         if gitsrcname.startswith('.'):
             gitsrcname = gitsrcname[1:]
 
@@ -673,7 +673,7 @@
             elif not need_lfs:
                 bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
             else:
-                runfetchcmd("%s lfs install" % ud.basecmd, d, workdir=destdir)
+                runfetchcmd("%s lfs install --local" % ud.basecmd, d, workdir=destdir)
 
         if not ud.nocheckout:
             if subpath:
diff --git a/poky/bitbake/lib/bb/main.py b/poky/bitbake/lib/bb/main.py
index 92d8dc0..bca8ebf 100755
--- a/poky/bitbake/lib/bb/main.py
+++ b/poky/bitbake/lib/bb/main.py
@@ -217,7 +217,9 @@
                              "execution. The SIGNATURE_HANDLER parameter is passed to the "
                              "handler. Two common values are none and printdiff but the handler "
                              "may define more/less. none means only dump the signature, printdiff"
-                             " means compare the dumped signature with the cached one.")
+                             " means recursively compare the dumped signature with the most recent"
+                             " one in a local build or sstate cache (can be used to find out why tasks re-run"
+                             " when that is not expected)")
 
     exec_group.add_argument("--revisions-changed", action="store_true",
                         help="Set the exit code depending on whether upstream floating "
diff --git a/poky/bitbake/lib/bb/msg.py b/poky/bitbake/lib/bb/msg.py
index 93575d8..3e18596 100644
--- a/poky/bitbake/lib/bb/msg.py
+++ b/poky/bitbake/lib/bb/msg.py
@@ -230,7 +230,7 @@
     console = logging.StreamHandler(output)
     console.addFilter(bb.msg.LogFilterShowOnce())
     format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
-    if color == 'always' or (color == 'auto' and output.isatty()):
+    if color == 'always' or (color == 'auto' and output.isatty() and os.environ.get('NO_COLOR', '') == ''):
         format.enable_color()
     console.setFormatter(format)
     if preserve_handlers:
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 6987de3..bc7e181 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -1359,7 +1359,7 @@
             fakerootcmd = shlex.split(mcdata.getVar("FAKEROOTCMD"))
             fakerootenv = (mcdata.getVar("FAKEROOTBASEENV") or "").split()
             env = os.environ.copy()
-            for key, value in (var.split('=') for var in fakerootenv):
+            for key, value in (var.split('=',1) for var in fakerootenv):
                 env[key] = value
             worker = subprocess.Popen(fakerootcmd + [sys.executable, workerscript, magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env)
             fakerootlogs = self.rqdata.dataCaches[mc].fakerootlogs
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index 3ab8431..2a0ecf5 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -535,23 +535,34 @@
         # hashes to appear over time, but much less likely for them to
         # disappear
         self.unihash_exists_cache = set()
+        self.username = None
+        self.password = None
         super().__init__(data)
 
     def get_taskdata(self):
-        return (self.server, self.method, self.extramethod, self.max_parallel) + super().get_taskdata()
+        return (self.server, self.method, self.extramethod, self.max_parallel, self.username, self.password) + super().get_taskdata()
 
     def set_taskdata(self, data):
-        self.server, self.method, self.extramethod, self.max_parallel = data[:4]
-        super().set_taskdata(data[4:])
+        self.server, self.method, self.extramethod, self.max_parallel, self.username, self.password = data[:6]
+        super().set_taskdata(data[6:])
+
+    def get_hashserv_creds(self):
+        if self.username and self.password:
+            return {
+                "username": self.username,
+                "password": self.password,
+            }
+
+        return {}
 
     def client(self):
         if getattr(self, '_client', None) is None:
-            self._client = hashserv.create_client(self.server)
+            self._client = hashserv.create_client(self.server, **self.get_hashserv_creds())
         return self._client
 
     def client_pool(self):
         if getattr(self, '_client_pool', None) is None:
-            self._client_pool = hashserv.client.ClientPool(self.server, self.max_parallel)
+            self._client_pool = hashserv.client.ClientPool(self.server, self.max_parallel, **self.get_hashserv_creds())
         return self._client_pool
 
     def reset(self, data):
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index e988e26..85c1f79 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -308,6 +308,21 @@
             'params': {"someparam" : "1"},
             'query': {},
             'relative': True
+        },
+        "https://www.innodisk.com/Download_file?9BE0BF6657;downloadfilename=EGPL-T101.zip": {
+            'uri': 'https://www.innodisk.com/Download_file?9BE0BF6657;downloadfilename=EGPL-T101.zip',
+            'scheme': 'https',
+            'hostname': 'www.innodisk.com',
+            'port': None,
+            'hostport': 'www.innodisk.com',
+            'path': '/Download_file',
+            'userinfo': '',
+            'userinfo': '',
+            'username': '',
+            'password': '',
+            'params': {"downloadfilename" : "EGPL-T101.zip"},
+            'query': {"9BE0BF6657": None},
+            'relative': False
         }
 
     }
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 5a97d04..f86999b 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -179,7 +179,7 @@
             new[3] = new[3] & ~termios.ECHO
             termios.tcsetattr(fd, termios.TCSADRAIN, new)
             curses.setupterm()
-            if curses.tigetnum("colors") > 2:
+            if curses.tigetnum("colors") > 2 and os.environ.get('NO_COLOR', '') == '':
                 for h in handlers:
                     try:
                         h.formatter.enable_color()
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index ad13d04..ebee65d 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -1142,7 +1142,10 @@
 
 
 def cpu_count():
-    return multiprocessing.cpu_count()
+    try:
+        return len(os.sched_getaffinity(0))
+    except OSError:
+        return multiprocessing.cpu_count()
 
 def nonblockingfd(fd):
     fcntl.fcntl(fd, fcntl.F_SETFL, fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK)
diff --git a/poky/documentation/.gitignore b/poky/documentation/.gitignore
index 494b4f4..b23d598 100644
--- a/poky/documentation/.gitignore
+++ b/poky/documentation/.gitignore
@@ -7,3 +7,5 @@
 .vscode/
 */svg/*.png
 */svg/*.pdf
+styles/*
+!styles/config
diff --git a/poky/documentation/.vale.ini b/poky/documentation/.vale.ini
new file mode 100644
index 0000000..02042bb
--- /dev/null
+++ b/poky/documentation/.vale.ini
@@ -0,0 +1,7 @@
+StylesPath = styles
+MinAlertLevel = suggestion
+Packages = RedHat, proselint, write-good, alex, Readability, Joblint
+Vocab = Yocto, OpenSource
+[*.rst]
+BasedOnStyles = Vale, RedHat, proselint, write-good, alex, Readability, Joblint
+
diff --git a/poky/documentation/Makefile b/poky/documentation/Makefile
index 9fb6814..c930d2d 100644
--- a/poky/documentation/Makefile
+++ b/poky/documentation/Makefile
@@ -5,6 +5,9 @@
 # from the environment for the first two.
 SPHINXOPTS    ?= -W --keep-going -j auto
 SPHINXBUILD   ?= sphinx-build
+# Release notes are excluded because they contain contributor names and commit messages which can't be modified
+VALEOPTS      ?= --no-wrap --glob '!migration-guides/release-notes-*.rst'
+VALEDOCS      ?= .
 SOURCEDIR     = .
 IMAGEDIRS     = */svg
 BUILDDIR      = _build
@@ -20,7 +23,7 @@
 help:
 	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
 
-.PHONY: all help Makefile clean publish epub latexpdf
+.PHONY: all help Makefile clean stylecheck publish epub latexpdf
 
 publish: Makefile html singlehtml
 	rm -rf $(BUILDDIR)/$(DESTDIR)/
@@ -44,7 +47,15 @@
 	$(SVG2PNG) --export-filename=$@ $<
 
 clean:
-	@rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js
+	@rm -rf $(BUILDDIR) $(PNGs) $(PDFs) poky.yaml sphinx-static/switchers.js releases.rst
+
+stylecheck:
+	vale sync
+	vale $(VALEOPTS) $(VALEDOCS)
+
+stylecheck:
+	vale sync
+	vale $(VALEOPTS) $(VALEDOCS)
 
 epub: $(PNGs)
 	$(SOURCEDIR)/set_versions.py
diff --git a/poky/documentation/README b/poky/documentation/README
index 4d31036..8035418 100644
--- a/poky/documentation/README
+++ b/poky/documentation/README
@@ -151,6 +151,20 @@
  $ pipenv install
  $ pipenv run make html
 
+Style checking the Yocto Project documentation
+==============================================
+
+The project is starting to use Vale (https://vale.sh/)
+to validate the text style.
+
+To install Vale:
+
+ $ pip install vale
+
+To run Vale:
+
+ $ make stylecheck
+
 Sphinx theme and CSS customization
 ==================================
 
diff --git a/poky/documentation/contributor-guide/submit-changes.rst b/poky/documentation/contributor-guide/submit-changes.rst
index 59f3c1e..dfeb030 100644
--- a/poky/documentation/contributor-guide/submit-changes.rst
+++ b/poky/documentation/contributor-guide/submit-changes.rst
@@ -432,7 +432,7 @@
    :oe_lists:`bitbake-devel </g/bitbake-devel>`
    mailing list.
 
--  *"meta-\*" trees:* These trees contain Metadata. Use the
+-  *meta-poky* and *meta-yocto-bsp* trees: These trees contain Metadata. Use the
    :yocto_lists:`poky </g/poky>` mailing list.
 
 -  *Documentation*: For changes to the Yocto Project documentation, use the
diff --git a/poky/documentation/dev-manual/building.rst b/poky/documentation/dev-manual/building.rst
index 7fcac33..fe50269 100644
--- a/poky/documentation/dev-manual/building.rst
+++ b/poky/documentation/dev-manual/building.rst
@@ -775,10 +775,9 @@
       in the script for information on how to use the tool.
 
    -  *BitBake's "-S printdiff" Option:* Using this option causes
-      BitBake to try to establish the closest signature match it can
-      (e.g. in the shared state cache) and then run ``bitbake-diffsigs``
-      over the matches to determine the stamps and delta where these two
-      stamp trees diverge.
+      BitBake to try to establish the most recent signature match
+      (e.g. in the shared state cache) and then compare matched signatures
+      to determine the stamps and delta where these two stamp trees diverge.
 
 Building Software from an External Source
 =========================================
diff --git a/poky/documentation/dev-manual/custom-template-configuration-directory.rst b/poky/documentation/dev-manual/custom-template-configuration-directory.rst
index 9bffef3..06fcada 100644
--- a/poky/documentation/dev-manual/custom-template-configuration-directory.rst
+++ b/poky/documentation/dev-manual/custom-template-configuration-directory.rst
@@ -42,11 +42,11 @@
    TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf/templates/default}
 
 If you look at a configuration template directory, you will
-see the ``bblayers.conf.sample``, ``local.conf.sample``, and
+see the ``bblayers.conf.sample``, ``local.conf.sample``, ``conf-summary.txt`` and
 ``conf-notes.txt`` files. The build system uses these files to form the
 respective ``bblayers.conf`` file, ``local.conf`` file, and show
-users a note about the build they're setting up
+users usage information about the build they're setting up
 when running the ``oe-init-build-env`` setup script. These can be
 edited further if needed to improve or change the build configurations
-available to the users.
+available to the users, and provide useful summaries and detailed usage notes.
 
diff --git a/poky/documentation/dev-manual/debugging.rst b/poky/documentation/dev-manual/debugging.rst
index ce29815..e20637e 100644
--- a/poky/documentation/dev-manual/debugging.rst
+++ b/poky/documentation/dev-manual/debugging.rst
@@ -339,7 +339,10 @@
    :term:`BB_BASEHASH_IGNORE_VARS`
    information.
 
-There is also a ``bitbake-diffsigs`` command for comparing two
+Debugging signature construction and unexpected task executions
+===============================================================
+
+There is a ``bitbake-diffsigs`` command for comparing two
 ``siginfo`` or ``sigdata`` files. This command can be helpful when
 trying to figure out what changed between two versions of a task. If you
 call ``bitbake-diffsigs`` with just one file, the command behaves like
@@ -356,8 +359,12 @@
 .. note::
 
    Two common values for `SIGNATURE_HANDLER` are "none" and "printdiff", which
-   dump only the signature or compare the dumped signature with the cached one,
-   respectively.
+   dump only the signature or compare the dumped signature with the most recent one,
+   respectively. "printdiff" will try to establish the most recent
+   signature match (e.g. in the sstate cache) and then
+   compare the matched signatures to determine the stamps and delta
+   where these two stamp trees diverge. This can be used to determine why
+   tasks need to be re-run in situations where that is not expected.
 
 Using BitBake with either of these options causes BitBake to dump out
 ``sigdata`` files in the ``stamps`` directory for every task it would
diff --git a/poky/documentation/migration-guides/index.rst b/poky/documentation/migration-guides/index.rst
index a3bddb3..d8edd05 100644
--- a/poky/documentation/migration-guides/index.rst
+++ b/poky/documentation/migration-guides/index.rst
@@ -12,6 +12,7 @@
 .. toctree::
 
    migration-general
+   release-5.0
    release-4.3
    release-4.2
    release-4.1
diff --git a/poky/documentation/migration-guides/migration-5.0.rst b/poky/documentation/migration-guides/migration-5.0.rst
new file mode 100644
index 0000000..32581d7
--- /dev/null
+++ b/poky/documentation/migration-guides/migration-5.0.rst
@@ -0,0 +1,105 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release 5.0 LTS (scarthgap)
+===========================
+
+Migration notes for 5.0 (scarthgap)
+------------------------------------
+
+This section provides migration information for moving to the Yocto
+Project 5.0 Release (codename "scarthgap") from the prior release.
+
+To migrate from an earlier LTS release, you **also** need to check all
+the previous migration notes from your release to this new one:
+
+-  :doc:`/migration-guides/migration-4.3`
+-  :doc:`/migration-guides/migration-4.2`
+-  :doc:`/migration-guides/migration-4.1`
+-  :doc:`/migration-guides/migration-4.0`
+-  :doc:`/migration-guides/migration-3.4`
+-  :doc:`/migration-guides/migration-3.3`
+-  :doc:`/migration-guides/migration-3.2`
+
+.. _migration-5.0-supported-kernel-versions:
+
+Supported kernel versions
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that
+out the box, older kernels are not supported. See :ref:`4.3 migration notes
+<migration-4.3-supported-kernel-versions>` for details.
+
+.. _migration-5.0-supported-distributions:
+
+Supported distributions
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Compared to the previous releases, running BitBake is supported on new
+GNU/Linux distributions:
+
+-  Rocky 9
+
+On the other hand, some earlier distributions are no longer supported:
+
+-  Fedora 37
+-  Ubuntu 22.10
+-  OpenSUSE Leap 15.3
+
+See :ref:`all supported distributions <system-requirements-supported-distros>`.
+
+.. _migration-5.0-go-changes:
+
+Go language changes
+~~~~~~~~~~~~~~~~~~~
+
+.. _migration-5.0-systemd-changes:
+
+systemd changes
+~~~~~~~~~~~~~~~
+
+.. _migration-5.0-recipe-changes:
+
+Recipe changes
+~~~~~~~~~~~~~~
+
+-  Runtime testing of ptest now fails if no test results are returned by
+   any given ptest.
+
+.. _migration-5.0-deprecated-variables:
+
+Deprecated variables
+~~~~~~~~~~~~~~~~~~~~
+
+The following variables have been deprecated:
+
+.. _migration-5.0-removed-variables:
+
+Removed variables
+~~~~~~~~~~~~~~~~~
+
+The following variables have been removed:
+
+.. _migration-5.0-removed-recipes:
+
+Removed recipes
+~~~~~~~~~~~~~~~
+
+The following recipes have been removed in this release:
+
+.. _migration-5.0-removed-classes:
+
+Removed classes
+~~~~~~~~~~~~~~~
+
+The following classes have been removed in this release:
+
+.. _migration-5.0-qemu-changes:
+
+QEMU changes
+~~~~~~~~~~~~
+
+.. _migration-5.0-misc-changes:
+
+Miscellaneous changes
+~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/poky/documentation/migration-guides/release-4.0.rst b/poky/documentation/migration-guides/release-4.0.rst
index dfe5e18..685799e 100644
--- a/poky/documentation/migration-guides/release-4.0.rst
+++ b/poky/documentation/migration-guides/release-4.0.rst
@@ -23,3 +23,4 @@
    release-notes-4.0.14
    release-notes-4.0.15
    release-notes-4.0.16
+   release-notes-4.0.17
diff --git a/poky/documentation/migration-guides/release-5.0.rst b/poky/documentation/migration-guides/release-5.0.rst
new file mode 100644
index 0000000..bd19b70
--- /dev/null
+++ b/poky/documentation/migration-guides/release-5.0.rst
@@ -0,0 +1,9 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release 5.0 (scarthgap)
+=======================
+
+.. toctree::
+
+   migration-5.0
+   release-notes-5.0
diff --git a/poky/documentation/migration-guides/release-notes-4.0.17.rst b/poky/documentation/migration-guides/release-notes-4.0.17.rst
new file mode 100644
index 0000000..1dfd10c
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.0.17.rst
@@ -0,0 +1,238 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for Yocto-4.0.17 (Kirkstone)
+------------------------------------------
+
+Security Fixes in Yocto-4.0.17
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  bind: Fix :cve:`2023-4408`, :cve:`2023-50387`, :cve:`2023-50868`, :cve:`2023-5517` and :cve:`2023-5679`
+-  binutils: Fix :cve:`2023-39129` and :cve:`2023-39130`
+-  curl: Fix :cve:`2023-46219`
+-  curl: Ignore :cve:`2023-42915`
+-  gcc: Ignore :cve:`2023-4039`
+-  gdb: Fix :cve:`2023-39129` and :cve:`2023-39130`
+-  glibc: Ignore :cve:`2023-0687`
+-  go: Fix :cve:`2023-29406`, :cve:`2023-45285`, :cve:`2023-45287`, :cve:`2023-45289`, :cve:`2023-45290`, :cve:`2024-24784` and :cve:`2024-24785`
+-  less: Fix :cve:`2022-48624`
+-  libgit2: Fix :cve:`2024-24575` and :cve:`2024-24577`
+-  libuv: fix :cve:`2024-24806`
+-  libxml2: Fix for :cve:`2024-25062`
+-  linux-yocto/5.15: Fix :cve:`2022-36402`, :cve:`2022-40982`, :cve:`2022-47940`, :cve:`2023-1193`, :cve:`2023-1194`, :cve:`2023-20569`, :cve:`2023-20588`, :cve:`2023-25775`, :cve:`2023-31085`, :cve:`2023-32247`, :cve:`2023-32250`, :cve:`2023-32252`, :cve:`2023-32254`, :cve:`2023-32257`, :cve:`2023-32258`, :cve:`2023-34324`, :cve:`2023-35827`, :cve:`2023-3772`, :cve:`2023-38427`, :cve:`2023-38430`, :cve:`2023-38431`, :cve_mitre:`2023-3867`, :cve:`2023-39189`, :cve:`2023-39192`, :cve:`2023-39193`, :cve:`2023-39194`, :cve:`2023-39198`, :cve:`2023-40283`, :cve:`2023-4128`, :cve:`2023-4206`, :cve:`2023-4207`, :cve:`2023-4208`, :cve:`2023-4244`, :cve:`2023-4273`, :cve:`2023-42752`, :cve:`2023-42753`, :cve:`2023-42754`, :cve:`2023-42755`, :cve:`2023-4563`, :cve:`2023-4569`, :cve:`2023-45871`, :cve:`2023-4623`, :cve:`2023-46343`, :cve:`2023-46813`, :cve:`2023-46838`, :cve:`2023-46862`, :cve:`2023-4881`, :cve:`2023-4921`, :cve:`2023-51042`, :cve:`2023-5158`, :cve:`2023-51779`, :cve_mitre:`2023-52340`, :cve:`2023-52429`, :cve:`2023-52435`, :cve:`2023-52436`, :cve:`2023-52438`, :cve:`2023-52439`, :cve:`2023-52441`, :cve:`2023-52442`, :cve:`2023-52443`, :cve:`2023-52444`, :cve:`2023-52445`, :cve:`2023-52448`, :cve:`2023-52449`, :cve:`2023-52451`, :cve:`2023-52454`, :cve:`2023-52456`, :cve:`2023-52457`, :cve:`2023-52458`, :cve:`2023-52463`, :cve:`2023-52464`, :cve:`2023-5717`, :cve:`2023-6040`, :cve:`2023-6121`, :cve:`2023-6176`, :cve:`2023-6546`, :cve:`2023-6606`, :cve:`2023-6622`, :cve:`2023-6817`, :cve:`2023-6915`, :cve:`2023-6931`, :cve:`2023-6932`, :cve:`2024-0340`, :cve:`2024-0584`, :cve:`2024-0607`, :cve:`2024-0641`, :cve:`2024-0646`, :cve:`2024-1085`, :cve:`2024-1086`, :cve:`2024-1151`, :cve:`2024-22705`, :cve:`2024-23849`, :cve:`2024-23850`, :cve:`2024-23851`, :cve:`2024-24860`, :cve:`2024-26586`, :cve:`2024-26589`, :cve:`2024-26591`, :cve:`2024-26592`, :cve:`2024-26593`, :cve:`2024-26594`, :cve:`2024-26597` and :cve:`2024-26598`
+-  linux-yocto/5.15: Ignore :cve:`2020-27418`, :cve:`2020-36766`, :cve:`2021-33630`, :cve:`2021-33631`, :cve:`2022-48619`, :cve:`2023-2430`, :cve:`2023-40791`, :cve:`2023-42756`, :cve:`2023-44466`, :cve:`2023-45862`, :cve:`2023-45863`, :cve:`2023-45898`, :cve:`2023-4610`, :cve:`2023-4732`, :cve:`2023-5090`, :cve:`2023-51043`, :cve:`2023-5178`, :cve:`2023-51780`, :cve:`2023-51781`, :cve:`2023-51782`, :cve:`2023-5197`, :cve:`2023-52433`, :cve:`2023-52440`, :cve:`2023-52446`, :cve:`2023-52450`, :cve:`2023-52453`, :cve:`2023-52455`, :cve:`2023-52459`, :cve:`2023-52460`, :cve:`2023-52461`, :cve:`2023-52462`, :cve:`2023-5345`, :cve:`2023-5633`, :cve:`2023-5972`, :cve:`2023-6111`, :cve:`2023-6200`, :cve:`2023-6531`, :cve:`2023-6679`, :cve:`2023-7192`, :cve:`2024-0193`, :cve:`2024-0443`, :cve:`2024-0562`, :cve:`2024-0582`, :cve:`2024-0639`, :cve:`2024-0775`, :cve:`2024-26581`, :cve:`2024-26582`, :cve:`2024-26590`, :cve:`2024-26596` and :cve:`2024-26599`
+-  linux-yocto/5.10: Fix :cve:`2023-39198`, :cve:`2023-46838`, :cve:`2023-51779`, :cve:`2023-51780`, :cve:`2023-51781`, :cve:`2023-51782`, :cve_mitre:`2023-52340`, :cve:`2023-6040`, :cve:`2023-6121`, :cve:`2023-6606`, :cve:`2023-6817`, :cve:`2023-6915`, :cve:`2023-6931`, :cve:`2023-6932`, :cve:`2024-0584` and :cve:`2024-0646`
+-  linux-yocto/5.10: Ignore :cve:`2021-33630`, :cve:`2021-33631`, :cve:`2022-1508`, :cve:`2022-36402`, :cve:`2022-48619`, :cve:`2023-2430`, :cve:`2023-4610`, :cve:`2023-46343`, :cve:`2023-51042`, :cve:`2023-51043`, :cve:`2023-5972`, :cve:`2023-6039`, :cve:`2023-6200`, :cve:`2023-6531`, :cve:`2023-6546`, :cve:`2023-6622`, :cve:`2023-6679`, :cve:`2023-7192`, :cve:`2024-0193`, :cve:`2024-0443`, :cve:`2024-0562`, :cve:`2024-0582`, :cve:`2024-0639`, :cve:`2024-0641`, :cve:`2024-0775`, :cve:`2024-1085` and :cve:`2024-22705`
+-  openssl: Fix :cve:`2024-0727`
+-  python3-pycryptodome: Fix :cve:`2023-52323`
+-  qemu: Fix :cve:`2023-42467`, :cve:`2023-6693` and :cve:`2024-24474`
+-  vim: Fix :cve:`2024-22667`
+-  xwayland: Fix :cve:`2023-6377` and :cve:`2023-6478`
+
+
+Fixes in Yocto-4.0.17
+~~~~~~~~~~~~~~~~~~~~~
+
+-  bind: Upgrade to 9.18.24
+-  bitbake: bitbake/codeparser.py: address ast module deprecations in py 3.12
+-  bitbake: bitbake/lib/bs4/tests/test_tree.py: python 3.12 regex
+-  bitbake: codeparser: replace deprecated ast.Str and 's'
+-  bitbake: fetch2: Ensure that git LFS objects are available
+-  bitbake: tests/fetch: Add real git lfs tests and decorator
+-  bitbake: tests/fetch: git-lfs restore _find_git_lfs
+-  bitbake: toaster/toastergui: Bug-fix verify given layer path only if import/add local layer
+-  build-appliance-image: Update to kirkstone head revision
+-  cmake: Unset CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+-  contributor-guide: fix lore URL
+-  curl: don't enable debug builds
+-  cve_check: cleanup logging
+-  dbus: Add missing :term:`CVE_PRODUCT`
+-  dev-manual: sbom: Rephrase spdx creation
+-  dev-manual: runtime-testing: gen-tapdevs need iptables installed
+-  dev-manual: packages: clarify shared :term:`PR` service constraint
+-  dev-manual: packages: need enough free space
+-  dev-manual: start: remove idle line
+-  feature-microblaze-versions.inc: python 3.12 regex
+-  ghostscript: correct :term:`LICENSE` with AGPLv3
+-  image-live.bbclass: LIVE_ROOTFS_TYPE support compression
+-  kernel.bbclass: Set pkg-config variables for building modules
+-  kernel.bbclass: introduce KERNEL_LOCALVERSION
+-  kernel: fix localversion in v6.3+
+-  kernel: make LOCALVERSION consistent between recipes
+-  ldconfig-native: Fix to point correctly on the DT_NEEDED entries in an ELF file
+-  librsvg: Fix do_package_qa error for librsvg
+-  linux-firmware: upgrade to 20231211
+-  linux-yocto/5.10: update to v5.10.210
+-  linux-yocto/5.15: update to v5.15.150
+-  manuals: add minimum RAM requirements
+-  manuals: suppress excess use of "following" word
+-  manuals: update disk space requirements
+-  manuals: update references to buildtools
+-  manuals: updates for building on Windows (WSL 2)
+-  meta/lib/oeqa: python 3.12 regex
+-  meta/recipes: python 3.12 regex
+-  migration-guide: add release notes for 4.0.16
+-  oeqa/selftest/oelib/buildhistory: git default branch
+-  oeqa/selftest/recipetool: downgrade meson version to not use pyproject.toml
+-  oeqa/selftest/recipetool: expect meson.bb
+-  oeqa/selftest/recipetool: fix for python 3.12
+-  oeqa/selftest/runtime_test: only run the virgl tests on qemux86-64
+-  oeqa: replace deprecated assertEquals
+-  openssl: Upgrade to 3.0.13
+-  poky.conf: bump version for 4.0.17
+-  populate_sdk_ext: use ConfigParser instead of SafeConfigParser
+-  python3-jinja2: upgrade to 3.1.3
+-  recipetool/create_buildsys_python: use importlib instead of imp
+-  ref-manual: system-requirements: recommend buildtools for not supported distros
+-  ref-manual: system-requirements: add info on buildtools-make-tarball
+-  ref-manual: release-process: grammar fix
+-  ref-manual: system-requirements: fix AlmaLinux variable name
+-  ref-manual: system-requirements: modify anchor
+-  ref-manual: system-requirements: remove outdated note
+-  ref-manual: system-requirements: simplify supported distro requirements
+-  ref-manual: system-requirements: update packages to build docs
+-  scripts/runqemu: add qmp socket support
+-  scripts/runqemu: direct mesa to use its own drivers, rather than ones provided by host distro
+-  scripts/runqemu: fix regex escape sequences
+-  scripts: python 3.12 regex
+-  selftest: skip virgl gtk/sdl test on ubuntu 18.04
+-  systemd: Only add myhostname to nsswitch.conf if in :term:`PACKAGECONFIG`
+-  tzdata : Upgrade to 2024a
+-  u-boot: Move UBOOT_INITIAL_ENV back to u-boot.inc
+-  useradd-example: do not use unsupported clear text password
+-  vim: upgrade to v9.0.2190
+-  yocto-bsp: update to v5.15.150
+
+
+Known Issues in Yocto-4.0.17
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- N/A
+
+
+Contributors to Yocto-4.0.17
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Adrian Freihofer
+-  Alassane Yattara
+-  Alexander Kanavin
+-  Alexander Sverdlin
+-  Archana Polampalli
+-  Baruch Siach
+-  Bruce Ashfield
+-  Chen Qi
+-  Chris Laplante
+-  Deepthi Hemraj
+-  Dhairya Nagodra
+-  Fabien Mahot
+-  Fabio Estevam
+-  Hitendra Prajapati
+-  Hugo SIMELIERE
+-  Jermain Horsman
+-  Kai Kang
+-  Lee Chee Yang
+-  Ludovic Jozeau
+-  Michael Opdenacker
+-  Ming Liu
+-  Munehisa Kamata
+-  Narpat Mali
+-  Nikhil R
+-  Paul Eggleton
+-  Paulo Neves
+-  Peter Marko
+-  Philip Lorenz
+-  Poonam Jadhav
+-  Priyal Doshi
+-  Ross Burton
+-  Simone Weiß
+-  Soumya Sambu
+-  Steve Sakoman
+-  Tim Orling
+-  Trevor Gamblin
+-  Vijay Anusuri
+-  Vivek Kumbhar
+-  Wang Mingyu
+-  Zahir Hussain
+
+
+Repositories / Downloads for Yocto-4.0.17
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: :yocto_git:`/poky`
+-  Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.17 </poky/log/?h=yocto-4.0.17>`
+-  Git Revision: :yocto_git:`6d1a878bbf24c66f7186b270f823fcdf82e35383 </poky/commit/?id=6d1a878bbf24c66f7186b270f823fcdf82e35383>`
+-  Release Artefact: poky-6d1a878bbf24c66f7186b270f823fcdf82e35383
+-  sha: 3bc3010340b674f7b0dd0a7997f0167b2240b794fbd4aa28c0c4217bddd15e30
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.17/poky-6d1a878bbf24c66f7186b270f823fcdf82e35383.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.17/poky-6d1a878bbf24c66f7186b270f823fcdf82e35383.tar.bz2
+
+openembedded-core
+
+-  Repository Location: :oe_git:`/openembedded-core`
+-  Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
+-  Tag:  :oe_git:`yocto-4.0.17 </openembedded-core/log/?h=yocto-4.0.17>`
+-  Git Revision: :oe_git:`2501534c9581c6c3439f525d630be11554a57d24 </openembedded-core/commit/?id=2501534c9581c6c3439f525d630be11554a57d24>`
+-  Release Artefact: oecore-2501534c9581c6c3439f525d630be11554a57d24
+-  sha: 52cc6cce9e920bdce078584b89136e81cc01e0c55616fab5fca6c3e04264c88e
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.17/oecore-2501534c9581c6c3439f525d630be11554a57d24.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.17/oecore-2501534c9581c6c3439f525d630be11554a57d24.tar.bz2
+
+meta-mingw
+
+-  Repository Location: :yocto_git:`/meta-mingw`
+-  Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.17 </meta-mingw/log/?h=yocto-4.0.17>`
+-  Git Revision: :yocto_git:`f6b38ce3c90e1600d41c2ebb41e152936a0357d7 </meta-mingw/commit/?id=f6b38ce3c90e1600d41c2ebb41e152936a0357d7>`
+-  Release Artefact: meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7
+-  sha: 7d57167c19077f4ab95623d55a24c2267a3a3fb5ed83688659b4c03586373b25
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.17/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.17/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
+
+meta-gplv2
+
+-  Repository Location: :yocto_git:`/meta-gplv2`
+-  Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.17 </meta-gplv2/log/?h=yocto-4.0.17>`
+-  Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
+-  Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
+-  sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.17/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.17/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+
+meta-clang
+
+-  Repository Location: :yocto_git:`/meta-clang`
+-  Branch: :yocto_git:`kirkstone </meta-clang/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.17 </meta-clang/log/?h=yocto-4.0.17>`
+-  Git Revision: :yocto_git:`eebe4ff2e539f3ffb01c5060cc4ca8b226ea8b52 </meta-clang/commit/?id=eebe4ff2e539f3ffb01c5060cc4ca8b226ea8b52>`
+-  Release Artefact: meta-clang-eebe4ff2e539f3ffb01c5060cc4ca8b226ea8b52
+-  sha: 3299e96e069a22c0971e903fbc191f2427efffc83d910ac51bf0237caad01d17
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.17/meta-clang-eebe4ff2e539f3ffb01c5060cc4ca8b226ea8b52.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.17/meta-clang-eebe4ff2e539f3ffb01c5060cc4ca8b226ea8b52.tar.bz2
+
+bitbake
+
+-  Repository Location: :oe_git:`/bitbake`
+-  Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
+-  Tag:  :oe_git:`yocto-4.0.17 </bitbake/log/?h=yocto-4.0.17>`
+-  Git Revision: :oe_git:`40fd5f4eef7460ca67f32cfce8e229e67e1ff607 </bitbake/commit/?id=40fd5f4eef7460ca67f32cfce8e229e67e1ff607>`
+-  Release Artefact: bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607
+-  sha: 5d20a0e4c5d0fce44bd84778168714a261a30a4b83f67c88df3b8a7e7115e444
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.17/bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.17/bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607.tar.bz2
+
+yocto-docs
+
+-  Repository Location: :yocto_git:`/yocto-docs`
+-  Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
+-  Tag: :yocto_git:`yocto-4.0.17 </yocto-docs/log/?h=yocto-4.0.17>`
+-  Git Revision: :yocto_git:`08ce7db2aa3a38deb8f5aa59bafc78542986babb </yocto-docs/commit/?id=08ce7db2aa3a38deb8f5aa59bafc78542986babb>`
+
diff --git a/poky/documentation/migration-guides/release-notes-5.0.rst b/poky/documentation/migration-guides/release-notes-5.0.rst
new file mode 100644
index 0000000..e5cdd87
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-5.0.rst
@@ -0,0 +1,66 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for 5.0 (scarthgap)
+---------------------------------
+
+New Features / Enhancements in 5.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Linux kernel 6.6, gcc 13.2, glibc 2.39, LLVM 18.1, and over XXX other recipe upgrades
+
+-  New variables:
+
+-  Architecture-specific enhancements:
+
+-  Kernel-related enhancements:
+
+-  New core recipes:
+
+-  QEMU / ``runqemu`` enhancements:
+
+   -  QEMU has been upgraded to version 8.2.1
+
+-  Rust improvements:
+
+   -  Rust has been upgraded to version 1.75
+
+-  wic Image Creator enhancements:
+
+-  SDK-related improvements:
+
+-  Testing:
+
+-  Utility script changes:
+
+-  BitBake improvements:
+
+-  Packaging changes:
+
+-  Security improvements:
+
+-  Prominent documentation updates:
+
+-  Miscellaneous changes:
+
+Known Issues in 5.0
+~~~~~~~~~~~~~~~~~~~
+
+-  N/A
+
+Recipe License changes in 5.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Security Fixes in 5.0
+~~~~~~~~~~~~~~~~~~~~~
+
+Recipe Upgrades in 5.0
+~~~~~~~~~~~~~~~~~~~~~~
+
+Contributors to 5.0
+~~~~~~~~~~~~~~~~~~~
+
+Thanks to the following people who contributed to this release:
+
+Repositories / Downloads for Yocto-5.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/poky/documentation/profile-manual/usage.rst b/poky/documentation/profile-manual/usage.rst
index 6f0b041..2f82137 100644
--- a/poky/documentation/profile-manual/usage.rst
+++ b/poky/documentation/profile-manual/usage.rst
@@ -13,7 +13,7 @@
 perf
 ====
 
-The 'perf' tool is the profiling and tracing tool that comes bundled
+The perf tool is the profiling and tracing tool that comes bundled
 with the Linux kernel.
 
 Don't let the fact that it's part of the kernel fool you into thinking
@@ -26,22 +26,22 @@
 
 In many ways, perf aims to be a superset of all the tracing and
 profiling tools available in Linux today, including all the other tools
-covered in this HOWTO. The past couple of years have seen perf subsume a
+covered in this How-to. The past couple of years have seen perf subsume a
 lot of the functionality of those other tools and, at the same time,
 those other tools have removed large portions of their previous
 functionality and replaced it with calls to the equivalent functionality
 now implemented by the perf subsystem. Extrapolation suggests that at
-some point those other tools will simply become completely redundant and
+some point those other tools will become completely redundant and
 go away; until then, we'll cover those other tools in these pages and in
 many cases show how the same things can be accomplished in perf and the
 other tools when it seems useful to do so.
 
 The coverage below details some of the most common ways you'll likely
 want to apply the tool; full documentation can be found either within
-the tool itself or in the man pages at
+the tool itself or in the manual pages at
 `perf(1) <https://linux.die.net/man/1/perf>`__.
 
-Perf Setup
+perf Setup
 ----------
 
 For this section, we'll assume you've already performed the basic setup
@@ -54,14 +54,14 @@
 
 perf runs on the target system for the most part. You can archive
 profile data and copy it to the host for analysis, but for the rest of
-this document we assume you've ssh'ed to the host and will be running
-the perf commands on the target.
+this document we assume you're connected to the host through SSH and will be
+running the perf commands on the target.
 
-Basic Perf Usage
+Basic perf Usage
 ----------------
 
 The perf tool is pretty much self-documenting. To remind yourself of the
-available commands, simply type 'perf', which will show you basic usage
+available commands, just type ``perf``, which will show you basic usage
 along with the available perf subcommands::
 
    root@crownbay:~# perf
@@ -97,19 +97,19 @@
 Using perf to do Basic Profiling
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-As a simple test case, we'll profile the 'wget' of a fairly large file,
+As a simple test case, we'll profile the ``wget`` of a fairly large file,
 which is a minimally interesting case because it has both file and
 network I/O aspects, and at least in the case of standard Yocto images,
 it's implemented as part of BusyBox, so the methods we use to analyze it
-can be used in a very similar way to the whole host of supported BusyBox
-applets in Yocto. ::
+can be used in a similar way to the whole host of supported BusyBox
+applets in Yocto::
 
    root@crownbay:~# rm linux-2.6.19.2.tar.bz2; \
                     wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
 
 The quickest and easiest way to get some basic overall data about what's
-going on for a particular workload is to profile it using 'perf stat'.
-'perf stat' basically profiles using a few default counters and displays
+going on for a particular workload is to profile it using ``perf stat``.
+This command basically profiles using a few default counters and displays
 the summed counts at the end of the run::
 
    root@crownbay:~# perf stat wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
@@ -131,13 +131,13 @@
 
         59.836627620 seconds time elapsed
 
-Many times such a simple-minded test doesn't yield much of
-interest, but sometimes it does (see Real-world Yocto bug (slow
-loop-mounted write speed)).
+Such a simple-minded test doesn't always yield much of interest, but sometimes
+it does (see the :yocto_bugs:`Slow write speed on live images with denzil
+</show_bug.cgi?id=3049>` bug report).
 
-Also, note that 'perf stat' isn't restricted to a fixed set of counters
-- basically any event listed in the output of 'perf list' can be tallied
-by 'perf stat'. For example, suppose we wanted to see a summary of all
+Also, note that ``perf stat`` isn't restricted to a fixed set of counters
+--- basically any event listed in the output of ``perf list`` can be tallied
+by ``perf stat``. For example, suppose we wanted to see a summary of all
 the events related to kernel memory allocation/freeing along with cache
 hits and misses::
 
@@ -164,22 +164,22 @@
 
         44.831023415 seconds time elapsed
 
-So 'perf stat' gives us a nice easy
+As you can see, ``perf stat`` gives us a nice easy
 way to get a quick overview of what might be happening for a set of
 events, but normally we'd need a little more detail in order to
 understand what's going on in a way that we can act on in a useful way.
 
-To dive down into a next level of detail, we can use 'perf record'/'perf
-report' which will collect profiling data and present it to use using an
-interactive text-based UI (or simply as text if we specify ``--stdio`` to
-'perf report').
+To dive down into a next level of detail, we can use ``perf record`` /
+``perf report`` which will collect profiling data and present it to use using an
+interactive text-based UI (or just as text if we specify ``--stdio`` to
+``perf report``).
 
-As our first attempt at profiling this workload, we'll simply run 'perf
-record', handing it the workload we want to profile (everything after
-'perf record' and any perf options we hand it --- here none, will be
+As our first attempt at profiling this workload, we'll just run ``perf
+record``, handing it the workload we want to profile (everything after
+``perf record`` and any perf options we hand it --- here none, will be
 executed in a new shell). perf collects samples until the process exits
-and records them in a file named 'perf.data' in the current working
-directory. ::
+and records them in a file named ``perf.data`` in the current working
+directory::
 
    root@crownbay:~# perf record wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
 
@@ -189,7 +189,7 @@
    [ perf record: Captured and wrote 0.176 MB perf.data (~7700 samples) ]
 
 To see the results in a
-'text-based UI' (tui), simply run 'perf report', which will read the
+"text-based UI" (tui), just run ``perf report``, which will read the
 perf.data file in the current working directory and display the results
 in an interactive UI::
 
@@ -199,26 +199,26 @@
    :align: center
    :width: 70%
 
-The above screenshot displays a 'flat' profile, one entry for each
-'bucket' corresponding to the functions that were profiled during the
+The above screenshot displays a "flat" profile, one entry for each
+"bucket" corresponding to the functions that were profiled during the
 profiling run, ordered from the most popular to the least (perf has
 options to sort in various orders and keys as well as display entries
 only above a certain threshold and so on --- see the perf documentation
-for details). Note that this includes both userspace functions (entries
-containing a [.]) and kernel functions accounted to the process (entries
-containing a [k]). (perf has command-line modifiers that can be used to
-restrict the profiling to kernel or userspace, among others).
+for details). Note that this includes both user space functions (entries
+containing a ``[.]``) and kernel functions accounted to the process (entries
+containing a ``[k]``). perf has command-line modifiers that can be used to
+restrict the profiling to kernel or user space, among others.
 
-Notice also that the above report shows an entry for 'busybox', which is
-the executable that implements 'wget' in Yocto, but that instead of a
+Notice also that the above report shows an entry for ``busybox``, which is
+the executable that implements ``wget`` in Yocto, but that instead of a
 useful function name in that entry, it displays a not-so-friendly hex
 value instead. The steps below will show how to fix that problem.
 
 Before we do that, however, let's try running a different profile, one
 which shows something a little more interesting. The only difference
-between the new profile and the previous one is that we'll add the -g
+between the new profile and the previous one is that we'll add the ``-g``
 option, which will record not just the address of a sampled function,
-but the entire callchain to the sampled function as well::
+but the entire call chain to the sampled function as well::
 
    root@crownbay:~# perf record -g wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
    Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -233,45 +233,45 @@
    :align: center
    :width: 70%
 
-Using the callgraph view, we can actually see not only which functions
+Using the call graph view, we can actually see not only which functions
 took the most time, but we can also see a summary of how those functions
 were called and learn something about how the program interacts with the
 kernel in the process.
 
-Notice that each entry in the above screenshot now contains a '+' on the
-left-hand side. This means that we can expand the entry and drill down
-into the callchains that feed into that entry. Pressing 'enter' on any
-one of them will expand the callchain (you can also press 'E' to expand
-them all at the same time or 'C' to collapse them all).
+Notice that each entry in the above screenshot now contains a ``+`` on the
+left side. This means that we can expand the entry and drill down
+into the call chains that feed into that entry. Pressing ``Enter`` on any
+one of them will expand the call chain (you can also press ``E`` to expand
+them all at the same time or ``C`` to collapse them all).
 
 In the screenshot above, we've toggled the ``__copy_to_user_ll()`` entry
-and several subnodes all the way down. This lets us see which callchains
+and several subnodes all the way down. This lets us see which call chains
 contributed to the profiled ``__copy_to_user_ll()`` function which
 contributed 1.77% to the total profile.
 
-As a bit of background explanation for these callchains, think about
-what happens at a high level when you run wget to get a file out on the
+As a bit of background explanation for these call chains, think about
+what happens at a high level when you run ``wget`` to get a file out on the
 network. Basically what happens is that the data comes into the kernel
-via the network connection (socket) and is passed to the userspace
-program 'wget' (which is actually a part of BusyBox, but that's not
+via the network connection (socket) and is passed to the user space
+program ``wget`` (which is actually a part of BusyBox, but that's not
 important for now), which takes the buffers the kernel passes to it and
 writes it to a disk file to save it.
 
 The part of this process that we're looking at in the above call stacks
 is the part where the kernel passes the data it has read from the socket
-down to wget i.e. a copy-to-user.
+down to wget i.e. a ``copy-to-user``.
 
 Notice also that here there's also a case where the hex value is
-displayed in the callstack, here in the expanded ``sys_clock_gettime()``
-function. Later we'll see it resolve to a userspace function call in
-busybox.
+displayed in the call stack, here in the expanded ``sys_clock_gettime()``
+function. Later we'll see it resolve to a user space function call in
+BusyBox.
 
 .. image:: figures/perf-wget-g-copy-from-user-expanded-stripped.png
    :align: center
    :width: 70%
 
-The above screenshot shows the other half of the journey for the data -
-from the wget program's userspace buffers to disk. To get the buffers to
+The above screenshot shows the other half of the journey for the data ---
+from the ``wget`` program's user space buffers to disk. To get the buffers to
 disk, the wget program issues a ``write(2)``, which does a ``copy-from-user`` to
 the kernel, which then takes care via some circuitous path (probably
 also present somewhere in the profile data), to get it safely to disk.
@@ -281,8 +281,8 @@
 task at hand and see if we can get some basic idea about where the time
 is spent in the program we're profiling, wget. Remember that wget is
 actually implemented as an applet in BusyBox, so while the process name
-is 'wget', the executable we're actually interested in is BusyBox. So
-let's expand the first entry containing BusyBox:
+is ``wget``, the executable we're actually interested in is ``busybox``.
+Therefore, let's expand the first entry containing BusyBox:
 
 .. image:: figures/perf-wget-busybox-expanded-stripped.png
    :align: center
@@ -293,7 +293,7 @@
 Expanding the BusyBox entry doesn't make it any better.
 
 The problem is that perf can't find the symbol information for the
-busybox binary, which is actually stripped out by the Yocto build
+``busybox`` binary, which is actually stripped out by the Yocto build
 system.
 
 One way around that is to put the following in your ``local.conf`` file
@@ -303,40 +303,39 @@
 
 However, we already have an image with the binaries stripped, so
 what can we do to get perf to resolve the symbols? Basically we need to
-install the debuginfo for the BusyBox package.
+install the debugging information for the BusyBox package.
 
 To generate the debug info for the packages in the image, we can add
 ``dbg-pkgs`` to :term:`EXTRA_IMAGE_FEATURES` in ``local.conf``. For example::
 
    EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
 
-Additionally, in order to generate the type of debuginfo that perf
-understands, we also need to set
-:term:`PACKAGE_DEBUG_SPLIT_STYLE`
+Additionally, in order to generate the type of debugging information that perf
+understands, we also need to set :term:`PACKAGE_DEBUG_SPLIT_STYLE`
 in the ``local.conf`` file::
 
    PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
 
-Once we've done that, we can install the
-debuginfo for BusyBox. The debug packages once built can be found in
-``build/tmp/deploy/rpm/*`` on the host system. Find the busybox-dbg-...rpm
-file and copy it to the target. For example::
+Once we've done that, we can install the debugging information for BusyBox. The
+debug packages once built can be found in ``build/tmp/deploy/rpm/*``
+on the host system. Find the ``busybox-dbg-...rpm`` file and copy it
+to the target. For example::
 
    [trz@empanada core2]$ scp /home/trz/yocto/crownbay-tracing-dbg/build/tmp/deploy/rpm/core2_32/busybox-dbg-1.20.2-r2.core2_32.rpm root@192.168.1.31:
    busybox-dbg-1.20.2-r2.core2_32.rpm                     100% 1826KB   1.8MB/s   00:01
 
-Now install the debug rpm on the target::
+Now install the debug RPM on the target::
 
    root@crownbay:~# rpm -i busybox-dbg-1.20.2-r2.core2_32.rpm
 
-Now that the debuginfo is installed, we see that the BusyBox entries now display
+Now that the debugging information is installed, we see that the BusyBox entries now display
 their functions symbolically:
 
 .. image:: figures/perf-wget-busybox-debuginfo.png
    :align: center
    :width: 70%
 
-If we expand one of the entries and press 'enter' on a leaf node, we're
+If we expand one of the entries and press ``Enter`` on a leaf node, we're
 presented with a menu of actions we can take to get more information
 related to that entry:
 
@@ -346,17 +345,17 @@
 
 One of these actions allows us to show a view that displays a
 busybox-centric view of the profiled functions (in this case we've also
-expanded all the nodes using the 'E' key):
+expanded all the nodes using the ``E`` key):
 
 .. image:: figures/perf-wget-busybox-dso-zoom.png
    :align: center
    :width: 70%
 
-Finally, we can see that now that the BusyBox debuginfo is installed,
+Finally, we can see that now that the BusyBox debugging information is installed,
 the previously unresolved symbol in the ``sys_clock_gettime()`` entry
 mentioned previously is now resolved, and shows that the
-sys_clock_gettime system call that was the source of 6.75% of the
-copy-to-user overhead was initiated by the ``handle_input()`` BusyBox
+``sys_clock_gettime`` system call that was the source of 6.75% of the
+``copy-to-user`` overhead was initiated by the ``handle_input()`` BusyBox
 function:
 
 .. image:: figures/perf-wget-g-copy-to-user-expanded-debuginfo.png
@@ -365,15 +364,15 @@
 
 At the lowest level of detail, we can dive down to the assembly level
 and see which instructions caused the most overhead in a function.
-Pressing 'enter' on the 'udhcpc_main' function, we're again presented
+Pressing ``Enter`` on the ``udhcpc_main`` function, we're again presented
 with a menu:
 
 .. image:: figures/perf-wget-busybox-annotate-menu.png
    :align: center
    :width: 70%
 
-Selecting 'Annotate udhcpc_main', we get a detailed listing of
-percentages by instruction for the udhcpc_main function. From the
+Selecting ``Annotate udhcpc_main``, we get a detailed listing of
+percentages by instruction for the ``udhcpc_main`` function. From the
 display, we can see that over 50% of the time spent in this function is
 taken up by a couple tests and the move of a constant (1) to a register:
 
@@ -382,17 +381,17 @@
    :width: 70%
 
 As a segue into tracing, let's try another profile using a different
-counter, something other than the default 'cycles'.
+counter, something other than the default ``cycles``.
 
 The tracing and profiling infrastructure in Linux has become unified in
 a way that allows us to use the same tool with a completely different
 set of counters, not just the standard hardware counters that
-traditional tools have had to restrict themselves to (of course the
-traditional tools can also make use of the expanded possibilities now
+traditional tools have had to restrict themselves to (the
+traditional tools can now actually make use of the expanded possibilities now
 available to them, and in some cases have, as mentioned previously).
 
 We can get a list of the available events that can be used to profile a
-workload via 'perf list'::
+workload via ``perf list``::
 
    root@crownbay:~# perf list
 
@@ -528,14 +527,14 @@
 .. admonition:: Tying it Together
 
    These are exactly the same set of events defined by the trace event
-   subsystem and exposed by ftrace/tracecmd/kernelshark as files in
-   /sys/kernel/debug/tracing/events, by SystemTap as
+   subsystem and exposed by ftrace / trace-cmd / KernelShark as files in
+   ``/sys/kernel/debug/tracing/events``, by SystemTap as
    kernel.trace("tracepoint_name") and (partially) accessed by LTTng.
 
 Only a subset of these would be of interest to us when looking at this
 workload, so let's choose the most likely subsystems (identified by the
-string before the colon in the Tracepoint events) and do a 'perf stat'
-run using only those wildcarded subsystems::
+string before the colon in the ``Tracepoint`` events) and do a ``perf stat``
+run using only those subsystem wildcards::
 
    root@crownbay:~# perf stat -e skb:* -e net:* -e napi:* -e sched:* -e workqueue:* -e irq:* -e syscalls:* wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
    Performance counter stats for 'wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2':
@@ -607,8 +606,8 @@
 
 The screenshot above shows the results of running a profile using
 sched:sched_switch tracepoint, which shows the relative costs of various
-paths to sched_wakeup (note that sched_wakeup is the name of the
-tracepoint --- it's actually defined just inside ttwu_do_wakeup(), which
+paths to ``sched_wakeup`` (note that ``sched_wakeup`` is the name of the
+tracepoint --- it's actually defined just inside ``ttwu_do_wakeup()``, which
 accounts for the function name actually displayed in the profile:
 
 .. code-block:: c
@@ -626,15 +625,15 @@
      }
 
 A couple of the more interesting
-callchains are expanded and displayed above, basically some network
-receive paths that presumably end up waking up wget (busybox) when
+call chains are expanded and displayed above, basically some network
+receive paths that presumably end up waking up wget (BusyBox) when
 network data is ready.
 
 Note that because tracepoints are normally used for tracing, the default
-sampling period for tracepoints is 1 i.e. for tracepoints perf will
-sample on every event occurrence (this can be changed using the -c
+sampling period for tracepoints is ``1`` i.e. for tracepoints perf will
+sample on every event occurrence (this can be changed using the ``-c``
 option). This is in contrast to hardware counters such as for example
-the default 'cycles' hardware counter used for normal profiling, where
+the default ``cycles`` hardware counter used for normal profiling, where
 sampling periods are much higher (in the thousands) because profiling
 should have as low an overhead as possible and sampling on every cycle
 would be prohibitively expensive.
@@ -645,10 +644,10 @@
 Profiling is a great tool for solving many problems or for getting a
 high-level view of what's going on with a workload or across the system.
 It is however by definition an approximation, as suggested by the most
-prominent word associated with it, 'sampling'. On the one hand, it
+prominent word associated with it, ``sampling``. On the one hand, it
 allows a representative picture of what's going on in the system to be
-cheaply taken, but on the other hand, that cheapness limits its utility
-when that data suggests a need to 'dive down' more deeply to discover
+cheaply taken, but alternatively, that cheapness limits its utility
+when that data suggests a need to "dive down" more deeply to discover
 what's really going on. In such cases, the only way to see what's really
 going on is to be able to look at (or summarize more intelligently) the
 individual steps that go into the higher-level behavior exposed by the
@@ -661,7 +660,7 @@
     -e syscalls:sys_enter_read -e syscalls:sys_exit_read -e syscalls:sys_enter_write -e syscalls:sys_exit_write
     wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
 
-We can look at the raw trace output using 'perf script' with no
+We can look at the raw trace output using ``perf script`` with no
 arguments::
 
    root@crownbay:~# perf script
@@ -692,7 +691,7 @@
 This gives us a detailed timestamped sequence of events that occurred within the
 workload with respect to those events.
 
-In many ways, profiling can be viewed as a subset of tracing -
+In many ways, profiling can be viewed as a subset of tracing ---
 theoretically, if you have a set of trace events that's sufficient to
 capture all the important aspects of a workload, you can derive any of
 the results or views that a profiling run can.
@@ -712,23 +711,23 @@
 Another way to look at it is that there are only so many ways that the
 'primitive' counters can be used on their own to generate interesting
 output; to get anything more complicated than simple counts requires
-some amount of additional logic, which is typically very specific to the
+some amount of additional logic, which is typically specific to the
 problem at hand. For example, if we wanted to make use of a 'counter'
 that maps to the value of the time difference between when a process was
 scheduled to run on a processor and the time it actually ran, we
 wouldn't expect such a counter to exist on its own, but we could derive
-one called say 'wakeup_latency' and use it to extract a useful view of
+one called say ``wakeup_latency`` and use it to extract a useful view of
 that metric from trace data. Likewise, we really can't figure out from
 standard profiling tools how much data every process on the system reads
 and writes, along with how many of those reads and writes fail
 completely. If we have sufficient trace data, however, we could with the
 right tools easily extract and present that information, but we'd need
-something other than pre-canned profiling tools to do that.
+something other than ready-made profiling tools to do that.
 
 Luckily, there is a general-purpose way to handle such needs, called
-'programming languages'. Making programming languages easily available
+"programming languages". Making programming languages easily available
 to apply to such problems given the specific format of data is called a
-'programming language binding' for that data and language. Perf supports
+'programming language binding' for that data and language. perf supports
 two programming language bindings, one for Python and one for Perl.
 
 .. admonition:: Tying it Together
@@ -738,21 +737,21 @@
    DProbes dpcc compiler, an ANSI C compiler which targeted a low-level
    assembly language running on an in-kernel interpreter on the target
    system. This is exactly analogous to what Sun's DTrace did, except
-   that DTrace invented its own language for the purpose. Systemtap,
+   that DTrace invented its own language for the purpose. SystemTap,
    heavily inspired by DTrace, also created its own one-off language,
    but rather than running the product on an in-kernel interpreter,
    created an elaborate compiler-based machinery to translate its
    language into kernel modules written in C.
 
-Now that we have the trace data in perf.data, we can use 'perf script
--g' to generate a skeleton script with handlers for the read/write
-entry/exit events we recorded::
+Now that we have the trace data in ``perf.data``, we can use ``perf script
+-g`` to generate a skeleton script with handlers for the read / write
+entry / exit events we recorded::
 
    root@crownbay:~# perf script -g python
    generated Python script: perf-script.py
 
-The skeleton script simply creates a Python function for each event type in the
-perf.data file. The body of each function simply prints the event name along
+The skeleton script just creates a Python function for each event type in the
+``perf.data`` file. The body of each function just prints the event name along
 with its parameters. For example:
 
 .. code-block:: python
@@ -766,7 +765,7 @@
                   print "skbaddr=%u, len=%u, name=%s\n" % (skbaddr, len, name),
 
 We can run that script directly to print all of the events contained in the
-perf.data file::
+``perf.data`` file::
 
    root@crownbay:~# perf script -s perf-script.py
 
@@ -795,8 +794,8 @@
    syscalls__sys_exit_read     1 11624.859944032     1262 wget                  nr=3, ret=1024
 
 That in itself isn't very useful; after all, we can accomplish pretty much the
-same thing by simply running 'perf script' without arguments in the same
-directory as the perf.data file.
+same thing by just running ``perf script`` without arguments in the same
+directory as the ``perf.data`` file.
 
 We can however replace the print statements in the generated function
 bodies with whatever we want, and thereby make it infinitely more
@@ -817,8 +816,8 @@
 
 Each event handler function in the generated code
 is modified to do this. For convenience, we define a common function
-called inc_counts() that each handler calls; inc_counts() simply tallies
-a count for each event using the 'counts' hash, which is a specialized
+called ``inc_counts()`` that each handler calls; ``inc_counts()`` just tallies
+a count for each event using the ``counts`` hash, which is a specialized
 hash function that does Perl-like autovivification, a capability that's
 extremely useful for kinds of multi-level aggregation commonly used in
 processing traces (see perf's documentation on the Python language
@@ -836,7 +835,7 @@
 
 Finally, at the end of the trace processing run, we want to print the
 result of all the per-event tallies. For that, we use the special
-'trace_end()' function:
+``trace_end()`` function:
 
 .. code-block:: python
 
@@ -865,7 +864,7 @@
    syscalls__sys_exit_write                       8990
 
 Note that this is
-pretty much exactly the same information we get from 'perf stat', which
+pretty much exactly the same information we get from ``perf stat``, which
 goes a little way to support the idea mentioned previously that given
 the right kind of trace data, higher-level profiling-type summaries can
 be derived from it.
@@ -877,44 +876,44 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The examples so far have focused on tracing a particular program or
-workload --- in other words, every profiling run has specified the program
-to profile in the command-line e.g. 'perf record wget ...'.
+workload --- that is, every profiling run has specified the program
+to profile in the command-line e.g. ``perf record wget ...``.
 
 It's also possible, and more interesting in many cases, to run a
 system-wide profile or trace while running the workload in a separate
 shell.
 
-To do system-wide profiling or tracing, you typically use the -a flag to
-'perf record'.
+To do system-wide profiling or tracing, you typically use the ``-a`` flag to
+``perf record``.
 
 To demonstrate this, open up one window and start the profile using the
--a flag (press Ctrl-C to stop tracing)::
+``-a`` flag (press ``Ctrl-C`` to stop tracing)::
 
    root@crownbay:~# perf record -g -a
    ^C[ perf record: Woken up 6 times to write data ]
    [ perf record: Captured and wrote 1.400 MB perf.data (~61172 samples) ]
 
-In another window, run the wget test::
+In another window, run the ``wget`` test::
 
    root@crownbay:~# wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2
    Connecting to downloads.yoctoproject.org (140.211.169.59:80)
    linux-2.6.19.2.tar.b 100% \|*******************************\| 41727k 0:00:00 ETA
 
-Here we see entries not only for our wget load, but for
+Here we see entries not only for our ``wget`` load, but for
 other processes running on the system as well:
 
 .. image:: figures/perf-systemwide.png
    :align: center
    :width: 70%
 
-In the snapshot above, we can see callchains that originate in libc, and
-a callchain from Xorg that demonstrates that we're using a proprietary X
-driver in userspace (notice the presence of 'PVR' and some other
-unresolvable symbols in the expanded Xorg callchain).
+In the snapshot above, we can see call chains that originate in ``libc``, and
+a call chain from ``Xorg`` that demonstrates that we're using a proprietary X
+driver in user space (notice the presence of ``PVR`` and some other
+unresolvable symbols in the expanded ``Xorg`` call chain).
 
-Note also that we have both kernel and userspace entries in the above
-snapshot. We can also tell perf to focus on userspace but providing a
-modifier, in this case 'u', to the 'cycles' hardware counter when we
+Note also that we have both kernel and user space entries in the above
+snapshot. We can also tell perf to focus on user space but providing a
+modifier, in this case ``u``, to the ``cycles`` hardware counter when we
 record a profile::
 
    root@crownbay:~# perf record -g -a -e cycles:u
@@ -925,25 +924,25 @@
    :align: center
    :width: 70%
 
-Notice in the screenshot above, we see only userspace entries ([.])
+Notice in the screenshot above, we see only user space entries (``[.]``)
 
-Finally, we can press 'enter' on a leaf node and select the 'Zoom into
-DSO' menu item to show only entries associated with a specific DSO. In
-the screenshot below, we've zoomed into the 'libc' DSO which shows all
-the entries associated with the libc-xxx.so DSO.
+Finally, we can press ``Enter`` on a leaf node and select the ``Zoom into
+DSO`` menu item to show only entries associated with a specific DSO. In
+the screenshot below, we've zoomed into the ``libc`` DSO which shows all
+the entries associated with the ``libc-xxx.so`` DSO.
 
 .. image:: figures/perf-systemwide-libc.png
    :align: center
    :width: 70%
 
-We can also use the system-wide -a switch to do system-wide tracing.
+We can also use the system-wide ``-a`` switch to do system-wide tracing.
 Here we'll trace a couple of scheduler events::
 
    root@crownbay:~# perf record -a -e sched:sched_switch -e sched:sched_wakeup
    ^C[ perf record: Woken up 38 times to write data ]
    [ perf record: Captured and wrote 9.780 MB perf.data (~427299 samples) ]
 
-We can look at the raw output using 'perf script' with no arguments::
+We can look at the raw output using ``perf script`` with no arguments::
 
    root@crownbay:~# perf script
 
@@ -961,11 +960,11 @@
 Filtering
 ^^^^^^^^^
 
-Notice that there are a lot of events that don't really have anything to
-do with what we're interested in, namely events that schedule 'perf'
+Notice that there are many events that don't really have anything to
+do with what we're interested in, namely events that schedule ``perf``
 itself in and out or that wake perf up. We can get rid of those by using
-the '--filter' option --- for each event we specify using -e, we can add a
---filter after that to filter out trace events that contain fields with
+the ``--filter`` option --- for each event we specify using ``-e``, we can add a
+``--filter`` after that to filter out trace events that contain fields with
 specific values::
 
    root@crownbay:~# perf record -a -e sched:sched_switch --filter 'next_comm != perf && prev_comm != perf' -e sched:sched_wakeup --filter 'comm != perf'
@@ -991,16 +990,16 @@
        kworker/0:3  1209 [000]  7932.326214: sched_switch: prev_comm=kworker/0:3 prev_pid=1209 prev_prio=120 prev_state=S ==> next_comm=swapper/0 next_pid=0 next_prio=120
 
 In this case, we've filtered out all events that have
-'perf' in their 'comm' or 'comm_prev' or 'comm_next' fields. Notice that
+``perf`` in their ``comm``, ``comm_prev`` or ``comm_next`` fields. Notice that
 there are still events recorded for perf, but notice that those events
-don't have values of 'perf' for the filtered fields. To completely
+don't have values of ``perf`` for the filtered fields. To completely
 filter out anything from perf will require a bit more work, but for the
 purpose of demonstrating how to use filters, it's close enough.
 
 .. admonition:: Tying it Together
 
    These are exactly the same set of event filters defined by the trace
-   event subsystem. See the ftrace/tracecmd/kernelshark section for more
+   event subsystem. See the ftrace / trace-cmd / KernelShark section for more
    discussion about these event filters.
 
 .. admonition:: Tying it Together
@@ -1010,14 +1009,14 @@
    indispensable part of the perf design as it relates to tracing.
    kernel-based event filters provide a mechanism to precisely throttle
    the event stream that appears in user space, where it makes sense to
-   provide bindings to real programming languages for postprocessing the
+   provide bindings to real programming languages for post-processing the
    event stream. This architecture allows for the intelligent and
    flexible partitioning of processing between the kernel and user
    space. Contrast this with other tools such as SystemTap, which does
    all of its processing in the kernel and as such requires a special
    project-defined language in order to accommodate that design, or
-   LTTng, where everything is sent to userspace and as such requires a
-   super-efficient kernel-to-userspace transport mechanism in order to
+   LTTng, where everything is sent to user space and as such requires a
+   super-efficient kernel-to-user space transport mechanism in order to
    function properly. While perf certainly can benefit from for instance
    advances in the design of the transport, it doesn't fundamentally
    depend on them. Basically, if you find that your perf tracing
@@ -1028,9 +1027,9 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~
 
 perf isn't restricted to the fixed set of static tracepoints listed by
-'perf list'. Users can also add their own 'dynamic' tracepoints anywhere
-in the kernel. For instance, suppose we want to define our own
-tracepoint on do_fork(). We can do that using the 'perf probe' perf
+``perf list``. Users can also add their own "dynamic" tracepoints anywhere
+in the kernel. For example, suppose we want to define our own
+tracepoint on ``do_fork()``. We can do that using the ``perf probe`` perf
 subcommand::
 
    root@crownbay:~# perf probe do_fork
@@ -1042,8 +1041,8 @@
      perf record -e probe:do_fork -aR sleep 1
 
 Adding a new tracepoint via
-'perf probe' results in an event with all the expected files and format
-in /sys/kernel/debug/tracing/events, just the same as for static
+``perf probe`` results in an event with all the expected files and format
+in ``/sys/kernel/debug/tracing/events``, just the same as for static
 tracepoints (as discussed in more detail in the trace events subsystem
 section::
 
@@ -1076,7 +1075,7 @@
     probe:do_fork (on do_fork)
     probe:schedule (on schedule)
 
-Let's record system-wide ('sleep 30' is a
+Let's record system-wide (``sleep 30`` is a
 trick for recording system-wide but basically do nothing and then wake
 up after 30 seconds)::
 
@@ -1084,7 +1083,7 @@
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.087 MB perf.data (~3812 samples) ]
 
-Using 'perf script' we can see each do_fork event that fired::
+Using ``perf script`` we can see each ``do_fork`` event that fired::
 
    root@crownbay:~# perf script
 
@@ -1125,8 +1124,8 @@
     matchbox-deskto  1311 [001] 34237.114106: do_fork: (c1028460)
                gaku  1312 [000] 34237.202388: do_fork: (c1028460)
 
-And using 'perf report' on the same file, we can see the
-callgraphs from starting a few programs during those 30 seconds:
+And using ``perf report`` on the same file, we can see the
+call graphs from starting a few programs during those 30 seconds:
 
 .. image:: figures/perf-probe-do_fork-profile.png
    :align: center
@@ -1141,57 +1140,57 @@
 
 .. admonition:: Tying it Together
 
-   Dynamic tracepoints are implemented under the covers by kprobes and
-   uprobes. kprobes and uprobes are also used by and in fact are the
+   Dynamic tracepoints are implemented under the covers by Kprobes and
+   Uprobes. Kprobes and Uprobes are also used by and in fact are the
    main focus of SystemTap.
 
-Perf Documentation
+perf Documentation
 ------------------
 
-Online versions of the man pages for the commands discussed in this
+Online versions of the manual pages for the commands discussed in this
 section can be found here:
 
--  The `'perf stat' manpage <https://linux.die.net/man/1/perf-stat>`__.
+-  The `'perf stat' manual page <https://linux.die.net/man/1/perf-stat>`__.
 
 -  The `'perf record'
-   manpage <https://linux.die.net/man/1/perf-record>`__.
+   manual page <https://linux.die.net/man/1/perf-record>`__.
 
 -  The `'perf report'
-   manpage <https://linux.die.net/man/1/perf-report>`__.
+   manual page <https://linux.die.net/man/1/perf-report>`__.
 
--  The `'perf probe' manpage <https://linux.die.net/man/1/perf-probe>`__.
+-  The `'perf probe' manual page <https://linux.die.net/man/1/perf-probe>`__.
 
 -  The `'perf script'
-   manpage <https://linux.die.net/man/1/perf-script>`__.
+   manual page <https://linux.die.net/man/1/perf-script>`__.
 
 -  Documentation on using the `'perf script' Python
    binding <https://linux.die.net/man/1/perf-script-python>`__.
 
--  The top-level `perf(1) manpage <https://linux.die.net/man/1/perf>`__.
+-  The top-level `perf(1) manual page <https://linux.die.net/man/1/perf>`__.
 
-Normally, you should be able to invoke the man pages via perf itself
-e.g. 'perf help' or 'perf help record'.
+Normally, you should be able to open the manual pages via perf itself
+e.g. ``perf help`` or ``perf help record``.
 
-To have the perf manpages installed on your target, modify your
+To have the perf manual pages installed on your target, modify your
 configuration as follows::
 
    IMAGE_INSTALL:append = " perf perf-doc"
    DISTRO_FEATURES:append = " api-documentation"
 
-The man pages in text form, along with some other files, such as a set
-of examples, can also be found in the 'perf' directory of the kernel tree::
+The manual pages in text form, along with some other files, such as a set
+of examples, can also be found in the ``perf`` directory of the kernel tree::
 
    tools/perf/Documentation
 
 There's also a nice perf tutorial on the perf
-wiki that goes into more detail than we do here in certain areas: `Perf
+wiki that goes into more detail than we do here in certain areas: `perf
 Tutorial <https://perf.wiki.kernel.org/index.php/Tutorial>`__
 
 ftrace
 ======
 
-'ftrace' literally refers to the 'ftrace function tracer' but in reality
-this encompasses a number of related tracers along with the
+"ftrace" literally refers to the "ftrace function tracer" but in reality
+this encompasses several related tracers along with the
 infrastructure that they all make use of.
 
 ftrace Setup
@@ -1200,20 +1199,20 @@
 For this section, we'll assume you've already performed the basic setup
 outlined in the ":ref:`profile-manual/intro:General Setup`" section.
 
-ftrace, trace-cmd, and kernelshark run on the target system, and are
+ftrace, trace-cmd, and KernelShark run on the target system, and are
 ready to go out-of-the-box --- no additional setup is necessary. For the
-rest of this section we assume you've ssh'ed to the host and will be
-running ftrace on the target. kernelshark is a GUI application and if
-you use the '-X' option to ssh you can have the kernelshark GUI run on
+rest of this section we assume you're connected to the host through SSH and
+will be running ftrace on the target. KernelShark is a GUI application and if
+you use the ``-X`` option to ``ssh`` you can have the KernelShark GUI run on
 the target but display remotely on the host if you want.
 
 Basic ftrace usage
 ------------------
 
-'ftrace' essentially refers to everything included in the /tracing
+"ftrace" essentially refers to everything included in the ``/tracing``
 directory of the mounted debugfs filesystem (Yocto follows the standard
-convention and mounts it at /sys/kernel/debug). Here's a listing of all
-the files found in /sys/kernel/debug/tracing on a Yocto system::
+convention and mounts it at ``/sys/kernel/debug``). All the files found in
+``/sys/kernel/debug/tracing`` on a Yocto system are::
 
    root@sugarbay:/sys/kernel/debug/tracing# ls
    README                      kprobe_events               trace
@@ -1229,7 +1228,7 @@
    free_buffer                 set_graph_function
 
 The files listed above are used for various purposes
-- some relate directly to the tracers themselves, others are used to set
+--- some relate directly to the tracers themselves, others are used to set
 tracing options, and yet others actually contain the tracing output when
 a tracer is in effect. Some of the functions can be guessed from their
 names, others need explanation; in any case, we'll cover some of the
@@ -1238,30 +1237,30 @@
 
 We'll start by looking at some of the available built-in tracers.
 
-cat'ing the 'available_tracers' file lists the set of available tracers::
+The ``available_tracers`` file lists the set of available tracers::
 
    root@sugarbay:/sys/kernel/debug/tracing# cat available_tracers
    blk function_graph function nop
 
-The 'current_tracer' file contains the tracer currently in effect::
+The ``current_tracer`` file contains the tracer currently in effect::
 
    root@sugarbay:/sys/kernel/debug/tracing# cat current_tracer
    nop
 
-The above listing of current_tracer shows that the
-'nop' tracer is in effect, which is just another way of saying that
+The above listing of ``current_tracer`` shows that the
+``nop`` tracer is in effect, which is just another way of saying that
 there's actually no tracer currently in effect.
 
-echo'ing one of the available_tracers into current_tracer makes the
+Writing one of the available tracers into ``current_tracer`` makes the
 specified tracer the current tracer::
 
    root@sugarbay:/sys/kernel/debug/tracing# echo function > current_tracer
    root@sugarbay:/sys/kernel/debug/tracing# cat current_tracer
    function
 
-The above sets the current tracer to be the 'function tracer'. This tracer
+The above sets the current tracer to be the ``function`` tracer. This tracer
 traces every function call in the kernel and makes it available as the
-contents of the 'trace' file. Reading the 'trace' file lists the
+contents of the ``trace`` file. Reading the ``trace`` file lists the
 currently buffered function calls that have been traced by the function
 tracer::
 
@@ -1308,7 +1307,7 @@
             .
 
 Each line in the trace above shows what was happening in the kernel on a given
-cpu, to the level of detail of function calls. Each entry shows the function
+CPU, to the level of detail of function calls. Each entry shows the function
 called, followed by its caller (after the arrow).
 
 The function tracer gives you an extremely detailed idea of what the
@@ -1318,11 +1317,11 @@
 .. admonition:: Tying it Together
 
    The ftrace function tracer is also available from within perf, as the
-   ftrace:function tracepoint.
+   ``ftrace:function`` tracepoint.
 
 It is a little more difficult to follow the call chains than it needs to
 be --- luckily there's a variant of the function tracer that displays the
-callchains explicitly, called the 'function_graph' tracer::
+call chains explicitly, called the ``function_graph`` tracer::
 
    root@sugarbay:/sys/kernel/debug/tracing# echo function_graph > current_tracer
    root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
@@ -1437,11 +1436,11 @@
    3) + 13.784 us   |  }
    3)               |  sys_ioctl() {
 
-As you can see, the function_graph display is much easier
+As you can see, the ``function_graph`` display is much easier
 to follow. Also note that in addition to the function calls and
 associated braces, other events such as scheduler events are displayed
 in context. In fact, you can freely include any tracepoint available in
-the trace events subsystem described in the next section by simply
+the trace events subsystem described in the next section by just
 enabling those events, and they'll appear in context in the function
 graph display. Quite a powerful tool for understanding kernel dynamics.
 
@@ -1455,9 +1454,9 @@
 ----------------------------
 
 One especially important directory contained within the
-/sys/kernel/debug/tracing directory is the 'events' subdirectory, which
+``/sys/kernel/debug/tracing`` directory is the ``events`` subdirectory, which
 contains representations of every tracepoint in the system. Listing out
-the contents of the 'events' subdirectory, we see mainly another set of
+the contents of the ``events`` subdirectory, we see mainly another set of
 subdirectories::
 
    root@sugarbay:/sys/kernel/debug/tracing# cd events
@@ -1505,9 +1504,9 @@
    drwxr-xr-x   26 root     root             0 Nov 14 23:19 writeback
 
 Each one of these subdirectories
-corresponds to a 'subsystem' and contains yet again more subdirectories,
+corresponds to a "subsystem" and contains yet again more subdirectories,
 each one of those finally corresponding to a tracepoint. For example,
-here are the contents of the 'kmem' subsystem::
+here are the contents of the ``kmem`` subsystem::
 
    root@sugarbay:/sys/kernel/debug/tracing/events# cd kmem
    root@sugarbay:/sys/kernel/debug/tracing/events/kmem# ls -al
@@ -1529,7 +1528,7 @@
    drwxr-xr-x    2 root     root             0 Nov 14 23:19 mm_page_pcpu_drain
 
 Let's see what's inside the subdirectory for a
-specific tracepoint, in this case the one for kmalloc::
+specific tracepoint, in this case the one for ``kmalloc``::
 
    root@sugarbay:/sys/kernel/debug/tracing/events/kmem# cd kmalloc
    root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# ls -al
@@ -1540,12 +1539,12 @@
    -r--r--r--    1 root     root             0 Nov 14 23:19 format
    -r--r--r--    1 root     root             0 Nov 14 23:19 id
 
-The 'format' file for the
+The ``format`` file for the
 tracepoint describes the event in memory, which is used by the various
 tracing tools that now make use of these tracepoint to parse the event
-and make sense of it, along with a 'print fmt' field that allows tools
-like ftrace to display the event as text. Here's what the format of the
-kmalloc event looks like::
+and make sense of it, along with a ``print fmt`` field that allows tools
+like ftrace to display the event as text. The format of the
+``kmalloc`` event looks like::
 
    root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# cat format
    name: kmalloc
@@ -1580,11 +1579,11 @@
    long)(( gfp_t)0x08u), "GFP_MOVABLE"}, {(unsigned long)(( gfp_t)0), "GFP_NOTRACK"}, {(unsigned long)(( gfp_t)0x400000u), "GFP_NO_KSWAPD"},
    {(unsigned long)(( gfp_t)0x800000u), "GFP_OTHER_NODE"} ) : "GFP_NOWAIT"
 
-The 'enable' file
+The ``enable`` file
 in the tracepoint directory is what allows the user (or tools such as
-trace-cmd) to actually turn the tracepoint on and off. When enabled, the
-corresponding tracepoint will start appearing in the ftrace 'trace' file
-described previously. For example, this turns on the kmalloc tracepoint::
+``trace-cmd``) to actually turn the tracepoint on and off. When enabled, the
+corresponding tracepoint will start appearing in the ftrace ``trace`` file
+described previously. For example, this turns on the ``kmalloc`` tracepoint::
 
    root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# echo 1 > enable
 
@@ -1596,8 +1595,8 @@
    root@sugarbay:/sys/kernel/debug/tracing# echo nop > current_tracer
    root@sugarbay:/sys/kernel/debug/tracing# echo 1 > tracing_on
 
-Now, if we look at the 'trace' file, we see nothing
-but the kmalloc events we just turned on::
+Now, if we look at the ``trace`` file, we see nothing
+but the ``kmalloc`` events we just turned on::
 
    root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
    # tracer: nop
@@ -1643,17 +1642,17 @@
             <idle>-0     [000] ..s3 18156.400660: kmalloc: call_site=ffffffff81619b36 ptr=ffff88006d554800 bytes_req=512 bytes_alloc=512 gfp_flags=GFP_ATOMIC
    matchbox-termin-1361  [001] ...1 18156.552800: kmalloc: call_site=ffffffff81614050 ptr=ffff88006db34800 bytes_req=576 bytes_alloc=1024 gfp_flags=GFP_KERNEL|GFP_REPEAT
 
-To again disable the kmalloc event, we need to send 0 to the enable file::
+To again disable the ``kmalloc`` event, we need to send ``0`` to the ``enable`` file::
 
    root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# echo 0 > enable
 
 You can enable any number of events or complete subsystems (by
-using the 'enable' file in the subsystem directory) and get an
+using the ``enable`` file in the subsystem directory) and get an
 arbitrarily fine-grained idea of what's going on in the system by
 enabling as many of the appropriate tracepoints as applicable.
 
-A number of the tools described in this HOWTO do just that, including
-trace-cmd and kernelshark in the next section.
+Several tools described in this How-to do just that, including
+``trace-cmd`` and KernelShark in the next section.
 
 .. admonition:: Tying it Together
 
@@ -1661,41 +1660,40 @@
    ftrace, but by many of the other tools covered in this document and
    they form a central point of integration for the various tracers
    available in Linux. They form a central part of the instrumentation
-   for the following tools: perf, lttng, ftrace, blktrace and SystemTap
+   for the following tools: perf, LTTng, ftrace, blktrace and SystemTap
 
 .. admonition:: Tying it Together
 
    Eventually all the special-purpose tracers currently available in
-   /sys/kernel/debug/tracing will be removed and replaced with
-   equivalent tracers based on the 'trace events' subsystem.
+   ``/sys/kernel/debug/tracing`` will be removed and replaced with
+   equivalent tracers based on the "trace events" subsystem.
 
-trace-cmd/kernelshark
----------------------
+trace-cmd / KernelShark
+-----------------------
 
-trace-cmd is essentially an extensive command-line 'wrapper' interface
+trace-cmd is essentially an extensive command-line "wrapper" interface
 that hides the details of all the individual files in
-/sys/kernel/debug/tracing, allowing users to specify specific particular
-events within the /sys/kernel/debug/tracing/events/ subdirectory and to
+``/sys/kernel/debug/tracing``, allowing users to specify specific particular
+events within the ``/sys/kernel/debug/tracing/events/`` subdirectory and to
 collect traces and avoid having to deal with those details directly.
 
-As yet another layer on top of that, kernelshark provides a GUI that
+As yet another layer on top of that, KernelShark provides a GUI that
 allows users to start and stop traces and specify sets of events using
 an intuitive interface, and view the output as both trace events and as
-a per-CPU graphical display. It directly uses 'trace-cmd' as the
+a per-CPU graphical display. It directly uses trace-cmd as the
 plumbing that accomplishes all that underneath the covers (and actually
 displays the trace-cmd command it uses, as we'll see).
 
-To start a trace using kernelshark, first start kernelshark::
+To start a trace using KernelShark, first start this tool::
 
    root@sugarbay:~# kernelshark
 
-Then bring up the 'Capture' dialog by
-choosing from the kernelshark menu::
+Then open up the ``Capture`` dialog by choosing from the KernelShark menu::
 
    Capture | Record
 
 That will display the following dialog, which allows you to choose one or more
-events (or even one or more complete subsystems) to trace:
+events (or even entire subsystems) to trace:
 
 .. image:: figures/kernelshark-choose-events.png
    :align: center
@@ -1703,41 +1701,41 @@
 
 Note that these are exactly the same sets of events described in the
 previous trace events subsystem section, and in fact is where trace-cmd
-gets them for kernelshark.
+gets them for KernelShark.
 
 In the above screenshot, we've decided to explore the graphics subsystem
 a bit and so have chosen to trace all the tracepoints contained within
-the 'i915' and 'drm' subsystems.
+the ``i915`` and ``drm`` subsystems.
 
-After doing that, we can start and stop the trace using the 'Run' and
-'Stop' button on the lower right corner of the dialog (the same button
+After doing that, we can start and stop the trace using the ``Run`` and
+``Stop`` button on the lower right corner of the dialog (the same button
 will turn into the 'Stop' button after the trace has started):
 
 .. image:: figures/kernelshark-output-display.png
    :align: center
    :width: 70%
 
-Notice that the right-hand pane shows the exact trace-cmd command-line
+Notice that the right pane shows the exact trace-cmd command-line
 that's used to run the trace, along with the results of the trace-cmd
 run.
 
-Once the 'Stop' button is pressed, the graphical view magically fills up
-with a colorful per-cpu display of the trace data, along with the
+Once the ``Stop`` button is pressed, the graphical view magically fills up
+with a colorful per-CPU display of the trace data, along with the
 detailed event listing below that:
 
 .. image:: figures/kernelshark-i915-display.png
    :align: center
    :width: 70%
 
-Here's another example, this time a display resulting from tracing 'all
-events':
+Here's another example, this time a display resulting from tracing ``all
+events``:
 
 .. image:: figures/kernelshark-all.png
    :align: center
    :width: 70%
 
 The tool is pretty self-explanatory, but for more detailed information
-on navigating through the data, see the `kernelshark
+on navigating through the data, see the `KernelShark
 website <https://kernelshark.org/Documentation.html>`__.
 
 ftrace Documentation
@@ -1753,41 +1751,41 @@
 
    Documentation/trace/events.txt
 
-There is a nice series of articles on using ftrace and trace-cmd at LWN:
+A nice series of articles on using ftrace and trace-cmd are available at LWN:
 
--  `Debugging the kernel using Ftrace - part
+-  `Debugging the kernel using ftrace - part
    1 <https://lwn.net/Articles/365835/>`__
 
--  `Debugging the kernel using Ftrace - part
+-  `Debugging the kernel using ftrace - part
    2 <https://lwn.net/Articles/366796/>`__
 
--  `Secrets of the Ftrace function
+-  `Secrets of the ftrace function
    tracer <https://lwn.net/Articles/370423/>`__
 
 -  `trace-cmd: A front-end for
-   Ftrace <https://lwn.net/Articles/410200/>`__
+   ftrace <https://lwn.net/Articles/410200/>`__
 
 See also `KernelShark's documentation <https://kernelshark.org/Documentation.html>`__
 for further usage details.
 
-An amusing yet useful README (a tracing mini-HOWTO) can be found in
+An amusing yet useful README (a tracing mini-How-to) can be found in
 ``/sys/kernel/debug/tracing/README``.
 
-systemtap
+SystemTap
 =========
 
 SystemTap is a system-wide script-based tracing and profiling tool.
 
 SystemTap scripts are C-like programs that are executed in the kernel to
-gather/print/aggregate data extracted from the context they end up being
-invoked under.
+gather / print / aggregate data extracted from the context they end up being
+called under.
 
 For example, this probe from the `SystemTap
-tutorial <https://sourceware.org/systemtap/tutorial/>`__ simply prints a
-line every time any process on the system open()s a file. For each line,
+tutorial <https://sourceware.org/systemtap/tutorial/>`__ just prints a
+line every time any process on the system runs ``open()`` on a file. For each line,
 it prints the executable name of the program that opened the file, along
-with its PID, and the name of the file it opened (or tried to open),
-which it extracts from the open syscall's argstr.
+with its PID, and the name of the file it opened (or tried to open), which it
+extracts from the argument string (``argstr``) of the ``open`` system call.
 
 .. code-block:: none
 
@@ -1802,48 +1800,48 @@
    }
 
 Normally, to execute this
-probe, you'd simply install systemtap on the system you want to probe,
+probe, you'd just install SystemTap on the system you want to probe,
 and directly run the probe on that system e.g. assuming the name of the
-file containing the above text is trace_open.stp::
+file containing the above text is ``trace_open.stp``::
 
    # stap trace_open.stp
 
-What systemtap does under the covers to run this probe is 1) parse and
-convert the probe to an equivalent 'C' form, 2) compile the 'C' form
+What SystemTap does under the covers to run this probe is 1) parse and
+convert the probe to an equivalent "C" form, 2) compile the "C" form
 into a kernel module, 3) insert the module into the kernel, which arms
 it, and 4) collect the data generated by the probe and display it to the
 user.
 
-In order to accomplish steps 1 and 2, the 'stap' program needs access to
+In order to accomplish steps 1 and 2, the ``stap`` program needs access to
 the kernel build system that produced the kernel that the probed system
-is running. In the case of a typical embedded system (the 'target'), the
+is running. In the case of a typical embedded system (the "target"), the
 kernel build system unfortunately isn't typically part of the image
-running on the target. It is normally available on the 'host' system
+running on the target. It is normally available on the "host" system
 that produced the target image however; in such cases, steps 1 and 2 are
 executed on the host system, and steps 3 and 4 are executed on the
-target system, using only the systemtap 'runtime'.
+target system, using only the SystemTap "runtime".
 
-The systemtap support in Yocto assumes that only steps 3 and 4 are run
+The SystemTap support in Yocto assumes that only steps 3 and 4 are run
 on the target; it is possible to do everything on the target, but this
 section assumes only the typical embedded use-case.
 
-So basically what you need to do in order to run a systemtap script on
+Therefore, what you need to do in order to run a SystemTap script on
 the target is to 1) on the host system, compile the probe into a kernel
 module that makes sense to the target, 2) copy the module onto the
 target system and 3) insert the module into the target kernel, which
 arms it, and 4) collect the data generated by the probe and display it
 to the user.
 
-systemtap Setup
+SystemTap Setup
 ---------------
 
-Those are a lot of steps and a lot of details, but fortunately Yocto
-includes a script called 'crosstap' that will take care of those
-details, allowing you to simply execute a systemtap script on the remote
+Those are many steps and details, but fortunately Yocto
+includes a script called ``crosstap`` that will take care of those
+details, allowing you to just execute a SystemTap script on the remote
 target, with arguments if necessary.
 
 In order to do this from a remote host, however, you need to have access
-to the build for the image you booted. The 'crosstap' script provides
+to the build for the image you booted. The ``crosstap`` script provides
 details on how to do this if you run the script on the host without
 having done a build::
 
@@ -1852,29 +1850,35 @@
    Error: No target kernel build found.
    Did you forget to create a local build of your image?
 
-   'crosstap' requires a local sdk build of the target system
-   (or a build that includes 'tools-profile') in order to build
-   kernel modules that can probe the target system.
+'crosstap' requires a local SDK build of the target system
+(or a build that includes 'tools-profile') in order to build
+kernel modules that can probe the target system.
 
-   Practically speaking, that means you need to do the following:
-    - If you're running a pre-built image, download the release
-      and/or BSP tarballs used to build the image.
-    - If you're working from git sources, just clone the metadata
-      and BSP layers needed to build the image you'll be booting.
-    - Make sure you're properly set up to build a new image (see
-      the BSP README and/or the widely available basic documentation
-      that discusses how to build images).
-    - Build an -sdk version of the image e.g.:
-        $ bitbake core-image-sato-sdk
-    OR
-    - Build a non-sdk image but include the profiling tools:
-        [ edit local.conf and add 'tools-profile' to the end of
-          the EXTRA_IMAGE_FEATURES variable ]
-        $ bitbake core-image-sato
+Practically speaking, that means you need to do the following:
+
+-  If you're running a pre-built image, download the release
+   and/or BSP tarballs used to build the image.
+
+-  If you're working from git sources, just clone the metadata
+   and BSP layers needed to build the image you'll be booting.
+
+-  Make sure you're properly set up to build a new image (see
+   the BSP README and/or the widely available basic documentation
+   that discusses how to build images).
+
+-  Build an ``-sdk`` version of the image e.g.::
+
+      $ bitbake core-image-sato-sdk
+
+-  Or build a non-SDK image but include the profiling tools
+   (edit ``local.conf`` and add ``tools-profile`` to the end of
+   :term:``EXTRA_IMAGE_FEATURES`` variable)::
+
+      $ bitbake core-image-sato
 
    Once you've build the image on the host system, you're ready to
-   boot it (or the equivalent pre-built image) and use 'crosstap'
-   to probe it (you need to source the environment as usual first):
+   boot it (or the equivalent pre-built image) and use ``crosstap``
+   to probe it (you need to source the environment as usual first)::
 
       $ source oe-init-build-env
       $ cd ~/my/systemtap/scripts
@@ -1882,29 +1886,27 @@
 
 .. note::
 
-   SystemTap, which uses 'crosstap', assumes you can establish an ssh
+   SystemTap, which uses ``crosstap``, assumes you can establish an SSH
    connection to the remote target. Please refer to the crosstap wiki
-   page for details on verifying ssh connections at
-   . Also, the ability to ssh into the target system is not enabled by
-   default in \*-minimal images.
+   page for details on verifying SSH connections. Also, the ability to SSH
+   into the target system is not enabled by default in ``*-minimal`` images.
 
-So essentially what you need to
-do is build an SDK image or image with 'tools-profile' as detailed in
-the ":ref:`profile-manual/intro:General Setup`" section of this
-manual, and boot the resulting target image.
+Therefore, what you need to do is build an SDK image or image with
+``tools-profile`` as detailed in the ":ref:`profile-manual/intro:General Setup`"
+section of this manual, and boot the resulting target image.
 
 .. note::
 
    If you have a :term:`Build Directory` containing multiple machines, you need
-   to have the :term:`MACHINE` you're connecting to selected in local.conf, and
+   to have the :term:`MACHINE` you're connecting to selected in ``local.conf``, and
    the kernel in that machine's :term:`Build Directory` must match the kernel on
-   the booted system exactly, or you'll get the above 'crosstap' message
-   when you try to invoke a script.
+   the booted system exactly, or you'll get the above ``crosstap`` message
+   when you try to call a script.
 
 Running a Script on a Target
 ----------------------------
 
-Once you've done that, you should be able to run a systemtap script on
+Once you've done that, you should be able to run a SystemTap script on
 the target::
 
    $ cd /path/to/yocto
@@ -1922,8 +1924,8 @@
 
    You can also run generated QEMU images with a command like 'runqemu qemux86-64'
 
-Once you've done that, you can cd to whatever
-directory contains your scripts and use 'crosstap' to run the script::
+Once you've done that, you can ``cd`` to whatever
+directory contains your scripts and use ``crosstap`` to run the script::
 
    $ cd /path/to/my/systemap/script
    $ crosstap root@192.168.7.2 trace_open.stp
@@ -1933,13 +1935,12 @@
    $ crosstap root@192.168.7.2 trace_open.stp
    error establishing ssh connection on remote 'root@192.168.7.2'
 
-Try ssh'ing to the target and see what happens::
+Try connecting to the target through SSH and see what happens::
 
    $ ssh root@192.168.7.2
 
-A lot of the time, connection
-problems are due specifying a wrong IP address or having a 'host key
-verification error'.
+Connection problems are often due specifying a wrong IP address or having a ``host key
+verification error``.
 
 If everything worked as planned, you should see something like this
 (enter the password when prompted, or press enter if it's set up to use
@@ -1952,7 +1953,7 @@
    matchbox-termin(1036) open ("/tmp/vte3FS2LW", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600)
    matchbox-termin(1036) open ("/tmp/vteJMC7LW", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600)
 
-systemtap Documentation
+SystemTap Documentation
 -----------------------
 
 The SystemTap language reference can be found here: `SystemTap Language
@@ -1965,7 +1966,7 @@
 Sysprof
 =======
 
-Sysprof is a very easy to use system-wide profiler that consists of a
+Sysprof is an easy to use system-wide profiler that consists of a
 single window with three panes and a few buttons which allow you to
 start, stop, and view the profile from one place.
 
@@ -1975,18 +1976,18 @@
 For this section, we'll assume you've already performed the basic setup
 outlined in the ":ref:`profile-manual/intro:General Setup`" section.
 
-Sysprof is a GUI-based application that runs on the target system. For
-the rest of this document we assume you've ssh'ed to the host and will
-be running Sysprof on the target (you can use the '-X' option to ssh and
+Sysprof is a GUI-based application that runs on the target system. For the rest
+of this document we assume you're connected to the host through SSH and will be
+running Sysprof on the target (you can use the ``-X`` option to ``ssh`` and
 have the Sysprof GUI run on the target but display remotely on the host
 if you want).
 
 Basic Sysprof Usage
 -------------------
 
-To start profiling the system, you simply press the 'Start' button. To
+To start profiling the system, you just press the ``Start`` button. To
 stop profiling and to start viewing the profile data in one easy step,
-press the 'Profile' button.
+press the ``Profile`` button.
 
 Once you've pressed the profile button, the three panes will fill up
 with profiling data:
@@ -1998,11 +1999,11 @@
 The left pane shows a list of functions and processes. Selecting one of
 those expands that function in the right pane, showing all its callees.
 Note that this caller-oriented display is essentially the inverse of
-perf's default callee-oriented callchain display.
+perf's default callee-oriented call chain display.
 
 In the screenshot above, we're focusing on ``__copy_to_user_ll()`` and
-looking up the callchain we can see that one of the callers of
-``__copy_to_user_ll`` is sys_read() and the complete callpath between them.
+looking up the call chain we can see that one of the callers of
+``__copy_to_user_ll`` is ``sys_read()`` and the complete call path between them.
 Notice that this is essentially a portion of the same information we saw
 in the perf display shown in the perf section of this page.
 
@@ -2011,7 +2012,7 @@
    :width: 70%
 
 Similarly, the above is a snapshot of the Sysprof display of a
-copy-from-user callchain.
+``copy-from-user`` call chain.
 
 Finally, looking at the third Sysprof pane in the lower left, we can see
 a list of all the callers of a particular function selected in the top
@@ -2027,18 +2028,17 @@
 
 .. admonition:: Tying it Together
 
-   If you like sysprof's 'caller-oriented' display, you may be able to
-   approximate it in other tools as well. For example, 'perf report' has
-   the -g (--call-graph) option that you can experiment with; one of the
-   options is 'caller' for an inverted caller-based callgraph display.
+   If you like Sysprof's ``caller-oriented`` display, you may be able to
+   approximate it in other tools as well. For example, ``perf report`` has
+   the ``-g`` (``--call-graph``) option that you can experiment with; one of the
+   options is ``caller`` for an inverted caller-based call graph display.
 
 Sysprof Documentation
 ---------------------
 
 There doesn't seem to be any documentation for Sysprof, but maybe that's
-because it's pretty self-explanatory. The Sysprof website, however, is
-here: `Sysprof, System-wide Performance Profiler for
-Linux <http://sysprof.com/>`__
+because it's pretty self-explanatory. The Sysprof website, however, is here:
+`Sysprof, System-wide Performance Profiler for Linux <http://sysprof.com/>`__
 
 LTTng (Linux Trace Toolkit, next generation)
 ============================================
@@ -2048,20 +2048,20 @@
 
 For this section, we'll assume you've already performed the basic setup
 outlined in the ":ref:`profile-manual/intro:General Setup`" section.
-LTTng is run on the target system by ssh'ing to it.
+LTTng is run on the target system by connecting to it through SSH.
 
 Collecting and Viewing Traces
 -----------------------------
 
 Once you've applied the above commits and built and booted your image
-(you need to build the core-image-sato-sdk image or use one of the other
+(you need to build the ``core-image-sato-sdk`` image or use one of the other
 methods described in the ":ref:`profile-manual/intro:General Setup`" section), you're ready to start
 tracing.
 
 Collecting and viewing a trace on the target (inside a shell)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-First, from the host, ssh to the target::
+First, from the host, connect to the target through SSH::
 
    $ ssh -l root 192.168.1.47
    The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established.
@@ -2139,30 +2139,30 @@
 
 You can now safely destroy the trace
 session (note that this doesn't delete the trace --- it's still there in
-~/lttng-traces)::
+``~/lttng-traces``)::
 
    root@crownbay:~# lttng destroy
    Session auto-20121015-232120 destroyed at /home/root
 
 Note that the trace is saved in a directory of the same name as returned by
-'lttng create', under the ~/lttng-traces directory (note that you can change this by
-supplying your own name to 'lttng create')::
+``lttng create``, under the ``~/lttng-traces`` directory (note that you can change this by
+supplying your own name to ``lttng create``)::
 
    root@crownbay:~# ls -al ~/lttng-traces
    drwxrwx---    3 root     root          1024 Oct 15 23:21 .
    drwxr-xr-x    5 root     root          1024 Oct 15 23:57 ..
    drwxrwx---    3 root     root          1024 Oct 15 23:21 auto-20121015-232120
 
-Collecting and viewing a userspace trace on the target (inside a shell)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Collecting and viewing a user space trace on the target (inside a shell)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-For LTTng userspace tracing, you need to have a properly instrumented
-userspace program. For this example, we'll use the 'hello' test program
-generated by the lttng-ust build.
+For LTTng user space tracing, you need to have a properly instrumented
+user space program. For this example, we'll use the ``hello`` test program
+generated by the ``lttng-ust`` build.
 
-The 'hello' test program isn't installed on the root filesystem by the lttng-ust
-build, so we need to copy it over manually. First cd into the build
-directory that contains the hello executable::
+The ``hello`` test program isn't installed on the root filesystem by the ``lttng-ust``
+build, so we need to copy it over manually. First ``cd`` into the build
+directory that contains the ``hello`` executable::
 
    $ cd build/tmp/work/core2_32-poky-linux/lttng-ust/2.0.5-r0/git/tests/hello/.libs
 
@@ -2170,10 +2170,10 @@
 
    $ scp hello root@192.168.1.20:
 
-You now have the instrumented lttng 'hello world' test program on the
+You now have the instrumented LTTng "hello world" test program on the
 target, ready to test.
 
-First, from the host, ssh to the target::
+First, from the host, connect to the target through SSH::
 
    $ ssh -l root 192.168.1.47
    The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established.
@@ -2188,7 +2188,7 @@
    Session auto-20190303-021943 created.
    Traces will be written in /home/root/lttng-traces/auto-20190303-021943
 
-Enable the events you want to trace (in this case all userspace events)::
+Enable the events you want to trace (in this case all user space events)::
 
    root@crownbay:~# lttng enable-event --userspace --all
    All UST events are enabled in channel channel0
@@ -2198,7 +2198,7 @@
    root@crownbay:~# lttng start
    Tracing started for session auto-20190303-021943
 
-Run the instrumented hello world program::
+Run the instrumented "hello world" program::
 
    root@crownbay:~# ./hello
    Hello, World!
@@ -2222,7 +2222,7 @@
    .
 
 You can now safely destroy the trace session (note that this doesn't delete the
-trace --- it's still there in ~/lttng-traces)::
+trace --- it's still there in ``~/lttng-traces``)::
 
    root@crownbay:~# lttng destroy
    Session auto-20190303-021943 destroyed at /home/root
@@ -2260,27 +2260,27 @@
 blktrace in 'listen' mode on the target and have blktrace and blkparse
 collect and analyze the data on the host (see the
 ":ref:`profile-manual/usage:Using blktrace Remotely`" section
-below). For the rest of this section we assume you've ssh'ed to the host and
-will be running blkrace on the target.
+below). For the rest of this section we assume you've to the host through SSH
+and will be running blktrace on the target.
 
 Basic blktrace Usage
 --------------------
 
-To record a trace, simply run the 'blktrace' command, giving it the name
+To record a trace, just run the ``blktrace`` command, giving it the name
 of the block device you want to trace activity on::
 
    root@crownbay:~# blktrace /dev/sdc
 
-In another shell, execute a workload you want to trace. ::
+In another shell, execute a workload you want to trace::
 
    root@crownbay:/media/sdc# rm linux-2.6.19.2.tar.bz2; wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2; sync
    Connecting to downloads.yoctoproject.org (140.211.169.59:80)
    linux-2.6.19.2.tar.b 100% \|*******************************\| 41727k 0:00:00 ETA
 
-Press Ctrl-C in the blktrace shell to stop the trace. It
+Press ``Ctrl-C`` in the blktrace shell to stop the trace. It
 will display how many events were logged, along with the per-cpu file
-sizes (blktrace records traces in per-cpu kernel buffers and simply
-dumps them to userspace for blkparse to merge and sort later). ::
+sizes (blktrace records traces in per-cpu kernel buffers and just
+dumps them to user space for blkparse to merge and sort later)::
 
    ^C=== sdc ===
     CPU  0:                 7082 events,      332 KiB data
@@ -2296,7 +2296,7 @@
    -rw-r--r--    1 root     root        339938 Oct 27 22:40 sdc.blktrace.0
    -rw-r--r--    1 root     root         75753 Oct 27 22:40 sdc.blktrace.1
 
-To view the trace events, simply invoke 'blkparse' in the directory
+To view the trace events, just call ``blkparse`` in the directory
 containing the trace files, giving it the device name that forms the
 first part of the filenames::
 
@@ -2388,15 +2388,15 @@
 The report shows each event that was
 found in the blktrace data, along with a summary of the overall block
 I/O traffic during the run. You can look at the
-`blkparse <https://linux.die.net/man/1/blkparse>`__ manpage to learn the
+`blkparse <https://linux.die.net/man/1/blkparse>`__ manual page to learn the
 meaning of each field displayed in the trace listing.
 
 Live Mode
 ~~~~~~~~~
 
 blktrace and blkparse are designed from the ground up to be able to
-operate together in a 'pipe mode' where the stdout of blktrace can be
-fed directly into the stdin of blkparse::
+operate together in a "pipe mode" where the standard output of blktrace can be
+fed directly into the standard input of blkparse::
 
    root@crownbay:~# blktrace /dev/sdc -o - | blkparse -i -
 
@@ -2441,13 +2441,13 @@
 
    server: connection from 192.168.1.43
 
-In another shell, execute a workload you want to trace. ::
+In another shell, execute a workload you want to trace::
 
    root@crownbay:/media/sdc# rm linux-2.6.19.2.tar.bz2; wget &YOCTO_DL_URL;/mirror/sources/linux-2.6.19.2.tar.bz2; sync
    Connecting to downloads.yoctoproject.org (140.211.169.59:80)
    linux-2.6.19.2.tar.b 100% \|*******************************\| 41727k 0:00:00 ETA
 
-When it's done, do a Ctrl-C on the target system to stop the
+When it's done, do a ``Ctrl-C`` on the target system to stop the
 trace::
 
    ^C=== sdc ===
@@ -2465,14 +2465,14 @@
     Total:                 11800 events (dropped 0),      554 KiB data
 
 The blktrace instance on the host will
-save the target output inside a hostname-timestamp directory::
+save the target output inside a ``<hostname>-<timestamp>`` directory::
 
    $ ls -al
    drwxr-xr-x   10 root     root          1024 Oct 28 02:40 .
    drwxr-sr-x    4 root     root          1024 Oct 26 18:24 ..
    drwxr-xr-x    2 root     root          1024 Oct 28 02:40 192.168.1.43-2012-10-28-02:40:56
 
-cd into that directory to see the output files::
+``cd`` into that directory to see the output files::
 
    $ ls -l
    -rw-r--r--    1 root     root        369193 Oct 28 02:44 sdc.blktrace.0
@@ -2537,16 +2537,16 @@
 It's also possible to trace block I/O using only
 :ref:`profile-manual/usage:The 'trace events' Subsystem`, which
 can be useful for casual tracing if you don't want to bother dealing with the
-userspace tools.
+user space tools.
 
-To enable tracing for a given device, use /sys/block/xxx/trace/enable,
-where xxx is the device name. This for example enables tracing for
-/dev/sdc::
+To enable tracing for a given device, use ``/sys/block/xxx/trace/enable``,
+where ``xxx`` is the device name. This for example enables tracing for
+``/dev/sdc``::
 
    root@crownbay:/sys/kernel/debug/tracing# echo 1 > /sys/block/sdc/trace/enable
 
 Once you've selected the device(s) you want
-to trace, selecting the 'blk' tracer will turn the blk tracer on::
+to trace, selecting the ``blk`` tracer will turn the blk tracer on::
 
    root@crownbay:/sys/kernel/debug/tracing# cat available_tracers
    blk function_graph function nop
@@ -2557,7 +2557,7 @@
 
    root@crownbay:/sys/kernel/debug/tracing# cat /media/sdc/testfile.txt
 
-And look at the output (note here that we're using 'trace_pipe' instead of
+And look at the output (note here that we're using ``trace_pipe`` instead of
 trace to capture this trace --- this allows us to wait around on the pipe
 for data to appear)::
 
@@ -2585,7 +2585,7 @@
 blktrace Documentation
 ----------------------
 
-Online versions of the man pages for the commands discussed in this
+Online versions of the manual pages for the commands discussed in this
 section can be found here:
 
 -  https://linux.die.net/man/8/blktrace
@@ -2594,8 +2594,8 @@
 
 -  https://linux.die.net/man/8/btrace
 
-The above manpages, along with manpages for the other blktrace utilities
-(btt, blkiomon, etc) can be found in the /doc directory of the blktrace
-tools git repo::
+The above manual pages, along with manuals for the other blktrace utilities
+(``btt``, ``blkiomon``, etc) can be found in the ``/doc`` directory of the blktrace
+tools git repository::
 
    $ git clone git://git.kernel.dk/blktrace.git
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 5aaf8ec..ab71cbe 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -421,7 +421,7 @@
 ``compress_doc``
 ================
 
-Enables compression for man pages and info pages. This class is intended
+Enables compression for manual and info pages. This class is intended
 to be inherited globally. The default compression mechanism is gz (gzip)
 but you can select an alternative mechanism by setting the
 :term:`DOC_COMPRESS` variable.
@@ -1184,13 +1184,17 @@
 ``IMGCLASSES`` variable as follows::
 
    IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}"
-   IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
+   # Only Linux SDKs support populate_sdk_ext, fall back to populate_sdk_base
+   # in the non-Linux SDK_OS case, such as mingw32
+   inherit populate_sdk_base
+   IMGCLASSES += "${@['', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
    IMGCLASSES += "${@bb.utils.contains_any('IMAGE_FSTYPES', 'live iso hddimg', 'image-live', '', d)}"
    IMGCLASSES += "${@bb.utils.contains('IMAGE_FSTYPES', 'container', 'image-container', '', d)}"
    IMGCLASSES += "image_types_wic"
    IMGCLASSES += "rootfs-postcommands"
    IMGCLASSES += "image-postinst-intercepts"
-   inherit ${IMGCLASSES}
+   IMGCLASSES += "overlayfs-etc"
+   inherit_defer ${IMGCLASSES}
 
 The :ref:`ref-classes-image_types` class also handles conversion and compression of images.
 
diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst
index acadd5e..e4d8b54 100644
--- a/poky/documentation/ref-manual/structure.rst
+++ b/poky/documentation/ref-manual/structure.rst
@@ -172,10 +172,11 @@
    You can also run generated QEMU images with a command like 'runqemu qemux86-64'
 
 The default output of the ``oe-init-build-env`` script is from the
-``conf-notes.txt`` file, which is found in the ``meta-poky`` directory
+``conf-summary.txt`` and ``conf-notes.txt`` files, which are found in the ``meta-poky`` directory
 within the :term:`Source Directory`. If you design a
-custom distribution, you can include your own version of this
-configuration file to mention the targets defined by your distribution.
+custom distribution, you can include your own versions of these
+configuration files where you can provide a brief summary and detailed usage
+notes, such as a list of the targets defined by your distribution.
 See the
 ":ref:`dev-manual/custom-template-configuration-directory:creating a custom template configuration directory`"
 section in the Yocto Project Development Tasks Manual for more
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index 6e66dc7..435481c 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -2292,7 +2292,7 @@
    :term:`DOC_COMPRESS`
       When inheriting the :ref:`ref-classes-compress_doc`
       class, this variable sets the compression policy used when the
-      OpenEmbedded build system compresses man pages and info pages. By
+      OpenEmbedded build system compresses manual and info pages. By
       default, the compression method used is gz (gzip). Other policies
       available are xz and bz2.
 
@@ -7911,6 +7911,11 @@
       image), compared to just using the :ref:`ref-classes-create-spdx` class
       with no option.
 
+   :term:`SPDX_NAMESPACE_PREFIX`
+      This option could be used in order to change the prefix of ``spdxDocument``
+      and the prefix of ``documentNamespace``. It is set by default to
+      ``http://spdx.org/spdxdoc``.
+
    :term:`SPDX_PRETTY`
       This option makes the SPDX output more human-readable, using
       identation and newlines, instead of the default output in a
diff --git a/poky/documentation/sdk-manual/extensible.rst b/poky/documentation/sdk-manual/extensible.rst
index 05dd527..3f6a754 100644
--- a/poky/documentation/sdk-manual/extensible.rst
+++ b/poky/documentation/sdk-manual/extensible.rst
@@ -76,7 +76,7 @@
       $ bitbake meta-ide-support
       $ bitbake -c populate_sysroot gtk+3
       # or any other target or native item that the application developer would need
-      $ bitbake build-sysroots
+      $ bitbake build-sysroots -c build_native_sysroot && bitbake build-sysroots -c build_target_sysroot
 
 Setting up the Extensible SDK from a standalone installer
 ---------------------------------------------------------
@@ -1507,8 +1507,12 @@
 is directly accessible to build additional items, and it
 can simply be executed directly::
 
+   $ bitbake curl-native
+   # Add newly built native items to native sysroot
+   $ bitbake build-sysroots -c build_native_sysroot
    $ bitbake mesa
-   $ bitbake build-sysroots
+   # Add newly built target items to target sysroot
+   $ bitbake build-sysroots -c build_target_sysroot
 
 When using a standalone installer for the Extensible SDK
 --------------------------------------------------------
diff --git a/poky/documentation/standards.md b/poky/documentation/standards.md
index 9f4771e..e0c0cba 100644
--- a/poky/documentation/standards.md
+++ b/poky/documentation/standards.md
@@ -5,6 +5,21 @@
 
 It is currently a work in progress.
 
+## Automatic style validation
+
+There is an ongoing effort to automate style validation
+through the [Vale](https://vale.sh/). To try it, run:
+
+    $ make stylecheck
+
+Note that this just applies to text. Therefore, the syntax
+conventions described below still apply.
+
+If you wish to add a new word to an "accept.txt" file
+(./styles/config/vocabularies/<Vocab>/accept.txt),
+make sure the spelling and capitalization matches
+what Wikipedia or the project defining this word uses.
+
 ## Text standards
 
 ### Bulleted lists
diff --git a/poky/documentation/styles/config/vocabularies/OpenSource/accept.txt b/poky/documentation/styles/config/vocabularies/OpenSource/accept.txt
new file mode 100644
index 0000000..e378fbf
--- /dev/null
+++ b/poky/documentation/styles/config/vocabularies/OpenSource/accept.txt
@@ -0,0 +1,20 @@
+autovivification
+blkparse
+blktrace
+callee
+debugfs
+ftrace
+KernelShark
+Kprobe
+LTTng
+perf
+profiler
+subcommand
+subnode
+superset
+Sysprof
+systemd
+toolchain
+tracepoint
+Uprobe
+wget
diff --git a/poky/documentation/styles/config/vocabularies/Yocto/accept.txt b/poky/documentation/styles/config/vocabularies/Yocto/accept.txt
new file mode 100644
index 0000000..ca622ba
--- /dev/null
+++ b/poky/documentation/styles/config/vocabularies/Yocto/accept.txt
@@ -0,0 +1,5 @@
+BitBake
+BSP
+crosstap
+OpenEmbedded
+Yocto
diff --git a/poky/meta-poky/conf/distro/poky-altcfg.conf b/poky/meta-poky/conf/distro/poky-altcfg.conf
index b6dbcad..3d64bdd 100644
--- a/poky/meta-poky/conf/distro/poky-altcfg.conf
+++ b/poky/meta-poky/conf/distro/poky-altcfg.conf
@@ -2,6 +2,8 @@
 # An example of subclassing a distro, primarily used for testing alternate configuration
 # combinations on the Yocto Project autobuilder
 #
+
+PACKAGE_CLASSES ?= "package_ipk"
 require conf/distro/poky.conf
 
 DISTRO = "poky-altcfg"
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index 3b7bc66..8b061cf 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -1,7 +1,7 @@
 DISTRO = "poky"
 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
 DISTRO_VERSION = "4.3+snapshot-${METADATA_REVISION}"
-DISTRO_CODENAME = "nanbield"
+DISTRO_CODENAME = "scarthgap"
 SDK_VENDOR = "-pokysdk"
 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
 SDK_VERSION[vardepvalue] = "${SDK_VERSION}"
@@ -33,13 +33,13 @@
 PACKAGE_CLASSES ?= "package_rpm"
 
 SANITY_TESTED_DISTROS ?= " \
-            poky-4.2 \n \
             poky-4.3 \n \
-            ubuntu-18.04 \n \
+            poky-5.0 \n \
             ubuntu-20.04 \n \
             ubuntu-22.04 \n \
             ubuntu-23.04 \n \
             fedora-38 \n \
+            fedora-39 \n \
             centosstream-8 \n \
             debian-11 \n \
             debian-12 \n \
diff --git a/poky/meta-selftest/wic/overlayfs_etc.wks.in b/poky/meta-selftest/wic/overlayfs_etc.wks.in
index 1e1e583..066cd35 100644
--- a/poky/meta-selftest/wic/overlayfs_etc.wks.in
+++ b/poky/meta-selftest/wic/overlayfs_etc.wks.in
@@ -1,4 +1,4 @@
 part /boot --active --source bootimg-biosplusefi --ondisk sda --sourceparams="loader=grub-efi" --align 1024
-part / --source rootfs --ondisk sda --fstype=ext4 --use-uuid --align 1024
+part / --source rootfs --ondisk sda --fstype=${OVERLAYFS_ROOTFS_TYPE} --use-uuid --align 1024
 part --ondisk sda --fstype=ext4 --size=5 --align 1024
-bootloader --ptable gpt --timeout=1 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0 ${OVERLAYFS_INIT_OPTION}"
+bootloader --ptable gpt --timeout=1 --append="rootfstype=${OVERLAYFS_ROOTFS_TYPE} console=ttyS0,115200 console=tty0 ${OVERLAYFS_INIT_OPTION}"
diff --git a/poky/meta-yocto-bsp/README.hardware.md b/poky/meta-yocto-bsp/README.hardware.md
index bb8f579..6045c3d 100644
--- a/poky/meta-yocto-bsp/README.hardware.md
+++ b/poky/meta-yocto-bsp/README.hardware.md
@@ -1,5 +1,5 @@
-                  Yocto Project Hardware Reference BSPs README
-                  ============================================
+Yocto Project Hardware Reference BSPs README
+============================================
 
 This file gives details about using the Yocto Project hardware reference BSPs.
 The machines supported can be seen in the conf/machine/ directory and are listed 
@@ -13,9 +13,7 @@
 Support for additional devices is normally added by adding BSP layers to your 
 configuration. For more information please see the Yocto Board Support Package 
 (BSP) Developer's Guide - documentation source is in documentation/bspguide or 
-download the PDF from:
-
-   https://docs.yoctoproject.org/
+download the PDF from https://docs.yoctoproject.org/
 
 Note that these reference BSPs use the linux-yocto kernel and in general don't
 pull in binary module support for the platforms. This means some device functionality
@@ -27,9 +25,9 @@
 
 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)
+  * 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
 variable value corresponding to the board is given in brackets.
@@ -40,36 +38,36 @@
 Please refer to our contributor guide here: https://docs.yoctoproject.org/dev/contributor-guide/
 for full details on how to submit changes.
 
-As a quick guide, patches should be sent to poky@lists.yoctoproject.org
+As a quick guide, patches should be sent to <poky@lists.yoctoproject.org>
 The git command to do that would be:
  
      git send-email -M -1 --to poky@lists.yoctoproject.org
 
 Send pull requests, patches, comments or questions about meta-yocto-bsp to 
-poky@lists.yoctoproject.org
+<poky@lists.yoctoproject.org>.
 
-Maintainers: Kevin Hao <kexin.hao@windriver.com>
-             Bruce Ashfield <bruce.ashfield@gmail.com>
+Maintainers:
+* Kevin Hao <kexin.hao@windriver.com>
+* Bruce Ashfield <bruce.ashfield@gmail.com>
 
 Consumer Devices
 ================
 
 The following consumer devices are supported by the meta-yocto-bsp layer:
 
-  * Arm-based SystemReady devices (genericarm64)
-  * Intel x86 based PCs and devices (genericx86 and genericx86-64)
+  * 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.
 
 
-
-                      Specific Hardware Documentation
-                      ===============================
+Specific Hardware Documentation
+===============================
 
 
 Intel x86 based PCs and devices (genericx86*)
-=============================================
+---------------------------------------------
 
 The genericx86 and genericx86-64 MACHINE are tested on the following platforms:
 
@@ -96,17 +94,18 @@
 device as the following commands are run as root and are not reversable.
 
 USB Device:
+
   1. Build a live image. This image type consists of a simple filesystem
      without a partition table, which is suitable for USB keys, and with the
      default setup for the genericx86 machine, this image type is built
      automatically for any image you build. For example:
 
-     $ bitbake core-image-minimal
+         $ bitbake core-image-minimal
 
-  2. Use the "dd" utility to write the image to the raw block device. For
+  2. Use the `dd` utility to write the image to the raw block device. For
      example:
 
-     # dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb
+         # dd if=core-image-minimal-genericx86.hddimg of=/dev/sdb
 
   If the device fails to boot with "Boot error" displayed, or apparently
   stops just after the SYSLINUX version banner, it is likely the BIOS cannot
@@ -120,16 +119,16 @@
 
   2. Use a ".wic" image with an EFI partition
 
-     a) With a default grub-efi bootloader:
-     # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb
+     1. With a default grub-efi bootloader:
 
-     b) Use systemd-boot instead
-     - Build an image with EFI_PROVIDER="systemd-boot" then use the above
-       dd command to write the image to a USB stick.
+            # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb
+
+     2. Use systemd-boot instead. Build an image with `EFI_PROVIDER="systemd-boot"` then use the above
+       `dd` command to write the image to a USB stick.
 
 
-SystemReady Arm Platforms
-=========================
+SystemReady Arm Platforms (genericarm64)
+----------------------------------------
 
 The genericarm64 MACHINE is designed to work on standard SystemReady IR
 compliant boards with preinstalled firmware.
@@ -141,17 +140,22 @@
 The images built are EFI bootable disk images and can be written directly to a
 SD card for booting, for example.
 
+There is also limited support for booting a genericarm64 image inside QEMU. When
+building the image also build the `u-boot` recipe to build the required
+firmware (note that this firmware will _not_ boot on real hardware), then use
+`runqemu` as usual.
+
 
 Texas Instruments Beaglebone (beaglebone-yocto)
-===============================================
+-----------------------------------------------
 
 The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D
 accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster
 CPU, more RAM, eMMC flash and a micro HDMI port. The beaglebone MACHINE is
 tested on the following platforms:
 
-  o Beaglebone Black A6
-  o Beaglebone A6 (the original "White" model)
+  * Beaglebone Black A6
+  * Beaglebone A6 (the original "White" model)
 
 The Beaglebone Black has eMMC, while the White does not. Pressing the USER/BOOT
 button when powering on will temporarily change the boot order. But for the sake
@@ -169,10 +173,10 @@
 
   1. Build an image. For example:
 
-     $ bitbake core-image-minimal
+         $ bitbake core-image-minimal
 
   2. Use the "dd" utility to write the image to the SD card. For example:
 
-     # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb
+         # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb
 
   3. Insert the SD card into the Beaglebone and boot the board.
diff --git a/poky/meta-yocto-bsp/conf/machine/genericarm64.conf b/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
index 83f1aca..4afd6c3 100644
--- a/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
+++ b/poky/meta-yocto-bsp/conf/machine/genericarm64.conf
@@ -1,6 +1,6 @@
 #@TYPE: Machine
 #@NAME: genericarm64
-#@DESCRIPTION: Generic Arm64 machine for typical SystemReady platforms, which
+#@DESCRIPTION: Generic Arm64 machine for typical SystemReady IR/ES platforms, which
 #have working firmware and boot via EFI.
 
 require conf/machine/include/arm/arch-armv8a.inc
@@ -10,15 +10,17 @@
 
 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
+# Install all the kernel modules into the rootfs
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+# Install selected pieces of firmware
+MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-wl12xx linux-firmware-wl18xx linux-firmware-rtl-nic"
+
+# Use an initramfs and populate it with the kernel modules and key firmware
 INITRAMFS_IMAGE ?= "core-image-initramfs-boot"
-PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " kernel-modules"
+PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " ${MACHINE_EXTRA_RRECOMMENDS}"
 
 IMAGE_FSTYPES ?= "wic"
 WKS_FILE ?= "genericarm64.wks.in"
@@ -27,3 +29,30 @@
 
 # Try to bring up one physical serial console, or a virtualized serial console
 SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
+
+# Allow u-boot to be built for use with qemu-system-aarch64.
+# This u-boot is _not_ suitable for use with real hardware, and the expectation
+# of this machine is that real hardware comes with the firmware pre-loaded.
+UBOOT_MACHINE = "qemu_arm64_defconfig"
+
+# runqemu configuration to run a genericarm64 image inside a qemu-system-aarch64. You will need
+# to build u-boot explicitly.
+IMAGE_CLASSES += "qemuboot"
+QB_SYSTEM_NAME = "qemu-system-aarch64"
+# Boot the virtual machine with either an emulated Cortex-A76, or the host if using KVM
+QB_MACHINE = "-machine virt"
+QB_CPU = "-cpu cortex-a76"
+QB_CPU_KVM = "-cpu host -machine gic-version=3"
+QB_SMP = "-smp 4"
+# Boot into U-Boot and let that scan the disk for the next step, don't pass any kernel or filesystem hints
+QB_DEFAULT_BIOS = "u-boot.bin"
+QB_DEFAULT_KERNEL = "none"
+QB_DEFAULT_FSTYPE = "wic"
+QB_FSINFO = "wic:no-kernel-in-fs"
+# Mount the wic rootfs as a virtio block device
+QB_ROOTFS_OPT = "-drive id=root,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=root"
+# Virtio serial consoles
+QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
+QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
+# Virtio networking
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
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 ca7b2b0..3f33ec9 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,4 +1,8 @@
-KBRANCH:genericarm64  = "v6.6/standard/base"
+COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
+COMPATIBLE_MACHINE:genericx86 = "genericx86"
+COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
+COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
+
 KBRANCH:genericx86  = "v6.6/standard/base"
 KBRANCH:genericx86-64  = "v6.6/standard/base"
 KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone"
@@ -8,17 +12,10 @@
 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"
+SRCREV_machine:genericx86 ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
+SRCREV_machine:genericx86-64 ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
+SRCREV_machine:beaglebone-yocto ?= "06644f0d7193d7ec39d7fe41939a21953e7a0c65"
 
-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"
+LINUX_VERSION:genericx86 = "6.6.21"
+LINUX_VERSION:genericx86-64 = "6.6.21"
+LINUX_VERSION:beaglebone-yocto = "6.6.21"
diff --git a/poky/meta-yocto-bsp/wic/genericarm64.wks.in b/poky/meta-yocto-bsp/wic/genericarm64.wks.in
index 417d4d8..ee7da87 100644
--- a/poky/meta-yocto-bsp/wic/genericarm64.wks.in
+++ b/poky/meta-yocto-bsp/wic/genericarm64.wks.in
@@ -4,8 +4,8 @@
 
 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
 
+part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
+
 bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4"
diff --git a/poky/meta/classes-global/uninative.bbclass b/poky/meta/classes-global/uninative.bbclass
index 9b8b456..d2297b5 100644
--- a/poky/meta/classes-global/uninative.bbclass
+++ b/poky/meta/classes-global/uninative.bbclass
@@ -143,8 +143,8 @@
         d.setVar("NATIVELSBSTRING", "universal%s" % oe.utils.host_gcc_version(d))
         d.appendVar("SSTATEPOSTUNPACKFUNCS", " uninative_changeinterp")
         d.appendVarFlag("SSTATEPOSTUNPACKFUNCS", "vardepvalueexclude", "| uninative_changeinterp")
-        d.appendVar("BUILD_LDFLAGS", " -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=${UNINATIVE_LOADER}")
-        d.appendVarFlag("BUILD_LDFLAGS", "vardepvalueexclude", "| -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=${UNINATIVE_LOADER}")
+        d.appendVar("BUILD_LDFLAGS", " -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=${UNINATIVE_LOADER} -pthread")
+        d.appendVarFlag("BUILD_LDFLAGS", "vardepvalueexclude", "| -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=${UNINATIVE_LOADER} -pthread")
         d.appendVarFlag("BUILD_LDFLAGS", "vardepsexclude", "UNINATIVE_LOADER")
         d.prependVar("PATH", "${UNINATIVE_STAGING_DIR}-uninative/${BUILD_ARCH}-linux${bindir_native}:")
 
diff --git a/poky/meta/classes-global/utils.bbclass b/poky/meta/classes-global/utils.bbclass
index 8d797ff..9573899 100644
--- a/poky/meta/classes-global/utils.bbclass
+++ b/poky/meta/classes-global/utils.bbclass
@@ -15,7 +15,7 @@
 	        ;;
 	esac
 	install -m 755 $1 $2/$libname
-	sonamelink=`${HOST_PREFIX}readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
+	sonamelink=`${READELF} -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
 	if [ -z $sonamelink ]; then
 		bbfatal "oe_soinstall: $libname is missing ELF tag 'SONAME'."
 	fi
@@ -147,7 +147,7 @@
 		# special case hack for non-libtool .so.#.#.# links
 		baselibfile=`basename "$libfile"`
 		if (echo $baselibfile | grep -qE '^lib.*\.so\.[0-9.]*$'); then
-			sonamelink=`${HOST_PREFIX}readelf -d $libfile |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
+			sonamelink=`${READELF} -d $libfile |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
 			solink=`echo $baselibfile | sed -e 's/\.so\..*/.so/'`
 			if [ -n "$sonamelink" -a x"$baselibfile" != x"$sonamelink" ]; then
 				__runcmd ln -sf $baselibfile $destpath/$sonamelink
diff --git a/poky/meta/classes-recipe/autotools.bbclass b/poky/meta/classes-recipe/autotools.bbclass
index ca76cde..9359c9b 100644
--- a/poky/meta/classes-recipe/autotools.bbclass
+++ b/poky/meta/classes-recipe/autotools.bbclass
@@ -43,7 +43,8 @@
 
 # When building tools for use at build-time it's recommended for the build
 # system to use these variables when cross-compiling.
-# (http://sources.redhat.com/autobook/autobook/autobook_270.html)
+# https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
+# https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587
 export CPP_FOR_BUILD = "${BUILD_CPP}"
 export CPPFLAGS_FOR_BUILD = "${BUILD_CPPFLAGS}"
 
diff --git a/poky/meta/classes-recipe/cml1.bbclass b/poky/meta/classes-recipe/cml1.bbclass
index c4e3c9f..03e5fe6 100644
--- a/poky/meta/classes-recipe/cml1.bbclass
+++ b/poky/meta/classes-recipe/cml1.bbclass
@@ -61,16 +61,14 @@
     oe_terminal("sh -c 'make %s; if [ \\$? -ne 0 ]; then echo \"Command failed.\"; printf \"Press any key to continue... \"; read r; fi'" % d.getVar('KCONFIG_CONFIG_COMMAND'),
                 d.getVar('PN') + ' Configuration', d)
 
-    # FIXME this check can be removed when the minimum bitbake version has been bumped
-    if hasattr(bb.build, 'write_taint'):
-        try:
-            newmtime = os.path.getmtime(config)
-        except OSError:
-            newmtime = 0
+    try:
+        newmtime = os.path.getmtime(config)
+    except OSError:
+        newmtime = 0
 
-        if newmtime > mtime:
-            bb.note("Configuration changed, recompile will be forced")
-            bb.build.write_taint('do_compile', d)
+    if newmtime > mtime:
+        bb.plain("Changed configuration saved at:\n %s\nRecompile will be forced" % config)
+        bb.build.write_taint('do_compile', d)
 }
 do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
 do_menuconfig[nostamp] = "1"
diff --git a/poky/meta/classes-recipe/go.bbclass b/poky/meta/classes-recipe/go.bbclass
index 39bfaa5..cc3564c 100644
--- a/poky/meta/classes-recipe/go.bbclass
+++ b/poky/meta/classes-recipe/go.bbclass
@@ -78,6 +78,7 @@
 B = "${WORKDIR}/build"
 export GOPATH = "${B}"
 export GOENV = "off"
+export GOPROXY ??= "https://proxy.golang.org,direct"
 export GOTMPDIR ?= "${WORKDIR}/build-tmp"
 GOTMPDIR[vardepvalue] = ""
 
diff --git a/poky/meta/classes-recipe/image-live.bbclass b/poky/meta/classes-recipe/image-live.bbclass
index da919d5..d2e95ef 100644
--- a/poky/meta/classes-recipe/image-live.bbclass
+++ b/poky/meta/classes-recipe/image-live.bbclass
@@ -38,7 +38,7 @@
 LABELS_LIVE ?= "boot install"
 ROOT_LIVE ?= "root=/dev/ram0"
 INITRD_IMAGE_LIVE ?= "${MLPREFIX}core-image-minimal-initramfs"
-INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}${IMAGE_MACHINE_SUFFIX}.${INITRAMFS_FSTYPES}"
+INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}${IMAGE_MACHINE_SUFFIX}.${@d.getVar('INITRAMFS_FSTYPES').split()[0]}"
 
 LIVE_ROOTFS_TYPE ?= "ext4"
 ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${LIVE_ROOTFS_TYPE}"
diff --git a/poky/meta/classes-recipe/kernel-fitimage.bbclass b/poky/meta/classes-recipe/kernel-fitimage.bbclass
index 7e30a5d..4b74ddc 100644
--- a/poky/meta/classes-recipe/kernel-fitimage.bbclass
+++ b/poky/meta/classes-recipe/kernel-fitimage.bbclass
@@ -421,6 +421,7 @@
 	bootscr_line=""
 	setup_line=""
 	default_line=""
+	compatible_line=""
 
 	dtb_image_sect=$(symlink_points_below $dtb_image "${EXTERNAL_KERNEL_DEVICETREE}")
 	if [ -z "$dtb_image_sect" ]; then
@@ -428,7 +429,12 @@
 	fi
 
 	dtb_path="${EXTERNAL_KERNEL_DEVICETREE}/${dtb_image_sect}"
-	compatible_line="compatible = \"$(fdtget "$dtb_path" / compatible | sed 's/ /", "/g')\";"
+	if [ -e "$dtb_path" ]; then
+		compat=$(fdtget -t s "$dtb_path" / compatible | sed 's/ /", "/g')
+		if [ -n "$compat" ]; then
+			compatible_line="compatible = \"$compat\";"
+		fi
+	fi
 
 	dtb_image=$(echo $dtb_image | tr '/' '_')
 	dtb_image_sect=$(echo "${dtb_image_sect}" | tr '/' '_')
diff --git a/poky/meta/classes-recipe/kernel-module-split.bbclass b/poky/meta/classes-recipe/kernel-module-split.bbclass
index c1208d5..9487365 100644
--- a/poky/meta/classes-recipe/kernel-module-split.bbclass
+++ b/poky/meta/classes-recipe/kernel-module-split.bbclass
@@ -67,9 +67,9 @@
             else:
                 msg = "Cannot decompress '%s'" % file
                 raise msg
-            cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", tmpkofile, tmpfile)
+            cmd = "%s -j .modinfo -O binary %s %s" % (d.getVar("OBJCOPY"), tmpkofile, tmpfile)
         else:
-            cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile)
+            cmd = "%s -j .modinfo -O binary %s %s" % (d.getVar("OBJCOPY"), file, tmpfile)
         subprocess.check_call(cmd, shell=True)
         # errors='replace': Some old kernel versions contain invalid utf-8 characters in mod descriptions (like 0xf6, 'ö')
         with open(tmpfile, errors='replace') as f:
diff --git a/poky/meta/classes-recipe/kernel.bbclass b/poky/meta/classes-recipe/kernel.bbclass
index db4461e..b084d6d 100644
--- a/poky/meta/classes-recipe/kernel.bbclass
+++ b/poky/meta/classes-recipe/kernel.bbclass
@@ -645,7 +645,7 @@
 }
 
 check_oldest_kernel[vardepsexclude] += "OLDEST_KERNEL KERNEL_VERSION"
-do_configure[prefuncs] += "check_oldest_kernel"
+do_compile[postfuncs] += "check_oldest_kernel"
 
 KERNEL_LOCALVERSION ??= ""
 
diff --git a/poky/meta/classes-recipe/populate_sdk_ext.bbclass b/poky/meta/classes-recipe/populate_sdk_ext.bbclass
index f209bec..f5687e5 100644
--- a/poky/meta/classes-recipe/populate_sdk_ext.bbclass
+++ b/poky/meta/classes-recipe/populate_sdk_ext.bbclass
@@ -494,7 +494,7 @@
     bb.utils.remove(sstate_out, True)
 
     # uninative.bbclass sets NATIVELSBSTRING to 'universal%s' % oe.utils.host_gcc_version(d)
-    fixedlsbstring = "universal%s" % oe.utils.host_gcc_version(d)
+    fixedlsbstring = "universal%s" % oe.utils.host_gcc_version(d) if bb.data.inherits_class('uninative', d) else ""
 
     sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1')
     sdk_ext_type = d.getVar('SDK_EXT_TYPE')
diff --git a/poky/meta/classes-recipe/python_pep517.bbclass b/poky/meta/classes-recipe/python_pep517.bbclass
index a1659c5..c30674c 100644
--- a/poky/meta/classes-recipe/python_pep517.bbclass
+++ b/poky/meta/classes-recipe/python_pep517.bbclass
@@ -42,7 +42,7 @@
 do_compile[cleandirs] += "${PEP517_WHEEL_PATH}"
 
 python_pep517_do_install () {
-    COUNT=$(find ${PEP517_WHEEL_PATH} -name '*.whl' | wc -l)
+    COUNT=$(find ${PEP517_WHEEL_PATH} -name '*.whl' -maxdepth 1 | wc -l)
     if test $COUNT -eq 0; then
         bbfatal No wheels found in ${PEP517_WHEEL_PATH}
     elif test $COUNT -gt 1; then
diff --git a/poky/meta/classes-recipe/qemuboot.bbclass b/poky/meta/classes-recipe/qemuboot.bbclass
index 4a563b8..895fd38 100644
--- a/poky/meta/classes-recipe/qemuboot.bbclass
+++ b/poky/meta/classes-recipe/qemuboot.bbclass
@@ -185,3 +185,5 @@
            os.remove(qemuboot_link)
         os.symlink(os.path.basename(qemuboot), qemuboot_link)
 }
+
+EXTRA_IMAGEDEPENDS += "qemu-system-native qemu-helper-native:do_addto_recipe_sysroot"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 4ca5430..2d1f9fd 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -328,7 +328,6 @@
 RECIPE_MAINTAINER:pn-libedit = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-libepoxy = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-liberation-fonts = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER:pn-liberror-perl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-libevdev = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libevent = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libexif = "Alexander Kanavin <alex.kanavin@gmail.com>"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index 0192146..5975db2 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -28,7 +28,6 @@
     json-c \
     json-glib \
     libconvert-asn1-perl \
-    liberror-perl \
     libgpg-error\
     libnl \
     libpcre \
@@ -120,6 +119,7 @@
     util-linux \
     valgrind \
     lz4 \
+    libseccomp \
 "
 
 # python3 ptests hang on qemuriscv64
@@ -139,7 +139,6 @@
 #    libpam \ # Needs pam DISTRO_FEATURE
 #    mdadm \ # tests are flaky in AB.
 #    numactl \ # qemu not (yet) configured for numa; all tests are skipped
-#    libseccomp \ #  tests failed: 38; add to slow tests once addressed
 #    python3-numpy \ # requires even more RAM and (possibly) disk space; multiple failures
 
 PTESTS_PROBLEMS = "\
@@ -149,7 +148,6 @@
     ifupdown \
     libinput \
     libpam \
-    libseccomp \
     mdadm \
     numactl \
     python3-license-expression \
diff --git a/poky/meta/conf/layer.conf b/poky/meta/conf/layer.conf
index 2418ee7..efbf261 100644
--- a/poky/meta/conf/layer.conf
+++ b/poky/meta/conf/layer.conf
@@ -7,7 +7,7 @@
 BBFILE_PATTERN_core = "^${LAYERDIR}/"
 BBFILE_PRIORITY_core = "5"
 
-LAYERSERIES_CORENAMES = "nanbield scarthgap"
+LAYERSERIES_CORENAMES = "scarthgap"
 
 # This should only be incremented on significant changes that will
 # cause compatibility issues with other layers
@@ -87,6 +87,7 @@
   sato-icon-theme->gtk+3 \
   adwaita-icon-theme->gdk-pixbuf \
   adwaita-icon-theme->gtk+3 \
+  run-postinsts->util-linux \
 "
 
 # Avoid adding bison-native to the sysroot without a specific
diff --git a/poky/meta/conf/machine/include/qemu.inc b/poky/meta/conf/machine/include/qemu.inc
index 14feb86..bb7aec7 100644
--- a/poky/meta/conf/machine/include/qemu.inc
+++ b/poky/meta/conf/machine/include/qemu.inc
@@ -23,8 +23,6 @@
 # Use a common kernel recipe for all QEMU machines
 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
 
-EXTRA_IMAGEDEPENDS += "qemu-system-native qemu-helper-native:do_addto_recipe_sysroot"
-
 # Provide the nfs server kernel module for all qemu images
 KERNEL_FEATURES:append:pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
 KERNEL_FEATURES:append:pn-linux-yocto-rt = " features/nfsd/nfsd-enable.scc"
diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
index 7024bd0..d01d988 100644
--- a/poky/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -35,4 +35,5 @@
 QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
 QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
 QB_GRAPHICS = "-device bochs-display"
-QB_OPT_APPEND = "-device virtio-tablet-pci -device virtio-keyboard-pci"
+QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
+QB_OPT_APPEND:riscv32 = "-device virtio-tablet-pci -device virtio-keyboard-pci"
diff --git a/poky/meta/files/toolchain-shar-relocate.sh b/poky/meta/files/toolchain-shar-relocate.sh
index e8ab357..b017714 100644
--- a/poky/meta/files/toolchain-shar-relocate.sh
+++ b/poky/meta/files/toolchain-shar-relocate.sh
@@ -1,7 +1,9 @@
-if ! xargs --version > /dev/null 2>&1; then
-	echo "xargs is required by the relocation script, please install it first. Abort!"
-	exit 1
-fi
+for cmd in xargs file; do
+	if ! command -v $cmd > /dev/null 2>&1; then
+		echo "The command '$cmd' is required by the relocation script, please install it first. Abort!"
+		exit 1
+	fi
+done
 
 # fix dynamic loader paths in all ELF SDK binaries
 # allow symlinks to be accessed via the find command too
diff --git a/poky/meta/lib/bblayers/makesetup.py b/poky/meta/lib/bblayers/makesetup.py
index 4f27c56..99d5973 100644
--- a/poky/meta/lib/bblayers/makesetup.py
+++ b/poky/meta/lib/bblayers/makesetup.py
@@ -9,7 +9,6 @@
 import sys
 
 import bb.utils
-import bb.process
 
 from bblayers.common import LayerPlugin
 
@@ -24,25 +23,12 @@
 
 class MakeSetupPlugin(LayerPlugin):
 
-    def _get_repo_path(self, layer_path):
-        repo_path, _ = bb.process.run('git rev-parse --show-toplevel', cwd=layer_path)
-        return repo_path.strip()
-
-    def _get_remotes(self, repo_path):
+    def _get_remotes_with_url(self, repo_path):
         remotes = {}
-        remotes_list,_ = bb.process.run('git remote', cwd=repo_path)
-        for r in remotes_list.split():
-            uri,_ = bb.process.run('git remote get-url {r}'.format(r=r), cwd=repo_path)
-            remotes[r] = {'uri':uri.strip()}
+        for r in oe.buildcfg.get_metadata_git_remotes(repo_path):
+            remotes[r] = {'uri':oe.buildcfg.get_metadata_git_remote_url(repo_path, r)}
         return remotes
 
-    def _get_describe(self, repo_path):
-        try:
-            describe,_ = bb.process.run('git describe --tags', cwd=repo_path)
-        except bb.process.ExecutionError:
-            return ""
-        return describe.strip()
-
     def _is_submodule(self, repo_path):
         # This is slightly brittle: git does not offer a way to tell whether
         # a given repo dir is a submodule checkout, so we need to rely on .git
@@ -56,10 +42,7 @@
         available here. """
         repos = {}
         layers = oe.buildcfg.get_layer_revisions(self.tinfoil.config_data)
-        try:
-            destdir_repo = self._get_repo_path(destdir)
-        except bb.process.ExecutionError:
-            destdir_repo = None
+        destdir_repo = oe.buildcfg.get_metadata_git_toplevel(destdir)
 
         for (l_path, l_name, l_branch, l_rev, l_ismodified) in layers:
             if l_name == 'workspace':
@@ -67,12 +50,16 @@
             if l_ismodified:
                 logger.error("Layer {name} in {path} has uncommitted modifications or is not in a git repository.".format(name=l_name,path=l_path))
                 return
-            repo_path = self._get_repo_path(l_path)
+            repo_path = oe.buildcfg.get_metadata_git_toplevel(l_path)
 
             if self._is_submodule(repo_path):
                 continue
             if repo_path not in repos.keys():
-                repos[repo_path] = {'path':os.path.basename(repo_path),'git-remote':{'rev':l_rev, 'branch':l_branch, 'remotes':self._get_remotes(repo_path), 'describe':self._get_describe(repo_path)}}
+                repos[repo_path] = {'path':os.path.basename(repo_path),'git-remote':{
+                        'rev':l_rev,
+                        'branch':l_branch,
+                        'remotes':self._get_remotes_with_url(repo_path),
+                        'describe':oe.buildcfg.get_metadata_git_describe(repo_path)}}
                 if repo_path == destdir_repo:
                     repos[repo_path]['contains_this_file'] = True
                 if not repos[repo_path]['git-remote']['remotes'] and not repos[repo_path]['contains_this_file']:
diff --git a/poky/meta/lib/oe/buildcfg.py b/poky/meta/lib/oe/buildcfg.py
index b3fe510..27b059b 100644
--- a/poky/meta/lib/oe/buildcfg.py
+++ b/poky/meta/lib/oe/buildcfg.py
@@ -28,6 +28,35 @@
         rev = '<unknown>'
     return rev.strip()
 
+def get_metadata_git_toplevel(path):
+    try:
+        toplevel, _ = bb.process.run('git rev-parse --show-toplevel', cwd=path)
+    except bb.process.ExecutionError:
+        return ""
+    return toplevel.strip()
+
+def get_metadata_git_remotes(path):
+    try:
+        remotes_list, _ = bb.process.run('git remote', cwd=path)
+        remotes = remotes_list.split()
+    except bb.process.ExecutionError:
+        remotes = []
+    return remotes
+
+def get_metadata_git_remote_url(path, remote):
+    try:
+        uri, _ = bb.process.run('git remote get-url {remote}'.format(remote=remote), cwd=path)
+    except bb.process.ExecutionError:
+        return ""
+    return uri.strip()
+
+def get_metadata_git_describe(path):
+    try:
+        describe, _ = bb.process.run('git describe --tags', cwd=path)
+    except bb.process.ExecutionError:
+        return ""
+    return describe.strip()
+
 def is_layer_modified(path):
     try:
         subprocess.check_output("""cd %s; export PSEUDO_UNLOAD=1; set -e;
diff --git a/poky/meta/lib/oe/package.py b/poky/meta/lib/oe/package.py
index 587810b..1511ba4 100644
--- a/poky/meta/lib/oe/package.py
+++ b/poky/meta/lib/oe/package.py
@@ -1660,7 +1660,7 @@
 
         if (file.endswith(".dll") or file.endswith(".exe")):
             # use objdump to search for "DLL Name: .*\.dll"
-            p = subprocess.Popen([d.expand("${HOST_PREFIX}objdump"), "-p", file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+            p = subprocess.Popen([d.expand("${OBJDUMP}"), "-p", file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
             out, err = p.communicate()
             # process the output, grabbing all .dll names
             if p.returncode == 0:
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index aa891ec..a46e550 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -6,6 +6,7 @@
 import bb.siggen
 import bb.runqueue
 import oe
+import netrc
 
 def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCaches):
     # Return True if we should keep the dependency, False to drop it
@@ -327,6 +328,18 @@
         if not self.method:
             bb.fatal("OEEquivHash requires SSTATE_HASHEQUIV_METHOD to be set")
         self.max_parallel = int(data.getVar('BB_HASHSERVE_MAX_PARALLEL') or 1)
+        self.username = data.getVar("BB_HASHSERVE_USERNAME")
+        self.password = data.getVar("BB_HASHSERVE_PASSWORD")
+        if not self.username or not self.password:
+            try:
+                n = netrc.netrc()
+                auth = n.authenticators(self.server)
+                if auth is not None:
+                    self.username, _, self.password = auth
+            except FileNotFoundError:
+                pass
+            except netrc.NetrcParseError as e:
+                bb.warn("Error parsing %s:%s: %s" % (e.filename, str(e.lineno), e.msg))
 
 # Insert these classes into siggen's namespace so it can see and select them
 bb.siggen.SignatureGeneratorOEBasicHash = SignatureGeneratorOEBasicHash
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index a1cccc3..bc1e40e 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -482,7 +482,7 @@
         pn = 'mbedtls'
         # this will trigger reformat_git_uri with branch parameter in url
         git_url = "'git://git@github.com/ARMmbed/mbedtls.git;protocol=https'"
-        resulting_src_uri = "git://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master"
+        resulting_src_uri = "gitsm://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master"
         self._test_devtool_add_git_url(git_url, version, pn, resulting_src_uri)
 
     def test_devtool_add_library(self):
diff --git a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
index cd0dc60..e310635 100644
--- a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
+++ b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
@@ -353,6 +353,7 @@
 # Image configuration for overlayfs-etc
 OVERLAYFS_ETC_MOUNT_POINT = "/data"
 OVERLAYFS_ETC_DEVICE = "/dev/sda3"
+OVERLAYFS_ROOTFS_TYPE = "ext4"
 """
 
         self.write_config(config)
@@ -367,13 +368,17 @@
 
     @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_sbin_init_preinit(self):
-        self.run_sbin_init(False)
+        self.run_sbin_init(False, "ext4")
 
     @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_sbin_init_original(self):
-        self.run_sbin_init(True)
+        self.run_sbin_init(True, "ext4")
 
-    def run_sbin_init(self, origInit):
+    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
+    def test_sbin_init_read_only(self):
+        self.run_sbin_init(True, "squashfs")
+
+    def run_sbin_init(self, origInit, rootfsType):
         """
         Summary:   Confirm we can replace original init and mount overlay on top of /etc
         Expected:  Image is created successfully and /etc is mounted as an overlay
@@ -384,7 +389,9 @@
 
         args = {
             'OVERLAYFS_INIT_OPTION': "" if origInit else "init=/sbin/preinit",
-            'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': int(origInit == True)
+            'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': int(origInit == True),
+            'OVERLAYFS_ROOTFS_TYPE': rootfsType,
+            'OVERLAYFS_ETC_CREATE_MOUNT_DIRS': int(rootfsType == "ext4")
         }
 
         self.write_config(config.format(**args))
@@ -437,7 +444,9 @@
 
         args = {
             'OVERLAYFS_INIT_OPTION': "",
-            'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': 1
+            'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': 1,
+            'OVERLAYFS_ROOTFS_TYPE': "ext4",
+            'OVERLAYFS_ETC_CREATE_MOUNT_DIRS': 1
         }
 
         self.write_config(config.format(**args))
@@ -463,10 +472,14 @@
 INIT_MANAGER = "systemd"
 
 # enable overlayfs in the kernel
-KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc"
+KERNEL_EXTRA_FEATURES:append = " \
+    features/overlayfs/overlayfs.scc \
+    cfg/fs/squashfs.scc"
 
 IMAGE_FSTYPES += "wic"
 OVERLAYFS_INIT_OPTION = "{OVERLAYFS_INIT_OPTION}"
+OVERLAYFS_ROOTFS_TYPE = "{OVERLAYFS_ROOTFS_TYPE}"
+OVERLAYFS_ETC_CREATE_MOUNT_DIRS = "{OVERLAYFS_ETC_CREATE_MOUNT_DIRS}"
 WKS_FILE = "overlayfs_etc.wks.in"
 
 EXTRA_IMAGE_FEATURES += "read-only-rootfs"
@@ -477,4 +490,13 @@
 OVERLAYFS_ETC_FSTYPE = "ext4"
 OVERLAYFS_ETC_DEVICE = "/dev/sda3"
 OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}"
+
+ROOTFS_POSTPROCESS_COMMAND += "{OVERLAYFS_ROOTFS_TYPE}_rootfs"
+
+ext4_rootfs() {{
+}}
+
+squashfs_rootfs() {{
+    mkdir -p ${{IMAGE_ROOTFS}}/data
+}}
 """
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 031c226..86d6cd7 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -772,15 +772,16 @@
 
             def find_siginfo(pn, taskname, sigs=None):
                 result = None
+                command_complete = False
                 tinfoil.set_event_mask(["bb.event.FindSigInfoResult",
                                 "bb.command.CommandCompleted"])
                 ret = tinfoil.run_command("findSigInfo", pn, taskname, sigs)
                 if ret:
-                    while True:
+                    while result is None or not command_complete:
                         event = tinfoil.wait_event(1)
                         if event:
                             if isinstance(event, bb.command.CommandCompleted):
-                                break
+                                command_complete = True
                             elif isinstance(event, bb.event.FindSigInfoResult):
                                 result = event.result
                 return result
@@ -959,7 +960,7 @@
         self.assertEqual(len(failed_urls), missing_objects, "Amount of reported missing objects does not match failed URLs: {}\nFailed URLs:\n{}\nFetcher diagnostics:\n{}".format(missing_objects, "\n".join(failed_urls), "\n".join(failed_urls_extrainfo)))
         self.assertEqual(len(failed_urls), 0, "Missing objects in the cache:\n{}\nFetcher diagnostics:\n{}".format("\n".join(failed_urls), "\n".join(failed_urls_extrainfo)))
 
-    def run_test(self, machine, targets, exceptions, check_cdn = True):
+    def run_test(self, machine, targets, exceptions, check_cdn = True, ignore_errors = False):
         # sstate is checked for existence of these, but they never get written out to begin with
         exceptions += ["{}.*image_qa".format(t) for t in targets.split()]
         exceptions += ["{}.*deploy_source_date_epoch".format(t) for t in targets.split()]
@@ -984,14 +985,18 @@
 """.format(machine))
         result = bitbake("-DD -n {}".format(targets))
         bitbake("-S none {}".format(targets))
+        if ignore_errors:
+            return
         self.check_bb_output(result.output, exceptions, check_cdn)
 
     def test_cdn_mirror_qemux86_64(self):
         exceptions = []
+        self.run_test("qemux86-64", "core-image-minimal core-image-full-cmdline core-image-sato-sdk", exceptions, ignore_errors = True)
         self.run_test("qemux86-64", "core-image-minimal core-image-full-cmdline core-image-sato-sdk", exceptions)
 
     def test_cdn_mirror_qemuarm64(self):
         exceptions = []
+        self.run_test("qemuarm64", "core-image-minimal core-image-full-cmdline core-image-sato-sdk", exceptions, ignore_errors = True)
         self.run_test("qemuarm64", "core-image-minimal core-image-full-cmdline core-image-sato-sdk", exceptions)
 
     def test_local_cache_qemux86_64(self):
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-configure.inc b/poky/meta/recipes-bsp/u-boot/u-boot-configure.inc
index 235623d..378d675 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-configure.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-configure.inc
@@ -8,6 +8,8 @@
 
 DEPENDS += "kern-tools-native"
 
+CONFIGURE_FILES = "${@d.getVar('UBOOT_MACHINE') or '.config'}"
+
 do_configure () {
     if [ -n "${UBOOT_CONFIG}" ]; then
         unset i j
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_9.6p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
index 1fd36a2..edd8e8c 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_9.6p1.bb
@@ -85,6 +85,9 @@
 EXTRA_OECONF:append:mips = " --without-hardening"
 EXTRA_OECONF:append:mips64 = " --without-hardening"
 
+# Work around ICE on powerpc64le starting in 9.6p1
+EXTRA_OECONF:append:powerpc64le = " --without-hardening"
+
 # Since we do not depend on libbsd, we do not want configure to use it
 # just because it finds libutil.h.  But, specifying --disable-libutil
 # causes compile errors, so...
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/bti.patch b/poky/meta/recipes-connectivity/openssl/openssl/bti.patch
new file mode 100644
index 0000000..748576c
--- /dev/null
+++ b/poky/meta/recipes-connectivity/openssl/openssl/bti.patch
@@ -0,0 +1,58 @@
+From ba8a599395f8b770c76316b5f5b0f3838567014f Mon Sep 17 00:00:00 2001
+From: Tom Cosgrove <tom.cosgrove@arm.com>
+Date: Tue, 26 Mar 2024 13:18:00 +0000
+Subject: [PATCH] aarch64: fix BTI in bsaes assembly code
+
+In Arm systems where BTI is enabled but the Crypto extensions are not (more
+likely in FVPs than in real hardware), the bit-sliced assembler code will
+be used. However, this wasn't annotated with BTI instructions when BTI was
+enabled, so the moment libssl jumps into this code it (correctly) aborts.
+
+Solve this by adding the missing BTI landing pads.
+
+Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/23982]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ crypto/aes/asm/bsaes-armv8.pl | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/crypto/aes/asm/bsaes-armv8.pl b/crypto/aes/asm/bsaes-armv8.pl
+index b3c97e439f..c3c5ff3e05 100644
+--- a/crypto/aes/asm/bsaes-armv8.pl
++++ b/crypto/aes/asm/bsaes-armv8.pl
+@@ -1018,6 +1018,7 @@ _bsaes_key_convert:
+ //   Initialisation vector overwritten with last quadword of ciphertext
+ //   No output registers, usual AAPCS64 register preservation
+ ossl_bsaes_cbc_encrypt:
++        AARCH64_VALID_CALL_TARGET
+         cmp     x2, #128
+         bhs     .Lcbc_do_bsaes
+         b       AES_cbc_encrypt
+@@ -1270,7 +1271,7 @@ ossl_bsaes_cbc_encrypt:
+ //   Output text filled in
+ //   No output registers, usual AAPCS64 register preservation
+ ossl_bsaes_ctr32_encrypt_blocks:
+-
++        AARCH64_VALID_CALL_TARGET
+         cmp     x2, #8                      // use plain AES for
+         blo     .Lctr_enc_short             // small sizes
+ 
+@@ -1476,6 +1477,7 @@ ossl_bsaes_ctr32_encrypt_blocks:
+ //   Output ciphertext filled in
+ //   No output registers, usual AAPCS64 register preservation
+ ossl_bsaes_xts_encrypt:
++        AARCH64_VALID_CALL_TARGET
+         // Stack layout:
+         // sp ->
+         //        nrounds*128-96 bytes: key schedule
+@@ -1921,6 +1923,7 @@ ossl_bsaes_xts_encrypt:
+ //   Output plaintext filled in
+ //   No output registers, usual AAPCS64 register preservation
+ ossl_bsaes_xts_decrypt:
++        AARCH64_VALID_CALL_TARGET
+         // Stack layout:
+         // sp ->
+         //        nrounds*128-96 bytes: key schedule
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb
index 1682b6f..c7134c5 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.2.1.bb
@@ -12,6 +12,7 @@
            file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
            file://0001-Configure-do-not-tweak-mips-cflags.patch \
            file://0001-Added-handshake-history-reporting-when-test-fails.patch \
+           file://bti.patch \
            "
 
 SRC_URI:append:class-nativesdk = " \
diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.4.bb b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
index fc51adc..62ecdea 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
@@ -23,7 +23,7 @@
 SRC_URI[sha256sum] = "ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52"
 
 # http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842
-# 
+#
 CVE_STATUS[CVE-2016-2781] = "disputed: runcon is not really a sandbox command, use `runcon ... setsid ...` to avoid this particular issue."
 
 EXTRA_OECONF:class-target = "--enable-install-program=arch,hostname --libexecdir=${libdir}"
@@ -169,7 +169,7 @@
 
 inherit ptest
 
-RDEPENDS:${PN}-ptest += "bash findutils gawk liberror-perl make perl perl-modules python3-core sed shadow"
+RDEPENDS:${PN}-ptest += "bash findutils gawk make perl perl-modules python3-core sed shadow"
 
 # -dev automatic dependencies fails as we don't want libmodule-build-perl-dev, its too heavy
 # may need tweaking if DEPENDS changes
diff --git a/poky/meta/recipes-core/expat/expat_2.6.1.bb b/poky/meta/recipes-core/expat/expat_2.6.2.bb
similarity index 92%
rename from poky/meta/recipes-core/expat/expat_2.6.1.bb
rename to poky/meta/recipes-core/expat/expat_2.6.2.bb
index 9bdc3b6..6c9db91 100644
--- a/poky/meta/recipes-core/expat/expat_2.6.1.bb
+++ b/poky/meta/recipes-core/expat/expat_2.6.2.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] = "4677d957c0c6cb2a3321101944574c24113b637c7ab1cf0659a27c5babc201fd"
+SRC_URI[sha256sum] = "9c7c1b5dcbc3c237c500a8fb1493e14d9582146dd9b42aa8d3ffb856a3b927e0"
 
 EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
 
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
new file mode 100644
index 0000000..cd5ac28
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
@@ -0,0 +1,32 @@
+From bb11d1a4ae77d93ec0743e54077cf0f990243fa6 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Thu, 28 Mar 2024 16:27:09 +0000
+Subject: [PATCH] Skip /timeout/rounding test
+
+This test is sensitive to load because it expects certain timeout operations
+to succeed in specific time periods. Whilst these timeouts are fairly large,
+they're still exceeded inside a qemu on a loaded system.
+
+https://bugzilla.yoctoproject.org/show_bug.cgi?id=14464
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ glib/tests/timeout.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c
+index 1ae3f3a34..85a715b0f 100644
+--- a/glib/tests/timeout.c
++++ b/glib/tests/timeout.c
+@@ -214,7 +214,6 @@ main (int argc, char *argv[])
+   g_test_add_func ("/timeout/seconds-once", test_seconds_once);
+   g_test_add_func ("/timeout/weeks-overflow", test_weeks_overflow);
+   g_test_add_func ("/timeout/far-future-ready-time", test_far_future_ready_time);
+-  g_test_add_func ("/timeout/rounding", test_rounding);
+ 
+   return g_test_run ();
+ }
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
index f0fd057..b1669ea 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
@@ -17,6 +17,7 @@
            file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \
            file://memory-monitor.patch \
            file://fix-regex.patch \
+           file://skip-timeout.patch \
            "
 SRC_URI:append:class-native = " file://relocate-modules.patch \ 
                                 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc
index 5b0705f..618a574 100644
--- a/poky/meta/recipes-core/glibc/glibc-version.inc
+++ b/poky/meta/recipes-core/glibc/glibc-version.inc
@@ -1,6 +1,6 @@
 SRCBRANCH ?= "release/2.39/master"
 PV = "2.39+git"
-SRCREV_glibc ?= "312e159626b67fe11f39e83e222cf4348a3962f3"
+SRCREV_glibc ?= "1b9c1a0047fb26a65a9b2a7b8cd977243f7d353c"
 SRCREV_localedef ?= "fab74f31b3811df543e24b6de47efdf45b538abc"
 
 GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https"
diff --git a/poky/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch b/poky/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch
index 816471a..f6523c5 100644
--- a/poky/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch
+++ b/poky/meta/recipes-core/glibc/glibc/0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch
@@ -1,53 +1,62 @@
-From f761f5ca2d453e11d34fc7d552dab4a0e189dae9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 4 Aug 2023 09:34:50 -0700
-Subject: [PATCH] aarch64/configure: Pass -mcpu along with -march to detect sve
- support
+From 73c26018ed0ecd9c807bb363cc2c2ab4aca66a82 Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <szabolcs.nagy@arm.com>
+Date: Wed, 13 Mar 2024 14:34:14 +0000
+Subject: [PATCH] aarch64: fix check for SVE support in assembler
 
-SVE support logic in configure is rightly passing -march=<arch>+sve to
-compiler to override whatever user might have passed via environment,
-however GCC does not do as intended when -mcpu is part of environment
-compiler flags, then it overrides the -march computed from -mcpu and
-igonores other -march values so this test fails for lot of aarch64
-machines which pass -mcpu that does not support sve. This is seemingly a
-bug in GCC [1], until that is fixed we preempt -mcpu along with -march
-in the configure test itself. It does not change functionality and yet
-lets us through the GCC inconsistency.
+Due to GCC bug 110901 -mcpu can override -march setting when compiling
+asm code and thus a compiler targetting a specific cpu can fail the
+configure check even when binutils gas supports SVE.
 
-[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110901
+The workaround is that explicit .arch directive overrides both -mcpu
+and -march, and since that's what the actual SVE memcpy uses the
+configure check should use that too even if the GCC issue is fixed
+independently.
 
-Upstream-Status: Inappropriate [Workaround for a GCC issue]
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=73c26018ed0ecd9c807bb363cc2c2ab4aca66a82]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Reviewed-by: Florian Weimer <fweimer@redhat.com>
 ---
- sysdeps/aarch64/configure    | 2 +-
- sysdeps/aarch64/configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ sysdeps/aarch64/configure    | 5 +++--
+ sysdeps/aarch64/configure.ac | 5 +++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+ mode change 100644 => 100755 sysdeps/aarch64/configure
 
 diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
-index 5e91fab023..39dddc66d4 100644
+old mode 100644
+new mode 100755
+index ca57edce47..9606137e8d
 --- a/sysdeps/aarch64/configure
 +++ b/sysdeps/aarch64/configure
-@@ -327,7 +327,7 @@ else $as_nop
+@@ -325,9 +325,10 @@ then :
+   printf %s "(cached) " >&6
+ else $as_nop
    cat > conftest.s <<\EOF
-         ptrue p0.b
+-        ptrue p0.b
++	.arch armv8.2-a+sve
++	ptrue p0.b
  EOF
 -if { ac_try='${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&5'
-+if { ac_try='${CC-cc} -c -mcpu=generic+sve -march=armv8.2-a+sve conftest.s 1>&5'
++if { ac_try='${CC-cc} -c conftest.s 1>&5'
    { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
    (eval $ac_try) 2>&5
    ac_status=$?
 diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
-index 8a708f2ef4..b6a146d2be 100644
+index 27874eceb4..56d12d661d 100644
 --- a/sysdeps/aarch64/configure.ac
 +++ b/sysdeps/aarch64/configure.ac
-@@ -92,7 +92,7 @@ AC_CACHE_CHECK([for SVE support in assembler], [libc_cv_aarch64_sve_asm], [dnl
+@@ -90,9 +90,10 @@ LIBC_CONFIG_VAR([aarch64-variant-pcs], [$libc_cv_aarch64_variant_pcs])
+ # Check if asm support armv8.2-a+sve
+ AC_CACHE_CHECK([for SVE support in assembler], [libc_cv_aarch64_sve_asm], [dnl
  cat > conftest.s <<\EOF
-         ptrue p0.b
+-        ptrue p0.b
++	.arch armv8.2-a+sve
++	ptrue p0.b
  EOF
 -if AC_TRY_COMMAND(${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&AS_MESSAGE_LOG_FD); then
-+if AC_TRY_COMMAND(${CC-cc} -c -mcpu=generic+sve -march=armv8.2-a+sve conftest.s 1>&AS_MESSAGE_LOG_FD); then
++if AC_TRY_COMMAND(${CC-cc} -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
    libc_cv_aarch64_sve_asm=yes
  else
    libc_cv_aarch64_sve_asm=no
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch b/poky/meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch
new file mode 100644
index 0000000..c0a467f
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0024-qemu-stale-process.patch
@@ -0,0 +1,45 @@
+glibc: Skip 2 qemu tests that can hang in oe-selftest
+
+qemumips and qemuppc were leaving stale processes behind after
+running glibc oe-selftest. During analysis, it was found that
+it was due to "tst-scm_rights" and "tst-scm_rights-time64" tests.
+Disable them so that there are no stale processes left behind.
+
+[YOCTO #15423]
+https://bugzilla.yoctoproject.org/show_bug.cgi?id=15423
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
+---
+diff --git a/sysdeps/unix/sysv/linux/Makefile  b/sysdeps/unix/sysv/linux/Makefile
+--- a/sysdeps/unix/sysv/linux/Makefile    2024-03-18 01:15:49.019202881 -0700
++++ b/sysdeps/unix/sysv/linux/Makefile  2024-03-14 06:26:18.581404107 -0700
+@@ -222,7 +222,6 @@
+   tst-process_mrelease \
+   tst-quota \
+   tst-rlimit-infinity \
+-  tst-scm_rights \
+   tst-sigtimedwait \
+   tst-sync_file_range \
+   tst-sysconf-iov_max \
+@@ -233,6 +232,8 @@
+   tst-timerfd \
+   tst-ttyname-direct \
+   tst-ttyname-namespace \
++  # Skip this test to avoid stale qemu process
++  # tst-scm_rights \
+   # tests
+
+ # process_madvise requires CAP_SYS_ADMIN.
+@@ -270,9 +271,10 @@
+   tst-ntp_gettimex-time64 \
+   tst-ppoll-time64 \
+   tst-prctl-time64 \
+-  tst-scm_rights-time64 \
+   tst-sigtimedwait-time64 \
+   tst-timerfd-time64 \
++  # Skip this test to avoid stale qemu process
++  # tst-scm_rights-time64 \
+   # tests-time64
+
+ tests-clone-internal = \
diff --git a/poky/meta/recipes-core/glibc/glibc_2.39.bb b/poky/meta/recipes-core/glibc/glibc_2.39.bb
index b203060..9122472 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.39.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.39.bb
@@ -49,6 +49,7 @@
            file://0021-fix-create-thread-failed-in-unprivileged-process-BZ-.patch \
            file://0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \
            file://0023-aarch64-configure-Pass-mcpu-along-with-march-to-dete.patch \
+           file://0024-qemu-stale-process.patch \
 "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"
diff --git a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
index bfe48b2..1901641 100644
--- a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -26,13 +26,17 @@
 # Use a negative value to skip the update
 CVE_DB_UPDATE_INTERVAL ?= "86400"
 
-# Number of attmepts for each http query to nvd server before giving up
+# CVE database incremental update age threshold, in seconds. If the database is
+# older than this threshold, do a full re-download, else, do an incremental
+# update. By default: the maximum allowed value from NVD: 120 days (120*24*60*60)
+# Use 0 to force a full download.
+CVE_DB_INCR_UPDATE_AGE_THRES ?= "10368000"
+
+# Number of attempts for each http query to nvd server before giving up
 CVE_DB_UPDATE_ATTEMPTS ?= "5"
 
 CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_2.db"
 
-CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_2.db"
-
 python () {
     if not bb.data.inherits_class("cve-check", d):
         raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.")
@@ -119,7 +123,8 @@
 
 def nvd_request_next(url, attempts, api_key, args, min_wait):
     """
-    Request next part of the NVD dabase
+    Request next part of the NVD database
+    NVD API documentation: https://nvd.nist.gov/developers/vulnerabilities
     """
 
     import urllib.request
@@ -172,18 +177,24 @@
 
     req_args = {'startIndex' : 0}
 
-    # The maximum range for time is 120 days
-    # Force a complete update if our range is longer
-    if (database_time != 0):
+    incr_update_threshold = int(d.getVar("CVE_DB_INCR_UPDATE_AGE_THRES"))
+    if database_time != 0:
         database_date = datetime.datetime.fromtimestamp(database_time, tz=datetime.timezone.utc)
         today_date = datetime.datetime.now(tz=datetime.timezone.utc)
         delta = today_date - database_date
-        if delta.days < 120:
+        if incr_update_threshold == 0:
+            bb.note("CVE database: forced full update")
+        elif delta < datetime.timedelta(seconds=incr_update_threshold):
             bb.note("CVE database: performing partial update")
+            # The maximum range for time is 120 days
+            if delta > datetime.timedelta(days=120):
+                bb.error("CVE database: Trying to do an incremental update on a larger than supported range")
             req_args['lastModStartDate'] = database_date.isoformat()
             req_args['lastModEndDate'] = today_date.isoformat()
         else:
             bb.note("CVE database: file too old, forcing a full update")
+    else:
+        bb.note("CVE database: no preexisting database, do a full download")
 
     with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f:
 
@@ -313,6 +324,10 @@
     vectorString = None
     cveId = elt['cve']['id']
     if elt['cve']['vulnStatus'] ==  "Rejected":
+        c = conn.cursor()
+        c.execute("delete from PRODUCTS where ID = ?;", [cveId])
+        c.execute("delete from NVD where ID = ?;", [cveId])
+        c.close()
         return
     cveDesc = ""
     for desc in elt['cve']['descriptions']:
@@ -346,6 +361,10 @@
                 [cveId, cveDesc, cvssv2, cvssv3, date, accessVector, vectorString]).close()
 
     try:
+        # Remove any pre-existing CVE configuration. Even for partial database
+        # update, those will be repopulated. This ensures that old
+        # configuration is not kept for an updated CVE.
+        conn.execute("delete from PRODUCTS where ID = ?", [cveId]).close()
         for config in elt['cve']['configurations']:
             # This is suboptimal as it doesn't handle AND/OR and negate, but is better than nothing
             for node in config["nodes"]:
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index 3dc031d..5b1353b 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -30,6 +30,9 @@
 SRCREV = "819cfc6b42a68790a23509e4fcc58ceb70e1965e"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
 
+CVE_PRODUCT = "edk2"
+CVE_VERSION = "${@d.getVar('PV').split('stable')[1]}"
+
 inherit deploy
 
 PARALLEL_MAKE = ""
diff --git a/poky/meta/recipes-core/readline/readline/readline82-001.patch b/poky/meta/recipes-core/readline/readline/readline82-001.patch
new file mode 100644
index 0000000..4e9839d
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-001.patch
@@ -0,0 +1,45 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-001
+
+Bug-Reported-by:	Kan-Ru Chen <koster@debian.org>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021109
+
+Bug-Description:
+
+Starting a readline application with an invalid locale specification for
+LC_ALL/LANG/LC_CTYPE can cause it crash on the first call to readline.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/nls.c	2022-08-15 09:38:51.000000000 -0400
+--- nls.c	2022-10-05 09:23:22.000000000 -0400
+***************
+*** 142,145 ****
+--- 142,149 ----
+      lspec = "";
+    ret = setlocale (LC_CTYPE, lspec);	/* ok, since it does not change locale */
++   if (ret == 0 || *ret == 0)
++     ret = setlocale (LC_CTYPE, (char *)NULL);
++   if (ret == 0 || *ret == 0)
++     ret = RL_DEFAULT_LOCALE;
+  #else
+    ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
+
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 0
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 1
diff --git a/poky/meta/recipes-core/readline/readline/readline82-002.patch b/poky/meta/recipes-core/readline/readline/readline82-002.patch
new file mode 100644
index 0000000..5629685
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-002.patch
@@ -0,0 +1,51 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-002
+
+Bug-Reported-by:	srobertson@peratonlabs.com
+Bug-Reference-ID:
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-bash/2022-09/msg00049.html
+
+Bug-Description:
+
+It's possible for readline to try to zero out a line that's not null-
+terminated, leading to a memory fault.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/display.c	2022-04-05 10:47:31.000000000 -0400
+--- display.c	2022-12-13 13:11:22.000000000 -0500
+***************
+*** 2684,2692 ****
+  
+    if (visible_line)
+!     {
+!       temp = visible_line;
+!       while (*temp)
+! 	*temp++ = '\0';
+!     }
+    rl_on_new_line ();
+    forced_display++;
+--- 2735,2740 ----
+  
+    if (visible_line)
+!     memset (visible_line, 0, line_size);
+! 
+    rl_on_new_line ();
+    forced_display++;
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 1
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 2
diff --git a/poky/meta/recipes-core/readline/readline/readline82-003.patch b/poky/meta/recipes-core/readline/readline/readline82-003.patch
new file mode 100644
index 0000000..61570bf
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-003.patch
@@ -0,0 +1,46 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-003
+
+Bug-Reported-by:	Stefan Klinger <readline-gnu.org@stefan-klinger.de>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2023-08/msg00018.html
+
+Bug-Description:
+
+Patch (apply with `patch -p0'):
+
+The custom color prefix that readline uses to color possible completions
+must have a leading `.'.
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/colors.c	2021-12-08 11:38:25.000000000 -0500
+--- colors.c	2023-08-28 16:40:04.000000000 -0400
+***************
+*** 74,78 ****
+  static void restore_default_color (void);
+  
+! #define RL_COLOR_PREFIX_EXTENSION	"readline-colored-completion-prefix"
+  
+  COLOR_EXT_TYPE *_rl_color_ext_list = 0;
+--- 74,78 ----
+  static void restore_default_color (void);
+  
+! #define RL_COLOR_PREFIX_EXTENSION	".readline-colored-completion-prefix"
+  
+  COLOR_EXT_TYPE *_rl_color_ext_list = 0;
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 2
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 3
diff --git a/poky/meta/recipes-core/readline/readline/readline82-004.patch b/poky/meta/recipes-core/readline/readline/readline82-004.patch
new file mode 100644
index 0000000..cedc3d0
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-004.patch
@@ -0,0 +1,68 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-004
+
+Bug-Reported-by:	Henry Bent <henry.r.bent@gmail.com>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-bash/2022-11/msg00044.html
+
+Bug-Description:
+
+Patch (apply with `patch -p0'):
+
+There are systems that supply one of select or pselect, but not both.
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/input.c	2022-04-08 15:43:24.000000000 -0400
+--- input.c	2022-11-28 09:41:08.000000000 -0500
+***************
+*** 152,156 ****
+--- 152,158 ----
+  int _rl_timeout_init (void);
+  int _rl_timeout_sigalrm_handler (void);
++ #if defined (RL_TIMEOUT_USE_SELECT)
+  int _rl_timeout_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *, const sigset_t *);
++ #endif
+  
+  static void _rl_timeout_handle (void);
+***************
+*** 249,253 ****
+    int chars_avail, k;
+    char input;
+! #if defined(HAVE_SELECT)
+    fd_set readfds, exceptfds;
+    struct timeval timeout;
+--- 251,255 ----
+    int chars_avail, k;
+    char input;
+! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
+    fd_set readfds, exceptfds;
+    struct timeval timeout;
+***************
+*** 806,810 ****
+    unsigned char c;
+    int fd;
+! #if defined (HAVE_PSELECT)
+    sigset_t empty_set;
+    fd_set readfds;
+--- 815,819 ----
+    unsigned char c;
+    int fd;
+! #if defined (HAVE_PSELECT) || defined (HAVE_SELECT)
+    sigset_t empty_set;
+    fd_set readfds;
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 3
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 4
diff --git a/poky/meta/recipes-core/readline/readline/readline82-005.patch b/poky/meta/recipes-core/readline/readline/readline82-005.patch
new file mode 100644
index 0000000..69c2e4f
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-005.patch
@@ -0,0 +1,53 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-005
+
+Bug-Reported-by:	Simon Marchi <simon.marchi@polymtl.ca>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00005.html
+
+Bug-Description:
+
+If an application is using readline in callback mode, and a signal arrives
+after readline checks for it in rl_callback_read_char() but before it
+restores the application's signal handlers, it won't get processed until the
+next time the application calls rl_callback_read_char(). Readline needs to
+check for and resend any pending signals after restoring the application's
+signal handlers.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/callback.c	2022-04-29 12:02:56.000000000 -0400
+--- callback.c	2022-10-11 10:59:06.000000000 -0400
+***************
+*** 116,120 ****
+    do { \
+      if (rl_persistent_signal_handlers == 0) \
+!       rl_clear_signals (); \
+      return; \
+    } while (0)
+--- 116,123 ----
+    do { \
+      if (rl_persistent_signal_handlers == 0) \
+!       { \
+!         rl_clear_signals (); \
+!         if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
+!       } \
+      return; \
+    } while (0)
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 4
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 5
diff --git a/poky/meta/recipes-core/readline/readline/readline82-006.patch b/poky/meta/recipes-core/readline/readline/readline82-006.patch
new file mode 100644
index 0000000..d66afe8
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-006.patch
@@ -0,0 +1,102 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-006
+
+Bug-Reported-by:	Tom de Vries <tdevries@suse.de>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2022-09/msg00001.html
+
+Bug-Description:
+
+This is a variant of the same issue as the one fixed by patch 5. In this
+case, the signal arrives and is pending before readline calls rl_getc().
+When this happens, the pending signal will be handled by the loop, but may
+alter or destroy some state that the callback uses. Readline needs to treat
+this case the same way it would if a signal interrupts pselect/select, so
+compound operations like searches and reading numeric arguments get cleaned
+up properly.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/input.c	2022-12-22 16:15:48.000000000 -0500
+--- input.c	2023-01-10 11:53:45.000000000 -0500
+***************
+*** 812,816 ****
+  rl_getc (FILE *stream)
+  {
+!   int result;
+    unsigned char c;
+    int fd;
+--- 812,816 ----
+  rl_getc (FILE *stream)
+  {
+!   int result, ostate, osig;
+    unsigned char c;
+    int fd;
+***************
+*** 823,828 ****
+--- 823,842 ----
+    while (1)
+      {
++       osig = _rl_caught_signal;
++       ostate = rl_readline_state;
++ 
+        RL_CHECK_SIGNALS ();
+  
++ #if defined (READLINE_CALLBACKS)
++       /* Do signal handling post-processing here, but just in callback mode
++ 	 for right now because the signal cleanup can change some of the
++ 	 callback state, and we need to either let the application have a
++ 	 chance to react or abort some current operation that gets cleaned
++ 	 up by rl_callback_sigcleanup(). If not, we'll just run through the
++ 	 loop again. */
++       if (osig != 0 && (ostate & RL_STATE_CALLBACK))
++ 	goto postproc_signal;
++ #endif
++ 
+        /* We know at this point that _rl_caught_signal == 0 */
+  
+***************
+*** 888,891 ****
+--- 902,908 ----
+  
+  handle_error:
++       osig = _rl_caught_signal;
++       ostate = rl_readline_state;
++ 
+        /* If the error that we received was EINTR, then try again,
+  	 this is simply an interrupted system call to read ().  We allow
+***************
+*** 928,933 ****
+--- 945,959 ----
+  #endif  /* SIGALRM */
+  
++ postproc_signal:
++       /* POSIX says read(2)/pselect(2)/select(2) don't return EINTR for any
++ 	 reason other than being interrupted by a signal, so we can safely
++ 	 call the application's signal event hook. */
+        if (rl_signal_event_hook)
+  	(*rl_signal_event_hook) ();
++ #if defined (READLINE_CALLBACKS)
++       else if (osig == SIGINT && (ostate & RL_STATE_CALLBACK) && (ostate & (RL_STATE_ISEARCH|RL_STATE_NSEARCH|RL_STATE_NUMERICARG)))
++         /* just these cases for now */
++         _rl_abort_internal ();
++ #endif
+      }
+  }
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 5
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 6
diff --git a/poky/meta/recipes-core/readline/readline/readline82-007.patch b/poky/meta/recipes-core/readline/readline/readline82-007.patch
new file mode 100644
index 0000000..9fa1ccb
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-007.patch
@@ -0,0 +1,51 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-007
+
+Bug-Reported-by:	Kevin Pulo <kev@pulo.com.au>
+Bug-Reference-ID:
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2022-11/msg00002.html
+
+Bug-Description:
+
+If readline is called with no prompt, it should display a newline if return
+is typed on an empty line. It should still suppress the final newline if
+return is typed on the last (empty) line of a multi-line command.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/display.c	2022-04-05 10:47:31.000000000 -0400
+--- display.c	2022-12-13 13:11:22.000000000 -0500
+***************
+*** 3342,3348 ****
+  		 &last_face[_rl_screenwidth - 1 + woff], 1);
+      }
+!   _rl_vis_botlin = 0;
+!   if (botline_length > 0 || _rl_last_c_pos > 0)
+      rl_crlf ();
+    fflush (rl_outstream);
+    rl_display_fixed++;
+--- 3394,3400 ----
+  		 &last_face[_rl_screenwidth - 1 + woff], 1);
+      }
+!   if ((_rl_vis_botlin == 0 && botline_length == 0) || botline_length > 0 || _rl_last_c_pos > 0)
+      rl_crlf ();
++   _rl_vis_botlin = 0;
+    fflush (rl_outstream);
+    rl_display_fixed++;
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 6
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 7
diff --git a/poky/meta/recipes-core/readline/readline/readline82-008.patch b/poky/meta/recipes-core/readline/readline/readline82-008.patch
new file mode 100644
index 0000000..660cb1e
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-008.patch
@@ -0,0 +1,80 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-008
+
+Bug-Reported-by:
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Add missing prototypes for several function declarations.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/text.c	Wed Oct 27 11:03:59 2021
+--- text.c	Thu Nov 16 16:24:58 2023
+***************
+*** 1765,1770 ****
+  #if defined (READLINE_CALLBACKS)
+  static int
+! _rl_char_search_callback (data)
+!      _rl_callback_generic_arg *data;
+  {
+    _rl_callback_func = 0;
+--- 1765,1769 ----
+  #if defined (READLINE_CALLBACKS)
+  static int
+! _rl_char_search_callback (_rl_callback_generic_arg *data)
+  {
+    _rl_callback_func = 0;
+*** ../readline-8.2-patched/bind.c	Wed Feb  9 11:02:22 2022
+--- bind.c	Thu Nov 16 16:25:17 2023
+***************
+*** 1168,1174 ****
+  
+  static int
+! parse_comparison_op (s, indp)
+!      const char *s;
+!      int *indp;
+  {
+    int i, peekc, op;
+--- 1168,1172 ----
+  
+  static int
+! parse_comparison_op (const char *s, int *indp)
+  {
+    int i, peekc, op;
+*** ../readline-8.2-patched/rltty.c	Fri Feb 18 11:14:22 2022
+--- rltty.c	Thu Nov 16 16:25:36 2023
+***************
+*** 81,86 ****
+     to get the tty settings. */
+  static void
+! set_winsize (tty)
+!      int tty;
+  {
+  #if defined (TIOCGWINSZ)
+--- 81,85 ----
+     to get the tty settings. */
+  static void
+! set_winsize (int tty)
+  {
+  #if defined (TIOCGWINSZ)
+
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 7
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 8
diff --git a/poky/meta/recipes-core/readline/readline/readline82-009.patch b/poky/meta/recipes-core/readline/readline/readline82-009.patch
new file mode 100644
index 0000000..1fcf7b3
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-009.patch
@@ -0,0 +1,76 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-009
+
+Bug-Reported-by:	Stefan H. Holek <stefan@epy.co.at>
+Bug-Reference-ID:	<50F8DA45-B7F3-4DE1-AB94-19AE42649CDC@epy.co.at>
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00021.html
+
+Bug-Description:
+
+Fix issue where the directory name portion of the word to be completed (the
+part that is passed to opendir()) requires both tilde expansion and dequoting.
+Readline only performed tilde expansion in this case, so filename completion
+would fail.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/complete.c	2022-04-05 10:47:06.000000000 -0400
+--- complete.c	2022-10-26 15:08:51.000000000 -0400
+***************
+*** 2527,2531 ****
+  	  xfree (dirname);
+  	  dirname = temp;
+! 	  tilde_dirname = 1;
+  	}
+  
+--- 2527,2532 ----
+  	  xfree (dirname);
+  	  dirname = temp;
+! 	  if (*dirname != '~')
+! 	    tilde_dirname = 1;	/* indicate successful tilde expansion */
+  	}
+  
+***************
+*** 2546,2554 ****
+  	  users_dirname = savestring (dirname);
+  	}
+!       else if (tilde_dirname == 0 && rl_completion_found_quote && rl_filename_dequoting_function)
+  	{
+! 	  /* delete single and double quotes */
+  	  xfree (dirname);
+! 	  dirname = savestring (users_dirname);
+  	}
+        directory = opendir (dirname);
+--- 2547,2560 ----
+  	  users_dirname = savestring (dirname);
+  	}
+!       else if (rl_completion_found_quote && rl_filename_dequoting_function)
+  	{
+! 	  /* We already ran users_dirname through the dequoting function.
+! 	     If tilde_dirname == 1, we successfully performed tilde expansion
+! 	     on dirname. Now we need to reconcile those results. We either
+! 	     just copy the already-dequoted users_dirname or tilde expand it
+! 	     if we tilde-expanded dirname. */
+! 	  temp = tilde_dirname ? tilde_expand (users_dirname) : savestring (users_dirname);
+  	  xfree (dirname);
+! 	  dirname = temp;
+  	}
+        directory = opendir (dirname);
+
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 8
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 9
diff --git a/poky/meta/recipes-core/readline/readline/readline82-010.patch b/poky/meta/recipes-core/readline/readline/readline82-010.patch
new file mode 100644
index 0000000..6152953
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline/readline82-010.patch
@@ -0,0 +1,70 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.2
+Patch-ID: readline82-010
+
+Bug-Reported-by:	Martin Castillo <castilma@uni-bremen.de>
+Bug-Reference-ID:	<2d42153b-cf65-caba-dff1-cd3bc6268c7e@uni-bremen.de>
+Bug-Reference-URL:	https://lists.gnu.org/archive/html/bug-readline/2023-01/msg00000.html
+
+Bug-Description:
+
+Fix the case where text to be completed from the line buffer (quoted) is
+compared to the common prefix of the possible matches (unquoted) and the
+quoting makes the former appear to be longer than the latter. Readline
+assumes the match doesn't add any characters to the word and doesn't display
+multiple matches.
+
+Patch (apply with `patch -p0'):
+
+Upstream-Status: Submitted [https://ftp.gnu.org/gnu/readline/readline-8.2-patches/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+*** ../readline-8.2-patched/complete.c	Tue Apr  5 10:47:06 2022
+--- complete.c	Sat Jan  7 14:19:45 2023
+***************
+*** 2032,2038 ****
+    text = rl_copy_text (start, end);
+    matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
+    /* nontrivial_lcd is set if the common prefix adds something to the word
+       being completed. */
+!   nontrivial_lcd = matches && compare_match (text, matches[0]) != 0;
+    if (what_to_do == '!' || what_to_do == '@')
+      tlen = strlen (text);
+--- 2038,2060 ----
+    text = rl_copy_text (start, end);
+    matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
++   /* If TEXT contains quote characters, it will be dequoted as part of
++      generating the matches, and the matches will not contain any quote
++      characters. We need to dequote TEXT before performing the comparison.
++      Since compare_match performs the dequoting, and we only want to do it
++      once, we don't call compare_matches after dequoting TEXT; we call
++      strcmp directly. */
+    /* nontrivial_lcd is set if the common prefix adds something to the word
+       being completed. */
+!   if (rl_filename_completion_desired && rl_filename_quoting_desired &&
+!       rl_completion_found_quote && rl_filename_dequoting_function)
+!     {
+!       char *t;
+!       t = (*rl_filename_dequoting_function) (text, rl_completion_quote_character);
+!       xfree (text);
+!       text = t;
+!       nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+!     }
+!   else
+!     nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+    if (what_to_do == '!' || what_to_do == '@')
+      tlen = strlen (text);
+
+*** ../readline-8.2/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 9
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 10
diff --git a/poky/meta/recipes-core/readline/readline_8.2.bb b/poky/meta/recipes-core/readline/readline_8.2.bb
index 3a47297..f0dba31 100644
--- a/poky/meta/recipes-core/readline/readline_8.2.bb
+++ b/poky/meta/recipes-core/readline/readline_8.2.bb
@@ -2,4 +2,16 @@
 
 SRC_URI += "  file://norpath.patch"
 
+SRC_URI += "file://readline82-001.patch;striplevel=0 \
+            file://readline82-002.patch;striplevel=0 \
+            file://readline82-003.patch;striplevel=0 \
+            file://readline82-004.patch;striplevel=0 \
+            file://readline82-005.patch;striplevel=0 \
+            file://readline82-006.patch;striplevel=0 \
+            file://readline82-007.patch;striplevel=0 \
+            file://readline82-008.patch;striplevel=0 \
+            file://readline82-009.patch;striplevel=0 \
+            file://readline82-010.patch;striplevel=0 \
+           "
+
 SRC_URI[archive.sha256sum] = "3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-NamePolicy.patch b/poky/meta/recipes-core/systemd/systemd/0001-NamePolicy.patch
new file mode 100644
index 0000000..46955cb
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0001-NamePolicy.patch
@@ -0,0 +1,33 @@
+From 9bb09886320eb286108fb370b2634a66b3e3b9ff Mon Sep 17 00:00:00 2001
+From: Joe Slater <joe.slater@windriver.com>
+Date: Thu, 21 Mar 2024 16:28:31 +0000
+Subject: [PATCH] systemd: enable mac based names in NamePolicy
+
+The default NamePolicy for network interface names does not
+include names based on mac addresses.  Some BSPs, though, do
+not provide information to compute other names, so we enable
+mac names as a last resort.
+
+Upstream-Status: Inappropriate [enable feature]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+---
+ network/99-default.link | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/network/99-default.link b/network/99-default.link
+index 429ac31e80..543ce54661 100644
+--- a/network/99-default.link
++++ b/network/99-default.link
+@@ -15,6 +15,6 @@
+ OriginalName=*
+ 
+ [Link]
+-NamePolicy=keep kernel database onboard slot path
+-AlternativeNamesPolicy=database onboard slot path
++NamePolicy=keep kernel database onboard slot path mac
++AlternativeNamesPolicy=database onboard slot path mac
+ MACAddressPolicy=persistent
+-- 
+2.35.5
+
diff --git a/poky/meta/recipes-core/systemd/systemd_255.4.bb b/poky/meta/recipes-core/systemd/systemd_255.4.bb
index bcef3e6..8a816c4 100644
--- a/poky/meta/recipes-core/systemd/systemd_255.4.bb
+++ b/poky/meta/recipes-core/systemd/systemd_255.4.bb
@@ -28,6 +28,7 @@
            file://systemd-pager.sh \
            file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
            file://0008-implment-systemd-sysv-install-for-OE.patch \
+           file://0001-NamePolicy.patch \
            "
 
 # patches needed by musl
@@ -248,6 +249,7 @@
                   -Dsystem-alloc-gid-min=101 \
                   -Dsystem-gid-max=999 \
                   -Dcreate-log-dirs=false \
+                  ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', '-Ddefault-mdns=no -Ddefault-llmnr=no', '', d)} \
                   "
 
 # Hardcode target binary paths to avoid using paths from sysroot or worse
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index 4e9d22f..d506783 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -6,14 +6,15 @@
 
 SECTION = "base"
 
-LICENSE = "GPL-1.0-or-later & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause"
+LICENSE = "GPL-1.0-or-later & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause & MIT"
+LICENSE:${PN}-fcntl-lock = "MIT"
 LICENSE:${PN}-fdisk = "GPL-1.0-or-later"
 LICENSE:${PN}-libblkid = "LGPL-2.1-or-later"
 LICENSE:${PN}-libfdisk = "LGPL-2.1-or-later"
 LICENSE:${PN}-libmount = "LGPL-2.1-or-later"
 LICENSE:${PN}-libsmartcols = "LGPL-2.1-or-later"
 
-LIC_FILES_CHKSUM = "file://README.licensing;md5=6b0e0a2320e66e62eef9b8149a6faec4 \
+LIC_FILES_CHKSUM = "file://README.licensing;md5=cc80239f106687ab39ef0271ff5cf4ba \
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \
@@ -29,6 +30,7 @@
 FILESEXTRAPATHS:prepend := "${THISDIR}/util-linux:"
 MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-linux-${PV}.tar.xz \
+           file://mit-license.patch \
            file://configure-sbindir.patch \
            file://runuser.pamd \
            file://runuser-l.pamd \
@@ -37,6 +39,7 @@
            file://display_testname_for_subtest.patch \
            file://avoid_parallel_tests.patch \
            file://0001-login-utils-include-libgen.h-for-basename-API.patch \
+           file://fcntl-lock.c \
            "
 
 SRC_URI[sha256sum] = "7b6605e48d1a49f43cc4b4cfc59f313d0dd5402fa40b96810bd572e167dfed0f"
diff --git a/poky/meta/recipes-core/util-linux/util-linux/fcntl-lock.c b/poky/meta/recipes-core/util-linux/util-linux/fcntl-lock.c
new file mode 100644
index 0000000..966d8c5
--- /dev/null
+++ b/poky/meta/recipes-core/util-linux/util-linux/fcntl-lock.c
@@ -0,0 +1,332 @@
+// From https://github.com/magnumripper/fcntl-lock
+// SPDX-License-Identifier: MIT
+/* ----------------------------------------------------------------------- *
+ *
+ *   Copyright 2003-2005 H. Peter Anvin - All Rights Reserved
+ *   Copyright 2015 magnum (fcntl version)
+ *
+ *   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 the Software without
+ *   restriction, including without limitation the rights to use,
+ *   copy, modify, merge, publish, distribute, sublicense, and/or
+ *   sell copies of the Software, and to permit persons to whom
+ *   the Software is furnished to do so, subject to the following
+ *   conditions:
+ *
+ *   The above copyright notice and this permission notice shall
+ *   be included in all copies or substantial portions of the Software.
+ *
+ *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *   OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * ----------------------------------------------------------------------- */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <signal.h>
+#include <ctype.h>
+#include <string.h>
+#include <paths.h>
+#include <sysexits.h>
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+
+#define PACKAGE_STRING "magnum"
+#define _(x) (x)
+
+static const struct option long_options[] = {
+  { "shared",       0, NULL, 's' },
+  { "exclusive",    0, NULL, 'x' },
+  { "unlock",       0, NULL, 'u' },
+  { "nonblocking",  0, NULL, 'n' },
+  { "nb",           0, NULL, 'n' },
+  { "timeout",      1, NULL, 'w' },
+  { "wait",         1, NULL, 'w' },
+  { "close",        0, NULL, 'o' },
+  { "help",         0, NULL, 'h' },
+  { "version",      0, NULL, 'V' },
+  { 0, 0, 0, 0 }
+};
+
+const char *program;
+
+static void usage(int ex)
+{
+  fputs("fcntl-lock (" PACKAGE_STRING ")\n", stderr);
+  fprintf(stderr,
+	_("Usage: %1$s [-sxun][-w #] fd#\n"
+	  "       %1$s [-sxon][-w #] file [-c] command...\n"
+	  "       %1$s [-sxon][-w #] directory [-c] command...\n"
+	  "  -s  --shared     Get a shared lock\n"
+	  "  -x  --exclusive  Get an exclusive lock\n"
+	  "  -u  --unlock     Remove a lock\n"
+	  "  -n  --nonblock   Fail rather than wait\n"
+	  "  -w  --timeout    Wait for a limited amount of time\n"
+	  "  -o  --close      Close file descriptor before running command\n"
+	  "  -c  --command    Run a single command string through the shell\n"
+	  "  -h  --help       Display this text\n"
+	  "  -V  --version    Display version\n"),
+	  program);
+  exit(ex);
+}
+
+
+static sig_atomic_t timeout_expired = 0;
+
+static void timeout_handler(int sig)
+{
+  (void)sig;
+
+  timeout_expired = 1;
+}
+
+
+static char * strtotimeval(const char *str, struct timeval *tv)
+{
+  char *s;
+  long fs;			/* Fractional seconds */
+  int i;
+
+  tv->tv_sec = strtol(str, &s, 10);
+  fs = 0;
+
+  if ( *s == '.' ) {
+    s++;
+
+    for ( i = 0 ; i < 6 ; i++ ) {
+      if ( !isdigit(*s) )
+	break;
+
+      fs *= 10;
+      fs += *s++ - '0';
+    }
+
+    for ( ; i < 6; i++ )
+      fs *= 10;
+
+    while ( isdigit(*s) )
+      s++;
+  }
+
+  tv->tv_usec = fs;
+  return s;
+}
+
+int main(int argc, char *argv[])
+{
+  struct itimerval timeout, old_timer;
+  int have_timeout = 0;
+  int type = F_WRLCK;
+  int block = F_SETLKW;
+  int fd = -1;
+  int opt, ix;
+  int do_close = 0;
+  int err;
+  int status;
+  char *eon;
+  char **cmd_argv = NULL, *sh_c_argv[4];
+  struct flock lock;
+  const char *filename = NULL;
+  struct sigaction sa, old_sa;
+
+  program = argv[0];
+
+  if ( argc < 2 )
+    usage(EX_USAGE);
+
+  memset(&timeout, 0, sizeof timeout);
+
+  optopt = 0;
+  while ( (opt = getopt_long(argc, argv, "+sexnouw:hV?", long_options, &ix)) != EOF ) {
+    switch(opt) {
+    case 's':
+      type = F_RDLCK;
+      break;
+    case 'e':
+    case 'x':
+      type = F_WRLCK;
+      break;
+    case 'u':
+      type = F_UNLCK;
+      break;
+    case 'o':
+      do_close = 1;
+      break;
+    case 'n':
+      block = F_SETLK;
+      break;
+    case 'w':
+      have_timeout = 1;
+      eon = strtotimeval(optarg, &timeout.it_value);
+      if ( *eon )
+	usage(EX_USAGE);
+      break;
+    case 'V':
+      printf("fcntl-lock (%s)\n", PACKAGE_STRING);
+      exit(0);
+    default:
+      /* optopt will be set if this was an unrecognized option, i.e. *not* 'h' or '?' */
+      usage(optopt ? EX_USAGE : 0);
+      break;
+    }
+  }
+
+  if ( argc > optind+1 ) {
+    /* Run command */
+
+    if ( !strcmp(argv[optind+1], "-c") ||
+	 !strcmp(argv[optind+1], "--command") ) {
+
+      if ( argc != optind+3 ) {
+	fprintf(stderr, _("%s: %s requires exactly one command argument\n"),
+		program, argv[optind+1]);
+	exit(EX_USAGE);
+      }
+
+      cmd_argv = sh_c_argv;
+
+      cmd_argv[0] = getenv("SHELL");
+      if ( !cmd_argv[0] || !*cmd_argv[0] )
+	cmd_argv[0] = _PATH_BSHELL;
+
+      cmd_argv[1] = "-c";
+      cmd_argv[2] = argv[optind+2];
+      cmd_argv[3] = 0;
+    } else {
+      cmd_argv = &argv[optind+1];
+    }
+
+    filename = argv[optind];
+    fd = open(filename, O_RDWR|O_NOCTTY|O_CREAT, 0666);
+    /* Linux doesn't like O_CREAT on a directory, even though it should be a
+       no-op */
+    if (fd < 0 && errno == EISDIR)
+        fd = open(filename, O_RDONLY|O_NOCTTY);
+
+    if ( fd < 0 ) {
+      err = errno;
+      fprintf(stderr, _("%s: cannot open lock file %s: %s\n"),
+	      program, argv[optind], strerror(err));
+      exit((err == ENOMEM||err == EMFILE||err == ENFILE) ? EX_OSERR :
+	   (err == EROFS||err == ENOSPC) ? EX_CANTCREAT :
+	   EX_NOINPUT);
+    }
+
+  } else if (optind < argc) {
+    /* Use provided file descriptor */
+
+    fd = (int)strtol(argv[optind], &eon, 10);
+    if ( *eon || !argv[optind] ) {
+      fprintf(stderr, _("%s: bad number: %s\n"), program, argv[optind]);
+      exit(EX_USAGE);
+    }
+
+  } else {
+    /* Bad options */
+
+    fprintf(stderr, _("%s: requires file descriptor, file or directory\n"),
+		program);
+    exit(EX_USAGE);
+  }
+
+
+  if ( have_timeout ) {
+    if ( timeout.it_value.tv_sec == 0 &&
+	 timeout.it_value.tv_usec == 0 ) {
+      /* -w 0 is equivalent to -n; this has to be special-cased
+	 because setting an itimer to zero means disabled! */
+
+      have_timeout = 0;
+      block = F_SETLK;
+    } else {
+      memset(&sa, 0, sizeof sa);
+
+      sa.sa_handler = timeout_handler;
+      sa.sa_flags   = SA_RESETHAND;
+      sigaction(SIGALRM, &sa, &old_sa);
+
+      setitimer(ITIMER_REAL, &timeout, &old_timer);
+    }
+  }
+
+  memset(&lock, 0, sizeof(lock));
+  lock.l_type = type;
+  while ( fcntl(fd, block, &lock) ) {
+    switch( (err = errno) ) {
+    case EAGAIN:		/* -n option set and failed to lock */
+    case EACCES:		/* -n option set and failed to lock */
+      exit(1);
+    case EINTR:			/* Signal received */
+      if ( timeout_expired )
+	exit(1);		/* -w option set and failed to lock */
+      continue;			/* otherwise try again */
+    default:			/* Other errors */
+      if ( filename )
+	fprintf(stderr, "%s: %s: %s\n", program, filename, strerror(err));
+      else
+	fprintf(stderr, "%s: %d: %s\n", program, fd, strerror(err));
+      exit((err == ENOLCK||err == ENOMEM) ? EX_OSERR : EX_DATAERR);
+    }
+  }
+
+  if ( have_timeout ) {
+    setitimer(ITIMER_REAL, &old_timer, NULL); /* Cancel itimer */
+    sigaction(SIGALRM, &old_sa, NULL); /* Cancel signal handler */
+  }
+
+  status = 0;
+
+  if ( cmd_argv ) {
+    pid_t w, f;
+
+    /* Clear any inherited settings */
+    signal(SIGCHLD, SIG_DFL);
+    f = fork();
+
+    if ( f < 0 ) {
+      err = errno;
+      fprintf(stderr, _("%s: fork failed: %s\n"), program, strerror(err));
+      exit(EX_OSERR);
+    } else if ( f == 0 ) {
+      if ( do_close )
+	close(fd);
+      err = errno;
+      execvp(cmd_argv[0], cmd_argv);
+      /* execvp() failed */
+      fprintf(stderr, "%s: %s: %s\n", program, cmd_argv[0], strerror(err));
+      _exit((err == ENOMEM) ? EX_OSERR: EX_UNAVAILABLE);
+    } else {
+      do {
+	w = waitpid(f, &status, 0);
+	if (w == -1 && errno != EINTR)
+	  break;
+      } while ( w != f );
+
+      if (w == -1) {
+	err = errno;
+	status = EXIT_FAILURE;
+	fprintf(stderr, "%s: waitpid failed: %s\n", program, strerror(err));
+      } else if ( WIFEXITED(status) )
+	status = WEXITSTATUS(status);
+      else if ( WIFSIGNALED(status) )
+	status = WTERMSIG(status) + 128;
+      else
+	status = EX_OSERR;	/* WTF? */
+    }
+  }
+
+  return status;
+}
diff --git a/poky/meta/recipes-core/util-linux/util-linux/mit-license.patch b/poky/meta/recipes-core/util-linux/util-linux/mit-license.patch
new file mode 100644
index 0000000..afbec98
--- /dev/null
+++ b/poky/meta/recipes-core/util-linux/util-linux/mit-license.patch
@@ -0,0 +1,45 @@
+From 5b8fab1584017d9d9be008c23b90128bba41a7b5 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 28 Mar 2024 12:16:57 +0000
+Subject: [PATCH] README.licensing/flock: Add MIT license mention
+
+Looking at the license text, flock.c is under the MIT license (see
+https://spdx.org/licenses/MIT).
+
+Add an SPDX license identifier header and add to the list of licenses the
+source so everything is correctly listed/identified.
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2870]
+
+---
+ README.licensing  | 2 ++
+ sys-utils/flock.c | 4 +++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/README.licensing b/README.licensing
+index 4454f8392a..535ad34813 100644
+--- a/README.licensing
++++ b/README.licensing
+@@ -12,6 +12,8 @@ There is code under:
+ 
+    * LGPL-2.1-or-later  - GNU Lesser General Public License 2.1 or any later version
+ 
++   * MIT                - MIT License
++
+    * BSD-2-Clause       - Simplified BSD License
+ 
+    * BSD-3-Clause       - BSD 3-Clause "New" or "Revised" License
+diff --git a/sys-utils/flock.c b/sys-utils/flock.c
+index fed29d7270..7d878ff810 100644
+--- a/sys-utils/flock.c
++++ b/sys-utils/flock.c
+@@ -1,4 +1,6 @@
+-/*   Copyright 2003-2005 H. Peter Anvin - All Rights Reserved
++/*   SPDX-License-Identifier: MIT
++ *
++ *   Copyright 2003-2005 H. Peter Anvin - All Rights Reserved
+  *
+  *   Permission is hereby granted, free of charge, to any person
+  *   obtaining a copy of this software and associated documentation
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb b/poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb
index 3e87dcc..83b3f4e 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb
@@ -147,6 +147,11 @@
 SYSTEMD_SERVICE:${PN}-fstrim = "fstrim.timer fstrim.service"
 SYSTEMD_AUTO_ENABLE:${PN}-fstrim = "disable"
 
+do_compile:append () {
+	cp ${WORKDIR}/fcntl-lock.c ${S}/fcntl-lock.c
+	${CC} ${CFLAGS} ${LDFLAGS} ${S}/fcntl-lock.c -o ${B}/fcntl-lock
+}
+
 do_install () {
 	# with ccache the timestamps on compiled files may
 	# end up earlier than on their inputs, this allows
@@ -182,6 +187,8 @@
 	echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall
 
 	rm -f ${D}${bindir}/chkdupexe
+
+	install -m 0755 ${B}/fcntl-lock ${D}${bindir}
 }
 
 do_install:append:class-target () {
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.42.inc b/poky/meta/recipes-devtools/binutils/binutils-2.42.inc
index 5fcb429..3b6f47d 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.42.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.42.inc
@@ -35,5 +35,6 @@
      file://0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
      file://0013-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
      file://0014-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch \
+     file://0015-gprofng-change-use-of-bignum-to-bigint.patch \
 "
 S  = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0015-gprofng-change-use-of-bignum-to-bigint.patch b/poky/meta/recipes-devtools/binutils/binutils/0015-gprofng-change-use-of-bignum-to-bigint.patch
new file mode 100644
index 0000000..0d3d289
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0015-gprofng-change-use-of-bignum-to-bigint.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3243d790ee32aa8eda69226d81b1e79dbd1dcd87]
+
+Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
+
+diff --git a/gprofng/gp-display-html/gp-display-html.in b/gprofng/gp-display-html/gp-display-html.in
+index 6f37ca282e7..306c99a0ec3 100644
+--- a/gprofng/gp-display-html/gp-display-html.in
++++ b/gprofng/gp-display-html/gp-display-html.in
+@@ -25,7 +25,7 @@ use warnings;
+ # Disable before release
+ # use Perl::Critic;
+ 
+-use bignum;
++use bigint;
+ use List::Util qw (max);
+ use Cwd qw (abs_path cwd);
+ use File::Basename;
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch
new file mode 100644
index 0000000..6bffe9a
--- /dev/null
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-lock.py-fix-Exception-handling.patch
@@ -0,0 +1,62 @@
+From 3881757eabfde2ff54400ab127b106ab085d83f0 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 13 Mar 2024 11:22:05 +0800
+Subject: [PATCH] lock.py: fix Exception handling
+
+Before, when logdir is not writable, _try_lock will raise an Exception
+like "Permission denied: '/var/log/log_lock.pid'", and in this case,
+_unlock_thread will not be called and the variable count will not be
+handled, it maybe cause log_lock.pid not be deleted in case like [1].
+
+For [1], it is an cross compile case, when dnf install some packages to
+rootfs, seems like some threads don't do chroot like work, some threads
+do chroot like work. so for the threads don't do chroot, "Permission denied"
+Exception happend, for the threads that do chroot, log_lock.pid will be
+created under installroot/var/log/log_lock.pid, since variable count not
+handled correct before, log_lock.pid may not be deleted correctly.
+
+So fixed like this, if _try_lock raise Exception, _unlock_thread first,
+then raise the Exception.
+
+[1] https://github.com/rpm-software-management/dnf/issues/1963
+
+Upstream-Status: Submitted [ https://github.com/rpm-software-management/dnf/pull/2065 ]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ dnf/lock.py | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/dnf/lock.py b/dnf/lock.py
+index 6817aac9..5718062a 100644
+--- a/dnf/lock.py
++++ b/dnf/lock.py
+@@ -128,7 +128,11 @@ class ProcessLock(object):
+         self._lock_thread()
+         prev_pid = -1
+         my_pid = os.getpid()
+-        pid = self._try_lock(my_pid)
++        try:
++            pid = self._try_lock(my_pid)
++        except Exception:
++            self._unlock_thread()
++            raise
+         while pid != my_pid:
+             if pid != -1:
+                 if not self.blocking:
+@@ -140,7 +144,11 @@ class ProcessLock(object):
+                     logger.info(msg)
+                     prev_pid = pid
+             time.sleep(1)
+-            pid = self._try_lock(my_pid)
++            try:
++                pid = self._try_lock(my_pid)
++            except Exception:
++                self._unlock_thread()
++                raise
+ 
+     def __exit__(self, *exc_args):
+         if self.count == 1:
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb b/poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb
index 784d7a9..184dbea 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.19.0.bb
@@ -15,6 +15,7 @@
            file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            file://0030-Run-python-scripts-using-env.patch \
            file://0001-set-python-path-for-completion_helper.patch \
+           file://0001-lock.py-fix-Exception-handling.patch \
            "
 
 SRC_URI:append:class-native = "file://0001-dnf-write-the-log-lock-to-root.patch"
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb
index b3b2476..c4d8724 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.191.bb
@@ -21,6 +21,8 @@
            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-debuginfod-Remove-unused-variable.patch \
+           file://0001-srcfiles-fix-unused-variable-BUFFER_SIZE.patch \
            "
 SRC_URI:append:libc-musl = " \
            file://0003-musl-utils.patch \
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-Remove-unused-variable.patch b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-Remove-unused-variable.patch
new file mode 100644
index 0000000..81f49db
--- /dev/null
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-debuginfod-Remove-unused-variable.patch
@@ -0,0 +1,34 @@
+From c3502140e51886bffc6ae5cd256308e40e0cbb78 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Mar 2024 15:52:32 -0800
+Subject: [PATCH] debuginfod: Remove unused variable
+
+Recent commit acd9525e9 has removed all references to max_fds
+therefore remove it, moreover clang18 is happier
+
+| ../../elfutils-0.191/debuginfod/debuginfod.cxx:1448:8: error: private field 'max_fds' is not used [-Werror,-Wunused-private-field]
+|  1448 |   long max_fds;
+|       |        ^
+| 1 error generated.
+
+Upstream-Status: Submitted [https://sourceware.org/pipermail/elfutils-devel/2024q1/006900.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ debuginfod/debuginfod.cxx | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
+index 560880f2..72617848 100644
+--- a/debuginfod/debuginfod.cxx
++++ b/debuginfod/debuginfod.cxx
+@@ -1445,7 +1445,6 @@ private:
+ 
+   map<key,fdcache_entry> entries; // optimized for lookup
+   time_t last_cleaning;
+-  long max_fds;
+   long max_mbs;
+ 
+ public:
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-srcfiles-fix-unused-variable-BUFFER_SIZE.patch b/poky/meta/recipes-devtools/elfutils/files/0001-srcfiles-fix-unused-variable-BUFFER_SIZE.patch
new file mode 100644
index 0000000..b303232
--- /dev/null
+++ b/poky/meta/recipes-devtools/elfutils/files/0001-srcfiles-fix-unused-variable-BUFFER_SIZE.patch
@@ -0,0 +1,36 @@
+From db51a55a8e3811d19265bf12d2ff715c6cf558b4 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <jose.quaresma@foundries.io>
+Date: Tue, 19 Mar 2024 10:17:59 +0000
+Subject: [PATCH] srcfiles: fix unused variable BUFFER_SIZE
+
+The const variable BUFFER_SIZE is used only on the zip_files
+function witch is only available with LIBARCHIVE.
+
+| ../../elfutils-0.191/src/srcfiles.cxx:81:18: error: unused variable 'BUFFER_SIZE' [-Werror,-Wunused-const-variable]
+|    81 | constexpr size_t BUFFER_SIZE = 8192;
+|       |                  ^~~~~~~~~~~
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commitdiff;h=ef8a4b841aaf26326b8961a651dbe915d54d23e7]
+
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
+---
+ src/srcfiles.cxx | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/srcfiles.cxx b/src/srcfiles.cxx
+index 892737cc..09d50f8d 100644
+--- a/src/srcfiles.cxx
++++ b/src/srcfiles.cxx
+@@ -78,7 +78,9 @@ ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
+ /* Bug report address.  */
+ ARGP_PROGRAM_BUG_ADDRESS_DEF = PACKAGE_BUGREPORT;
+ 
++#ifdef HAVE_LIBARCHIVE
+ constexpr size_t BUFFER_SIZE = 8192;
++#endif
+ 
+ /* Definitions of arguments for argp functions.  */
+ static const struct argp_option options[] =
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
index 1ac88d6..f7d4ef1 100644
--- a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
+++ b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -68,6 +68,7 @@
 	sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
 	    -e 's|${DEBUG_PREFIX_MAP}||g' \
 	    -e 's:${HOSTTOOLS_DIR}/::g' \
+	    -e 's:\(^LDFLAGS_FOR_BUILD =\).*:\1:g' \
 	    -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
 	    -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \-e 's/^Makefile:/_Makefile:/' \
 	    -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \
diff --git a/poky/meta/recipes-devtools/gcc/gcc-13.2.inc b/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
index 32fddd1..603377a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
@@ -67,6 +67,7 @@
            file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \
            file://CVE-2023-4039.patch \
            file://0026-aarch64-Fix-loose-ldpstp-check-PR111411.patch \
+           file://0027-Fix-gcc-vect-module-testcases.patch \
 "
 SRC_URI[sha256sum] = "e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch b/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
index c405d8d..e4d57c2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
@@ -80,8 +80,8 @@
 +        # Demote run tests to $do-what-limit if set
 +	switch $do_what {
 +	    run {
-+    	        set do_what $do-what-limit
-+  		set dg-do-what $do-what-limit
++    	        set do_what ${do-what-limit}
++  		set dg-do-what ${do-what-limit}
 +	    }
 +        }
 +    }
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0027-Fix-gcc-vect-module-testcases.patch b/poky/meta/recipes-devtools/gcc/gcc/0027-Fix-gcc-vect-module-testcases.patch
new file mode 100644
index 0000000..4b89036
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0027-Fix-gcc-vect-module-testcases.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=948dbc5ee45f9ffd5f41fd6782704081cc7c8c27]
+
+Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
+
+diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
+index ed63ff59cc0..009c849b7e7 100644
+--- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
++++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-10.c
+@@ -1,3 +1,5 @@
++/* Since this uses dg-additional-sources, need to specify `dg-do run` instead of the default. */
++/* { dg-do run } */
+ /* { dg-require-effective-target vect_simd_clones } */
+ /* { dg-additional-options "-fopenmp-simd" } */
+ /* { dg-additional-options "-mavx" { target avx_runtime } } */
+diff --git a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
+index c44471e35bc..4699a3f3c80 100644
+--- a/gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
++++ b/gcc/testsuite/gcc.dg/vect/vect-simd-clone-12.c
+@@ -1,3 +1,5 @@
++/* Since this uses dg-additional-sources, need to specify `dg-do run` instead of the default. */
++/* { dg-do run } */
+ /* { dg-require-effective-target vect_simd_clones } */
+ /* { dg-additional-options "-fopenmp-simd" } */
+ /* { dg-additional-options "-mavx" { target avx_runtime } } */
+--
+2.43.0
diff --git a/poky/meta/recipes-devtools/git/git_2.44.0.bb b/poky/meta/recipes-devtools/git/git_2.44.0.bb
index e6d1470..90e555e 100644
--- a/poky/meta/recipes-devtools/git/git_2.44.0.bb
+++ b/poky/meta/recipes-devtools/git/git_2.44.0.bb
@@ -4,6 +4,7 @@
 SECTION = "console/utils"
 LICENSE = "GPL-2.0-only & GPL-2.0-or-later & BSD-3-Clause & MIT & BSL-1.0 & LGPL-2.1-or-later"
 DEPENDS = "openssl zlib"
+DEPENDS:class-native += "ca-certificates"
 
 PROVIDES:append:class-native = " git-replacement-native"
 
@@ -95,6 +96,7 @@
 
 REL_GIT_EXEC_PATH = "${@os.path.relpath(libexecdir, bindir)}/git-core"
 REL_GIT_TEMPLATE_DIR = "${@os.path.relpath(datadir, bindir)}/git-core/templates"
+REL_GIT_SSL_CAINFO = "${@os.path.relpath(sysconfdir, bindir)}/ssl/certs/ca-certificates.crt"
 
 do_install:append:class-target () {
 	perl_native_fixup
@@ -103,6 +105,7 @@
 do_install:append:class-native() {
 	create_wrapper ${D}${bindir}/git \
 		GIT_EXEC_PATH='`dirname $''realpath`'/${REL_GIT_EXEC_PATH} \
+		GIT_SSL_CAINFO='`dirname $''realpath`'/${REL_GIT_SSL_CAINFO} \
 		GIT_TEMPLATE_DIR='`dirname $''realpath`'/${REL_GIT_TEMPLATE_DIR}
 }
 
diff --git a/poky/meta/recipes-devtools/go/go-1.22.0.inc b/poky/meta/recipes-devtools/go/go-1.22.2.inc
similarity index 82%
rename from poky/meta/recipes-devtools/go/go-1.22.0.inc
rename to poky/meta/recipes-devtools/go/go-1.22.2.inc
index 5b94051..b399207 100644
--- a/poky/meta/recipes-devtools/go/go-1.22.0.inc
+++ b/poky/meta/recipes-devtools/go/go-1.22.2.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-filter-out-build-specific-paths-from-linker-.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] = "4d196c3d41a0d6c1dfc64d04e3cc1f608b0c436bd87b7060ce3e23234e1f4d5c"
+SRC_URI[main.sha256sum] = "374ea82b289ec738e968267cac59c7d5ff180f9492250254784b2044e90df5a9"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.22.0.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.22.2.bb
similarity index 78%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.22.2.bb
index acd2018..0f00509 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.22.0.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.22.2.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] = "f6c8a87aa03b92c4b0bf3d558e28ea03006eb29db78917daec5cfb6ec1046265"
-SRC_URI[go_linux_arm64.sha256sum] = "6a63fef0e050146f275bf02a0896badfe77c11b6f05499bb647e7bd613a45a10"
-SRC_URI[go_linux_ppc64le.sha256sum] = "0e57f421df9449066f00155ce98a5be93744b3d81b00ee4c2c9b511be2a31d93"
+SRC_URI[go_linux_amd64.sha256sum] = "5901c52b7a78002aeff14a21f93e0f064f74ce1360fce51c6ee68cd471216a17"
+SRC_URI[go_linux_arm64.sha256sum] = "36e720b2d564980c162a48c7e97da2e407dfcc4239e1e58d98082dfa2486a0c1"
+SRC_URI[go_linux_ppc64le.sha256sum] = "251a8886c5113be6490bdbb955ddee98763b49c9b1bf4c8364c02d3b482dab00"
 
 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_1.22.0.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.22.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.22.2.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.22.0.bb b/poky/meta/recipes-devtools/go/go-cross_1.22.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.22.2.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.22.0.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.22.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.22.2.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.22.0.bb b/poky/meta/recipes-devtools/go/go-native_1.22.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go-native_1.22.2.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.22.0.bb b/poky/meta/recipes-devtools/go/go-runtime_1.22.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.22.2.bb
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
deleted file mode 100644
index 35f3a98..0000000
--- a/poky/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-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
-
-The flags can contain build-specific paths, breaking reproducibility.
-
-To make this acceptable to upstream, we probably need to trim the flags,
-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 544df461a2..75df5a4aa8 100644
---- a/src/cmd/go/internal/work/exec.go
-+++ b/src/cmd/go/internal/work/exec.go
-@@ -1374,7 +1374,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
- 	}
- 
- 	// Toolchain-dependent configuration, shared with b.linkSharedActionID.
--	b.printLinkerConfig(h, p)
-+	//b.printLinkerConfig(h, p)
- 
- 	// Input files.
- 	for _, a1 := range a.Deps {
-@@ -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.
--	b.printLinkerConfig(h, nil)
-+	//b.printLinkerConfig(h, nil)
- 
- 	// Input files.
- 	for _, a1 := range a.Deps {
--- 
-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/0007-exec.go-filter-out-build-specific-paths-from-linker-.patch
similarity index 100%
rename from poky/meta/recipes-devtools/go/go/0001-exec.go-filter-out-build-specific-paths-from-linker-.patch
rename to poky/meta/recipes-devtools/go/go/0007-exec.go-filter-out-build-specific-paths-from-linker-.patch
diff --git a/poky/meta/recipes-devtools/go/go_1.22.0.bb b/poky/meta/recipes-devtools/go/go_1.22.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.22.0.bb
rename to poky/meta/recipes-devtools/go/go_1.22.2.bb
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index 111fb07..e1d5fc4 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -17,14 +17,14 @@
 # could be 'rcX' or 'git' or empty ( for release )
 VER_SUFFIX = ""
 
-PV = "18.1.0${VER_SUFFIX}"
+PV = "18.1.2${VER_SUFFIX}"
 
 MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}"
 
 LLVM_RELEASE = "${PV}"
 
 BRANCH = "release/${MAJOR_VERSION}.x"
-SRCREV = "461274b81d8641eab64d494accddc81d7db8a09e"
+SRCREV = "26a1d6601d727a96f4301d0d8647b5a42760ae0c"
 SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \
            file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
            file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
diff --git a/poky/meta/recipes-devtools/meson/meson_1.3.1.bb b/poky/meta/recipes-devtools/meson/meson_1.3.1.bb
index 3a4bb14..9cc0cc3 100644
--- a/poky/meta/recipes-devtools/meson/meson_1.3.1.bb
+++ b/poky/meta/recipes-devtools/meson/meson_1.3.1.bb
@@ -16,6 +16,7 @@
            file://0002-Support-building-allarch-recipes-again.patch \
            "
 SRC_URI[sha256sum] = "6020568bdede1643d4fb41e28215be38eff5d52da28ac7d125457c59e0032ad7"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)$"
 
 inherit python_setuptools_build_meta github-releases
 
diff --git a/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb b/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
deleted file mode 100644
index e54bb11..0000000
--- a/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Error - Error/exception handling in an OO-ish way"
-DESCRIPTION = "The Error package provides two interfaces. Firstly \
-Error provides a procedural interface to exception handling. \
-Secondly Error is a base class for errors/exceptions that can \
-either be thrown, for subsequent catch, or can simply be recorded."
-HOMEPAGE = "https://github.com/shlomif/perl-error.pm"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8f3499d09ee74a050c0319391ff9d100"
-
-
-DEPENDS += "perl"
-
-RDEPENDS:${PN} += " \
-    perl-module-carp \
-    perl-module-exporter \
-    perl-module-scalar-util \
-    perl-module-overload \
-    perl-module-strict \
-    perl-module-vars \
-    perl-module-warnings \
-"
-
-RDEPENDS:${PN}-ptest += " \
-    perl-module-base \
-    perl-module-file-spec \
-    perl-module-io-handle \
-    perl-module-ipc-open3 \
-    perl-module-lib \
-    perl-module-test-more \
-"
-
-SRC_URI = "http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "6732b1c6207e4a9a3e2987c88368039a"
-SRC_URI[sha256sum] = "1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc"
-
-S = "${WORKDIR}/Error-${PV}"
-
-inherit cpan ptest-perl
-
-do_install:prepend() {
-	# test requires "-T" (taint) command line option
-	rm -rf ${B}/t/pod-coverage.t
-}
-
-BBCLASSEXTEND = "native"
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
index bffd59a..eb63509 100644
--- 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
@@ -9,10 +9,8 @@
 
 inherit pypi python_hatchling
 
+PYPI_PACKAGE = "jsonschema_specifications"
+
 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-poetry-core_1.9.0.bb b/poky/meta/recipes-devtools/python/python3-poetry-core_1.9.0.bb
index dfb29c4..540fdff 100644
--- a/poky/meta/recipes-devtools/python/python3-poetry-core_1.9.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-poetry-core_1.9.0.bb
@@ -18,8 +18,8 @@
 SRC_URI[sha256sum] = "fa7a4001eae8aa572ee84f35feb510b321bd652e5cf9293249d62853e1f935a2"
 
 inherit python_poetry_core pypi
-PYPI_ARCHIVE_NAME = "poetry_core-${PV}.${PYPI_PACKAGE_EXT}"
-S = "${WORKDIR}/poetry_core-${PV}"
+
+PYPI_PACKAGE = "poetry_core"
 
 RDEPENDS:${PN}:append:class-target = "\
     python3-compression \
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
index 01fb3d4..cece2cb 100644
--- 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
@@ -10,8 +10,6 @@
 
 inherit pypi cargo-update-recipe-crates python_maturin
 
-S = "${WORKDIR}/rpds_py-${PV}"
-
-PYPI_ARCHIVE_NAME = "rpds_py-${PV}.${PYPI_PACKAGE_EXT}"
+PYPI_PACKAGE = "rpds_py"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.8.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.8.bb
index 6ea7c51..67dd299 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.8.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.8.bb
@@ -5,9 +5,8 @@
 
 SRC_URI[sha256sum] = "c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619"
 
-inherit pypi python_flit_core
+PYPI_PACKAGE = "sphinxcontrib_applehelp"
 
-PYPI_ARCHIVE_NAME = "sphinxcontrib_applehelp-${PV}.${PYPI_PACKAGE_EXT}"
-S = "${WORKDIR}/sphinxcontrib_applehelp-${PV}"
+inherit pypi python_flit_core
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb
index dd7ba3d..31f77a0 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.6.bb
@@ -5,11 +5,8 @@
 
 SRC_URI[sha256sum] = "9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3"
 
-PYPI_PACKAGE = "sphinxcontrib-devhelp"
+PYPI_PACKAGE = "sphinxcontrib_devhelp"
 
 inherit pypi python_flit_core
 
-PYPI_ARCHIVE_NAME = "sphinxcontrib_devhelp-${PV}.${PYPI_PACKAGE_EXT}"
-S = "${WORKDIR}/sphinxcontrib_devhelp-${PV}"
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb
index 532d1fc..e30c61c 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.5.bb
@@ -5,11 +5,8 @@
 
 SRC_URI[sha256sum] = "0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015"
 
-PYPI_PACKAGE = "sphinxcontrib-htmlhelp"
+PYPI_PACKAGE = "sphinxcontrib_htmlhelp"
 
 inherit pypi python_flit_core
 
-PYPI_ARCHIVE_NAME = "sphinxcontrib_htmlhelp-${PV}.${PYPI_PACKAGE_EXT}"
-S = "${WORKDIR}/sphinxcontrib_htmlhelp-${PV}"
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.7.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.7.bb
index b24f7f8..2225ec5 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.7.bb
@@ -5,11 +5,8 @@
 
 SRC_URI[sha256sum] = "053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6"
 
-PYPI_PACKAGE = "sphinxcontrib-qthelp"
+PYPI_PACKAGE = "sphinxcontrib_qthelp"
 
 inherit pypi python_flit_core
 
-PYPI_ARCHIVE_NAME = "sphinxcontrib_qthelp-${PV}.${PYPI_PACKAGE_EXT}"
-S = "${WORKDIR}/sphinxcontrib_qthelp-${PV}"
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb
index b13bc82..49be520 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.10.bb
@@ -5,11 +5,8 @@
 
 SRC_URI[sha256sum] = "93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f"
 
-PYPI_PACKAGE = "sphinxcontrib-serializinghtml"
+PYPI_PACKAGE = "sphinxcontrib_serializinghtml"
 
 inherit pypi python_flit_core
 
-PYPI_ARCHIVE_NAME = "sphinxcontrib_serializinghtml-${PV}.${PYPI_PACKAGE_EXT}"
-S = "${WORKDIR}/sphinxcontrib_serializinghtml-${PV}"
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/poky/meta/recipes-devtools/python/python3/python3-manifest.json
index a51392c..46092d4 100644
--- a/poky/meta/recipes-devtools/python/python3/python3-manifest.json
+++ b/poky/meta/recipes-devtools/python/python3/python3-manifest.json
@@ -201,8 +201,7 @@
     "compression": {
         "summary": "Python high-level compression support",
         "rdepends": [
-            "core",
-            "shell"
+            "core"
         ],
         "files": [
             "${libdir}/python${PYTHON_MAJMIN}/gzip.py",
@@ -525,7 +524,6 @@
         "rdepends": [
             "core",
             "pprint",
-            "profile",
             "shell",
             "stringold"
         ],
@@ -577,7 +575,6 @@
             "debugger",
             "difflib",
             "pprint",
-            "profile",
             "shell",
             "stringold",
             "unittest"
@@ -997,8 +994,7 @@
     "pprint": {
         "summary": "Python pretty-print support",
         "rdepends": [
-            "core",
-            "profile"
+            "core"
         ],
         "files": [
             "${libdir}/python${PYTHON_MAJMIN}/pprint.py"
@@ -1189,7 +1185,6 @@
             "netclient",
             "numbers",
             "pprint",
-            "profile",
             "stringold"
         ],
         "files": [
diff --git a/poky/meta/recipes-devtools/python/python3_3.12.2.bb b/poky/meta/recipes-devtools/python/python3_3.12.2.bb
index 61991cd..f837f05 100644
--- a/poky/meta/recipes-devtools/python/python3_3.12.2.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.12.2.bb
@@ -41,7 +41,6 @@
 
 # exclude pre-releases for both python 2.x and 3.x
 UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
-UPSTREAM_CHECK_URI = "https://www.python.org/downloads/source/"
 
 CVE_PRODUCT = "python cpython"
 
diff --git a/poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts b/poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
index 95dccb9..1f3e692 100755
--- a/poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
+++ b/poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
@@ -81,11 +81,18 @@
 if $pm_installed; then
 	case $pm in
 		"ipk")
-			eval opkg configure $append_log
+			if ! `fcntl-lock --wait 30 /run/opkg.lock true`; then
+				eval echo "Unable to obtain the opkg lock, deadlock?" $append_log
+			fi
+			if ! eval "opkg configure $append_log"; then
+			    exit 1
+			fi
 			;;
 
 		"deb")
-			eval dpkg --configure -a $append_log
+			if ! eval "eval dpkg --configure -a $append_log"; then
+			    exit 1
+			fi
 			;;
 	esac
 else
diff --git a/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb b/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
index 72ba8c0..e977942 100644
--- a/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
+++ b/poky/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
@@ -12,6 +12,8 @@
 
 inherit allarch systemd update-rc.d
 
+RDEPENDS:${PN} = "util-linux-fcntl-lock"
+
 INITSCRIPT_NAME = "run-postinsts"
 INITSCRIPT_PARAMS = "start 99 S ."
 
diff --git a/poky/meta/recipes-devtools/rust/cargo-c-crates.inc b/poky/meta/recipes-devtools/rust/cargo-c-crates.inc
index fc546c7..f6da3e6 100644
--- a/poky/meta/recipes-devtools/rust/cargo-c-crates.inc
+++ b/poky/meta/recipes-devtools/rust/cargo-c-crates.inc
@@ -1,453 +1,654 @@
+# Autogenerated with 'bitbake -c update_crates cargo-c-native'
+
+# from Cargo.lock
 SRC_URI += " \
     crate://crates.io/adler/1.0.2 \
-    crate://crates.io/aho-corasick/1.0.3 \
-    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.2 \
-    crate://crates.io/anyhow/1.0.72 \
-    crate://crates.io/arrayvec/0.5.2 \
-    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/ahash/0.8.7 \
+    crate://crates.io/aho-corasick/1.1.2 \
+    crate://crates.io/allocator-api2/0.2.16 \
+    crate://crates.io/anstream/0.6.11 \
+    crate://crates.io/anstyle/1.0.6 \
+    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.79 \
+    crate://crates.io/arc-swap/1.6.0 \
     crate://crates.io/autocfg/1.1.0 \
     crate://crates.io/base16ct/0.2.0 \
-    crate://crates.io/base64/0.13.1 \
+    crate://crates.io/base64/0.21.7 \
     crate://crates.io/base64ct/1.6.0 \
     crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/bitflags/2.3.3 \
+    crate://crates.io/bitflags/2.4.2 \
     crate://crates.io/bitmaps/2.1.0 \
     crate://crates.io/block-buffer/0.10.4 \
-    crate://crates.io/bstr/1.6.0 \
-    crate://crates.io/bumpalo/3.13.0 \
-    crate://crates.io/bytes/1.4.0 \
-    crate://crates.io/bytesize/1.2.0 \
-    crate://crates.io/cargo/0.69.1 \
-    crate://crates.io/cargo-platform/0.1.3 \
-    crate://crates.io/cargo-util/0.2.4 \
-    crate://crates.io/cbindgen/0.24.5 \
-    crate://crates.io/cc/1.0.82 \
+    crate://crates.io/bstr/1.9.0 \
+    crate://crates.io/btoi/0.4.3 \
+    crate://crates.io/bumpalo/3.14.0 \
+    crate://crates.io/bytes/1.5.0 \
+    crate://crates.io/bytesize/1.3.0 \
+    crate://crates.io/cargo/0.77.0 \
+    crate://crates.io/cargo-credential/0.4.2 \
+    crate://crates.io/cargo-credential-libsecret/0.4.2 \
+    crate://crates.io/cargo-credential-macos-keychain/0.4.2 \
+    crate://crates.io/cargo-credential-wincred/0.4.2 \
+    crate://crates.io/cargo-platform/0.1.7 \
+    crate://crates.io/cargo-util/0.2.9 \
+    crate://crates.io/cbindgen/0.26.0 \
+    crate://crates.io/cc/1.0.83 \
     crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/clap/3.2.25 \
-    crate://crates.io/clap/4.3.21 \
-    crate://crates.io/clap_builder/4.3.21 \
-    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.5.0 \
+    crate://crates.io/clap_builder/4.5.0 \
+    crate://crates.io/clap_derive/4.5.0 \
+    crate://crates.io/clap_lex/0.7.0 \
+    crate://crates.io/clru/0.6.1 \
+    crate://crates.io/color-print/0.3.5 \
+    crate://crates.io/color-print-proc-macro/0.3.5 \
     crate://crates.io/colorchoice/1.0.0 \
-    crate://crates.io/combine/4.6.6 \
-    crate://crates.io/const-oid/0.9.5 \
-    crate://crates.io/core-foundation/0.9.3 \
-    crate://crates.io/core-foundation-sys/0.8.4 \
-    crate://crates.io/cpufeatures/0.2.9 \
-    crate://crates.io/crates-io/0.35.1 \
+    crate://crates.io/const-oid/0.9.6 \
+    crate://crates.io/core-foundation/0.9.4 \
+    crate://crates.io/core-foundation-sys/0.8.6 \
+    crate://crates.io/cpufeatures/0.2.12 \
+    crate://crates.io/crates-io/0.39.2 \
     crate://crates.io/crc32fast/1.3.2 \
-    crate://crates.io/crypto-bigint/0.5.2 \
+    crate://crates.io/crossbeam-channel/0.5.11 \
+    crate://crates.io/crossbeam-deque/0.8.5 \
+    crate://crates.io/crossbeam-epoch/0.9.18 \
+    crate://crates.io/crossbeam-utils/0.8.19 \
+    crate://crates.io/crypto-bigint/0.5.5 \
     crate://crates.io/crypto-common/0.1.6 \
     crate://crates.io/ct-codecs/1.1.1 \
-    crate://crates.io/curl/0.4.44 \
-    crate://crates.io/curl-sys/0.4.65+curl-8.2.1 \
+    crate://crates.io/curl/0.4.45 \
+    crate://crates.io/curl-sys/0.4.72+curl-8.6.0 \
     crate://crates.io/der/0.7.8 \
-    crate://crates.io/deranged/0.3.7 \
+    crate://crates.io/deranged/0.3.11 \
     crate://crates.io/digest/0.10.7 \
-    crate://crates.io/ecdsa/0.16.8 \
-    crate://crates.io/ed25519-compact/2.0.4 \
+    crate://crates.io/dunce/1.0.4 \
+    crate://crates.io/ecdsa/0.16.9 \
+    crate://crates.io/ed25519-compact/2.1.1 \
     crate://crates.io/either/1.9.0 \
-    crate://crates.io/elliptic-curve/0.13.5 \
-    crate://crates.io/env_logger/0.10.0 \
+    crate://crates.io/elliptic-curve/0.13.8 \
+    crate://crates.io/encoding_rs/0.8.33 \
     crate://crates.io/equivalent/1.0.1 \
-    crate://crates.io/errno/0.3.2 \
-    crate://crates.io/errno-dragonfly/0.1.2 \
-    crate://crates.io/fastrand/2.0.0 \
+    crate://crates.io/erased-serde/0.4.2 \
+    crate://crates.io/errno/0.3.8 \
+    crate://crates.io/fallible-iterator/0.3.0 \
+    crate://crates.io/fallible-streaming-iterator/0.1.9 \
+    crate://crates.io/faster-hex/0.9.0 \
+    crate://crates.io/fastrand/2.0.1 \
     crate://crates.io/ff/0.13.0 \
-    crate://crates.io/fiat-crypto/0.1.20 \
-    crate://crates.io/filetime/0.2.22 \
-    crate://crates.io/flate2/1.0.26 \
-    crate://crates.io/fnv/1.0.7 \
+    crate://crates.io/fiat-crypto/0.2.6 \
+    crate://crates.io/filetime/0.2.23 \
+    crate://crates.io/flate2/1.0.28 \
     crate://crates.io/foreign-types/0.3.2 \
     crate://crates.io/foreign-types-shared/0.1.1 \
-    crate://crates.io/form_urlencoded/1.2.0 \
-    crate://crates.io/fwdansi/1.1.0 \
+    crate://crates.io/form_urlencoded/1.2.1 \
     crate://crates.io/generic-array/0.14.7 \
-    crate://crates.io/getrandom/0.2.10 \
-    crate://crates.io/git2/0.16.0 \
-    crate://crates.io/git2-curl/0.17.0 \
+    crate://crates.io/getrandom/0.2.12 \
+    crate://crates.io/git2/0.18.2 \
+    crate://crates.io/git2-curl/0.19.0 \
+    crate://crates.io/gix/0.56.0 \
+    crate://crates.io/gix-actor/0.28.1 \
+    crate://crates.io/gix-attributes/0.20.1 \
+    crate://crates.io/gix-bitmap/0.2.10 \
+    crate://crates.io/gix-chunk/0.4.7 \
+    crate://crates.io/gix-command/0.3.4 \
+    crate://crates.io/gix-commitgraph/0.22.1 \
+    crate://crates.io/gix-config/0.32.1 \
+    crate://crates.io/gix-config-value/0.14.4 \
+    crate://crates.io/gix-credentials/0.22.0 \
+    crate://crates.io/gix-date/0.8.3 \
+    crate://crates.io/gix-diff/0.38.0 \
+    crate://crates.io/gix-discover/0.27.0 \
+    crate://crates.io/gix-features/0.35.0 \
+    crate://crates.io/gix-features/0.36.1 \
+    crate://crates.io/gix-filter/0.7.0 \
+    crate://crates.io/gix-fs/0.8.1 \
+    crate://crates.io/gix-glob/0.14.1 \
+    crate://crates.io/gix-hash/0.13.3 \
+    crate://crates.io/gix-hashtable/0.4.1 \
+    crate://crates.io/gix-ignore/0.9.1 \
+    crate://crates.io/gix-index/0.27.1 \
+    crate://crates.io/gix-lock/11.0.1 \
+    crate://crates.io/gix-macros/0.1.3 \
+    crate://crates.io/gix-negotiate/0.10.0 \
+    crate://crates.io/gix-object/0.39.0 \
+    crate://crates.io/gix-odb/0.55.0 \
+    crate://crates.io/gix-pack/0.45.0 \
+    crate://crates.io/gix-packetline/0.17.3 \
+    crate://crates.io/gix-packetline-blocking/0.17.3 \
+    crate://crates.io/gix-path/0.10.5 \
+    crate://crates.io/gix-pathspec/0.4.1 \
+    crate://crates.io/gix-prompt/0.8.2 \
+    crate://crates.io/gix-protocol/0.42.0 \
+    crate://crates.io/gix-quote/0.4.10 \
+    crate://crates.io/gix-ref/0.39.1 \
+    crate://crates.io/gix-refspec/0.20.0 \
+    crate://crates.io/gix-revision/0.24.0 \
+    crate://crates.io/gix-revwalk/0.10.0 \
+    crate://crates.io/gix-sec/0.10.4 \
+    crate://crates.io/gix-submodule/0.6.0 \
+    crate://crates.io/gix-tempfile/11.0.1 \
+    crate://crates.io/gix-trace/0.1.7 \
+    crate://crates.io/gix-transport/0.39.0 \
+    crate://crates.io/gix-traverse/0.35.0 \
+    crate://crates.io/gix-url/0.25.2 \
+    crate://crates.io/gix-utils/0.1.9 \
+    crate://crates.io/gix-validate/0.8.3 \
+    crate://crates.io/gix-worktree/0.28.0 \
     crate://crates.io/glob/0.3.1 \
-    crate://crates.io/globset/0.4.13 \
+    crate://crates.io/globset/0.4.14 \
     crate://crates.io/group/0.13.0 \
     crate://crates.io/hashbrown/0.12.3 \
-    crate://crates.io/hashbrown/0.14.0 \
+    crate://crates.io/hashbrown/0.14.3 \
+    crate://crates.io/hashlink/0.8.4 \
     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/hermit-abi/0.3.5 \
     crate://crates.io/hex/0.4.3 \
-    crate://crates.io/hkdf/0.12.3 \
+    crate://crates.io/hkdf/0.12.4 \
     crate://crates.io/hmac/0.12.1 \
-    crate://crates.io/home/0.5.5 \
-    crate://crates.io/http-auth/0.1.8 \
+    crate://crates.io/home/0.5.9 \
+    crate://crates.io/http-auth/0.1.9 \
     crate://crates.io/humantime/2.1.0 \
-    crate://crates.io/idna/0.4.0 \
-    crate://crates.io/ignore/0.4.20 \
+    crate://crates.io/idna/0.5.0 \
+    crate://crates.io/ignore/0.4.22 \
     crate://crates.io/im-rc/15.1.0 \
     crate://crates.io/indexmap/1.9.3 \
-    crate://crates.io/indexmap/2.0.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/jobserver/0.1.26 \
-    crate://crates.io/js-sys/0.3.64 \
+    crate://crates.io/indexmap/2.2.2 \
+    crate://crates.io/is-terminal/0.4.11 \
+    crate://crates.io/itertools/0.12.1 \
+    crate://crates.io/itoa/1.0.10 \
+    crate://crates.io/jobserver/0.1.28 \
+    crate://crates.io/js-sys/0.3.68 \
     crate://crates.io/kstring/2.0.0 \
     crate://crates.io/lazy_static/1.4.0 \
     crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.147 \
-    crate://crates.io/libgit2-sys/0.14.1+1.5.0 \
-    crate://crates.io/libnghttp2-sys/0.1.8+1.55.1 \
-    crate://crates.io/libssh2-sys/0.2.23 \
-    crate://crates.io/libz-sys/1.1.12 \
-    crate://crates.io/linux-raw-sys/0.4.5 \
-    crate://crates.io/log/0.4.19 \
-    crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/miniz_oxide/0.7.1 \
-    crate://crates.io/miow/0.5.0 \
-    crate://crates.io/num-traits/0.2.16 \
-    crate://crates.io/once_cell/1.18.0 \
-    crate://crates.io/opener/0.5.2 \
-    crate://crates.io/openssl/0.10.56 \
+    crate://crates.io/libc/0.2.153 \
+    crate://crates.io/libgit2-sys/0.16.2+1.7.2 \
+    crate://crates.io/libloading/0.8.1 \
+    crate://crates.io/libnghttp2-sys/0.1.9+1.58.0 \
+    crate://crates.io/libsqlite3-sys/0.27.0 \
+    crate://crates.io/libssh2-sys/0.3.0 \
+    crate://crates.io/libz-sys/1.1.15 \
+    crate://crates.io/linux-raw-sys/0.4.13 \
+    crate://crates.io/lock_api/0.4.11 \
+    crate://crates.io/log/0.4.20 \
+    crate://crates.io/matchers/0.1.0 \
+    crate://crates.io/maybe-async/0.2.9 \
+    crate://crates.io/memchr/2.7.1 \
+    crate://crates.io/memmap2/0.9.4 \
+    crate://crates.io/minimal-lexical/0.2.1 \
+    crate://crates.io/miniz_oxide/0.7.2 \
+    crate://crates.io/miow/0.6.0 \
+    crate://crates.io/nom/7.1.3 \
+    crate://crates.io/normpath/1.1.1 \
+    crate://crates.io/nu-ansi-term/0.46.0 \
+    crate://crates.io/num-conv/0.1.0 \
+    crate://crates.io/num-traits/0.2.18 \
+    crate://crates.io/num_threads/0.1.6 \
+    crate://crates.io/once_cell/1.19.0 \
+    crate://crates.io/opener/0.6.1 \
+    crate://crates.io/openssl/0.10.63 \
     crate://crates.io/openssl-macros/0.1.1 \
     crate://crates.io/openssl-probe/0.1.5 \
-    crate://crates.io/openssl-src/111.27.0+1.1.1v \
-    crate://crates.io/openssl-sys/0.9.91 \
-    crate://crates.io/ordered-float/2.10.0 \
-    crate://crates.io/orion/0.17.5 \
+    crate://crates.io/openssl-src/300.2.2+3.2.1 \
+    crate://crates.io/openssl-sys/0.9.99 \
+    crate://crates.io/ordered-float/2.10.1 \
+    crate://crates.io/orion/0.17.6 \
     crate://crates.io/os_info/3.7.0 \
-    crate://crates.io/os_str_bytes/6.5.1 \
+    crate://crates.io/overload/0.1.1 \
     crate://crates.io/p384/0.13.0 \
-    crate://crates.io/pasetors/0.6.7 \
+    crate://crates.io/parking_lot/0.12.1 \
+    crate://crates.io/parking_lot_core/0.9.9 \
+    crate://crates.io/pasetors/0.6.8 \
     crate://crates.io/pathdiff/0.2.1 \
     crate://crates.io/pem-rfc7468/0.7.0 \
-    crate://crates.io/percent-encoding/2.3.0 \
+    crate://crates.io/percent-encoding/2.3.1 \
+    crate://crates.io/pin-project-lite/0.2.13 \
     crate://crates.io/pkcs8/0.10.2 \
-    crate://crates.io/pkg-config/0.3.27 \
-    crate://crates.io/primeorder/0.13.2 \
-    crate://crates.io/proc-macro2/1.0.66 \
-    crate://crates.io/quote/1.0.32 \
+    crate://crates.io/pkg-config/0.3.29 \
+    crate://crates.io/powerfmt/0.2.0 \
+    crate://crates.io/ppv-lite86/0.2.17 \
+    crate://crates.io/primeorder/0.13.6 \
+    crate://crates.io/proc-macro2/1.0.78 \
+    crate://crates.io/prodash/26.2.2 \
+    crate://crates.io/pulldown-cmark/0.9.6 \
+    crate://crates.io/quote/1.0.35 \
+    crate://crates.io/rand/0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1 \
     crate://crates.io/rand_core/0.6.4 \
     crate://crates.io/rand_xoshiro/0.6.0 \
-    crate://crates.io/redox_syscall/0.3.5 \
-    crate://crates.io/regex/1.9.3 \
-    crate://crates.io/regex-automata/0.3.6 \
-    crate://crates.io/regex-syntax/0.7.4 \
+    crate://crates.io/redox_syscall/0.4.1 \
+    crate://crates.io/regex/1.10.3 \
+    crate://crates.io/regex-automata/0.1.10 \
+    crate://crates.io/regex-automata/0.4.5 \
+    crate://crates.io/regex-syntax/0.6.29 \
+    crate://crates.io/regex-syntax/0.8.2 \
     crate://crates.io/rfc6979/0.4.0 \
-    crate://crates.io/rustc-workspace-hack/1.0.0 \
-    crate://crates.io/rustfix/0.6.1 \
-    crate://crates.io/rustix/0.38.8 \
-    crate://crates.io/ryu/1.0.15 \
+    crate://crates.io/rusqlite/0.30.0 \
+    crate://crates.io/rustfix/0.7.0 \
+    crate://crates.io/rustix/0.38.31 \
+    crate://crates.io/ryu/1.0.16 \
     crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/schannel/0.1.22 \
+    crate://crates.io/schannel/0.1.23 \
+    crate://crates.io/scopeguard/1.2.0 \
     crate://crates.io/sec1/0.7.3 \
-    crate://crates.io/semver/1.0.18 \
-    crate://crates.io/serde/1.0.183 \
+    crate://crates.io/security-framework/2.9.2 \
+    crate://crates.io/security-framework-sys/2.9.1 \
+    crate://crates.io/semver/1.0.21 \
+    crate://crates.io/serde/1.0.196 \
+    crate://crates.io/serde-untagged/0.1.5 \
     crate://crates.io/serde-value/0.7.0 \
-    crate://crates.io/serde_derive/1.0.183 \
-    crate://crates.io/serde_ignored/0.1.9 \
-    crate://crates.io/serde_json/1.0.104 \
-    crate://crates.io/serde_spanned/0.6.3 \
-    crate://crates.io/sha1/0.10.5 \
-    crate://crates.io/sha2/0.10.7 \
+    crate://crates.io/serde_derive/1.0.196 \
+    crate://crates.io/serde_ignored/0.1.10 \
+    crate://crates.io/serde_json/1.0.113 \
+    crate://crates.io/serde_spanned/0.6.5 \
+    crate://crates.io/sha1/0.10.6 \
+    crate://crates.io/sha1_smol/1.0.0 \
+    crate://crates.io/sha2/0.10.8 \
+    crate://crates.io/sharded-slab/0.1.7 \
     crate://crates.io/shell-escape/0.1.5 \
-    crate://crates.io/signature/2.1.0 \
+    crate://crates.io/shell-words/1.1.0 \
+    crate://crates.io/signature/2.2.0 \
     crate://crates.io/sized-chunks/0.6.5 \
-    crate://crates.io/socket2/0.4.9 \
-    crate://crates.io/spki/0.7.2 \
+    crate://crates.io/smallvec/1.13.1 \
+    crate://crates.io/socket2/0.5.5 \
+    crate://crates.io/spki/0.7.3 \
     crate://crates.io/static_assertions/1.1.0 \
-    crate://crates.io/strip-ansi-escapes/0.1.1 \
-    crate://crates.io/strsim/0.10.0 \
+    crate://crates.io/strsim/0.11.0 \
     crate://crates.io/subtle/2.5.0 \
+    crate://crates.io/supports-hyperlinks/2.1.0 \
     crate://crates.io/syn/1.0.109 \
-    crate://crates.io/syn/2.0.28 \
+    crate://crates.io/syn/2.0.48 \
     crate://crates.io/tar/0.4.40 \
-    crate://crates.io/tempfile/3.7.1 \
-    crate://crates.io/termcolor/1.2.0 \
-    crate://crates.io/textwrap/0.16.0 \
+    crate://crates.io/tempfile/3.10.0 \
+    crate://crates.io/terminal_size/0.3.0 \
+    crate://crates.io/thiserror/1.0.56 \
+    crate://crates.io/thiserror-impl/1.0.56 \
     crate://crates.io/thread_local/1.1.7 \
-    crate://crates.io/time/0.3.25 \
-    crate://crates.io/time-core/0.1.1 \
-    crate://crates.io/time-macros/0.2.11 \
+    crate://crates.io/time/0.3.34 \
+    crate://crates.io/time-core/0.1.2 \
+    crate://crates.io/time-macros/0.2.17 \
     crate://crates.io/tinyvec/1.6.0 \
     crate://crates.io/tinyvec_macros/0.1.1 \
     crate://crates.io/toml/0.5.11 \
-    crate://crates.io/toml/0.7.6 \
-    crate://crates.io/toml_datetime/0.5.1 \
-    crate://crates.io/toml_datetime/0.6.3 \
-    crate://crates.io/toml_edit/0.15.0 \
-    crate://crates.io/toml_edit/0.19.14 \
-    crate://crates.io/typenum/1.16.0 \
-    crate://crates.io/unicode-bidi/0.3.13 \
-    crate://crates.io/unicode-ident/1.0.11 \
+    crate://crates.io/toml/0.8.10 \
+    crate://crates.io/toml_datetime/0.6.5 \
+    crate://crates.io/toml_edit/0.21.1 \
+    crate://crates.io/toml_edit/0.22.4 \
+    crate://crates.io/tracing/0.1.40 \
+    crate://crates.io/tracing-attributes/0.1.27 \
+    crate://crates.io/tracing-core/0.1.32 \
+    crate://crates.io/tracing-log/0.2.0 \
+    crate://crates.io/tracing-subscriber/0.3.18 \
+    crate://crates.io/typenum/1.17.0 \
+    crate://crates.io/unicase/2.7.0 \
+    crate://crates.io/unicode-bidi/0.3.15 \
+    crate://crates.io/unicode-bom/2.0.3 \
+    crate://crates.io/unicode-ident/1.0.12 \
     crate://crates.io/unicode-normalization/0.1.22 \
-    crate://crates.io/unicode-width/0.1.10 \
+    crate://crates.io/unicode-width/0.1.11 \
     crate://crates.io/unicode-xid/0.2.4 \
-    crate://crates.io/url/2.4.0 \
+    crate://crates.io/url/2.5.0 \
     crate://crates.io/utf8parse/0.2.1 \
+    crate://crates.io/valuable/0.1.0 \
     crate://crates.io/vcpkg/0.2.15 \
     crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/vte/0.10.1 \
-    crate://crates.io/vte_generate_state_changes/0.1.1 \
-    crate://crates.io/walkdir/2.3.3 \
+    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/wasm-bindgen/0.2.91 \
+    crate://crates.io/wasm-bindgen-backend/0.2.91 \
+    crate://crates.io/wasm-bindgen-macro/0.2.91 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.91 \
+    crate://crates.io/wasm-bindgen-shared/0.2.91 \
     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-sys/0.42.0 \
-    crate://crates.io/windows-sys/0.45.0 \
     crate://crates.io/windows-sys/0.48.0 \
-    crate://crates.io/windows-targets/0.42.2 \
-    crate://crates.io/windows-targets/0.48.1 \
-    crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
-    crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
-    crate://crates.io/windows_aarch64_msvc/0.42.2 \
-    crate://crates.io/windows_aarch64_msvc/0.48.0 \
-    crate://crates.io/windows_i686_gnu/0.42.2 \
-    crate://crates.io/windows_i686_gnu/0.48.0 \
-    crate://crates.io/windows_i686_msvc/0.42.2 \
-    crate://crates.io/windows_i686_msvc/0.48.0 \
-    crate://crates.io/windows_x86_64_gnu/0.42.2 \
-    crate://crates.io/windows_x86_64_gnu/0.48.0 \
-    crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
-    crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
-    crate://crates.io/windows_x86_64_msvc/0.42.2 \
-    crate://crates.io/windows_x86_64_msvc/0.48.0 \
-    crate://crates.io/winnow/0.5.7 \
-    crate://crates.io/zeroize/1.6.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.39 \
+    crate://crates.io/zerocopy/0.7.32 \
+    crate://crates.io/zerocopy-derive/0.7.32 \
+    crate://crates.io/zeroize/1.7.0 \
 "
 
 SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[aho-corasick-1.0.3.sha256sum] = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
-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.2.sha256sum] = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
-SRC_URI[anyhow-1.0.72.sha256sum] = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
-SRC_URI[arrayvec-0.5.2.sha256sum] = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[ahash-0.8.7.sha256sum] = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+SRC_URI[anstream-0.6.11.sha256sum] = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+SRC_URI[anstyle-1.0.6.sha256sum] = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+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.79.sha256sum] = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 SRC_URI[base16ct-0.2.0.sha256sum] = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
-SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 SRC_URI[base64ct-1.6.0.sha256sum] = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 SRC_URI[bitmaps-2.1.0.sha256sum] = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
 SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-SRC_URI[bstr-1.6.0.sha256sum] = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
-SRC_URI[bumpalo-3.13.0.sha256sum] = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-SRC_URI[bytes-1.4.0.sha256sum] = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
-SRC_URI[bytesize-1.2.0.sha256sum] = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5"
-SRC_URI[cargo-0.69.1.sha256sum] = "2ecf1ab9246253733b30352b5194b4c3a7038a1c7729e1a18b3ba00e479c4d54"
-SRC_URI[cargo-platform-0.1.3.sha256sum] = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479"
-SRC_URI[cargo-util-0.2.4.sha256sum] = "a5e2320a2b1242f9181a3347ae0884bb497e1853d299da99780fa1e96f9abe23"
-SRC_URI[cbindgen-0.24.5.sha256sum] = "4b922faaf31122819ec80c4047cc684c6979a087366c069611e33649bf98e18d"
-SRC_URI[cc-1.0.82.sha256sum] = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+SRC_URI[bstr-1.9.0.sha256sum] = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+SRC_URI[btoi-0.4.3.sha256sum] = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
+SRC_URI[bumpalo-3.14.0.sha256sum] = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
+SRC_URI[cargo-0.77.0.sha256sum] = "4a399e5bde59d144aa2c7ba643765e2f8c6c3c601daa2da03202caf66f2552b3"
+SRC_URI[cargo-credential-0.4.2.sha256sum] = "ec27ad011c37339b865c765fa28096cd63d5b25fab680c04d9e410cb586c327d"
+SRC_URI[cargo-credential-libsecret-0.4.2.sha256sum] = "26b0ff7a44dd0af0fcd8d09bb1a6d7f7652847cba10aad017a6ea0a25ba7f00f"
+SRC_URI[cargo-credential-macos-keychain-0.4.2.sha256sum] = "4b7cf89a47dc2c20ae3a7c94335e151be32c20f85cc2790defdb1f5dac818de5"
+SRC_URI[cargo-credential-wincred-0.4.2.sha256sum] = "341df45dc893bdffa36e2f7cbe3da90b38c5c74e7f4c0088ac801fd055b6df5b"
+SRC_URI[cargo-platform-0.1.7.sha256sum] = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
+SRC_URI[cargo-util-0.2.9.sha256sum] = "74862c3c6e53a1c1f8f0178f9d38ab41e49746cd3a7cafc239b3d0248fd4e342"
+SRC_URI[cbindgen-0.26.0.sha256sum] = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49"
+SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[clap-3.2.25.sha256sum] = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
-SRC_URI[clap-4.3.21.sha256sum] = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
-SRC_URI[clap_builder-4.3.21.sha256sum] = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
-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.5.0.sha256sum] = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
+SRC_URI[clap_builder-4.5.0.sha256sum] = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
+SRC_URI[clap_derive-4.5.0.sha256sum] = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
+SRC_URI[clap_lex-0.7.0.sha256sum] = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+SRC_URI[clru-0.6.1.sha256sum] = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807"
+SRC_URI[color-print-0.3.5.sha256sum] = "7a858372ff14bab9b1b30ea504f2a4bc534582aee3e42ba2d41d2a7baba63d5d"
+SRC_URI[color-print-proc-macro-0.3.5.sha256sum] = "57e37866456a721d0a404439a1adae37a31be4e0055590d053dfe6981e05003f"
 SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-SRC_URI[combine-4.6.6.sha256sum] = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
-SRC_URI[const-oid-0.9.5.sha256sum] = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
-SRC_URI[core-foundation-0.9.3.sha256sum] = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-SRC_URI[cpufeatures-0.2.9.sha256sum] = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
-SRC_URI[crates-io-0.35.1.sha256sum] = "e2dfb6077da60207264ab2eb0e3734f02e0a0c50c347b32c728e42c6fbbf7e2e"
+SRC_URI[const-oid-0.9.6.sha256sum] = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+SRC_URI[core-foundation-0.9.4.sha256sum] = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+SRC_URI[cpufeatures-0.2.12.sha256sum] = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+SRC_URI[crates-io-0.39.2.sha256sum] = "6622f902c3c338eced1f000091f034846ae36aadaf35d0acd1ab0469a2d8ef1f"
 SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-SRC_URI[crypto-bigint-0.5.2.sha256sum] = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
+SRC_URI[crossbeam-channel-0.5.11.sha256sum] = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
+SRC_URI[crossbeam-deque-0.8.5.sha256sum] = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+SRC_URI[crossbeam-utils-0.8.19.sha256sum] = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+SRC_URI[crypto-bigint-0.5.5.sha256sum] = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
 SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 SRC_URI[ct-codecs-1.1.1.sha256sum] = "f3b7eb4404b8195a9abb6356f4ac07d8ba267045c8d6d220ac4dc992e6cc75df"
-SRC_URI[curl-0.4.44.sha256sum] = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
-SRC_URI[curl-sys-0.4.65+curl-8.2.1.sha256sum] = "961ba061c9ef2fe34bbd12b807152d96f0badd2bebe7b90ce6c8c8b7572a0986"
+SRC_URI[curl-0.4.45.sha256sum] = "f8e5123ab8c31200ce725939049ecd4a090b242608f24048131dedf9dd195aed"
+SRC_URI[curl-sys-0.4.72+curl-8.6.0.sha256sum] = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
 SRC_URI[der-0.7.8.sha256sum] = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
-SRC_URI[deranged-0.3.7.sha256sum] = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
+SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-SRC_URI[ecdsa-0.16.8.sha256sum] = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4"
-SRC_URI[ed25519-compact-2.0.4.sha256sum] = "6a3d382e8464107391c8706b4c14b087808ecb909f6c15c34114bc42e53a9e4c"
+SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+SRC_URI[ecdsa-0.16.9.sha256sum] = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
+SRC_URI[ed25519-compact-2.1.1.sha256sum] = "e9b3460f44bea8cd47f45a0c70892f1eff856d97cd55358b2f73f663789f6190"
 SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-SRC_URI[elliptic-curve-0.13.5.sha256sum] = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
-SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[elliptic-curve-0.13.8.sha256sum] = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
+SRC_URI[encoding_rs-0.8.33.sha256sum] = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-SRC_URI[errno-0.3.2.sha256sum] = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
-SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-SRC_URI[fastrand-2.0.0.sha256sum] = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+SRC_URI[erased-serde-0.4.2.sha256sum] = "55d05712b2d8d88102bc9868020c9e5c7a1f5527c452b9b97450a1d006140ba7"
+SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+SRC_URI[fallible-iterator-0.3.0.sha256sum] = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
+SRC_URI[fallible-streaming-iterator-0.1.9.sha256sum] = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+SRC_URI[faster-hex-0.9.0.sha256sum] = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
+SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 SRC_URI[ff-0.13.0.sha256sum] = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
-SRC_URI[fiat-crypto-0.1.20.sha256sum] = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
-SRC_URI[filetime-0.2.22.sha256sum] = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
-SRC_URI[flate2-1.0.26.sha256sum] = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
-SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+SRC_URI[fiat-crypto-0.2.6.sha256sum] = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
+SRC_URI[filetime-0.2.23.sha256sum] = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-SRC_URI[form_urlencoded-1.2.0.sha256sum] = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
-SRC_URI[fwdansi-1.1.0.sha256sum] = "08c1f5787fe85505d1f7777268db5103d80a7a374d2316a7ce262e57baf8f208"
+SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
-SRC_URI[git2-0.16.0.sha256sum] = "be36bc9e0546df253c0cc41fd0af34f5e92845ad8509462ec76672fac6997f5b"
-SRC_URI[git2-curl-0.17.0.sha256sum] = "7577f4e6341ba7c90d883511130a45b956c274ba5f4d205d9f9da990f654cd33"
+SRC_URI[getrandom-0.2.12.sha256sum] = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+SRC_URI[git2-0.18.2.sha256sum] = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
+SRC_URI[git2-curl-0.19.0.sha256sum] = "78e26b61608c573ffd26fc79061a823aa5147449a1afe1f61679a21e2031f7c3"
+SRC_URI[gix-0.56.0.sha256sum] = "5b0dcdc9c60d66535897fa40a7ea2a635e72f99456b1d9ae86b7e170e80618cb"
+SRC_URI[gix-actor-0.28.1.sha256sum] = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417"
+SRC_URI[gix-attributes-0.20.1.sha256sum] = "0f395469d38c76ec47cd1a6c5a53fbc3f13f737b96eaf7535f4e6b367e643381"
+SRC_URI[gix-bitmap-0.2.10.sha256sum] = "78b6cd0f246180034ddafac9b00a112f19178135b21eb031b3f79355891f7325"
+SRC_URI[gix-chunk-0.4.7.sha256sum] = "003ec6deacf68076a0c157271a127e0bb2c031c1a41f7168cbe5d248d9b85c78"
+SRC_URI[gix-command-0.3.4.sha256sum] = "c82b5e9494e61983e61049bbd15fe0fa6b70672dd236362bdb5b2b50fc428f10"
+SRC_URI[gix-commitgraph-0.22.1.sha256sum] = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36"
+SRC_URI[gix-config-0.32.1.sha256sum] = "0341471d55d8676e98b88e121d7065dfa4c9c5acea4b6d6ecdd2846e85cce0c3"
+SRC_URI[gix-config-value-0.14.4.sha256sum] = "5b8a1e7bfb37a46ed0b8468db37a6d8a0a61d56bdbe4603ae492cb322e5f3958"
+SRC_URI[gix-credentials-0.22.0.sha256sum] = "513dac42450b27946bd0a0535a3a5a88e473d6522e5e3439a129cab779c88f3d"
+SRC_URI[gix-date-0.8.3.sha256sum] = "fb7f3dfb72bebe3449b5e642be64e3c6ccbe9821c8b8f19f487cf5bfbbf4067e"
+SRC_URI[gix-diff-0.38.0.sha256sum] = "8119a985887cfe68f4bdf92e51bd64bc758a73882d82fcfc03ebcb164441c85d"
+SRC_URI[gix-discover-0.27.0.sha256sum] = "6fad89416ebe0b3b7df78464124e2a02417b6cd3743d48ad93df86f4d2929c07"
+SRC_URI[gix-features-0.35.0.sha256sum] = "9b9ff423ae4983f762659040d13dd7a5defbd54b6a04ac3cc7347741cec828cd"
+SRC_URI[gix-features-0.36.1.sha256sum] = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2"
+SRC_URI[gix-filter-0.7.0.sha256sum] = "6d6a5c9d8e55c364e7c226919c19c9a28be1392d6208b5008059fa94ff7e2bf0"
+SRC_URI[gix-fs-0.8.1.sha256sum] = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107"
+SRC_URI[gix-glob-0.14.1.sha256sum] = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
+SRC_URI[gix-hash-0.13.3.sha256sum] = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0"
+SRC_URI[gix-hashtable-0.4.1.sha256sum] = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca"
+SRC_URI[gix-ignore-0.9.1.sha256sum] = "a215cc8cf21645bca131fcf6329d3ebd46299c47dbbe27df71bb1ca9e328b879"
+SRC_URI[gix-index-0.27.1.sha256sum] = "f3f308f5cd2992e96a274b0d1931e9a0e44fdcba87695ead3f6df30d8a697e9c"
+SRC_URI[gix-lock-11.0.1.sha256sum] = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37"
+SRC_URI[gix-macros-0.1.3.sha256sum] = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb"
+SRC_URI[gix-negotiate-0.10.0.sha256sum] = "979f6accd9c051b3dd018b50adf29c0a2459edddf6105cc70b767976cd6f8014"
+SRC_URI[gix-object-0.39.0.sha256sum] = "febf79c5825720c1c63fe974c7bbe695d0cb54aabad73f45671c60ce0e501e33"
+SRC_URI[gix-odb-0.55.0.sha256sum] = "1fae5f971540c99c6ecc8d4368ecc9d18a9dc8b9391025c68c4399747dc93bac"
+SRC_URI[gix-pack-0.45.0.sha256sum] = "4569491c92446fddf373456ff360aff9a9effd627b40a70f2d7914dcd75a3205"
+SRC_URI[gix-packetline-0.17.3.sha256sum] = "09ff45eef7747bde4986429a3e813478d50c2688b8f239e57bd3aa81065b285f"
+SRC_URI[gix-packetline-blocking-0.17.3.sha256sum] = "ca8ef6dd3ea50e26f3bf572e90c034d033c804d340cd1eb386392f184a9ba2f7"
+SRC_URI[gix-path-0.10.5.sha256sum] = "97e9ad649bf5e109562d6acba657ca428661ec08e77eaf3a755d8fa55485be9c"
+SRC_URI[gix-pathspec-0.4.1.sha256sum] = "1dbbb92f75a38ef043c8bb830b339b38d0698d7f3746968b5fcbade7a880494d"
+SRC_URI[gix-prompt-0.8.2.sha256sum] = "02bd89d058258e53e0fd6c57f13ee16c5673a83066a68e11f88626fc8cfda5f6"
+SRC_URI[gix-protocol-0.42.0.sha256sum] = "95736ef407db0bd15a5bdea791fbfcf523b9f13b96c852c240cd86a9ee0ef817"
+SRC_URI[gix-quote-0.4.10.sha256sum] = "9f7dc10303d73a960d10fb82f81188b036ac3e6b11b5795b20b1a60b51d1321f"
+SRC_URI[gix-ref-0.39.1.sha256sum] = "3b2069adc212cf7f3317ef55f6444abd06c50f28479dbbac5a86acf3b05cbbfe"
+SRC_URI[gix-refspec-0.20.0.sha256sum] = "76d9d3b82e1ee78fc0dc1c37ea5ea76c2dbc73f407db155f0dfcea285e583bee"
+SRC_URI[gix-revision-0.24.0.sha256sum] = "fe5dd51710ce5434bc315ea30394fab483c5377276494edd79222b321a5a9544"
+SRC_URI[gix-revwalk-0.10.0.sha256sum] = "69d4ed2493ca94a475fdf147138e1ef8bab3b6ebb56abf3d9bda1c05372ec1dd"
+SRC_URI[gix-sec-0.10.4.sha256sum] = "f8d9bf462feaf05f2121cba7399dbc6c34d88a9cad58fc1e95027791d6a3c6d2"
+SRC_URI[gix-submodule-0.6.0.sha256sum] = "02a3d7f60a95bdcaeb8981663c99d1c9f4de42aab1169524c949e948989809f9"
+SRC_URI[gix-tempfile-11.0.1.sha256sum] = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23"
+SRC_URI[gix-trace-0.1.7.sha256sum] = "02b202d766a7fefc596e2cc6a89cda8ad8ad733aed82da635ac120691112a9b1"
+SRC_URI[gix-transport-0.39.0.sha256sum] = "f731cfefc4d62468c6dd2053f5c6707828256a6d2f5488c1811e3f42c178b144"
+SRC_URI[gix-traverse-0.35.0.sha256sum] = "df2112088122a0206592c84fbd42020db63b2ccaed66a0293779f2e5fbf80474"
+SRC_URI[gix-url-0.25.2.sha256sum] = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005"
+SRC_URI[gix-utils-0.1.9.sha256sum] = "56e839f3d0798b296411263da6bee780a176ef8008a5dfc31287f7eda9266ab8"
+SRC_URI[gix-validate-0.8.3.sha256sum] = "ac7cc36f496bd5d96cdca0f9289bb684480725d40db60f48194aa7723b883854"
+SRC_URI[gix-worktree-0.28.0.sha256sum] = "7f1d0ae01dee14abe8c8117d78d7518f9a507de2dc4522546fbf4c444e9860b4"
 SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-SRC_URI[globset-0.4.13.sha256sum] = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
+SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 SRC_URI[group-0.13.0.sha256sum] = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
 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[hashlink-0.8.4.sha256sum] = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 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[hermit-abi-0.3.5.sha256sum] = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
 SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-SRC_URI[hkdf-0.12.3.sha256sum] = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+SRC_URI[hkdf-0.12.4.sha256sum] = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
 SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-SRC_URI[home-0.5.5.sha256sum] = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
-SRC_URI[http-auth-0.1.8.sha256sum] = "5430cacd7a1f9a02fbeb350dfc81a0e5ed42d81f3398cb0ba184017f85bdcfbc"
+SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+SRC_URI[http-auth-0.1.9.sha256sum] = "643c9bbf6a4ea8a656d6b4cd53d34f79e3f841ad5203c1a55fb7d761923bc255"
 SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-SRC_URI[idna-0.4.0.sha256sum] = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-SRC_URI[ignore-0.4.20.sha256sum] = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
+SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+SRC_URI[ignore-0.4.22.sha256sum] = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
 SRC_URI[im-rc-15.1.0.sha256sum] = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
 SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
-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[jobserver-0.1.26.sha256sum] = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
-SRC_URI[js-sys-0.3.64.sha256sum] = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+SRC_URI[indexmap-2.2.2.sha256sum] = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
+SRC_URI[is-terminal-0.4.11.sha256sum] = "fe8f25ce1159c7740ff0b9b2f5cdf4a8428742ba7c112b9f20f22cd5219c7dab"
+SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+SRC_URI[itoa-1.0.10.sha256sum] = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+SRC_URI[jobserver-0.1.28.sha256sum] = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+SRC_URI[js-sys-0.3.68.sha256sum] = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 SRC_URI[kstring-2.0.0.sha256sum] = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747"
 SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
-SRC_URI[libgit2-sys-0.14.1+1.5.0.sha256sum] = "4a07fb2692bc3593bda59de45a502bb3071659f2c515e28c71e728306b038e17"
-SRC_URI[libnghttp2-sys-0.1.8+1.55.1.sha256sum] = "4fae956c192dadcdb5dace96db71fa0b827333cce7c7b38dc71446f024d8a340"
-SRC_URI[libssh2-sys-0.2.23.sha256sum] = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca"
-SRC_URI[libz-sys-1.1.12.sha256sum] = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
-SRC_URI[linux-raw-sys-0.4.5.sha256sum] = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
-SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
-SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-SRC_URI[miow-0.5.0.sha256sum] = "52ffbca2f655e33c08be35d87278e5b18b89550a37dbd598c20db92f6a471123"
-SRC_URI[num-traits-0.2.16.sha256sum] = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
-SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-SRC_URI[opener-0.5.2.sha256sum] = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005"
-SRC_URI[openssl-0.10.56.sha256sum] = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
+SRC_URI[libc-0.2.153.sha256sum] = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+SRC_URI[libgit2-sys-0.16.2+1.7.2.sha256sum] = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
+SRC_URI[libloading-0.8.1.sha256sum] = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+SRC_URI[libnghttp2-sys-0.1.9+1.58.0.sha256sum] = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64"
+SRC_URI[libsqlite3-sys-0.27.0.sha256sum] = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
+SRC_URI[libssh2-sys-0.3.0.sha256sum] = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
+SRC_URI[libz-sys-1.1.15.sha256sum] = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+SRC_URI[linux-raw-sys-0.4.13.sha256sum] = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+SRC_URI[maybe-async-0.2.9.sha256sum] = "afc95a651c82daf7004c824405aa1019723644950d488571bd718e3ed84646ed"
+SRC_URI[memchr-2.7.1.sha256sum] = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+SRC_URI[memmap2-0.9.4.sha256sum] = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.7.2.sha256sum] = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+SRC_URI[miow-0.6.0.sha256sum] = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[normpath-1.1.1.sha256sum] = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5"
+SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+SRC_URI[num-traits-0.2.18.sha256sum] = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+SRC_URI[opener-0.6.1.sha256sum] = "6c62dcb6174f9cb326eac248f07e955d5d559c272730b6c03e396b443b562788"
+SRC_URI[openssl-0.10.63.sha256sum] = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-SRC_URI[openssl-src-111.27.0+1.1.1v.sha256sum] = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02"
-SRC_URI[openssl-sys-0.9.91.sha256sum] = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
-SRC_URI[ordered-float-2.10.0.sha256sum] = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
-SRC_URI[orion-0.17.5.sha256sum] = "b11468cc6afd61a126fe3f91cc4cc8a0dbe7917d0a4b5e8357ba91cc47444462"
+SRC_URI[openssl-src-300.2.2+3.2.1.sha256sum] = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc"
+SRC_URI[openssl-sys-0.9.99.sha256sum] = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+SRC_URI[ordered-float-2.10.1.sha256sum] = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
+SRC_URI[orion-0.17.6.sha256sum] = "7abdb10181903c8c4b016ba45d6d6d5af1a1e2a461aa4763a83b87f5df4695e5"
 SRC_URI[os_info-3.7.0.sha256sum] = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
-SRC_URI[os_str_bytes-6.5.1.sha256sum] = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 SRC_URI[p384-0.13.0.sha256sum] = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
-SRC_URI[pasetors-0.6.7.sha256sum] = "ba765699a309908d55950919a3445e9491453e89b2587b1b2abe4143a48894c0"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+SRC_URI[pasetors-0.6.8.sha256sum] = "6b36d47c66f2230dd1b7143d9afb2b4891879020210eddf2ccb624e529b96dba"
 SRC_URI[pathdiff-0.2.1.sha256sum] = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
 SRC_URI[pem-rfc7468-0.7.0.sha256sum] = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
-SRC_URI[percent-encoding-2.3.0.sha256sum] = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 SRC_URI[pkcs8-0.10.2.sha256sum] = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
-SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-SRC_URI[primeorder-0.13.2.sha256sum] = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
-SRC_URI[proc-macro2-1.0.66.sha256sum] = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-SRC_URI[quote-1.0.32.sha256sum] = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+SRC_URI[pkg-config-0.3.29.sha256sum] = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[primeorder-0.13.6.sha256sum] = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
+SRC_URI[proc-macro2-1.0.78.sha256sum] = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+SRC_URI[prodash-26.2.2.sha256sum] = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
+SRC_URI[pulldown-cmark-0.9.6.sha256sum] = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b"
+SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 SRC_URI[rand_xoshiro-0.6.0.sha256sum] = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
-SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-SRC_URI[regex-1.9.3.sha256sum] = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
-SRC_URI[regex-automata-0.3.6.sha256sum] = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
-SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+SRC_URI[regex-1.10.3.sha256sum] = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+SRC_URI[regex-automata-0.4.5.sha256sum] = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 SRC_URI[rfc6979-0.4.0.sha256sum] = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
-SRC_URI[rustc-workspace-hack-1.0.0.sha256sum] = "fc71d2faa173b74b232dedc235e3ee1696581bb132fc116fa3626d6151a1a8fb"
-SRC_URI[rustfix-0.6.1.sha256sum] = "ecd2853d9e26988467753bd9912c3a126f642d05d229a4b53f5752ee36c56481"
-SRC_URI[rustix-0.38.8.sha256sum] = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
-SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+SRC_URI[rusqlite-0.30.0.sha256sum] = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
+SRC_URI[rustfix-0.7.0.sha256sum] = "7ec10cbeb92a2e494ef354d66126882da8c0a244ad769e2a7193efc5de625175"
+SRC_URI[rustix-0.38.31.sha256sum] = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+SRC_URI[ryu-1.0.16.sha256sum] = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-SRC_URI[schannel-0.1.22.sha256sum] = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+SRC_URI[schannel-0.1.23.sha256sum] = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 SRC_URI[sec1-0.7.3.sha256sum] = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
-SRC_URI[semver-1.0.18.sha256sum] = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-SRC_URI[serde-1.0.183.sha256sum] = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
+SRC_URI[security-framework-2.9.2.sha256sum] = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+SRC_URI[security-framework-sys-2.9.1.sha256sum] = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+SRC_URI[semver-1.0.21.sha256sum] = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+SRC_URI[serde-1.0.196.sha256sum] = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+SRC_URI[serde-untagged-0.1.5.sha256sum] = "6a160535368dfc353348e7eaa299156bd508c60c45a9249725f5f6d370d82a66"
 SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
-SRC_URI[serde_derive-1.0.183.sha256sum] = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
-SRC_URI[serde_ignored-0.1.9.sha256sum] = "80c31d5c53fd39f208e770f5a20a0bb214dee2a8d0d8adba18e19ad95a482ca5"
-SRC_URI[serde_json-1.0.104.sha256sum] = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
-SRC_URI[serde_spanned-0.6.3.sha256sum] = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
-SRC_URI[sha1-0.10.5.sha256sum] = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+SRC_URI[serde_derive-1.0.196.sha256sum] = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+SRC_URI[serde_ignored-0.1.10.sha256sum] = "a8e319a36d1b52126a0d608f24e93b2d81297091818cd70625fcf50a15d84ddf"
+SRC_URI[serde_json-1.0.113.sha256sum] = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+SRC_URI[serde_spanned-0.6.5.sha256sum] = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 SRC_URI[shell-escape-0.1.5.sha256sum] = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
-SRC_URI[signature-2.1.0.sha256sum] = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
+SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+SRC_URI[signature-2.2.0.sha256sum] = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
 SRC_URI[sized-chunks-0.6.5.sha256sum] = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
-SRC_URI[socket2-0.4.9.sha256sum] = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-SRC_URI[spki-0.7.2.sha256sum] = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+SRC_URI[smallvec-1.13.1.sha256sum] = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+SRC_URI[socket2-0.5.5.sha256sum] = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+SRC_URI[spki-0.7.3.sha256sum] = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-SRC_URI[strip-ansi-escapes-0.1.1.sha256sum] = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8"
-SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[strsim-0.11.0.sha256sum] = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+SRC_URI[supports-hyperlinks-2.1.0.sha256sum] = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d"
 SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-SRC_URI[syn-2.0.28.sha256sum] = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+SRC_URI[syn-2.0.48.sha256sum] = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 SRC_URI[tar-0.4.40.sha256sum] = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
-SRC_URI[tempfile-3.7.1.sha256sum] = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
-SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+SRC_URI[tempfile-3.10.0.sha256sum] = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+SRC_URI[thiserror-1.0.56.sha256sum] = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+SRC_URI[thiserror-impl-1.0.56.sha256sum] = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-SRC_URI[time-0.3.25.sha256sum] = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
-SRC_URI[time-core-0.1.1.sha256sum] = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
-SRC_URI[time-macros-0.2.11.sha256sum] = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
+SRC_URI[time-0.3.34.sha256sum] = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+SRC_URI[time-macros-0.2.17.sha256sum] = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
 SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-SRC_URI[toml-0.7.6.sha256sum] = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
-SRC_URI[toml_datetime-0.5.1.sha256sum] = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5"
-SRC_URI[toml_datetime-0.6.3.sha256sum] = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-SRC_URI[toml_edit-0.15.0.sha256sum] = "b1541ba70885967e662f69d31ab3aeca7b1aaecfcd58679590b893e9239c3646"
-SRC_URI[toml_edit-0.19.14.sha256sum] = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
-SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+SRC_URI[toml-0.8.10.sha256sum] = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+SRC_URI[toml_edit-0.21.1.sha256sum] = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+SRC_URI[toml_edit-0.22.4.sha256sum] = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
+SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+SRC_URI[unicode-bidi-0.3.15.sha256sum] = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+SRC_URI[unicode-bom-2.0.3.sha256sum] = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
+SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-SRC_URI[url-2.4.0.sha256sum] = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-SRC_URI[vte-0.10.1.sha256sum] = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983"
-SRC_URI[vte_generate_state_changes-0.1.1.sha256sum] = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
-SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+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[wasm-bindgen-0.2.91.sha256sum] = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+SRC_URI[wasm-bindgen-backend-0.2.91.sha256sum] = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+SRC_URI[wasm-bindgen-macro-0.2.91.sha256sum] = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+SRC_URI[wasm-bindgen-macro-support-0.2.91.sha256sum] = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+SRC_URI[wasm-bindgen-shared-0.2.91.sha256sum] = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 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-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
-SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-SRC_URI[winnow-0.5.7.sha256sum] = "19f495880723d0999eb3500a9064d8dbcf836460b24c17df80ea7b5794053aac"
-SRC_URI[zeroize-1.6.0.sha256sum] = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+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.39.sha256sum] = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
+SRC_URI[zerocopy-0.7.32.sha256sum] = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+SRC_URI[zerocopy-derive-0.7.32.sha256sum] = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb b/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb
deleted file mode 100644
index f27ad83..0000000
--- a/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.18.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "cargo applet to build and install C-ABI compatible dynamic and static libraries."
-HOMEPAGE = "https://crates.io/crates/cargo-c"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = " \
-    file://LICENSE;md5=384ed0e2e0b2dac094e51fbf93fdcbe0 \
-"
-
-
-SRC_URI = " \
-	git://github.com/lu-zero/cargo-c.git;branch=master;protocol=https \
-	file://0001-Add-Cargo.lock-file.patch \
-"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
-
-SRCREV = "4eaf39ebbbc9ab8f092adf487d5b53435511d619"
-S = "${WORKDIR}/git"
-
-inherit cargo cargo-update-recipe-crates pkgconfig native
-
-DEPENDS = "openssl curl"
-
-require ${BPN}-crates.inc
-
diff --git a/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.30+cargo-0.77.0.bb b/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.30+cargo-0.77.0.bb
new file mode 100644
index 0000000..8e17606
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/cargo-c-native_0.9.30+cargo-0.77.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "cargo applet to build and install C-ABI compatible dynamic and static libraries."
+HOMEPAGE = "https://crates.io/crates/cargo-c"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+    file://LICENSE;md5=384ed0e2e0b2dac094e51fbf93fdcbe0 \
+"
+
+SRC_URI = "crate://crates.io/cargo-c/${PV};name=cargo-c"
+SRC_URI[cargo-c.sha256sum] = "ec77e3635cdb0d211f88f22d0460eef0ba031eb616ded57f2ffb98a90365c445"
+S = "${CARGO_VENDORING_DIRECTORY}/cargo-c-${PV}"
+
+inherit cargo cargo-update-recipe-crates pkgconfig native
+
+DEPENDS = "openssl curl"
+
+require ${BPN}-crates.inc
+
diff --git a/poky/meta/recipes-devtools/rust/cargo-c/0001-Add-Cargo.lock-file.patch b/poky/meta/recipes-devtools/rust/cargo-c/0001-Add-Cargo.lock-file.patch
deleted file mode 100644
index 11a6d9e..0000000
--- a/poky/meta/recipes-devtools/rust/cargo-c/0001-Add-Cargo.lock-file.patch
+++ /dev/null
@@ -1,2180 +0,0 @@
-From bc958b58eb31151ce76e409ce654bf6131d693b3 Mon Sep 17 00:00:00 2001
-From: Frederic Martinsons <frederic.martinsons@gmail.com>
-Date: Fri, 11 Aug 2023 06:28:56 +0200
-Subject: [PATCH] Add Cargo.lock file
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
----
- .gitignore |    1 -
- Cargo.lock | 2148 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 2148 insertions(+), 1 deletion(-)
- create mode 100644 Cargo.lock
-
-diff --git a/.gitignore b/.gitignore
-index b52f82c..437f557 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -1,5 +1,4 @@
- /target
- **/*.rs.bk
--Cargo.lock
- /example-project/target/
- /example-project/usage-from-c/run_tests
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..2225b04
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,2148 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+version = 3
-+
-+[[package]]
-+name = "adler"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "1.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "anstream"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
-+dependencies = [
-+ "anstyle",
-+ "anstyle-parse",
-+ "anstyle-query",
-+ "anstyle-wincon",
-+ "colorchoice",
-+ "is-terminal",
-+ "utf8parse",
-+]
-+
-+[[package]]
-+name = "anstyle"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
-+
-+[[package]]
-+name = "anstyle-parse"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
-+dependencies = [
-+ "utf8parse",
-+]
-+
-+[[package]]
-+name = "anstyle-query"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
-+dependencies = [
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "anstyle-wincon"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
-+dependencies = [
-+ "anstyle",
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "anyhow"
-+version = "1.0.72"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "hermit-abi 0.1.19",
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-+
-+[[package]]
-+name = "base16ct"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
-+
-+[[package]]
-+name = "base64"
-+version = "0.13.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-+
-+[[package]]
-+name = "base64ct"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-+
-+[[package]]
-+name = "bitflags"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
-+
-+[[package]]
-+name = "bitmaps"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
-+dependencies = [
-+ "typenum",
-+]
-+
-+[[package]]
-+name = "block-buffer"
-+version = "0.10.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-+dependencies = [
-+ "generic-array",
-+]
-+
-+[[package]]
-+name = "bstr"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
-+dependencies = [
-+ "memchr",
-+ "regex-automata",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "bumpalo"
-+version = "3.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-+
-+[[package]]
-+name = "bytes"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
-+
-+[[package]]
-+name = "bytesize"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5"
-+
-+[[package]]
-+name = "cargo"
-+version = "0.69.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ecf1ab9246253733b30352b5194b4c3a7038a1c7729e1a18b3ba00e479c4d54"
-+dependencies = [
-+ "anyhow",
-+ "base64",
-+ "bytesize",
-+ "cargo-platform",
-+ "cargo-util",
-+ "clap 4.3.21",
-+ "crates-io",
-+ "curl",
-+ "curl-sys",
-+ "env_logger",
-+ "filetime",
-+ "flate2",
-+ "fwdansi",
-+ "git2",
-+ "git2-curl",
-+ "glob",
-+ "hex",
-+ "hmac",
-+ "home",
-+ "http-auth",
-+ "humantime",
-+ "ignore",
-+ "im-rc",
-+ "indexmap 1.9.3",
-+ "is-terminal",
-+ "itertools",
-+ "jobserver",
-+ "lazy_static",
-+ "lazycell",
-+ "libc",
-+ "libgit2-sys",
-+ "log",
-+ "memchr",
-+ "opener",
-+ "openssl",
-+ "os_info",
-+ "pasetors",
-+ "pathdiff",
-+ "percent-encoding",
-+ "rustc-workspace-hack",
-+ "rustfix",
-+ "semver",
-+ "serde",
-+ "serde-value",
-+ "serde_ignored",
-+ "serde_json",
-+ "sha1",
-+ "shell-escape",
-+ "strip-ansi-escapes",
-+ "tar",
-+ "tempfile",
-+ "termcolor",
-+ "time",
-+ "toml_edit 0.15.0",
-+ "unicode-width",
-+ "unicode-xid",
-+ "url",
-+ "walkdir",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "cargo-c"
-+version = "0.9.18+cargo-0.69"
-+dependencies = [
-+ "anyhow",
-+ "cargo",
-+ "cargo-util",
-+ "cbindgen",
-+ "cc",
-+ "clap 4.3.21",
-+ "glob",
-+ "itertools",
-+ "log",
-+ "regex",
-+ "semver",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "toml 0.7.6",
-+]
-+
-+[[package]]
-+name = "cargo-platform"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "cargo-util"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a5e2320a2b1242f9181a3347ae0884bb497e1853d299da99780fa1e96f9abe23"
-+dependencies = [
-+ "anyhow",
-+ "core-foundation",
-+ "filetime",
-+ "hex",
-+ "jobserver",
-+ "libc",
-+ "log",
-+ "miow",
-+ "same-file",
-+ "sha2",
-+ "shell-escape",
-+ "tempfile",
-+ "walkdir",
-+ "windows-sys 0.45.0",
-+]
-+
-+[[package]]
-+name = "cbindgen"
-+version = "0.24.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4b922faaf31122819ec80c4047cc684c6979a087366c069611e33649bf98e18d"
-+dependencies = [
-+ "clap 3.2.25",
-+ "heck",
-+ "indexmap 1.9.3",
-+ "log",
-+ "proc-macro2",
-+ "quote",
-+ "serde",
-+ "serde_json",
-+ "syn 1.0.109",
-+ "tempfile",
-+ "toml 0.5.11",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.82"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
-+dependencies = [
-+ "jobserver",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "cfg-if"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-+
-+[[package]]
-+name = "clap"
-+version = "3.2.25"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
-+dependencies = [
-+ "atty",
-+ "bitflags 1.3.2",
-+ "clap_lex 0.2.4",
-+ "indexmap 1.9.3",
-+ "strsim",
-+ "termcolor",
-+ "textwrap",
-+]
-+
-+[[package]]
-+name = "clap"
-+version = "4.3.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
-+dependencies = [
-+ "clap_builder",
-+ "clap_derive",
-+ "once_cell",
-+]
-+
-+[[package]]
-+name = "clap_builder"
-+version = "4.3.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
-+dependencies = [
-+ "anstream",
-+ "anstyle",
-+ "clap_lex 0.5.0",
-+ "once_cell",
-+ "strsim",
-+]
-+
-+[[package]]
-+name = "clap_derive"
-+version = "4.3.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
-+dependencies = [
-+ "heck",
-+ "proc-macro2",
-+ "quote",
-+ "syn 2.0.28",
-+]
-+
-+[[package]]
-+name = "clap_lex"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-+dependencies = [
-+ "os_str_bytes",
-+]
-+
-+[[package]]
-+name = "clap_lex"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
-+
-+[[package]]
-+name = "colorchoice"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-+
-+[[package]]
-+name = "combine"
-+version = "4.6.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
-+dependencies = [
-+ "bytes",
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "const-oid"
-+version = "0.9.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
-+
-+[[package]]
-+name = "core-foundation"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-+dependencies = [
-+ "core-foundation-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "core-foundation-sys"
-+version = "0.8.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-+
-+[[package]]
-+name = "cpufeatures"
-+version = "0.2.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "crates-io"
-+version = "0.35.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2dfb6077da60207264ab2eb0e3734f02e0a0c50c347b32c728e42c6fbbf7e2e"
-+dependencies = [
-+ "anyhow",
-+ "curl",
-+ "percent-encoding",
-+ "serde",
-+ "serde_json",
-+ "url",
-+]
-+
-+[[package]]
-+name = "crc32fast"
-+version = "1.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "crypto-bigint"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
-+dependencies = [
-+ "generic-array",
-+ "rand_core",
-+ "subtle",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "crypto-common"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-+dependencies = [
-+ "generic-array",
-+ "typenum",
-+]
-+
-+[[package]]
-+name = "ct-codecs"
-+version = "1.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f3b7eb4404b8195a9abb6356f4ac07d8ba267045c8d6d220ac4dc992e6cc75df"
-+
-+[[package]]
-+name = "curl"
-+version = "0.4.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
-+dependencies = [
-+ "curl-sys",
-+ "libc",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "socket2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "curl-sys"
-+version = "0.4.65+curl-8.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "961ba061c9ef2fe34bbd12b807152d96f0badd2bebe7b90ce6c8c8b7572a0986"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "libnghttp2-sys",
-+ "libz-sys",
-+ "openssl-sys",
-+ "pkg-config",
-+ "vcpkg",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "der"
-+version = "0.7.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
-+dependencies = [
-+ "const-oid",
-+ "pem-rfc7468",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "deranged"
-+version = "0.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
-+
-+[[package]]
-+name = "digest"
-+version = "0.10.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-+dependencies = [
-+ "block-buffer",
-+ "const-oid",
-+ "crypto-common",
-+ "subtle",
-+]
-+
-+[[package]]
-+name = "ecdsa"
-+version = "0.16.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4"
-+dependencies = [
-+ "der",
-+ "digest",
-+ "elliptic-curve",
-+ "rfc6979",
-+ "signature",
-+ "spki",
-+]
-+
-+[[package]]
-+name = "ed25519-compact"
-+version = "2.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a3d382e8464107391c8706b4c14b087808ecb909f6c15c34114bc42e53a9e4c"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "either"
-+version = "1.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-+
-+[[package]]
-+name = "elliptic-curve"
-+version = "0.13.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
-+dependencies = [
-+ "base16ct",
-+ "crypto-bigint",
-+ "digest",
-+ "ff",
-+ "generic-array",
-+ "group",
-+ "hkdf",
-+ "pem-rfc7468",
-+ "pkcs8",
-+ "rand_core",
-+ "sec1",
-+ "subtle",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "env_logger"
-+version = "0.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
-+dependencies = [
-+ "humantime",
-+ "is-terminal",
-+ "log",
-+ "regex",
-+ "termcolor",
-+]
-+
-+[[package]]
-+name = "equivalent"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-+
-+[[package]]
-+name = "errno"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
-+dependencies = [
-+ "errno-dragonfly",
-+ "libc",
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "errno-dragonfly"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-+dependencies = [
-+ "cc",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "fastrand"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
-+
-+[[package]]
-+name = "ff"
-+version = "0.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
-+dependencies = [
-+ "rand_core",
-+ "subtle",
-+]
-+
-+[[package]]
-+name = "fiat-crypto"
-+version = "0.1.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
-+
-+[[package]]
-+name = "filetime"
-+version = "0.2.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "flate2"
-+version = "1.0.26"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
-+dependencies = [
-+ "crc32fast",
-+ "libz-sys",
-+ "miniz_oxide",
-+]
-+
-+[[package]]
-+name = "fnv"
-+version = "1.0.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-+
-+[[package]]
-+name = "foreign-types"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-+dependencies = [
-+ "foreign-types-shared",
-+]
-+
-+[[package]]
-+name = "foreign-types-shared"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-+
-+[[package]]
-+name = "form_urlencoded"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
-+dependencies = [
-+ "percent-encoding",
-+]
-+
-+[[package]]
-+name = "fwdansi"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c1f5787fe85505d1f7777268db5103d80a7a374d2316a7ce262e57baf8f208"
-+dependencies = [
-+ "memchr",
-+ "termcolor",
-+]
-+
-+[[package]]
-+name = "generic-array"
-+version = "0.14.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-+dependencies = [
-+ "typenum",
-+ "version_check",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
-+dependencies = [
-+ "cfg-if",
-+ "js-sys",
-+ "libc",
-+ "wasi",
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "git2"
-+version = "0.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be36bc9e0546df253c0cc41fd0af34f5e92845ad8509462ec76672fac6997f5b"
-+dependencies = [
-+ "bitflags 1.3.2",
-+ "libc",
-+ "libgit2-sys",
-+ "log",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "url",
-+]
-+
-+[[package]]
-+name = "git2-curl"
-+version = "0.17.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7577f4e6341ba7c90d883511130a45b956c274ba5f4d205d9f9da990f654cd33"
-+dependencies = [
-+ "curl",
-+ "git2",
-+ "log",
-+ "url",
-+]
-+
-+[[package]]
-+name = "glob"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-+
-+[[package]]
-+name = "globset"
-+version = "0.4.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
-+dependencies = [
-+ "aho-corasick",
-+ "bstr",
-+ "fnv",
-+ "log",
-+ "regex",
-+]
-+
-+[[package]]
-+name = "group"
-+version = "0.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
-+dependencies = [
-+ "ff",
-+ "rand_core",
-+ "subtle",
-+]
-+
-+[[package]]
-+name = "hashbrown"
-+version = "0.12.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-+
-+[[package]]
-+name = "hashbrown"
-+version = "0.14.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
-+
-+[[package]]
-+name = "heck"
-+version = "0.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
-+
-+[[package]]
-+name = "hex"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-+
-+[[package]]
-+name = "hkdf"
-+version = "0.12.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
-+dependencies = [
-+ "hmac",
-+]
-+
-+[[package]]
-+name = "hmac"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-+dependencies = [
-+ "digest",
-+]
-+
-+[[package]]
-+name = "home"
-+version = "0.5.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
-+dependencies = [
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "http-auth"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5430cacd7a1f9a02fbeb350dfc81a0e5ed42d81f3398cb0ba184017f85bdcfbc"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "humantime"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-+
-+[[package]]
-+name = "idna"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-+dependencies = [
-+ "unicode-bidi",
-+ "unicode-normalization",
-+]
-+
-+[[package]]
-+name = "ignore"
-+version = "0.4.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
-+dependencies = [
-+ "globset",
-+ "lazy_static",
-+ "log",
-+ "memchr",
-+ "regex",
-+ "same-file",
-+ "thread_local",
-+ "walkdir",
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "im-rc"
-+version = "15.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
-+dependencies = [
-+ "bitmaps",
-+ "rand_core",
-+ "rand_xoshiro",
-+ "sized-chunks",
-+ "typenum",
-+ "version_check",
-+]
-+
-+[[package]]
-+name = "indexmap"
-+version = "1.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-+dependencies = [
-+ "autocfg",
-+ "hashbrown 0.12.3",
-+]
-+
-+[[package]]
-+name = "indexmap"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
-+dependencies = [
-+ "equivalent",
-+ "hashbrown 0.14.0",
-+]
-+
-+[[package]]
-+name = "is-terminal"
-+version = "0.4.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-+dependencies = [
-+ "hermit-abi 0.3.2",
-+ "rustix",
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "itertools"
-+version = "0.10.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-+dependencies = [
-+ "either",
-+]
-+
-+[[package]]
-+name = "itoa"
-+version = "1.0.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-+
-+[[package]]
-+name = "jobserver"
-+version = "0.1.26"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "js-sys"
-+version = "0.3.64"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "kstring"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747"
-+dependencies = [
-+ "static_assertions",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "lazycell"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.147"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
-+
-+[[package]]
-+name = "libgit2-sys"
-+version = "0.14.1+1.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a07fb2692bc3593bda59de45a502bb3071659f2c515e28c71e728306b038e17"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "libssh2-sys",
-+ "libz-sys",
-+ "openssl-sys",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "libnghttp2-sys"
-+version = "0.1.8+1.55.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fae956c192dadcdb5dace96db71fa0b827333cce7c7b38dc71446f024d8a340"
-+dependencies = [
-+ "cc",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "libssh2-sys"
-+version = "0.2.23"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "libz-sys",
-+ "openssl-sys",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "libz-sys"
-+version = "1.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "linux-raw-sys"
-+version = "0.4.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
-+
-+[[package]]
-+name = "log"
-+version = "0.4.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
-+
-+[[package]]
-+name = "memchr"
-+version = "2.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-+
-+[[package]]
-+name = "miniz_oxide"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-+dependencies = [
-+ "adler",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "52ffbca2f655e33c08be35d87278e5b18b89550a37dbd598c20db92f6a471123"
-+dependencies = [
-+ "windows-sys 0.42.0",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
-+dependencies = [
-+ "autocfg",
-+]
-+
-+[[package]]
-+name = "once_cell"
-+version = "1.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-+
-+[[package]]
-+name = "opener"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005"
-+dependencies = [
-+ "bstr",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "openssl"
-+version = "0.10.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
-+dependencies = [
-+ "bitflags 1.3.2",
-+ "cfg-if",
-+ "foreign-types",
-+ "libc",
-+ "once_cell",
-+ "openssl-macros",
-+ "openssl-sys",
-+]
-+
-+[[package]]
-+name = "openssl-macros"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn 2.0.28",
-+]
-+
-+[[package]]
-+name = "openssl-probe"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-+
-+[[package]]
-+name = "openssl-src"
-+version = "111.27.0+1.1.1v"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "06e8f197c82d7511c5b014030c9b1efeda40d7d5f99d23b4ceed3524a5e63f02"
-+dependencies = [
-+ "cc",
-+]
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.91"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "openssl-src",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "ordered-float"
-+version = "2.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
-+dependencies = [
-+ "num-traits",
-+]
-+
-+[[package]]
-+name = "orion"
-+version = "0.17.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b11468cc6afd61a126fe3f91cc4cc8a0dbe7917d0a4b5e8357ba91cc47444462"
-+dependencies = [
-+ "fiat-crypto",
-+ "subtle",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "os_info"
-+version = "3.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
-+dependencies = [
-+ "log",
-+ "serde",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "os_str_bytes"
-+version = "6.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
-+
-+[[package]]
-+name = "p384"
-+version = "0.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
-+dependencies = [
-+ "ecdsa",
-+ "elliptic-curve",
-+ "primeorder",
-+ "sha2",
-+]
-+
-+[[package]]
-+name = "pasetors"
-+version = "0.6.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba765699a309908d55950919a3445e9491453e89b2587b1b2abe4143a48894c0"
-+dependencies = [
-+ "ct-codecs",
-+ "ed25519-compact",
-+ "getrandom",
-+ "orion",
-+ "p384",
-+ "rand_core",
-+ "regex",
-+ "serde",
-+ "serde_json",
-+ "sha2",
-+ "subtle",
-+ "time",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "pathdiff"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
-+
-+[[package]]
-+name = "pem-rfc7468"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
-+dependencies = [
-+ "base64ct",
-+]
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "2.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-+
-+[[package]]
-+name = "pkcs8"
-+version = "0.10.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
-+dependencies = [
-+ "der",
-+ "spki",
-+]
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.27"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-+
-+[[package]]
-+name = "primeorder"
-+version = "0.13.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
-+dependencies = [
-+ "elliptic-curve",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.66"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-+dependencies = [
-+ "unicode-ident",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.32"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
-+dependencies = [
-+ "proc-macro2",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.6.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "rand_xoshiro"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
-+dependencies = [
-+ "rand_core",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-+dependencies = [
-+ "bitflags 1.3.2",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-automata",
-+ "regex-syntax",
-+]
-+
-+[[package]]
-+name = "regex-automata"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.7.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
-+
-+[[package]]
-+name = "rfc6979"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
-+dependencies = [
-+ "hmac",
-+ "subtle",
-+]
-+
-+[[package]]
-+name = "rustc-workspace-hack"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc71d2faa173b74b232dedc235e3ee1696581bb132fc116fa3626d6151a1a8fb"
-+
-+[[package]]
-+name = "rustfix"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ecd2853d9e26988467753bd9912c3a126f642d05d229a4b53f5752ee36c56481"
-+dependencies = [
-+ "anyhow",
-+ "log",
-+ "serde",
-+ "serde_json",
-+]
-+
-+[[package]]
-+name = "rustix"
-+version = "0.38.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
-+dependencies = [
-+ "bitflags 2.3.3",
-+ "errno",
-+ "libc",
-+ "linux-raw-sys",
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-+
-+[[package]]
-+name = "same-file"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "schannel"
-+version = "0.1.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
-+dependencies = [
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "sec1"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
-+dependencies = [
-+ "base16ct",
-+ "der",
-+ "generic-array",
-+ "pkcs8",
-+ "subtle",
-+ "zeroize",
-+]
-+
-+[[package]]
-+name = "semver"
-+version = "1.0.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.183"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
-+dependencies = [
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "serde-value"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
-+dependencies = [
-+ "ordered-float",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.183"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn 2.0.28",
-+]
-+
-+[[package]]
-+name = "serde_ignored"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "80c31d5c53fd39f208e770f5a20a0bb214dee2a8d0d8adba18e19ad95a482ca5"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
-+dependencies = [
-+ "itoa",
-+ "ryu",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "serde_spanned"
-+version = "0.6.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "sha1"
-+version = "0.10.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-+dependencies = [
-+ "cfg-if",
-+ "cpufeatures",
-+ "digest",
-+]
-+
-+[[package]]
-+name = "sha2"
-+version = "0.10.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
-+dependencies = [
-+ "cfg-if",
-+ "cpufeatures",
-+ "digest",
-+]
-+
-+[[package]]
-+name = "shell-escape"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
-+
-+[[package]]
-+name = "signature"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
-+dependencies = [
-+ "digest",
-+ "rand_core",
-+]
-+
-+[[package]]
-+name = "sized-chunks"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
-+dependencies = [
-+ "bitmaps",
-+ "typenum",
-+]
-+
-+[[package]]
-+name = "socket2"
-+version = "0.4.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "spki"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
-+dependencies = [
-+ "base64ct",
-+ "der",
-+]
-+
-+[[package]]
-+name = "static_assertions"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-+
-+[[package]]
-+name = "strip-ansi-escapes"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8"
-+dependencies = [
-+ "vte",
-+]
-+
-+[[package]]
-+name = "strsim"
-+version = "0.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-+
-+[[package]]
-+name = "subtle"
-+version = "2.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.109"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "unicode-ident",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "2.0.28"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "unicode-ident",
-+]
-+
-+[[package]]
-+name = "tar"
-+version = "0.4.40"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
-+dependencies = [
-+ "filetime",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
-+dependencies = [
-+ "cfg-if",
-+ "fastrand",
-+ "redox_syscall",
-+ "rustix",
-+ "windows-sys 0.48.0",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "textwrap"
-+version = "0.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-+dependencies = [
-+ "cfg-if",
-+ "once_cell",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.3.25"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
-+dependencies = [
-+ "deranged",
-+ "itoa",
-+ "serde",
-+ "time-core",
-+ "time-macros",
-+]
-+
-+[[package]]
-+name = "time-core"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
-+
-+[[package]]
-+name = "time-macros"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
-+dependencies = [
-+ "time-core",
-+]
-+
-+[[package]]
-+name = "tinyvec"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-+dependencies = [
-+ "tinyvec_macros",
-+]
-+
-+[[package]]
-+name = "tinyvec_macros"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-+
-+[[package]]
-+name = "toml"
-+version = "0.5.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.7.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
-+dependencies = [
-+ "serde",
-+ "serde_spanned",
-+ "toml_datetime 0.6.3",
-+ "toml_edit 0.19.14",
-+]
-+
-+[[package]]
-+name = "toml_datetime"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "toml_datetime"
-+version = "0.6.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "toml_edit"
-+version = "0.15.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b1541ba70885967e662f69d31ab3aeca7b1aaecfcd58679590b893e9239c3646"
-+dependencies = [
-+ "combine",
-+ "indexmap 1.9.3",
-+ "itertools",
-+ "kstring",
-+ "serde",
-+ "toml_datetime 0.5.1",
-+]
-+
-+[[package]]
-+name = "toml_edit"
-+version = "0.19.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
-+dependencies = [
-+ "indexmap 2.0.0",
-+ "serde",
-+ "serde_spanned",
-+ "toml_datetime 0.6.3",
-+ "winnow",
-+]
-+
-+[[package]]
-+name = "typenum"
-+version = "1.16.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-+
-+[[package]]
-+name = "unicode-ident"
-+version = "1.0.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-+dependencies = [
-+ "tinyvec",
-+]
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-+
-+[[package]]
-+name = "url"
-+version = "2.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
-+dependencies = [
-+ "form_urlencoded",
-+ "idna",
-+ "percent-encoding",
-+]
-+
-+[[package]]
-+name = "utf8parse"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
-+
-+[[package]]
-+name = "vcpkg"
-+version = "0.2.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-+
-+[[package]]
-+name = "vte"
-+version = "0.10.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983"
-+dependencies = [
-+ "arrayvec",
-+ "utf8parse",
-+ "vte_generate_state_changes",
-+]
-+
-+[[package]]
-+name = "vte_generate_state_changes"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+]
-+
-+[[package]]
-+name = "walkdir"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
-+dependencies = [
-+ "same-file",
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.11.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-+
-+[[package]]
-+name = "wasm-bindgen"
-+version = "0.2.87"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
-+dependencies = [
-+ "cfg-if",
-+ "wasm-bindgen-macro",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-backend"
-+version = "0.2.87"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
-+dependencies = [
-+ "bumpalo",
-+ "log",
-+ "once_cell",
-+ "proc-macro2",
-+ "quote",
-+ "syn 2.0.28",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro"
-+version = "0.2.87"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
-+dependencies = [
-+ "quote",
-+ "wasm-bindgen-macro-support",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro-support"
-+version = "0.2.87"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn 2.0.28",
-+ "wasm-bindgen-backend",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-shared"
-+version = "0.2.87"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
-+]
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+
-+[[package]]
-+name = "winapi-util"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+
-+[[package]]
-+name = "windows-sys"
-+version = "0.42.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-+dependencies = [
-+ "windows_aarch64_gnullvm 0.42.2",
-+ "windows_aarch64_msvc 0.42.2",
-+ "windows_i686_gnu 0.42.2",
-+ "windows_i686_msvc 0.42.2",
-+ "windows_x86_64_gnu 0.42.2",
-+ "windows_x86_64_gnullvm 0.42.2",
-+ "windows_x86_64_msvc 0.42.2",
-+]
-+
-+[[package]]
-+name = "windows-sys"
-+version = "0.45.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-+dependencies = [
-+ "windows-targets 0.42.2",
-+]
-+
-+[[package]]
-+name = "windows-sys"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-+dependencies = [
-+ "windows-targets 0.48.1",
-+]
-+
-+[[package]]
-+name = "windows-targets"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-+dependencies = [
-+ "windows_aarch64_gnullvm 0.42.2",
-+ "windows_aarch64_msvc 0.42.2",
-+ "windows_i686_gnu 0.42.2",
-+ "windows_i686_msvc 0.42.2",
-+ "windows_x86_64_gnu 0.42.2",
-+ "windows_x86_64_gnullvm 0.42.2",
-+ "windows_x86_64_msvc 0.42.2",
-+]
-+
-+[[package]]
-+name = "windows-targets"
-+version = "0.48.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
-+dependencies = [
-+ "windows_aarch64_gnullvm 0.48.0",
-+ "windows_aarch64_msvc 0.48.0",
-+ "windows_i686_gnu 0.48.0",
-+ "windows_i686_msvc 0.48.0",
-+ "windows_x86_64_gnu 0.48.0",
-+ "windows_x86_64_gnullvm 0.48.0",
-+ "windows_x86_64_msvc 0.48.0",
-+]
-+
-+[[package]]
-+name = "windows_aarch64_gnullvm"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-+
-+[[package]]
-+name = "windows_aarch64_gnullvm"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-+
-+[[package]]
-+name = "windows_aarch64_msvc"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-+
-+[[package]]
-+name = "windows_aarch64_msvc"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-+
-+[[package]]
-+name = "windows_i686_gnu"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-+
-+[[package]]
-+name = "windows_i686_gnu"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-+
-+[[package]]
-+name = "windows_i686_msvc"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-+
-+[[package]]
-+name = "windows_i686_msvc"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-+
-+[[package]]
-+name = "windows_x86_64_gnu"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-+
-+[[package]]
-+name = "windows_x86_64_gnu"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-+
-+[[package]]
-+name = "windows_x86_64_gnullvm"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-+
-+[[package]]
-+name = "windows_x86_64_gnullvm"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-+
-+[[package]]
-+name = "windows_x86_64_msvc"
-+version = "0.42.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-+
-+[[package]]
-+name = "windows_x86_64_msvc"
-+version = "0.48.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-+
-+[[package]]
-+name = "winnow"
-+version = "0.5.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "19f495880723d0999eb3500a9064d8dbcf836460b24c17df80ea7b5794053aac"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "zeroize"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
---
-2.34.1
-
diff --git a/poky/meta/recipes-devtools/rust/files/repro-issue-fix-with-v175.patch b/poky/meta/recipes-devtools/rust/files/repro-issue-fix-with-v175.patch
index 6840baf..fe0507c 100644
--- a/poky/meta/recipes-devtools/rust/files/repro-issue-fix-with-v175.patch
+++ b/poky/meta/recipes-devtools/rust/files/repro-issue-fix-with-v175.patch
@@ -1,23 +1,36 @@
 rust: reproducibility issue fix with v1.75
 
-With 1.75 rust release, the '.rustc' section of shared object libs are embedded with absolute path names which is casuing reproducibiluty issues.
+With 1.75 rust release, the '.rustc' section of shared object libs are embedded with absolute path names which is casuing reproducibility issues.
 This change will fix the path name format back to '/rust/$hash' as in earlier versions.
 
 Below are the links for detailed bug description & discusssion with upstream rust.
 https://github.com/rust-lang/rust/issues/120825#issuecomment-1964307219
 https://github.com/rust-lang/rust/issues/120825#issuecomment-1964652656
 
-Upstream-Status: Inappropriate [patches need rework]
+Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/121959/commits/a9a979839bbdfec48c75d618ab0dce8a953589b8]
 Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
 ---
---- a/compiler/rustc_session/src/session.rs	2023-12-21 08:55:28.000000000 -0800
-+++ b/compiler/rustc_session/src/session.rs	2024-02-26 07:29:15.527577022 -0800
-@@ -1269,7 +1269,7 @@
-                 | CrateType::Rlib
-                 | CrateType::Staticlib
-                 | CrateType::Cdylib => continue,
+--- a/compiler/rustc_session/src/session.rs     2023-12-21 08:55:28.000000000 -0800
++++ b/compiler/rustc_session/src/session.rs     2024-02-26 07:29:15.527577022 -0800
+@@ -1260,19 +1260,6 @@
+     }
+
+     pub fn should_prefer_remapped_for_codegen(&self) -> bool {
+-        // bail out, if any of the requested crate types aren't:
+-        // "compiled executables or libraries"
+-        for crate_type in &self.opts.crate_types {
+-            match crate_type {
+-                CrateType::Executable
+-                | CrateType::Dylib
+-                | CrateType::Rlib
+-                | CrateType::Staticlib
+-                | CrateType::Cdylib => continue,
 -                CrateType::ProcMacro => return false,
-+                CrateType::ProcMacro => return true,
-             }
-         }
- 
+-            }
+-        }
+-
+         let has_split_debuginfo = match self.split_debuginfo() {
+             SplitDebuginfo::Off => false,
+             SplitDebuginfo::Packed => true,
+
+
diff --git a/poky/meta/recipes-devtools/tcltk/tcl/run-ptest b/poky/meta/recipes-devtools/tcltk/tcl/run-ptest
index 87e025f..a403a74 100644
--- a/poky/meta/recipes-devtools/tcltk/tcl/run-ptest
+++ b/poky/meta/recipes-devtools/tcltk/tcl/run-ptest
@@ -3,19 +3,27 @@
 # clock.test needs a timezone to be set
 export TZ="Europe/London"
 export TCL_LIBRARY=library
+export ERROR_ON_FAILURES=1
 
 # Some tests are overly strict with timings and fail on loaded systems.
-# See bugs #14825 #14882 #15081 #15321.
-SKIPPED_TESTS='async-* cmdMZ-6.6 event-* exit-1.* socket-* socket_inet-*'
+SKIP=""
+# 15321
+SKIP="$SKIP async-\* event-\*"
+# 14882
+SKIP="$SKIP cmdMZ-6.6"
+# 15081
+SKIP="$SKIP exit-1.\*"
+# 15407 15421
+SKIP="$SKIP \*io-46.1"
+# 14825
+SKIP="$SKIP socket-\* socket_inet-\*"
 
-for i in `ls tests/*.test | awk -F/ '{print $2}'`; do
-    ./tcltest tests/all.tcl -file $i -skip "$SKIPPED_TESTS" >$i.log 2>&1
-    grep -q -F -e "Files with failing tests:" -e "Test files exiting with errors:" $i.log
+for i in tests/*.test; do
+    i=$(basename $i)
+    ./tcltest tests/all.tcl -file $i -skip "$SKIP"
     if [ $? -eq 0 ]; then
-        echo "FAIL: $i"
-        cat $i.log
-    else
         echo "PASS: $i"
+    else
+        echo "FAIL: $i"
     fi
-    rm -f $i.log
 done
diff --git a/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb b/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
index bb75353..06bf900 100644
--- a/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
+++ b/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
@@ -88,7 +88,7 @@
 
 do_install_ptest:append:libc-musl () {
 	# Assumes locales other than provided by musl-locales
-	sed -i -e "s|SKIPPED_TESTS='|SKIPPED_TESTS='unixInit-3* |" ${D}${PTEST_PATH}/run-ptest
+	sed -i '/SKIP="$SKIP socket.*$/a # unixInit-3* is suppressed due to hardcoded locale assumptions\nSKIP="$SKIP unixInit-3\\\*"' ${D}${PTEST_PATH}/run-ptest
 }
 
 # Fix some paths that might be used by Tcl extensions
diff --git a/poky/meta/recipes-devtools/vala/vala.inc b/poky/meta/recipes-devtools/vala/vala.inc
deleted file mode 100644
index 0177e86..0000000
--- a/poky/meta/recipes-devtools/vala/vala.inc
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "C#-like programming language for easing GObject programming"
-HOMEPAGE = "http://vala-project.org"
-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 gobject-introspection"
-
-# Appending libxslt-native to dependencies has an effect
-# of rebuilding the manual, which is very slow. Let's do this
-# only when api-documentation distro feature is enabled.
-DEPENDS:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'libxslt-native', '', d)}"
-
-# vala-native contains a native version of vapigen, which we use instead of the target one
-DEPENDS:append:class-target = " vala-native"
-BBCLASSEXTEND = "native"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${BPN}/${SHRT_VER}/${BP}.tar.xz"
-inherit autotools pkgconfig upstream-version-is-even
-
-FILES:${PN} += "${datadir}/${BPN}-${SHRT_VER}/vapi ${libdir}/${BPN}-${SHRT_VER}/"
-FILES:${PN}-doc += "${datadir}/devhelp"
-
-# .gir files from gobject-introspection are installed to ${libdir} when multilib is enabled
-GIRDIR_OPT = "${@'--girdir=${STAGING_LIBDIR}/gir-1.0' if d.getVar('MULTILIBS') else ''}"
-
-do_configure:prepend:class-target() {
-        # Write out a vapigen wrapper that will be provided by pkg-config file installed in target sysroot
-        # The wrapper will call a native vapigen
-        cat > ${B}/vapigen-wrapper << EOF
-#!/bin/sh
-vapigen-${SHRT_VER} ${GIRDIR_OPT} "\$@"
-EOF
-        chmod +x ${B}/vapigen-wrapper
-}
-
-EXTRA_OECONF += " --disable-valadoc"
-
-# Vapigen wrapper needs to be available system-wide, because it will be used
-# to build vapi files from all other packages with vala support
-do_install:append:class-target() {
-        install -d ${D}${bindir_crossscripts}/
-        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
-}
-
-# Put vapigen wrapper into target sysroot so that it can be used when building
-# vapi files.
-SYSROOT_DIRS += "${bindir_crossscripts}"
-
-inherit multilib_script
-MULTILIB_SCRIPTS = "${PN}:${bindir}/vala-gen-introspect-0.56"
-
-SYSROOT_PREPROCESS_FUNCS:append:class-target = " vapigen_sysroot_preprocess"
-vapigen_sysroot_preprocess() {
-        # Tweak the vapigen name in the vapigen pkgconfig file, so that it picks
-        # up our wrapper.
-        sed -i \
-           -e "s|vapigen=.*|vapigen=${bindir_crossscripts}/vapigen-wrapper|" \
-           ${SYSROOT_DESTDIR}${libdir}/pkgconfig/vapigen-${SHRT_VER}.pc
-}
-
-SSTATE_SCAN_FILES += "vapigen-wrapper"
-
-PACKAGE_PREPROCESS_FUNCS += "vala_package_preprocess"
-
-vala_package_preprocess () {
-	rm -rf ${PKGD}${bindir_crossscripts}
-}
diff --git a/poky/meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch b/poky/meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch
new file mode 100644
index 0000000..1614740
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala/0001-gtk4-Preserve-compatibility-with-4.14.patch
@@ -0,0 +1,39 @@
+From 17349020fb95454d06f827fd555b05248f10a370 Mon Sep 17 00:00:00 2001
+From: Rico Tzschichholz <ricotz@ubuntu.com>
+Date: Thu, 7 Mar 2024 17:56:05 +0100
+Subject: [PATCH] gtk4: Preserve compatibility with < 4.14
+
+Don't prefer new accessor methods for Calendar.day/month/year
+
+Fixes https://gitlab.gnome.org/GNOME/vala/issues/1531
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/vala/-/commit/e0c4ea8c4a0bbf859b5341a7465b395892789d9e]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ vapi/gtk4.vapi                 | 3 +++
+ vapi/metadata/Gtk-4.0.metadata | 5 +++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/vapi/gtk4.vapi b/vapi/gtk4.vapi
+index 49f8b2078..51ecea27d 100644
+--- a/vapi/gtk4.vapi
++++ b/vapi/gtk4.vapi
+@@ -7350,11 +7350,14 @@ namespace Gtk {
+ 		[Version (since = "4.14")]
+ 		public void set_year (int year);
+ 		public void unmark_day (uint day);
++		[NoAccessorMethod]
+ 		public int day { get; set; }
++		[NoAccessorMethod]
+ 		public int month { get; set; }
+ 		public bool show_day_names { get; set; }
+ 		public bool show_heading { get; set; }
+ 		public bool show_week_numbers { get; set; }
++		[NoAccessorMethod]
+ 		public int year { get; set; }
+ 		public signal void day_selected ();
+ 		public signal void next_month ();
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.15.bb b/poky/meta/recipes-devtools/vala/vala_0.56.15.bb
index dc483b1..915ddd8 100644
--- a/poky/meta/recipes-devtools/vala/vala_0.56.15.bb
+++ b/poky/meta/recipes-devtools/vala/vala_0.56.15.bb
@@ -1,3 +1,76 @@
-require ${BPN}.inc
+SUMMARY = "C#-like programming language for easing GObject programming"
+HOMEPAGE = "http://vala-project.org"
+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 gobject-introspection"
 
+# Appending libxslt-native to dependencies has an effect
+# of rebuilding the manual, which is very slow. Let's do this
+# only when api-documentation distro feature is enabled.
+DEPENDS:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'libxslt-native', '', d)}"
+
+# vala-native contains a native version of vapigen, which we use instead of the target one
+DEPENDS:append:class-target = " vala-native"
+BBCLASSEXTEND = "native"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+
+SRC_URI = " \
+	http://ftp.gnome.org/pub/GNOME/sources/${BPN}/${SHRT_VER}/${BP}.tar.xz \
+	file://0001-gtk4-Preserve-compatibility-with-4.14.patch \
+"
 SRC_URI[sha256sum] = "535b6452ed310fd5fb5c7dd6794b6213dac3b48e645e5bff3173741ec2cb3f2b"
+
+inherit autotools pkgconfig upstream-version-is-even
+
+FILES:${PN} += "${datadir}/${BPN}-${SHRT_VER}/vapi ${libdir}/${BPN}-${SHRT_VER}/"
+FILES:${PN}-doc += "${datadir}/devhelp"
+
+# .gir files from gobject-introspection are installed to ${libdir} when multilib is enabled
+GIRDIR_OPT = "${@'--girdir=${STAGING_LIBDIR}/gir-1.0' if d.getVar('MULTILIBS') else ''}"
+
+do_configure:prepend:class-target() {
+        # Write out a vapigen wrapper that will be provided by pkg-config file installed in target sysroot
+        # The wrapper will call a native vapigen
+        cat > ${B}/vapigen-wrapper << EOF
+#!/bin/sh
+vapigen-${SHRT_VER} ${GIRDIR_OPT} "\$@"
+EOF
+        chmod +x ${B}/vapigen-wrapper
+}
+
+EXTRA_OECONF += " --disable-valadoc"
+
+# Vapigen wrapper needs to be available system-wide, because it will be used
+# to build vapi files from all other packages with vala support
+do_install:append:class-target() {
+        install -d ${D}${bindir_crossscripts}/
+        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
+}
+
+# Put vapigen wrapper into target sysroot so that it can be used when building
+# vapi files.
+SYSROOT_DIRS += "${bindir_crossscripts}"
+
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}:${bindir}/vala-gen-introspect-0.56"
+
+SYSROOT_PREPROCESS_FUNCS:append:class-target = " vapigen_sysroot_preprocess"
+vapigen_sysroot_preprocess() {
+        # Tweak the vapigen name in the vapigen pkgconfig file, so that it picks
+        # up our wrapper.
+        sed -i \
+           -e "s|vapigen=.*|vapigen=${bindir_crossscripts}/vapigen-wrapper|" \
+           ${SYSROOT_DESTDIR}${libdir}/pkgconfig/vapigen-${SHRT_VER}.pc
+}
+
+SSTATE_SCAN_FILES += "vapigen-wrapper"
+
+PACKAGE_PREPROCESS_FUNCS += "vala_package_preprocess"
+
+vala_package_preprocess () {
+	rm -rf ${PKGD}${bindir_crossscripts}
+}
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch
new file mode 100644
index 0000000..80a8e3a
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-monitor.py-regular-expressions-should-use-r.patch
@@ -0,0 +1,64 @@
+From 027b649fdb831868e71be01cafdacc49a5f419ab Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark@klomp.org>
+Date: Fri, 17 Nov 2023 14:01:21 +0100
+Subject: [PATCH 1/4] valgrind-monitor.py regular expressions should use raw
+ strings
+
+With python 3.12 gdb will produce the following SyntaxWarning when
+loading valgrind-monitor-def.py:
+
+  /usr/share/gdb/auto-load/valgrind-monitor-def.py:214:
+  SyntaxWarning: invalid escape sequence '\['
+    if re.fullmatch("^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str):
+
+In a future python version this will become an SyntaxError.
+
+Use a raw strings for the regular expression.
+
+https://bugs.kde.org/show_bug.cgi?id=476708
+(cherry picked from commit 0fbfbe05028ad18efda786a256a2738d2c231ed4)
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=027b649fdb831868e71be01cafdacc49a5f419ab]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS                                          | 13 +++++++++++++
+ coregrind/m_gdbserver/valgrind-monitor-def.py |  2 +-
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/NEWS b/NEWS
+index f11da4be8..ee5b4ff11 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,3 +1,16 @@
++Branch 3.22
++~~~~~~~~~~~
++
++* ==================== FIXED BUGS ====================
++
++The following bugs have been fixed or resolved on this branch.
++
++476708  valgrind-monitor.py regular expressions should use raw strings
++
++To see details of a given bug, visit
++  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
++where XXXXXX is the bug number as listed above.
++
+ Release 3.22.0 (31 Oct 2023)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ 
+diff --git a/coregrind/m_gdbserver/valgrind-monitor-def.py b/coregrind/m_gdbserver/valgrind-monitor-def.py
+index b4e7b992d..d74b1590c 100644
+--- a/coregrind/m_gdbserver/valgrind-monitor-def.py
++++ b/coregrind/m_gdbserver/valgrind-monitor-def.py
+@@ -211,7 +211,7 @@ class Valgrind_ADDR_LEN_opt(Valgrind_Command):
+ For compatibility reason with the Valgrind gdbserver monitor command,
+ we detect and accept usages such as 0x1234ABCD[10]."""
+     def invoke(self, arg_str : str, from_tty : bool) -> None:
+-        if re.fullmatch("^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str):
++        if re.fullmatch(r"^0x[0123456789ABCDEFabcdef]+\[[^\[\]]+\]$", arg_str):
+             arg_str = arg_str.replace("[", " ")
+             arg_str = arg_str.replace("]", " ")
+         eval_execute_2(self, arg_str,
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch
new file mode 100644
index 0000000..5759fa0
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch
@@ -0,0 +1,147 @@
+From 1d00e5ce0fb069911c4b525ec38289fb5d9021b0 Mon Sep 17 00:00:00 2001
+From: Paul Floyd <pjfloyd@wanadoo.fr>
+Date: Sat, 18 Nov 2023 08:49:34 +0100
+Subject: [PATCH 2/4] Bug 476548 - valgrind 3.22.0 fails on assertion when
+ loading debuginfo file produced by mold
+
+(cherry picked from commit 9ea4ae66707a4dcc6f4328e11911652e4418c585)
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=1d00e5ce0fb069911c4b525ec38289fb5d9021b0]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS                               |  2 ++
+ coregrind/m_debuginfo/image.c      | 14 +++++++++
+ coregrind/m_debuginfo/priv_image.h |  4 +++
+ coregrind/m_debuginfo/readelf.c    | 49 ++++++++++++++++++++++++++++--
+ 4 files changed, 66 insertions(+), 3 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index ee5b4ff11..6cd13429a 100644
+--- a/NEWS
++++ b/NEWS
+@@ -5,6 +5,8 @@ Branch 3.22
+ 
+ The following bugs have been fixed or resolved on this branch.
+ 
++476548  valgrind 3.22.0 fails on assertion when loading debuginfo
++        file produced by mold
+ 476708  valgrind-monitor.py regular expressions should use raw strings
+ 
+ To see details of a given bug, visit
+diff --git a/coregrind/m_debuginfo/image.c b/coregrind/m_debuginfo/image.c
+index 02e509071..445f95555 100644
+--- a/coregrind/m_debuginfo/image.c
++++ b/coregrind/m_debuginfo/image.c
+@@ -1221,6 +1221,20 @@ Int ML_(img_strcmp_c)(DiImage* img, DiOffT off1, const HChar* str2)
+    }
+ }
+ 
++Int ML_(img_strcmp_n)(DiImage* img, DiOffT off1, const HChar* str2, Word n)
++{
++   ensure_valid(img, off1, 1, "ML_(img_strcmp_c)");
++   while (n) {
++      UChar c1 = get(img, off1);
++      UChar c2 = *(const UChar*)str2;
++      if (c1 < c2) return -1;
++      if (c1 > c2) return 1;
++      if (c1 == 0) return 0;
++      off1++; str2++; --n;
++   }
++   return 0;
++}
++
+ UChar ML_(img_get_UChar)(DiImage* img, DiOffT offset)
+ {
+    ensure_valid(img, offset, 1, "ML_(img_get_UChar)");
+diff --git a/coregrind/m_debuginfo/priv_image.h b/coregrind/m_debuginfo/priv_image.h
+index a49846f14..c91e49f01 100644
+--- a/coregrind/m_debuginfo/priv_image.h
++++ b/coregrind/m_debuginfo/priv_image.h
+@@ -115,6 +115,10 @@ Int ML_(img_strcmp)(DiImage* img, DiOffT off1, DiOffT off2);
+    cast to HChar before comparison. */
+ Int ML_(img_strcmp_c)(DiImage* img, DiOffT off1, const HChar* str2);
+ 
++/* Do strncmp of a C string in the image vs a normal one.  Chars are
++   cast to HChar before comparison. */
++Int ML_(img_strcmp_n)(DiImage* img, DiOffT off1, const HChar* str2, Word n);
++
+ /* Do strlen of a C string in the image. */
+ SizeT ML_(img_strlen)(DiImage* img, DiOffT off);
+ 
+diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c
+index fb64ed976..46f8c8343 100644
+--- a/coregrind/m_debuginfo/readelf.c
++++ b/coregrind/m_debuginfo/readelf.c
+@@ -2501,8 +2501,7 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di )
+             di->rodata_avma += inrw1->bias;
+             di->rodata_bias = inrw1->bias;
+             di->rodata_debug_bias = inrw1->bias;
+-         }
+-         else {
++         } else {
+             BAD(".rodata");  /* should not happen? */
+          }
+          di->rodata_present = True;
+@@ -2977,6 +2976,46 @@ Bool ML_(read_elf_object) ( struct _DebugInfo* di )
+    return retval;
+ }
+ 
++static void find_rodata(Word i, Word shnum, DiImage* dimg, struct _DebugInfo* di, DiOffT shdr_dioff,
++                        UWord shdr_dent_szB, DiOffT shdr_strtab_dioff, PtrdiffT rw_dbias)
++{
++   ElfXX_Shdr a_shdr;
++   ElfXX_Shdr a_extra_shdr;
++   ML_(img_get)(&a_shdr, dimg,
++                INDEX_BIS(shdr_dioff, i, shdr_dent_szB),
++                sizeof(a_shdr));
++   if (di->rodata_present &&
++       0 == ML_(img_strcmp_c)(dimg, shdr_strtab_dioff
++                                    + a_shdr.sh_name, ".rodata")) {
++      Word sh_size = a_shdr.sh_size;
++      Word j;
++      Word next_addr = a_shdr.sh_addr + a_shdr.sh_size;
++      for (j = i  + 1; j < shnum; ++j) {
++         ML_(img_get)(&a_extra_shdr, dimg,
++                      INDEX_BIS(shdr_dioff, j, shdr_dent_szB),
++                      sizeof(a_shdr));
++         if (0 == ML_(img_strcmp_n)(dimg, shdr_strtab_dioff
++                                             + a_extra_shdr.sh_name, ".rodata", 7)) {
++            if (a_extra_shdr.sh_addr ==
++                VG_ROUNDUP(next_addr, a_extra_shdr.sh_addralign)) {
++               sh_size = VG_ROUNDUP(sh_size, a_extra_shdr.sh_addralign) + a_extra_shdr.sh_size;
++            }
++            next_addr = a_extra_shdr.sh_addr + a_extra_shdr.sh_size;
++         } else {
++            break;
++         }
++      }
++      vg_assert(di->rodata_size == sh_size);
++      vg_assert(di->rodata_avma +  a_shdr.sh_addr + rw_dbias);
++      di->rodata_debug_svma = a_shdr.sh_addr;
++      di->rodata_debug_bias = di->rodata_bias +
++                             di->rodata_svma - di->rodata_debug_svma;
++      TRACE_SYMTAB("acquiring .rodata  debug svma = %#lx .. %#lx\n",
++                   di->rodata_debug_svma,
++                   di->rodata_debug_svma + di->rodata_size - 1);
++      TRACE_SYMTAB("acquiring .rodata debug bias = %#lx\n", (UWord)di->rodata_debug_bias);
++   }
++}
+ Bool ML_(read_elf_debug) ( struct _DebugInfo* di )
+ {
+    Word     i, j;
+@@ -3391,7 +3430,11 @@ Bool ML_(read_elf_debug) ( struct _DebugInfo* di )
+             FIND(text,   rx)
+             FIND(data,   rw)
+             FIND(sdata,  rw)
+-            FIND(rodata, rw)
++            // https://bugs.kde.org/show_bug.cgi?id=476548
++            // special handling for rodata as adjacent
++            // rodata sections may have been merged in ML_(read_elf_object)
++            //FIND(rodata, rw)
++            find_rodata(i, ehdr_dimg.e_shnum, dimg, di, shdr_dioff, shdr_dent_szB, shdr_strtab_dioff, rw_dbias);
+             FIND(bss,    rw)
+             FIND(sbss,   rw)
+ 
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0003-Add-fchmodat2-syscall-on-linux.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0003-Add-fchmodat2-syscall-on-linux.patch
new file mode 100644
index 0000000..2a09ca5
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0003-Add-fchmodat2-syscall-on-linux.patch
@@ -0,0 +1,221 @@
+From a43e62dddcf51ec6578a90c5988a41e856b44b05 Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark@klomp.org>
+Date: Sat, 18 Nov 2023 21:17:02 +0100
+Subject: [PATCH 3/4] Add fchmodat2 syscall on linux
+
+fchmodat2 is a new syscall on linux 6.6. It is a variant of fchmodat
+that takes an extra flags argument.
+
+https://bugs.kde.org/show_bug.cgi?id=477198
+
+(cherry picked from commit 372d09fd9a8d76847c81092ebff71c80fd6c145d)
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=a43e62dddcf51ec6578a90c5988a41e856b44b05]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS                                         |  1 +
+ coregrind/m_syswrap/priv_syswrap-linux.h     |  3 +++
+ coregrind/m_syswrap/syswrap-amd64-linux.c    |  2 ++
+ coregrind/m_syswrap/syswrap-arm-linux.c      |  2 ++
+ coregrind/m_syswrap/syswrap-arm64-linux.c    |  2 ++
+ coregrind/m_syswrap/syswrap-linux.c          | 11 +++++++++++
+ coregrind/m_syswrap/syswrap-mips32-linux.c   |  2 ++
+ coregrind/m_syswrap/syswrap-mips64-linux.c   |  1 +
+ coregrind/m_syswrap/syswrap-nanomips-linux.c |  1 +
+ coregrind/m_syswrap/syswrap-ppc32-linux.c    |  2 ++
+ coregrind/m_syswrap/syswrap-ppc64-linux.c    |  2 ++
+ coregrind/m_syswrap/syswrap-s390x-linux.c    |  2 ++
+ coregrind/m_syswrap/syswrap-x86-linux.c      |  2 ++
+ include/vki/vki-scnums-shared-linux.h        |  2 ++
+ 14 files changed, 35 insertions(+)
+
+diff --git a/NEWS b/NEWS
+index 6cd13429a..da0f8c1aa 100644
+--- a/NEWS
++++ b/NEWS
+@@ -8,6 +8,7 @@ The following bugs have been fixed or resolved on this branch.
+ 476548  valgrind 3.22.0 fails on assertion when loading debuginfo
+         file produced by mold
+ 476708  valgrind-monitor.py regular expressions should use raw strings
++477198  Add fchmodat2 syscall on linux
+ 
+ To see details of a given bug, visit
+   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h
+index 7c9decf5a..798c456c9 100644
+--- a/coregrind/m_syswrap/priv_syswrap-linux.h
++++ b/coregrind/m_syswrap/priv_syswrap-linux.h
+@@ -331,6 +331,9 @@ DECL_TEMPLATE(linux, sys_openat2);
+ // Linux-specific (new in Linux 5.14)
+ DECL_TEMPLATE(linux, sys_memfd_secret);
+ 
++// Since Linux 6.6
++DECL_TEMPLATE(linux, sys_fchmodat2);
++
+ /* ---------------------------------------------------------------------
+    Wrappers for sockets and ipc-ery.  These are split into standalone
+    procedures because x86-linux hides them inside multiplexors
+diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
+index 008600798..fe17d118b 100644
+--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
++++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
+@@ -886,6 +886,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINXY(__NR_epoll_pwait2,      sys_epoll_pwait2),      // 441
+ 
+    LINXY(__NR_memfd_secret,      sys_memfd_secret),      // 447
++
++   LINX_(__NR_fchmodat2,         sys_fchmodat2),         // 452
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
+index 9a7a1e0d2..811931d3b 100644
+--- a/coregrind/m_syswrap/syswrap-arm-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm-linux.c
+@@ -1059,6 +1059,8 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINX_(__NR_faccessat2,    sys_faccessat2),           // 439
+ 
+    LINXY(__NR_epoll_pwait2,      sys_epoll_pwait2),      // 441
++
++   LINX_(__NR_fchmodat2,         sys_fchmodat2),         // 452
+ };
+ 
+ 
+diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
+index 6af7bab83..3307bc2ca 100644
+--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
+@@ -840,6 +840,8 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY(__NR_epoll_pwait2,      sys_epoll_pwait2),      // 441
+ 
+    LINXY(__NR_memfd_secret,      sys_memfd_secret),      // 447
++
++   LINX_(__NR_fchmodat2,         sys_fchmodat2),         // 452
+ };
+ 
+ 
+diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
+index d571fc327..efa47f2e6 100644
+--- a/coregrind/m_syswrap/syswrap-linux.c
++++ b/coregrind/m_syswrap/syswrap-linux.c
+@@ -6059,6 +6059,17 @@ PRE(sys_fchmodat)
+    PRE_MEM_RASCIIZ( "fchmodat(path)", ARG2 );
+ }
+ 
++PRE(sys_fchmodat2)
++{
++   PRINT("sys_fchmodat2 ( %ld, %#" FMT_REGWORD "x(%s), %" FMT_REGWORD "u, %"
++	  FMT_REGWORD "u )",
++         SARG1, ARG2, (HChar*)(Addr)ARG2, ARG3, ARG4);
++   PRE_REG_READ4(long, "fchmodat2",
++                 int, dfd, const char *, path, vki_mode_t, mode,
++                 unsigned int, flags);
++   PRE_MEM_RASCIIZ( "fchmodat2(pathname)", ARG2 );
++}
++
+ PRE(sys_faccessat)
+ {
+    PRINT("sys_faccessat ( %ld, %#" FMT_REGWORD "x(%s), %ld )",
+diff --git a/coregrind/m_syswrap/syswrap-mips32-linux.c b/coregrind/m_syswrap/syswrap-mips32-linux.c
+index 6268a00dd..74a1f6eac 100644
+--- a/coregrind/m_syswrap/syswrap-mips32-linux.c
++++ b/coregrind/m_syswrap/syswrap-mips32-linux.c
+@@ -1143,6 +1143,8 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINX_ (__NR_faccessat2,             sys_faccessat2),              // 439
+ 
+    LINXY(__NR_epoll_pwait2,      sys_epoll_pwait2),      // 441
++
++   LINX_(__NR_fchmodat2,               sys_fchmodat2),               // 452
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
+diff --git a/coregrind/m_syswrap/syswrap-mips64-linux.c b/coregrind/m_syswrap/syswrap-mips64-linux.c
+index 6cdf25893..4e8508b7a 100644
+--- a/coregrind/m_syswrap/syswrap-mips64-linux.c
++++ b/coregrind/m_syswrap/syswrap-mips64-linux.c
+@@ -820,6 +820,7 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY (__NR_close_range, sys_close_range),
+    LINX_ (__NR_faccessat2, sys_faccessat2),
+    LINXY(__NR_epoll_pwait2, sys_epoll_pwait2),
++   LINX_ (__NR_fchmodat2, sys_fchmodat2),
+ };
+ 
+ SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-nanomips-linux.c b/coregrind/m_syswrap/syswrap-nanomips-linux.c
+index d724cde74..7859900c1 100644
+--- a/coregrind/m_syswrap/syswrap-nanomips-linux.c
++++ b/coregrind/m_syswrap/syswrap-nanomips-linux.c
+@@ -829,6 +829,7 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINXY (__NR_close_range,            sys_close_range),
+    LINX_ (__NR_faccessat2,             sys_faccessat2),
+    LINXY (__NR_epoll_pwait2,           sys_epoll_pwait2),
++   LINX_ (__NR_fchmodat2,              sys_fchmodat2),
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
+diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+index c0cfef235..1e19116ee 100644
+--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+@@ -1063,6 +1063,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINX_(__NR_faccessat2,        sys_faccessat2),       // 439
+ 
+    LINXY (__NR_epoll_pwait2,     sys_epoll_pwait2),      // 441
++
++   LINX_ (__NR_fchmodat2,        sys_fchmodat2),         // 452
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+index f5976f30c..1097212a4 100644
+--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+@@ -1032,6 +1032,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINX_(__NR_faccessat2,        sys_faccessat2),       // 439
+ 
+    LINXY (__NR_epoll_pwait2,     sys_epoll_pwait2),      // 441
++
++   LINX_ (__NR_fchmodat2,        sys_fchmodat2),         // 452
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
+index afba154e7..3588672c7 100644
+--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
++++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
+@@ -873,6 +873,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINX_(__NR_faccessat2,  sys_faccessat2),                           // 439
+ 
+    LINXY(__NR_epoll_pwait2, sys_epoll_pwait2),                        // 441
++
++   LINX_ (__NR_fchmodat2, sys_fchmodat2),                             // 452
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
+index da4fd8fa2..58badc6b0 100644
+--- a/coregrind/m_syswrap/syswrap-x86-linux.c
++++ b/coregrind/m_syswrap/syswrap-x86-linux.c
+@@ -1658,6 +1658,8 @@ static SyscallTableEntry syscall_table[] = {
+    LINXY(__NR_epoll_pwait2,      sys_epoll_pwait2),     // 441
+ 
+    LINXY(__NR_memfd_secret,      sys_memfd_secret),      // 447
++
++   LINX_(__NR_fchmodat2,         sys_fchmodat2),         // 452
+ };
+ 
+ SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
+diff --git a/include/vki/vki-scnums-shared-linux.h b/include/vki/vki-scnums-shared-linux.h
+index 542382b53..a4cd87149 100644
+--- a/include/vki/vki-scnums-shared-linux.h
++++ b/include/vki/vki-scnums-shared-linux.h
+@@ -50,4 +50,6 @@
+ 
+ #define __NR_memfd_secret		447
+ 
++#define __NR_fchmodat2		452
++
+ #endif
+-- 
+2.44.0
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch b/poky/meta/recipes-devtools/valgrind/valgrind/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch
new file mode 100644
index 0000000..4e91855
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch
@@ -0,0 +1,137 @@
+From 41ff9aa49f6c54c66d0e6b37f265fd9cb0176057 Mon Sep 17 00:00:00 2001
+From: Paul Floyd <pjfloyd@wanadoo.fr>
+Date: Sun, 17 Dec 2023 14:18:51 +0100
+Subject: [PATCH 4/4] Bug 478624 - Valgrind incompatibility with binutils-2.42
+ on x86 with new nop patterns (unhandled instruction bytes: 0x2E 0x8D 0xB4
+ 0x26)
+
+It was a bit of a struggle to get the testcase to build
+with both clang and gcc (oddly enough gcc was more difficult) so
+I just resorted to using .byte arrays.
+
+(cherry picked from commit d35005cef8ad8207542738812705ceabf137d7e0)
+
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=41ff9aa49f6c54c66d0e6b37f265fd9cb0176057]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .gitignore                                 |  1 +
+ NEWS                                       |  2 ++
+ VEX/priv/guest_x86_toIR.c                  | 22 +++++++++++++-
+ none/tests/x86/Makefile.am                 |  2 ++
+ none/tests/x86/gnu_binutils_nop.c          | 34 ++++++++++++++++++++++
+ none/tests/x86/gnu_binutils_nop.stderr.exp |  0
+ none/tests/x86/gnu_binutils_nop.vgtest     |  2 ++
+ 7 files changed, 62 insertions(+), 1 deletion(-)
+ create mode 100644 none/tests/x86/gnu_binutils_nop.c
+ create mode 100644 none/tests/x86/gnu_binutils_nop.stderr.exp
+ create mode 100644 none/tests/x86/gnu_binutils_nop.vgtest
+
+--- a/NEWS
++++ b/NEWS
+@@ -9,6 +9,8 @@ The following bugs have been fixed or re
+         file produced by mold
+ 476708  valgrind-monitor.py regular expressions should use raw strings
+ 477198  Add fchmodat2 syscall on linux
++478624  Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns
++        (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26)
+ 
+ To see details of a given bug, visit
+   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
+--- a/VEX/priv/guest_x86_toIR.c
++++ b/VEX/priv/guest_x86_toIR.c
+@@ -8198,7 +8198,7 @@ DisResult disInstr_X86_WRK (
+          delta += 5;
+          goto decode_success;
+       }
+-      /* Don't barf on recent binutils padding,
++      /* Don't barf on recent (2010) binutils padding,
+          all variants of which are: nopw %cs:0x0(%eax,%eax,1)
+          66 2e 0f 1f 84 00 00 00 00 00
+          66 66 2e 0f 1f 84 00 00 00 00 00
+@@ -8222,6 +8222,26 @@ DisResult disInstr_X86_WRK (
+             goto decode_success;
+          }
+       }
++
++      /* bug478624 GNU binutils uses a leal of esi into itself with
++         a zero offset and CS prefix as an 8 byte no-op (Dec 2023).
++         Since the CS prefix is hardly ever used we don't do much
++         to decode it, just a few cases for conditional branches.
++         So add handling here with other pseudo-no-ops.
++       */
++      if (code[0] == 0x2E && code[1] == 0x8D) {
++         if (code[2] == 0x74 && code[3] == 0x26 && code[4] == 0x00) {
++            DIP("leal %%cs:0(%%esi,%%eiz,1),%%esi\n");
++            delta += 5;
++            goto decode_success;
++         }
++         if (code[2] == 0xB4 && code[3] == 0x26 && code[4] == 0x00
++             && code[5] == 0x00 && code[6] == 0x00 && code[7] == 0x00) {
++            DIP("leal %%cs:0(%%esi,%%eiz,1),%%esi\n");
++            delta += 8;
++            goto decode_success;
++         }
++      }
+ 
+       // Intel CET requires the following opcodes to be treated as NOPs
+       // with any prefix and ModRM, SIB and disp combination:
+--- a/none/tests/x86/Makefile.am
++++ b/none/tests/x86/Makefile.am
+@@ -52,6 +52,7 @@ EXTRA_DIST = \
+ 	fxtract.stdout.exp fxtract.stderr.exp fxtract.vgtest \
+ 	fxtract.stdout.exp-older-glibc \
+ 	getseg.stdout.exp getseg.stderr.exp getseg.vgtest \
++	gnu_binutils_nop.stderr.exp gnu_binutils_nop.vgtest \
+ 	incdec_alt.stdout.exp incdec_alt.stderr.exp incdec_alt.vgtest \
+ 	int.stderr.exp int.stdout.exp int.disabled \
+ 	$(addsuffix .stderr.exp,$(INSN_TESTS)) \
+@@ -100,6 +101,7 @@ check_PROGRAMS = \
+ 	fpu_lazy_eflags \
+ 	fxtract \
+ 	getseg \
++	gnu_binutils_nop \
+ 	incdec_alt \
+ 	$(INSN_TESTS) \
+ 	int \
+--- /dev/null
++++ b/none/tests/x86/gnu_binutils_nop.c
+@@ -0,0 +1,34 @@
++int main(void)
++{
++    // GNU binutils uses various opcodes as alternatives for nop
++    // the idea is that it is faster to execute one large opcode
++    // with no side-effects than multiple repetitions of the
++    // single byte 'nop'. This gives more choice when code
++    // needs to be padded.
++   
++   // the following is based on
++   // https://sourceware.org/cgit/binutils-gdb/tree/gas/config/tc-i386.c#n1256
++
++    // one byte
++    __asm__ __volatile__("nop");
++    // two bytes
++    __asm__ __volatile__("xchg %ax,%ax");
++    // three bytes
++    //__asm__ __volatile__("leal 0(%esi),%esi");
++    __asm__ __volatile__(".byte 0x8d,0x76,0x00");
++    // four bytes
++    //__asm__ __volatile__("leal 0(%esi,%eiz),%esi");
++    __asm__ __volatile__(".byte 0x8d,0x74,0x26,0x00");
++    // five bytes
++    //__asm__ __volatile__("leal %cs:0(%esi,%eiz),%esi");
++    __asm__ __volatile__(".byte 0x2e,0x8d,0x74,0x26,0x00");
++    // six bytes
++    //__asm__ __volatile__("leal 0L(%esi),%esi");
++    __asm__ __volatile__(".byte 0x8d,0xb6,0x00,0x00,0x00,0x00");
++    // seven bytes
++    //__asm__ __volatile__("leal 0L(%esi,%eiz),%esi");
++    __asm__ __volatile__(".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00");
++    // eight bytes
++    //__asm__ __volatile__("leal %cs:0L(%esi,%eiz),%esi");
++    __asm__ __volatile__(".byte 0x2e,0x8d,0xb4,0x26,0x00,0x00,0x00,0x00");
++}
+--- /dev/null
++++ b/none/tests/x86/gnu_binutils_nop.vgtest
+@@ -0,0 +1,2 @@
++prog: gnu_binutils_nop
++vgopts: -q
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb
index 74ac7ec..563d99f 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb
@@ -33,6 +33,10 @@
            file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
            file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
            file://0001-docs-Disable-manual-validation.patch \
+           file://0001-valgrind-monitor.py-regular-expressions-should-use-r.patch \
+           file://0002-Bug-476548-valgrind-3.22.0-fails-on-assertion-when-l.patch \
+           file://0003-Add-fchmodat2-syscall-on-linux.patch \
+           file://0004-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch \
            "
 SRC_URI[sha256sum] = "c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c"
 UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-extended/bash/bash.inc b/poky/meta/recipes-extended/bash/bash.inc
index 2c3e605..e541161 100644
--- a/poky/meta/recipes-extended/bash/bash.inc
+++ b/poky/meta/recipes-extended/bash/bash.inc
@@ -74,7 +74,8 @@
 		mv ${D}${bindir}/bash ${D}${base_bindir}
 	fi
 }
-do_install:append:class-target () {
+
+fix_absolute_paths () {
 	# Clean buildhost references in bashbug
 	sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
 		-e "s,-I${WORKDIR}/\S* ,,g" \
@@ -93,6 +94,14 @@
 		${D}${libdir}/bash/Makefile.inc
 }
 
+do_install:append:class-target () {
+	fix_absolute_paths
+}
+
+do_install:append:class-nativesdk () {
+	fix_absolute_paths
+}
+
 do_install_ptest () {
 	make INSTALL_TEST_DIR=${D}${PTEST_PATH}/tests install-test
 	cp ${B}/Makefile ${D}${PTEST_PATH}
@@ -102,6 +111,7 @@
 	install -D ${WORKDIR}/run-bash-ptests ${D}${PTEST_PATH}/run-bash-ptests
         sed -i -e 's/^Makefile/_Makefile/' -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
 	    -e 's|${DEBUG_PREFIX_MAP}||g' \
+	    -e 's|${BUILD_LDFLAGS}||g' \
 	    -e "s,${S},,g" -e "s,${B},,g" -e "s,${STAGING_DIR_NATIVE},,g" \
 	    -e 's:${HOSTTOOLS_DIR}/::g' \
 	    -e 's:${UNINATIVE_LOADER}:${base_bindir}/false:g' \
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.4.bb b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.4.bb
index 16c7a60..aa526e9 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.4.bb
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.4.bb
@@ -20,13 +20,11 @@
 
 inherit autotools pkgconfig
 
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gssapi] = "--enable-gssapi,--disable-gssapi,krb5"
-
 PACKAGECONFIG ??= "\
 	${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
 "
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+PACKAGECONFIG[gssapi] = "--enable-gssapi,--disable-gssapi,krb5"
 
 do_install:append() {
 	test -e ${D}${sysconfdir}/netconfig && chown root:root ${D}${sysconfdir}/netconfig
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-scenario_groups-default-remove-connectors.patch b/poky/meta/recipes-extended/ltp/ltp/0001-scenario_groups-default-remove-connectors.patch
new file mode 100644
index 0000000..4a50d1a
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-scenario_groups-default-remove-connectors.patch
@@ -0,0 +1,34 @@
+From 14c710cae38aa96bd8d681e891b6a1d691f99988 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Thu, 14 Mar 2024 09:47:10 +0800
+Subject: [PATCH] scenario_groups/default: remove connectors
+
+runtest/connectors was removed in 9b642d89c, thus update scenario_groups/default.
+
+Fixes: 9b642d89c ("runtest: Merge runtest/connectors to kernel_misc")
+Closes: https://github.com/linux-test-project/ltp/pull/1144
+
+Upstream-Status: Backport from
+[https://github.com/linux-test-project/ltp/commit/14c710ca]
+
+Reviewed-by: Petr Vorel <pvorel@suse.cz>
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ scenario_groups/default | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/scenario_groups/default b/scenario_groups/default
+index f17b2061a..ec77d8fb8 100644
+--- a/scenario_groups/default
++++ b/scenario_groups/default
+@@ -16,7 +16,6 @@ controllers
+ filecaps
+ cap_bounds
+ fcntl-locktests
+-connectors
+ power_management_tests
+ hugetlb
+ commands
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp_20240129.bb b/poky/meta/recipes-extended/ltp/ltp_20240129.bb
index acd857f..3e89695 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20240129.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20240129.bb
@@ -28,6 +28,7 @@
 
 SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=https \
            file://0001-Remove-OOM-tests-from-runtest-mm.patch \
+           file://0001-scenario_groups-default-remove-connectors.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/man-pages/man-pages/0001-GNUmakefile-use-env-from-PATH.patch b/poky/meta/recipes-extended/man-pages/man-pages/0001-GNUmakefile-use-env-from-PATH.patch
new file mode 100644
index 0000000..a644d24
--- /dev/null
+++ b/poky/meta/recipes-extended/man-pages/man-pages/0001-GNUmakefile-use-env-from-PATH.patch
@@ -0,0 +1,31 @@
+From fbf0544138af02be4d6dd3085e7ecf98ad060bb4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 13 Mar 2024 17:30:02 +0100
+Subject: [PATCH] GNUmakefile: use env from PATH
+
+This allows using env from coreutils-native (rather than host env),
+which resolves the problem of missing -S option on distributions
+with much older coreutils such as Ubuntu 18.04.
+
+Once all autobuilder distros are newer than that, this patch
+can be dropped, together with corutils-native dependency.
+
+Upstream-Status: Inappropriate [made for obsolete host distros]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ GNUmakefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/GNUmakefile b/GNUmakefile
+index 1234194..65ba327 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -21,7 +21,7 @@
+ ########################################################################
+ 
+ 
+-SHELL := /usr/bin/env
++SHELL := env
+ .SHELLFLAGS := -S bash -Eeuo pipefail -c
+ 
+ 
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_6.06.bb b/poky/meta/recipes-extended/man-pages/man-pages_6.06.bb
index fa2e6b2..0f091bb 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_6.06.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_6.06.bb
@@ -19,12 +19,16 @@
                     "
 SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz \
            file://0001-man.ml-do-not-use-dev-stdin.patch \
+           file://0001-GNUmakefile-use-env-from-PATH.patch \
            "
 
 SRC_URI[sha256sum] = "006906e7be81a71c2d347809597bcb91485fa7fa488acdaa79e681ddfa894568"
 
 inherit manpages
 
+# can be dropped when ubuntu 18.04 is not in use anymore
+DEPENDS += "coreutils-native"
+
 MAN_PKG = "${PN}"
 
 PACKAGECONFIG ??= ""
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-pam_namespace-include-stdint-h.patch b/poky/meta/recipes-extended/pam/libpam/0001-pam_namespace-include-stdint-h.patch
new file mode 100644
index 0000000..124e5f1
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-pam_namespace-include-stdint-h.patch
@@ -0,0 +1,42 @@
+From cc9d40b7cdbd3e15ccaa324a0dda1680ef9dea13 Mon Sep 17 00:00:00 2001
+From: Jacob Heider <jacob@pkgx.dev>
+Date: Wed, 17 Jan 2024 11:49:26 -0500
+Subject: [PATCH] pam_namespace: include stdint.h
+
+pam_namespace.c makes use of SIZE_MAX but doesn't include stdint.h,
+resulting in the following build failures on 1.6.0:
+
+  pam_namespace.c: In function 'process_line':
+  pam_namespace.c:649:41: error: 'SIZE_MAX' undeclared (first use in this function)
+    649 |         if (count > UINT_MAX || count > SIZE_MAX / sizeof(uid_t)) {
+        |                                         ^~~~~~~~
+  pam_namespace.c:41:1: note: 'SIZE_MAX' is defined in header '<stdint.h>'; did you forget to '#include <stdint.h>'?
+     40 | #include "argv_parse.h"
+    +++ |+#include <stdint.h>
+     41 |
+  pam_namespace.c:649:41: note: each undeclared identifier is reported only once for each function it appears in
+    649 |         if (count > UINT_MAX || count > SIZE_MAX / sizeof(uid_t)) {
+        |                                         ^~~~~~~~
+
+Fixes: v1.6.0~100 ("pam_namespace: validate amount of uids in config")
+Resolves: https://github.com/linux-pam/linux-pam/issues/733
+
+Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/commit/cc9d40b7cdbd3e15ccaa324a0dda1680ef9dea13]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/pam_namespace/pam_namespace.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/pam_namespace/pam_namespace.c b/modules/pam_namespace/pam_namespace.c
+index f72d67189..b16731c22 100644
+--- a/modules/pam_namespace/pam_namespace.c
++++ b/modules/pam_namespace/pam_namespace.c
+@@ -34,6 +34,8 @@
+ 
+ #define _ATFILE_SOURCE
+ 
++#include "config.h"
++#include <stdint.h>
+ #include "pam_cc_compat.h"
+ #include "pam_inline.h"
+ #include "pam_namespace.h"
diff --git a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
index 4dd9890..2a53bb4 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
@@ -24,6 +24,7 @@
            file://0001-examples-Replace-use-of-termio.h-with-termios.h.patch \
            file://run-ptest \
            file://pam-volatiles.conf \
+           file://0001-pam_namespace-include-stdint-h.patch \
            "
 
 SRC_URI[sha256sum] = "7ac4b50feee004a9fa88f1dfd2d2fa738a82896763050cd773b3c54b0a818283"
diff --git a/poky/meta/recipes-extended/shadow/files/0001-lib-copydir-copy_entry-use-temporary-stat-buffer.patch b/poky/meta/recipes-extended/shadow/files/0001-lib-copydir-copy_entry-use-temporary-stat-buffer.patch
new file mode 100644
index 0000000..d278a4c
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/0001-lib-copydir-copy_entry-use-temporary-stat-buffer.patch
@@ -0,0 +1,39 @@
+From af4b8cb780587aa736692a3baa76b60474f19c5d Mon Sep 17 00:00:00 2001
+From: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+Date: Mon, 18 Mar 2024 12:14:21 +0100
+Subject: [PATCH] lib/copydir:copy_entry(): use temporary stat buffer
+
+There are no guarantees that fstatat() does not clobber the stat
+buffer on errors.
+
+Use a temporary buffer so that the following code sees correct
+attributes of the source entry.
+
+Upstream-Status: Submitted [https://github.com/shadow-maint/shadow/pull/974]
+
+Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+---
+ lib/copydir.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: shadow-4.14.2/lib/copydir.c
+===================================================================
+--- shadow-4.14.2.orig/lib/copydir.c
++++ shadow-4.14.2/lib/copydir.c
+@@ -415,6 +415,7 @@ static int copy_entry (const struct path
+ {
+ 	int err = 0;
+ 	struct stat sb;
++	struct stat tmp_sb;
+ 	struct link_name *lp;
+ 	struct timespec mt[2];
+ 
+@@ -436,7 +437,7 @@ static int copy_entry (const struct path
+ 		 * If the destination already exists do nothing.
+ 		 * This is after the copy_dir above to still iterate into subdirectories.
+ 		 */
+-		if (fstatat(dst->dirfd, dst->name, &sb, AT_SYMLINK_NOFOLLOW) != -1) {
++		if (fstatat(dst->dirfd, dst->name, &tmp_sb, AT_SYMLINK_NOFOLLOW) != -1) {
+ 			return 0;
+ 		}
+ 
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index 16b99a0..40e6ab0 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -12,6 +12,7 @@
 
 GITHUB_BASE_URI = "https://github.com/shadow-maint/shadow/releases"
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
+           file://0001-lib-copydir-copy_entry-use-temporary-stat-buffer.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://useradd \
            "
@@ -159,7 +160,8 @@
         binaries=$(find ${D}${base_bindir}/ ${D}${base_sbindir}/ ${D}${bindir}/ ${D}${sbindir}/ -executable -type f)
         chrpath -k -r ${STAGING_DIR_NATIVE}/lib-shadow-deps $binaries
         mkdir -p ${D}${STAGING_DIR_NATIVE}/lib-shadow-deps/
-        install ${STAGING_LIBDIR_NATIVE}/libattr.so.* ${STAGING_LIBDIR_NATIVE}/libbsd.so.* ${STAGING_LIBDIR_NATIVE}/libmd.so.* ${D}${STAGING_DIR_NATIVE}/lib-shadow-deps/
+        libattr=${@bb.utils.contains('DISTRO_FEATURES', 'xattr', "${STAGING_LIBDIR_NATIVE}/libattr.so.*", '', d)}
+        install $libattr ${STAGING_LIBDIR_NATIVE}/libbsd.so.* ${STAGING_LIBDIR_NATIVE}/libmd.so.* ${D}${STAGING_DIR_NATIVE}/lib-shadow-deps/
         install ${D}${libdir}/*.so.* ${D}${STAGING_DIR_NATIVE}/lib-shadow-deps/
 }
 
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_45.3.bb b/poky/meta/recipes-gnome/epiphany/epiphany_46.0.bb
similarity index 94%
rename from poky/meta/recipes-gnome/epiphany/epiphany_45.3.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_46.0.bb
index eec52e3..9052fe1 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_45.3.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_46.0.bb
@@ -31,7 +31,7 @@
            file://migrator.patch \
            file://distributor.patch \
            "
-SRC_URI[archive.sha256sum] = "6c302e9bdd66290cb0e26f62843cd4c435a4955abdbb4f151f07dc80495d6730"
+SRC_URI[archive.sha256sum] = "f4348f2cf51c07c0c106d130172d4d23f2cd4068771e1de007b758ca2ade5660"
 
 # Developer mode enables debugging
 PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
diff --git a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_45.0.bb b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb
similarity index 84%
rename from poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_45.0.bb
rename to poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb
index 657f9d6..8260c3d 100644
--- a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_45.0.bb
+++ b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_46.0.bb
@@ -12,4 +12,4 @@
 
 inherit gnomebase gsettings gobject-introspection gettext
 
-SRC_URI[archive.sha256sum] = "365c8d04daf79b38c8b3dc9626349a024f9e4befdd31fede74b42f7a9fbe0ae2"
+SRC_URI[archive.sha256sum] = "493a46a1161b6388d57aa72f632a79ce96c42d5ffbd1d0b00f496ec5876f8575"
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
index 4a04c06..e1603b4 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -33,7 +33,10 @@
 EXTRA_OEMESON = "-Dxinerama=no -Dtests=false"
 EXTRA_OEMESON:append:class-native = " -Ddemos=false -Dexamples=false"
 
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)}"
+PACKAGECONFIG ??= " \
+	${@bb.utils.filter('DISTRO_FEATURES', 'opengl x11', d)} \
+	${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland', '', d)} \
+"
 PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
 PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
 
diff --git a/poky/meta/recipes-gnome/gtk+/gtk4_4.12.5.bb b/poky/meta/recipes-gnome/gtk+/gtk4_4.14.1.bb
similarity index 96%
rename from poky/meta/recipes-gnome/gtk+/gtk4_4.12.5.bb
rename to poky/meta/recipes-gnome/gtk+/gtk4_4.14.1.bb
index a418ef8..ce73376 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk4_4.12.5.bb
+++ b/poky/meta/recipes-gnome/gtk+/gtk4_4.14.1.bb
@@ -37,7 +37,7 @@
 UPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
 
 SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz"
-SRC_URI[sha256sum] = "28b356d590ee68ef626e2ef9820b2dd21441484a9a042a5a3f0c40e9dfc4f4f8"
+SRC_URI[sha256sum] = "fcefb3f132f8cc4711a9efa5b353c9ae9bb5eeff0246fa74dbc2f2f839b9e308"
 
 S = "${WORKDIR}/gtk-${PV}"
 
@@ -71,7 +71,6 @@
 PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups,cups gtk4-printbackend-cups"
 PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord"
 PACKAGECONFIG[iso-codes] = ",,iso-codes,iso-codes"
-PACKAGECONFIG[ffmpeg] = "-Dmedia-ffmpeg=enabled,-Dmedia-ffmpeg=disabled,ffmpeg"
 # gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad
 PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad"
 PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker,tracker-miners"
diff --git a/poky/meta/recipes-gnome/libadwaita/libadwaita_1.4.3.bb b/poky/meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb
similarity index 87%
rename from poky/meta/recipes-gnome/libadwaita/libadwaita_1.4.3.bb
rename to poky/meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb
index e3f849a..b0b1e45 100644
--- a/poky/meta/recipes-gnome/libadwaita/libadwaita_1.4.3.bb
+++ b/poky/meta/recipes-gnome/libadwaita/libadwaita_1.5.0.bb
@@ -11,7 +11,7 @@
 
 inherit gnomebase gobject-introspection gi-docgen vala features_check
 
-SRC_URI[archive.sha256sum] = "ae9622222b0eb18e23675655ad2ba01741db4d8655a796f4cf077b093e2f5841"
+SRC_URI[archive.sha256sum] = "fd92287df9bb95c963654fb6e70d3e082e2bcb37b147e0e3c905567167993783"
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch b/poky/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
new file mode 100644
index 0000000..f6d95c8
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
@@ -0,0 +1,56 @@
+From fe4600de549549fbb3033fc1b37904ba6b3fe2af Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Fri, 8 Mar 2024 15:53:11 +0100
+Subject: [PATCH] Revert "meson: do not pull in clc for clover"
+
+This reverts commit 815a6647eb1383e9dc704ffcc266d85f3b13338a.
+Upstream-Status: Inappropriate [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27783/diffs?commit_id=a976f2c9f0c07f9e06cc9affd9124b45bc60c2bd]
+
+Once the merge request above was added, it will only be possible to provide opencl spir-v with gallium-rusticl=true. This is not yet supported in the mesa recipe.
+For now reverting this commit allows to still use clover with opencl-spirv, which would otherwise be broken starting from mesa 24.0.2.
+
+After it was merged, this patch needs to be removed and rusticl support will be required
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build              | 3 ++-
+ src/compiler/meson.build | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 25e92ea5f95..3956e19c08f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -818,6 +818,7 @@ if _opencl != 'disabled'
+     error('The Clover OpenCL state tracker requires rtti')
+   endif
+ 
++  with_clc = true
+   with_gallium_opencl = true
+   with_opencl_icd = _opencl == 'icd'
+ else
+@@ -842,7 +843,7 @@ if with_gallium_rusticl
+ endif
+ 
+ dep_clc = null_dep
+-if with_gallium_opencl or with_clc
++if with_clc
+   dep_clc = dependency('libclc')
+ endif
+ 
+diff --git a/src/compiler/meson.build b/src/compiler/meson.build
+index 8d73544c6d8..1dae56d1b2b 100644
+--- a/src/compiler/meson.build
++++ b/src/compiler/meson.build
+@@ -79,7 +79,7 @@ subdir('nir')
+ 
+ subdir('spirv')
+ 
+-if with_clc
++if with_opencl_spirv
+   subdir('clc')
+ endif
+ if with_gallium
+-- 
+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
deleted file mode 100644
index ceb0153..0000000
--- a/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-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
-
-These headers are not available for C files in llvm 17+
-and they seem to be not needed to compile after all with llvm 17
-so add conditions to exclude them for llvm >= 17
-
-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/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
-index cd2108f..b1a4d03 100644
---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
-+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
-@@ -46,15 +46,19 @@
- #if GALLIVM_USE_NEW_PASS == 1
- #include <llvm-c/Transforms/PassBuilder.h>
- #elif GALLIVM_HAVE_CORO == 1
-+#if LLVM_VERSION_MAJOR < 17
- #include <llvm-c/Transforms/Scalar.h>
--#if LLVM_VERSION_MAJOR >= 7
-+#endif
-+#if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 17
- #include <llvm-c/Transforms/Utils.h>
- #endif
- #if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64)
- #include <llvm-c/Transforms/IPO.h>
- #endif
-+#if LLVM_VERSION_MAJOR < 17
- #include <llvm-c/Transforms/Coroutines.h>
- #endif
-+#endif
- 
- unsigned gallivm_perf = 0;
- 
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 12d7a18..6e96190 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -17,9 +17,9 @@
 SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
            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 \
+           file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \
 "
 
 SRC_URI[sha256sum] = "94e28a8edad06d8ed2b83eb53f253b9eb5aa62c3080f939702e1b3039b56c9e8"
@@ -113,6 +113,7 @@
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}"
+VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
 PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
 
 # mesa development and testing tools support, per driver
@@ -122,6 +123,7 @@
 TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
 TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
 TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
+TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"
 
 # dependencies for tools.
 TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}"
@@ -189,6 +191,8 @@
 PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
 PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
 
+PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
+
 PACKAGECONFIG[lima] = ""
 GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
 
@@ -327,7 +331,7 @@
 PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"
 
 FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
-FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan"
+FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
 FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
 FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
 FILES:libgbm = "${libdir}/libgbm.so.*"
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 e180664..2875dd5 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,28 +1,83 @@
-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
+From 6c852e6ac292008137a6f3a8aa908090bb5b4b11 Mon Sep 17 00:00:00 2001
+From: Erik Faye-Lund <erik.faye-lund@collabora.com>
+Date: Tue, 19 Mar 2024 16:34:02 +0100
+Subject: [PATCH] properly check for libgen.h
 
-musl does not provide GNU basename like string.h on glibc based systems
-does, it does provide the POSIX compliant basename function therefore
-allow to include libgen.h on non-glibc based linux systems
+Some users are reporting that basename is not available when building on
+Linux with musl libc. And since the POSIX spec[1] says that basename is
+defined in libgen.h, we should include that when available.
 
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/877]
+So let's properly detect the header, and include it if it exists. This
+should hopefully make things a bit more robust.
+
+Since we're also including this from the CL program-tester, let's
+rearrange the includes a bit so we know that config.h has been included.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/888]
+Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- tests/util/piglit-util.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ CMakeLists.txt                    | 1 +
+ tests/cl/program/program-tester.c | 5 ++++-
+ tests/util/config.h.in            | 1 +
+ tests/util/piglit-util.h          | 4 ++--
+ 4 files changed, 8 insertions(+), 3 deletions(-)
 
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dd2bf67125..5563fe0e20 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -492,6 +492,7 @@ check_include_file(unistd.h    HAVE_UNISTD_H)
+ check_include_file(fcntl.h     HAVE_FCNTL_H)
+ check_include_file(linux/sync_file.h HAVE_LINUX_SYNC_FILE_H)
+ check_include_file(endian.h    HAVE_ENDIAN_H)
++check_include_file(libgen.h    HAVE_LIBGEN_H)
+ 
+ if(DEFINED PIGLIT_INSTALL_VERSION)
+ 	set(PIGLIT_INSTALL_VERSION_SUFFIX
+diff --git a/tests/cl/program/program-tester.c b/tests/cl/program/program-tester.c
+index 97fe64906d..e47fb5aacc 100644
+--- a/tests/cl/program/program-tester.c
++++ b/tests/cl/program/program-tester.c
+@@ -31,10 +31,13 @@
+ #include <inttypes.h>
+ #include <math.h>
+ #include <regex.h>
+-#include <libgen.h>
+ 
+ #include "piglit-framework-cl-program.h"
+ 
++#ifdef HAVE_LIBGEN_H
++#include <libgen.h>
++#endif
++
+ /* Regexes */
+ 
+ /*
+diff --git a/tests/util/config.h.in b/tests/util/config.h.in
+index 8ed5af1709..437eb91418 100644
+--- a/tests/util/config.h.in
++++ b/tests/util/config.h.in
+@@ -16,3 +16,4 @@
+ #cmakedefine HAVE_SYS_RESOURCE_H 1
+ #cmakedefine HAVE_UNISTD_H 1
+ #cmakedefine HAVE_ENDIAN_H 1
++#cmakedefine HAVE_LIBGEN_H 1
 diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
-index 4d3606c70..fdfd903b3 100644
+index 4d3606c708..de999980b6 100644
 --- a/tests/util/piglit-util.h
 +++ b/tests/util/piglit-util.h
-@@ -52,7 +52,7 @@ extern "C" {
+@@ -52,8 +52,8 @@ extern "C" {
  #include <math.h>
  #include <float.h>
  
 -#if defined(__APPLE__) || defined(__MINGW32__)
-+#if defined(__APPLE__) || defined(__MINGW32__) || (defined(__linux__) && !defined(__GLIBC__))
- #  include "libgen.h" // for basename
+-#  include "libgen.h" // for basename
++#ifdef HAVE_LIBGEN_H
++#  include <libgen.h> // for basename
  #elif defined(_MSC_VER)
  
+ static inline char *
+-- 
+GitLab
+
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.33.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.33.bb
index c8875cc..074ea36 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.33.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.33.bb
@@ -12,7 +12,7 @@
 SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PV}/downloads/wayland-protocols-${PV}.tar.xz"
 SRC_URI[sha256sum] = "94f0c50b090d6e61a03f62048467b19abbe851be4e11ae7b36f65f8b98c3963a"
 
-UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
+UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags"
 
 inherit meson pkgconfig allarch
 
diff --git a/poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb b/poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb
index 657f67f..878c7a2 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-utils_1.2.0.bb
@@ -12,7 +12,7 @@
 SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz"
 SRC_URI[sha256sum] = "d9278c22554586881802540751bcc42569262bf80cd9ac9b0fd12ff4bd09a9e4"
 
-UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
+UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-utils/-/tags"
 
 inherit meson pkgconfig
 
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb
index 17e4a0c..6aa7606 100644
--- a/poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb
@@ -19,7 +19,7 @@
            "
 SRC_URI[sha256sum] = "1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842"
 
-UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
+UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland/-/tags"
 UPSTREAM_CHECK_REGEX = "wayland-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
 inherit meson pkgconfig ptest
diff --git a/poky/meta/recipes-graphics/wayland/weston_13.0.0.bb b/poky/meta/recipes-graphics/wayland/weston_13.0.0.bb
index c74f471..b728bd0 100644
--- a/poky/meta/recipes-graphics/wayland/weston_13.0.0.bb
+++ b/poky/meta/recipes-graphics/wayland/weston_13.0.0.bb
@@ -16,7 +16,7 @@
 
 SRC_URI[sha256sum] = "52ff1d4aa2394a2e416c85a338b627ce97fa71d43eb762fd4aaf145d36fc795a"
 
-UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
+UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/weston/-/tags"
 UPSTREAM_CHECK_REGEX = "weston-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
 inherit meson pkgconfig useradd
diff --git a/poky/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb b/poky/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb
index 8a93f8c..23ae0cb 100644
--- a/poky/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/pixman_0.42.2.bb
@@ -40,6 +40,8 @@
 EXTRA_OEMESON:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon",""," -Dneon=disabled",d)}"
 EXTRA_OEMESON:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon",""," -Dneon=disabled",d)}"
 
+EXTRA_OEMESON:append:class-native = " -Dopenmp=disabled"
+
 BBCLASSEXTEND = "native nativesdk"
 
 CVE_STATUS[CVE-2023-37769] = "not-applicable-config: stress-test is an uninstalled test"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
similarity index 98%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
index 1fd44f4..ff79bb9 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
@@ -28,7 +28,6 @@
     & Firmware-ene_firmware \
     & Firmware-fw_sst_0f28 \
     & Firmware-go7007 \
-    & Firmware-GPLv2 \
     & Firmware-hfi1_firmware \
     & Firmware-i915 \
     & Firmware-ibt_firmware \
@@ -77,6 +76,7 @@
     & Firmware-xc5000 \
     & Firmware-xc5000c \
     & WHENCE \
+    & GPL-2.0-or-later \
 "
 
 LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
@@ -102,7 +102,6 @@
                     file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \
                     file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \
                     file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \
-                    file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \
                     file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
                     file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
@@ -155,7 +154,7 @@
                     "
 # WHENCE checksum is defined separately to ease overriding it if
 # class-devupstream is selected.
-WHENCE_CHKSUM  = "a344e6c28970fc7daafa81c10247aeb6"
+WHENCE_CHKSUM  = "514da1cd8b363373030f0c16749feb8d"
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
@@ -182,7 +181,6 @@
 NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware"
 NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28"
 NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007"
-NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2"
 NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware"
 NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915"
 NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware"
@@ -243,20 +241,24 @@
 # Pin this to the 20220509 release, override this in local.conf
 SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae"
 
-SRC_URI[sha256sum] = "bf0f239dc0801e9d6bf5d5fb3e2f549575632cf4688f4348184199cb02c2bcd7"
+SRC_URI[sha256sum] = "b2327a54ad1897c828008caf63af5ee15469ba723a5016be58f2b44f07bd4b94"
 
 inherit allarch
 
 CLEANBROKEN = "1"
 
+# Use PACKAGECONFIG_CONFARGS to set the Makefile target
+PACKAGECONFIG ??= ""
+# Enabling dedup will turn duplicate firmware files into links
+PACKAGECONFIG[deduplicate] = "install,install-nodedup,rdfind-native"
+
 do_compile() {
 	:
 }
 
 do_install() {
-        # install-nodedup avoids rdfind dependency
-        oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install-nodedup
-        cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
+        oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' ${PACKAGECONFIG_CONFARGS}
+        cp LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
 }
 
 
@@ -319,7 +321,7 @@
              ${PN}-cirrus-license ${PN}-cirrus \
              ${PN}-cnm-license ${PN}-cnm \
              ${PN}-atheros-license ${PN}-ar5523 ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k ${PN}-ath3k \
-             ${PN}-gplv2-license ${PN}-carl9170 \
+             ${PN}-carl9170 \
              ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-qca \
              \
              ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \
@@ -336,6 +338,7 @@
              ${PN}-iwlwifi-7265 \
              ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
              ${PN}-iwlwifi-9000 \
+             ${PN}-iwlwifi-9260 \
              ${PN}-iwlwifi-misc \
              ${PN}-ibt-license ${PN}-ibt \
              ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
@@ -457,15 +460,11 @@
 RDEPENDS:${PN}-ath9k += "${PN}-atheros-license"
 
 # For carl9170
-LICENSE:${PN}-carl9170 = "Firmware-GPLv2"
-LICENSE:${PN}-gplv2-license = "Firmware-GPLv2"
 
-FILES:${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2"
 FILES:${PN}-carl9170 = " \
   ${nonarch_base_libdir}/firmware/carl9170*.fw \
 "
-
-RDEPENDS:${PN}-carl9170 += "${PN}-gplv2-license"
+LICENSE:${PN}-carl9170 = "GPL-2.0-or-later"
 
 # For QualCommAthos
 LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k & Firmware-atheros_firmware"
@@ -1190,6 +1189,7 @@
 LICENSE:${PN}-iwlwifi-8000c     = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-8265      = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-9000      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-9260      = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-misc      = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-license   = "Firmware-iwlwifi_firmware"
 
@@ -1217,6 +1217,7 @@
 FILES:${PN}-iwlwifi-8000c   = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode"
 FILES:${PN}-iwlwifi-8265   = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode"
 FILES:${PN}-iwlwifi-9000   = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode"
+FILES:${PN}-iwlwifi-9260   = "${nonarch_base_libdir}/firmware/iwlwifi-9260-*.ucode"
 FILES:${PN}-iwlwifi-misc   = " \
     ${nonarch_base_libdir}/firmware/iwlwifi-*.ucode \
     ${nonarch_base_libdir}/firmware/iwlwifi-*.pnvm \
@@ -1244,6 +1245,7 @@
 RDEPENDS:${PN}-iwlwifi-8000c     = "${PN}-iwlwifi-license"
 RDEPENDS:${PN}-iwlwifi-8265      = "${PN}-iwlwifi-license"
 RDEPENDS:${PN}-iwlwifi-9000      = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-9260      = "${PN}-iwlwifi-license"
 RDEPENDS:${PN}-iwlwifi-misc      = "${PN}-iwlwifi-license"
 
 # -iwlwifi-misc is a "catch all" package that includes all the iwlwifi
@@ -1477,8 +1479,10 @@
 RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${PN}-qcom-sc8280xp-lenovo-x13s-compat"
 RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${PN}-qcom-sc8280xp-lenovo-x13s-compat"
 
+LICENSE:${PN}-liquidui = "Firmware-cavium_liquidio"
 FILES:${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio"
 
+LICENSE:${PN}-mellanox = "WHENCE"
 FILES:${PN}-mellanox = "${nonarch_base_libdir}/firmware/mellanox"
 
 LICENSE:${PN}-prestera = "Firmware-Marvell"
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 5449b7e..bb9ba49 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-03-03 16:30:03.739466+00:00 for version 6.6.20
+# Generated at 2024-03-28 16:40:04.102652+00:00 for version 6.6.23
 
 python check_kernel_cve_status_version() {
-    this_version = "6.6.20"
+    this_version = "6.6.23"
     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 bd3e5a9..9bd2198 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -14,7 +14,7 @@
 # provide this .inc to set specific revisions
 include recipes-kernel/linux/linux-yocto-dev-revisions.inc
 
-KBRANCH = "v6.8/standard/base"
+KBRANCH = "v6.9/standard/base"
 KMETA = "kernel-meta"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \
@@ -28,7 +28,7 @@
 SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 
-LINUX_VERSION ?= "6.8"
+LINUX_VERSION ?= "6.9"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git"
 
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 e80594b..a44a084 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 ?= "7c5911ab2e70bf84bb38a598b2a7e094618a9620"
-SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
+SRCREV_machine ?= "19813826de57a6425518c7b3daf8dd6a04d2321f"
+SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b"
 
 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.20"
+LINUX_VERSION ?= "6.6.23"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
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 c2a0387..db9e252 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.20"
+LINUX_VERSION ?= "6.6.23"
 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 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
+SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b"
 
 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 0f62dea..8fb9867 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 ?= "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"
+SRCREV_machine:qemuarm ?= "ceb94a85299b59d8840ed7ed392b1d3e4c727678"
+SRCREV_machine:qemuarm64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemuloongarch64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemumips ?= "c79ffc89f8909f60de52005ef258db9752634eda"
+SRCREV_machine:qemuppc ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemuriscv64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemuriscv32 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemux86 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemux86-64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemumips64 ?= "b0a73fa83073c8d7d7bc917bcbeac88d296ebe38"
+SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b"
 
 # 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 ?= "9b4a8eac17f0d840729384618b4b1e876233026c"
+SRCREV_machine:class-devupstream ?= "5c7587f69194bc9fc714953ab4c7203e6e68885b"
 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.20"
+LINUX_VERSION ?= "6.6.23"
 
 PV = "${LINUX_VERSION}+git"
 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch
new file mode 100644
index 0000000..9d5fd0d
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch
@@ -0,0 +1,93 @@
+From fec007d9630e010062cf5699a08460f71f46b527 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 08:54:42 -0400
+Subject: [PATCH 1/4] Fix: ASoC snd_doc_dapm on linux 6.9-rc1
+
+See upstream commit:
+
+    commit 7df3eb4cdb6bbfa482f51548b9fd47c2723c68ba
+    Author: Luca Ceresoli <luca.ceresoli@bootlin.com>
+    Date:   Wed Mar 6 10:30:01 2024 +0100
+
+        ASoC: trace: add event to snd_soc_dapm trace events
+
+        Add the event value to the snd_soc_dapm_start and snd_soc_dapm_done trace
+        events to make them more informative.
+
+        Trace before:
+
+                   aplay-229   [000]   250.140309: snd_soc_dapm_start:   card=vscn-2046
+                   aplay-229   [000]   250.167531: snd_soc_dapm_done:    card=vscn-2046
+                   aplay-229   [000]   251.169588: snd_soc_dapm_start:   card=vscn-2046
+                   aplay-229   [000]   251.195245: snd_soc_dapm_done:    card=vscn-2046
+
+        Trace after:
+
+                   aplay-214   [000]   693.290612: snd_soc_dapm_start:   card=vscn-2046 event=1
+                   aplay-214   [000]   693.315508: snd_soc_dapm_done:    card=vscn-2046 event=1
+                   aplay-214   [000]   694.537349: snd_soc_dapm_start:   card=vscn-2046 event=2
+                   aplay-214   [000]   694.563241: snd_soc_dapm_done:    card=vscn-2046 event=2
+
+Upstream-Status: Backport [88c4e0fe Fix: ASoC snd_doc_dapm on linux 6.9-rc1]
+
+Change-Id: If0d33544b8dd1dfb3d12ca9390892190fc0444b0
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/asoc.h | 33 +++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/include/instrumentation/events/asoc.h b/include/instrumentation/events/asoc.h
+index 21d13a0f..5126d4c1 100644
+--- a/include/instrumentation/events/asoc.h
++++ b/include/instrumentation/events/asoc.h
+@@ -51,6 +51,38 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_done,
+ 
+ )
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
++
++	TP_PROTO(struct snd_soc_card *card, int event),
++
++	TP_ARGS(card, event),
++
++	TP_FIELDS(
++		ctf_string(name, card->name)
++		ctf_integer(int, event, event)
++	)
++)
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_start,
++
++	asoc_snd_soc_dapm_start,
++
++	TP_PROTO(struct snd_soc_card *card, int event),
++
++	TP_ARGS(card, event)
++
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_done,
++
++	asoc_snd_soc_dapm_done,
++
++	TP_PROTO(struct snd_soc_card *card, int event),
++
++	TP_ARGS(card, event)
++
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
+ 
+ 	TP_PROTO(struct snd_soc_card *card),
+@@ -81,6 +113,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_done,
+ 	TP_ARGS(card)
+ 
+ )
++#endif
+ 
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_widget,
+ 
+-- 
+2.39.2
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch
deleted file mode 100644
index a0d932c..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 9e59c2f6387aeb832ae3af3095f987529722e08f Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 11:10:37 -0500
-Subject: [PATCH 1/5] Fix: sched_stat_runtime changed in linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit 5fe6ec8f6ab549b6422e41551abb51802bd48bc7
-    Author: Peter Zijlstra <peterz@infradead.org>
-    Date:   Mon Nov 6 13:41:43 2023 +0100
-
-        sched: Remove vruntime from trace_sched_stat_runtime()
-
-        Tracing the runtime delta makes sense, observer can sum over time.
-        Tracing the absolute vruntime makes less sense, inconsistent:
-        absolute-vs-delta, but also vruntime delta can be computed from
-        runtime delta.
-
-        Removing the vruntime thing also makes the two tracepoint sites
-        identical, allowing to unify the code in a later patch.
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I24ebb4e06dbb646a1af75ac62b74f3821ff197de
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/sched.h | 19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
-diff --git a/include/instrumentation/events/sched.h b/include/instrumentation/events/sched.h
-index 066a0f8..24cf37c 100644
---- a/include/instrumentation/events/sched.h
-+++ b/include/instrumentation/events/sched.h
-@@ -646,6 +646,24 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_stat_template, sched_stat_blocked,
- 	     TP_ARGS(tsk, delay))
- #endif
- 
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+/*
-+ * Tracepoint for accounting runtime (time the task is executing
-+ * on a CPU).
-+ */
-+LTTNG_TRACEPOINT_EVENT(sched_stat_runtime,
-+
-+	TP_PROTO(struct task_struct *tsk, u64 runtime),
-+
-+	TP_ARGS(tsk, runtime),
-+
-+	TP_FIELDS(
-+		ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
-+		ctf_integer(pid_t, tid, tsk->pid)
-+		ctf_integer(u64, runtime, runtime)
-+	)
-+)
-+#else
- /*
-  * Tracepoint for accounting runtime (time the task is executing
-  * on a CPU).
-@@ -663,6 +681,7 @@ LTTNG_TRACEPOINT_EVENT(sched_stat_runtime,
- 		ctf_integer(u64, vruntime, vruntime)
- 	)
- )
-+#endif
- 
- #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0) || \
- 	LTTNG_RT_KERNEL_RANGE(4,9,27,18, 4,10,0,0) || \
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch
new file mode 100644
index 0000000..6ea10ff
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch
@@ -0,0 +1,132 @@
+From d8379ec6365a925db33cae94fb6783cdbdb6a922 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 09:40:29 -0400
+Subject: [PATCH 2/4] Fix: ASoC add component to set_bias_level events in linux
+ 6.9-rc1
+
+See upstream commit:
+
+    commit 6ef46a69ec32fe1cf56de67742fcd01af4bf48af
+    Author: Luca Ceresoli <luca.ceresoli@bootlin.com>
+    Date:   Wed Mar 6 10:30:00 2024 +0100
+
+        ASoC: trace: add component to set_bias_level trace events
+
+        The snd_soc_bias_level_start and snd_soc_bias_level_done trace events
+        currently look like:
+
+                   aplay-229   [000]  1250.140778: snd_soc_bias_level_start: card=vscn-2046 val=1
+                   aplay-229   [000]  1250.140784: snd_soc_bias_level_done: card=vscn-2046 val=1
+                   aplay-229   [000]  1250.140786: snd_soc_bias_level_start: card=vscn-2046 val=2
+                   aplay-229   [000]  1250.140788: snd_soc_bias_level_done: card=vscn-2046 val=2
+            kworker/u8:1-21    [000]  1250.140871: snd_soc_bias_level_start: card=vscn-2046 val=1
+            kworker/u8:0-11    [000]  1250.140951: snd_soc_bias_level_start: card=vscn-2046 val=1
+            kworker/u8:0-11    [000]  1250.140956: snd_soc_bias_level_done: card=vscn-2046 val=1
+            kworker/u8:0-11    [000]  1250.140959: snd_soc_bias_level_start: card=vscn-2046 val=2
+            kworker/u8:0-11    [000]  1250.140961: snd_soc_bias_level_done: card=vscn-2046 val=2
+            kworker/u8:1-21    [000]  1250.167219: snd_soc_bias_level_done: card=vscn-2046 val=1
+            kworker/u8:1-21    [000]  1250.167222: snd_soc_bias_level_start: card=vscn-2046 val=2
+            kworker/u8:1-21    [000]  1250.167232: snd_soc_bias_level_done: card=vscn-2046 val=2
+            kworker/u8:0-11    [000]  1250.167440: snd_soc_bias_level_start: card=vscn-2046 val=3
+            kworker/u8:0-11    [000]  1250.167444: snd_soc_bias_level_done: card=vscn-2046 val=3
+            kworker/u8:1-21    [000]  1250.167497: snd_soc_bias_level_start: card=vscn-2046 val=3
+            kworker/u8:1-21    [000]  1250.167506: snd_soc_bias_level_done: card=vscn-2046 val=3
+
+        There are clearly multiple calls, one per component, but they cannot be
+        discriminated from each other.
+
+        Change the ftrace events to also print the component name, to make it clear
+        which part of the code is involved. This requires changing the passed value
+        from a struct snd_soc_card, where the DAPM context is not kwown, to a
+        struct snd_soc_dapm_context where it is obviously known but the a card
+        pointer is also available.
+
+        With this change, the resulting trace becomes:
+
+                   aplay-247   [000]  1436.357332: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=1
+                   aplay-247   [000]  1436.357338: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=1
+                   aplay-247   [000]  1436.357340: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=2
+                   aplay-247   [000]  1436.357343: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=2
+            kworker/u8:4-215   [000]  1436.357437: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=1
+            kworker/u8:5-231   [000]  1436.357518: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=1
+            kworker/u8:5-231   [000]  1436.357523: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=1
+            kworker/u8:5-231   [000]  1436.357526: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=2
+            kworker/u8:5-231   [000]  1436.357528: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=2
+            kworker/u8:4-215   [000]  1436.383217: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=1
+            kworker/u8:4-215   [000]  1436.383221: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=2
+            kworker/u8:4-215   [000]  1436.383231: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=2
+            kworker/u8:5-231   [000]  1436.383468: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=3
+            kworker/u8:5-231   [000]  1436.383472: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=3
+            kworker/u8:4-215   [000]  1436.383503: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=3
+            kworker/u8:4-215   [000]  1436.383513: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=3
+
+Upstream-Status: Backport [303434ab Fix: ASoC add component to set_bias_level events in linux 6.9-rc1]
+
+Change-Id: I959f1680c002acdf29828b968d3975247f5433d8
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/asoc.h | 36 +++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+Index: lttng-modules-2.13.12/include/instrumentation/events/asoc.h
+===================================================================
+--- lttng-modules-2.13.12.orig/include/instrumentation/events/asoc.h
++++ lttng-modules-2.13.12/include/instrumentation/events/asoc.h
+@@ -10,6 +10,7 @@
+ #include <lttng/kernel-version.h>
+ 
+ #define DAPM_DIRECT "(direct)"
++#define DAPM_COMPONENT_NONE "(none)"
+ 
+ #ifndef _TRACE_ASOC_DEF
+ #define _TRACE_ASOC_DEF
+@@ -119,6 +120,40 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc
+ )
+ #endif
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_context,
++
++	TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
++
++	TP_ARGS(dapm, val),
++
++	TP_FIELDS(
++		ctf_string(name, dapm->card->name)
++		ctf_string(component, dapm->component ? dapm->component->name : DAPM_COMPONENT_NONE)
++		ctf_integer(int, val, val)
++	)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_start,
++
++	asoc_snd_soc_bias_level_start,
++
++	TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
++
++	TP_ARGS(dapm, val)
++
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_done,
++
++	asoc_snd_soc_bias_level_done,
++
++	TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
++
++	TP_ARGS(dapm, val)
++
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card,
+ 
+ 	TP_PROTO(struct snd_soc_card *card, int val),
+@@ -150,6 +185,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc
+ 	TP_ARGS(card, val)
+ 
+ )
++#endif
+ 
+ #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch
deleted file mode 100644
index 5a4294d..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From d52ab4b9a71a4bef535dadb8e7062112ac5c0c88 Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 11:33:39 -0500
-Subject: [PATCH 2/5] Fix: timer_start changed in linux 6.8.0-rc1
-
-See upstream commit
-
-    commit dbcdcb62b59db2cf6a24113873b90da15c6f0b19
-    Author: Anna-Maria Behnsen <anna-maria@linutronix.de>
-    Date:   Fri Dec 1 10:26:26 2023 +0100
-
-        tracing/timers: Enhance timer_start tracepoint
-
-        For starting a timer, the timer is enqueued into a bucket of the timer
-        wheel. The bucket expiry is the defacto expiry of the timer but it is not
-        equal the timer expiry because of increasing granularity when bucket is in
-        a higher level of the wheel. To be able to figure out in a trace whether a
-        timer expired in time or not, the bucket expiry time is required as well.
-
-        Add bucket expiry time to the timer_start tracepoint and thereby simplify
-        the arguments.
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I4868092765745b1efd0c48f13c0b837f2007dcb6
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/timer.h | 24 +++++++++++++-----------
- 1 file changed, 13 insertions(+), 11 deletions(-)
-
-diff --git a/include/instrumentation/events/timer.h b/include/instrumentation/events/timer.h
-index 91a2cd9..ce571f5 100644
---- a/include/instrumentation/events/timer.h
-+++ b/include/instrumentation/events/timer.h
-@@ -45,8 +45,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
- 	TP_ARGS(timer)
- )
- 
--#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0) || \
--	LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0))
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
- /**
-  * timer_start - called when the timer is started
-  * @timer:	pointer to struct timer_list
-@@ -55,39 +54,42 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
-  */
- LTTNG_TRACEPOINT_EVENT(timer_start,
- 
--	TP_PROTO(struct timer_list *timer, unsigned long expires,
--		unsigned int flags),
-+	TP_PROTO(struct timer_list *timer, unsigned long bucket_expiry),
- 
--	TP_ARGS(timer, expires, flags),
-+	TP_ARGS(timer, bucket_expiry),
- 
- 	TP_FIELDS(
- 		ctf_integer_hex(void *, timer, timer)
- 		ctf_integer_hex(void *, function, timer->function)
--		ctf_integer(unsigned long, expires, expires)
-+		ctf_integer(unsigned long, expires, timer->expires)
-+		ctf_integer(unsigned long, bucket_expiry, bucket_expiry)
- 		ctf_integer(unsigned long, now, jiffies)
--		ctf_integer(unsigned int, flags, flags)
-+		ctf_integer(unsigned int, flags, timer->flags)
- 	)
- )
--#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
-+#else
- /**
-  * timer_start - called when the timer is started
-  * @timer:	pointer to struct timer_list
-  * @expires:	the timers expiry time
-+ * @flags:	the timers expiry time
-  */
- LTTNG_TRACEPOINT_EVENT(timer_start,
- 
--	TP_PROTO(struct timer_list *timer, unsigned long expires),
-+	TP_PROTO(struct timer_list *timer, unsigned long expires,
-+		unsigned int flags),
- 
--	TP_ARGS(timer, expires),
-+	TP_ARGS(timer, expires, flags),
- 
- 	TP_FIELDS(
- 		ctf_integer_hex(void *, timer, timer)
- 		ctf_integer_hex(void *, function, timer->function)
- 		ctf_integer(unsigned long, expires, expires)
- 		ctf_integer(unsigned long, now, jiffies)
-+		ctf_integer(unsigned int, flags, flags)
- 	)
- )
--#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
-+#endif
- 
- #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0) || \
- 	LTTNG_RHEL_KERNEL_RANGE(4,18,0,193,0,0, 4,19,0,0,0,0))
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch
new file mode 100644
index 0000000..66c48eb
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch
@@ -0,0 +1,81 @@
+From f4a6415f8d5fa447868d1fdc7119e0a328966379 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 10:30:32 -0400
+Subject: [PATCH 3/4] Fix: mm_compaction_migratepages changed in linux 6.9-rc1
+
+See upstream commit:
+
+    commit ab755bf4249b992fc2140d615ab0a686d50765b4
+    Author: Baolin Wang <baolin.wang@linux.alibaba.com>
+    Date:   Tue Feb 20 14:16:31 2024 +0800
+
+        mm: compaction: update the cc->nr_migratepages when allocating or freeing the freepages
+
+        Currently we will use 'cc->nr_freepages >= cc->nr_migratepages' comparison
+        to ensure that enough freepages are isolated in isolate_freepages(),
+        however it just decreases the cc->nr_freepages without updating
+        cc->nr_migratepages in compaction_alloc(), which will waste more CPU
+        cycles and cause too many freepages to be isolated.
+
+        So we should also update the cc->nr_migratepages when allocating or
+        freeing the freepages to avoid isolating excess freepages.  And I can see
+        fewer free pages are scanned and isolated when running thpcompact on my
+        Arm64 server:
+
+                                               k6.7         k6.7_patched
+        Ops Compaction pages isolated      120692036.00   118160797.00
+        Ops Compaction migrate scanned     131210329.00   154093268.00
+        Ops Compaction free scanned       1090587971.00  1080632536.00
+        Ops Compact scan efficiency               12.03          14.26
+
+        Moreover, I did not see an obvious latency improvements, this is likely
+        because isolating freepages is not the bottleneck in the thpcompact test
+        case.
+
+                                      k6.7                  k6.7_patched
+        Amean     fault-both-1      1089.76 (   0.00%)     1080.16 *   0.88%*
+        Amean     fault-both-3      1616.48 (   0.00%)     1636.65 *  -1.25%*
+        Amean     fault-both-5      2266.66 (   0.00%)     2219.20 *   2.09%*
+        Amean     fault-both-7      2909.84 (   0.00%)     2801.90 *   3.71%*
+        Amean     fault-both-12     4861.26 (   0.00%)     4733.25 *   2.63%*
+        Amean     fault-both-18     7351.11 (   0.00%)     6950.51 *   5.45%*
+        Amean     fault-both-24     9059.30 (   0.00%)     9159.99 *  -1.11%*
+        Amean     fault-both-30    10685.68 (   0.00%)    11399.02 *  -6.68%*
+
+Upstream-Status: Backport [175fe77c Fix: mm_compaction_migratepages changed in linux 6.9-rc1]
+
+Change-Id: I103a43fd1b549360b3fc978fd409b7c17ef3e192
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/compaction.h | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+Index: lttng-modules-2.13.12/include/instrumentation/events/compaction.h
+===================================================================
+--- lttng-modules-2.13.12.orig/include/instrumentation/events/compaction.h
++++ lttng-modules-2.13.12/include/instrumentation/events/compaction.h
+@@ -97,7 +97,22 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(comp
+ 
+ #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */
+ 
+-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0) || \
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
++
++	compaction_migratepages,
++
++	TP_PROTO(unsigned int nr_migratepages,
++		unsigned int nr_succeeded),
++
++	TP_ARGS(nr_migratepages, nr_succeeded),
++
++	TP_FIELDS(
++		ctf_integer(unsigned long, nr_migrated, nr_succeeded)
++		ctf_integer(unsigned long, nr_failed, nr_migratepages - nr_succeeded)
++	)
++)
++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0) || \
+     LTTNG_RHEL_KERNEL_RANGE(5,14,0,163,0,0, 5,15,0,0,0,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
+ 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch
deleted file mode 100644
index 4ad9adc..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 7432f583674294b676577b6505b89fc74dc5c7ab Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 11:47:40 -0500
-Subject: [PATCH 3/5] Fix: strlcopy removed in linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit d26270061ae66b915138af7cd73ca6f8b85e6b44
-    Author: Kees Cook <keescook@chromium.org>
-    Date:   Thu Jan 18 12:31:55 2024 -0800
-
-        string: Remove strlcpy()
-
-        With all the users of strlcpy() removed[1] from the kernel, remove the
-        API, self-tests, and other references. Leave mentions in Documentation
-        (about its deprecation), and in checkpatch.pl (to help migrate host-only
-        tools/ usage). Long live strscpy().
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I27cdff70a504b25340cc59150ed8e959d9629e43
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- src/lib/ringbuffer/ring_buffer_backend.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/lib/ringbuffer/ring_buffer_backend.c b/src/lib/ringbuffer/ring_buffer_backend.c
-index 9a339be..2181145 100644
---- a/src/lib/ringbuffer/ring_buffer_backend.c
-+++ b/src/lib/ringbuffer/ring_buffer_backend.c
-@@ -405,7 +405,11 @@ int channel_backend_init(struct channel_backend *chanb,
- 	chanb->extra_reader_sb =
- 			(config->mode == RING_BUFFER_OVERWRITE) ? 1 : 0;
- 	chanb->num_subbuf = num_subbuf;
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+	strscpy(chanb->name, name, NAME_MAX);
-+#else
- 	strlcpy(chanb->name, name, NAME_MAX);
-+#endif
- 	memcpy(&chanb->config, config, sizeof(chanb->config));
- 
- 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch
deleted file mode 100644
index c9b1af3..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From c8198382fe1cede3e16aae9978642a113a217e4c Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 12:17:33 -0500
-Subject: [PATCH 4/5] Fix: btrfs_chunk tracepoints changed in linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit 7dc66abb5a47778d7db327783a0ba172b8cff0b5
-    Author: Filipe Manana <fdmanana@suse.com>
-    Date:   Tue Nov 21 13:38:38 2023 +0000
-
-        btrfs: use a dedicated data structure for chunk maps
-
-        Currently we abuse the extent_map structure for two purposes:
-
-        1) To actually represent extents for inodes;
-        2) To represent chunk mappings.
-
-        This is odd and has several disadvantages:
-
-        1) To create a chunk map, we need to do two memory allocations: one for
-           an extent_map structure and another one for a map_lookup structure, so
-           more potential for an allocation failure and more complicated code to
-           manage and link two structures;
-
-        2) For a chunk map we actually only use 3 fields (24 bytes) of the
-           respective extent map structure: the 'start' field to have the logical
-           start address of the chunk, the 'len' field to have the chunk's size,
-           and the 'orig_block_len' field to contain the chunk's stripe size.
-
-           Besides wasting a memory, it's also odd and not intuitive at all to
-           have the stripe size in a field named 'orig_block_len'.
-
-           We are also using 'block_len' of the extent_map structure to contain
-           the chunk size, so we have 2 fields for the same value, 'len' and
-           'block_len', which is pointless;
-
-        3) When an extent map is associated to a chunk mapping, we set the bit
-           EXTENT_FLAG_FS_MAPPING on its flags and then make its member named
-           'map_lookup' point to the associated map_lookup structure. This means
-           that for an extent map associated to an inode extent, we are not using
-           this 'map_lookup' pointer, so wasting 8 bytes (on a 64 bits platform);
-
-        4) Extent maps associated to a chunk mapping are never merged or split so
-           it's pointless to use the existing extent map infrastructure.
-
-        So add a dedicated data structure named 'btrfs_chunk_map' to represent
-        chunk mappings, this is basically the existing map_lookup structure with
-        some extra fields:
-
-        1) 'start' to contain the chunk logical address;
-        2) 'chunk_len' to contain the chunk's length;
-        3) 'stripe_size' for the stripe size;
-        4) 'rb_node' for insertion into a rb tree;
-        5) 'refs' for reference counting.
-
-        This way we do a single memory allocation for chunk mappings and we don't
-        waste memory for them with unused/unnecessary fields from an extent_map.
-
-        We also save 8 bytes from the extent_map structure by removing the
-        'map_lookup' pointer, so the size of struct extent_map is reduced from
-        144 bytes down to 136 bytes, and we can now have 30 extents map per 4K
-        page instead of 28.
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: Ie52b5ac83df4bc6abeb84d958c4f5d24ae0d8c75
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/btrfs.h | 37 +++++++++++++++++++++++++-
- 1 file changed, 36 insertions(+), 1 deletion(-)
-
-diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h
-index 7c7b9b0..a2a412b 100644
---- a/include/instrumentation/events/btrfs.h
-+++ b/include/instrumentation/events/btrfs.h
-@@ -1609,7 +1609,42 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_ref_head,
- )
- #endif
- 
--#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+
-+LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
-+
-+	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_chunk_map *map,
-+		 u64 offset, u64 size),
-+
-+	TP_ARGS(fs_info, map, offset, size),
-+
-+	TP_FIELDS(
-+		ctf_integer(int, num_stripes, map->num_stripes)
-+		ctf_integer(u64, type, map->type)
-+		ctf_integer(int, sub_stripes, map->sub_stripes)
-+		ctf_integer(u64, offset, offset)
-+		ctf_integer(u64, size, size)
-+		ctf_integer(u64, root_objectid, fs_info->chunk_root->root_key.objectid)
-+	)
-+)
-+
-+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_alloc,
-+
-+	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_chunk_map *map,
-+		 u64 offset, u64 size),
-+
-+	TP_ARGS(fs_info, map, offset, size)
-+)
-+
-+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_free,
-+
-+	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_chunk_map *map,
-+		 u64 offset, u64 size),
-+
-+	TP_ARGS(fs_info, map, offset, size)
-+)
-+
-+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
- 
- LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
- 
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch
new file mode 100644
index 0000000..59ef4f9
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch
@@ -0,0 +1,57 @@
+From 217bc2e4685050dddce9bdd2557b64f6b8c16622 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 10:53:46 -0400
+Subject: [PATCH 4/4] Fix: dev_base_lock removed in linux 6.9-rc1
+
+See upstream commit:
+
+    commit 1b3ef46cb7f2618cc0b507393220a69810f6da12
+    Author: Eric Dumazet <edumazet@google.com>
+    Date:   Tue Feb 13 06:32:45 2024 +0000
+
+        net: remove dev_base_lock
+
+        dev_base_lock is not needed anymore, all remaining users also hold RTNL.
+
+Upstream-Status: Backport [52eb2ee9 Fix: dev_base_lock removed in linux 6.9-rc1]
+
+Change-Id: I6b07e6eed07fd398302ca14d23162ed24d74df15
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ src/lttng-statedump-impl.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+Index: lttng-modules-2.13.12/src/lttng-statedump-impl.c
+===================================================================
+--- lttng-modules-2.13.12.orig/src/lttng-statedump-impl.c
++++ lttng-modules-2.13.12/src/lttng-statedump-impl.c
+@@ -392,6 +392,20 @@ void lttng_enumerate_device(struct lttng
+ 	}
+ }
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++static
++int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
++{
++	struct net_device *dev;
++
++	rtnl_lock();
++	for_each_netdev(&init_net, dev)
++		lttng_enumerate_device(session, dev);
++	rtnl_unlock();
++
++	return 0;
++}
++#else
+ static
+ int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
+ {
+@@ -404,6 +418,7 @@ int lttng_enumerate_network_ip_interface
+ 
+ 	return 0;
+ }
++#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0)) */
+ #else /* CONFIG_INET */
+ static inline
+ int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch
deleted file mode 100644
index 65c33da..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 86db094386b43bb5c6b47552f9a4826ca8ba917d Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 13:13:36 -0500
-Subject: [PATCH 5/5] Fix: btrfs_get_extent flags and compress_type changed in
- linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9
-    Author: Filipe Manana <fdmanana@suse.com>
-    Date:   Mon Dec 4 16:20:33 2023 +0000
-
-        btrfs: use the flags of an extent map to identify the compression type
-
-        Currently, in struct extent_map, we use an unsigned int (32 bits) to
-        identify the compression type of an extent and an unsigned long (64 bits
-        on a 64 bits platform, 32 bits otherwise) for flags. We are only using
-        6 different flags, so an unsigned long is excessive and we can use flags
-        to identify the compression type instead of using a dedicated 32 bits
-        field.
-
-        We can easily have tens or hundreds of thousands (or more) of extent maps
-        on busy and large filesystems, specially with compression enabled or many
-        or large files with tons of small extents. So it's convenient to have the
-        extent_map structure as small as possible in order to use less memory.
-
-        So remove the compression type field from struct extent_map, use flags
-        to identify the compression type and shorten the flags field from an
-        unsigned long to a u32. This saves 8 bytes (on 64 bits platforms) and
-        reduces the size of the structure from 136 bytes down to 128 bytes, using
-        now only two cache lines, and increases the number of extent maps we can
-        have per 4K page from 30 to 32. By using a u32 for the flags instead of
-        an unsigned long, we no longer use test_bit(), set_bit() and clear_bit(),
-        but that level of atomicity is not needed as most flags are never cleared
-        once set (before adding an extent map to the tree), and the ones that can
-        be cleared or set after an extent map is added to the tree, are always
-        performed while holding the write lock on the extent map tree, while the
-        reader holds a lock on the tree or tests for a flag that never changes
-        once the extent map is in the tree (such as compression flags).
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I95402d43f064c016b423b48652e4968d3db9b8a9
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/btrfs.h | 25 ++++++++++++++++++++++++-
- 1 file changed, 24 insertions(+), 1 deletion(-)
-
-diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h
-index a2a412b..ffb1b64 100644
---- a/include/instrumentation/events/btrfs.h
-+++ b/include/instrumentation/events/btrfs.h
-@@ -177,7 +177,30 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__inode, btrfs_inode_evict,
- )
- #endif
- 
--#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+
-+LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
-+
-+	TP_PROTO(const struct btrfs_root *root, const struct btrfs_inode *inode,
-+		const struct extent_map *map),
-+
-+	TP_ARGS(root, inode, map),
-+
-+	TP_FIELDS(
-+		ctf_integer(u64, root_objectid, root->root_key.objectid)
-+		ctf_integer(u64, ino, btrfs_ino(inode))
-+		ctf_integer(u64, start, map->start)
-+		ctf_integer(u64, len, map->len)
-+		ctf_integer(u64, orig_start, map->orig_start)
-+		ctf_integer(u64, block_start, map->block_start)
-+		ctf_integer(u64, block_len, map->block_len)
-+		ctf_integer(unsigned int, flags, map->flags)
-+		ctf_integer(int, refs, refcount_read(&map->refs))
-+		ctf_integer(unsigned int, compress_type, extent_map_compression(map))
-+	)
-+)
-+
-+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
- 
- LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
- 
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.11.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.12.bb
similarity index 75%
rename from poky/meta/recipes-kernel/lttng/lttng-modules_2.13.11.bb
rename to poky/meta/recipes-kernel/lttng/lttng-modules_2.13.12.bb
index b6bae73..95d5e2d 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.11.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.12.bb
@@ -10,17 +10,16 @@
 include lttng-platforms.inc
 
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
-           file://0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch \
-           file://0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch \
-           file://0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch \
-           file://0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch \
-           file://0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch \
+           file://0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch \
+           file://0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch \
+           file://0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch \
+           file://0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch \
         "
 
 # Use :append here so that the patch is applied also when using devupstream
 SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
 
-SRC_URI[sha256sum] = "297211d6fda459c85793c1f498c90fad2939cda7939d503f3ec5eaaf5fbec3c7"
+SRC_URI[sha256sum] = "d85fcb66c7bd31003ab8735e8c77700e5e4f417b4c22fe1f20112cf435abad79"
 
 export INSTALL_MOD_DIR="kernel/lttng-modules"
 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch
new file mode 100644
index 0000000..3286dfb
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch
@@ -0,0 +1,56 @@
+From 6b45c5f80d20e7bbf3d98c1fa17d2cf8716af3bb Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Mon, 25 Mar 2024 18:20:14 +0800
+Subject: [PATCH] Fix: rotation-destroy-flush: fix session daemon abort if no
+ kernel module present
+
+Testing rotation-destroy-flush when no lttng kernel modules present, it would
+be failed with error message:
+
+  Error: Unable to load required module lttng-ring-buffer-client-discard
+  not ok 1 - Start session daemon
+  Failed test 'Start session daemon'
+  not ok 2 - Create session rotation_destroy_flush in -o /tmp/tmp.test_rot ...
+  ...
+
+This because test script that sets the LTTNG_ABORT_ON_ERROR environment
+variable. It's this environment variable that causes the sessiond to handle the
+kernel module loading failure as an abort rather than a warning.
+
+Using "check_skip_kernel_test" to detect whether the kernel module fails to
+load is expected or not. If the failure is expected, the script won't set that
+environment variable any more.
+
+Fixes: 3a174400
+("tests:add check_skip_kernel_test to check root user and lttng kernel modules")
+
+Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/12155]
+
+Change-Id: I371e9ba717613e2940186f710cf3cccd35baed6c
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ .../ust/rotation-destroy-flush/test_rotation_destroy_flush  | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
+index 669bcbc43..64161768f 100755
+--- a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
++++ b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
+@@ -23,11 +23,11 @@ SIZE_LIMIT=$PAGE_SIZE
+ NR_ITER=10
+ NUM_TESTS=$((15*$NR_ITER))
+ 
+-# Ensure the daemons invoke abort on error.
+-export LTTNG_ABORT_ON_ERROR=1
+-
+ source $TESTDIR/utils/utils.sh
+ 
++# Ensure the daemons invoke abort on error.
++check_skip_kernel_test || export LTTNG_ABORT_ON_ERROR=1
++
+ # MUST set TESTDIR before calling those functions
+ function run_app()
+ {
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch
new file mode 100644
index 0000000..2671a19
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch
@@ -0,0 +1,1246 @@
+From cf558f802b259a33605fe0ede4d74ae2ff6be699 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Mon, 12 Feb 2024 09:23:54 -0500
+Subject: [PATCH] tests: add check_skip_kernel_test to check root user and
+ lttng kernel modules
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The current tests will run both userspace and kernel testing. Some of
+use cases only use lttng for one kind of tracing on an embedded
+device (e.g. userspace), so in this scenario, the kernel modules might
+not install to target rootfs, the test cases would be fail and exit.
+
+Add LTTNG_TOOLS_DISABLE_KERNEL_TESTS to skip the lttng kernel features
+test, this flag can be set via "make":
+
+  make check LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1
+
+When this flag was set, all kernel related testcases would be marked as
+SKIP in result.
+
+Since the the LTTNG_TOOLS_DISABLE_KERNEL_TESTS was checked in function
+check_skip_kernel_test, lots of testcases also need to check root
+permission, so merging the root permission checking into
+check_skip_kernel_test.
+
+Upstream-Status: Backport from
+[https://git.lttng.org/?p=lttng-tools.git;a=commit;h=3a1744008331a0604479d3d7461f77056fad3a64]
+
+Change-Id: I49a1f642a9869c21a69e0186c296fd917bd7b525
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+---
+ tests/destructive/metadata-regeneration       |  8 +----
+ tests/perf/test_perf_raw.in                   |  8 +----
+ tests/regression/kernel/test_all_events       |  8 +----
+ tests/regression/kernel/test_callstack        |  8 +----
+ tests/regression/kernel/test_channel          |  8 +----
+ tests/regression/kernel/test_clock_override   |  8 +----
+ tests/regression/kernel/test_event_basic      |  8 +----
+ tests/regression/kernel/test_kernel_function  |  8 +----
+ tests/regression/kernel/test_lttng_logger     |  8 +----
+ tests/regression/kernel/test_ns_contexts      |  8 +----
+ .../regression/kernel/test_ns_contexts_change |  9 +----
+ .../kernel/test_rotation_destroy_flush        |  8 +----
+ .../regression/kernel/test_select_poll_epoll  |  8 +----
+ tests/regression/kernel/test_syscall          |  8 +----
+ tests/regression/kernel/test_userspace_probe  |  8 +----
+ tests/regression/tools/clear/test_kernel      |  8 +----
+ .../tools/filtering/test_invalid_filter       |  8 +----
+ .../tools/filtering/test_unsupported_op       |  8 +----
+ .../tools/filtering/test_valid_filter         |  8 +----
+ tests/regression/tools/health/test_health.sh  | 10 ++----
+ tests/regression/tools/health/test_thread_ok  |  9 +----
+ tests/regression/tools/live/test_kernel       | 10 +++---
+ tests/regression/tools/live/test_lttng_kernel |  8 +----
+ tests/regression/tools/metadata/test_kernel   |  8 +----
+ .../test_notification_kernel_buffer_usage     | 36 +++++++++----------
+ .../test_notification_kernel_capture          | 23 ++++++------
+ .../test_notification_kernel_error            | 23 ++++++------
+ .../test_notification_kernel_instrumentation  | 23 ++++++------
+ .../test_notification_kernel_syscall          | 19 +++++-----
+ .../test_notification_kernel_userspace_probe  | 20 +++++------
+ .../notification/test_notification_multi_app  | 14 +++-----
+ ...test_notification_notifier_discarded_count |  9 +++--
+ .../tools/regen-metadata/test_kernel          |  8 +----
+ .../tools/regen-statedump/test_kernel         |  8 +----
+ tests/regression/tools/rotation/test_kernel   |  8 +----
+ tests/regression/tools/snapshots/test_kernel  |  8 +----
+ .../tools/snapshots/test_kernel_streaming     |  8 +----
+ .../streaming/test_high_throughput_limits     |  8 +----
+ tests/regression/tools/streaming/test_kernel  |  8 +----
+ .../tools/tracker/test_event_tracker          |  8 +----
+ .../tools/trigger/test_add_trigger_cli        | 12 ++-----
+ .../tools/trigger/test_list_triggers_cli      | 26 +++++---------
+ .../tools/wildcard/test_event_wildcard        |  8 +----
+ .../test_relayd_working_directory             |  4 +--
+ .../ust/namespaces/test_ns_contexts_change    |  7 +---
+ tests/regression/ust/test_event_perf          |  8 +----
+ tests/utils/utils.sh                          | 35 ++++++++++++++++++
+ 47 files changed, 166 insertions(+), 363 deletions(-)
+
+diff --git a/tests/destructive/metadata-regeneration b/tests/destructive/metadata-regeneration
+index b81e7af32..36b130d17 100755
+--- a/tests/destructive/metadata-regeneration
++++ b/tests/destructive/metadata-regeneration
+@@ -185,19 +185,13 @@ function test_ust_streaming ()
+ 	rm -f ${file_sync_before_last}
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ if ! destructive_tests_enabled ; then
+ 	echo 'You need to set the LTTNG_ENABLE_DESTRUCTIVE_TESTS to "will-break-my-system" as argument to run this test'
+ 	echo 'Moreover, please make sure that ntp is not running while executing this test'
+ 	exit 0
+ fi
+ 
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test $NUM_TESTS "Skipping all tests." ||
+ {
+ 	start_lttng_relayd "-o $TRACE_PATH"
+ 	start_lttng_sessiond
+diff --git a/tests/perf/test_perf_raw.in b/tests/perf/test_perf_raw.in
+index f293ccd71..d35529a87 100644
+--- a/tests/perf/test_perf_raw.in
++++ b/tests/perf/test_perf_raw.in
+@@ -137,12 +137,6 @@ function test_kernel_raw()
+ 	rm -rf $TRACE_PATH
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ # MUST set TESTDIR before calling those functions
+ plan_tests $NUM_TESTS
+ 
+@@ -154,7 +148,7 @@ have_libpfm
+ 
+ test_ust_raw
+ 
+-skip $isroot "Root access is needed for kernel testing, skipping." 9 ||
++check_skip_kernel_test 9 ||
+ {
+ 	modprobe lttng-test
+ 	test_kernel_raw
+diff --git a/tests/regression/kernel/test_all_events b/tests/regression/kernel/test_all_events
+index 2e20888df..044f9b65f 100755
+--- a/tests/regression/kernel/test_all_events
++++ b/tests/regression/kernel/test_all_events
+@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_callstack b/tests/regression/kernel/test_callstack
+index a4477fd7c..d8d6b5e0f 100755
+--- a/tests/regression/kernel/test_callstack
++++ b/tests/regression/kernel/test_callstack
+@@ -134,13 +134,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_channel b/tests/regression/kernel/test_channel
+index 9cc74c4e8..4c377bd2a 100755
+--- a/tests/regression/kernel/test_channel
++++ b/tests/regression/kernel/test_channel
+@@ -47,13 +47,7 @@ function test_channel_buffer_too_large()
+ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	start_lttng_sessiond
+ 
+diff --git a/tests/regression/kernel/test_clock_override b/tests/regression/kernel/test_clock_override
+index 72892898b..48a3f926a 100755
+--- a/tests/regression/kernel/test_clock_override
++++ b/tests/regression/kernel/test_clock_override
+@@ -172,13 +172,7 @@ TESTS=(
+ TEST_COUNT=${#TESTS[@]}
+ i=0
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	trap signal_cleanup SIGTERM SIGINT
+diff --git a/tests/regression/kernel/test_event_basic b/tests/regression/kernel/test_event_basic
+index ac9ec0549..387e2f733 100755
+--- a/tests/regression/kernel/test_event_basic
++++ b/tests/regression/kernel/test_event_basic
+@@ -73,13 +73,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test $NUM_TESTS "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_kernel_function b/tests/regression/kernel/test_kernel_function
+index b1d5491fc..ea16cdeef 100755
+--- a/tests/regression/kernel/test_kernel_function
++++ b/tests/regression/kernel/test_kernel_function
+@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	start_lttng_sessiond_notap
+ 	validate_lttng_modules_present
+diff --git a/tests/regression/kernel/test_lttng_logger b/tests/regression/kernel/test_lttng_logger
+index b8f7ded82..00eaae823 100755
+--- a/tests/regression/kernel/test_lttng_logger
++++ b/tests/regression/kernel/test_lttng_logger
+@@ -110,13 +110,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_ns_contexts b/tests/regression/kernel/test_ns_contexts
+index 0c8718d78..59e2568f6 100755
+--- a/tests/regression/kernel/test_ns_contexts
++++ b/tests/regression/kernel/test_ns_contexts
+@@ -108,13 +108,7 @@ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+ 
+-isroot=0
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0
+-
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0
+ 
+ system_has_ns=0
+ if [ -d "/proc/$$/ns" ]; then
+diff --git a/tests/regression/kernel/test_ns_contexts_change b/tests/regression/kernel/test_ns_contexts_change
+index 42a61276b..3f5e4eeab 100755
+--- a/tests/regression/kernel/test_ns_contexts_change
++++ b/tests/regression/kernel/test_ns_contexts_change
+@@ -162,14 +162,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-
+-isroot=0
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0
+-
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0
+ 
+ system_has_ns=0
+ if [ -d "/proc/$$/ns" ]; then
+diff --git a/tests/regression/kernel/test_rotation_destroy_flush b/tests/regression/kernel/test_rotation_destroy_flush
+index cb773d7df..0af514b49 100755
+--- a/tests/regression/kernel/test_rotation_destroy_flush
++++ b/tests/regression/kernel/test_rotation_destroy_flush
+@@ -120,13 +120,7 @@ TESTS=(
+ TEST_COUNT=${#TESTS[@]}
+ i=0
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	trap signal_cleanup SIGTERM SIGINT
+diff --git a/tests/regression/kernel/test_select_poll_epoll b/tests/regression/kernel/test_select_poll_epoll
+index d8245a0e7..20f0ef0ae 100755
+--- a/tests/regression/kernel/test_select_poll_epoll
++++ b/tests/regression/kernel/test_select_poll_epoll
+@@ -374,13 +374,7 @@ if test $? != 0; then
+ 	exit 0
+ fi
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall
+index 401a18a8d..219d94703 100755
+--- a/tests/regression/kernel/test_syscall
++++ b/tests/regression/kernel/test_syscall
+@@ -664,13 +664,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_userspace_probe b/tests/regression/kernel/test_userspace_probe
+index 1091ee65e..5d984d666 100755
+--- a/tests/regression/kernel/test_userspace_probe
++++ b/tests/regression/kernel/test_userspace_probe
+@@ -815,13 +815,7 @@ fi
+ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/tools/clear/test_kernel b/tests/regression/tools/clear/test_kernel
+index 06fb1c368..48250a742 100755
+--- a/tests/regression/tools/clear/test_kernel
++++ b/tests/regression/tools/clear/test_kernel
+@@ -536,12 +536,6 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ streaming_tests=(test_kernel_streaming
+ 	test_kernel_streaming_rotate_clear
+ 	test_kernel_streaming_clear_rotate
+@@ -563,7 +557,7 @@ snapshot_tests=(test_kernel_streaming_snapshot
+ 	test_kernel_local_snapshot
+ )
+ 
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel streaming tests." ||
+ {
+ 	trap signal_cleanup SIGTERM SIGINT
+ 
+diff --git a/tests/regression/tools/filtering/test_invalid_filter b/tests/regression/tools/filtering/test_invalid_filter
+index 7d9e524d9..8435e5546 100755
+--- a/tests/regression/tools/filtering/test_invalid_filter
++++ b/tests/regression/tools/filtering/test_invalid_filter
+@@ -168,13 +168,7 @@ done
+ 
+ test_bytecode_limit -u
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel invalid filter tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel invalid filter tests." ||
+ {
+ 	diag "Test kernel filters"
+ 	i=0
+diff --git a/tests/regression/tools/filtering/test_unsupported_op b/tests/regression/tools/filtering/test_unsupported_op
+index 299247a3c..91eb86d21 100755
+--- a/tests/regression/tools/filtering/test_unsupported_op
++++ b/tests/regression/tools/filtering/test_unsupported_op
+@@ -103,13 +103,7 @@ while [ "$i" -lt "$OP_COUNT" ]; do
+ 	let "i++"
+ done
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel unsupported filter operations tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test $NUM_KERNEL_TESTS "Skipping kernel unsupported filter operations tests." ||
+ {
+ 	diag "Test kernel unsupported filter operations"
+ 
+diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter
+index e76ffa25f..1ba7c79bb 100755
+--- a/tests/regression/tools/filtering/test_valid_filter
++++ b/tests/regression/tools/filtering/test_valid_filter
+@@ -1452,13 +1452,7 @@ KERNEL_FILTERS=(
+ 
+ IFS=$OLDIFS
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel valid filter tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel valid filter tests." ||
+ {
+ 	diag "Test kernel valid filters"
+ 
+diff --git a/tests/regression/tools/health/test_health.sh b/tests/regression/tools/health/test_health.sh
+index b3d6419d2..68716e6b9 100644
+--- a/tests/regression/tools/health/test_health.sh
++++ b/tests/regression/tools/health/test_health.sh
+@@ -82,7 +82,7 @@ function test_health
+ 		diag "With UST consumer daemons"
+ 		enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME
+ 
+-		skip $isroot "Root access is needed. Skipping kernel consumer health check test." "1" ||
++		check_skip_kernel_test "1" "Skipping kernel consumer health check test." ||
+ 		{
+ 			diag "With kernel consumer daemon"
+ 			lttng_enable_kernel_event $SESSION_NAME $KERNEL_EVENT_NAME $CHANNEL_NAME
+@@ -113,7 +113,7 @@ function test_health
+ 
+ 
+ 	if [ ${test_needs_root} -eq 1 ]; then
+-		skip ${isroot} "Root access needed for test \"${test_thread_name}\"." "1" ||
++		check_skip_kernel_test "1" "Skipping \"${test_thread_name}\"." ||
+ 		{
+ 			report_errors "${test_thread_error_string}" "${test_relayd}"
+ 		}
+@@ -276,12 +276,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_health_stderr_path.XXXXXX)
+ TRACE_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX)
+ HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX)
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ THREAD_COUNT=${#THREAD[@]}
+ i=0
+ while [ "$i" -lt "$THREAD_COUNT" ]; do
+diff --git a/tests/regression/tools/health/test_thread_ok b/tests/regression/tools/health/test_thread_ok
+index e84adb611..e5e23543f 100755
+--- a/tests/regression/tools/health/test_thread_ok
++++ b/tests/regression/tools/health/test_thread_ok
+@@ -67,7 +67,7 @@ function test_thread_ok
+ 	$CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH}
+ 	report_errors
+ 
+-	skip $isroot "Root access is needed. Skipping kernel consumer health check test." "5" ||
++	check_skip_kernel_test "5" "Skipping kernel consumer health check test." ||
+ 	{
+ 		diag "With kernel consumer daemon"
+ 		create_lttng_session_no_output $SESSION_NAME
+@@ -115,13 +115,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_thread_ok_stderr_path.XXXXXX)
+ TRACE_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX)
+ HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX)
+ 
+-# The manage kernel thread is only spawned if we are root
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ test_thread_ok
+ 
+ rm -rf ${HEALTH_PATH}
+diff --git a/tests/regression/tools/live/test_kernel b/tests/regression/tools/live/test_kernel
+index b622b5214..fdaa09f0d 100755
+--- a/tests/regression/tools/live/test_kernel
++++ b/tests/regression/tools/live/test_kernel
+@@ -39,13 +39,11 @@ function clean_live_tracing()
+ 	rm -rf $TRACE_PATH
+ }
+ 
+-# Need root access for kernel tracing.
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	plan_skip_all "Root access is needed. Skipping all tests."
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
+ 	exit 0
+-fi
++}
+ 
+ modprobe lttng-test
+ 
+diff --git a/tests/regression/tools/live/test_lttng_kernel b/tests/regression/tools/live/test_lttng_kernel
+index a23d9373a..1b933648f 100755
+--- a/tests/regression/tools/live/test_lttng_kernel
++++ b/tests/regression/tools/live/test_lttng_kernel
+@@ -45,13 +45,7 @@ function clean_live_tracing()
+ }
+ 
+ # Need root access for kernel tracing.
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	modprobe lttng-test
+ 
+diff --git a/tests/regression/tools/metadata/test_kernel b/tests/regression/tools/metadata/test_kernel
+index 57cace6ea..26e95d93a 100755
+--- a/tests/regression/tools/metadata/test_kernel
++++ b/tests/regression/tools/metadata/test_kernel
+@@ -91,13 +91,7 @@ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel metadata tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel metadata tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	modprobe lttng-test
+diff --git a/tests/regression/tools/notification/test_notification_kernel_buffer_usage b/tests/regression/tools/notification/test_notification_kernel_buffer_usage
+index 76e69a77e..8fdaabb3e 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_buffer_usage
++++ b/tests/regression/tools/notification/test_notification_kernel_buffer_usage
+@@ -60,29 +60,27 @@ function test_buffer_usage_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-
+-	validate_lttng_modules_present
+-
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	rm -rf "$TEST_TMPDIR"
++	exit 0
++}
+ 
+-	modprobe lttng-test
++validate_lttng_modules_present
+ 
+-	# Used on sessiond launch.
+-	LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \
+-		CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \
+-		LD_PRELOAD=${TESTPOINT}"
+-	start_lttng_sessiond_notap
++modprobe lttng-test
+ 
+-	test_buffer_usage_notification
++# Used on sessiond launch.
++LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \
++	CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \
++	LD_PRELOAD=${TESTPOINT}"
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++test_buffer_usage_notification
+ 
+-	rm -rf "${consumerd_pipe[@]}" 2> /dev/null
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
++rm -rf "${consumerd_pipe[@]}" 2> /dev/null
+ rm -rf "$TEST_TMPDIR"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_capture b/tests/regression/tools/notification/test_notification_kernel_capture
+index 88f123d3d..0f8a2bc6f 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_capture
++++ b/tests/regression/tools/notification/test_notification_kernel_capture
+@@ -31,22 +31,21 @@ function test_basic_error_path
+ }
+ 
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-	modprobe lttng-test
++validate_lttng_modules_present
+ 
+-	start_lttng_sessiond_notap
++modprobe lttng-test
+ 
+-	test_basic_error_path
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++test_basic_error_path
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_error b/tests/regression/tools/notification/test_notification_kernel_error
+index 80fe6e5b5..b757ec2b4 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_error
++++ b/tests/regression/tools/notification/test_notification_kernel_error
+@@ -30,23 +30,22 @@ function test_basic_error_path
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++validate_lttng_modules_present
+ 
+-	modprobe lttng-test
++modprobe lttng-test
+ 
+-	start_lttng_sessiond_notap
++start_lttng_sessiond_notap
+ 
+-	test_basic_error_path
++test_basic_error_path
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_instrumentation b/tests/regression/tools/notification/test_notification_kernel_instrumentation
+index 90545a541..705f7703d 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_instrumentation
++++ b/tests/regression/tools/notification/test_notification_kernel_instrumentation
+@@ -28,22 +28,21 @@ function test_kernel_instrumentation_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-	modprobe lttng-test
++validate_lttng_modules_present
+ 
+-	start_lttng_sessiond_notap
++modprobe lttng-test
+ 
+-	test_kernel_instrumentation_notification
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++test_kernel_instrumentation_notification
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_syscall b/tests/regression/tools/notification/test_notification_kernel_syscall
+index d273cb55d..7fa235388 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_syscall
++++ b/tests/regression/tools/notification/test_notification_kernel_syscall
+@@ -31,19 +31,18 @@ function test_kernel_syscall_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-	start_lttng_sessiond_notap
++validate_lttng_modules_present
+ 
+-	test_kernel_syscall_notification
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
++test_kernel_syscall_notification
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_userspace_probe b/tests/regression/tools/notification/test_notification_kernel_userspace_probe
+index 8ef8d708d..abddd9be7 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_userspace_probe
++++ b/tests/regression/tools/notification/test_notification_kernel_userspace_probe
+@@ -29,18 +29,18 @@ function test_kernel_userspace_probe_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
++
++validate_lttng_modules_present
+ 
+-	start_lttng_sessiond_notap
++start_lttng_sessiond_notap
+ 
+-	test_kernel_userspace_probe_notification
++test_kernel_userspace_probe_notification
+ 
+-	stop_lttng_sessiond_notap
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app
+index d8b639225..61891b56f 100755
+--- a/tests/regression/tools/notification/test_notification_multi_app
++++ b/tests/regression/tools/notification/test_notification_multi_app
+@@ -411,22 +411,18 @@ function test_on_register_evaluation ()
+ 	rm -rf "$output_dir"
+ }
+ 
+-
+ TESTS=(
+ 	test_multi_app_ust
+ 	test_on_register_evaluation_ust
+ )
+ 
+-if [ "$(id -u)" == "0" ]; then
++check_skip_kernel_test "$NUM_TEST_KERNEL" "Skipping kernel multi-app notification tests." || {
+ 	validate_lttng_modules_present
+ 	TESTS+=(
+-	test_multi_app_kernel
+-	test_on_register_evaluation_kernel
+-)
+-else
+-        skip 0 "Root access is needed. Skipping all kernel multi-app notification tests." $NUM_TEST_KERNEL
+-fi
+-
++		test_multi_app_kernel
++		test_on_register_evaluation_kernel
++	)
++}
+ 
+ for fct_test in ${TESTS[@]};
+ do
+diff --git a/tests/regression/tools/notification/test_notification_notifier_discarded_count b/tests/regression/tools/notification/test_notification_notifier_discarded_count
+index c9235393e..a6c31a728 100755
+--- a/tests/regression/tools/notification/test_notification_notifier_discarded_count
++++ b/tests/regression/tools/notification/test_notification_notifier_discarded_count
+@@ -391,7 +391,8 @@ function test_ust_notifier_discarded_regardless_trigger_owner
+ test_ust_notifier_discarded_count
+ test_ust_notifier_discarded_count_max_bucket
+ 
+-if [ "$(id -u)" == "0" ]; then
++check_skip_kernel_test "$KERNEL_NUM_TESTS" "Skipping kernel notification tests." ||
++{
+ 
+ 	validate_lttng_modules_present
+ 
+@@ -413,9 +414,7 @@ if [ "$(id -u)" == "0" ]; then
+ 	modprobe --remove lttng-test
+ 
+ 	rm -rf "${sessiond_pipe[@]}" 2> /dev/null
+-else
+-	# Kernel tests are skipped.
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $KERNEL_NUM_TESTS
+-fi
++
++}
+ 
+ rm -rf "$TEST_TMPDIR"
+diff --git a/tests/regression/tools/regen-metadata/test_kernel b/tests/regression/tools/regen-metadata/test_kernel
+index 49eea32a7..555a4e2ce 100755
+--- a/tests/regression/tools/regen-metadata/test_kernel
++++ b/tests/regression/tools/regen-metadata/test_kernel
+@@ -99,13 +99,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/regen-statedump/test_kernel b/tests/regression/tools/regen-statedump/test_kernel
+index 8a261355d..bbbac3942 100755
+--- a/tests/regression/tools/regen-statedump/test_kernel
++++ b/tests/regression/tools/regen-statedump/test_kernel
+@@ -39,13 +39,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/tools/rotation/test_kernel b/tests/regression/tools/rotation/test_kernel
+index f5f1f5553..efe3fd359 100755
+--- a/tests/regression/tools/rotation/test_kernel
++++ b/tests/regression/tools/rotation/test_kernel
+@@ -82,13 +82,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/snapshots/test_kernel b/tests/regression/tools/snapshots/test_kernel
+index abb243563..d91876867 100755
+--- a/tests/regression/tools/snapshots/test_kernel
++++ b/tests/regression/tools/snapshots/test_kernel
+@@ -217,13 +217,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel snapshot tests" $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 
+ 	validate_lttng_modules_present
+diff --git a/tests/regression/tools/snapshots/test_kernel_streaming b/tests/regression/tools/snapshots/test_kernel_streaming
+index 0c92dc710..dd965afee 100755
+--- a/tests/regression/tools/snapshots/test_kernel_streaming
++++ b/tests/regression/tools/snapshots/test_kernel_streaming
+@@ -145,13 +145,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests" $NUM_TESTS ||
++check_skip_kernel_test $NUM_TESTS "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits
+index 2b9e3ad39..c55d51098 100755
+--- a/tests/regression/tools/streaming/test_high_throughput_limits
++++ b/tests/regression/tools/streaming/test_high_throughput_limits
+@@ -170,13 +170,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed to set bandwith limits. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 
+ 	# Catch sigint and try to cleanup limits
+diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel
+index 33334229f..113eea7bf 100755
+--- a/tests/regression/tools/streaming/test_kernel
++++ b/tests/regression/tools/streaming/test_kernel
+@@ -47,13 +47,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/tracker/test_event_tracker b/tests/regression/tools/tracker/test_event_tracker
+index cc0f698d2..de0c79d36 100755
+--- a/tests/regression/tools/tracker/test_event_tracker
++++ b/tests/regression/tools/tracker/test_event_tracker
+@@ -466,13 +466,7 @@ test_event_track_untrack ust 0 "${EVENT_NAME}" "--pid --all"	# backward compat
+ test_event_tracker ust 1 "${EVENT_NAME}" "--pid --all"	# backward compat
+ test_event_pid_tracker ust 1 "${EVENT_NAME}"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel tracker tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel tracker tests." ||
+ {
+ 	diag "Test kernel tracker"
+ 
+diff --git a/tests/regression/tools/trigger/test_add_trigger_cli b/tests/regression/tools/trigger/test_add_trigger_cli
+index 98ecf6272..d1763aa2e 100755
+--- a/tests/regression/tools/trigger/test_add_trigger_cli
++++ b/tests/regression/tools/trigger/test_add_trigger_cli
+@@ -34,12 +34,6 @@ tmp_stdout=$(mktemp --tmpdir -t test_parse_cli_trigger_stdout.XXXXXX)
+ tmp_stderr=$(mktemp --tmpdir -t test_parse_cli_trigger_stderr.XXXXXX)
+ uprobe_elf_binary="${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	ist_root=1
+-else
+-	ist_root=0
+-fi
+-
+ function test_success ()
+ {
+ 	local test_name="$1"
+@@ -223,7 +217,7 @@ test_success "--exclude-name two" "trigger5" \
+ 	--condition event-rule-matches --type=user --name='jean-*' --exclude-name jean-chretien -x jean-charest \
+ 	--action notify
+ 
+-skip $ist_root "non-root user: skipping kprobe tests" 18 || {
++check_skip_kernel_test 18 "Skipping kprobe tests." || {
+ 	i=0
+ 
+ 	for type in kprobe kernel:kprobe; do
+@@ -262,7 +256,7 @@ skip $ist_root "non-root user: skipping kprobe tests" 18 || {
+ 	done
+ }
+ 
+-skip $ist_root "non-root user: skipping uprobe tests" 6 || {
++check_skip_kernel_test 6 "Skipping uprobe tests." || {
+ 	test_success "--condition event-rule-matches uprobe" "uprobe-trigger-0" \
+ 		--name="uprobe-trigger-0" \
+ 		--condition event-rule-matches --type=kernel:uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe \
+@@ -274,7 +268,7 @@ skip $ist_root "non-root user: skipping uprobe tests" 6 || {
+ 		--action notify
+ }
+ 
+-skip $ist_root "non-root user: skipping syscall tests" 30 || {
++check_skip_kernel_test 30 "Skipping syscall tests." || {
+ 	test_success "--condition event-rule-matches one syscall" "syscall-trigger-0" \
+ 		--name="syscall-trigger-0" \
+ 		--condition event-rule-matches --type=syscall --name=open \
+diff --git a/tests/regression/tools/trigger/test_list_triggers_cli b/tests/regression/tools/trigger/test_list_triggers_cli
+index a04018013..02c3de3e9 100755
+--- a/tests/regression/tools/trigger/test_list_triggers_cli
++++ b/tests/regression/tools/trigger/test_list_triggers_cli
+@@ -36,22 +36,12 @@ uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binar
+ register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers")
+ 
+ uid=$(id --user)
+-gid=$(id --group)
+ 
+-if [ "$uid" == "0" ]; then
+-	ist_root=1
+-	ls "$uprobe_sdt_binary" >/dev/null 2>&1
+-	if test $? == 0; then
+-		hast_sdt_binary=1
+-	else
+-		hast_sdt_binary=0
+-	fi
+-else
+-	ist_root=0
+-	hast_sdt_binary=0
++sdt_binary_present=0
++if [ -f "$uprobe_sdt_binary" ]; then
++	sdt_binary_present=1
+ fi
+ 
+-
+ test_top_level_options ()
+ {
+ 	diag "Listing top level options"
+@@ -2695,10 +2685,12 @@ start_lttng_sessiond_notap
+ 
+ test_top_level_options
+ test_event_rule_matches_tracepoint
+-skip $ist_root "non-root user: skipping kprobe tests" 13 || test_event_rule_matches_probe
+-skip $ist_root "non-root user: skipping uprobe tests" 9 || test_event_rule_matches_userspace_probe_elf
+-skip $(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt
+-skip $ist_root "non-root user: skipping syscall tests" 17 || test_event_rule_matches_syscall
++check_skip_kernel_test 48 "Skipping kprobe, uprobe, SDT and syscall tests." || {
++	test_event_rule_matches_probe
++	test_event_rule_matches_userspace_probe_elf
++	skip $sdt_binary_present "No SDT binary. Skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt
++	test_event_rule_matches_syscall
++}
+ test_session_consumed_size_condition
+ test_buffer_usage_conditions
+ test_session_rotation_conditions
+diff --git a/tests/regression/tools/wildcard/test_event_wildcard b/tests/regression/tools/wildcard/test_event_wildcard
+index f69baffc4..14d9bb88a 100755
+--- a/tests/regression/tools/wildcard/test_event_wildcard
++++ b/tests/regression/tools/wildcard/test_event_wildcard
+@@ -124,13 +124,7 @@ test_event_wildcard ust 1 'tp*tptest'
+ test_event_wildcard ust 1 'tp**tptest'
+ test_event_wildcard ust 1 'tp*test'
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel wildcard tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel wildcard tests." ||
+ {
+ 	diag "Test kernel wildcards"
+ 
+diff --git a/tests/regression/tools/working-directory/test_relayd_working_directory b/tests/regression/tools/working-directory/test_relayd_working_directory
+index c7e784cca..6bd1e504a 100755
+--- a/tests/regression/tools/working-directory/test_relayd_working_directory
++++ b/tests/regression/tools/working-directory/test_relayd_working_directory
+@@ -145,9 +145,9 @@ function test_relayd_debug_permission()
+ 	diag "Test lttng-relayd change working directory on non writable directory"
+ 
+ 	if [ "$(id -u)" == "0" ]; then
+-	    is_user=0
++		is_user=0
+ 	else
+-	    is_user=1
++		is_user=1
+ 	fi
+ 
+ 	skip $is_user "Skipping permission debug output test; operation can't fail as root" 6 ||
+diff --git a/tests/regression/ust/namespaces/test_ns_contexts_change b/tests/regression/ust/namespaces/test_ns_contexts_change
+index 8a4b62ce3..622241f7b 100755
+--- a/tests/regression/ust/namespaces/test_ns_contexts_change
++++ b/tests/regression/ust/namespaces/test_ns_contexts_change
+@@ -101,12 +101,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-isroot=0
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0
+ 
+ system_has_ns=0
+ if [ -d "/proc/$$/ns" ]; then
+diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf
+index 33aab2981..178959a19 100755
+--- a/tests/regression/ust/test_event_perf
++++ b/tests/regression/ust/test_event_perf
+@@ -119,17 +119,11 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-        isroot=1
+-else
+-        isroot=0
+-fi
+-
+ start_lttng_sessiond
+ 
+ test_parsing_raw
+ 
+-skip $isroot "Root access is needed. Skipping UST perf tests." 8 ||
++check_skip_kernel_test 8 "Skipping UST perf tests." ||
+ {
+ 	test_event_basic
+ }
+diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
+index faa87e783..da0e0569d 100644
+--- a/tests/utils/utils.sh
++++ b/tests/utils/utils.sh
+@@ -318,6 +318,41 @@ function conf_proc_count()
+ 	echo
+ }
+ 
++# Usage:
++# check_skip_kernel_test [NB_TESTS] [SKIP_MESSAGE]
++# Return 0 if LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set or the current user is not a root user
++# If NB_TESTS is set, call skip() to skip number of tests.
++# If NB_TESTS is empty, just output a reason with diag.
++# An optional message can be added.
++
++function check_skip_kernel_test ()
++{
++	local num_tests="$1"
++	local skip_message="$2"
++
++	# Check for skip test kernel flag
++	if [ "$LTTNG_TOOLS_DISABLE_KERNEL_TESTS" == "1" ]; then
++		if ! test -z "$num_tests"; then
++			skip 0 "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}" "$num_tests"
++		else
++			diag "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}"
++		fi
++		return 0
++	fi
++
++	# Check if we are running as root
++	if [ "$(id -u)" != "0" ]; then
++		if ! test -z "$num_tests"; then
++			skip 0 "Root access is needed for kernel testing.${skip_message+ }${skip_message}" "$num_tests"
++		else
++			diag "Root access is needed for kernel testing.${skip_message+ }${skip_message}"
++		fi
++		return 0
++	fi
++
++	return 1
++}
++
+ # Check if base lttng-modules are present.
+ # Bail out on failure
+ function validate_lttng_modules_present ()
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
index bf99322..39d93e2 100755
--- a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
@@ -1,8 +1,33 @@
 #!/bin/sh
 # Without --ignore-exit, the tap harness causes any FAILs within a
 # test plan to raise ERRORs; this is just noise.
+
+#Detecting whether current system has lttng kernel modules
+LTTNG_KMOD_PATH=/lib/modules/$(uname -r)/kernel/lttng-modules/lttng-tracer.ko
+function validate_lttng_modules_present()
+{
+	# Check for loadable modules.
+	if [ -f "$LTTNG_KMOD_PATH" ]; then
+		return 0
+	fi
+
+	# Check for builtin modules.
+	ls /proc/lttng > /dev/null 2>&1
+	if [ $? -eq 0 ]; then
+		return 0
+	fi
+
+	return 1
+}
+
 export LD_LIBRARY_PATH=FIXMEPTESTPATH/tests/utils/testapp/userspace-probe-elf-binary/.libs
 makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=FIXMEPTESTPATH top_builddir=FIXMEPTESTPATH"
+
+#If current system doesn't have lttng kernel modules, disable lttng kernel related tests.
+validate_lttng_modules_present || {
+	makeargs="$makeargs LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1"
+}
+
 make -k -t all >error.log 2>&1
 # Can specify a test e.g.:
 # -C tests/regression/ check TESTS='kernel/test_callstack'
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
index 44415fb..f6abd9e 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
@@ -37,6 +37,8 @@
            file://lttng-sessiond.service \
            file://disable-tests.patch \
            file://0001-compat-Define-off64_t-as-off_t-on-linux.patch \
+           file://0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch \
+           file://0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch \
            "
 
 SRC_URI[sha256sum] = "ac5baeef9fa690936b1ca01ecd1742da762c2c08511ff1b4e923938d94d0f979"
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index 4f26813..6c4ee4a 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -230,14 +230,18 @@
     if [ -e "${S}/tools/perf/Makefile.perf" ]; then
         sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
             ${S}/tools/perf/Makefile.perf
+        # Variant with linux-yocto-specific patch
         sed -i -e "s,prefix='\$(DESTDIR_SQ)/usr'$,prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(PYTHON_SITEPACKAGES_DIR)' --root='\$(DESTDIR)',g" \
             ${S}/tools/perf/Makefile.perf
+        # Variant for mainline Linux
+        sed -i -e "s,root='/\$(DESTDIR_SQ)',prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(PYTHON_SITEPACKAGES_DIR)' --root='/\$(DESTDIR_SQ)',g" \
+            ${S}/tools/perf/Makefile.perf
         # backport https://github.com/torvalds/linux/commit/e4ffd066ff440a57097e9140fa9e16ceef905de8
         sed -i -e 's,\($(Q)$(SHELL) .$(arch_errno_tbl).\) $(CC) $(arch_errno_hdr_dir),\1 $(firstword $(CC)) $(arch_errno_hdr_dir),g' \
             ${S}/tools/perf/Makefile.perf
     fi
     sed -i -e "s,--root='/\$(DESTDIR_SQ)',--prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \
-        ${S}/tools/perf/Makefile*
+        ${S}/tools/perf/Makefile
 
     if [ -e "${S}/tools/build/Makefile.build" ]; then
         sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
@@ -382,7 +386,7 @@
 RDEPENDS:${PN}-archive =+ "bash"
 RDEPENDS:${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '', d)}"
 RDEPENDS:${PN}-perl =+ "bash perl perl-modules"
-RDEPENDS:${PN}-tests =+ "python3 bash"
+RDEPENDS:${PN}-tests =+ "python3 bash perl"
 
 RSUGGESTS:${PN} += "${PN}-archive ${PN}-tests \
                     ${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl', '', d)} \
diff --git a/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb
similarity index 94%
rename from poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb
index 363d126..2be4061 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb
@@ -12,7 +12,7 @@
            file://0001-connect-has-a-different-signature-on-musl.patch \
            "
 
-SRC_URI[sha256sum] = "0e1ec0d0b8f2d3d314a397399cd01dfc50c02ac088176996f934758119075ea9"
+SRC_URI[sha256sum] = "07766425ecb5bf857ab5ad3962321c55cd89f9386b720843f9df71c0a455eb9b"
 
 DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
 RRECOMMENDS:${PN} = "git"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb
similarity index 91%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb
index 818dbf4..f3287ef 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb
@@ -12,7 +12,7 @@
                     "
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
-SRC_URI[sha256sum] = "d6dda7aa38a44173278de675ccd92acff0abf473f7bc02e7d1cdd4ce0f3b7642"
+SRC_URI[sha256sum] = "6b13dcc9332ef27a7c1e7005c0196883874f91622f8aa6e52f218b05b15d2bf5"
 
 S = "${WORKDIR}/gst-libav-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
similarity index 95%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
index 4cb8393..97348fb 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "ce0126f6de908df4fa7b12136d47d6840dd9f7131ae997e55a817d96a2728a41"
+SRC_URI[sha256sum] = "18dfdf5f6b773d67e62a315c6cf6247da320b83603a5819493f53c69ed2eeef6"
 
 S = "${WORKDIR}/gst-omx-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb
similarity index 98%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb
index 70b9850..523ee7a 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb
@@ -10,7 +10,7 @@
            file://0002-avoid-including-sys-poll.h-directly.patch \
            file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
            "
-SRC_URI[sha256sum] = "dabcd60c762165bb043eba753d599212514c94684e4db9a2e25484cb6508ebbf"
+SRC_URI[sha256sum] = "808d3b33fc4c71aeb2561c364a87c2e8a3e2343319a83244c8391be4b09499c8"
 
 S = "${WORKDIR}/gst-plugins-bad-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
index c922aad..2adeae9 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch
@@ -6,7 +6,7 @@
 some parser will pass in the original ssa text line which starts with "Dialog:"
 and there's are maybe multiple Dialog lines in one input buffer.
 
-Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747496]
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/178]
 
 Signed-off-by: Mingke Wang <mingke.wang@freescale.com>
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb
similarity index 97%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb
index d4b69b1..7aa10eb 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb
@@ -11,7 +11,7 @@
            file://0003-viv-fb-Make-sure-config.h-is-included.patch \
            file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
            "
-SRC_URI[sha256sum] = "843a3a2da28e1ee6aeea56dd2be9bffcc3b4bbcd0f974eba4abfc3aa31f0399c"
+SRC_URI[sha256sum] = "65eaf72296cc5edc985695a4d80affc931e64a79f4879d05615854f7a2cf5bd1"
 
 S = "${WORKDIR}/gst-plugins-base-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb
similarity index 97%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb
index 9a76aaf..edd8609 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb
@@ -8,7 +8,7 @@
            file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
            file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch"
 
-SRC_URI[sha256sum] = "f748feae922cad62f20102a84ade8f42b78e1e44a34866aa3ea766f9172e1c7f"
+SRC_URI[sha256sum] = "6ddd032381827d31820540735f0004b429436b0bdac19aaeab44fa22faad52e2"
 
 S = "${WORKDIR}/gst-plugins-good-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb
similarity index 94%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb
index 7cbbf9f..61f46fb 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb
@@ -15,7 +15,7 @@
             https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
             "
 
-SRC_URI[sha256sum] = "cc80a81a22c0b3b31ab7f1b8bf18dda23c72d2791b86cc6264923a68336329ea"
+SRC_URI[sha256sum] = "7758b7decfd20c00cae5700822bcbbf03f98c723e33e17634db2e07ca1da60bf"
 
 S = "${WORKDIR}/gst-plugins-ugly-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb
similarity index 90%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb
index b829a0f..0fbb03f 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "99e37ea9f7163099734f9b0fce361bc67a0e7a65ffba9bc497127506a3fdedb3"
+SRC_URI[sha256sum] = "f7a5450d93fd81bf46060dca7f4a048d095b6717961fec211731a11a994c99a7"
 
 DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
 RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb
similarity index 90%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb
index 0e910e3..554ed9e 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "60eb4f80b5a7ca929c21a61d50be9813a3413787959a5875de56a8ad5ca25f35"
+SRC_URI[sha256sum] = "ec49d474750a6ff6729c85b448abc607fb6840b21717ad7abc967e2adbf07a24"
 
 S = "${WORKDIR}/${PNREAL}-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb
similarity index 95%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb
index b52b7aa..87eb848 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "094ca144aca8f2c554a2517dfdc421fa37c80294c6f12b992c20cbc73aa2c0bd"
+SRC_URI[sha256sum] = "6eae1360658302b9b512fa46b4d06f5b818dfce5f2f43d7d710ca8142719d8ad"
 
 S = "${WORKDIR}/${REALPN}-${PV}"
 DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
index 0cfa955..7d03120 100755
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -1,2 +1,16 @@
-#!/usr/bin/env sh
+#! /bin/sh
+
+# Multiply all timeouts by ten so they're more likely to work
+# on a loaded system.
+export CK_TIMEOUT_MULTIPLIER=5
+
+# Skip some tests that we know are problematic
+export GST_CHECKS_IGNORE=""
+# gstnetclientclock.c:test_functioning is very sensitive to load
+GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning"
+
+# aggregator.c:test_infinite_seek_50_src_live is known to be flaky
+# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
+GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live"
+
 gnome-desktop-testing-runner gstreamer
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/skip-aggregator-test.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/skip-aggregator-test.patch
deleted file mode 100644
index 8133751..0000000
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/skip-aggregator-test.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 9b72aa7cdbc2a81cffc6f855933afe90c81046d5 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Wed, 28 Feb 2024 12:40:34 +0000
-Subject: [PATCH] Skip aggregator test
-
-This test case is known to be flaky upstream[1] and often fails on the
-autobuilder[2], so skip it until this has been resolved upstream.
-
-[1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
-[2] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15054
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- tests/check/libs/aggregator.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/check/libs/aggregator.c b/tests/check/libs/aggregator.c
-index 1f2c5b4..27b3ac7 100644
---- a/tests/check/libs/aggregator.c
-+++ b/tests/check/libs/aggregator.c
-@@ -1475,7 +1475,9 @@ gst_aggregator_suite (void)
-   tcase_add_test (general, test_flushing_seek);
-   tcase_add_test (general, test_infinite_seek);
-   tcase_add_test (general, test_infinite_seek_50_src);
--  tcase_add_test (general, test_infinite_seek_50_src_live);
-+  // This test case is known to be flaky, remove it until resolved:
-+  // https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410
-+  // tcase_add_test (general, test_infinite_seek_50_src_live);
-   tcase_add_test (general, test_linear_pipeline);
-   tcase_add_test (general, test_two_src_pipeline);
-   tcase_add_test (general, test_timeout_pipeline);
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.10.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb
similarity index 95%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.10.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb
index c16f0de..8965497 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.10.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb
@@ -21,9 +21,8 @@
            file://0002-tests-add-support-for-install-the-tests.patch \
            file://0003-tests-use-a-dictionaries-for-environment.patch \
            file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \
-           file://skip-aggregator-test.patch \
            "
-SRC_URI[sha256sum] = "969aaef396f252ce925132a4be2aa004e0320f5c1baf0acaaae09c544a6759f4"
+SRC_URI[sha256sum] = "3d16259e9dab8b002c57ce208a09b350d8282f5b0197306c0cdba9a0d0799744"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
                    check \
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
deleted file mode 100644
index a4ef565..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
+++ /dev/null
@@ -1,310 +0,0 @@
-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
- unused https://bugs.webkit.org/show_bug.cgi?id=241182
-
-Reviewed by NOBODY (OOPS!).
-
-Move the NEON fast path for the SVG lighting filter effects into
-FELightingSoftwareApplier, and arrange to actually use them by
-forwarding calls to applyPlatformGeneric() into applyPlatformNeon().
-
-Some changes were needed to adapt platformApplyNeon() to the current
-state of filters after r286140. This was not detected because the code
-bitrotted due to it being guarded with CPU(ARM_TRADITIONAL), which does
-not get used much these days: CPU(ARM_THUMB2) is more common. It should
-be possible to use the NEON fast paths also in Thumb mode, but that is
-left for a follow-up fix.
-
-* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
-(WebCore::FELightingSoftwareApplier::platformApplyNeonWorker):
-(WebCore::FELightingSoftwareApplier::getPowerCoefficients):
-(WebCore::FELighting::platformApplyNeonWorker): Deleted.
-(WebCore::FELighting::getPowerCoefficients): Deleted.
-* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h:
-(WebCore::FELightingSoftwareApplier::applyPlatformNeon):
-(WebCore::FELighting::platformApplyNeon): Deleted.
-* Source/WebCore/platform/graphics/filters/DistantLightSource.h:
-* Source/WebCore/platform/graphics/filters/FELighting.h:
-* Source/WebCore/platform/graphics/filters/PointLightSource.h:
-* Source/WebCore/platform/graphics/filters/SpotLightSource.h:
-* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
-
-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 +++++++++----------
- .../graphics/filters/DistantLightSource.h     |  4 ++
- .../platform/graphics/filters/FELighting.h    |  7 ---
- .../graphics/filters/PointLightSource.h       |  4 ++
- .../graphics/filters/SpotLightSource.h        |  4 ++
- .../software/FELightingSoftwareApplier.h      | 16 ++++++
- 7 files changed, 56 insertions(+), 35 deletions(-)
-
-diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
-index f6ff8c20..42a97ffc 100644
---- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
-+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
-@@ -49,7 +49,7 @@ short* feLightingConstantsForNeon()
-     return s_FELightingConstantsForNeon;
- }
- 
--void FELighting::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
-+void FELightingSoftwareApplier::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
- {
-     neonDrawLighting(parameters);
- }
-@@ -464,7 +464,7 @@ TOSTRING(neonDrawLighting) ":" NL
-     "b .lightStrengthCalculated" NL
- ); // NOLINT
- 
--int FELighting::getPowerCoefficients(float exponent)
-+int FELightingSoftwareApplier::getPowerCoefficients(float exponent)
- {
-     // Calling a powf function from the assembly code would require to save
-     // and reload a lot of NEON registers. Since the base is in range [0..1]
-diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
-index b17c603d..e4629cda 100644
---- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
-+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
-@@ -24,14 +24,15 @@
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#ifndef FELightingNEON_h
--#define FELightingNEON_h
-+#pragma once
- 
- #if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
- 
--#include "FELighting.h"
-+#include "FELightingSoftwareApplier.h"
-+#include "ImageBuffer.h"
- #include "PointLightSource.h"
- #include "SpotLightSource.h"
-+#include <wtf/ObjectIdentifier.h>
- #include <wtf/ParallelJobs.h>
- 
- namespace WebCore {
-@@ -93,14 +94,14 @@ extern "C" {
- void neonDrawLighting(FELightingPaintingDataForNeon*);
- }
- 
--inline void FELighting::platformApplyNeon(const LightingData& data, const LightSource::PaintingData& paintingData)
-+inline void FELightingSoftwareApplier::applyPlatformNeon(const FELightingSoftwareApplier::LightingData& data, const LightSource::PaintingData& paintingData)
- {
--    alignas(16) FELightingFloatArgumentsForNeon floatArguments;
--    FELightingPaintingDataForNeon neonData = {
-+    WebCore::FELightingFloatArgumentsForNeon alignas(16) floatArguments;
-+    WebCore::FELightingPaintingDataForNeon neonData = {
-         data.pixels->data(),
-         1,
--        data.widthDecreasedByOne - 1,
--        data.heightDecreasedByOne - 1,
-+        data.width - 2,
-+        data.height - 2,
-         0,
-         0,
-         0,
-@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
-     // Set light source arguments.
-     floatArguments.constOne = 1;
- 
--    auto color = m_lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
-+    auto color = data.lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
- 
-     floatArguments.colorRed = color.red;
-     floatArguments.colorGreen = color.green;
-     floatArguments.colorBlue = color.blue;
-     floatArguments.padding4 = 0;
- 
--    if (m_lightSource->type() == LS_POINT) {
-+    if (data.lightSource->type() == LS_POINT) {
-         neonData.flags |= FLAG_POINT_LIGHT;
--        PointLightSource& pointLightSource = static_cast<PointLightSource&>(m_lightSource.get());
-+        const auto& pointLightSource = *static_cast<const PointLightSource*>(data.lightSource);
-         floatArguments.lightX = pointLightSource.position().x();
-         floatArguments.lightY = pointLightSource.position().y();
-         floatArguments.lightZ = pointLightSource.position().z();
-         floatArguments.padding2 = 0;
--    } else if (m_lightSource->type() == LS_SPOT) {
-+    } else if (data.lightSource->type() == LS_SPOT) {
-         neonData.flags |= FLAG_SPOT_LIGHT;
--        SpotLightSource& spotLightSource = static_cast<SpotLightSource&>(m_lightSource.get());
-+        const auto& spotLightSource = *static_cast<const SpotLightSource*>(data.lightSource);
-         floatArguments.lightX = spotLightSource.position().x();
-         floatArguments.lightY = spotLightSource.position().y();
-         floatArguments.lightZ = spotLightSource.position().z();
-@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
-         if (spotLightSource.specularExponent() == 1)
-             neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
-     } else {
--        ASSERT(m_lightSource->type() == LS_DISTANT);
-+        ASSERT(data.lightSource->type() == LS_DISTANT);
-         floatArguments.lightX = paintingData.initialLightingData.lightVector.x();
-         floatArguments.lightY = paintingData.initialLightingData.lightVector.y();
-         floatArguments.lightZ = paintingData.initialLightingData.lightVector.z();
-@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
-     // Set lighting arguments.
-     floatArguments.surfaceScale = data.surfaceScale;
-     floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale / 4;
--    if (m_lightingType == FELighting::DiffuseLighting)
--        floatArguments.diffuseConstant = m_diffuseConstant;
-+    if (data.filterType == FilterEffect::Type::FEDiffuseLighting)
-+        floatArguments.diffuseConstant = data.diffuseConstant;
-     else {
-         neonData.flags |= FLAG_SPECULAR_LIGHT;
--        floatArguments.diffuseConstant = m_specularConstant;
--        neonData.specularExponent = getPowerCoefficients(m_specularExponent);
--        if (m_specularExponent == 1)
-+        floatArguments.diffuseConstant = data.specularConstant;
-+        neonData.specularExponent = getPowerCoefficients(data.specularExponent);
-+        if (data.specularExponent == 1)
-             neonData.flags |= FLAG_SPECULAR_EXPONENT_IS_1;
-     }
-     if (floatArguments.diffuseConstant == 1)
-         neonData.flags |= FLAG_DIFFUSE_CONST_IS_1;
- 
--    int optimalThreadNumber = ((data.widthDecreasedByOne - 1) * (data.heightDecreasedByOne - 1)) / s_minimalRectDimension;
-+    static constexpr int minimalRectDimension = 100 * 100; // Empirical data limit for parallel jobs
-+    int optimalThreadNumber = ((data.width - 2) * (data.height - 2)) / minimalRectDimension;
-     if (optimalThreadNumber > 1) {
-         // Initialize parallel jobs
--        ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&WebCore::FELighting::platformApplyNeonWorker, optimalThreadNumber);
-+        ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&FELightingSoftwareApplier::platformApplyNeonWorker, optimalThreadNumber);
- 
-         // Fill the parameter array
-         int job = parallelJobs.numberOfJobs();
-         if (job > 1) {
-             int yStart = 1;
--            int yStep = (data.heightDecreasedByOne - 1) / job;
-+            int yStep = (data.height - 2) / job;
-             for (--job; job >= 0; --job) {
-                 FELightingPaintingDataForNeon& params = parallelJobs.parameter(job);
-                 params = neonData;
-                 params.yStart = yStart;
--                params.pixels += (yStart - 1) * (data.widthDecreasedByOne + 1) * 4;
-+                params.pixels += (yStart - 1) * data.width * 4;
-                 if (job > 0) {
-                     params.absoluteHeight = yStep;
-                     yStart += yStep;
-                 } else
--                    params.absoluteHeight = data.heightDecreasedByOne - yStart;
-+                    params.absoluteHeight = (data.height - 1) - yStart;
-             }
-             parallelJobs.execute();
-             return;
-@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
- } // namespace WebCore
- 
- #endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE)
--
--#endif // FELightingNEON_h
-diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
-index 70f583b3..7d5d27e5 100644
---- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
-+++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
-@@ -26,6 +26,10 @@
- #include <wtf/ArgumentCoder.h>
- #include <wtf/Ref.h>
- 
-+namespace WTF {
-+class TextStream;
-+} // namespace WTF
-+
- namespace WebCore {
- 
- class DistantLightSource : public LightSource {
-diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
-index 179edf6d..694d712d 100644
---- a/Source/WebCore/platform/graphics/filters/FELighting.h
-+++ b/Source/WebCore/platform/graphics/filters/FELighting.h
-@@ -35,8 +35,6 @@
- 
- namespace WebCore {
- 
--struct FELightingPaintingDataForNeon;
--
- class FELighting : public FilterEffect {
- public:
-     bool operator==(const FELighting&) const;
-@@ -68,11 +66,6 @@ protected:
- 
-     std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
- 
--#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
--    static int getPowerCoefficients(float exponent);
--    inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
--#endif
--
-     Color m_lightingColor;
-     float m_surfaceScale;
-     float m_diffuseConstant;
-diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
-index a8cfdab8..34f867bb 100644
---- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
-+++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
-@@ -26,6 +26,10 @@
- #include "LightSource.h"
- #include <wtf/Ref.h>
- 
-+namespace WTF {
-+class TextStream;
-+} // namespace WTF
-+
- namespace WebCore {
- 
- class PointLightSource : public LightSource {
-diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
-index 6404467a..5cac38f2 100644
---- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
-+++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
-@@ -26,6 +26,10 @@
- #include "LightSource.h"
- #include <wtf/Ref.h>
- 
-+namespace WTF {
-+class TextStream;
-+} // namespace WTF
-+
- namespace WebCore {
- 
- class SpotLightSource : public LightSource {
-diff --git a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
-index c974d921..e2896660 100644
---- a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
-+++ b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
-@@ -36,6 +36,7 @@
- namespace WebCore {
- 
- class FELighting;
-+struct FELightingPaintingDataForNeon;
- 
- class FELightingSoftwareApplier final : public FilterEffectConcreteApplier<FELighting> {
-     WTF_MAKE_FAST_ALLOCATED;
-@@ -132,8 +133,23 @@ private:
- 
-     static void applyPlatformGenericPaint(const LightingData&, const LightSource::PaintingData&, int startY, int endY);
-     static void applyPlatformGenericWorker(ApplyParameters*);
-+
-+#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
-+    static int getPowerCoefficients(float exponent);
-+    static void platformApplyNeonWorker(FELightingPaintingDataForNeon*);
-+    inline static void applyPlatformNeon(const LightingData&, const LightSource::PaintingData&);
-+
-+    inline static void applyPlatformGeneric(const LightingData& data, const LightSource::PaintingData& paintingData)
-+    {
-+        applyPlatformNeon(data, paintingData);
-+    }
-+#else
-     static void applyPlatformGeneric(const LightingData&, const LightSource::PaintingData&);
-+#endif
-+
-     static void applyPlatform(const LightingData&);
- };
- 
- } // namespace WebCore
-+
-+#include "FELightingNEON.h"
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch b/poky/meta/recipes-sato/webkit/webkitgtk/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch
new file mode 100644
index 0000000..3067500
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch
@@ -0,0 +1,38 @@
+From 2922af379dc70b4b1a63b01d67179eb431f03ac4 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@redhat.com>
+Date: Mon, 18 Mar 2024 11:14:54 -0700
+Subject: [PATCH] REGRESSION(274077@main): failure to build on i586 (and likely
+ other 32bit arches): static assertion failed: Timer should stay small
+ https://bugs.webkit.org/show_bug.cgi?id=271108
+
+Unreviewed build fix. This changes SameSizeOfTimer to ensure it matches
+the size of Timer on 32-bit platforms.
+
+* Source/WebCore/platform/Timer.cpp:
+
+Canonical link: https://commits.webkit.org/276282@main
+
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/2922af379dc70b4b1a63b01d67179eb431f03ac4]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ Source/WebCore/platform/Timer.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/Source/WebCore/platform/Timer.cpp b/Source/WebCore/platform/Timer.cpp
+index 4f7c0f5c39ca9..0f3734cca2474 100644
+--- a/Source/WebCore/platform/Timer.cpp
++++ b/Source/WebCore/platform/Timer.cpp
+@@ -263,7 +263,11 @@ struct SameSizeAsTimer {
+ 
+     WeakPtr<TimerAlignment> timerAlignment;
+     double times[2];
+-    void* pointers[3];
++    void* pointers[2];
++#if CPU(ADDRESS32)
++    uint8_t bitfields;
++#endif
++    void* pointer;
+ };
+ 
+ static_assert(sizeof(Timer) == sizeof(SameSizeAsTimer), "Timer should stay small");
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch b/poky/meta/recipes-sato/webkit/webkitgtk/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch
new file mode 100644
index 0000000..76bcb3d
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch
@@ -0,0 +1,67 @@
+From 1523e00a2a76e285262c8aa3721b5d99f3f2d612 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas.devoogdt@barco.com>
+Date: Mon, 16 Jan 2023 17:03:30 +0100
+Subject: [PATCH] REGRESSION(257865@main): B3Validate.cpp: fix
+
+ !ENABLE(WEBASSEMBLY_B3JIT)
+
+https://bugs.webkit.org/show_bug.cgi?id=250681
+
+Reviewed by NOBODY (OOPS!).
+
+WasmTypeDefinition.h isn't included if not ENABLE(WEBASSEMBLY_B3JIT).
+Also, toB3Type and simdScalarType are not defined if it is included.
+
+Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
+
+Upstream-Status: Inappropriate [https://bugs.launchpad.net/ubuntu/+source/webkit2gtk/+bug/2008798]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ Source/JavaScriptCore/b3/B3Validate.cpp | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/Source/JavaScriptCore/b3/B3Validate.cpp b/Source/JavaScriptCore/b3/B3Validate.cpp
+index eaaa3749..1d089783 100644
+--- a/Source/JavaScriptCore/b3/B3Validate.cpp
++++ b/Source/JavaScriptCore/b3/B3Validate.cpp
+@@ -47,6 +47,12 @@
+ #include <wtf/StringPrintStream.h>
+ #include <wtf/text/CString.h>
+ 
++#if ENABLE(WEBASSEMBLY) && ENABLE(WEBASSEMBLY_B3JIT)
++#define simdScalarTypeToB3Type(type) toB3Type(Wasm::simdScalarType(type))
++#else
++#define simdScalarTypeToB3Type(type) B3::Type()
++#endif
++
+ namespace JSC { namespace B3 {
+ 
+ namespace {
+@@ -454,7 +460,7 @@ public:
+             case VectorExtractLane:
+                 VALIDATE(!value->kind().hasExtraBits(), ("At ", *value));
+                 VALIDATE(value->numChildren() == 1, ("At ", *value));
+-                VALIDATE(value->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
++                VALIDATE(value->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value));
+                 VALIDATE(value->child(0)->type() == V128, ("At ", *value));
+                 break;
+             case VectorReplaceLane:
+@@ -462,7 +468,7 @@ public:
+                 VALIDATE(value->numChildren() == 2, ("At ", *value));
+                 VALIDATE(value->type() == V128, ("At ", *value));
+                 VALIDATE(value->child(0)->type() == V128, ("At ", *value));
+-                VALIDATE(value->child(1)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
++                VALIDATE(value->child(1)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value));
+                 break;
+             case VectorDupElement:
+                 VALIDATE(!value->kind().hasExtraBits(), ("At ", *value));
+@@ -484,7 +490,7 @@ public:
+                 VALIDATE(!value->kind().hasExtraBits(), ("At ", *value));
+                 VALIDATE(value->numChildren() == 1, ("At ", *value));
+                 VALIDATE(value->type() == V128, ("At ", *value));
+-                VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
++                VALIDATE(value->child(0)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value));
+                 break;
+ 
+             case VectorPopcnt:
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.42.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.44.0.bb
similarity index 94%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.42.5.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.44.0.bb
index 6790814..0819f6d 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.42.5.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.44.0.bb
@@ -12,12 +12,13 @@
 SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
            file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
            file://reproducibility.patch \
-           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 \
+           file://30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch \
+           file://2922af379dc70b4b1a63b01d67179eb431f03ac4.patch \
            "
-SRC_URI[sha256sum] = "b64278c1f20b8cfdbfb5ff573c37d871aba74a1db26d9b39f74e8953fe61e749"
+SRC_URI[sha256sum] = "c66530e41ba59b1edba4ee89ef20b2188e273bed0497e95084729e3cfbe30c87"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
 
@@ -77,6 +78,8 @@
 PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif"
 PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad"
 PACKAGECONFIG[jpegxl] = "-DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl"
+PACKAGECONFIG[backtrace] = "-DUSE_LIBBACKTRACE=ON,-DUSE_LIBBACKTRACE=OFF,libbacktrace"
+PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette"
 
 EXTRA_OECMAKE = " \
                  -DPORT=GTK \
@@ -85,8 +88,8 @@
                  ${@oe.utils.vartrue('DEBUG_BUILD', '-DWEBKIT_NO_INLINE_HINTS=ON', '-DWEBKIT_NO_INLINE_HINTS=OFFF', d)} \
                  -DENABLE_MINIBROWSER=ON \
                  -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-                 -DENABLE_GAMEPAD=OFF \
                  -DUSE_GTK4=ON \
+                 -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF \
                  "
 
 # Unless DEBUG_BUILD is enabled, pass -g1 to massively reduce the size of the
diff --git a/poky/meta/recipes-support/bmaptool/bmaptool_git.bb b/poky/meta/recipes-support/bmaptool/bmaptool_git.bb
index 87328af..fd53c21 100644
--- a/poky/meta/recipes-support/bmaptool/bmaptool_git.bb
+++ b/poky/meta/recipes-support/bmaptool/bmaptool_git.bb
@@ -9,16 +9,10 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
-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 \
-	"
-
-SRCREV = "d84a6fd202fe246a0bc19ed2082e41bcdd75fb13"
+SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https"
+SRCREV = "2ff5750b8a3e0b36a9993c20e2ea10a07bc62085"
 S = "${WORKDIR}/git"
-BASEVER = "3.7"
+BASEVER = "3.8.0"
 PV = "${BASEVER}+git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
@@ -28,4 +22,8 @@
 
 inherit setuptools3
 
+# For compatibility with layers before scarthgap
+RREPLACES:${PN} = "bmap-tools"
+RCONFLICTS:${PN} = "bmap-tools"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/bmaptool/files/0001-BmapCopy.py-fix-error-message.patch b/poky/meta/recipes-support/bmaptool/files/0001-BmapCopy.py-fix-error-message.patch
deleted file mode 100644
index ddac322..0000000
--- a/poky/meta/recipes-support/bmaptool/files/0001-BmapCopy.py-fix-error-message.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From ad0b0513a46c7d238d0fdabee0267c7084b75e84 Mon Sep 17 00:00:00 2001
-From: Trevor Woerner <twoerner@gmail.com>
-Date: Thu, 11 Jan 2024 22:04:23 -0500
-Subject: [PATCH 1/3] BmapCopy.py: fix error message
-
-The wrong variable was being used when attempting to print out an informative
-message to the user. Leading to nonsense messages such as:
-
-	bmaptool: info: failed to enable I/O optimization, expect suboptimal speed (reason: cannot switch to the 1 I/O scheduler: 1 in use. None)
-
-Upstream-Status: Submitted [https://github.com/intel/bmap-tools/pull/129]
-Signed-off-by: Trevor Woerner <twoerner@gmail.com>
----
- bmaptools/BmapCopy.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/bmaptools/BmapCopy.py b/bmaptools/BmapCopy.py
-index 9de7ef434233..b1e8e0fcbdb7 100644
---- a/bmaptools/BmapCopy.py
-+++ b/bmaptools/BmapCopy.py
-@@ -892,9 +892,9 @@ class BmapBdevCopy(BmapCopy):
-                 _log.info(
-                     "failed to enable I/O optimization, expect "
-                     "suboptimal speed (reason: cannot switch to the "
--                    f"{max_ratio_chg.temp_value} I/O scheduler: "
--                    f"{max_ratio_chg.old_value or 'unknown scheduler'} in use. "
--                    f"{max_ratio_chg.error})"
-+                    f"'{scheduler_chg.temp_value}' I/O scheduler: "
-+                    f"'{scheduler_chg.old_value or 'unknown scheduler'}' in use. "
-+                    f"{scheduler_chg.error})"
-                 )
-             if max_ratio_chg.error or scheduler_chg.error:
-                 _log.info(
--- 
-2.43.0.76.g1a87c842ece3
-
diff --git a/poky/meta/recipes-support/bmaptool/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
deleted file mode 100644
index ea2749a..0000000
--- a/poky/meta/recipes-support/bmaptool/files/0002-CLI.py-fix-block-device-udev-race-condition.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 34f4321dfce28697f830639260076e60d765698b Mon Sep 17 00:00:00 2001
-From: Trevor Woerner <twoerner@gmail.com>
-Date: Fri, 12 Jan 2024 01:16:19 -0500
-Subject: [PATCH 2/3] CLI.py: fix block device udev race condition
-
-We are encouraged to add a udev rule to change a block device's
-bdi/max_ratio to '1' and queue/scheduler to 'none', which I did.
-So I was surprised when, about 50% of the time, I kept seeing:
-
-	...
-	bmaptool: info: failed to enable I/O optimization, expect suboptimal speed (reason: cannot switch to the 'none' I/O scheduler: 'bfq' in use. [Errno 13] Permission denied: '/sys/dev/block/8:160/queue/scheduler')
-	bmaptool: info: You may want to set these I/O optimizations through a udev rule like this:
-	...
-
-The strange part is that sometimes it doesn't report a problem and
-sometimes it does, even if the block device is left plugged in continuously
-between multiple bmaptool invocations.
-
-In all of my tests the bdi/max_ratio is always okay, but the
-queue/scheduler would sometimes be reported as being the default scheduler,
-not the one the udev rule was setting (none). Yet no matter how many times
-I would read the file outside of bmaptool it always would be set to the
-correct scheduler.
-
-It turns out that opening a block device in "wb+" mode, which is what
-bmaptool is doing at one point, causes the block device to act as though
-it was just inserted, giving it the default settings, then causing udev to
-trigger to switch it to the requested settings. However, if udev doesn't
-finish before bmaptool reads the scheduler value there's a chance it will
-read the pre-udev value, not the post-udev value, even though the block
-device was never physically removed and re-inserted.
-
-bmaptool was opening every file, then checking for block devices and
-if found, closing then re-opening the block devices via a special
-block-opening helper function. This patch re-organizes the code to only
-open block devices once using the special block-opening helper function
-that does not open block devices in "wb+" mode.
-
-Upstream-Status: Submitted [https://github.com/intel/bmap-tools/pull/130]
-Signed-off-by: Trevor Woerner <twoerner@gmail.com>
----
- bmaptools/CLI.py | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/bmaptools/CLI.py b/bmaptools/CLI.py
-index 82303b7bc398..0a263f05cf43 100644
---- a/bmaptools/CLI.py
-+++ b/bmaptools/CLI.py
-@@ -38,6 +38,7 @@ import tempfile
- import traceback
- import shutil
- import io
-+import pathlib
- from bmaptools import BmapCreate, BmapCopy, BmapHelpers, TransRead
- 
- VERSION = "3.7"
-@@ -440,17 +441,16 @@ def open_files(args):
-     # Try to open the destination file. If it does not exist, a new regular
-     # file will be created. If it exists and it is a regular file - it'll be
-     # truncated. If this is a block device, it'll just be opened.
-+    dest_is_blkdev = False
-     try:
--        dest_obj = open(args.dest, "wb+")
-+        if pathlib.Path(args.dest).is_block_device():
-+            dest_is_blkdev = True
-+            dest_obj = open_block_device(args.dest)
-+        else:
-+            dest_obj = open(args.dest, "wb+")
-     except IOError as err:
-         error_out("cannot open destination file '%s':\n%s", args.dest, err)
- 
--    # Check whether the destination file is a block device
--    dest_is_blkdev = stat.S_ISBLK(os.fstat(dest_obj.fileno()).st_mode)
--    if dest_is_blkdev:
--        dest_obj.close()
--        dest_obj = open_block_device(args.dest)
--
-     return (image_obj, dest_obj, bmap_obj, bmap_path, image_obj.size, dest_is_blkdev)
- 
- 
--- 
-2.43.0.76.g1a87c842ece3
-
diff --git a/poky/meta/recipes-support/bmaptool/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch b/poky/meta/recipes-support/bmaptool/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch
deleted file mode 100644
index 2794eea..0000000
--- a/poky/meta/recipes-support/bmaptool/files/0003-BmapCopy.py-tweak-suggested-udev-rule.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 2a71e0c1a675e4f30f02c03dd0325944b393c434 Mon Sep 17 00:00:00 2001
-From: Trevor Woerner <twoerner@gmail.com>
-Date: Fri, 12 Jan 2024 01:54:26 -0500
-Subject: [PATCH 3/3] BmapCopy.py: tweak suggested udev rule
-
-Both bdi/max_ratio and queue/scheduler are only valid for whole block devices,
-not individual partitions. Therefore, add a
-
-	ENV{DEVTYPE}!="partition",
-
-to the suggested udev rule so that bmaptool doesn't try to check every
-partition of the block device, just the whole device.
-
-Otherwise the following will appear in the logs:
-
-	Jan 10 01:30:31 localhost (udev-worker)[10399]: sdk1: /etc/udev/rules.d/60-bmaptool-optimizations.rules:5 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1.2/2-3.1.2:1.0/host14/target14:0:0/14:0:0:0/block/sdk/sdk1/bdi/min_ratio}, ignoring: No such file or directory
-	Jan 10 01:30:31 localhost (udev-worker)[10399]: sdk1: /etc/udev/rules.d/60-bmaptool-optimizations.rules:5 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1.2/2-3.1.2:1.0/host14/target14:0:0/14:0:0:0/block/sdk/sdk1/bdi/max_ratio}, ignoring: No such file or directory
-	Jan 10 01:30:31 localhost (udev-worker)[10399]: sdk1: /etc/udev/rules.d/60-bmaptool-optimizations.rules:5 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1.2/2-3.1.2:1.0/host14/target14:0:0/14:0:0:0/block/sdk/sdk1/queue/scheduler}, ignoring: No such file or directory
-	[... and so on for every partition on your block device ...]
-
-Upstream-Status: Submitted [https://github.com/intel/bmap-tools/pull/131]
-Signed-off-by: Trevor Woerner <twoerner@gmail.com>
----
- bmaptools/BmapCopy.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/bmaptools/BmapCopy.py b/bmaptools/BmapCopy.py
-index b1e8e0fcbdb7..a4c1177246a9 100644
---- a/bmaptools/BmapCopy.py
-+++ b/bmaptools/BmapCopy.py
-@@ -906,7 +906,8 @@ class BmapBdevCopy(BmapCopy):
-                     "\n"
-                     'ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="xxxx", '
-                     'ATTRS{idProduct}=="xxxx", TAG+="uaccess"\n'
--                    'SUBSYSTEMS=="usb", ATTRS{idVendor}=="xxxx", '
-+                    'SUBSYSTEMS=="usb", ENV{DEVTYPE}!="partition", '
-+                    'ATTRS{idVendor}=="xxxx", '
-                     'ATTRS{idProduct}=="xxxx", ATTR{bdi/min_ratio}="0", '
-                     'ATTR{bdi/max_ratio}="1", ATTR{queue/scheduler}="none"\n'
-                     "\n"
--- 
-2.43.0.76.g1a87c842ece3
-
diff --git a/poky/meta/recipes-support/curl/curl/no-test-timeout.patch b/poky/meta/recipes-support/curl/curl/no-test-timeout.patch
new file mode 100644
index 0000000..b4cfe71
--- /dev/null
+++ b/poky/meta/recipes-support/curl/curl/no-test-timeout.patch
@@ -0,0 +1,18 @@
+Set the max-time timeout to 600 so the timeout is 10 minutes instead of 13 seconds.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/tests/servers.pm b/tests/servers.pm
+index d4472d509..aeab62c47 100644
+--- a/tests/servers.pm
++++ b/tests/servers.pm
+@@ -120,7 +120,7 @@ my $sshdverstr;  # for socks server, ssh daemon version string
+ my $sshderror;   # for socks server, ssh daemon version error
+ my %doesntrun;    # servers that don't work, identified by pidfile
+ my %PORT = (nolisten => 47); # port we use for a local non-listening service
+-my $server_response_maxtime=13;
++my $server_response_maxtime=600;
+ my $httptlssrv = find_httptlssrv();
+ my %run;          # running server
+ my %runcert;      # cert file currently in use by an ssl running server
diff --git a/poky/meta/recipes-support/curl/curl/run-ptest b/poky/meta/recipes-support/curl/curl/run-ptest
index 8f9c20f3..3d25f3d 100644
--- a/poky/meta/recipes-support/curl/curl/run-ptest
+++ b/poky/meta/recipes-support/curl/curl/run-ptest
@@ -1,6 +1,11 @@
 #!/bin/sh
+
 cd tests
-{ ./runtests.pl -a -n -s -j4 !flaky || echo "FAIL: curl" ; } | sed \
-     -e 's|\([^ ]* *\) \([^ ]* *\)...OK|PASS: \1 \2|' \
-     -e 's|\([^ ]* *\) \([^ ]* *\)...FAILED|FAIL: \1 \2|' \
-     -e 's/Warning: test[0-9]\+ not present in tests\/data\/Makefile.inc//'
+
+# Run all tests, don't stop on first failure
+# Don't use valgrind if it is found
+# Use automake-style output
+# Run four tests in parallel
+# Print log output on failure
+# Don't run the flaky or timing dependent tests
+./runtests.pl -a -n -am -j4 -p !flaky !timing-dependent
diff --git a/poky/meta/recipes-support/curl/curl_8.6.0.bb b/poky/meta/recipes-support/curl/curl_8.6.0.bb
index b01f454..49ba0cb 100644
--- a/poky/meta/recipes-support/curl/curl_8.6.0.bb
+++ b/poky/meta/recipes-support/curl/curl_8.6.0.bb
@@ -13,6 +13,7 @@
     https://curl.se/download/${BP}.tar.xz \
     file://run-ptest \
     file://disable-tests \
+    file://no-test-timeout.patch \
 "
 SRC_URI[sha256sum] = "3ccd55d91af9516539df80625f818c734dc6f2ecf9bada33c76765e99121db15"
 
@@ -78,7 +79,7 @@
     ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
 "
 
-do_install:append:class-target() {
+fix_absolute_paths () {
 	# cleanup buildpaths from curl-config
 	sed -i \
 	    -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
@@ -88,6 +89,14 @@
 	    ${D}${bindir}/curl-config
 }
 
+do_install:append:class-target() {
+	fix_absolute_paths
+}
+
+do_install:append:class-nativesdk() {
+	fix_absolute_paths
+}
+
 do_compile_ptest() {
 	oe_runmake -C ${B}/tests
 }
@@ -125,6 +134,7 @@
 	perl-module-storable \
 	perl-module-time-hires \
 "
+RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us"
 
 PACKAGES =+ "lib${BPN}"
 
diff --git a/poky/meta/recipes-support/gmp/gmp_6.3.0.bb b/poky/meta/recipes-support/gmp/gmp_6.3.0.bb
index 3dbcd68..fd4aec9 100644
--- a/poky/meta/recipes-support/gmp/gmp_6.3.0.bb
+++ b/poky/meta/recipes-support/gmp/gmp_6.3.0.bb
@@ -29,13 +29,21 @@
 	oe_multilib_header gmp.h
 }
 
-do_install:prepend:class-target() {
+fix_absolute_paths () {
         sed -i \
         -e "s|--sysroot=${STAGING_DIR_HOST}||g" \
         -e "s|${DEBUG_PREFIX_MAP}||g" \
          ${B}/gmp.h
 }
 
+do_install:prepend:class-target() {
+    fix_absolute_paths
+}
+
+do_install:prepend:class-nativesdk() {
+    fix_absolute_paths
+}
+
 SSTATE_SCAN_FILES += "gmp.h"
 
 # Doesn't compile in MIPS16e mode due to use of hand-written
diff --git a/poky/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch b/poky/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch
index 4bdc40d..d13bfee 100644
--- a/poky/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch
+++ b/poky/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch
@@ -1,4 +1,4 @@
-From 21a8295bac3805e4490ba2b5f136e7f4c121061b Mon Sep 17 00:00:00 2001
+From 7be8ec59a53e93c2bd453b3ba2d63d1b300ef11f Mon Sep 17 00:00:00 2001
 From: Lei Maohui <leimaohui@fujitsu.com>
 Date: Mon, 23 May 2022 10:44:43 +0900
 Subject: [PATCH] Creating .hmac file should be excuted in target environment,
@@ -6,16 +6,15 @@
 
 Upstream-Status: Inappropriate [https://gitlab.com/gnutls/gnutls/-/issues/1373]
 Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
-
 ---
  lib/Makefile.am | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 diff --git a/lib/Makefile.am b/lib/Makefile.am
-index 6d4e8d2..24ef108 100644
+index a50d311..193ea19 100644
 --- a/lib/Makefile.am
 +++ b/lib/Makefile.am
-@@ -206,8 +206,7 @@ hmac_file = .libs/.$(gnutls_so).hmac
+@@ -198,8 +198,7 @@ hmac_file = .libs/.$(gnutls_so).hmac
  
  all-local: $(hmac_file)
  
diff --git a/poky/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch b/poky/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch
index f87cf53..1152d37 100644
--- a/poky/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch
+++ b/poky/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch
@@ -1,11 +1,10 @@
-From 81861f7ba690956c064ebe8dce6c313951fa2a9f Mon Sep 17 00:00:00 2001
+From ff6a345235b2585c261752e47a749228672b07dc Mon Sep 17 00:00:00 2001
 From: Ravineet Singh <ravineet.a.singh@est.tech>
 Date: Tue, 10 Jan 2023 16:11:10 +0100
 Subject: [PATCH] gnutls: add ptest support
 
 Upstream-Status: Inappropriate [embedded specific]
 Signed-off-by: Ravineet Singh <ravineet.a.singh@est.tech>
-
 ---
  Makefile.am       | 3 +++
  configure.ac      | 2 ++
@@ -27,10 +26,10 @@
  
  include $(top_srcdir)/cligen/cligen.mk
 diff --git a/configure.ac b/configure.ac
-index b25ba14..860ddef 100644
+index d6e03cf..e3f15fb 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1150,6 +1150,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS)
+@@ -1213,6 +1213,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS)
  
  AM_CONDITIONAL(NEEDS_LIBRT, test "$gnutls_needs_librt" = "yes")
  
@@ -40,10 +39,10 @@
  
  hw_features=
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index d530ad0..71c592f 100644
+index fb9e55a..c2d226a 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -648,6 +648,12 @@ SH_LOG_COMPILER = $(SHELL)
+@@ -658,6 +658,12 @@ SH_LOG_COMPILER = $(SHELL)
  AM_VALGRINDFLAGS = --suppressions=$(srcdir)/suppressions.valgrind
  LOG_COMPILER = $(LOG_VALGRIND)
  
diff --git a/poky/meta/recipes-support/gnutls/gnutls/arm_eabi.patch b/poky/meta/recipes-support/gnutls/gnutls/arm_eabi.patch
index fe3f031..883d012 100644
--- a/poky/meta/recipes-support/gnutls/gnutls/arm_eabi.patch
+++ b/poky/meta/recipes-support/gnutls/gnutls/arm_eabi.patch
@@ -1,4 +1,4 @@
-From 5810d97281bb30edb786de9946e5c13186eff6a2 Mon Sep 17 00:00:00 2001
+From d17ae0ef31c3c186766a338e8c40c87d1b98820e Mon Sep 17 00:00:00 2001
 From: Joe Slater <jslater@windriver.com>
 Date: Wed, 25 Jan 2017 13:52:59 -0800
 Subject: [PATCH] gnutls: account for ARM_EABI
@@ -14,7 +14,7 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/tests/seccomp.c b/tests/seccomp.c
-index 86442a5..03a5aa8 100644
+index 881f0bb..5f9204a 100644
 --- a/tests/seccomp.c
 +++ b/tests/seccomp.c
 @@ -55,7 +55,9 @@ int disable_system_calls(void)
@@ -27,6 +27,3 @@
  	ADD_SYSCALL(getpid, 0);
  	ADD_SYSCALL(gettimeofday, 0);
  #if defined(HAVE_CLOCK_GETTIME)
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.8.3.bb b/poky/meta/recipes-support/gnutls/gnutls_3.8.4.bb
similarity index 97%
rename from poky/meta/recipes-support/gnutls/gnutls_3.8.3.bb
rename to poky/meta/recipes-support/gnutls/gnutls_3.8.4.bb
index 27d6753..20139b4 100644
--- a/poky/meta/recipes-support/gnutls/gnutls_3.8.3.bb
+++ b/poky/meta/recipes-support/gnutls/gnutls_3.8.4.bb
@@ -25,7 +25,7 @@
            file://Add-ptest-support.patch \
            "
 
-SRC_URI[sha256sum] = "f74fc5954b27d4ec6dfbb11dea987888b5b124289a3703afcada0ee520f4173e"
+SRC_URI[sha256sum] = "2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b"
 
 inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest
 
diff --git a/poky/meta/recipes-support/libsoup/libsoup_3.4.4.bb b/poky/meta/recipes-support/libsoup/libsoup_3.4.4.bb
index 6d382a7..6f7cac4 100644
--- a/poky/meta/recipes-support/libsoup/libsoup_3.4.4.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup_3.4.4.bb
@@ -19,7 +19,7 @@
 
 S = "${WORKDIR}/libsoup-${PV}"
 
-inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen
+inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala
 
 GIR_MESON_ENABLE_FLAG = 'enabled'
 GIR_MESON_DISABLE_FLAG = 'disabled'
@@ -39,7 +39,7 @@
 }
 EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/soup.cross"
 
-EXTRA_OEMESON += "-Dvapi=disabled -Dtls_check=false"
+EXTRA_OEMESON += "-Dtls_check=false"
 # Disable the test suites
 EXTRA_OEMESON += "-Dtests=false -Dautobahn=disabled -Dpkcs11_tests=disabled"
 
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-partition.py b/poky/scripts/lib/wic/plugins/source/bootimg-partition.py
index 58f6da7..1071d1a 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-partition.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-partition.py
@@ -32,6 +32,7 @@
     """
 
     name = 'bootimg-partition'
+    image_boot_files_var_name = 'IMAGE_BOOT_FILES'
 
     @classmethod
     def do_configure_partition(cls, part, source_params, cr, cr_workdir,
@@ -56,12 +57,12 @@
             else:
                 var = ""
 
-            boot_files = get_bitbake_var("IMAGE_BOOT_FILES" + var)
+            boot_files = get_bitbake_var(cls.image_boot_files_var_name + var)
             if boot_files is not None:
                 break
 
         if boot_files is None:
-            raise WicError('No boot files defined, IMAGE_BOOT_FILES unset for entry #%d' % part.lineno)
+            raise WicError('No boot files defined, %s unset for entry #%d' % (cls.image_boot_files_var_name, part.lineno))
 
         logger.debug('Boot files: %s', boot_files)