subtree updates

meta-raspberrypi: 62a84833d9..b6a1645a97:
  Andrei Gherzan (22):
        ci: Migrate worflow to using latest git-mirror-me-action revision
        ci: Run the cancel workflow on generic workers and update action
        ci: Run the compliance workflow on generic workers
        ci: Run the mirror workflow on generic workers
        ci: Don't run yocto builds on PRs that don't affect them
        raspberrypi-tools.inc: Bump to latest revision
        rpi-gpio: Bump to 0.7.1
        python3-adafruit-platformdetect: Bump to 3.27.0
        python3-adafruit-circuitpython-register: Bump to 1.9.10
        userland: Bump revision to the current HEAD
        bluez-firmware-rpidistro: Backport patch to fix CYW43455 and various CVEs
        linux-raspberrypi: Update 5.15 recipe to 5.15.56
        linux-raspberrypi: Update 5.10 recipe to latest revision
        linux-firmware-rpidistro: Update to 1:20210315-3+rpt7 release
        omxplayer: Bump to latest revision
        linux-firmware-rpidistro: Revamp, cleanup and restructure recipe
        linux-firmware-rpidistro: Guard the recipe under a license flag
        ci: Set LICENSE_FLAGS_ACCEPTED in builder docker container
        README.md: Mention Yocto Compatible Layer
        README.md: Refactor top table
        Add initial version of CODE_OF_CONDUCT.md
        Use a png with transparency for balena logo

  Vincent Davis Jr (1):
        docs: remove backticks

poky: 4161dbbbd6..fc59c28724:
  Aatir Manzur (1):
        ref-manual: Sphinx note directive for DISTRO_FEATURES definition

  Alejandro Hernandez Samaniego (1):
        package.bbclass: Fix kernel source handling when not using externalsrc

  Alex Kiernan (1):
        bind: Remove legacy python3 PACKAGECONFIG code

  Alexander Kanavin (61):
        conf/local.conf.sample: mention site.conf.sample as well
        sato-icon-theme: check for new commits rather than tags
        gcr: exclude x.9y versions from upstream version check
        efibootmgr: update 17 -> 18
        systemd-boot: update 251.2 -> 251.3
        libva: upgrade 2.14.0 -> 2.15.0
        libva-utils: update 2.14.0 -> 2.15.0
        xev: update 1.2.4 -> 1.2.5
        xmodmap: update 1.0.10 -> 1.0.11
        xf86-input-synaptics: update 1.9.1 -> 1.9.2
        xf86-video-cirrus: update 1.5.3 -> 1.6.0
        encodings: update 1.0.5 -> 1.0.6
        font-util: update 1.3.2 -> 1.3.3
        linux-firmware: update 20220610 -> 20220708
        rt-tests: update 2.3 -> 2.4
        libgit2: update 1.4.3 -> 1.5.0
        u-boot: update 2022.04 -> 2022.07
        go: update 1.18.3 -> 1.18.4
        llvm: update 14.0.4 -> 14.0.6
        vulkan-samples: update to latest revision
        xserver-xorg: update 21.1.3 -> 21.1.4
        alsa-lib: upgrade 1.2.7.1 -> 1.2.7.2
        alsa-ucm-conf: upgrade 1.2.7.1 -> 1.2.7.2
        diffoscope: upgrade 217 -> 218
        git: upgrade 2.37.0 -> 2.37.1
        hdparm: upgrade 9.63 -> 9.64
        libdrm: upgrade 2.4.111 -> 2.4.112
        libhandy: upgrade 1.6.2 -> 1.6.3
        libidn2: upgrade 2.3.2 -> 2.3.3
        libnl: upgrade 3.6.0 -> 3.7.0
        libnotify: upgrade 0.7.12 -> 0.8.0
        libuv: upgrade 1.44.1 -> 1.44.2
        log4cplus: upgrade 2.0.7 -> 2.0.8
        meson: upgrade 0.62.2 -> 0.63.0
        mmc-utils: upgrade to latest revision
        mpg123: upgrade 1.30.0 -> 1.30.1
        pango: upgrade 1.50.7 -> 1.50.8
        piglit: upgrade to latest revision
        python3-dtschema: upgrade 2022.5 -> 2022.7
        python3-hypothesis: upgrade 6.48.2 -> 6.50.1
        python3-setuptools-rust: upgrade 1.3.0 -> 1.4.1
        python3-setuptools-scm: upgrade 7.0.3 -> 7.0.5
        python3-setuptools: upgrade 62.6.0 -> 63.2.0
        python3-zipp: upgrade 3.8.0 -> 3.8.1
        sqlite3: upgrade 3.39.0 -> 3.39.1
        vala: upgrade 0.56.1 -> 0.56.2
        wayland-protocols: upgrade 1.25 -> 1.26
        webkitgtk: upgrade 2.36.3 -> 2.36.4
        xwayland: upgrade 22.1.2 -> 22.1.3
        epiphany: upgrade 42.2 -> 42.3
        xf86-input-keyboard: remove the recipe
        toolchain-scripts.bbclass: adjust toolchain_create_tree_env_script to better replicate (e)SDK
        meta-ide-support: adjust to provide (e)SDK experience directly in a yocto build
        oeqa/sdk: add a test class for running SDK tests directly in a Yocto build
        oeqa/sdk: allow epoxy/galculator tests to run in esdk and direct yocto builds
        meson: provide relocation script and native/cross wrappers also for meson-native
        selftest/meta_ide: add a test for running SDK tests directly in a yocto build
        scripts/oe-setup-builddir: make it known where configurations come from
        devtool/upgrade: correctly clean up when recipe filename isn't yet known
        devtool/upgrade: catch bb.fetch2.decodeurl errors
        poky-floating-revisions.inc: remove xf86-input-keyboard entry

  Aníbal Limón (1):
        rng-tools: Change systemd service name to work with sysvinit

  Armin Kuster (1):
        poky.conf: remove EOL and Centos7 hosts

  Aryaman Gupta (1):
        bitbake: runqueue: add cpu/io pressure regulation

  Changhyeok Bae (1):
        repo: upgrade 2.27 -> 2.28

  Chen Qi (2):
        glibc: make glibc-dev depend on kernel headers
        image_types_wic.bbclass: fix cross binutils dependency

  Daniel Gomez (1):
        dropbear: Add configuration file to CONFFILES

  Dmitry Baryshkov (1):
        linux-firwmare: restore WHENCE_CHKSUM variable

  He Zhe (1):
        lttng-modules: Fix build failure for kernel v5.15.58

  Hitendra Prajapati (1):
        qemu: CVE-2022-35414 can perform an uninitialized read on the translate_fail path, leading to an io_readx or io_writex crash

  Jan Kiszka (2):
        wic/bootimg-efi: Factor out some common bits
        wic/bootimg-efi: Add support for loading devicetree files

  Jan Vermaete (1):
        python3-jsonschema: 4.7.1 -> 4.7.2 + fixed the rdepends

  Jose Quaresma (5):
        bitbake: bitbake: bitbake-user-manual: hashserv can be accessed on a dedicated domain
        archiver.bbclass: remove unsed do_deploy_archives[dirs]
        bitbake: bb/utils: remove: check the path again the expand python glob
        bitbake: bb/utils: movefile: use the logger for printing
        create-spdx: ignore packing control files from ipk and deb

  Joshua Watt (3):
        sstatesig: Include all dependencies in SPDX task signatures
        bitbake: asyncrpc: Add TCP Keep Alives
        classes/sanity: Add comment about github & gitlab archives

  Kai Kang (1):
        mesa: fix compile error when debug build enabled

  Khem Raj (11):
        lua: Backport fix for CVE-2022-33099
        gcc-runtime: Pass -nostartfiles when building dummy libstdc++.so
        gcc-runtime: Use --with-target-subdir for baremetal targets
        systemd: Drop backported patch applied in 251.3
        gcc-runtime: Use static dummy libstdc++
        libgcc: Fix standalone target builds with usrmerge distro feature
        systemd: Fix conflict between glibc mount.h and kernel mount.h
        libarchive: Avoid mount.h conflict between kernel and glibc
        btrfs-tools: Use linux/mount.h instead of sys/mount.h
        gcc-sanitizers: Fix mount.h glibc 2.36 conflict
        hdparm: Fix build with glibc 2.36

  LUIS ENRIQUEZ (1):
        kernel-fitimage.bbclass: add padding algorithm property in config nodes

  Lee Chee Yang (1):
        migration guides: release notes for 4.0.2

  Mark Hatle (4):
        runqemu: Add missing space on default display option
        default-distrovars: seccomp doesn't support microblaze
        openssl: Move microblaze to linux-latomic config
        elfutils: Microblaze does not support symvers

  Martin Beeger (1):
        cmake: remove CMAKE_ASM_FLAGS variable in toolchain file

  Martin Jansa (6):
        python3-setuptools: move patch from 'files' to 'python3-setuptools'
        kernel.bbclass: pass LD also in savedefconfig
        ltp: fix build with ld-is-gold in DISTRO_FEATURES
        pybootchartgui: render memory pressure as well
        pybootchartgui: fix 2 SyntaxWarnings
        pybootchartgui: write the max values in the graph legend

  Michael Opdenacker (2):
        docs: BB_HASHSERVE_UPSTREAM: update to new host
        bitbake: bitbake-user-manual: npm fetcher: improve description of SRC_URI format

  Mihai Lindner (2):
        wic/plugins/rootfs: Fix NameError for 'orig_path'
        create-spdx: Fix supplier field

  Ming Liu (2):
        rootfs-postcommands.bbclass: move host-user-contaminated.txt to ${S}
        udev-extraconf:mount.sh: fix a umount issue

  Mingli Yu (1):
        strace: set COMPATIBLE_HOST for riscv32

  Otavio Salvador (2):
        cargo-cross-canadian: Use SDK's flags during target linking
        oeqa/sdk: Add basic rust cargo test

  Petr Vorel (1):
        ltp: Add post release runtime fixes

  Quentin Schulz (2):
        docs: ref-manual: variables: remove sphinx directive from literal block
        docs: auto-generate releases.rst

  Randy MacLeod (1):
        vim: update from 9.0.0063 to 9.0.0115

  Richard Purdie (16):
        curl: Fix determinism issues in ptest package
        build-appliance-image: Update to master head revision
        base/reproducible: Change Source Date Epoch generation methods
        vim: Upgrade 9.0.0021 -> 9.0.0063
        rust-common: Set llvm-target correctly for cross SDK targets
        rust-cross-canadian: Fix ordering of target json config generation
        rust-cross/rust-common: Merge arm target handling code to fix cross-canadian
        rust-cross: Simplfy the rust_gen_target calls
        rust-common/rust-cross: Clean up target json generation code
        rust-target-config: Create new class to contain target json config generation
        rust-target-config: Allow the targets generated to be configurable
        native: Clear TUNE_FEATURES/ABIEXTENSION
        populate_sdk: Add SDK toolchain language selection support
        populate_sdk_base: Fix mingw override name
        poky: Enable debug-kernel for SPDX license manifests
        oeqa/sdk/rust: Fix file deletion for multilib SDKs

  Roland Hieber (1):
        devtool: error out when workspace is using old override syntax

  Ross Burton (13):
        pulseaudio: add m4-native to DEPENDS
        python3-picobuild: upgrade to 0.2
        oeqa/runtime: add test that the kernel has CONFIG_PREEMPT_RT enabled
        perf: fix reproduciblity in older releases of Linux
        zstd: do verbose builds
        zlib: remove historical movement of libz.so to /lib
        oeqa/selftest: rename git.py to intercept.py
        oeqa/gotoolchain: put writable files in the Go module cache
        oeqa/gotoolchain: set CGO_ENABLED=1
        qemu: add io_uring PACKAGECONFIG
        wic: add target tools to PATH when executing native commands
        wic/bootimg-efi: use cross objcopy when building unified kernel image
        wic: depend on cross-binutils

  Shruthi Ravichandran (2):
        initscripts: run umountnfs as a KILL script
        package_manager/ipk: do not pipe stderr to stdout

  Tom Hochstein (2):
        gobject-introspection-data: Disable cache for g-ir-scanner
        uboot-config.bbclass: Raise error for bad key

  gr embeter (1):
        efivar: fix import functionality

  leimaohui (1):
        systemd: Added base_bindir into pkg_postinst:udev-hwdb.

  wangmy (10):
        python3-docutils: upgrade 0.18.1 -> 0.19
        python3-attrs: upgrade 21.4.0 -> 22.1.0
        python3-cython: upgrade 0.29.30 -> 0.29.32
        python3-dbusmock: upgrade 0.28.1 -> 0.28.4
        python3-hatchling: upgrade 1.5.0 -> 1.6.0
        python3-jsonschema: upgrade 4.7.2 -> 4.9.0
        python3-scons: upgrade 4.3.0 -> 4.4.0
        python3-setuptools: upgrade 63.2.0 -> 63.3.0
        python3-pygobject: upgrade 3.42.1 -> 3.42.2
        python3-pip: upgrade 22.1.2 -> 22.2.1

meta-security: 7ad5f6a9da..2a2d650ee0:
  Alex Kiernan (1):
        bubblewrap: Add recipe

  Armin Kuster (28):
        packagegroup-core-security.bb: add bubblewrap to pkg grp
        packagegroup-security-tpm: add libhoth to pkg grp
        python3-privacyidea: update to 3.7.2
        suricata: update to 6.0.5
        chipsec: update to 1.8.7
        fail2ban: add UPSTREAM_CHECK vars
        ibmtpm2tss: fix SRC_URI
        tpm2-tss-engine: add UPSTREAM_CHECK_URI
        tpm2-tss: add UPSTREAM_CHECK_URI
        tpm2-tools: Add UPSTREAM_CHECK_URI
        tpm2-openssl: Add UPSTREAM_CHECK_URI
        tpm2-pkcs11: Add UPSTREAM_CHECK_URI
        tpm2-abrmd: add UPSTREAM_CHECK_URI
        tpm2-tcti-uefi: Add UPSTREAM_CHECK_URI
        aide: add UPSTREAM_CHECK_URI
        ecryptfs-utils: add UPSTREAM_CHECK_URI
        krill: update to 0.9.6
        packagegroup-core-security: add krill to pkg grps
        packagegroup-core-security: add chipsec pkg to grp
        apparmor: update to 3.0.5
        clamav: update to  0.104.4
        ibmtpm2tss: update version format
        ibmswtpm2: fix UPSTREAM_CHECK
        ibmswtpm2: update to 1682
        swtpm: update to 0.7.3
        lkrg: update to 0.9.4
        krill: only builds on x86/x86-64 and arm64
        packagegroup-core-security: remove krill for some archs

  Armpit's Upgrade Helper (1):
        libtpm: upgrade 0.9.3 -> 0.9.5

  John Edward Broadbent (1):
        meta-security: Add recipe for libhoth

  Upgrade Helper (1):
        sssd: upgrade 2.7.1 -> 2.7.3

meta-arm: 80d60e7b1c..20a629180c:
  Peter Hoyes (1):
        runfvp: Stop the FVP when telnet shuts down cleanly

meta-openembedded: 31c10bd3e6..2eb39477a7:
  Alexander Thoma (1):
        Fix tigervnc crash due to missing xkbcomp rdepends

  Armin Kuster (1):
        bigbuckbunny-1080p: update SRC_URI

  Aryaman Gupta (1):
        rsyslog: update 8.2202->8.2206

  Chen Qi (1):
        catfish: fix buildpaths issue

  Davide Gardenal (7):
        freeradius: ignore patched CVEs
        openflow: ignore unrelated CVEs
        libplist: ignore patched CVEs
        meta-oe: ignore patched CVEs
        mongodb: ignore unrelated CVEs
        php: ignore patched CVEs
        postgresql: ignore unrelated CVE

  Gianfranco (1):
        vboxguestdrivers: fix build failure on 32 bit architectures

  Gianfranco Costamagna (1):
        vboxguestdrivers: upgrade 6.1.34 -> 6.1.36

  Jan Vermaete (8):
        python3-pyzmq: version bump 22.3.0 -> 23.2.0
        python3-aspectlib: updated the summary and added a description.
        python3-jsonrpcclient: Added the jsonrpcclient Python package
        python3-oslash: added the oslash Python package
        python3-jsonrpcserver: added the python3-oslash rdepends
        python-ptyprocess: fixed test_pass_fds
        python3-pyzmq: added ptest
        python3-pyzmq: fixed oelint-adv warnings

  Johannes Schneider (1):
        python3-pystemd: Upgrade 0.8.0 -> 0.10.0

  Khem Raj (11):
        poco: Link with libatomic on riscv32
        python3-antlr4-runtime: Inherit setuptools3 instead of python_setuptools_build_meta
        catfish: Inherit setuptools3 instead of python_setuptools_build_meta
        python3-pycups: Inherit setuptools3 instead of python_setuptools_build_meta
        python3-qface: Inherit setuptools3 instead of python_setuptools_build_meta
        xscreensaver: Upgrade to 6.04
        poco: Link with libatomic on mips
        Revert "catfish: Inherit setuptools3 instead of python_setuptools_build_meta"
        Revert "python3-pycups: Inherit setuptools3 instead of python_setuptools_build_meta"
        Revert "python3-antlr4-runtime: Inherit setuptools3 instead of python_setuptools_build_meta"
        libmtp: Upgrade to 1.1.20

  Martin Großhauser (1):
        Add runtime dependencies for python3-supervisor

  Mingli Yu (1):
        s-nail: fix buildpaths issue

  Radovan Scasny (1):
        libwebsockets: update to version 4.3.2

  Ross Burton (9):
        python3-cbor2: add missing build dependency
        python3-simpleeval: remove 'build' build dependency
        python3-pyrad: fix build system specification
        python3-pytest-html: fix DEPENDS, don't depend on pip
        python3-ansi2html: fix DEPENDS
        python3-pytest-helpers-namespace: add missing build dependencies
        python3-pyzmq: add missing build dependency
        python3-path: add missing build dependencies
        python3-pytest-forked: loosen dependency checking

  Sergey Kizunov (2):
        Add python3-pycares 4.2.1
        Add python3-aiodns 3.0.0

  Trevor Gamblin (1):
        README: Remove maintainer info for tvgamblin

  Wang Mingyu (10):
        php: upgrade 8.1.7 -> 8.1.8
        ndisc6: upgrade 1.0.5 -> 1.0.6
        python3-elementpath: upgrade 2.5.3 -> 3.0.1
        python3-pymongo: upgrade 4.1.1 -> 4.2.0
        python3-pyscaffold: upgrade 4.2.3 -> 4.3
        python3-regex: upgrade 2022.7.9 -> 2022.7.24
        python3-rsa: upgrade 4.8 -> 4.9
        python3-sh: upgrade 1.14.2 -> 1.14.3
        python3-werkzeug: upgrade 2.1.2 -> 2.2.0
        python3-xmlschema: upgrade 1.11.3 -> 2.0.1

  Xu Huan (14):
        python3-eth-hash: upgrade 0.3.3 -> 0.4.0
        python3-socketio: upgrade 5.6.0 -> 5.7.0
        python3-ujson: upgrade 5.3.0 -> 5.4.0
        python3-web3: upgrade 5.29.2 -> 5.30.0
        python3-fastjsonschema: upgrade 2.15.3 -> 2.16.1
        python3-flask: upgrade 2.1.2 -> 2.1.3
        python3-googleapis-common-protos: upgrade 1.56.3 -> 1.56.4
        python3-iso3166: upgrade 2.0.2 -> 2.1.1
        python3-kiwisolver: upgrade 1.4.3 -> 1.4.4
        python3-portalocker: upgrade 2.4.0 -> 2.5.1
        python3-imageio: upgrade 2.19.3 -> 2.19.5
        python3-lz4: upgrade 4.0.1 -> 4.0.2
        python3-mypy: upgrade 0.961 -> 0.971
        python3-protobuf: upgrade 4.21.2 -> 4.21.3

  kazuki0824 (1):
        ttf-fonts: fix URIs, upgrade 1.004 -> 2.004

  wangmy (30):
        gegl: upgrade 0.4.36 -> 0.4.38
        libadwaita: upgrade 1.1.2 -> 1.1.3
        libgsf: upgrade 1.14.49 -> 1.14.50
        nbdkit: upgrade 1.31.10 -> 1.31.12
        irssi: upgrade 1.4.1 -> 1.4.2
        libp11: upgrade 0.4.11 -> 0.4.12
        modemmanager: upgrade 1.18.8 -> 1.18.10
        pegtl: upgrade 3.2.6 -> 3.2.7
        PATCH] logcheck: upgrade 1.3.23 -> 1.3.24
        python3-lru-dict: upgrade 1.1.7 -> 1.1.8
        python3-pyfanotify: upgrade 0.1.3 -> 0.2.0
        python3-pylint: upgrade 2.14.4 -> 2.14.5
        python3-pytest-metadata: upgrade 2.0.1 -> 2.0.2
        python3-regex: upgrade 2022.6.2 -> 2022.7.9
        python3-socketio: upgrade 5.7.0 -> 5.7.1
        python3-stevedore: upgrade 3.5.0 -> 4.0.0
        tracker: upgrade 3.3.1 -> 3.3.2
        zenity: upgrade 3.42.1 -> 3.43.0
        nbdkit: upgrade 1.31.12 -> 1.31.14
        stunnel: upgrade 5.64 -> 5.65
        unbound: upgrade 1.16.0 -> 1.16.1
        wolfssl: upgrade 5.3.0 -> 5.4.0
        atkmm-2.36: upgrade 2.36.1 -> 2.36.2
        nanopb: upgrade 0.4.5 -> 0.4.6.4
        redis-plus-plus: upgrade 1.3.3 -> 1.3.5
        redis: upgrade 7.0.2 -> 7.0.4
        ser2net: upgrade 4.3.6 -> 4.3.7
        unattended-upgrades: upgrade 2.6 -> 2.9.1
        valijson: upgrade 0.6 -> 0.7
        googlebenchmark: upgrade 1.6.1 -> 1.7.0

  zhengruoqin (17):
        python3-redis: upgrade 4.3.3 -> 4.3.4
        python3-ldap: upgrade 3.4.0 -> 3.4.2
        python3-pillow: upgrade 9.1.1 -> 9.2.0
        python3-pylint: upgrade 2.14.3 -> 2.14.4
        python3-alembic: upgrade 1.8.0 -> 1.8.1
        python3-astroid: upgrade 2.11.6 -> 2.12.2
        python3-attr: upgrade 0.3.1 -> 0.3.2
        python3-blinker: upgrade 1.4 -> 1.5
        python3-cmd2: upgrade 2.4.1 -> 2.4.2
        python3-ecdsa: upgrade 0.17.0 -> 0.18.0
        python3-evdev: upgrade 1.5.0 -> 1.6.0
        python3-absl: upgrade 1.1.0 -> 1.2.0
        python3-bitarray: upgrade 2.5.1 -> 2.6.0
        python3-eth-hash: upgrade 0.4.0 -> 0.5.0
        python3-google-api-python-client: upgrade 2.51.0 -> 2.54.0
        python3-google-auth: upgrade 2.9.0 -> 2.9.1
        python3-graphviz: upgrade 0.20 -> 0.20.1

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I50c531a69ce8abb23e33c380f9228015f2764682
diff --git a/meta-arm/scripts/runfvp b/meta-arm/scripts/runfvp
index 9fb77d3..c5a74b2 100755
--- a/meta-arm/scripts/runfvp
+++ b/meta-arm/scripts/runfvp
@@ -64,8 +64,8 @@
             logger.debug(f"Telnet quit, cancelling tasks")
         else:
             fvp.add_line_callback(lambda line: print(line))
+            await fvp.run()
 
-        await fvp.run()
     finally:
         await fvp.stop()
 
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.36.bb b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb
similarity index 95%
rename from meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.36.bb
rename to meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb
index 913957c..5415658 100644
--- a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.36.bb
+++ b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb
@@ -22,7 +22,7 @@
 SHPV = "${@gnome_verdir("${PV}")}"
 
 SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "6fd58a0cdcc7702258adaeffb573a389228ae8f0eff47578efda2309b61b2ca6"
+SRC_URI[sha256sum] = "e4a33c8430a5042fba8439b595348e71870f0d95fbf885ff553f9020c1bed750"
 
 PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
 PACKAGECONFIG:class-native = "libpng librsvg"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.1.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.1.3.bb
similarity index 85%
rename from meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.1.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.1.3.bb
index 3ae740e..eaec983 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.1.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.1.3.bb
@@ -11,7 +11,7 @@
 
 inherit gnomebase gobject-introspection gtk-doc vala features_check
 
-SRC_URI[archive.sha256sum] = "2b5ca4104c21a36e31f900ef117ab887dd9d471f6a65d2ba374ce0339314219f"
+SRC_URI[archive.sha256sum] = "9b92be6007da1bf75131a2d5e697f0ff985bccf82380d298d46f013675aa4197"
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.49.bb b/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
similarity index 86%
rename from meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.49.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
index f663141..d2486a0 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.49.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
@@ -9,7 +9,7 @@
 
 inherit gnomebase gobject-introspection gettext gtk-doc
 
-SRC_URI[archive.sha256sum] = "e9ebe36688f010c9e6e40c8903f3732948deb8aca032578d07d0751bd82cf857"
+SRC_URI[archive.sha256sum] = "6e6c20d0778339069d583c0d63759d297e817ea10d0d897ebbe965f16e2e8e52"
 SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch"
 
 PACKAGECONFIG ??= ""
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.3.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.3.2.bb
similarity index 93%
rename from meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.3.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.3.2.bb
index 42f4486..eaa0e06 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.3.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker_3.3.2.bb
@@ -22,7 +22,7 @@
 
 inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check python3native
 
-SRC_URI[archive.sha256sum] = "5ad6f5bc97781ebf55ecd6947cd4ae7ff4192516580d10bd8380f1dd47196ed2"
+SRC_URI[archive.sha256sum] = "0ed2b98918956d6f16429c607dd8a14c84f4da0a48970fd2eb8c93aba3cf9913"
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.42.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
similarity index 88%
rename from meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.42.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
index 2bcd8cc..195e139 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.42.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
@@ -14,7 +14,7 @@
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
-SRC_URI[archive.sha256sum] = "a08e0c8e626615ee2c23ff74628eba6f8b486875dd54371ca7e2d7605b72a87c"
+SRC_URI[archive.sha256sum] = "b0d7ca1e0c1868fa18f05c210260d8a7be1f08ee13b7f5cfdbab9b61fa16f833"
 SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
 
 PACKAGECONFIG[libnotify] = "-Dlibnotify=true,-Dlibnotify=false,libnotify"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
index b848b82..cb919d7 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
@@ -3,7 +3,7 @@
 # http://www.bigbuckbunny.org/index.php/about/
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
 
-SRC_URI = "https://www.mediaspip.net/IMG/avi/big_buck_bunny_1080p_surround.avi"
+SRC_URI = "http://www.peach.themazzone.com/big_buck_bunny_1080p_surround.avi"
 SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a"
 SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
index 453e514..d6477e3 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
@@ -38,6 +38,11 @@
 
 SRCREV = "af428abda249b2279ba0582180985a9f6f4a144a"
 
+CVE_CHECK_IGNORE = "\
+    CVE-2002-0318 \
+    CVE-2011-4966 \
+"
+
 PARALLEL_MAKE = ""
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.3.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.4.0.bb
similarity index 93%
rename from meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.3.0.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.4.0.bb
index 40a48f6..6918ece 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.3.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.4.0.bb
@@ -13,7 +13,7 @@
 RPROVIDES:${PN} = "cyassl"
 
 SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https;branch=master"
-SRCREV = "e722c15be860794179082a05d09e6a90dc77ccf0"
+SRCREV = "57aac1c50b45275c7a99eca32ad985998b292dc8"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
index ccafaf0..aaad0e0 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
+++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
@@ -13,6 +13,11 @@
 
 SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git;branch=master"
 
+CVE_CHECK_IGNORE = "\
+    CVE-2015-1611 \
+    CVE-2015-1612 \
+"
+
 DEPENDS = "virtual/libc"
 
 PACKAGECONFIG ??= ""
diff --git a/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.31.10.bb b/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.31.14.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.31.10.bb
rename to meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.31.14.bb
index 07870bb..3f21074 100644
--- a/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.31.10.bb
+++ b/meta-openembedded/meta-networking/recipes-support/nbdkit/nbdkit_1.31.14.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "git://github.com/libguestfs/nbdkit.git;protocol=https;branch=master \
 "
-SRCREV = "1c31e0e5397646ae3709b1fbfd9c3b47b904f254"
+SRCREV = "35b42a161f3f3c7cf388e33dbaa5bd7082aac9d8"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
similarity index 97%
rename from meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
rename to meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
index f546779..6861314 100644
--- a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
@@ -5,8 +5,7 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-PV = "1.0.5"
-SRCREV = "b706f5f01aa82aa0db678fffd15a1527f330c507"
+SRCREV = "7e314b23329f9c24c4c097b8513673fed7e7158a"
 SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http;branch=master \
            file://0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch \
            "
diff --git a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
index aeb0bec..0840cbb 100644
--- a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
+++ b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
@@ -1,3 +1,8 @@
+From 7ff4eba20b5c4fc7365e5ee0dfb775ed29bdd5ce Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 1 Nov 2017 09:23:41 -0400
+Subject: [PATCH] stunnel: fix compile error when openssl disable des support
+
 Upstream-Status: Pending
 
 When openssl disable des support with configure option 'no-des', it doesn't
@@ -6,12 +11,17 @@
 library conditionaly.
 
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
 ---
+ src/common.h   | 2 ++
+ src/protocol.c | 6 +++---
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
 diff --git a/src/common.h b/src/common.h
-index f7d38b0..bf485af 100644
+index bc37eb5..03ee3e5 100644
 --- a/src/common.h
 +++ b/src/common.h
-@@ -478,7 +478,9 @@ extern char *sys_errlist[];
+@@ -486,7 +486,9 @@ extern char *sys_errlist[];
  #ifndef OPENSSL_NO_MD4
  #include <openssl/md4.h>
  #endif /* !defined(OPENSSL_NO_MD4) */
@@ -22,19 +32,19 @@
  #include <openssl/dh.h>
  #if OPENSSL_VERSION_NUMBER<0x10100000L
 diff --git a/src/protocol.c b/src/protocol.c
-index 587df09..8198eb6 100644
+index 804f115..d9b2b50 100644
 --- a/src/protocol.c
 +++ b/src/protocol.c
-@@ -67,7 +67,7 @@ NOEXPORT char *imap_server(CLI *, SERVICE_OPTIONS *, const PHASE);
+@@ -66,7 +66,7 @@ NOEXPORT char *nntp_client(CLI *, SERVICE_OPTIONS *, const PHASE);
  NOEXPORT char *ldap_client(CLI *, SERVICE_OPTIONS *, const PHASE);
  NOEXPORT char *connect_server(CLI *, SERVICE_OPTIONS *, const PHASE);
  NOEXPORT char *connect_client(CLI *, SERVICE_OPTIONS *, const PHASE);
 -#ifndef OPENSSL_NO_MD4
 +#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
  NOEXPORT void ntlm(CLI *, SERVICE_OPTIONS *);
- NOEXPORT char *ntlm1();
+ NOEXPORT char *ntlm1(void);
  NOEXPORT char *ntlm3(char *, char *, char *, char *);
-@@ -1332,7 +1332,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+@@ -1351,7 +1351,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
      fd_printf(c, c->remote_fd.fd, "Host: %s", opt->protocol_host);
      if(opt->protocol_username && opt->protocol_password) {
          if(!strcasecmp(opt->protocol_authentication, "ntlm")) {
@@ -43,7 +53,7 @@
              ntlm(c, opt);
  #else
              s_log(LOG_ERR, "NTLM authentication is not available");
-@@ -1376,7 +1376,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+@@ -1395,7 +1395,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
      return NULL;
  }
  
diff --git a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.64.bb b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.65.bb
similarity index 92%
rename from meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.64.bb
rename to meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.65.bb
index 13ecd5c..ab7ff43 100644
--- a/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.64.bb
+++ b/meta-openembedded/meta-networking/recipes-support/stunnel/stunnel_5.65.bb
@@ -11,7 +11,7 @@
            file://fix-openssl-no-des.patch \
 "
 
-SRC_URI[sha256sum] = "eebe53ed116ba43b2e786762b0c2b91511e7b74857ad4765824e7199e6faf883"
+SRC_URI[sha256sum] = "60c500063bd1feff2877f5726e38278c086f96c178f03f09d264a2012d6bf7fc"
 
 inherit autotools bash-completion pkgconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.16.0.bb b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.16.1.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.16.0.bb
rename to meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.16.1.bb
index cf59d29..5eb9ec1 100644
--- a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.16.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.16.1.bb
@@ -12,7 +12,7 @@
 SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=http;branch=master;protocol=https \
 	file://0001-contrib-add-yocto-compatible-init-script.patch \
 "
-SRCREV = "edc1d07718fb0ecabf9ddd3cf65503de1810834c"
+SRCREV = "903538c76e1d8eb30d0814bb55c3ef1ea28164e8"
 
 inherit autotools pkgconfig systemd update-rc.d
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
index 7ea728a..ff4a16e 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -45,6 +45,12 @@
 
 S = "${WORKDIR}/git"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2014-8180 \
+    CVE-2017-18381 \
+    CVE-2017-2665 \
+"
+
 COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
 
 PACKAGECONFIG ??= "tcmalloc system-pcre"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb
similarity index 93%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb
rename to meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb
index 4b1853c..691bbce 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.5.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb
@@ -5,7 +5,7 @@
 DEPENDS = "protobuf-native"
 
 SRC_URI = "git://github.com/nanopb/nanopb.git;branch=master;protocol=https"
-SRCREV = "c9124132a604047d0ef97a09c0e99cd9bed2c818"
+SRCREV = "afc499f9a410fc9bbf6c9c48cdd8d8b199d49eb4"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.1.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
index 40ce935..455561f 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
@@ -6,7 +6,7 @@
 DEPENDS = "glib-2.0 ncurses openssl"
 
 SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "6a7692741bba16f3ba6f97cf7246421ac57055dcedcca9a4d21663f8efe47501"
+SRC_URI[sha256sum] = "79a4765d2dfe153c440a1775b074d5d0682b96814c7cf92325b5e15ce50e26a8"
 
 UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.19.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.19.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb
index 3483db3..f7a7507 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.19.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb
@@ -17,10 +17,9 @@
 DEPENDS = "libusb1 gettext-native"
 DEPENDS:append:class-target = " ${BPN}-native"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
 SRC_URI:append:class-target = " file://0001-Use-native-mtp-hotplug.patch"
-
-SRC_URI[sha256sum] = "deb4af6f63f5e71215cfa7fb961795262920b4ec6cb4b627f55b30b18aa33228"
+SRC_URI[sha256sum] = "c9191dac2f5744cf402e08641610b271f73ac21a3c802734ec2cedb2c6bc56d0"
 
 inherit autotools pkgconfig lib_package
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index 2fa24b2..28a3e1e 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -11,6 +11,10 @@
            "
 SRCREV = "756f70010779927dc0691e1e722ed433d5d295e1"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2009-1760 \
+"
+
 PV = "0.13.8"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.2.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.2.2.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
index 2a3a4eb..21297f2 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
@@ -1,13 +1,13 @@
 SUMMARY = "Canonical libwebsockets.org websocket library"
 HOMEPAGE = "https://libwebsockets.org/"
 LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c8bea43a2eb5d713c338819a0be07797"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b"
 
 DEPENDS = "zlib"
 
 S = "${WORKDIR}/git"
-SRCREV = "8d605f0649ed1ab6d27a443c7688598ea21fdb75"
-SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.2-stable"
+SRCREV = "b0a749c8e7a8294b68581ce4feac0e55045eb00b"
+SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.3-stable"
 
 UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.10.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.8.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.10.bb
index 28f81ba..9316cbb 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.8.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.10.bb
@@ -12,7 +12,7 @@
 
 DEPENDS = "glib-2.0 libgudev libxslt-native dbus"
 
-SRCREV ?= "0d8b5e93fc62eb0f41e18a2d9d845331d7af36ec"
+SRCREV ?= "1338749739e0c01bdbc6ddf92388a781806ec3ac"
 
 # Patch 0001 will be in ModemManager > 1.19
 SRC_URI = " \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.7.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.6.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.7.bb
index 21fbdb6..13ce13a 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.7.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "65515c7e9a5289167ae64c4032450904449a87ce20653241022af4f5db2e9510"
+SRC_URI[sha256sum] = "542915e240ae8b5c7dcec8d1589e6067818532900d45cfef226cea9f0e671d13"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.4.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.4.bb
index 01a6ee6..64e83b2 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.4.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_14.4.bb
@@ -11,3 +11,7 @@
 "
 
 SRC_URI[sha256sum] = "c23b6237c5231c791511bdc79098617d6852e9e3bdf360efd8b5d15a1a3d8f6a"
+
+CVE_CHECK_IGNORE += "\
+   CVE-2017-8806 \
+"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.7.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.8.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.7.bb
rename to meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.8.bb
index 043f3a8..c5a424c 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.7.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.1.8.bb
@@ -33,7 +33,13 @@
           "
 
 S = "${WORKDIR}/php-${PV}"
-SRC_URI[sha256sum] = "b816753eb005511e695d90945c27093c3236cc73db1262656d9fadd73ead7e9d"
+SRC_URI[sha256sum] = "b8815a5a02431453d4261e3598bd1f28516e4c0354f328c12890f257870e4c01"
+
+CVE_CHECK_IGNORE += "\
+    CVE-2007-2728 \
+    CVE-2007-3205 \
+    CVE-2007-4596 \
+"
 
 inherit autotools pkgconfig python3native gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.6.bb b/meta-openembedded/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.6.bb
rename to meta-openembedded/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb
index d4f5b8d..e37dbcd 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb
@@ -10,7 +10,7 @@
            file://0001-setup.py-Disable-autodection-of-modules.patch \
            "
 
-SRCREV = "c6db6fad26a2b83ba301b52ff5dee98cef7558ca"
+SRCREV = "5aff8fa2b5b60b7c11bbfb39c884477e72d11d02"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index e9cb7ad..df90b62 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -18,6 +18,10 @@
 
 S = "${WORKDIR}/imap-${PV}"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2005-0198 \
+"
+
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
 PACKAGECONFIG[pam] = ",,libpam"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.6.bb b/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.7.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.6.bb
rename to meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.7.bb
index 4bed4a4..51b2bb9 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.6.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/valijson/valijson_0.7.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=015106c62262b2383f6c72063f0998f2"
 
 SRC_URI = "git://github.com/tristanpenman/valijson.git;branch=master;protocol=https"
-SRCREV = "2dfc7499a31b84edef71189f4247919268ebc74e"
+SRCREV = "94d3bfd39ad4dca1be0f700b5eea8e4234d0e7e8"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
index db4f507..daaff00 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
@@ -13,6 +13,12 @@
 
 S = "${WORKDIR}/git"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2017-5834 \
+    CVE-2017-5835 \
+    CVE-2017-5836 \
+"
+
 do_install:append () {
     if [ -e ${D}${libdir}/python*/site-packages/plist/_plist.so ]; then
         chrpath -d ${D}${libdir}/python*/site-packages/plist/_plist.so
diff --git a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_3.2.6.bb b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_3.2.6.bb
rename to meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
index 7fb6850..237828d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_3.2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=dccf35ef30bf912bb07b01d469965293"
 
 SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=3.x"
-SRCREV = "464d866d8bbf4c8ddc5b67422d09b60ad3b918fc"
+SRCREV = "cf639f7f4ee125f68e1ccfba8d99ebc0de57b9fe"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallDirs.patch b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallDirs.patch
deleted file mode 100644
index 9ce39f3..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallDirs.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From fbb13cdb0b3591616c3f77b6bc76e75af8906cda Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 19 Mar 2022 22:59:58 -0700
-Subject: [PATCH] cmake: Use CMAKE_INSTALL_LIBDIR from GNUInstallDirs
-
-makes it portable across platforms e.g. ppc64/linux uses usr/lib64 for
-system libs
-
-Upstream-Status: Submitted [https://github.com/sewenew/redis-plus-plus/pull/344]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4f28ee4..8150f5c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -239,10 +239,12 @@ if(REDIS_PLUS_PLUS_BUILD_TEST)
-     add_subdirectory(test)
- endif()
- 
-+include(GNUInstallDirs)
-+
- install(TARGETS ${REDIS_PLUS_PLUS_TARGETS}
-         EXPORT redis++-targets
--        LIBRARY DESTINATION lib
--        ARCHIVE DESTINATION lib
-+        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-         RUNTIME DESTINATION bin
-         INCLUDES DESTINATION include)
- 
-@@ -284,7 +286,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/redis++.pc.in"
-         "${CMAKE_CURRENT_BINARY_DIR}/cmake/redis++.pc" @ONLY)
- 
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/redis++.pc"
--        DESTINATION "lib/pkgconfig")
-+        DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
- 
- # All the Debian-specific cpack defines.
- if(${CMAKE_VERSION} VERSION_GREATER 3.6)
--- 
-2.35.1
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.3.bb b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb
similarity index 73%
rename from meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.3.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb
index 575443f..de19dca 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb
@@ -4,10 +4,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI = "git://github.com/sewenew/redis-plus-plus;branch=master;protocol=https \
-           file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallDirs.patch \
-          "
-SRCREV = "389ffdf9e72035ea2096b03cda7f4a6809ae6363"
+SRC_URI = "git://github.com/sewenew/redis-plus-plus;branch=master;protocol=https"
+SRCREV = "58084931ed1a056d91fe96da7b9ea81fa023560a"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.2.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.4.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.2.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.4.bb
index b188278..993ff34 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.4.bb
@@ -19,7 +19,7 @@
            file://GNU_SOURCE.patch \
            file://0006-Define-correct-gregs-for-RISCV32.patch \
            "
-SRC_URI[sha256sum] = "5e57eafe7d4ac5ecb6a7d64d6b61db775616dbf903293b3fcc660716dbda5eeb"
+SRC_URI[sha256sum] = "f0e65fda74c44a3dd4fa9d512d4d4d833dd0939c934e946a5c622a630d057f2f"
 
 inherit autotools-brokensep update-rc.d systemd useradd
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2202.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2206.0.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2202.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2206.0.bb
index ebb8ecf..a39de3a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2202.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2206.0.bb
@@ -31,7 +31,7 @@
     file://0001-Include-sys-time-h.patch \
 "
 
-SRC_URI[sha256sum] = "e41308a5a171939b3cbc246e9d4bd30be44e801521e04cd95d051fa3867d6738"
+SRC_URI[sha256sum] = "a1377218b26c0767a7a3f67d166d5338af7c24b455d35ec99974e18e6845ba27"
 
 UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch b/meta-openembedded/meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch
new file mode 100644
index 0000000..18ef6ca
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch
@@ -0,0 +1,43 @@
+From fa93dab6393527673e642f26b6ea2c4413dd3cfe Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 27 Jul 2022 13:40:12 +0800
+Subject: [PATCH] make-config.sh: hidden the build info
+
+Use the CC as placeholder to replace the real build information which
+will be collected via src/mx/accmacvar.c and then added in the final
+binary s-nail, so hidden the build info to avoid revealing the detailed
+build info.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ mk/make-config.sh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mk/make-config.sh b/mk/make-config.sh
+index 2d7c619..9146004 100644
+--- a/mk/make-config.sh
++++ b/mk/make-config.sh
+@@ -3637,15 +3637,15 @@ LIBS=`squeeze_ws "${LIBS}"`
+ COMMLINE=`printf '%s\n' "${COMMLINE}" | ${sed} -e 's/.*--\(.*\)/\1/'`
+ COMMLINE=`squeeze_ws "${COMMLINE}"`
+ 
+-i=`printf '%s %s %s\n' "${CC}" "${CFLAGS}" "${i}"`
++i="CC"
+    printf '#define VAL_BUILD_CC "%s"\n' "$i" >> ${h}
+    i=`string_to_char_array "${i}"`
+    printf '#define VAL_BUILD_CC_ARRAY %s\n' "$i" >> ${h}
+-i=`printf '%s %s %s\n' "${CC}" "${LDFLAGS}" "${LIBS}"`
++i="CC"
+    printf '#define VAL_BUILD_LD "%s"\n' "$i" >> ${h}
+    i=`string_to_char_array "${i}"`
+    printf '#define VAL_BUILD_LD_ARRAY %s\n' "$i" >> ${h}
+-i=${COMMLINE}
++i="CC"
+    printf '#define VAL_BUILD_REST "%s"\n' "$i" >> ${h}
+    i=`string_to_char_array "${i}"`
+    printf '#define VAL_BUILD_REST_ARRAY %s\n' "$i" >> ${h}
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb b/meta-openembedded/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb
index 6e004fc..bcdb1e4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb
@@ -10,6 +10,7 @@
            file://0001-make.rc-set-VAL_MTA.patch \
            file://0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch \
            file://0001-su_INLINE-eh-no-give-up-share-detection.patch \
+           file://0001-mk-make-config.sh-not-reveal-the-build-env.patch \
 "
 SRC_URI[sha256sum] = "2714d6b8fb2af3b363fc7c79b76d058753716345d1b6ebcd8870ecd0e4f7ef8c"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
index ecbfad3..a59a5c4 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
@@ -21,6 +21,10 @@
 
 S = "${WORKDIR}/git"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2012-5638 \
+"
+
 DEPENDS = "libaio util-linux"
 
 inherit setuptools3 useradd
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index 7e00f15..4b9ae47 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -32,6 +32,10 @@
 SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
 SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2012-3381 \
+"
+
 inherit autotools
 inherit systemd
 
diff --git a/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.1.bb b/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.1.bb
rename to meta-openembedded/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
index 0342b8a..a152ff2 100644
--- a/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.1.bb
+++ b/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
@@ -14,7 +14,7 @@
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
-SRC_URI[archive.sha256sum] = "e11324bfed1b6e330a02db25cecc145dca03fb0dff47f0710c85e317687da458"
+SRC_URI[archive.sha256sum] = "6f62dd99f746985e573605937577ccfc944368f606a71ca46342d70e1cdae079"
 
 S = "${WORKDIR}/${GNOMEBN}-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
index aa597cd..4c51af6 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
@@ -31,6 +31,10 @@
 
 SRC_URI[sha256sum] = "6b16bf990df114195be669773a1dae975dbbffada45e1de2849ddeb5851bb9a8"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2014-9157 \
+"
+
 PACKAGECONFIG ??= "librsvg"
 PACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
index 4c17105..27dff82 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
@@ -6,6 +6,10 @@
 SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https;branch=master"
 SRCREV = "fe00207dc10db1d7cc6f2757961c5c6bdfd10973"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2015-8751 \
+"
+
 S = "${WORKDIR}/git"
 
 inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
index 5f404f2..5cde7c9 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0-or-later"
 SECTION = "x11/utils"
 DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk libpam"
-RDEPENDS:${PN} = "coreutils hicolor-icon-theme perl bash"
+RDEPENDS:${PN} = "coreutils hicolor-icon-theme perl bash xkbcomp"
 
 LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb
rename to meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb
index fcc6a23..b4a5985 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb
@@ -3,7 +3,7 @@
 SUMMARY = "Adobe OpenType Pan-CJK font family for Simplified Chinese"
 HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
 LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
 
 inherit allarch fontcache
 
@@ -11,7 +11,7 @@
 #EXCLUDE_FROM_WORLD = "1"
 
 SRC_URI = " \
-    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansCN.zip \
+    svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/CN;protocol=http;rev=82 \
     file://44-source-han-sans-cn.conf \
 "
 SRC_URI[md5sum] = "d16abc21f6575bb08894efedbed484a2"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb
rename to meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb
index 27fe9db..6a45090 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb
@@ -3,7 +3,7 @@
 SUMMARY = "Adobe OpenType Pan-CJK font family for Japanese"
 HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
 LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
 
 inherit allarch fontcache
 
@@ -11,7 +11,7 @@
 #EXCLUDE_FROM_WORLD = "1"
 
 SRC_URI = " \
-    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansJP.zip \
+    svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/JP;protocol=http;rev=82 \
     file://44-source-han-sans-jp.conf \
 "
 SRC_URI[md5sum] = "908fbf97f3df04a6838708c093f1e900"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb
rename to meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb
index fc3a6b7..5ab5057 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb
@@ -3,7 +3,7 @@
 SUMMARY = "Adobe OpenType Pan-CJK font family for Korean"
 HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
 LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
 
 inherit allarch fontcache
 
@@ -11,7 +11,7 @@
 #EXCLUDE_FROM_WORLD = "1"
 
 SRC_URI = " \
-    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansKR.zip \
+    svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/TW;protocol=http;rev=82 \
     file://44-source-han-sans-kr.conf \
 "
 SRC_URI[md5sum] = "f8d1bd6c87d8575afdb25e2f46bd81d4"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb
similarity index 80%
rename from meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb
rename to meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb
index aa43c92..a2b3fff 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb
@@ -3,7 +3,7 @@
 SUMMARY = "Adobe OpenType Pan-CJK font family for Traditional Chinese"
 HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
 LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
 
 inherit allarch fontcache
 
@@ -11,7 +11,7 @@
 #EXCLUDE_FROM_WORLD = "1"
 
 SRC_URI = " \
-    https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansTW.zip \
+    svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/TW;protocol=http;rev=82 \
     file://44-source-han-sans-tw.conf \
 "
 SRC_URI[md5sum] = "6533b71b31c19e548768f0fc963202f3"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch
rename to meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch
index 4ce2fae..1d0d20d 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/tweak-app-defaults.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch
@@ -1,3 +1,14 @@
+From f2c592352360e52a7c817a1adcc8b09fd92cd941 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Jul 2022 09:58:24 -0700
+Subject: [PATCH 1/2] Tweak app defaults
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ driver/XScreenSaver.ad.in | 259 +-------------------------------------
+ 1 file changed, 6 insertions(+), 253 deletions(-)
+
 --- a/driver/XScreenSaver.ad.in
 +++ b/driver/XScreenSaver.ad.in
 @@ -29,7 +29,7 @@
@@ -32,7 +43,7 @@
  *splashDuration:	0:00:05
  *visualID:		default
  *installColormap:	True
-@@ -324,250 +324,8 @@ XScreenSaver.bourneShell:		/bin/sh
+@@ -324,256 +324,8 @@ XScreenSaver.bourneShell:		/bin/sh
  !=============================================================================
  
  *programs:								      \
@@ -74,7 +85,7 @@
 -				munch -root				    \n\
 -				penrose -root				    \n\
 -@GL_KLUDGE@ GL: 				pipes -root				    \n\
--				rd-bomb -root				    \n\
+-				rdbomb -root				    \n\
 -@GL_KLUDGE@ GL: 				rubik -root				    \n\
 --				sierpinski -root			    \n\
 -				slip -root				    \n\
@@ -277,7 +288,13 @@
 -@GL_KLUDGE@ GL: 				etruscanvenus -root			    \n\
 -@GL_KLUDGE@ GL: 				gibson -root				    \n\
 -@GL_KLUDGE@ GL: 				headroom -root				    \n\
--@GL_KLUDGE@ GL: 				sphereeversion -root			    \n
+-@GL_KLUDGE@ GL: 				sphereeversion -root			    \n\
+-				binaryhorizon -root			    \n\
+-				marbling -root				    \n\
+-@GL_KLUDGE@ GL: 				chompytower -root			    \n\
+-@GL_KLUDGE@ GL: 				mapscroller -root			    \n\
+-@GL_KLUDGE@ GL: 				nakagin -root				    \n\
+-@GL_KLUDGE@ GL: 				squirtorus -root			    \n
 -
 -
 +-				fontglide -root -program "date +'%F %H:%M %z'"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch
new file mode 100644
index 0000000..ea3f25a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch
@@ -0,0 +1,47 @@
+From 516fbcdcfe6343b1d64d35957ddb768346713ff6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 17 Jul 2022 09:47:35 -0700
+Subject: [PATCH] configure: Ignore CONF_STATUS for gtk and openGL needs
+
+These are just warnings
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c4fd38f..d7463cf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4522,7 +4522,6 @@ fi
+ if test "$gtk_halfassed" != no ; then
+   warnL "GTK was found, but $gtk_halfassed_lib was not, so GTK"
+   warn2 "can't be used."
+-  CONF_STATUS=1
+ 
+   if ( echo $gtk_halfassed_lib | grep -qi pixbuf-xlib ); then
+     echo ''
+@@ -4549,7 +4548,6 @@ if test "$have_motif" = no -a "$have_gtk" = no; then
+   else
+     warnL "The GTK libraries do not seem to be available; the"
+     warn2 "\`xscreensaver-settings' program requires them."
+-    CONF_STATUS=1
+ #   echo ''
+ #   warn2 'You can use Motif or Lesstif instead of GTK (use the'
+ #   warn2 "\`--with-motif' option) but that is NOT recommended."
+@@ -4735,10 +4733,8 @@ if test "$have_gl" = no ; then
+     CONF_STATUS=1
+   elif test "$with_gl_req" = no ; then
+     noteL 'The OpenGL 3D library is not being used.'
+-    CONF_STATUS=1
+   else
+     noteL 'The OpenGL 3D library was not found.'
+-    CONF_STATUS=1
+   fi
+ 
+   if test "$gl_halfassed" = yes ; then
+-- 
+2.37.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-build-Do-not-build-po-files.patch b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch
similarity index 66%
rename from meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-build-Do-not-build-po-files.patch
rename to meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch
index 7703a43..0ceba7b 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0001-build-Do-not-build-po-files.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch
@@ -1,18 +1,22 @@
-From 19bd0a979677a81d7399d5b567998398ec81f38b Mon Sep 17 00:00:00 2001
+From 6b5d022f6dd9848a2d5ca08a1968929b8c140981 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Jul 2021 15:40:10 -0700
-Subject: [PATCH] build: Do not build po files
+Date: Sat, 16 Jul 2022 09:59:40 -0700
+Subject: [PATCH 2/2] build: Do not build po files
 
 Fixes
 | make[1]: Entering directory '/mnt/b/yoe/master/build/tmp/work/cortexa57-yoe-linux/xscreensaver/6.01-r0/xscreensaver-6.01/po'
 | make[1]: *** No rule to make target 'default'.  Stop.
 
 Upstream-Status: Pending
+
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- Makefile.in | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
+ Makefile.in        | 5 ++---
+ driver/Makefile.in | 2 +-
+ 2 files changed, 3 insertions(+), 4 deletions(-)
 
+diff --git a/Makefile.in b/Makefile.in
+index 9de79b2..1c1d16c 100644
 --- a/Makefile.in
 +++ b/Makefile.in
 @@ -6,8 +6,8 @@ srcdir		= @srcdir@
@@ -26,14 +30,16 @@
  SUBDIRS2	= $(SUBDIRS) OSX android
  TARFILES	= README README.hacking INSTALL \
  		  configure configure.ac Makefile.in config.h.in \
-@@ -451,4 +451,3 @@ cerebrum::
- 	--include 'configure*' \
+@@ -461,4 +461,3 @@ cerebrum::
+ 	--include 'ad2c' \
  	--include '*/' \
  	--exclude '*'
 -
+diff --git a/driver/Makefile.in b/driver/Makefile.in
+index e1fa1b2..feca6fc 100644
 --- a/driver/Makefile.in
 +++ b/driver/Makefile.in
-@@ -212,7 +212,7 @@ TEST_EXES	= test-passwd   test-uid
+@@ -211,7 +211,7 @@ TEST_EXES	= test-passwd   test-uid        test-xdpms      test-grab     \
  		  xdpyinfo      test-screens    test-yarandom   test-xinput   \
  	          test-xkb
  
@@ -42,3 +48,6 @@
  UTIL_EXES	= xscreensaver-gfx @EXES_SYSTEMD@
  SETUID_EXES	= xscreensaver-auth
  DEMO_EXES	= @ALL_DEMO_PROGRAMS@
+-- 
+2.37.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.01.bb b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
similarity index 66%
rename from meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.01.bb
rename to meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
index 2ab5297..d24f666 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.01.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
@@ -3,16 +3,15 @@
 LICENSE = "0BSD"
 LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=c3ce41cdff745eb1dc9d4fcfbffb4d51"
 
-SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "085484665d91f60b4a1dedacd94bcf9b74b0fb096bcedc89ff1c245168e5473b"
-
-SRC_URI += " \
+SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz \
     file://xscreensaver.service \
-    file://0001-build-Do-not-build-po-files.patch \
-    file://tweak-app-defaults.patch \
+    file://0001-Tweak-app-defaults.patch \
+    file://0002-build-Do-not-build-po-files.patch \
+    file://0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch \
 "
+SRC_URI[sha256sum] = "787014b29f0c5793ecc2d93e1109a049ff48ab0c29b851dab34f683ceef6b152"
 
-DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-native libpam"
+DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-native libpam jpeg"
 # These are only needed as part of the stopgap screensaver implementation:
 RDEPENDS:${PN} = " \
     liberation-fonts \
@@ -25,9 +24,17 @@
 EXTRA_OECONF += "--with-app-defaults=${datadir}/X11/app-defaults --libdir=${STAGING_LIBDIR} \
                  --includedir=${STAGING_INCDIR} --with-pam --with-login-manager"
 
-EXTRA_OEMAKE += "install_prefix=${D}"
+EXTRA_OEMAKE += "install_prefix=${D} GTK_DATADIR=${datadir}"
 REQUIRED_DISTRO_FEATURES = "x11 pam"
 
+PACKAGECONFIG = "png ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+
+PACKAGECONFIG[systemd] = "--with-systemd=yes,--with-systemd=no,systemd"
+PACKAGECONFIG[png] = "--with-png=yes,--with-png=no,libpng"
+
+CONFIGUREOPTS:remove = "--disable-silent-rules --disable-dependency-tracking ${@append_libtool_sysroot(d)}"
+EXTRA_OECONF:remove = "--disable-static"
+
 do_install:append() {
     install -D ${WORKDIR}/xscreensaver.service ${D}${systemd_unitdir}/system/xscreensaver.service
     for f in xscreensaver-getimage-file xscreensaver-getimage-video webcollage xscreensaver-text vidwhacker
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
index 35540b3..b1d2abd 100644
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
@@ -24,6 +24,10 @@
 SRC_URI[md5sum] = "1077da884ed94f2bc3c81ac3ab970436"
 SRC_URI[sha256sum] = "be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2011-3618 \
+"
+
 do_compile() {
     oe_runmake all
 }
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.2.bb b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.2.bb
index b78dc5e..4a7e7ab 100644
--- a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_27.2.bb
@@ -11,6 +11,10 @@
 
 SRC_URI[sha256sum] = "b4a7cc4e78e63f378624e0919215b910af5bb2a0afc819fad298272e9f40c1b9"
 
+CVE_CHECK_IGNORE = "\
+    CVE-2007-6109 \
+"
+
 PACKAGECONFIG[gnutls] = "--with-gnutls=yes,--with-gnutls=no,gnutls"
 PACKAGECONFIG[kerberos] = "--with-kerberos=yes,--with-kerberos=no,krb5"
 PACKAGECONFIG[libgmp] = "--with-libgmp=yes,--with-libgmp=no,gmp"
diff --git a/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.6.1.bb b/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.6.1.bb
rename to meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb
index b44d3be..7fc6d64 100644
--- a/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
 SRC_URI = "git://github.com/google/benchmark.git;protocol=https;branch=main"
-SRCREV = "0d98dba29d66e93259db7daa53a9327df767a415"
+SRCREV = "361e8d1cfe0c6c36d30b39f1b61302ece5507320"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.12.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb
rename to meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.12.bb
index 31f90ee..2237782 100644
--- a/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.12.bb
@@ -10,7 +10,7 @@
 DEPENDS = "libtool openssl"
 
 SRC_URI = "git://github.com/OpenSC/libp11.git;branch=master;protocol=https"
-SRCREV = "9ca6a71c890b5583c8af3b4900172626bca55e72"
+SRCREV = "53d65dc48cf436694f7edcfc805414e608e8a2bf"
 
 UPSTREAM_CHECK_GITTAGREGEX = "libp11-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
index 14b1aaf..3d8a457 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
@@ -15,6 +15,11 @@
 
 SRC_URI[sha256sum] = "19654ad276b149646371fbdac21bc7620742f2975f7399fed0ffc1a18fbaf603"
 
+CVE_CHECK_IGNORE += "\
+    CVE-2010-1624 \
+    CVE-2011-3594 \
+"
+
 PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
 "
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.0.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.0.bb
index 6fff070..c3b52c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.0.bb
@@ -66,6 +66,9 @@
 # do not use rpath
 EXTRA_OECMAKE:append = " -DCMAKE_SKIP_RPATH=ON"
 
+LDFLAGS:append:riscv32 = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
+LDFLAGS:append:mips = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
+
 python populate_packages:prepend () {
     poco_libdir = d.expand('${libdir}')
     pn = d.getVar("PN")
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch
index 6c11f1d..203eec6 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-utils-fix-build-against-5.15-libc-headers-headers.patch
@@ -48,7 +48,7 @@
  #  endif
  # elif defined(RT_OS_LINUX) && defined(IN_RING0)
 -#  include "linux/version.h"
--#  if RTLNX_VER_MIN(5,15,0)
+-#  if RTLNX_VER_MIN(5,15,0) || RTLNX_RHEL_MAJ_PREREQ(9,1)
 -#   include <linux/stdarg.h>
 -#  else
 -#   include <stdarg.h>
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.34.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.36.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.34.bb
rename to meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.36.bb
index 5e0accb..37dd022 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.34.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.36.bb
@@ -16,13 +16,13 @@
     file://0001-utils-fix-build-against-5.15-libc-headers-headers.patch \
 "
 
-SRC_URI[sha256sum] = "9c3ce1829432e5b8374f950698587038f45fb0492147dc200e59edb9bb75eb49"
+SRC_URI[sha256sum] = "e47942e42892c13c621869865e2b7b320340154f0fa74ecbdaf18fdaf70ef047"
 
 S ?= "${WORKDIR}/vbox_module"
 S:task-patch = "${WORKDIR}/${VBOX_NAME}"
 
-export BUILD_TARGET_ARCH="${ARCH}"
-export BUILD_TARGET_ARCH:x86-64="amd64"
+export VBOX_KBUILD_TARGET_ARCH="${ARCH}"
+export VBOX_KBUILD_TARGET_ARCH:x86-64="amd64"
 
 EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1"
 
diff --git a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.23.bb b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb
similarity index 95%
rename from meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.23.bb
rename to meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb
index b40d52a..ea3dd5a 100644
--- a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.23.bb
+++ b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb
@@ -14,9 +14,7 @@
 SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.xz \
            file://99_logcheck \
 "
-SRC_URI[sha256sum] = "a2188ba549fff4412c82074b271884ff66d25f3fdb2a41916e817ce676855b29"
-
-S = "${WORKDIR}/${BPN}"
+SRC_URI[sha256sum] = "5e304adf2880967c3b155bcf98e4f0809417a16bf91adb372fa065f38ab2c0cf"
 
 inherit useradd
 
diff --git a/meta-openembedded/meta-python/README b/meta-openembedded/meta-python/README
index 8b62ad3..01c51dc 100644
--- a/meta-openembedded/meta-python/README
+++ b/meta-openembedded/meta-python/README
@@ -44,4 +44,3 @@
 Layer maintainers:
         Tim "moto-timo" Orling <TicoTimo@gmail.com>
         Derek Straka <derek@asterius.io>
-        Trevor Gamblin <trevor.gamblin@windriver.com>
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index 0721c6c..1d2a995 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -515,6 +515,7 @@
     python3-pyserial-ptest \
     python3-pytest-lazy-fixture-ptest \
     python3-pytoml-ptest \
+    python3-pyzmq-ptest \
     python3-requests-file-ptest \
     python3-requests-toolbelt-ptest \
     python3-scrypt-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.2.0.bb
similarity index 76%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.2.0.bb
index e3f7c4c..42b3ddc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-absl_1.2.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[sha256sum] = "3aa39f898329c2156ff525dfa69ce709e42d77aab18bf4917719d6f260aa6a08"
+SRC_URI[sha256sum] = "f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97"
 
 PYPI_PACKAGE = "absl-py"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb
new file mode 100644
index 0000000..64599d4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Simple DNS resolver for asyncio"
+DESCRIPTION = "aiodns provides a simple way for doing asynchronous DNS resolutions using pycares."
+HOMEPAGE = "https://github.com/saghul/aiodns"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a565d8b5d06b9620968a135a2657b093"
+
+SRC_URI[md5sum] = "181e11935c78965de2b2b7b0e5efba8d"
+SRC_URI[sha256sum] = "946bdfabe743fceeeb093c8a010f5d1645f708a241be849e17edfb0e49e08cd6"
+
+PYPI_PACKAGE = "aiodns"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-asyncio \
+    ${PYTHON_PN}-pycares \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.8.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb
index 3b12439..3e31158 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb
@@ -4,7 +4,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "a2d4d90da70b30e70352cd9455e35873a255a31402a438fe24815758d7a0e5e1"
+SRC_URI[sha256sum] = "cd0b5e45b14b706426b833f06369b9a6d5ee03f826ec3238723ce8caaf6e5ffa"
 
 PYPI_PACKAGE = "alembic"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
index 21095cb..8dcd7b0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
@@ -11,7 +11,7 @@
 
 DEPENDS += " \
 	${PYTHON_PN}-setuptools-scm-native \
-	${PYTHON_PN}-toml-native \
+	${PYTHON_PN}-setuptools-scm-git-archive-native \
 "
 
 RDEPENDS:${PN} = " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb
index 0cbeca2..71f3d35 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb
@@ -1,7 +1,9 @@
 # Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
 # Released under the MIT license (see COPYING.MIT for the terms)
 
-SUMMARY = "``aspectlib`` is an aspect-oriented programming, monkey-patch and decorators library. It is useful when changing"
+SUMMARY = "An aspect-oriented programming, monkey-patch and decorators library."
+DESCRIPTION = " It is useful when changing behavior in existing code is desired. \
+It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework."
 HOMEPAGE = "https://github.com/ionelmc/python-aspectlib"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d58b3f20fd10347a9458b8a03793b62e"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.12.2.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.12.2.bb
index 4f9d1af..ae2a410 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.11.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.12.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
 
-SRC_URI[sha256sum] = "4f933d0bf5e408b03a6feb5d23793740c27e07340605f236496cd6ce552043d6"
+SRC_URI[sha256sum] = "4675ef501edbbb143b3d9bb4c81d5f6338f08f960beed2ce41a03dc4cd20d777"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb
deleted file mode 100644
index 22c5218..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way"
-HOMEPAGE = "https://github.com/denis-ryzhkov/attr"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=59805a0285f4d2b6abdedae73db4f5c1"
-
-SRC_URI[md5sum] = "68b9a503991241fb2df28488686b0e1e"
-SRC_URI[sha256sum] = "9091548058d17f132596e61fa7518e504f76b9a4c61ca7d86e1f96dbf7d4775d"
-
-inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-attr_0.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-attr_0.3.2.bb
new file mode 100644
index 0000000..0a77009
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-attr_0.3.2.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way"
+HOMEPAGE = "https://github.com/denis-ryzhkov/attr"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=02c113fb406eab0537c0cf4334f57c07"
+
+SRC_URI[sha256sum] = "1ceebca768181cdcce9827611b1d728e592be5d293911539ea3d0b0bfa1146f4"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb
index bda2d96..507c0bc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "PSF-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
 
-SRC_URI[sha256sum] = "8d38f60751008099a659d5acfb35ef4150183effd5b2bfa6c10199270ddf4c9c"
+SRC_URI[sha256sum] = "56d3f16dd807b1c56732a244ce071c135ee973d3edc9929418c1b24c5439a0fd"
 
 inherit setuptools3 pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker/0001-use-pytest-instead-of-deprecated-nose.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker/0001-use-pytest-instead-of-deprecated-nose.patch
deleted file mode 100644
index a04c79b..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker/0001-use-pytest-instead-of-deprecated-nose.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9750d01118ee59ab174525e30d987065b69c0538 Mon Sep 17 00:00:00 2001
-From: pgajdos <pgajdos@suse.cz>
-Date: Wed, 8 Jul 2020 15:22:19 +0200
-Subject: [PATCH] use pytest instead of deprecated nose
-
-Upstream-Status: Submitted [https://github.com/jek/blinker/pull/60]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test_signals.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/test_signals.py b/tests/test_signals.py
-index 9771e40..ccbc35b 100644
---- a/tests/test_signals.py
-+++ b/tests/test_signals.py
-@@ -4,7 +4,7 @@ import time
- 
- import blinker
- 
--from nose.tools import assert_raises
-+import pytest
- 
- 
- jython = sys.platform.startswith('java')
-@@ -232,7 +232,7 @@ def test_meta_connect_failure():
-         pass
-     sig = blinker.Signal()
- 
--    assert_raises(TypeError, sig.connect, receiver)
-+    pytest.raises(TypeError, sig.connect, receiver)
-     assert not sig.receivers
-     assert not sig._by_receiver
-     assert sig._by_sender == {blinker.base.ANY_ID: set()}
--- 
-2.35.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.4.bb
deleted file mode 100644
index 08a961f..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.4.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=946d7e89af6f7733aeaebed5635d2682"
-
-SRC_URI[md5sum] = "8b3722381f83c2813c52de3016b68d33"
-SRC_URI[sha256sum] = "471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
-	file://0001-use-pytest-instead-of-deprecated-nose.patch \
-	file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-	${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-	install -d ${D}${PTEST_PATH}/tests
-	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.5.bb
new file mode 100644
index 0000000..dae1e39
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.5.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=42cd19c88fc13d1307a4efd64ee90e4e"
+
+SRC_URI[sha256sum] = "923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += "file://run-ptest"
+
+RDEPENDS:${PN}-ptest += " \
+	${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+	install -d ${D}${PTEST_PATH}/tests
+	cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb
index 0890b99..bbb57a4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb
@@ -8,6 +8,8 @@
 
 inherit pypi python_setuptools_build_meta ptest
 
+DEPENDS += "python3-setuptools-scm-native"
+
 SRC_URI += " \
         file://run-ptest \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb
index 8e3883b4..d2434b6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb
@@ -5,7 +5,7 @@
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
-SRC_URI[sha256sum] = "f3b0467daca18fca0dc7838de7726a72ab64127a018a377a86a6ed8ebfdbb25f"
+SRC_URI[sha256sum] = "073e555c05853b0f6965f3d03329babdf9e38a5f2cea028e61a64cd7eeb74ad5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.17.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.17.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
index 177019c..6a399a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.17.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
@@ -6,7 +6,7 @@
 DEPENDS += "python3-pip python3-pbr"
 
 PYPI_PACKAGE = "ecdsa"
-SRC_URI[sha256sum] = "b9f500bb439e4153d0330610f5d26baaf18d17b8ced1bc54410d189385ea68aa"
+SRC_URI[sha256sum] = "190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"
 
 inherit pypi setuptools3 python3native
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_3.0.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_3.0.1.bb
index 22f5aa0..13468eb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_2.5.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_3.0.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
 
-SRC_URI[sha256sum] = "b8aeb6f27dddc10fb9201b62090628a846cbae8577f3544cb1075fa38d0817f6"
+SRC_URI[sha256sum] = "a75eed5aad3dad92ba577b1f3a268d8c3c98ceeda91cb8abae4269e920e7c8f6"
 
 PYPI_PACKAGE = "elementpath"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb
index c4e8e5e..7307270 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
 
-SRC_URI[sha256sum] = "8cde211519ff1a98b46e9057cb909f12ab62e263eb30a0a94e2f7e1f46ac67a0"
+SRC_URI[sha256sum] = "ea0fd4e264c97c8aa739ae1cea7199db2e1f3bdf387cc9b81ef03c660f871335"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb
index 141411d..659a86d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2"
 
-SRC_URI[sha256sum] = "5b33b174f7c84576e7dd6071e438bf5ad227da95efd4356a39fe4c8355412fe6"
+SRC_URI[sha256sum] = "ecfa01b5c84f7e8c6ced3367ac95288f43cd84efbfd7dd7d0cdbfc0d18c87a6a"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.1.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.1.bb
index a2821c1..bb6c1ee 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.15.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.1.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532"
 
-SRCREV = "d03f3835da4899bdeb597a9d3f30a709e7c3254f"
+SRCREV = "98399bb4029b2d7020d8abd9770661a5b2c4f9f8"
 PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master"
 
 SRC_URI += "file://run-ptest"
@@ -33,6 +33,7 @@
     python3-urllib3 \
     python3-numbers \
     python3-pickle \
+    python3-json \
     "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.3.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.3.bb
index 7d290a4..95abddf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.1.3.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[sha256sum] = "315ded2ddf8a6281567edb27393010fe3406188bafbfe65a3339d5787d89e477"
+SRC_URI[sha256sum] = "15972e5017df0575c3d6c090ba168b6db90259e620ac8d7ea813a396bad5b6cb"
 
 PYPI_PACKAGE = "Flask"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.51.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.54.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.51.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.54.0.bb
index d52b34a..af1b934 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.51.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.54.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "a573373041b3f6ccbd04877b70e7425c52daec5b4fe5f440e8f5895c87d1a69c"
+SRC_URI[sha256sum] = "90ebbae53025545b45962c0bc9874640511f35e929df773d034f40d9464c86af"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.9.1.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.9.1.bb
index 868d70b..e884aba 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.9.1.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "3b2f9d2f436cc7c3b363d0ac66470f42fede249c3bafcc504e9f0bcbe983cff0"
+SRC_URI[sha256sum] = "14292fa3429f2bb1e99862554cde1ee730d6840ebae067814d3d15d8549c0888"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb
index 95823ea..3f03933 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442"
+SRC_URI[sha256sum] = "c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-grpcio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
index 81b5912..506c738 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=951dd0868a9606c867ffda0ea3ea6da2"
 
-SRC_URI[sha256sum] = "76bdfb73f42e72564ffe9c7299482f9d72f8e6cb8d54bce7b48ab323755e9ba5"
+SRC_URI[sha256sum] = "8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.19.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.19.5.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.19.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.19.5.bb
index 8622932..6fa4393 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.19.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.19.5.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=24cb9a367a9e641b459a01c4d15256ba"
 
-SRC_URI[sha256sum] = "0c9df80e42f2ee68bea92001e7fcf612aa149910efe040eb757f5ce323250ae1"
+SRC_URI[sha256sum] = "eb3cd70de8be87b72ea85716b7363c700b91144589ee6b5d7b49d42998b7d185"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
index e578b8a..b32cfe5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5e2f4edc7e7408a82e4a1d05f229b695"
 
-SRC_URI[sha256sum] = "04d02cfcfc18a6f8a9a4edb4d0a55e2e4fc575626c29d702f750de415e88d372"
+SRC_URI[sha256sum] = "fcd551b8dda66b44e9f9e6d6bbbee3a1145a22447c0a556e5d0fb1ad1e491719"
 
 inherit pypi python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb
new file mode 100644
index 0000000..26ee378
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Generate JSON-RPC requests and parse responses in Python"
+HOMEPAGE = "https://github.com/explodinglabs/jsonrpcclient"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=10f3d7679914df805c98fb351172e677"
+
+SRC_URI[sha256sum] = "c0d475494b3e1b591ecdee7883739accaf5695edb673f16b7383b8c6bbdb1ca3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    python3-core \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb
index 537fd33..12e9003 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.7.bb
@@ -1,5 +1,5 @@
 SUMMARY = "Library to process JSON-RPC requests"
-HOMEPAGE = "https://github.com/bcb/jsonrpcserver"
+HOMEPAGE = "https://github.com/explodinglabs/jsonrpcserver"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=61b63ea9d36f6fb63ddaaaac8265304f"
 
@@ -16,6 +16,7 @@
     python3-logging \
     python3-netclient \
     python3-pkgutil \
+    python3-oslash \
 "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb
index 0280afc..acc8bd5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f137eeae9cf8004d06830f6ab25b2d52"
 
-SRC_URI[sha256sum] = "ab8a15c2750ae8d53e31f77a94f846d0a00772240f1c12817411fa2344351f86"
+SRC_URI[sha256sum] = "d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb
index 0a0682e..b870bc0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb
@@ -4,6 +4,6 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=9d10a486ee04034fdef5162fd791f153"
 
-SRC_URI[sha256sum] = "45b81f67d75341d4433abade799a47e9c42a9e22a118531dcb5e549864032d7c"
+SRC_URI[sha256sum] = "878bc8ef4073e5cfb953dfc1cf4585db41e8b814c0106abde34d00ee0d0b3115"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb
index 0dd353b..ad006e6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb
@@ -11,7 +11,7 @@
 
 SRC_URI += "file://run-ptest"
 
-SRC_URI[sha256sum] = "efdfec2175715bf2d814ed72a7a185406f3456464eb3f343db1b87ed813e039c"
+SRC_URI[sha256sum] = "083b7172c2938412ae37c3a090250bfdd9e4a6e855442594f86c3608ed12729b"
 
 inherit pkgconfig pypi python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.961.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.971.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.961.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.971.bb
index 02f7cce..31fcb06 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.961.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mypy_0.971.bb
@@ -7,7 +7,7 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "f730d56cb924d371c26b8eaddeea3cc07d78ff51c521c6d04899ac6904b75492"
+SRC_URI[sha256sum] = "40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"
 
 BBCLASSEXTEND = "native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
new file mode 100644
index 0000000..d9d977b
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Functors, Applicatives, And Monads in Python"
+HOMEPAGE = "https://github.com/dbrattli/oslash"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.md;md5=ed79d2637878dfe97de89e357b5c02dd"
+
+DEPENDS += "\
+    ${PYTHON_PN}-pip-native \
+    ${PYTHON_PN}-pytest-runner-native\
+"
+
+SRC_URI[sha256sum] = "868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3"
+
+PYPI_PACKAGE = "OSlash"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    python3-core \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb
index 7c520dd..10b1128 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.4.0.bb
@@ -6,4 +6,6 @@
 
 inherit pypi python_setuptools_build_meta
 
+DEPENDS += "python3-setuptools-scm-native"
+
 BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb
index 00df22a..454d61a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ad081a0aede51e89f8da13333a8fb849"
 
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=9.1.x;protocol=https \
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=9.2.x;protocol=https \
            file://0001-support-cross-compiling.patch \
            file://0001-explicitly-set-compile-options.patch \
            "
@@ -39,4 +39,4 @@
 
 BBCLASSEXTEND = "native"
 
-SRCREV = "0f44136e720cd3b2db72bdf29614897b7aa3e868"
+SRCREV = "58acec3312fb8671c9d84829197e1c8150085589"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.21.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.21.3.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.21.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.21.3.bb
index b8287a8..528f99e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.21.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.21.3.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "863f65e137d9de4a76cac39ae731a19bea1c30997f512ecf0dc9348112313401"
+SRC_URI[sha256sum] = "9130759e719bee1e6d05ca6a3037f7eff66d7a7ff6ba25871917dc40e8f3fbb6"
 
 # http://errors.yoctoproject.org/Errors/Details/184715/
 # Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
index bff2d49..2a8b873 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
@@ -34,6 +34,7 @@
 	${PYTHON_PN}-fcntl \
 	${PYTHON_PN}-terminal \
 	${PYTHON_PN}-resource \
+	bash \
 "
 
 do_install_ptest() {
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pycares_4.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycares_4.2.1.bb
new file mode 100644
index 0000000..dacaaa7
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pycares_4.2.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python interface for c-ares"
+DESCRIPTION = "\
+pycares is a Python module which provides an interface to c-ares. c-ares is \
+a C library that performs DNS requests and name resolutions asynchronously."
+HOMEPAGE = "https://github.com/saghul/pycares"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1538fcaea82ebf2313ed648b96c69b1"
+
+SRC_URI[md5sum] = "92fa9622ba42cb895d598910722e80b5"
+SRC_URI[sha256sum] = "735b4f75fd0f595c4e9184da18cd87737f46bc81a64ea41f4edce2b6b68d46d2"
+
+PYPI_PACKAGE = "pycares"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-cffi-native"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-cffi \
+    ${PYTHON_PN}-idna \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
index a7c8f95..d887901 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
 
 SRC_URI += "file://0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch"
-SRC_URI[sha256sum] = "0efa73922fd705b4e8f8f0b51cb88198ceef66cc309e1de21674ef44c879029d"
+SRC_URI[sha256sum] = "1ec1c61fba9dea96cf8eac7f1a0cca2517613da20d156b7da2a06f9d63c77aca"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.14.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.14.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb
index 835ed22..738b925 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.14.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
 
-SRC_URI[sha256sum] = "4e1378f815c63e7e44590d0d339ed6435f5281d0a0cc357d29a86ea0365ef868"
+SRC_URI[sha256sum] = "487ce2192eee48211269a0e976421f334cf94de1806ca9d0a99449adcdf0285e"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb
index 7bde4ff..62b6a94 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb
@@ -8,7 +8,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "d7b8f25c9b0043cbaf77b8b895814e33e7a3c807a097377c07e1bd49946030d5"
+SRC_URI[sha256sum] = "72f338f6aabd37d343bd9d1fdd3de921104d395766bcc5cdc4039e4c2dd97766"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch
new file mode 100644
index 0000000..43a177d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Backport [https://github.com/pyradius/pyrad/commit/ffe182a44909e8f8278fb3e2ea052ddc097b48b9]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From a4b70067dd6269e14a2f9530d820390a8a454231 Mon Sep 17 00:00:00 2001
+From: Martin Weinelt <hexa@darmstadt.ccc.de>
+Date: Thu, 14 Apr 2022 22:07:37 +0200
+Subject: [PATCH] Use poetry-core for pyproject based builds
+
+https://github.com/python-poetry/poetry-core#why-is-this-required
+---
+ pyproject.toml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 87b1df3..711c52f 100755
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,6 @@
+ [build-system]
+-requires = ["poetry>=1.0"]
+-build-backend = "poetry.masonry.api"
++requires = ["poetry-core>=1.0.0"]
++build-backend = "poetry.core.masonry.api"
+ 
+ [tool.poetry]
+ name = "pyrad"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
index b2d0dc3..bce1e2f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
@@ -6,4 +6,6 @@
 PYPI_PACKAGE = "pyrad"
 SRC_URI[sha256sum] = "057de4b7e89d8da57ba782c1bde45c63ebee720ae2c0b0a69beaff15c47e30d9"
 
+SRC_URI += "file://use-poetry-core.patch"
+
 inherit pypi python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.3.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.3.bb
index fe4f7e4..027d7b9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.3.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=14a49c74a1d91829908ac756c07e6b91"
 DEPENDS += "python3-setuptools-scm-native"
 
-SRC_URI[sha256sum] = "58c7d9ce296cc26ac377061365c2f87cd8e28f46e4fb2c96ee48f9c64e33ac4a"
+SRC_URI[sha256sum] = "1a8c39bbad9abc121d6e126035740ba5f043434abb432f368a3a76596184b3ed"
 
 inherit pypi python_setuptools_build_meta
 PYPI_PACKAGE = "PyScaffold"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb
similarity index 62%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb
index 0056a79..da263fe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb
@@ -2,13 +2,12 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI[md5sum] = "f993739eca645749f18d4ccfd4a0fbf3"
-SRC_URI[sha256sum] = "cac2e42043ab28d43adf33dab493c6a3cf8a99794f824ae8af6d9cd6458b9972"
+SRC_URI[sha256sum] = "d74a814bfda01085db1a8ad90be3cb27daf23a51ab6b03e7e29ec811fa2ae859"
 
 DEPENDS = "systemd"
 RDEPENDS:${PN} += "python3-xml python3-pprint"
 REQUIRED_DISTRO_FEATURES = "systemd"
 
-inherit pypi setuptools3 features_check
+inherit pypi setuptools3 features_check pkgconfig
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
index a751ad6..34dd9c4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
@@ -7,6 +7,8 @@
 
 inherit pypi python_setuptools_build_meta
 
+PEP517_PICOBUILD_OPTS = "--loose-depends"
+
 DEPENDS += "python3-setuptools-scm-native"
 
 RDEPENDS:${PN} += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
index 00e73f5..cf62e1f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
@@ -8,6 +8,8 @@
 
 inherit pypi python_setuptools_build_meta
 
+DEPENDS += "python3-setuptools-scm-native python3-setuptools-declarative-requirements-native"
+
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-pytest \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch
new file mode 100644
index 0000000..e120498
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Submitted [https://github.com/pytest-dev/pytest-html/pull/516]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From d7fbc79d428323c838ce68a51e1e1806c2096a76 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 23 May 2022 13:46:50 +0100
+Subject: [PATCH] pip isn't a build dependency
+
+It's possible, and even desirable, to build modern Python code without pip, for example by using the `build` and `installer` packages.
+---
+ pyproject.toml | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 2683f072..e3f25bf7 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,5 @@
+ [build-system]
+ requires = [
+-  "pip >= 19.3.1",
+   "setuptools >= 42",
+   "setuptools_scm[toml] >= 3.5.0",
+   "setuptools_scm_git_archive >= 1.1",
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
index ce55554..1bbdfb6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
@@ -10,6 +10,10 @@
 
 inherit pypi python_setuptools_build_meta
 
+DEPENDS += "python3-setuptools-scm-git-archive-native"
+
+SRC_URI += "file://no-pip.patch"
+
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-pytest \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
index 35e8b75..e82213c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
 
-SRC_URI[sha256sum] = "5cdb6aeea8ba9109181cf9f149c8a3ae1430ff7e44506a8f866af8a98ca46301"
+SRC_URI[sha256sum] = "fcd2f416f15be295943527b3c8ba16a44ae5a7141939c90c3dc5ce9d167cf2a5"
 
 PYPI_PACKAGE = "pytest-metadata"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
new file mode 100644
index 0000000..b63c4de
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
deleted file mode 100644
index e4762eb..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
-HOMEPAGE = "http://zeromq.org/bindings:python"
-LICENSE = "BSD-3-Clause & LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
-                    file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e"
-DEPENDS = "zeromq"
-
-SRC_URI += "file://club-rpath-out.patch"
-SRC_URI[sha256sum] = "8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c"
-
-inherit pypi pkgconfig python_setuptools_build_meta
-
-RDEPENDS:${PN} += " \
-	${PYTHON_PN}-multiprocessing \
-	${PYTHON_PN}-json \
-"
-
-do_compile:prepend() {
-    echo [global] > ${S}/setup.cfg
-    echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
-    echo have_sys_un_h = True >> ${S}/setup.cfg
-    echo skip_check_zmq = True >> ${S}/setup.cfg
-    echo libzmq_extension = False >> ${S}/setup.cfg
-    echo no_libzmq_extension = True >> ${S}/setup.cfg
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_23.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_23.2.0.bb
new file mode 100644
index 0000000..003f35d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_23.2.0.bb
@@ -0,0 +1,49 @@
+SUMMARY = "PyZMQ: Python bindings for ZMQ"
+DESCRIPTION = "This package contains Python bindings for ZeroMQ. ZMQ is a lightweight and fast messaging implementation."
+HOMEPAGE = "http://zeromq.org/bindings:python"
+LICENSE = "BSD-3-Clause & LGPL-3.0-only"
+LIC_FILES_CHKSUM = "\
+    file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
+    file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e \
+"
+
+DEPENDS = "python3-packaging-native zeromq"
+
+SRC_URI:append = " \
+    file://club-rpath-out.patch \
+    file://run-ptest \
+"
+SRC_URI[sha256sum] = "a51f12a8719aad9dcfb55d456022f16b90abc8dde7d3ca93ce3120b40e3fa169"
+
+inherit pypi pkgconfig python_setuptools_build_meta ptest
+
+PACKAGES =+ "\
+    ${PN}-test \
+"
+
+FILES:${PN}-test += "\
+    ${libdir}/${PYTHON_DIR}/site-packages/*/tests \
+"
+
+RDEPENDS:${PN} += "\
+        ${PYTHON_PN}-json \
+        ${PYTHON_PN}-multiprocessing \
+"
+
+RDEPENDS:${PN}-ptest += "\
+        ${PN}-test \
+"
+
+do_compile:prepend() {
+    echo [global] > ${S}/setup.cfg
+    echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
+    echo have_sys_un_h = True >> ${S}/setup.cfg
+    echo skip_check_zmq = True >> ${S}/setup.cfg
+    echo libzmq_extension = False >> ${S}/setup.cfg
+    echo no_libzmq_extension = True >> ${S}/setup.cfg
+}
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}/tests
+        cp -rf ${S}/zmq/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
index 47a34d4..8ad61ab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
@@ -4,7 +4,7 @@
 
 SRC_URI[sha256sum] = "eccee7dbc4290c5a4e394df8d527f39148e0de0ff22c6b260f48c48f12b3beb4"
 
-inherit pypi python_setuptools_build_meta
+inherit pypi setuptools3
 
 DEPS = "\
     python3-jinja2 \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.3.4.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.3.4.bb
index 66051d4..e0f953c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.3.4.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
 
-SRC_URI[sha256sum] = "2f7a57cf4af15cd543c4394bcbe2b9148db2606a37edba755368836e3a1d053e"
+SRC_URI[sha256sum] = "ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"
 
 inherit pypi setuptools3
 
@@ -12,4 +12,5 @@
     ${PYTHON_PN}-datetime \
     ${PYTHON_PN}-cryptography \
     ${PYTHON_PN}-packaging \
+    ${PYTHON_PN}-asyncio \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.7.24.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.6.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.7.24.bb
index 3067c0d..897aa76 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.6.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.7.24.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "f7b43acb2c46fb2cd506965b2d9cf4c5e64c9c612bac26c1187933c7296bf08c"
+SRC_URI[sha256sum] = "fa8a4bc81b15f49c57ede3fd636786c6619179661acf2430fcc387d75bf28d33"
 
 RDEPENDS:${PN} += " \
 	python3-stringold \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
index 21b664d..ed5018f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
 
-SRC_URI[sha256sum] = "5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17"
+SRC_URI[sha256sum] = "e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"
 
 inherit pypi python_poetry_core update-alternatives
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
index f8cecfd..317f648 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5317094292296f03405f59ae5f6544b6"
 
-SRC_URI[sha256sum] = "9d7bd0334d494b2a4609fe521b2107438cdb21c0e469ffeeb191489883d6fe0d"
+SRC_URI[sha256sum] = "e4045b6c732d9ce75d571c79f5ac2234edd9ae4f5fa9d59b09705082bdca18c7"
 
 PYPI_PACKAGE = "sh"
 
@@ -19,4 +19,5 @@
     ${PYTHON_PN}-terminal \
     ${PYTHON_PN}-threading \
     ${PYTHON_PN}-unixadmin \
+    ${PYTHON_PN}-fcntl \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch
new file mode 100644
index 0000000..b090755
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Submitted [https://github.com/danthedeckie/simpleeval/pull/119]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 08bc99211aec32882d5f1c83896eb5d72b9fb125 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 23 May 2022 11:35:00 +0100
+Subject: [PATCH] pyproject.toml: remove build as a build-dependency
+
+pypa/build is one possible build tool, but not the only build tool.  Forcing build to be present as a build dependency is meaningless: either the user is using build so obviously have build, or are using something else so having build is irrelevant.
+---
+ pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 052a55a..416482b 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["setuptools>=30.3.0", "wheel", "build"]
++requires = ["setuptools>=30.3.0", "wheel"]
+ build-backend = "setuptools.build_meta"
+ 
+ [tool.black]
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
index 343e5c0..c9cf33d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
@@ -10,6 +10,7 @@
 BBCLASSEXTEND = "native nativesdk"
 
 SRC_URI += " \
+	file://no-build.patch \
 	file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb
index d762611..f71d4da 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb
@@ -9,7 +9,7 @@
 
 PYPI_PACKAGE = "python-socketio"
 
-SRC_URI[sha256sum] = "f1f2eabdea500dbcb384902418cacedd98b7fe4d0fed818415ddf8af10e428fa"
+SRC_URI[sha256sum] = "5011a0cd2545c954d7df09eef7489ec424c93b001cc146599cd72f1dd20f0d46"
 
 PACKAGECONFIG ?= "asyncio_client client"
 PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb
index 8d345e6..46c6d83 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_3.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[sha256sum] = "f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335"
+SRC_URI[sha256sum] = "f82cc99a1ff552310d19c379827c2c64dd9f85a38bcd5559db2470161867b786"
 
 DEPENDS += "${PYTHON_PN}-pbr-native"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
index fdd8a76..d677075 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
@@ -12,7 +12,12 @@
 PYPI_PACKAGE = "supervisor"
 inherit pypi systemd setuptools3
 RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-meld3 \
+    python3-meld3 \
+    python3-io \
+    python3-xmlrpc \
+    python3-resource \
+    python3-setuptools \
+    python3-smtpd \
 "
 
 SRC_URI += "file://supervisord.conf \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.4.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.4.0.bb
index 4c3ef82..15cf80e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ujson_5.4.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e0039a83d8a99726b5418f0b03302d0a"
 
-SRC_URI[sha256sum] = "ab938777b3ac0372231ee654a7f6a13787e587b1ca268d8aa7e6fb6846e477d0"
+SRC_URI[sha256sum] = "6b953e09441e307504130755e5bd6b15850178d591f66292bba4608c4f7f9b00"
 
 inherit pypi ptest setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.30.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.30.0.bb
index c9820eb..a35c05e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.29.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_5.30.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1dc2732bdc5e50382737979791cbb3b7"
 
-SRC_URI[sha256sum] = "f37b01f3dc32010b176cef01c2107bc25b7cf94b63c3269d4ec52d7e5ded9a36"
+SRC_URI[sha256sum] = "e141d90408fd9fe5156e2ef22884a160bef8bfd55e6cecd51181af3162ea84dd"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.2.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.1.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.2.0.bb
index 74796d8..c9e3b0d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.2.0.bb
@@ -12,7 +12,7 @@
 
 PYPI_PACKAGE = "Werkzeug"
 
-SRC_URI[sha256sum] = "1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6"
+SRC_URI[sha256sum] = "fe8bcdcef40275ed915fc734c2527a39d705b57a716d4f09e790296abbd16a7f"
 
 inherit pypi setuptools3
 
@@ -36,4 +36,5 @@
     ${PYTHON_PN}-unixadmin \
     ${PYTHON_PN}-misc \
     ${PYTHON_PN}-profile \
+    ${PYTHON_PN}-markupsafe \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.11.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.0.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.11.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.0.1.bb
index 7837bc8..68148b7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_1.11.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.0.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=47489cb18c469474afeb259ed1d4832f"
 
-SRC_URI[sha256sum] = "28a135028f7ab1e0c934fc0c6717a66b2dc5f166d123dfe6ce61afc671ad113f"
+SRC_URI[sha256sum] = "1460ba451b4084d4edd031b564f460f5c11b14b20764ce1f64691f8c69e1194d"
 
 PYPI_PACKAGE = "xmlschema"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.4.0.bb b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.4.0.bb
rename to meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb
index e3b55a7..55037d1 100644
--- a/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb
@@ -4,8 +4,13 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f9273424c73af966635d66eb53487e14"
 
-SRC_URI[sha256sum] = "a648ad761b8ea27370cb5915350122cd807b820d2193ed5c9cc28f163df637f4"
+SRC_URI[sha256sum] = "ae8e9cc2660da04bf41fa1a0eef7e300bb5e4a5869adfb1a6d8551632b559b2b"
 
 inherit pypi setuptools3
 
 BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-fcntl \
+        ${PYTHON_PN}-logging \
+"
diff --git a/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb b/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.2.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb
rename to meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.2.bb
index 4299058..44a3d00 100644
--- a/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-networking/python/python3-ldap_3.4.2.bb
@@ -13,7 +13,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12"
+SRC_URI[sha256sum] = "b16470a0983aaf09a00ffb8f40b69a2446f3d0be639a229256bce381fcb268f7"
 
 do_configure:prepend() {
     sed -i -e 's:^library_dirs =.*::' \
diff --git a/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
index 98cd251..8fe879b 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
@@ -12,3 +12,12 @@
 FILES:${PN} += "${datadir}/metainfo"
 
 RDEPENDS:${PN} += "python3-pygobject python3-dbus"
+
+do_install:append() {
+    #
+    # Until catfish upstream figures out a way to overcome this buildpath issue, we need to do such adjustments here.
+    #
+    sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${D}${datadir}/applications/org.xfce.Catfish.desktop
+    sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/catfish_lib/catfishconfig.py
+    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/catfish_lib/__pycache__/catfishconfig.*.pyc
+}
diff --git a/meta-raspberrypi/.github/CODE_OF_CONDUCT.md b/meta-raspberrypi/.github/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..f3e3d70
--- /dev/null
+++ b/meta-raspberrypi/.github/CODE_OF_CONDUCT.md
@@ -0,0 +1,7 @@
+## Code of Conduct
+
+This project has adopted the [Contributor
+Covenant](https://www.contributor-covenant.org/). For details, see the full
+text [here](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
+For more information, additional questions or comments contact the project's
+maintainers.
diff --git a/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml b/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml
index 45a7443..556317d 100644
--- a/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml
+++ b/meta-raspberrypi/.github/workflows/cancel-redundant-workflows.yml
@@ -15,9 +15,9 @@
 
 jobs:
   cancel-redundant-workflows:
-    runs-on: [self-hosted, Linux]
+    runs-on: ubuntu-latest
     steps:
-    - uses: styfle/cancel-workflow-action@0.9.1
+    - uses: styfle/cancel-workflow-action@0.10.0
       with:
         all_but_latest: true
         workflow_id: ${{ github.event.workflow.id }}
diff --git a/meta-raspberrypi/.github/workflows/compliance.yml b/meta-raspberrypi/.github/workflows/compliance.yml
index 35e4731..cfba185 100644
--- a/meta-raspberrypi/.github/workflows/compliance.yml
+++ b/meta-raspberrypi/.github/workflows/compliance.yml
@@ -10,7 +10,7 @@
 jobs:
   dco:
     name: DCO
-    runs-on: [self-hosted, Linux]
+    runs-on: ubuntu-latest
     steps:
       - name: Checkout the code
         uses: actions/checkout@v2
@@ -36,7 +36,7 @@
         if: always()
   reuse:
     name: reuse
-    runs-on: [self-hosted, Linux]
+    runs-on: ubuntu-latest
     steps:
       - name: Checkout the code
         uses: actions/checkout@v2
diff --git a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh
index a98fa2a..d2c6dc0 100755
--- a/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh
+++ b/meta-raspberrypi/.github/workflows/docker-images/yocto-builder/entrypoint-build.sh
@@ -46,6 +46,7 @@
 VIRTUAL-RUNTIME_init_manager = "systemd"
 DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
 VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
+LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
 EOCONF
 
 # Add the BSP layer
diff --git a/meta-raspberrypi/.github/workflows/mirror.yml b/meta-raspberrypi/.github/workflows/mirror.yml
index 11bb185..d9e3cde 100644
--- a/meta-raspberrypi/.github/workflows/mirror.yml
+++ b/meta-raspberrypi/.github/workflows/mirror.yml
@@ -12,11 +12,11 @@
 jobs:
   yocto-mirror:
     name: Yocto Git Mirror
-    runs-on: [self-hosted, Linux]
+    runs-on: ubuntu-latest
     steps:
-      - uses: agherzan/git-mirror-me-action@v1.0.0
+      - uses: agherzan/git-mirror-me-action@11f54c7186724daafbe5303b5075954f1a19a63e
         env:
-          SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }}
-          SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }}
-        with:
-          destination-repository: "git@push.yoctoproject.org:meta-raspberrypi"
+          GMM_SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }}
+          GMM_SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }}
+          GMM_DST_REPO: "ssh://git@push.yoctoproject.org/meta-raspberrypi"
+          GMM_DEBUG: "1"
diff --git a/meta-raspberrypi/.github/workflows/yocto-builds.yml b/meta-raspberrypi/.github/workflows/yocto-builds.yml
index 3dba5e9..824745c 100644
--- a/meta-raspberrypi/.github/workflows/yocto-builds.yml
+++ b/meta-raspberrypi/.github/workflows/yocto-builds.yml
@@ -2,6 +2,8 @@
 #
 # SPDX-License-Identifier: MIT
 
+---
+
 name: Builds
 
 on:
@@ -30,18 +32,35 @@
     runs-on: [self-hosted, Linux]
     name: ${{ matrix.machine }}/${{ matrix.image }}/poky/systemd
     env:
-        DL_DIR: /var/lib/ci/yocto/downloads
-        SSTATE_DIR: /var/lib/ci/yocto/sstate
+      DL_DIR: /var/lib/ci/yocto/downloads
+      SSTATE_DIR: /var/lib/ci/yocto/sstate
     steps:
       - name: Checkout the code
         uses: actions/checkout@v2
         with:
           fetch-depth: 0
+      - name: Define Yocto build files
+        id: changed-files-specific
+        uses: tj-actions/changed-files@v24
+        with:
+          files: |
+            .github/actions/**
+            .github/workflows/docker-images/yocto-builder/**
+            .github/workflows/docker-images/*.sh
+            .github/workflows/yocto-builds.yml
+            classes/**'
+            conf/**
+            dynamic-layers/**
+            files/**
+            lib/**
+            recipes-**
+            wic/**
       - name: Build a temporary yocto-builder image
         uses: ./.github/actions/docker-build
         with:
           docker_image: yocto-builder
           id: ${{ github.event.number }}
+        if: steps.changed-files-specific.outputs.any_changed == 'true'
       - name: Build the image
         run: |
           docker run --rm \
@@ -56,6 +75,7 @@
             --env "SSTATE_DIR=$SSTATE_DIR" \
             "yocto-builder-${{ github.event.number }}" \
             /entrypoint-build.sh
+        if: steps.changed-files-specific.outputs.any_changed == 'true'
       - name: Cleanup temporary docker image
         uses: ./.github/actions/docker-clean-image
         with:
diff --git a/meta-raspberrypi/.github/workflows/yocto-layer.yml b/meta-raspberrypi/.github/workflows/yocto-layer.yml
index 3d5baf8..6d92366 100644
--- a/meta-raspberrypi/.github/workflows/yocto-layer.yml
+++ b/meta-raspberrypi/.github/workflows/yocto-layer.yml
@@ -2,6 +2,8 @@
 #
 # SPDX-License-Identifier: MIT
 
+---
+
 name: Yocto Compatible
 
 on:
@@ -12,26 +14,44 @@
     name: Validate with yocto-check-layer
     runs-on: [self-hosted, Linux]
     steps:
-    - name: Checkout the code
-      uses: actions/checkout@v2
-      with:
-        fetch-depth: 0
-    - name: Build a temporary yocto-builder image
-      uses: ./.github/actions/docker-build
-      with:
-        docker_image: yocto-builder
-        id: ${{ github.event.number }}
-    - name: Run yocto-check-layer
-      run: |
-        docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
-          --env "BASE_REF=$GITHUB_BASE_REF" \
-          "yocto-builder-${{ github.event.number }}" \
-          /entrypoint-yocto-check-layer.sh
-    - name: Cleanup temporary docker image
-      uses: ./.github/actions/docker-clean-image
-      with:
-        docker_image: yocto-builder-${{ github.event.number }}
-      if: always()
-    - name: Cleanup dangling docker images
-      uses: ./.github/actions/docker-clean-dangling
-      if: always()
+      - name: Checkout the code
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Define Yocto build files
+        id: changed-files-specific
+        uses: tj-actions/changed-files@v24
+        with:
+          files: |
+            .github/actions/**
+            .github/workflows/docker-images/yocto-builder/**
+            .github/workflows/docker-images/*.sh
+            .github/workflows/yocto-builds.yml
+            classes/**'
+            conf/**
+            dynamic-layers/**
+            files/**
+            lib/**
+            recipes-**
+            wic/**
+      - name: Build a temporary yocto-builder image
+        uses: ./.github/actions/docker-build
+        with:
+          docker_image: yocto-builder
+          id: ${{ github.event.number }}
+        if: steps.changed-files-specific.outputs.any_changed == 'true'
+      - name: Run yocto-check-layer
+        run: |
+          docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
+            --env "BASE_REF=$GITHUB_BASE_REF" \
+            "yocto-builder-${{ github.event.number }}" \
+            /entrypoint-yocto-check-layer.sh
+        if: steps.changed-files-specific.outputs.any_changed == 'true'
+      - name: Cleanup temporary docker image
+        uses: ./.github/actions/docker-clean-image
+        with:
+          docker_image: yocto-builder-${{ github.event.number }}
+        if: always()
+      - name: Cleanup dangling docker images
+        uses: ./.github/actions/docker-clean-dangling
+        if: always()
diff --git a/meta-raspberrypi/README.md b/meta-raspberrypi/README.md
index 712b9a2..f00d151 100644
--- a/meta-raspberrypi/README.md
+++ b/meta-raspberrypi/README.md
@@ -5,9 +5,22 @@
 [![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest)
 [![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org)
 
-|                           |                                        |
-|:-:                        | :-:                                    |
-| Build server sponsored by | [balena.io](https://www.balena.io/) |
+<table border="0" rules="none">
+<tr border="0">
+<td width="140" height="100" align="center">
+  <br />
+  <a href="https://www.yoctoproject.org/ecosystem/branding/">
+    <img alt="Yocto Project Layer Compatible" src="img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png">
+  </a>
+</td>
+<td width="150" height="100" align="center">
+  Sponsored by:<br />
+  <a href="https://balena.io">
+    <img alt="balena.io" src="img/balena.png">
+  </a>
+</td>
+</tr>
+</table>
 
 ## Quick links
 
@@ -31,6 +44,12 @@
 * Yoe Disto (Video and Camera Products).
 * Yocto/Poky (main focus of testing).
 
+## Yocto Project Compatible Layer
+
+This layer is officially approved as part of the `Yocto Project Compatible
+Layers Program`. You can find details of that on the official Yocto Project
+[website](https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-raspberrypi).
+
 ## Dependencies
 
 This layer depends on:
diff --git a/meta-raspberrypi/docs/extra-build-config.md b/meta-raspberrypi/docs/extra-build-config.md
index 9f14996..252648a 100644
--- a/meta-raspberrypi/docs/extra-build-config.md
+++ b/meta-raspberrypi/docs/extra-build-config.md
@@ -398,20 +398,16 @@
 
 Support for WM8960 based sound cards such as the WM8960 Hi-Fi Sound Card HAT for Raspberry Pi from Waveshare, and ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio, can be enabled in `local.conf`
 
-    ```conf
     MACHINE_FEATURES += "wm8960"
-    ```
 
 You may need to adjust volume and toggle switches that are off by default
 
-    ```bash
     amixer -c1 sset 'Headphone',0 80%,80%
     amixer -c1 sset 'Speaker',0 80%,80%
     amixer -c1 sset 'Left Input Mixer Boost' toggle
     amixer -c1 sset 'Left Output Mixer PCM' toggle
     amixer -c1 sset 'Right Input Mixer Boost' toggle
     amixer -c1 sset 'Right Output Mixer PCM' toggle
-    ```
 
 Audio capture on ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio is very noisy.
 
diff --git a/meta-raspberrypi/docs/index.rst b/meta-raspberrypi/docs/index.rst
index 0d7ee07..3f8a088 100644
--- a/meta-raspberrypi/docs/index.rst
+++ b/meta-raspberrypi/docs/index.rst
@@ -15,6 +15,7 @@
    layer-contents
    extra-build-config
    extra-apps
+   ipcompliance
    contributing
 
 Indices and tables
diff --git a/meta-raspberrypi/docs/ipcompliance.md b/meta-raspberrypi/docs/ipcompliance.md
new file mode 100644
index 0000000..01540a8
--- /dev/null
+++ b/meta-raspberrypi/docs/ipcompliance.md
@@ -0,0 +1,23 @@
+# IP Compliance
+
+## linux-firmware-rpidistro
+
+By default, some of the machine configurations recommend packages for the
+WiFi/BT firmware, provided by
+[linux-firmware-rpidistro](https://github.com/RPi-Distro/firmware-nonfree).
+This package includes some firmware blobs under the `Synaptics` license which
+could carry a legal risk: one of the clauses can be (at least theoretically)
+used as a `killswitch`. This was
+[reported](https://github.com/RPi-Distro/firmware-nonfree/issues/29) in the
+upstream repository.
+
+You can find the full license text body in the content of the above mentioned
+package.
+
+Due to the above, the build system will only allow this recipe to be built if
+the user acknowledges this risk by adding the following configuration:
+
+    LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
+
+You can provide this configuration as part of your `local.conf`, `distro.conf`,
+etc.
diff --git a/meta-raspberrypi/img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png b/meta-raspberrypi/img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png
new file mode 100644
index 0000000..7d009bb
--- /dev/null
+++ b/meta-raspberrypi/img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png
Binary files differ
diff --git a/meta-raspberrypi/img/balena.png b/meta-raspberrypi/img/balena.png
index a872ce9..324c35a 100644
--- a/meta-raspberrypi/img/balena.png
+++ b/meta-raspberrypi/img/balena.png
Binary files differ
diff --git a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc
index dc372ab..c88e7e4 100644
--- a/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc
+++ b/meta-raspberrypi/recipes-bsp/common/raspberrypi-tools.inc
@@ -1,5 +1,5 @@
-RPITOOLS_DATE ?= "20211101"
-SRCREV ?= "13474ee775d0c5ec8a7da4fb0a9fa84187abfc87"
+RPITOOLS_DATE ?= "20220711"
+SRCREV ?= "439b6198a9b340de5998dd14a26a0d9d38a6bcac"
 RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master"
 RPITOOLS_S ?= "${WORKDIR}/git"
 
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.8.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.10.bb
similarity index 89%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.8.bb
rename to meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.10.bb
index 1a609f5..8ff3073 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.8.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-circuitpython-register_1.9.10.bb
@@ -4,9 +4,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
 
 SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main;protocol=https"
-
+SRCREV = "d1e8ac7ad9dcd65ab83749db3e5c96ffee80ebb7"
 S = "${WORKDIR}/git"
-SRCREV = "49ab415d6b601c99979262f9e91c21dcb3a927a7"
 
 DEPENDS += "python3-setuptools-scm-native"
 
diff --git a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.22.1.bb b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.27.0.bb
similarity index 89%
rename from meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.22.1.bb
rename to meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.27.0.bb
index e19b58e..45dc49d 100644
--- a/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.22.1.bb
+++ b/meta-raspberrypi/recipes-devtools/python/python3-adafruit-platformdetect_3.27.0.bb
@@ -4,8 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c"
 
 SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main;protocol=https"
-SRCREV = "7af3af87037cf1e6697471a3a83c56a0f852b959"
-
+SRCREV = "e1460098eeca5ea573f92814691bb378e15530d9"
 S = "${WORKDIR}/git"
 
 inherit setuptools3
diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-setup.py-Use-setuptools-instead-of-distutils.patch
deleted file mode 100644
index 33480b1..0000000
--- a/meta-raspberrypi/recipes-devtools/python/rpi-gpio/0001-setup.py-Use-setuptools-instead-of-distutils.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From df5657d772accb275a12c1b1690befa8d87305c8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 Mar 2022 09:53:41 -0800
-Subject: [PATCH] setup.py: Use setuptools instead of distutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 2b600ca..0fa0807 100644
---- a/setup.py
-+++ b/setup.py
-@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
- """
- 
--from distutils.core import setup, Extension
-+from setuptools import setup, Extension
- 
- classifiers = ['Development Status :: 5 - Production/Stable',
-                'Operating System :: POSIX :: Linux',
--- 
-2.35.1
-
diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb
deleted file mode 100644
index 039d176..0000000
--- a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "A module to control Raspberry Pi GPIO channels"
-HOMEPAGE = "https://sourceforge.net/projects/raspberry-gpio-python/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7"
-
-PYPI_PACKAGE = "RPi.GPIO"
-
-inherit pypi setuptools3
-
-SRC_URI += "file://0001-Remove-nested-functions.patch \
-            file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
-           "
-SRC_URI[sha256sum] = "7424bc6c205466764f30f666c18187a0824077daf20b295c42f08aea2cb87d3f"
-
-COMPATIBLE_MACHINE = "^rpi$"
-
-# ignore issues with -fno-common from gcc-10 until it's fixed in upstream:
-# https://sourceforge.net/p/raspberry-gpio-python/tickets/187/
-CFLAGS += "-fcommon"
diff --git a/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.1.bb b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.1.bb
new file mode 100644
index 0000000..e7a9950
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.7.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A module to control Raspberry Pi GPIO channels"
+HOMEPAGE = "https://sourceforge.net/projects/raspberry-gpio-python/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=a2294b0b1daabc30dfb5b3de73b2e00a"
+
+PYPI_PACKAGE = "RPi.GPIO"
+
+inherit pypi setuptools3
+
+SRC_URI += "file://0001-Remove-nested-functions.patch \
+           "
+SRC_URI[sha256sum] = "cd61c4b03c37b62bba4a5acfea9862749c33c618e0295e7e90aa4713fb373b70"
+
+COMPATIBLE_MACHINE = "^rpi$"
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
index d8265d4..9d37f47 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
+++ b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
@@ -13,7 +13,7 @@
 
 SRCBRANCH = "master"
 SRCFORK = "raspberrypi"
-SRCREV = "c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e"
+SRCREV = "54fd97ae4066a10b6b02089bc769ceed328737e0"
 
 # Use the date of the above commit as the package version. Update this when
 # SRCREV is changed.
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch
new file mode 100644
index 0000000..4de5229
--- /dev/null
+++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro/31ad68831357d2019624004f1f0846475671088f.patch
@@ -0,0 +1,898 @@
+From 31ad68831357d2019624004f1f0846475671088f Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Thu, 5 May 2022 13:17:21 +0100
+Subject: [PATCH] Braktooth fix for CYW43455
+
+This updated Bluetooth firmware contains Braktooth fixes for
+CYW43455, addressing the following vulnerabilities:
+
+  CVE-2021-34145
+  CVE-2021-34146
+  CVE-2021-34147
+  CVE-2021-34148
+
+Original firmware name: BCM4345C0_003.001.025.0187.0370.hcd
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
+Upstream-Status: Backport
+---
+ broadcom/BCM4345C0.hcd | Bin 57622 -> 63894 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+diff --git a/broadcom/BCM4345C0.hcd b/broadcom/BCM4345C0.hcd
+index 82c3647398b67474110fffb6f05986be7c1e3bc8..d4d7e47ad8115bf34cba5df237afaf4bf598e74b 100644
+GIT binary patch
+delta 30611
+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
+
+delta 24701
+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
+E52KeC5&!@I
+
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
index b26e80e..c0180eb 100644
--- a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
@@ -23,7 +23,10 @@
 # so that the license files will be copied from fetched source
 NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro"
 
-SRC_URI = "git://github.com/RPi-Distro/bluez-firmware;branch=master;protocol=https"
+SRC_URI = " \
+    git://github.com/RPi-Distro/bluez-firmware;branch=master;protocol=https \
+    file://31ad68831357d2019624004f1f0846475671088f.patch \
+"
 SRCREV = "e7fd166981ab4bb9a36c2d1500205a078a35714d"
 PV = "1.2-4+rpt8"
 
diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
index 81ccc2c..d39340a 100644
--- a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
+++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
@@ -5,60 +5,44 @@
 HOMEPAGE = "https://github.com/RPi-Distro/firmware-nonfree"
 SECTION = "kernel"
 
-# In maintained upstream linux-firmware:
-# * brcmfmac43430-sdio falls under LICENSE.cypress
-# * brcmfmac43455-sdio falls under LICENSE.broadcom_bcm43xx
-# * brcmfmac43456-sdio falls under LICENSE.broadcom_bcm43xx
-#
-# It is likely[^1] that both of these should be under LICENSE.cypress.
-# Further, at this time the text of LICENSE.broadcom_bcm43xx is the same
-# in linux-firmware and RPi-Distro/firmware-nonfree, but this may
-# change.
-#
-# Rather than make assumptions about what's supposed to be what, we'll
-# use the license implied by the source of these files, named to avoid
-# conflicts with linux-firmware.
-#
-# [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1
-LICENSE = "\
-    Firmware-broadcom_bcm43xx-rpidistro \
-"
+LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro"
 LIC_FILES_CHKSUM = "\
-    file://debian/config/brcm80211/LICENSE;md5=8cba1397cda6386db37210439a0da3eb \
+    file://debian/config/brcm80211/copyright;md5=b0630b02d90e3da72206c909b6aecc8c \
 "
-
-# These are not common licenses, set NO_GENERIC_LICENSE for them
-# so that the license files will be copied from fetched source
-NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "debian/config/brcm80211/LICENSE"
+# Where these are no common licenses, set NO_GENERIC_LICENSE so that the
+# license files will be copied from the fetched source.
+NO_GENERIC_LICENSE[binary-redist-Cypress-rpidistro] = "debian/config/brcm80211/copyright"
+NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/config/brcm80211/copyright"
+LICENSE_FLAGS = "synaptics-killswitch"
 
 SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bullseye;protocol=https"
-
-SRCREV = "99d5c588e95ec9c9b86d7e88d3cf85b4f729d2bc"
-PV = "20210315-3+rpt4"
-
+SRCREV = "541e5a05d152e7e6f0d9be45622e4a3741e51c02"
+PV = "20210315-3+rpt7"
 S = "${WORKDIR}/git"
 
 inherit allarch
 
-CLEANBROKEN = "1"
-
-do_compile() {
-    :
-}
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
 
 do_install() {
     install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress
 
-    cp debian/config/brcm80211/LICENSE ${D}${nonarch_base_libdir}/firmware/LICENSE.broadcom_bcm43xx-rpidistro
+    cp debian/config/brcm80211/copyright ${D}${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro
 
-    # Replace outdated linux-firmware files with updated ones from
-    # raspbian firmware-nonfree. Raspbian adds blobs and nvram
-    # definitions that are also necessary so copy those too.
-    for fw in brcmfmac43430-sdio brcmfmac43436-sdio brcmfmac43436s-sdio brcmfmac43455-sdio brcmfmac43456-sdio ; do
+    for fw in \
+            brcmfmac43430-sdio \
+            brcmfmac43436-sdio \
+            brcmfmac43436s-sdio \
+            brcmfmac43455-sdio \
+            brcmfmac43456-sdio; do
         cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
     done
+
     cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/
+
     rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt
+
     # add compat links. Fixes errors like
     # brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-compute-module.txt failed with error -2
     ln -s brcmfmac43455-sdio.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
@@ -67,77 +51,52 @@
 }
 
 PACKAGES = "\
-    ${PN}-broadcom-license \
     ${PN}-bcm43430 \
-    ${PN}-bcm43455 \
-    ${PN}-bcm43456 \
     ${PN}-bcm43436 \
     ${PN}-bcm43436s \
+    ${PN}-bcm43455 \
+    ${PN}-bcm43456 \
+    ${PN}-license \
 "
 
-LICENSE:${PN}-bcm43430 = "Firmware-broadcom_bcm43xx-rpidistro"
-LICENSE:${PN}-bcm43436 = "Firmware-broadcom_bcm43xx-rpidistro"
-LICENSE:${PN}-bcm43436s = "Firmware-broadcom_bcm43xx-rpidistro"
-LICENSE:${PN}-bcm43455 = "Firmware-broadcom_bcm43xx-rpidistro"
-LICENSE:${PN}-bcm43456 = "Firmware-broadcom_bcm43xx-rpidistro"
-LICENSE:${PN}-broadcom-license = "Firmware-broadcom_bcm43xx-rpidistro"
-FILES:${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENSE.broadcom_bcm43xx-rpidistro"
-FILES:${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430* ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob"
+LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro"
+LICENSE:${PN}-bcm43436 = "Synaptics-rpidistro"
+LICENSE:${PN}-bcm43436s = "Synaptics-rpidistro"
+LICENSE:${PN}-bcm43455 = "binary-redist-Cypress-rpidistro"
+LICENSE:${PN}-bcm43456 = "Synaptics-rpidistro"
+LICENSE:${PN}-license = "GPL-2.0-only"
+
+FILES:${PN}-bcm43430 = " \
+    ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430* \
+    ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin \
+    ${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob \
+"
 FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*"
 FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*"
-FILES:${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio*"
+FILES:${PN}-bcm43455 = " \
+    ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455* \
+    ${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio* \
+"
 FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*"
-RDEPENDS:${PN}-bcm43430 += "${PN}-broadcom-license"
-RDEPENDS:${PN}-bcm43436 += "${PN}-broadcom-license"
-RDEPENDS:${PN}-bcm43436s += "${PN}-broadcom-license"
-RDEPENDS:${PN}-bcm43455 += "${PN}-broadcom-license"
-RDEPENDS:${PN}-bcm43456 += "${PN}-broadcom-license"
-RCONFLICTS:${PN}-bcm43430 = "\
-    linux-firmware-bcm43430 \
-    linux-firmware-raspbian-bcm43430 \
-"
+FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro"
 
-RREPLACES:${PN}-bcm43430 = "\
-    linux-firmware-bcm43430 \
-    linux-firmware-raspbian-bcm43430 \
-"
+RDEPENDS:${PN}-bcm43430 += "${PN}-license"
+RDEPENDS:${PN}-bcm43436 += "${PN}-license"
+RDEPENDS:${PN}-bcm43436s += "${PN}-license"
+RDEPENDS:${PN}-bcm43455 += "${PN}-license"
+RDEPENDS:${PN}-bcm43456 += "${PN}-license"
 
-RCONFLICTS:${PN}-bcm43436 = "\
-    linux-firmware-bcm43436 \
-    linux-firmware-raspbian-bcm43436 \
-"
+RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430"
+RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436"
+RCONFLICTS:${PN}-bcm43436s = "linux-firmware-bcm43436s"
+RCONFLICTS:${PN}-bcm43455 = "linux-firmware-bcm43455"
+RCONFLICTS:${PN}-bcm43456 = "linux-firmware-bcm43456"
 
-RREPLACES:${PN}-bcm43436 = "\
-    linux-firmware-bcm43436 \
-    linux-firmware-raspbian-bcm43436 \
-"
-
-RCONFLICTS:${PN}-bcm43436s = "\
-    linux-firmware-bcm43436s \
-    linux-firmware-raspbian-bcm43436s \
-"
-
-RREPLACES:${PN}-bcm43436s = "\
-    linux-firmware-bcm43436s \
-    linux-firmware-raspbian-bcm43436s \
-"
-
-RCONFLICTS:${PN}-bcm43455 = "\
-    linux-firmware-bcm43455 \
-    linux-firmware-raspbian-bcm43455 \
-"
-RREPLACES:${PN}-bcm43455 = "\
-    linux-firmware-bcm43455 \
-    linux-firmware-raspbian-bcm43455 \
-"
-RCONFLICTS:${PN}-bcm43456 = "\
-    linux-firmware-bcm43456 \
-    linux-firmware-raspbian-bcm43456 \
-"
-RREPLACES:${PN}-bcm43456 = "\
-    linux-firmware-bcm43456 \
-    linux-firmware-raspbian-bcm43456 \
-"
+RREPLACES:${PN}-bcm43430 = "linux-firmware-bcm43430"
+RREPLACES:${PN}-bcm43436 = "linux-firmware-bcm43436"
+RREPLACES:${PN}-bcm43436s = "linux-firmware-bcm43436s"
+RREPLACES:${PN}-bcm43455 = "linux-firmware-bcm43455"
+RREPLACES:${PN}-bcm43456 = "linux-firmware-bcm43456"
 
 # Firmware files are generally not run on the CPU, so they can be
 # allarch despite being architecture specific
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
index 8dade0b..3311a84 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.10.bb
@@ -2,8 +2,8 @@
 LINUX_RPI_BRANCH ?= "rpi-5.10.y"
 LINUX_RPI_KMETA_BRANCH ?= "yocto-5.10"
 
-SRCREV_machine = "89c0af71c9cf157a865afb526e9ebc21aadd531b"
-SRCREV_meta = "e1979ceb171bc91ef2cb71cfcde548a101dab687"
+SRCREV_machine = "427c6bd8835e197693e9b4aedbe45c2c3c84cdce"
+SRCREV_meta = "96ea2660bb97e15f48f4885b9e436f24c3606bd9"
 
 KMETA = "kernel-meta"
 
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb
index 63a263e..db93537 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.15.bb
@@ -1,9 +1,9 @@
-LINUX_VERSION ?= "5.15.38"
+LINUX_VERSION ?= "5.15.56"
 LINUX_RPI_BRANCH ?= "rpi-5.15.y"
 LINUX_RPI_KMETA_BRANCH ?= "yocto-5.15"
 
-SRCREV_machine = "d5b5cbcd17d97f35292f960bca82c0915a03e594"
-SRCREV_meta = "37891dc371e83a3451781dd81a8a85cccd60084b"
+SRCREV_machine = "a90998a3e549911234f9f707050858b98b71360f"
+SRCREV_meta = "3b1dc2f1fcd869f97901402759b859035984aa7f"
 
 KMETA = "kernel-meta"
 
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
index c15b40b..b43a41f 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
@@ -9,9 +9,9 @@
 
 DEPENDS = "alsa-lib libpcre virtual/egl boost freetype dbus openssl libssh virtual/libomxil coreutils-native curl-native userland"
 
-PR = "r5"
+PR = "r6"
 
-SRCREV_default = "f543a0d0e707ab56415f17b0ca6d397394ee8b63"
+SRCREV_default = "1f1d0ccd65d3a1caa86dc79d2863a8f067c8e3f8"
 
 # omxplayer builds its own copy of ffmpeg from source instead of using the
 # system's ffmpeg library. This isn't ideal but it's ok for now. We do however
@@ -83,6 +83,8 @@
 export DIST = "${D}"
 
 do_compile() {
+    bbwarn "omxplayer is being deprecated and resources are directed at improving vlc."
+
     # Needed for compiler test in ffmpeg's configure
     mkdir -p tmp
 
diff --git a/meta-security/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_0.11.2.bb b/meta-security/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_0.11.2.bb
index 96e17b7..1f55267 100644
--- a/meta-security/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_0.11.2.bb
+++ b/meta-security/dynamic-layers/meta-python/recipes-security/fail2ban/python3-fail2ban_0.11.2.bb
@@ -17,6 +17,8 @@
         file://run-ptest \
 "
 
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
 inherit update-rc.d ptest setuptools3_legacy
 
 S = "${WORKDIR}/git"
diff --git a/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.6.2.bb b/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.7.2.bb
similarity index 95%
rename from meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.6.2.bb
rename to meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.7.2.bb
index 8b6af5e..c1e3108 100644
--- a/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.6.2.bb
+++ b/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.7.2.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c0acfa7a8a03b718abee9135bc1a1c55"
 
 PYPI_PACKAGE = "privacyIDEA"
-SRC_URI[sha256sum] = "4441282d086331dac0aee336286de8262d9ac8eb11e14b7f9aa69f865caebe17"
+SRC_URI[sha256sum] = "17cbfdf0212eec94ffb10b3046093cf25af71b41413b6361668685333c5a35a7"
 
 inherit pypi setuptools3
 
diff --git a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.1.bb b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.3.bb
similarity index 97%
rename from meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.1.bb
rename to meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.3.bb
index 71f14a0..95065b3 100644
--- a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.1.bb
+++ b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.3.bb
@@ -26,7 +26,9 @@
            file://musl_fixup.patch \
            "
 
-SRC_URI[sha256sum] = "8eebd541a640aec95ed4b2da89713f0cbe8e4edf96895fbb972c0b9d570635c3"
+SRC_URI[sha256sum] = "ab3c3fe2a69cc7b2557715a11000aaf358c0afd65f2828ca47a2d3b2651d871b"
+
+UPSTREAM_CHECK_URI = "https://github.com/SSSD/${BPN}/releases"
 
 inherit autotools pkgconfig gettext python3-dir features_check systemd
 
diff --git a/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm.bb b/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm.bb
index 7ba5004..a1d4d44 100644
--- a/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm.bb
+++ b/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm.bb
@@ -14,6 +14,7 @@
     pcr-extend \
     tpm-quote-tools \
     swtpm \
+    libhoth \
     openssl-tpm-engine \
     ${X86_TPM_MODULES} \
     "
diff --git a/meta-security/meta-tpm/recipes-tpm/hoth/libhoth_git.bb b/meta-security/meta-tpm/recipes-tpm/hoth/libhoth_git.bb
new file mode 100644
index 0000000..a3ebce7
--- /dev/null
+++ b/meta-security/meta-tpm/recipes-tpm/hoth/libhoth_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Google Hoth USB library"
+DESCRIPTION = "Libraries and example programs for interacting with a \
+               hoth-class root of trust."
+HOMEPAGE = "https://github.com/google/libhoth"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/google/libhoth;protocol=https;branch=main"
+SRCREV = "1622e8a040d21dd564fdc1cb4df5eda01688c197"
+
+DEPENDS += "libusb1"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig meson
+
diff --git a/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.9.3.bb b/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.9.5.bb
similarity index 88%
rename from meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.9.3.bb
rename to meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.9.5.bb
index c03c44c..cf80064 100644
--- a/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.9.3.bb
+++ b/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.9.5.bb
@@ -2,7 +2,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e73f0786a936da3814896df06ad225a9"
 
-SRCREV = "3f8fbc831b7bc3a6cc8422c432f577596b4cf3df"
+SRCREV = "df1c3e98d697f3c1f09262d2ba161a7db784d6cc"
 SRC_URI = "git://github.com/stefanberger/libtpms.git;branch=stable-0.9;protocol=https"
 
 PE = "1"
diff --git a/meta-security/meta-tpm/recipes-tpm/swtpm/files/ioctl_h.patch b/meta-security/meta-tpm/recipes-tpm/swtpm/files/ioctl_h.patch
deleted file mode 100644
index d736bc6..0000000
--- a/meta-security/meta-tpm/recipes-tpm/swtpm/files/ioctl_h.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-tpm_ioctl: fix musl for missing ioctl
-
-tpm_ioctl.c: In function 'ioctl_to_cmd':
-tpm_ioctl.c:86:26: error: '_IOC_NRSHIFT' undeclared (first use in this function)
-     return ((ioctlnum >> _IOC_NRSHIFT) & _IOC_NRMASK) + 1;
-
-
-Upstream-status:
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
-Index: git/src/swtpm_ioctl/tpm_ioctl.c
-===================================================================
---- git.orig/src/swtpm_ioctl/tpm_ioctl.c
-+++ git/src/swtpm_ioctl/tpm_ioctl.c
-@@ -58,6 +58,7 @@
- #include <fcntl.h>
- #include <unistd.h>
- #include <sys/ioctl.h>
-+#include <asm/ioctl.h>
- #include <getopt.h>
- #include <sys/un.h>
- #include <sys/types.h>
diff --git a/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.7.1.bb b/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.7.3.bb
similarity index 95%
rename from meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.7.1.bb
rename to meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.7.3.bb
index 03899d8..55d83f9 100644
--- a/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.7.1.bb
+++ b/meta-security/meta-tpm/recipes-tpm/swtpm/swtpm_0.7.3.bb
@@ -6,9 +6,8 @@
 # expect-native, socat-native, coreutils-native and net-tools-native are reportedly only required for the tests
 DEPENDS = "libtasn1 coreutils-native expect-native socat-native glib-2.0 net-tools-native libtpm json-glib"
 
-SRCREV = "92a7035f45d9b08aa7c6b8bd6fa4c6916ef07a9e"
+SRCREV = "f2268eebb0d1adf89bad83fa4cf91e37b4e3fa53"
 SRC_URI = "git://github.com/stefanberger/swtpm.git;branch=stable-0.7-next;protocol=https \
-           file://ioctl_h.patch \
            "
 PE = "1"
 
diff --git a/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/files/tune-makefile.patch b/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/files/tune-makefile.patch
index eebddb9..962bfc1 100644
--- a/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/files/tune-makefile.patch
+++ b/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/files/tune-makefile.patch
@@ -20,7 +20,7 @@
 ===================================================================
 --- src.orig/makefile
 +++ src/makefile
-@@ -38,12 +38,10 @@
+@@ -38,13 +38,11 @@
  #################################################################################
  
  
@@ -29,12 +29,13 @@
  CCFLAGS = -Wall  			\
  	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
  	-Werror -Wsign-compare \
+ 	-Wno-deprecated-declarations	\
 -	 -c -ggdb -O0 			\
 +	 -c -ggdb -O 			\
  	-DTPM_POSIX			\
  	-D_POSIX_			\
  	-DTPM_NUVOTON
-@@ -79,11 +77,11 @@
+@@ -80,11 +78,11 @@ TcpServerPosix.o	: $(HEADERS)
  .PRECIOUS:	%.o
  
  tpm_server:	$(OBJFILES)
diff --git a/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/ibmswtpm2_1661.bb b/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/ibmswtpm2_1682.bb
similarity index 87%
rename from meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/ibmswtpm2_1661.bb
rename to meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/ibmswtpm2_1682.bb
index 09b652d..85fc7e0 100644
--- a/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/ibmswtpm2_1661.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/ibmswtpm2/ibmswtpm2_1682.bb
@@ -18,10 +18,9 @@
 SRC_URI = "https://sourceforge.net/projects/ibmswtpm2/files/ibmtpm${PV}.tar.gz \
            file://tune-makefile.patch \
            "
+SRC_URI[sha256sum] = "3cb642f871a17b23d50b046e5f95f449c2287415fc1e7aeb4bdbb8920dbcb38f"
 
-SRC_URI[sha256sum] = "55145928ad2b24f34be6a0eacf9fb492e10e0ea919b8428c721fa970e85d6147"
-
-UPSTREAM_CHECK_REGEX = "libtpm(?P<pver>).tar.gz"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ibmswtpm2/files/"
 
 S = "${WORKDIR}/src"
 
diff --git a/meta-security/meta-tpm/recipes-tpm2/ibmtpm2tss/ibmtpm2tss_1.6.0.bb b/meta-security/meta-tpm/recipes-tpm2/ibmtpm2tss/ibmtpm2tss_1661.bb
similarity index 84%
rename from meta-security/meta-tpm/recipes-tpm2/ibmtpm2tss/ibmtpm2tss_1.6.0.bb
rename to meta-security/meta-tpm/recipes-tpm2/ibmtpm2tss/ibmtpm2tss_1661.bb
index df66779..2daca5a 100644
--- a/meta-security/meta-tpm/recipes-tpm2/ibmtpm2tss/ibmtpm2tss_1.6.0.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/ibmtpm2tss/ibmtpm2tss_1661.bb
@@ -18,11 +18,13 @@
 inherit autotools pkgconfig
 
 SRCREV = "c4e131e34ec0ed09411aa3bc76f76129ef881573"
-SRC_URI = " git://git.code.sf.net/p/ibmtpm20tss/tss;nobranch=1 \
+SRC_URI = "git://git.code.sf.net/p/ibmtpm20tss/tss;protocol=https;branch=master \
            file://0001-utils-12-Makefile.am-expand-wildcards-in-prereqs.patch \
            "
 
 UPSTREAM_CHECK_COMMITS = "1"
+UPSTREAM_CHECK_URI = "https://git.code.sf.net/p/ibmswtpm2/tpm2"
+UPSTREAM_CHECK_GITTAGREGEX = "rev.*)"
 
 EXTRA_OECONF = "--disable-tpm-1.2"
 
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.4.1.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.4.1.bb
index daafae3..75e9588 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.4.1.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-abrmd/tpm2-abrmd_2.4.1.bb
@@ -20,6 +20,8 @@
 
 SRC_URI[sha256sum] = "a7844a257eaf5176f612fe9620018edc0880cca7036465ad2593f83ae0ad6673"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 inherit autotools pkgconfig systemd update-rc.d useradd
 
 SYSTEMD_PACKAGES += "${PN}"
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-openssl/tpm2-openssl_1.1.0.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-openssl/tpm2-openssl_1.1.0.bb
index 55061c9..263ca2c 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-openssl/tpm2-openssl_1.1.0.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-openssl/tpm2-openssl_1.1.0.bb
@@ -8,6 +8,8 @@
 
 SRC_URI[sha256sum] = "eedcc0b72ad6d232e6f9f55a780290c4d33a4d06efca9314f8a36d7384eb1dfc"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 inherit autotools pkgconfig
 
 do_configure:prepend() {
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.8.0.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.8.0.bb
index dd0a0b5..38847a8 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.8.0.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.8.0.bb
@@ -10,6 +10,8 @@
 
 SRC_URI[sha256sum] = "79f28899047defd6b4b72b7268dd56abf27774954022315f818c239af33e05bd"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 inherit autotools-brokensep pkgconfig python3native
 
 EXTRA_OECONF += "--disable-ptool-checks"
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb
index 2bf1eed..9c60e2b 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-tcti-uefi/tpm2-tcti-uefi_0.9.9.bb
@@ -12,6 +12,8 @@
 
 SRCREV = "0241b08f069f0fdb3612f5c1b938144dbe9be811"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_5.2.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_5.2.bb
index c20af7e..b82fb65 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_5.2.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-tools/tpm2-tools_5.2.bb
@@ -10,6 +10,8 @@
 
 SRC_URI[sha256sum] = "c0b402f6a7b3456e8eb2445211e2d41c46c7e769e05fe4d8909ff64119f7a630"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 inherit autotools pkgconfig bash-completion
 
 do_configure:prepend() {
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.1.0.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.1.0.bb
index efe62a8..89162ee 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.1.0.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-tss-engine/tpm2-tss-engine_1.1.0.bb
@@ -12,6 +12,8 @@
 
 SRC_URI[sha256sum] = "ea2941695ac221d23a7f3e1321140e75b1495ae6ade876f2f4c2ed807c65e2a5"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 inherit autotools-brokensep pkgconfig systemd
 
 # It uses the API deprecated since the OpenSSL 3.0
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_3.2.0.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_3.2.0.bb
index 8440bb9..1556273 100644
--- a/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_3.2.0.bb
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-tss/tpm2-tss_3.2.0.bb
@@ -12,6 +12,8 @@
 
 SRC_URI[sha256sum] = "48305e4144dcf6d10f3b25b7bccf0189fd2d1186feafd8cd68c6b17ecf0d7912"
 
+UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
+
 inherit autotools pkgconfig systemd useradd
 
 PACKAGECONFIG ??= ""
diff --git a/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb b/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb
index 05951da..a12a4c2 100644
--- a/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb
+++ b/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb
@@ -26,6 +26,7 @@
 
 SUMMARY:packagegroup-security-utils = "Security utilities"
 RDEPENDS:packagegroup-security-utils = "\
+    bubblewrap \
     checksec \
     ding-libs \
     ecryptfs-utils \
@@ -37,11 +38,16 @@
     sshguard \
     firejail \
     ${@bb.utils.contains_any("TUNE_FEATURES", "riscv32 ", "", " libseccomp",d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "google-authenticator-libpam", "",d)} \
+    ${@bb.utils.contains("DISTRO_FEATURES", "pam", "google-authenticator-libpam krill", "",d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "pax", "pax-utils packctl", "",d)} \
     "
 
-RDEPENDS:packagegroup-security-utils:remove:mipsarch = "firejail"
+RDEPENDS:packagegroup-security-utils:append:x86 = "chipsec"
+RDEPENDS:packagegroup-security-utils:append:x86-64 = "chipsec"
+RDEPENDS:packagegroup-security-utils:remove:mipsarch = "firejail krill"
+RDEPENDS:packagegroup-security-utils:remove:libc-musl = "krill"
+RDEPENDS:packagegroup-security-utils:remove:riscv64 = "krill"
+RDEPENDS:packagegroup-security-utils:remove:armv7ve = " krill"
 
 SUMMARY:packagegroup-security-scanners = "Security scanners"
 RDEPENDS:packagegroup-security-scanners = "\
diff --git a/meta-security/recipes-ids/aide/aide_0.17.4.bb b/meta-security/recipes-ids/aide/aide_0.17.4.bb
index 7ce0729..52ddc43 100644
--- a/meta-security/recipes-ids/aide/aide_0.17.4.bb
+++ b/meta-security/recipes-ids/aide/aide_0.17.4.bb
@@ -10,6 +10,8 @@
 
 SRC_URI[sha256sum] = "c81505246f3ffc2e76036d43a77212ae82895b5881d9b9e25c1361b1a9b7a846"
 
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
 inherit autotools pkgconfig aide-base
 
 PACKAGECONFIG ??=" mhash zlib e2fsattrs posix capabilities curl \
diff --git a/meta-security/recipes-ids/suricata/suricata_6.0.5.bb b/meta-security/recipes-ids/suricata/suricata_6.0.6.bb
similarity index 98%
rename from meta-security/recipes-ids/suricata/suricata_6.0.5.bb
rename to meta-security/recipes-ids/suricata/suricata_6.0.6.bb
index 913e64e..35054ef 100644
--- a/meta-security/recipes-ids/suricata/suricata_6.0.5.bb
+++ b/meta-security/recipes-ids/suricata/suricata_6.0.6.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=2;md5=c70d8d3310941dcdfcd1e02800a1f548"
 
 SRC_URI = "http://www.openinfosecfoundation.org/download/suricata-${PV}.tar.gz"
-SRC_URI[sha256sum] = "0d4197047c84ba070dfc6b1d9f9ee92f52a71403bfac0e29b2554bb21fe00754"
+SRC_URI[sha256sum] = "00173634fa76aee636e38a90b1c02616c903e42173107d47b4114960b5fbe839"
 
 DEPENDS = "lz4 libhtp"
 
diff --git a/meta-security/recipes-kernel/lkrg/files/makefile_cleanup.patch b/meta-security/recipes-kernel/lkrg/files/makefile_cleanup.patch
deleted file mode 100644
index f29afbe..0000000
--- a/meta-security/recipes-kernel/lkrg/files/makefile_cleanup.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-  
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-
-Index: git/Makefile
-===================================================================
---- git.orig/Makefile
-+++ git/Makefile
-@@ -7,15 +7,8 @@
- 
- P_OUTPUT = output
- P_PWD ?= $(shell pwd)
--P_KVER ?= $(shell uname -r)
- P_BOOTUP_SCRIPT ?= scripts/bootup/lkrg-bootup.sh
- TARGET := p_lkrg
--ifneq ($(KERNELRELEASE),)
--    KERNEL := /lib/modules/$(KERNELRELEASE)/build
--else
--    ## KERNELRELEASE not set.
--    KERNEL := /lib/modules/$(P_KVER)/build
--endif
- 
- #
- # Use DEBUG=on for debug build.
-@@ -94,14 +87,13 @@ $(TARGET)-objs += src/modules/ksyms/p_re
-                   src/p_lkrg_main.o
- 
- 
--all:
--#	$(MAKE) -C $(KERNEL) M=$(P_PWD) modules CONFIG_DEBUG_SECTION_MISMATCH=y
--	$(MAKE) -C $(KERNEL) M=$(P_PWD) modules
-+modules:
-+	$(MAKE) -C $(KERNEL_SRC) M=$(P_PWD) modules
- 	mkdir -p $(P_OUTPUT)
- 	cp $(P_PWD)/$(TARGET).ko $(P_OUTPUT)
- 
--install:
--	$(MAKE) -C $(KERNEL) M=$(P_PWD) modules_install
-+moduled_install:
-+	$(MAKE) -C $(KERNEL_SRC) M=$(P_PWD) modules_install
- 	depmod -a
- 	$(P_PWD)/$(P_BOOTUP_SCRIPT) install
- 
-@@ -109,7 +101,7 @@ uninstall:
- 	$(P_PWD)/$(P_BOOTUP_SCRIPT) uninstall
- 
- clean:
--	$(MAKE) -C $(KERNEL) M=$(P_PWD) clean
-+	$(MAKE) -C $(KERNEL_SRC) M=$(P_PWD) clean
- 	$(RM) Module.markers modules.order
- 	$(RM) $(P_PWD)/src/modules/kmod/client/kmod/Module.markers
- 	$(RM) $(P_PWD)/src/modules/kmod/client/kmod/modules.order
diff --git a/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.3.bb b/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.4.bb
similarity index 70%
rename from meta-security/recipes-kernel/lkrg/lkrg-module_0.9.3.bb
rename to meta-security/recipes-kernel/lkrg/lkrg-module_0.9.4.bb
index 2553974..fa46cb6 100644
--- a/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.3.bb
+++ b/meta-security/recipes-kernel/lkrg/lkrg-module_0.9.4.bb
@@ -5,15 +5,13 @@
 HOMEPAGE = "https://www.openwall.com/lkrg/"
 LICENSE = "GPL-2.0-only"
 
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5105ead24b08a32954f34cbaa7112432"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3f3e5dd56319d33a1944d635c1c86c6f"
 
 DEPENDS = "virtual/kernel elfutils"
 
-SRC_URI = "git://github.com/lkrg-org/lkrg.git;protocol=https;branch=main \
-           file://makefile_cleanup.patch \
-"
+SRC_URI = "git://github.com/lkrg-org/lkrg.git;protocol=https;branch=main"
 
-SRCREV = "c578e9f786299b67ffd62057b4534b0bf4fb7ece"
+SRCREV = "c58cb52145b8e8ccc6bd19079f5c835933281cdc"
 
 S = "${WORKDIR}/git"
 
@@ -21,7 +19,13 @@
 
 MAKE_TARGETS = "modules"
 
-MODULE_NAME = "p_lkrg"
+MODULE_NAME = "lkrg"
+
+do_configure:append () {
+    sed -i -e 's/^all/modules/' ${S}/Makefile
+    sed -i -e 's/^install/modules_install/' ${S}/Makefile
+    sed -i -e 's/KERNEL/KERNEL_SRC/g' ${S}/Makefile
+}
 
 module_do_install() {
     install -d ${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}
diff --git a/meta-security/recipes-mac/AppArmor/apparmor_3.0.4.bb b/meta-security/recipes-mac/AppArmor/apparmor_3.0.5.bb
similarity index 98%
rename from meta-security/recipes-mac/AppArmor/apparmor_3.0.4.bb
rename to meta-security/recipes-mac/AppArmor/apparmor_3.0.5.bb
index 896abfe..45f19d1 100644
--- a/meta-security/recipes-mac/AppArmor/apparmor_3.0.4.bb
+++ b/meta-security/recipes-mac/AppArmor/apparmor_3.0.5.bb
@@ -22,7 +22,7 @@
     file://0001-rc.apparmor.debian-add-missing-functions.patch \
     "
 
-SRCREV = "9799fbde997820bb12a49e292356f7a6ce12e972"
+SRCREV = "822db765c6fa7f9de7233c4011254a82d4dafe76"
 S = "${WORKDIR}/git"
 
 PARALLEL_MAKE = ""
diff --git a/meta-security/recipes-scanners/clamav/clamav_0.104.0.bb b/meta-security/recipes-scanners/clamav/clamav_0.104.4.bb
similarity index 96%
rename from meta-security/recipes-scanners/clamav/clamav_0.104.0.bb
rename to meta-security/recipes-scanners/clamav/clamav_0.104.4.bb
index 18e8329..68a7d1f 100644
--- a/meta-security/recipes-scanners/clamav/clamav_0.104.0.bb
+++ b/meta-security/recipes-scanners/clamav/clamav_0.104.4.bb
@@ -10,8 +10,8 @@
 
 LIC_FILES_CHKSUM = "file://COPYING.txt;beginline=2;endline=3;md5=f7029fbbc5898b273d5902896f7bbe17"
 
-# July 27th
-SRCREV = "c389dfa4c3af92b006ada4f7595bbc3e6df3f356"
+# July 30th, 2022
+SRCREV = "563ba93052f3b7b46fb8725a65ee6299a9c332cf"
 
 SRC_URI = "git://github.com/vrtadmin/clamav-devel;branch=rel/0.104;protocol=https \
     file://clamd.conf \
@@ -20,7 +20,6 @@
     file://tmpfiles.clamav \
     file://headers_fixup.patch \
     file://oe_cmake_fixup.patch \
-    file://fix_systemd_socket.patch \
 "
 S = "${WORKDIR}/git"
 
@@ -69,7 +68,6 @@
     fi
 
     rm ${D}/${libdir}/libfreshclam.so
-    rm ${D}/${libdir}/libmspack.so
 
     if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
         install -d ${D}${sysconfdir}/tmpfiles.d
@@ -125,7 +123,8 @@
 FILES:${PN}-dev = " ${bindir}/clamav-config ${libdir}/*.la \
                     ${libdir}/pkgconfig/*.pc \
                     ${mandir}/man1/clamav-config.* \
-                    ${includedir}/*.h ${docdir}/libclamav* "
+                    ${includedir}/*.h ${docdir}/libclamav* \
+                    ${libdir}/libmspack.so"
 
 FILES:${PN}-staticdev = "${libdir}/*.a"
 
@@ -150,6 +149,8 @@
 SYSTEMD_SERVICE:${PN}-daemon = "clamav-daemon.service"
 SYSTEMD_SERVICE:${PN}-freshclam = "clamav-freshclam.service"
 
+INSANE_SKIP:${PN}-libclamav  += "dev-so"
+
 RDEPENDS:${PN} = "openssl ncurses-libncurses libxml2 libbz2 ncurses-libtinfo curl libpcre2 clamav-libclamav"
 RRECOMMENDS:${PN} = "clamav-freshclam"
 RDEPENDS:${PN}-freshclam = "clamav"
diff --git a/meta-security/recipes-scanners/clamav/files/fix_systemd_socket.patch b/meta-security/recipes-scanners/clamav/files/fix_systemd_socket.patch
deleted file mode 100644
index 3347770..0000000
--- a/meta-security/recipes-scanners/clamav/files/fix_systemd_socket.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-clamd not installing clamav-daemon.socket
-
-Fixes:
-__main__.SystemdUnitNotFoundError: (PosixPath('../security-build-image/1.0-r0/rootfs'), 'clamav-daemon.socket')
-%post(clamav-daemon-0.104.0-r0.core2_64): waitpid(3587571) rc 3587571 status 100
-warning: %post(clamav-daemon-0.104.0-r0.core2_64) scriptlet failed, exit status 1
-
-Upstream-Status: Pending
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Index: git/clamd/CMakeLists.txt
-===================================================================
---- git.orig/clamd/CMakeLists.txt
-+++ git/clamd/CMakeLists.txt
-@@ -60,4 +60,10 @@ if(SYSTEMD_FOUND)
-     install(
-         FILES ${CMAKE_CURRENT_BINARY_DIR}/clamav-daemon.socket
-         DESTINATION ${SYSTEMD_UNIT_DIR})
-+    configure_file(
-+        ${CMAKE_CURRENT_SOURCE_DIR}/clamav-daemon.socket.in
-+        ${CMAKE_CURRENT_BINARY_DIR}/clamav-daemon.socket @ONLY)
-+    install(
-+        FILES ${CMAKE_CURRENT_BINARY_DIR}/clamav-daemon.socket
-+        DESTINATION ${SYSTEMD_UNIT_DIR})
- endif()
diff --git a/meta-security/recipes-security/bubblewrap/bubblewrap_0.6.2.bb b/meta-security/recipes-security/bubblewrap/bubblewrap_0.6.2.bb
new file mode 100644
index 0000000..921defd
--- /dev/null
+++ b/meta-security/recipes-security/bubblewrap/bubblewrap_0.6.2.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Unprivileged sandboxing tool"
+HOMEPAGE = "https://github.com/containers/bubblewrap"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "libcap"
+
+SRC_URI = "https://github.com/containers/${BPN}/releases/download/v${PV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "8a0ec802d1b3e956c5bb0a40a81c9ce0b055a31bf30a8efa547433603b8af20b"
+
+UPSTREAM_CHECK_URI = "https://github.com/containers/bubblewrap/releases"
+UPSTREAM_CHECK_REGEX = "bubblewrap-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools bash-completion manpages pkgconfig
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[manpages] = "--enable-man,--disable-man,libxslt-native docbook-xsl-stylesheets-native xmlto-native"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+PACKAGECONFIG[setuid] = "--with-priv-mode=setuid,--with-priv-mode=none"
+
+PACKAGES += "${PN}-zsh-completion"
+
+FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
diff --git a/meta-security/recipes-security/chipsec/chipsec_1.8.5.bb b/meta-security/recipes-security/chipsec/chipsec_1.8.7.bb
similarity index 94%
rename from meta-security/recipes-security/chipsec/chipsec_1.8.5.bb
rename to meta-security/recipes-security/chipsec/chipsec_1.8.7.bb
index 48dfe45..60272be 100644
--- a/meta-security/recipes-security/chipsec/chipsec_1.8.5.bb
+++ b/meta-security/recipes-security/chipsec/chipsec_1.8.7.bb
@@ -10,7 +10,7 @@
 DEPENDS = "virtual/kernel nasm-native"
 
 SRC_URI = "git://github.com/chipsec/chipsec.git;branch=main;protocol=https"
-SRCREV = "07a532aac9f6c3d94b8895cf89336b6a2e60c0d9"
+SRCREV = "7b9cc5cd449f2e1e4b5dad46c0eb14348e54e3f0"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb b/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb
index 5f8cf3c..00e8997 100644
--- a/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb
+++ b/meta-security/recipes-security/ecryptfs-utils/ecryptfs-utils_111.bb
@@ -22,6 +22,8 @@
 SRC_URI[md5sum] = "83513228984f671930752c3518cac6fd"
 SRC_URI[sha256sum] = "112cb3e37e81a1ecd8e39516725dec0ce55c5f3df6284e0f4cc0f118750a987f"
 
+UPSTREAM_CHECK_URI = "https://launchpad.net/ecryptfs/+download"
+
 inherit autotools pkgconfig systemd
 
 SYSTEMD_PACKAGES = "${PN}"
diff --git a/meta-security/recipes-security/krill/krill.inc b/meta-security/recipes-security/krill/krill.inc
index f86468b..bb40f57 100644
--- a/meta-security/recipes-security/krill/krill.inc
+++ b/meta-security/recipes-security/krill/krill.inc
@@ -1,325 +1,240 @@
 # please note if you have entries that do not begin with crate://
 # you must change them to how that package can be fetched
 SRC_URI += " \
-    crate://crates.io/addr2line/0.14.1 \
+    crate://crates.io/addr2line/0.17.0 \
     crate://crates.io/adler/1.0.2 \
     crate://crates.io/adler32/1.2.0 \
-    crate://crates.io/aho-corasick/0.7.15 \
-    crate://crates.io/ansi_term/0.11.0 \
+    crate://crates.io/aho-corasick/0.7.18 \
     crate://crates.io/ansi_term/0.12.1 \
-    crate://crates.io/arrayref/0.3.6 \
-    crate://crates.io/arrayvec/0.5.2 \
-    crate://crates.io/ascii-canvas/2.0.0 \
+    crate://crates.io/ascii-canvas/3.0.0 \
     crate://crates.io/ascii/1.0.0 \
     crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/0.1.7 \
-    crate://crates.io/autocfg/1.0.1 \
-    crate://crates.io/backtrace/0.3.56 \
-    crate://crates.io/base64/0.10.1 \
-    crate://crates.io/base64/0.12.3 \
+    crate://crates.io/autocfg/1.1.0 \
+    crate://crates.io/backtrace/0.3.64 \
     crate://crates.io/base64/0.13.0 \
     crate://crates.io/basic-cookies/0.1.4 \
-    crate://crates.io/bcder/0.5.1 \
+    crate://crates.io/bcder/0.6.1 \
     crate://crates.io/bit-set/0.5.2 \
     crate://crates.io/bit-vec/0.6.3 \
-    crate://crates.io/bitflags/1.2.1 \
-    crate://crates.io/blake2b_simd/0.5.11 \
+    crate://crates.io/bitflags/1.3.2 \
     crate://crates.io/block-buffer/0.9.0 \
-    crate://crates.io/bumpalo/3.6.1 \
-    crate://crates.io/byteorder/1.4.3 \
-    crate://crates.io/bytes/0.4.12 \
-    crate://crates.io/bytes/0.5.6 \
-    crate://crates.io/bytes/1.0.1 \
-    crate://crates.io/cc/1.0.67 \
-    crate://crates.io/cfg-if/0.1.10 \
+    crate://crates.io/bumpalo/3.9.1 \
+    crate://crates.io/bytes/1.1.0 \
+    crate://crates.io/cc/1.0.73 \
     crate://crates.io/cfg-if/1.0.0 \
     crate://crates.io/chrono/0.4.19 \
     crate://crates.io/chunked_transfer/1.4.0 \
     crate://crates.io/cipher/0.2.5 \
-    crate://crates.io/clap/2.33.3 \
-    crate://crates.io/clokwerk/0.3.4 \
-    crate://crates.io/cloudabi/0.0.3 \
-    crate://crates.io/constant_time_eq/0.1.5 \
-    crate://crates.io/cookie/0.12.0 \
-    crate://crates.io/cookie_store/0.7.0 \
-    crate://crates.io/core-foundation-sys/0.8.2 \
-    crate://crates.io/core-foundation/0.9.1 \
-    crate://crates.io/cpuid-bool/0.1.2 \
-    crate://crates.io/crc32fast/1.2.1 \
-    crate://crates.io/crossbeam-deque/0.7.3 \
-    crate://crates.io/crossbeam-epoch/0.8.2 \
-    crate://crates.io/crossbeam-queue/0.2.3 \
-    crate://crates.io/crossbeam-utils/0.7.2 \
-    crate://crates.io/crossbeam-utils/0.8.3 \
+    crate://crates.io/clap/2.34.0 \
+    crate://crates.io/core-foundation-sys/0.8.3 \
+    crate://crates.io/core-foundation/0.9.3 \
+    crate://crates.io/cpufeatures/0.2.1 \
+    crate://crates.io/crc32fast/1.3.2 \
     crate://crates.io/crunchy/0.2.2 \
-    crate://crates.io/crypto-mac/0.10.0 \
-    crate://crates.io/ctrlc/3.1.9 \
+    crate://crates.io/crypto-mac/0.10.1 \
+    crate://crates.io/ctrlc/3.2.1 \
     crate://crates.io/deunicode/0.4.3 \
     crate://crates.io/diff/0.1.12 \
     crate://crates.io/digest/0.9.0 \
-    crate://crates.io/dirs/1.0.5 \
-    crate://crates.io/dtoa/0.4.8 \
+    crate://crates.io/dirs-next/2.0.0 \
+    crate://crates.io/dirs-sys-next/0.1.2 \
     crate://crates.io/either/1.6.1 \
     crate://crates.io/ena/0.14.0 \
-    crate://crates.io/encoding_rs/0.8.28 \
+    crate://crates.io/encoding_rs/0.8.30 \
     crate://crates.io/error-chain/0.11.0 \
-    crate://crates.io/failure/0.1.8 \
-    crate://crates.io/failure_derive/0.1.8 \
+    crate://crates.io/fastrand/1.7.0 \
     crate://crates.io/fern/0.5.9 \
     crate://crates.io/fixedbitset/0.2.0 \
-    crate://crates.io/flate2/1.0.20 \
     crate://crates.io/fnv/1.0.7 \
     crate://crates.io/foreign-types-shared/0.1.1 \
     crate://crates.io/foreign-types/0.3.2 \
     crate://crates.io/form_urlencoded/1.0.1 \
-    crate://crates.io/fuchsia-cprng/0.1.1 \
-    crate://crates.io/fuchsia-zircon-sys/0.3.3 \
-    crate://crates.io/fuchsia-zircon/0.3.3 \
-    crate://crates.io/futures-channel/0.3.14 \
-    crate://crates.io/futures-core/0.3.14 \
-    crate://crates.io/futures-cpupool/0.1.8 \
-    crate://crates.io/futures-executor/0.3.14 \
-    crate://crates.io/futures-io/0.3.14 \
-    crate://crates.io/futures-macro/0.3.14 \
-    crate://crates.io/futures-sink/0.3.14 \
-    crate://crates.io/futures-task/0.3.14 \
-    crate://crates.io/futures-util/0.3.14 \
-    crate://crates.io/futures/0.1.31 \
-    crate://crates.io/futures/0.3.14 \
-    crate://crates.io/generic-array/0.14.4 \
-    crate://crates.io/getrandom/0.1.16 \
-    crate://crates.io/getrandom/0.2.2 \
-    crate://crates.io/gimli/0.23.0 \
-    crate://crates.io/h2/0.1.26 \
-    crate://crates.io/h2/0.2.7 \
-    crate://crates.io/hashbrown/0.9.1 \
-    crate://crates.io/hermit-abi/0.1.18 \
+    crate://crates.io/fslock/0.2.1 \
+    crate://crates.io/futures-channel/0.3.21 \
+    crate://crates.io/futures-core/0.3.21 \
+    crate://crates.io/futures-executor/0.3.21 \
+    crate://crates.io/futures-io/0.3.21 \
+    crate://crates.io/futures-macro/0.3.21 \
+    crate://crates.io/futures-sink/0.3.21 \
+    crate://crates.io/futures-task/0.3.21 \
+    crate://crates.io/futures-util/0.3.21 \
+    crate://crates.io/futures/0.3.21 \
+    crate://crates.io/generic-array/0.14.5 \
+    crate://crates.io/getrandom/0.2.4 \
+    crate://crates.io/gimli/0.26.1 \
+    crate://crates.io/h2/0.3.11 \
+    crate://crates.io/hashbrown/0.11.2 \
+    crate://crates.io/hermit-abi/0.1.19 \
     crate://crates.io/hex/0.4.3 \
     crate://crates.io/hmac/0.10.1 \
-    crate://crates.io/http-body/0.1.0 \
-    crate://crates.io/http-body/0.3.1 \
-    crate://crates.io/http/0.1.21 \
-    crate://crates.io/http/0.2.4 \
-    crate://crates.io/httparse/1.3.6 \
-    crate://crates.io/httpdate/0.3.2 \
-    crate://crates.io/hyper-tls/0.3.2 \
-    crate://crates.io/hyper-tls/0.4.3 \
-    crate://crates.io/hyper/0.12.36 \
-    crate://crates.io/hyper/0.13.10 \
-    crate://crates.io/idna/0.1.5 \
-    crate://crates.io/idna/0.2.2 \
-    crate://crates.io/impl-trait-for-tuples/0.2.1 \
-    crate://crates.io/indexmap/1.6.2 \
-    crate://crates.io/intervaltree/0.2.6 \
-    crate://crates.io/iovec/0.1.4 \
-    crate://crates.io/ipnet/2.3.0 \
-    crate://crates.io/itertools/0.10.0 \
+    crate://crates.io/http-body/0.4.4 \
+    crate://crates.io/http/0.2.6 \
+    crate://crates.io/httparse/1.6.0 \
+    crate://crates.io/httpdate/1.0.2 \
+    crate://crates.io/hyper-tls/0.5.0 \
+    crate://crates.io/hyper/0.14.17 \
+    crate://crates.io/idna/0.2.3 \
+    crate://crates.io/impl-trait-for-tuples/0.2.2 \
+    crate://crates.io/indexmap/1.8.0 \
+    crate://crates.io/instant/0.1.12 \
+    crate://crates.io/intervaltree/0.2.7 \
+    crate://crates.io/ipnet/2.3.1 \
+    crate://crates.io/itertools/0.10.3 \
     crate://crates.io/itertools/0.9.0 \
-    crate://crates.io/itoa/0.4.7 \
+    crate://crates.io/itoa/1.0.1 \
     crate://crates.io/jmespatch/0.3.0 \
-    crate://crates.io/js-sys/0.3.50 \
-    crate://crates.io/kernel32-sys/0.2.2 \
-    crate://crates.io/lalrpop-util/0.19.5 \
-    crate://crates.io/lalrpop/0.19.5 \
+    crate://crates.io/js-sys/0.3.56 \
+    crate://crates.io/lalrpop-util/0.19.7 \
+    crate://crates.io/lalrpop/0.19.7 \
     crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.93 \
-    crate://crates.io/libflate/1.0.4 \
-    crate://crates.io/libflate_lz77/1.0.0 \
-    crate://crates.io/lock_api/0.3.4 \
+    crate://crates.io/libc/0.2.119 \
+    crate://crates.io/libflate/1.1.2 \
+    crate://crates.io/libflate_lz77/1.1.0 \
+    crate://crates.io/lock_api/0.4.6 \
     crate://crates.io/log/0.4.14 \
     crate://crates.io/maplit/1.0.2 \
     crate://crates.io/matchers/0.0.1 \
-    crate://crates.io/matches/0.1.8 \
-    crate://crates.io/maybe-uninit/2.0.0 \
-    crate://crates.io/memchr/2.3.4 \
-    crate://crates.io/memoffset/0.5.6 \
+    crate://crates.io/matches/0.1.9 \
+    crate://crates.io/memchr/2.4.1 \
+    crate://crates.io/memoffset/0.6.5 \
     crate://crates.io/mime/0.3.16 \
-    crate://crates.io/mime_guess/2.0.3 \
     crate://crates.io/miniz_oxide/0.4.4 \
-    crate://crates.io/mio/0.6.23 \
-    crate://crates.io/miow/0.2.2 \
-    crate://crates.io/native-tls/0.2.7 \
-    crate://crates.io/net2/0.2.37 \
+    crate://crates.io/mio/0.8.0 \
+    crate://crates.io/miow/0.3.7 \
+    crate://crates.io/native-tls/0.2.8 \
     crate://crates.io/new_debug_unreachable/1.0.4 \
-    crate://crates.io/nix/0.20.0 \
+    crate://crates.io/nix/0.23.1 \
+    crate://crates.io/ntapi/0.3.7 \
+    crate://crates.io/num-bigint/0.4.3 \
     crate://crates.io/num-integer/0.1.44 \
     crate://crates.io/num-traits/0.2.14 \
-    crate://crates.io/num_cpus/1.13.0 \
-    crate://crates.io/oauth2/4.0.0 \
-    crate://crates.io/object/0.23.0 \
-    crate://crates.io/once_cell/1.7.2 \
+    crate://crates.io/num_cpus/1.13.1 \
+    crate://crates.io/oauth2/4.1.0 \
+    crate://crates.io/object/0.27.1 \
+    crate://crates.io/once_cell/1.9.0 \
     crate://crates.io/opaque-debug/0.3.0 \
-    crate://crates.io/openidconnect/2.0.0 \
-    crate://crates.io/openssl-probe/0.1.2 \
-    crate://crates.io/openssl-src/111.15.0+1.1.1k \
-    crate://crates.io/openssl-sys/0.9.61 \
-    crate://crates.io/openssl/0.10.33 \
+    crate://crates.io/openidconnect/2.2.0 \
+    crate://crates.io/openssl-probe/0.1.5 \
+    crate://crates.io/openssl-src/111.17.0+1.1.1m \
+    crate://crates.io/openssl-sys/0.9.72 \
+    crate://crates.io/openssl/0.10.38 \
     crate://crates.io/ordered-float/1.1.1 \
-    crate://crates.io/oso/0.12.0 \
-    crate://crates.io/parking_lot/0.9.0 \
-    crate://crates.io/parking_lot_core/0.6.2 \
+    crate://crates.io/oso/0.12.4 \
+    crate://crates.io/parking_lot/0.11.2 \
+    crate://crates.io/parking_lot_core/0.8.5 \
     crate://crates.io/pbkdf2/0.7.5 \
-    crate://crates.io/percent-encoding/1.0.1 \
     crate://crates.io/percent-encoding/2.1.0 \
     crate://crates.io/petgraph/0.5.1 \
-    crate://crates.io/phf_shared/0.8.0 \
-    crate://crates.io/pico-args/0.4.0 \
-    crate://crates.io/pin-project-internal/1.0.6 \
-    crate://crates.io/pin-project-lite/0.1.12 \
-    crate://crates.io/pin-project-lite/0.2.6 \
-    crate://crates.io/pin-project/1.0.6 \
+    crate://crates.io/phf_shared/0.10.0 \
+    crate://crates.io/pico-args/0.4.2 \
+    crate://crates.io/pin-project-lite/0.2.8 \
     crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/pkg-config/0.3.19 \
-    crate://crates.io/polar-core/0.12.0 \
-    crate://crates.io/ppv-lite86/0.2.10 \
+    crate://crates.io/pkg-config/0.3.24 \
+    crate://crates.io/polar-core/0.12.4 \
+    crate://crates.io/ppv-lite86/0.2.16 \
     crate://crates.io/precomputed-hash/0.1.1 \
-    crate://crates.io/proc-macro-hack/0.5.19 \
-    crate://crates.io/proc-macro-nested/0.1.7 \
-    crate://crates.io/proc-macro2/1.0.26 \
-    crate://crates.io/publicsuffix/1.5.6 \
-    crate://crates.io/quick-xml/0.19.0 \
-    crate://crates.io/quote/1.0.9 \
-    crate://crates.io/rand/0.6.5 \
-    crate://crates.io/rand/0.7.3 \
-    crate://crates.io/rand/0.8.3 \
-    crate://crates.io/rand_chacha/0.1.1 \
-    crate://crates.io/rand_chacha/0.2.2 \
-    crate://crates.io/rand_chacha/0.3.0 \
-    crate://crates.io/rand_core/0.3.1 \
-    crate://crates.io/rand_core/0.4.2 \
-    crate://crates.io/rand_core/0.5.1 \
-    crate://crates.io/rand_core/0.6.2 \
-    crate://crates.io/rand_hc/0.1.0 \
-    crate://crates.io/rand_hc/0.2.0 \
-    crate://crates.io/rand_hc/0.3.0 \
-    crate://crates.io/rand_isaac/0.1.1 \
-    crate://crates.io/rand_jitter/0.1.4 \
-    crate://crates.io/rand_os/0.1.3 \
-    crate://crates.io/rand_pcg/0.1.2 \
-    crate://crates.io/rand_xorshift/0.1.1 \
-    crate://crates.io/rdrand/0.4.0 \
-    crate://crates.io/redox_syscall/0.1.57 \
-    crate://crates.io/redox_syscall/0.2.5 \
-    crate://crates.io/redox_users/0.3.5 \
-    crate://crates.io/regex-automata/0.1.9 \
-    crate://crates.io/regex-syntax/0.6.23 \
-    crate://crates.io/regex/1.4.5 \
+    crate://crates.io/priority-queue/1.2.1 \
+    crate://crates.io/proc-macro2/1.0.36 \
+    crate://crates.io/quick-xml/0.22.0 \
+    crate://crates.io/quote/1.0.15 \
+    crate://crates.io/rand/0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1 \
+    crate://crates.io/rand_core/0.6.3 \
+    crate://crates.io/redox_syscall/0.2.10 \
+    crate://crates.io/redox_users/0.4.0 \
+    crate://crates.io/regex-automata/0.1.10 \
+    crate://crates.io/regex-syntax/0.6.25 \
+    crate://crates.io/regex/1.5.5 \
     crate://crates.io/remove_dir_all/0.5.3 \
-    crate://crates.io/reqwest/0.10.10 \
-    crate://crates.io/reqwest/0.9.24 \
+    crate://crates.io/reqwest/0.11.9 \
     crate://crates.io/ring/0.16.20 \
-    crate://crates.io/rle-decode-fast/1.0.1 \
+    crate://crates.io/rle-decode-fast/1.0.3 \
     crate://crates.io/rpassword/5.0.1 \
-    crate://crates.io/rpki/0.10.1 \
-    crate://crates.io/rust-argon2/0.8.3 \
-    crate://crates.io/rustc-demangle/0.1.18 \
+    crate://crates.io/rpki/0.13.2 \
+    crate://crates.io/rustc-demangle/0.1.21 \
     crate://crates.io/rustc_version/0.2.3 \
-    crate://crates.io/rustls/0.18.1 \
-    crate://crates.io/ryu/1.0.5 \
+    crate://crates.io/rustls/0.19.1 \
+    crate://crates.io/rustversion/1.0.6 \
+    crate://crates.io/ryu/1.0.9 \
     crate://crates.io/salsa20/0.7.2 \
     crate://crates.io/schannel/0.1.19 \
     crate://crates.io/scopeguard/1.1.0 \
     crate://crates.io/scrypt/0.6.5 \
     crate://crates.io/sct/0.6.1 \
-    crate://crates.io/security-framework-sys/2.2.0 \
-    crate://crates.io/security-framework/2.2.0 \
+    crate://crates.io/security-framework-sys/2.6.1 \
+    crate://crates.io/security-framework/2.6.1 \
     crate://crates.io/semver-parser/0.7.0 \
     crate://crates.io/semver/0.9.0 \
     crate://crates.io/serde-value/0.6.0 \
-    crate://crates.io/serde/1.0.125 \
-    crate://crates.io/serde_derive/1.0.125 \
-    crate://crates.io/serde_json/1.0.64 \
-    crate://crates.io/serde_path_to_error/0.1.4 \
-    crate://crates.io/serde_urlencoded/0.5.5 \
-    crate://crates.io/serde_urlencoded/0.7.0 \
-    crate://crates.io/sha2/0.9.3 \
-    crate://crates.io/sharded-slab/0.1.1 \
-    crate://crates.io/siphasher/0.3.5 \
-    crate://crates.io/slab/0.4.2 \
+    crate://crates.io/serde/1.0.136 \
+    crate://crates.io/serde_derive/1.0.136 \
+    crate://crates.io/serde_json/1.0.79 \
+    crate://crates.io/serde_path_to_error/0.1.7 \
+    crate://crates.io/serde_urlencoded/0.7.1 \
+    crate://crates.io/sha2/0.9.9 \
+    crate://crates.io/sharded-slab/0.1.4 \
+    crate://crates.io/siphasher/0.3.9 \
+    crate://crates.io/slab/0.4.5 \
     crate://crates.io/slug/0.1.4 \
-    crate://crates.io/smallvec/0.6.14 \
-    crate://crates.io/smallvec/1.6.1 \
-    crate://crates.io/socket2/0.3.19 \
+    crate://crates.io/smallvec/1.8.0 \
+    crate://crates.io/socket2/0.4.4 \
     crate://crates.io/spin/0.5.2 \
-    crate://crates.io/string/0.2.1 \
-    crate://crates.io/string_cache/0.8.1 \
+    crate://crates.io/string_cache/0.8.3 \
     crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/subtle/2.4.0 \
-    crate://crates.io/syn/1.0.69 \
-    crate://crates.io/synstructure/0.12.4 \
+    crate://crates.io/subtle/2.4.1 \
+    crate://crates.io/syn/1.0.86 \
     crate://crates.io/syslog/4.0.1 \
-    crate://crates.io/tempfile/3.2.0 \
-    crate://crates.io/term/0.5.2 \
+    crate://crates.io/tempfile/3.3.0 \
+    crate://crates.io/term/0.7.0 \
     crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/thiserror-impl/1.0.24 \
-    crate://crates.io/thiserror/1.0.24 \
-    crate://crates.io/thread_local/1.1.3 \
-    crate://crates.io/time/0.1.44 \
+    crate://crates.io/thiserror-impl/1.0.30 \
+    crate://crates.io/thiserror/1.0.30 \
+    crate://crates.io/thread_local/1.1.4 \
+    crate://crates.io/time/0.1.43 \
     crate://crates.io/tiny-keccak/2.0.2 \
-    crate://crates.io/tiny_http/0.8.0 \
-    crate://crates.io/tinyvec/1.2.0 \
+    crate://crates.io/tiny_http/0.8.2 \
+    crate://crates.io/tinyvec/1.5.1 \
     crate://crates.io/tinyvec_macros/0.1.0 \
-    crate://crates.io/tokio-buf/0.1.1 \
-    crate://crates.io/tokio-current-thread/0.1.7 \
-    crate://crates.io/tokio-executor/0.1.10 \
-    crate://crates.io/tokio-io/0.1.13 \
-    crate://crates.io/tokio-macros/0.2.6 \
-    crate://crates.io/tokio-reactor/0.1.12 \
-    crate://crates.io/tokio-rustls/0.14.1 \
-    crate://crates.io/tokio-sync/0.1.8 \
-    crate://crates.io/tokio-tcp/0.1.4 \
-    crate://crates.io/tokio-threadpool/0.1.18 \
-    crate://crates.io/tokio-timer/0.2.13 \
-    crate://crates.io/tokio-tls/0.3.1 \
-    crate://crates.io/tokio-util/0.3.1 \
-    crate://crates.io/tokio/0.1.22 \
-    crate://crates.io/tokio/0.2.25 \
+    crate://crates.io/tokio-macros/1.7.0 \
+    crate://crates.io/tokio-native-tls/0.3.0 \
+    crate://crates.io/tokio-rustls/0.22.0 \
+    crate://crates.io/tokio-util/0.6.9 \
+    crate://crates.io/tokio/1.17.0 \
     crate://crates.io/toml/0.5.8 \
     crate://crates.io/tower-service/0.3.1 \
-    crate://crates.io/tracing-attributes/0.1.15 \
-    crate://crates.io/tracing-core/0.1.17 \
-    crate://crates.io/tracing-futures/0.2.5 \
+    crate://crates.io/tracing-attributes/0.1.19 \
+    crate://crates.io/tracing-core/0.1.22 \
     crate://crates.io/tracing-log/0.1.2 \
-    crate://crates.io/tracing-serde/0.1.2 \
-    crate://crates.io/tracing-subscriber/0.2.17 \
-    crate://crates.io/tracing/0.1.25 \
+    crate://crates.io/tracing-serde/0.1.3 \
+    crate://crates.io/tracing-subscriber/0.2.25 \
+    crate://crates.io/tracing/0.1.31 \
     crate://crates.io/try-lock/0.2.3 \
-    crate://crates.io/try_from/0.3.2 \
-    crate://crates.io/typenum/1.13.0 \
-    crate://crates.io/unicase/2.6.0 \
-    crate://crates.io/unicode-bidi/0.3.5 \
-    crate://crates.io/unicode-normalization/0.1.17 \
-    crate://crates.io/unicode-width/0.1.8 \
-    crate://crates.io/unicode-xid/0.2.1 \
+    crate://crates.io/typenum/1.15.0 \
+    crate://crates.io/unicode-bidi/0.3.7 \
+    crate://crates.io/unicode-normalization/0.1.19 \
+    crate://crates.io/unicode-width/0.1.9 \
+    crate://crates.io/unicode-xid/0.2.2 \
     crate://crates.io/untrusted/0.7.1 \
-    crate://crates.io/unwrap/1.2.1 \
-    crate://crates.io/url/1.7.2 \
-    crate://crates.io/url/2.2.1 \
+    crate://crates.io/url/2.2.2 \
     crate://crates.io/urlparse/0.7.3 \
-    crate://crates.io/uuid/0.7.4 \
     crate://crates.io/uuid/0.8.2 \
-    crate://crates.io/vcpkg/0.2.11 \
+    crate://crates.io/valuable/0.1.0 \
+    crate://crates.io/vcpkg/0.2.15 \
     crate://crates.io/vec_map/0.8.2 \
-    crate://crates.io/version_check/0.9.3 \
-    crate://crates.io/want/0.2.0 \
+    crate://crates.io/version_check/0.9.4 \
     crate://crates.io/want/0.3.0 \
-    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen-backend/0.2.73 \
-    crate://crates.io/wasm-bindgen-futures/0.4.23 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.73 \
-    crate://crates.io/wasm-bindgen-macro/0.2.73 \
-    crate://crates.io/wasm-bindgen-shared/0.2.73 \
-    crate://crates.io/wasm-bindgen/0.2.73 \
-    crate://crates.io/web-sys/0.3.50 \
+    crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen-backend/0.2.79 \
+    crate://crates.io/wasm-bindgen-futures/0.4.29 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.79 \
+    crate://crates.io/wasm-bindgen-macro/0.2.79 \
+    crate://crates.io/wasm-bindgen-shared/0.2.79 \
+    crate://crates.io/wasm-bindgen/0.2.79 \
+    crate://crates.io/web-sys/0.3.56 \
     crate://crates.io/webpki/0.21.4 \
-    crate://crates.io/winapi-build/0.1.1 \
     crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
     crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.2.8 \
     crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/winreg/0.6.2 \
     crate://crates.io/winreg/0.7.0 \
-    crate://crates.io/ws2_32-sys/0.2.1 \
-    crate://crates.io/xml-rs/0.8.3 \
+    crate://crates.io/xml-rs/0.8.4 \
 "
diff --git a/meta-security/recipes-security/krill/krill_0.9.1.bb b/meta-security/recipes-security/krill/krill_0.9.6.bb
similarity index 76%
rename from meta-security/recipes-security/krill/krill_0.9.1.bb
rename to meta-security/recipes-security/krill/krill_0.9.6.bb
index 4dc61cf..fd86c4b 100644
--- a/meta-security/recipes-security/krill/krill_0.9.1.bb
+++ b/meta-security/recipes-security/krill/krill_0.9.6.bb
@@ -5,20 +5,21 @@
 
 DEPENDS = "openssl"
 
+# SRC_URI += "crate://crates.io/krill/0.9.1"
+SRC_URI = "git://github.com/NLnetLabs/krill.git;protocol=https;branch=main"
+SRCREV = "95e6681d5b4024cac7a1892d47fb76abc68f34fb"
+SRC_URI += "file://panic_workaround.patch"
+
 include krill.inc
 
-# SRC_URI += "crate://crates.io/krill/0.9.1"
-SRC_URI += "git://github.com/NLnetLabs/krill.git;protocol=https;nobranch=1;branch=main"
-SRCREV = "d6c03b6f0199b1d10d252750a19a92b84576eb30"
-
-SRC_URI += "file://panic_workaround.patch"
+UPSTREAM_CHECK_URI = "https://github.com/NLnetLabs/${BPN}/releases"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
 CARGO_SRC_DIR = ""
 
 inherit pkgconfig useradd systemd cargo
 
-
 do_install:append () {
     install -d ${D}${sysconfdir}
     install -d ${D}${datadir}/krill
@@ -37,3 +38,5 @@
                        --shell /sbin/nologin ${BPN}"
 
 FILES:${PN} += "{sysconfdir}/defaults ${datadir}"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64).*-linux"
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
index 4dfb788..9c269ca 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.rst
@@ -717,7 +717,7 @@
 
 The format for the :term:`SRC_URI` setting must be::
 
-   SRC_URI = "npm://some.registry.url;OptionA=xxx;OptionB=xxx;..."
+   SRC_URI = "npm://some.registry.url;ParameterA=xxx;ParameterB=xxx;..."
 
 This fetcher supports the following parameters:
 
@@ -757,7 +757,7 @@
 
 The format for the :term:`SRC_URI` setting must be::
 
-   SRC_URI = "npmsw://some.registry.url;OptionA=xxx;OptionB=xxx;..."
+   SRC_URI = "npmsw://some.registry.url;ParameterA=xxx;ParameterB=xxx;..."
 
 This fetcher supports the following parameters:
 
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index af4ff98..12aef3c 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -401,7 +401,7 @@
 
       Example usage::
 
-         BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+         BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
 
    :term:`BB_INVALIDCONF`
       Used in combination with the ``ConfigParsed`` event to trigger
diff --git a/poky/bitbake/lib/bb/asyncrpc/serv.py b/poky/bitbake/lib/bb/asyncrpc/serv.py
index b4cffff..585bc12 100644
--- a/poky/bitbake/lib/bb/asyncrpc/serv.py
+++ b/poky/bitbake/lib/bb/asyncrpc/serv.py
@@ -151,6 +151,13 @@
                 s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
                 s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
 
+                # Enable keep alives. This prevents broken client connections
+                # from persisting on the server for long periods of time.
+                s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
+                s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 30)
+                s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 15)
+                s.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 4)
+
             name = self.server.sockets[0].getsockname()
             if self.server.sockets[0].family == socket.AF_INET6:
                 self.address = "[%s]:%d" % (name[0], name[1])
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 1e47fe7..359b503 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -24,6 +24,7 @@
 from multiprocessing import Process
 import shlex
 import pprint
+import time
 
 bblogger = logging.getLogger("BitBake")
 logger = logging.getLogger("BitBake.RunQueue")
@@ -159,6 +160,46 @@
                 self.buildable.append(tid)
 
         self.rev_prio_map = None
+        self.is_pressure_usable()
+
+    def is_pressure_usable(self):
+        """
+        If monitoring pressure, return True if pressure files can be open and read. For example
+        openSUSE /proc/pressure/* files have readable file permissions but when read the error EOPNOTSUPP (Operation not supported)
+        is returned.
+        """
+        if self.rq.max_cpu_pressure or self.rq.max_io_pressure:
+            try:
+                with open("/proc/pressure/cpu") as cpu_pressure_fds, open("/proc/pressure/io") as io_pressure_fds:
+                    self.prev_cpu_pressure = cpu_pressure_fds.readline().split()[4].split("=")[1]
+                    self.prev_io_pressure = io_pressure_fds.readline().split()[4].split("=")[1]
+                    self.prev_pressure_time = time.time()
+                self.check_pressure = True
+            except:
+                bb.warn("The /proc/pressure files can't be read. Continuing build without monitoring pressure")
+                self.check_pressure = False
+        else:
+            self.check_pressure = False
+
+    def exceeds_max_pressure(self):
+        """
+        Monitor the difference in total pressure at least once per second, if
+        BB_PRESSURE_MAX_{CPU|IO} are set, return True if above threshold.
+        """
+        if self.check_pressure:
+            with open("/proc/pressure/cpu") as cpu_pressure_fds, open("/proc/pressure/io") as io_pressure_fds:
+                # extract "total" from /proc/pressure/{cpu|io}
+                curr_cpu_pressure = cpu_pressure_fds.readline().split()[4].split("=")[1]
+                curr_io_pressure = io_pressure_fds.readline().split()[4].split("=")[1]
+                exceeds_cpu_pressure =  self.rq.max_cpu_pressure and (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) > self.rq.max_cpu_pressure
+                exceeds_io_pressure =  self.rq.max_io_pressure and (float(curr_io_pressure) - float(self.prev_io_pressure)) > self.rq.max_io_pressure
+                now = time.time()
+                if now - self.prev_pressure_time > 1.0:
+                    self.prev_cpu_pressure = curr_cpu_pressure
+                    self.prev_io_pressure = curr_io_pressure
+                    self.prev_pressure_time = now
+            return (exceeds_cpu_pressure or exceeds_io_pressure)
+        return False
 
     def next_buildable_task(self):
         """
@@ -172,6 +213,12 @@
         if not buildable:
             return None
 
+        # Bitbake requires that at least one task be active. Only check for pressure if
+        # this is the case, otherwise the pressure limitation could result in no tasks
+        # being active and no new tasks started thereby, at times, breaking the scheduler.
+        if self.rq.stats.active and self.exceeds_max_pressure():
+            return None
+
         # Filter out tasks that have a max number of threads that have been exceeded
         skip_buildable = {}
         for running in self.rq.runq_running.difference(self.rq.runq_complete):
@@ -1699,6 +1746,8 @@
 
         self.number_tasks = int(self.cfgData.getVar("BB_NUMBER_THREADS") or 1)
         self.scheduler = self.cfgData.getVar("BB_SCHEDULER") or "speed"
+        self.max_cpu_pressure = self.cfgData.getVar("BB_PRESSURE_MAX_CPU")
+        self.max_io_pressure = self.cfgData.getVar("BB_PRESSURE_MAX_IO")
 
         self.sq_buildable = set()
         self.sq_running = set()
@@ -1733,6 +1782,22 @@
         if self.number_tasks <= 0:
              bb.fatal("Invalid BB_NUMBER_THREADS %s" % self.number_tasks)
 
+        lower_limit = 1.0
+        upper_limit = 1000000.0
+        if self.max_cpu_pressure:
+            self.max_cpu_pressure = float(self.max_cpu_pressure)
+            if self.max_cpu_pressure < lower_limit:
+                bb.fatal("Invalid BB_PRESSURE_MAX_CPU %s, minimum value is %s." % (self.max_cpu_pressure, lower_limit))
+            if self.max_cpu_pressure > upper_limit:
+                bb.warn("Your build will be largely unregulated since BB_PRESSURE_MAX_CPU is set to %s. It is very unlikely that such high pressure will be experienced." % (self.max_cpu_pressure))
+
+        if self.max_io_pressure:
+            self.max_io_pressure = float(self.max_io_pressure)
+            if self.max_io_pressure < lower_limit:
+                bb.fatal("Invalid BB_PRESSURE_MAX_IO %s, minimum value is %s." % (self.max_io_pressure, lower_limit))
+            if self.max_io_pressure > upper_limit:
+                bb.warn("Your build will be largely unregulated since BB_PRESSURE_MAX_IO is set to %s. It is very unlikely that such high pressure will be experienced." % (self.max_io_pressure))
+
         # List of setscene tasks which we've covered
         self.scenequeue_covered = set()
         # List of tasks which are covered (including setscene ones)
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index d11da97..19ed68e 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -692,8 +692,8 @@
         return
     if recurse:
         for name in glob.glob(path):
-            if _check_unsafe_delete_path(path):
-                raise Exception('bb.utils.remove: called with dangerous path "%s" and recurse=True, refusing to delete!' % path)
+            if _check_unsafe_delete_path(name):
+                raise Exception('bb.utils.remove: called with dangerous path "%s" and recurse=True, refusing to delete!' % name)
         # shutil.rmtree(name) would be ideal but its too slow
         cmd = []
         if ionice:
@@ -751,7 +751,7 @@
         if not sstat:
             sstat = os.lstat(src)
     except Exception as e:
-        print("movefile: Stating source file failed...", e)
+        logger.warning("movefile: Stating source file failed...", e)
         return None
 
     destexists = 1
@@ -779,7 +779,7 @@
             os.unlink(src)
             return os.lstat(dest)
         except Exception as e:
-            print("movefile: failed to properly create symlink:", dest, "->", target, e)
+            logger.warning("movefile: failed to properly create symlink:", dest, "->", target, e)
             return None
 
     renamefailed = 1
@@ -796,7 +796,7 @@
         except Exception as e:
             if e.errno != errno.EXDEV:
                 # Some random error.
-                print("movefile: Failed to move", src, "to", dest, e)
+                logger.warning("movefile: Failed to move", src, "to", dest, e)
                 return None
             # Invalid cross-device-link 'bind' mounted or actually Cross-Device
 
@@ -808,13 +808,13 @@
                 bb.utils.rename(destpath + "#new", destpath)
                 didcopy = 1
             except Exception as e:
-                print('movefile: copy', src, '->', dest, 'failed.', e)
+                logger.warning('movefile: copy', src, '->', dest, 'failed.', e)
                 return None
         else:
             #we don't yet handle special, so we need to fall back to /bin/mv
             a = getstatusoutput("/bin/mv -f " + "'" + src + "' '" + dest + "'")
             if a[0] != 0:
-                print("movefile: Failed to move special file:" + src + "' to '" + dest + "'", a)
+                logger.warning("movefile: Failed to move special file:" + src + "' to '" + dest + "'", a)
                 return None # failure
         try:
             if didcopy:
@@ -822,7 +822,7 @@
                 os.chmod(destpath, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
                 os.unlink(src)
         except Exception as e:
-            print("movefile: Failed to chown/chmod/unlink", dest, e)
+            logger.warning("movefile: Failed to chown/chmod/unlink", dest, e)
             return None
 
     if newmtime:
diff --git a/poky/documentation/.gitignore b/poky/documentation/.gitignore
index 096b97e..4e077d0 100644
--- a/poky/documentation/.gitignore
+++ b/poky/documentation/.gitignore
@@ -2,6 +2,7 @@
 Pipfile.lock
 poky.yaml
 sphinx-static/switchers.js
+releases.rst
 .vscode/
 */svg/*.png
 */svg/*.pdf
diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst
index 3cf2f76..7ae0ddc 100644
--- a/poky/documentation/brief-yoctoprojectqs/index.rst
+++ b/poky/documentation/brief-yoctoprojectqs/index.rst
@@ -256,7 +256,7 @@
 
          BB_SIGNATURE_HANDLER = "OEEquivHash"
          BB_HASHSERVE = "auto"
-         BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+         BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
          SSTATE_MIRRORS ?= "file://.* https://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH"
 
 #. **Start the Build:** Continue with the following command to build an OS
diff --git a/poky/documentation/migration-guides/release-4.0.rst b/poky/documentation/migration-guides/release-4.0.rst
index 2ef7c97..6584963 100644
--- a/poky/documentation/migration-guides/release-4.0.rst
+++ b/poky/documentation/migration-guides/release-4.0.rst
@@ -6,3 +6,4 @@
    migration-4.0
    release-notes-4.0
    release-notes-4.0.1
+   release-notes-4.0.2
diff --git a/poky/documentation/migration-guides/release-notes-4.0.2.rst b/poky/documentation/migration-guides/release-notes-4.0.2.rst
new file mode 100644
index 0000000..cb10068
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.0.2.rst
@@ -0,0 +1,296 @@
+Release notes for Yocto-4.0.2 (Kirkstone)
+-----------------------------------------
+
+Security Fixes in Yocto-4.0.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  libxslt: Mark :cve:`2022-29824` as not applying
+-  tiff: Add jbig PACKAGECONFIG and clarify IGNORE :cve:`2022-1210`
+-  tiff: mark :cve:`2022-1622` and :cve:`2022-1623` as invalid
+-  pcre2:fix :cve:`2022-1586` Out-of-bounds read
+-  curl: fix :cve:`2022-22576`, :cve:`2022-27775`, :cve:`2022-27776`, :cve:`2022-27774`, :cve:`2022-30115`, :cve:`2022-27780`, :cve:`2022-27781`, :cve:`2022-27779` and :cve:`2022-27782`
+-  qemu: fix :cve:`2021-4206` and :cve:`2021-4207`
+-  freetype: fix :cve:`2022-27404`, :cve:`2022-27405` and :cve:`2022-27406`
+
+Fixes in Yocto-4.0.2
+~~~~~~~~~~~~~~~~~~~~
+
+-  alsa-plugins: fix libavtp vs. avtp packageconfig
+-  archiver: don't use machine variables in shared recipes
+-  archiver: use bb.note instead of echo
+-  baremetal-image: fix broken symlink in do_rootfs
+-  base-passwd: Disable shell for default users
+-  bash: submit patch upstream
+-  bind: upgrade 9.18.1 -> 9.18.2
+-  binutils: Bump to latest 2.38 release branch
+-  bitbake.conf: Make TCLIBC and TCMODE lazy assigned
+-  bitbake: build: Add clean_stamp API function to allow removal of task stamps
+-  bitbake: data: Do not depend on vardepvalueexclude flag
+-  bitbake: fetch2/osc: Small fixes for osc fetcher
+-  bitbake: server/process: Fix logging issues where only the first message was displayed
+-  build-appliance-image: Update to kirkstone head revision
+-  buildhistory.bbclass: fix shell syntax when using dash
+-  cairo: Add missing GPLv3 license checksum entry
+-  classes: rootfs-postcommands: add skip option to overlayfs_qa_check
+-  cronie: upgrade 1.6.0 -> 1.6.1
+-  cups: upgrade 2.4.1 -> 2.4.2
+-  cve-check.bbclass: Added do_populate_sdk[recrdeptask].
+-  cve-check: Add helper for symlink handling
+-  cve-check: Allow warnings to be disabled
+-  cve-check: Fix report generation
+-  cve-check: Only include installed packages for rootfs manifest
+-  cve-check: add support for Ignored CVEs
+-  cve-check: fix return type in check_cves
+-  cve-check: move update_symlinks to a library
+-  cve-check: write empty fragment files in the text mode
+-  cve-extra-exclusions: Add kernel CVEs
+-  cve-update-db-native: make it possible to disable database updates
+-  devtool: Fix _copy_file() TypeError
+-  e2fsprogs: add alternatives handling of lsattr as well
+-  e2fsprogs: update upstream status
+-  efivar: add musl libc compatibility
+-  epiphany: upgrade 42.0 -> 42.2
+-  ffmpeg: upgrade 5.0 -> 5.0.1
+-  fribidi: upgrade 1.0.11 -> 1.0.12
+-  gcc-cross-canadian: Add nativesdk-zstd dependency
+-  gcc-source: Fix incorrect task dependencies from ${B}
+-  gcc: Upgrade to 11.3 release
+-  gcc: depend on zstd-native
+-  git: fix override syntax in RDEPENDS
+-  glib-2.0: upgrade 2.72.1 -> 2.72.2
+-  glibc: Drop make-native dependency
+-  go: upgrade 1.17.8 -> 1.17.10
+-  gst-devtools: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-libav: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-omx: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-plugins-bad: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-plugins-base: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-plugins-good: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-plugins-ugly: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-python: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-rtsp-server: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0-vaapi: upgrade 1.20.1 -> 1.20.2
+-  gstreamer1.0: upgrade 1.20.1 -> 1.20.2
+-  gtk+3: upgrade 3.24.33 -> 3.24.34
+-  gtk-doc: Fix potential shebang overflow on gtkdoc-mkhtml2
+-  image.bbclass: allow overriding dependency on virtual/kernel:do_deploy
+-  insane.bbclass: make sure to close .patch files
+-  iso-codes: upgrade 4.9.0 -> 4.10.0
+-  kernel-yocto.bbclass: Reset to exiting on non-zero return code at end of task
+-  libcgroup: upgrade 2.0.1 -> 2.0.2
+-  liberror-perl: Update sstate/equiv versions to clean cache
+-  libinput: upgrade 1.19.3 -> 1.19.4
+-  libpcre2: upgrade 10.39 -> 10.40
+-  librepo: upgrade 1.14.2 -> 1.14.3
+-  libseccomp: Add missing files for ptests
+-  libseccomp: Correct LIC_FILES_CHKSUM
+-  libxkbcommon: upgrade 1.4.0 -> 1.4.1
+-  libxml2: Upgrade 2.9.13 -> 2.9.14
+-  license.bbclass: Bound beginline and endline in copy_license_files()
+-  license_image.bbclass: Make QA errors fail the build
+-  linux-firmware: add support for building snapshots
+-  linux-firmware: package new Qualcomm firmware
+-  linux-firmware: replace mkdir by install
+-  linux-firmware: split ath3k firmware
+-  linux-firmware: upgrade to 20220610
+-  linux-yocto/5.10: update to v5.10.119
+-  linux-yocto/5.15: Enable MDIO bus config
+-  linux-yocto/5.15: bpf: explicitly disable unpriv eBPF by default
+-  linux-yocto/5.15: cfg/xen: Move x86 configs to separate file
+-  linux-yocto/5.15: update to v5.15.44
+-  local.conf.sample: Update sstate url to new 'all' path
+-  logrotate: upgrade 3.19.0 -> 3.20.1
+-  lttng-modules: Fix build failure for 5.10.119+ and 5.15.44+ kernel
+-  lttng-modules: fix build against 5.18-rc7+
+-  lttng-modules: fix shell syntax
+-  lttng-ust: upgrade 2.13.2 -> 2.13.3
+-  lzo: Add further info to a patch and mark as Inactive-Upstream
+-  makedevs: Don't use COPYING.patch just to add license file into ${S}
+-  manuals: switch to the sstate mirror shared between all versions
+-  mesa.inc: package 00-radv-defaults.conf
+-  mesa: backport a patch to support compositors without zwp_linux_dmabuf_v1 again
+-  mesa: upgrade to 22.0.3
+-  meson.bbclass: add cython binary to cross/native toolchain config
+-  mmc-utils: upgrade to latest revision
+-  mobile-broadband-provider-info: upgrade 20220315 -> 20220511
+-  ncurses: update to patchlevel 20220423
+-  oeqa/selftest/cve_check: add tests for Ignored and partial reports
+-  oeqa/selftest/cve_check: add tests for recipe and image reports
+-  oescripts: change compare logic in OEListPackageconfigTests
+-  openssl: Backport fix for ptest cert expiry
+-  overlayfs: add docs about skipping QA check & service dependencies
+-  ovmf: Fix native build with gcc-12
+-  patch.py: make sure that patches/series file exists before quilt pop
+-  pciutils: avoid lspci conflict with busybox
+-  perl: Add dependency on make-native to avoid race issues
+-  perl: Fix build with gcc-12
+-  poky.conf: bump version for 4.0.2
+-  popt: fix override syntax in RDEPENDS
+-  pypi.bbclass: Set CVE_PRODUCT to PYPI_PACKAGE
+-  python3: Ensure stale empty python module directories don't break the build
+-  python3: Remove problematic paths from sysroot files
+-  python3: fix reproducibility issue with python3-core
+-  python3: use built-in distutils for ptest, rather than setuptools' 'fork'
+-  python: Avoid shebang overflow on python-config.py
+-  rootfs-postcommands.bbclass: correct comments
+-  rootfs.py: close kernel_abi_ver_file
+-  rootfs.py: find .ko.zst kernel modules
+-  rust-common: Drop LLVM_TARGET and simplify
+-  rust-common: Ensure sstate signatures have correct dependencues for do_rust_gen_targets
+-  rust-common: Fix for target definitions returning 'NoneType' for arm
+-  rust-common: Fix native signature dependency issues
+-  rust-common: Fix sstate signatures between arm hf and non-hf
+-  sanity: Don't warn about make 4.2.1 for mint
+-  sanity: Switch to make 4.0 as a minimum version
+-  sed: Specify shell for "nobody" user in run-ptest
+-  selftest/imagefeatures/overlayfs: Always append to DISTRO_FEATURES
+-  selftest/multiconfig: Test that multiconfigs in separate layers works
+-  sqlite3: upgrade to 3.38.5
+-  staging.bbclass: process direct dependencies in deterministic order
+-  staging: Fix rare sysroot corruption issue
+-  strace: Don't run ptest as "nobody"
+-  systemd: Correct 0001-pass-correct-parameters-to-getdents64.patch
+-  systemd: Correct path returned in sd_path_lookup()
+-  systemd: Document future actions needed for set of musl patches
+-  systemd: Drop 0001-test-parse-argument-Include-signal.h.patch
+-  systemd: Drop 0002-don-t-use-glibc-specific-qsort_r.patch
+-  systemd: Drop 0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+-  systemd: Drop redundant musl patches
+-  systemd: Fix build regression with latest update
+-  systemd: Remove __compare_fn_t type in musl-specific patch
+-  systemd: Update patch status
+-  systemd: systemd-systemctl: Support instance conf files during enable
+-  systemd: update ``0008-add-missing-FTW_-macros-for-musl.patch``
+-  systemd: upgrade 250.4 -> 250.5
+-  uboot-sign: Fix potential index error issues
+-  valgrind: submit arm patches upstream
+-  vim: Upgrade to 8.2.5083
+-  webkitgtk: upgrade to 2.36.3
+-  wic/plugins/rootfs: Fix permissions when splitting rootfs folders across partitions
+-  xwayland: upgrade 22.1.0 -> 22.1.1
+-  xxhash: fix build with gcc 12
+-  zip/unzip: mark all submittable patches as Inactive-Upstream
+
+Known Issues in Yocto-4.0.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- There were build failures at the autobuilder due to a known scp issue on Fedora-36 hosts.
+
+Contributors to Yocto-4.0.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Alex Kiernan
+-  Alexander Kanavin
+-  Aryaman Gupta
+-  Bruce Ashfield
+-  Claudius Heine
+-  Davide Gardenal
+-  Dmitry Baryshkov
+-  Ernst Sjöstrand
+-  Felix Moessbauer
+-  Gunjan Gupta
+-  He Zhe
+-  Hitendra Prajapati
+-  Jack Mitchell
+-  Jeremy Puhlman
+-  Jiaqing Zhao
+-  Joerg Vehlow
+-  Jose Quaresma
+-  Kai Kang
+-  Khem Raj
+-  Konrad Weihmann
+-  Marcel Ziswiler
+-  Markus Volk
+-  Marta Rybczynska
+-  Martin Jansa
+-  Michael Opdenacker
+-  Mingli Yu
+-  Naveen Saini
+-  Nick Potenski
+-  Paulo Neves
+-  Pavel Zhukov
+-  Peter Kjellerstedt
+-  Rasmus Villemoes
+-  Richard Purdie
+-  Robert Joslyn
+-  Ross Burton
+-  Samuli Piippo
+-  Sean Anderson
+-  Stefan Wiehler
+-  Steve Sakoman
+-  Sundeep Kokkonda
+-  Tomasz Dziendzielski
+-  Xiaobing Luo
+-  Yi Zhao
+-  leimaohui
+-  wangmy
+
+Repositories / Downloads for Yocto-4.0.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: https://git.yoctoproject.org/git/poky
+-  Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.2 </poky/log/?h=yocto-4.0.2>`
+-  Git Revision: :yocto_git:`a5ea426b1da472fc8549459fff3c1b8c6e02f4b5 </poky/commit/?id=a5ea426b1da472fc8549459fff3c1b8c6e02f4b5>`
+-  Release Artefact: poky-a5ea426b1da472fc8549459fff3c1b8c6e02f4b5
+-  sha: 474ddfacfed6661be054c161597a1a5273188dfe021b31d6156955d93c6b7359
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.2/poky-a5ea426b1da472fc8549459fff3c1b8c6e02f4b5.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.2/poky-a5ea426b1da472fc8549459fff3c1b8c6e02f4b5.tar.bz2
+
+openembedded-core
+
+-  Repository Location: https://git.openembedded.org/openembedded-core
+-  Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
+-  Tag:  :oe_git:`yocto-4.0.2 </openembedded-core/log/?h=yocto-4.0.2>`
+-  Git Revision: :oe_git:`eea52e0c3d24c79464f4afdbc3c397e1cb982231 </openembedded-core/commit/?id=eea52e0c3d24c79464f4afdbc3c397e1cb982231>`
+-  Release Artefact: oecore-eea52e0c3d24c79464f4afdbc3c397e1cb982231
+-  sha: 252d5c2c2db7e14e7365fcc69d32075720b37d629894bae36305eba047a39907
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.2/oecore-eea52e0c3d24c79464f4afdbc3c397e1cb982231.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.2/oecore-eea52e0c3d24c79464f4afdbc3c397e1cb982231.tar.bz2
+
+meta-mingw
+
+-  Repository Location: https://git.yoctoproject.org/git/meta-mingw
+-  Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.2 </meta-mingw/log/?h=yocto-4.0.2>`
+-  Git Revision: :yocto_git:`a90614a6498c3345704e9611f2842eb933dc51c1 </meta-mingw/commit/?id=a90614a6498c3345704e9611f2842eb933dc51c1>`
+-  Release Artefact: meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1
+-  sha: 49f9900bfbbc1c68136f8115b314e95d0b7f6be75edf36a75d9bcd1cca7c6302
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.2/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.2/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
+
+meta-gplv2
+
+-  Repository Location: https://git.yoctoproject.org/git/meta-gplv2
+-  Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.2 </meta-gplv2/log/?h=yocto-4.0.2>`
+-  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.2/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.2/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+
+bitbake
+
+-  Repository Location: https://git.openembedded.org/bitbake
+-  Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
+-  Tag:  :oe_git:`yocto-4.0.2 </bitbake/log/?h=yocto-4.0.2>`
+-  Git Revision: :oe_git:`b8fd6f5d9959d27176ea016c249cf6d35ac8ba03 </bitbake/commit/?id=b8fd6f5d9959d27176ea016c249cf6d35ac8ba03>`
+-  Release Artefact: bitbake-b8fd6f5d9959d27176ea016c249cf6d35ac8ba03
+-  sha: 373818b1dee2c502264edf654d6d8f857b558865437f080e02d5ba6bb9e72cc3
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.2/bitbake-b8fd6f5d9959d27176ea016c249cf6d35ac8ba03.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.2/bitbake-b8fd6f5d9959d27176ea016c249cf6d35ac8ba03.tar.bz2
+
+yocto-docs
+
+-  Repository Location: https://git.yoctoproject.org/git/yocto-docs
+-  Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
+-  Tag: :yocto_git:`yocto-4.0.2 </yocto-docs/log/?h=yocto-4.0.2>`
+-  Git Revision: :yocto_git:`662294dccd028828d5c7e9fd8f5c8e14df53df4b </yocto-docs/commit/?id=662294dccd028828d5c7e9fd8f5c8e14df53df4b>`
diff --git a/poky/documentation/migration-guides/release-notes-4.0.rst b/poky/documentation/migration-guides/release-notes-4.0.rst
index 4bf680d..b675cae 100644
--- a/poky/documentation/migration-guides/release-notes-4.0.rst
+++ b/poky/documentation/migration-guides/release-notes-4.0.rst
@@ -22,7 +22,7 @@
 
      BB_SIGNATURE_HANDLER = "OEEquivHash"
      BB_HASHSERVE = "auto"
-     BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
+     BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
      SSTATE_MIRRORS ?= "file://.* https://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH"
 
 - The Python package build process is now based on `wheels <https://pythonwheels.com/>`__
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index 1710830..cf817e9 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -1886,10 +1886,14 @@
       optionally support the feature. For example, specifying "x11" in
       :term:`DISTRO_FEATURES`, causes every piece of software built for the
       target that can optionally support X11 to have its X11 support
-      enabled. Note: just enabling :term:`DISTRO_FEATURES` alone doesn't
-      enable feature support for packages, mechanisms such as making
-      :term:`PACKAGECONFIG` track :term:`DISTRO_FEATURES` are used
-      to enable/disable package features.
+      enabled.
+
+      .. note::
+
+         Just enabling :term:`DISTRO_FEATURES` alone doesn't
+         enable feature support for packages. Mechanisms such as making
+         :term:`PACKAGECONFIG` track :term:`DISTRO_FEATURES` are used
+         to enable/disable package features.
 
       Two more examples are Bluetooth and NFS support. For a more complete
       list of features that ships with the Yocto Project and that you can
@@ -7655,7 +7659,7 @@
       :ref:`systemd-boot <ref-classes-systemd-boot>` class sets the
       :term:`SYSTEMD_BOOT_CFG` as follows::
 
-         SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf"
+         SYSTEMD_BOOT_CFG ?= "${S}/loader.conf"
 
       For information on Systemd-boot, see the `Systemd-boot
       documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
diff --git a/poky/documentation/releases.rst b/poky/documentation/releases.rst
deleted file mode 100644
index b2b4486..0000000
--- a/poky/documentation/releases.rst
+++ /dev/null
@@ -1,251 +0,0 @@
-.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
-
-..
-   NOTE FOR RELEASE MAINTAINERS:
-   This file only needs updating in the development release ("master" branch)
-   When documentation for stable releases is built,
-   the latest version from "master" is used
-   by https://git.yoctoproject.org/yocto-autobuilder-helper/tree/scripts/run-docs-build
-
-===========================
- Supported Release Manuals
-===========================
-
-******************************
-Release Series 4.0 (kirkstone)
-******************************
-
-- :yocto_docs:`4.0 Documentation </4.0>`
-- :yocto_docs:`4.0.1 Documentation </4.0.1>`
-- :yocto_docs:`4.0.2 Documentation </4.0.2>`
-
-****************************
-Release Series 3.1 (dunfell)
-****************************
-
-- :yocto_docs:`3.1 Documentation </3.1>`
-- :yocto_docs:`3.1.1 Documentation </3.1.1>`
-- :yocto_docs:`3.1.2 Documentation </3.1.2>`
-- :yocto_docs:`3.1.3 Documentation </3.1.3>`
-- :yocto_docs:`3.1.4 Documentation </3.1.4>`
-- :yocto_docs:`3.1.5 Documentation </3.1.5>`
-- :yocto_docs:`3.1.6 Documentation </3.1.6>`
-- :yocto_docs:`3.1.7 Documentation </3.1.7>`
-- :yocto_docs:`3.1.8 Documentation </3.1.8>`
-- :yocto_docs:`3.1.9 Documentation </3.1.9>`
-- :yocto_docs:`3.1.10 Documentation </3.1.10>`
-- :yocto_docs:`3.1.11 Documentation </3.1.11>`
-- :yocto_docs:`3.1.12 Documentation </3.1.12>`
-- :yocto_docs:`3.1.13 Documentation </3.1.13>`
-- :yocto_docs:`3.1.14 Documentation </3.1.14>`
-- :yocto_docs:`3.1.15 Documentation </3.1.15>`
-- :yocto_docs:`3.1.16 Documentation </3.1.16>`
-- :yocto_docs:`3.1.17 Documentation </3.1.17>`
-
-==========================
- Outdated Release Manuals
-==========================
-
-******************************
-Release Series 3.4 (honister)
-******************************
-
-- :yocto_docs:`3.4 Documentation </3.4>`
-- :yocto_docs:`3.4.1 Documentation </3.4.1>`
-- :yocto_docs:`3.4.2 Documentation </3.4.2>`
-- :yocto_docs:`3.4.3 Documentation </3.4.3>`
-- :yocto_docs:`3.4.4 Documentation </3.4.4>`
-
-******************************
-Release Series 3.3 (hardknott)
-******************************
-
-- :yocto_docs:`3.3 Documentation </3.3>`
-- :yocto_docs:`3.3.1 Documentation </3.3.1>`
-- :yocto_docs:`3.3.2 Documentation </3.3.2>`
-- :yocto_docs:`3.3.3 Documentation </3.3.3>`
-- :yocto_docs:`3.3.4 Documentation </3.3.4>`
-- :yocto_docs:`3.3.5 Documentation </3.3.5>`
-- :yocto_docs:`3.3.6 Documentation </3.3.6>`
-
-*******************************
-Release Series 3.2 (gatesgarth)
-*******************************
-
-- :yocto_docs:`3.2 Documentation </3.2>`
-- :yocto_docs:`3.2.1 Documentation </3.2.1>`
-- :yocto_docs:`3.2.2 Documentation </3.2.2>`
-- :yocto_docs:`3.2.3 Documentation </3.2.3>`
-- :yocto_docs:`3.2.4 Documentation </3.2.4>`
-
-*************************
-Release Series 3.0 (zeus)
-*************************
-
-- :yocto_docs:`3.0 Documentation </3.0>`
-- :yocto_docs:`3.0.1 Documentation </3.0.1>`
-- :yocto_docs:`3.0.2 Documentation </3.0.2>`
-- :yocto_docs:`3.0.3 Documentation </3.0.3>`
-- :yocto_docs:`3.0.4 Documentation </3.0.4>`
-
-****************************
-Release Series 2.7 (warrior)
-****************************
-
-- :yocto_docs:`2.7 Documentation </2.7>`
-- :yocto_docs:`2.7.1 Documentation </2.7.1>`
-- :yocto_docs:`2.7.2 Documentation </2.7.2>`
-- :yocto_docs:`2.7.3 Documentation </2.7.3>`
-- :yocto_docs:`2.7.4 Documentation </2.7.4>`
-
-*************************
-Release Series 2.6 (thud)
-*************************
-
-- :yocto_docs:`2.6 Documentation </2.6>`
-- :yocto_docs:`2.6.1 Documentation </2.6.1>`
-- :yocto_docs:`2.6.2 Documentation </2.6.2>`
-- :yocto_docs:`2.6.3 Documentation </2.6.3>`
-- :yocto_docs:`2.6.4 Documentation </2.6.4>`
-
-*************************
-Release Series 2.5 (sumo)
-*************************
-
-- :yocto_docs:`2.5 Documentation </2.5>`
-- :yocto_docs:`2.5.1 Documentation </2.5.1>`
-- :yocto_docs:`2.5.2 Documentation </2.5.2>`
-- :yocto_docs:`2.5.3 Documentation </2.5.3>`
-
-**************************
-Release Series 2.4 (rocko)
-**************************
-
-- :yocto_docs:`2.4 Documentation </2.4>`
-- :yocto_docs:`2.4.1 Documentation </2.4.1>`
-- :yocto_docs:`2.4.2 Documentation </2.4.2>`
-- :yocto_docs:`2.4.3 Documentation </2.4.3>`
-- :yocto_docs:`2.4.4 Documentation </2.4.4>`
-
-*************************
-Release Series 2.3 (pyro)
-*************************
-
-- :yocto_docs:`2.3 Documentation </2.3>`
-- :yocto_docs:`2.3.1 Documentation </2.3.1>`
-- :yocto_docs:`2.3.2 Documentation </2.3.2>`
-- :yocto_docs:`2.3.3 Documentation </2.3.3>`
-- :yocto_docs:`2.3.4 Documentation </2.3.4>`
-
-**************************
-Release Series 2.2 (morty)
-**************************
-
-- :yocto_docs:`2.2 Documentation </2.2>`
-- :yocto_docs:`2.2.1 Documentation </2.2.1>`
-- :yocto_docs:`2.2.2 Documentation </2.2.2>`
-- :yocto_docs:`2.2.3 Documentation </2.2.3>`
-
-****************************
-Release Series 2.1 (krogoth)
-****************************
-
-- :yocto_docs:`2.1 Documentation </2.1>`
-- :yocto_docs:`2.1.1 Documentation </2.1.1>`
-- :yocto_docs:`2.1.2 Documentation </2.1.2>`
-- :yocto_docs:`2.1.3 Documentation </2.1.3>`
-
-***************************
-Release Series 2.0 (jethro)
-***************************
-
-- :yocto_docs:`1.9 Documentation </1.9>`
-- :yocto_docs:`2.0 Documentation </2.0>`
-- :yocto_docs:`2.0.1 Documentation </2.0.1>`
-- :yocto_docs:`2.0.2 Documentation </2.0.2>`
-- :yocto_docs:`2.0.3 Documentation </2.0.3>`
-
-*************************
-Release Series 1.8 (fido)
-*************************
-
-- :yocto_docs:`1.8 Documentation </1.8>`
-- :yocto_docs:`1.8.1 Documentation </1.8.1>`
-- :yocto_docs:`1.8.2 Documentation </1.8.2>`
-
-**************************
-Release Series 1.7 (dizzy)
-**************************
-
-- :yocto_docs:`1.7 Documentation </1.7>`
-- :yocto_docs:`1.7.1 Documentation </1.7.1>`
-- :yocto_docs:`1.7.2 Documentation </1.7.2>`
-- :yocto_docs:`1.7.3 Documentation </1.7.3>`
-
-**************************
-Release Series 1.6 (daisy)
-**************************
-
-- :yocto_docs:`1.6 Documentation </1.6>`
-- :yocto_docs:`1.6.1 Documentation </1.6.1>`
-- :yocto_docs:`1.6.2 Documentation </1.6.2>`
-- :yocto_docs:`1.6.3 Documentation </1.6.3>`
-
-*************************
-Release Series 1.5 (dora)
-*************************
-
-- :yocto_docs:`1.5 Documentation </1.5>`
-- :yocto_docs:`1.5.1 Documentation </1.5.1>`
-- :yocto_docs:`1.5.2 Documentation </1.5.2>`
-- :yocto_docs:`1.5.3 Documentation </1.5.3>`
-- :yocto_docs:`1.5.4 Documentation </1.5.4>`
-
-**************************
-Release Series 1.4 (dylan)
-**************************
-
-- :yocto_docs:`1.4 Documentation </1.4>`
-- :yocto_docs:`1.4.1 Documentation </1.4.1>`
-- :yocto_docs:`1.4.2 Documentation </1.4.2>`
-- :yocto_docs:`1.4.3 Documentation </1.4.3>`
-- :yocto_docs:`1.4.4 Documentation </1.4.4>`
-- :yocto_docs:`1.4.5 Documentation </1.4.5>`
-
-**************************
-Release Series 1.3 (danny)
-**************************
-
-- :yocto_docs:`1.3 Documentation </1.3>`
-- :yocto_docs:`1.3.1 Documentation </1.3.1>`
-- :yocto_docs:`1.3.2 Documentation </1.3.2>`
-
-***************************
-Release Series 1.2 (denzil)
-***************************
-
-- :yocto_docs:`1.2 Documentation </1.2>`
-- :yocto_docs:`1.2.1 Documentation </1.2.1>`
-- :yocto_docs:`1.2.2 Documentation </1.2.2>`
-
-***************************
-Release Series 1.1 (edison)
-***************************
-
-- :yocto_docs:`1.1 Documentation </1.1>`
-- :yocto_docs:`1.1.1 Documentation </1.1.1>`
-- :yocto_docs:`1.1.2 Documentation </1.1.2>`
-
-****************************
-Release Series 1.0 (bernard)
-****************************
-
-- :yocto_docs:`1.0 Documentation </1.0>`
-- :yocto_docs:`1.0.1 Documentation </1.0.1>`
-- :yocto_docs:`1.0.2 Documentation </1.0.2>`
-
-****************************
-Release Series 0.9 (laverne)
-****************************
-
-- :yocto_docs:`0.9 Documentation </0.9>`
diff --git a/poky/documentation/set_versions.py b/poky/documentation/set_versions.py
index a7ceb34..ddf7085 100755
--- a/poky/documentation/set_versions.py
+++ b/poky/documentation/set_versions.py
@@ -1,9 +1,11 @@
 #!/usr/bin/env python3
 #
 # Add version information to poky.yaml based upon current git branch/tags
+# Also generate the list of available manuals (releases.rst file)
 #
 # Copyright Linux Foundation
 # Author: Richard Purdie <richard.purdie@linuxfoundation.org>
+# Author: Quentin Schulz <foss@0leil.net>
 #
 # SPDX-License-Identifier: MIT
 #
@@ -14,6 +16,7 @@
 import sys
 import os
 import itertools
+import re
 
 ourversion = None
 if len(sys.argv) == 2:
@@ -231,3 +234,77 @@
 
 print("switchers.js generated from switchers.js.in")
 
+# generate releases.rst
+
+# list missing tags in yocto-docs
+missing_tags = [
+        'yocto-0.9',
+        'yocto-1.0', 'yocto-1.0.1',
+        'yocto-1.1', 'yocto-1.1.1',
+        'yocto-1.2',
+        'yocto-1.4.4', 'yocto-1.4.5',
+        'yocto-1.5', 'yocto-1.5.2', 'yocto-1.5.3', 'yocto-1.5.4',
+        'yocto-1.6', 'yocto-1.6.1', 'yocto-1.6.2',
+        'yocto-1.7', 'yocto-1.7.1',
+        'yocto-1.9',
+        'yocto-2.5.3',
+        'yocto-3.1', 'yocto-3.1.1', 'yocto-3.1.2', 'yocto-3.1.3',
+        ]
+
+semver = re.compile(r'yocto-(\d+)\.(\d+)(?:\.)?(\d*)')
+
+# git is able to properly order semver versions but not python
+# instead of adding a dependency on semver module, let's convert the version
+# into a decimal number, e.g. 11.23.1 will be 112301 and 1.5 will be 010500 so
+# it can be used as a key for the sorting algorithm.
+# This can be removed once all the old tags are re-created.
+def tag_to_semver_like(v):
+    v_semver = semver.search(v)
+    v_maj, v_min, v_patch = v_semver.groups('0')
+    return int("{:0>2}{:0>2}{:0>2}".format(v_maj, v_min, v_patch), 10)
+
+yocto_tags = subprocess.run(["git", "tag", "--list", "--sort=version:refname", "yocto-*"], capture_output=True, text=True).stdout
+yocto_tags = sorted(yocto_tags.split() + missing_tags, key=tag_to_semver_like)
+tags = [tag[6:] for tag in yocto_tags]
+
+with open('releases.rst', 'w') as f:
+    f.write('===========================\n')
+    f.write(' Supported Release Manuals\n')
+    f.write('===========================\n')
+    f.write('\n')
+
+    for activerelease in activereleases:
+        title = "Release Series %s (%s)" % (release_series[activerelease], activerelease)
+        f.write('*' * len(title) + '\n')
+        f.write(title + '\n')
+        f.write('*' * len(title) + '\n')
+        f.write('\n')
+
+        for tag in tags:
+            if tag == release_series[activerelease] or tag.startswith('%s.' % release_series[activerelease]):
+                f.write('- :yocto_docs:`%s Documentation </%s>`\n' % (tag, tag))
+        f.write('\n')
+
+    f.write('==========================\n')
+    f.write(' Outdated Release Manuals\n')
+    f.write('==========================\n')
+    f.write('\n')
+
+    for series in release_series:
+        if series == devbranch or series in activereleases:
+            continue
+
+        if series == "jethro-pre":
+            continue
+
+        title = "Release Series %s (%s)" % (release_series[series], series)
+        f.write('*' * len(title) + '\n')
+        f.write(title + '\n')
+        f.write('*' * len(title) + '\n')
+        f.write('\n')
+        if series == "jethro":
+            f.write('- :yocto_docs:`1.9 Documentation </1.9>`\n')
+        for tag in tags:
+            if tag == release_series[series] or tag.startswith('%s.' % release_series[series]):
+                f.write('- :yocto_docs:`%s Documentation </%s>`\n' % (tag, tag))
+        f.write('\n')
diff --git a/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc b/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc
index 6f473de..0cc4e00 100644
--- a/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc
+++ b/poky/meta-poky/conf/distro/include/poky-floating-revisions.inc
@@ -43,8 +43,6 @@
 #PREFERRED_VERSION_xf86-input-evdev ?= "2.0.4"
 SRCREV:pn-xf86-input-mouse = "${AUTOREV}"
 #PREFERRED_VERSION_xf86-input-mouse ?= "1.3.0+git%"
-SRCREV:pn-xf86-input-keyboard = "${AUTOREV}"
-#PREFERRED_VERSION_xf86-input-keyboard ?= "1.3.1+git%"
 SRCREV:pn-xf86-input-synaptics = "${AUTOREV}"
 #PREFERRED_VERSION_xf86-input-synaptics ?= "0.15.2+git%"
 
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index b4c64c4..6625a11 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -35,15 +35,11 @@
 SANITY_TESTED_DISTROS ?= " \
             poky-3.3 \n \
             poky-3.4 \n \
-            ubuntu-16.04 \n \
             ubuntu-18.04 \n \
             ubuntu-20.04 \n \
             ubuntu-21.10 \n \
             fedora-34 \n \
             fedora-35 \n \
-            centos-7 \n \
-            centos-8 \n \
-            debian-9 \n \
             debian-10 \n \
             debian-11 \n \
             opensuseleap-15.3 \n \
@@ -68,3 +64,6 @@
 BB_HASHSERVE ??= "auto"
 
 INIT_MANAGER = "sysvinit"
+
+# We need debug symbols so that SPDX license manifests for the kernel work
+KERNEL_EXTRA_FEATURES:append = " features/debug/debug-kernel.scc"
diff --git a/poky/meta-poky/conf/local.conf.sample b/poky/meta-poky/conf/local.conf.sample
index c91d0dc..b96dc90 100644
--- a/poky/meta-poky/conf/local.conf.sample
+++ b/poky/meta-poky/conf/local.conf.sample
@@ -5,7 +5,8 @@
 # be set in this file. More adventurous users can look at
 # local.conf.sample.extended which contains other examples of configuration which
 # can be placed in this file but new users likely won't need any of them
-# initially.
+# initially. There's also site.conf.sample which contains examples of site specific
+# information such as proxy server addresses.
 #
 # Lines starting with the '#' character are commented out and in some cases the
 # default values are provided as comments to show people example syntax. Enabling
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 33070cd..5da369d 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -69,7 +69,6 @@
 do_dumpdata[dirs] = "${ARCHIVER_OUTDIR}"
 do_ar_recipe[dirs] = "${ARCHIVER_OUTDIR}"
 do_ar_original[dirs] = "${ARCHIVER_OUTDIR} ${ARCHIVER_WORKDIR}"
-do_deploy_archives[dirs] = "${WORKDIR}"
 
 # This is a convenience for the shell script to use it
 
diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass
index cc02de5..571b675 100644
--- a/poky/meta/classes/base.bbclass
+++ b/poky/meta/classes/base.bbclass
@@ -209,6 +209,7 @@
 addtask do_deploy_source_date_epoch before do_configure after do_patch
 
 python create_source_date_epoch_stamp() {
+    # Version: 1
     source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S'))
     oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d)
 }
diff --git a/poky/meta/classes/create-spdx.bbclass b/poky/meta/classes/create-spdx.bbclass
index 15cccac..10deba6 100644
--- a/poky/meta/classes/create-spdx.bbclass
+++ b/poky/meta/classes/create-spdx.bbclass
@@ -451,7 +451,7 @@
     recipe.name = d.getVar("PN")
     recipe.versionInfo = d.getVar("PV")
     recipe.SPDXID = oe.sbom.get_recipe_spdxid(d)
-    recipe.packageSupplier = d.getVar("SPDX_SUPPLIER")
+    recipe.supplier = d.getVar("SPDX_SUPPLIER")
     if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d):
         recipe.annotations.append(create_annotation(d, "isNative"))
 
@@ -561,7 +561,7 @@
             spdx_package.name = pkg_name
             spdx_package.versionInfo = d.getVar("PV")
             spdx_package.licenseDeclared = convert_license_to_spdx(package_license, package_doc, d, found_licenses)
-            spdx_package.packageSupplier = d.getVar("SPDX_SUPPLIER")
+            spdx_package.supplier = d.getVar("SPDX_SUPPLIER")
 
             package_doc.packages.append(spdx_package)
 
@@ -577,6 +577,7 @@
                     pkgdest / package,
                     lambda file_counter: oe.sbom.get_packaged_file_spdxid(pkg_name, file_counter),
                     lambda filepath: ["BINARY"],
+                    ignore_top_level_dirs=['CONTROL', 'DEBIAN'],
                     archive=archive,
                 )
 
@@ -901,7 +902,7 @@
     image.name = d.getVar("PN")
     image.versionInfo = d.getVar("PV")
     image.SPDXID = rootfs_spdxid
-    image.packageSupplier = d.getVar("SPDX_SUPPLIER")
+    image.supplier = d.getVar("SPDX_SUPPLIER")
 
     doc.packages.append(image)
 
diff --git a/poky/meta/classes/gobject-introspection-data.bbclass b/poky/meta/classes/gobject-introspection-data.bbclass
index 2ef6846..d90cdb4 100644
--- a/poky/meta/classes/gobject-introspection-data.bbclass
+++ b/poky/meta/classes/gobject-introspection-data.bbclass
@@ -5,3 +5,8 @@
 # so that qemu use can be avoided when necessary.
 GI_DATA_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', \
                       bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d), 'False', d)}"
+
+do_compile:prepend() {
+    # This prevents g-ir-scanner from writing cache data to $HOME
+    export GI_SCANNER_DISABLE_CACHE=1
+}
diff --git a/poky/meta/classes/image_types_wic.bbclass b/poky/meta/classes/image_types_wic.bbclass
index 79f8d93..8497916 100644
--- a/poky/meta/classes/image_types_wic.bbclass
+++ b/poky/meta/classes/image_types_wic.bbclass
@@ -84,6 +84,8 @@
 
 WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
 WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native erofs-utils-native"
+# Unified kernel images need objcopy
+WKS_FILE_DEPENDS_DEFAULT += "virtual/${MLPREFIX}${TARGET_PREFIX}binutils"
 WKS_FILE_DEPENDS_BOOTLOADERS = ""
 WKS_FILE_DEPENDS_BOOTLOADERS:x86 = "syslinux grub-efi systemd-boot os-release"
 WKS_FILE_DEPENDS_BOOTLOADERS:x86-64 = "syslinux grub-efi systemd-boot os-release"
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 37e10ad..c8b434b 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -1335,6 +1335,7 @@
         oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses PN not BPN" % pn, d)
 
     for url in d.getVar("SRC_URI").split():
+        # Search for github and gitlab URLs that pull unstable archives (comment for future greppers)
         if re.search(r"git(hu|la)b\.com/.+/.+/archive/.+", url):
             oe.qa.handle_error("src-uri-bad", "%s: SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git protocol" % pn, d)
 
diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass
index 2112ae4..7531645 100644
--- a/poky/meta/classes/kernel-fitimage.bbclass
+++ b/poky/meta/classes/kernel-fitimage.bbclass
@@ -346,6 +346,7 @@
 
 	conf_csum="${FIT_HASH_ALG}"
 	conf_sign_algo="${FIT_SIGN_ALG}"
+	conf_padding_algo="${FIT_PAD_ALG}"
 	if [ "${UBOOT_SIGN_ENABLE}" = "1" ] ; then
 		conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 	fi
@@ -465,6 +466,7 @@
                         signature-1 {
                                 algo = "$conf_csum,$conf_sign_algo";
                                 key-name-hint = "$conf_sign_keyname";
+                                padding = "$conf_padding_algo";
                                 $sign_line
                         };
 EOF
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index 5d2f17c..61b3e8c 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -629,7 +629,7 @@
 
 do_savedefconfig() {
 	bbplain "Saving defconfig to:\n${B}/defconfig"
-	oe_runmake -C ${B} savedefconfig
+	oe_runmake -C ${B} LD='${KERNEL_LD}' savedefconfig
 }
 do_savedefconfig[nostamp] = "1"
 addtask savedefconfig after do_configure
diff --git a/poky/meta/classes/native.bbclass b/poky/meta/classes/native.bbclass
index fc7422c..5a273cd 100644
--- a/poky/meta/classes/native.bbclass
+++ b/poky/meta/classes/native.bbclass
@@ -23,6 +23,8 @@
 TARGET_CXXFLAGS = "${BUILD_CXXFLAGS}"
 TARGET_LDFLAGS = "${BUILD_LDFLAGS}"
 TARGET_FPU = ""
+TUNE_FEATURES = ""
+ABIEXTENSION = ""
 
 HOST_ARCH = "${BUILD_ARCH}"
 HOST_OS = "${BUILD_OS}"
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index 63887b3..97e97d2 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -566,7 +566,7 @@
 
         # If S isnt based on WORKDIR we can infer our sources are located elsewhere,
         # e.g. using externalsrc; use S as base for our dirs
-        if workdir in sdir:
+        if workdir in sdir or 'work-shared' in sdir:
             basedir = workbasedir
             parentdir = workparentdir
         else:
diff --git a/poky/meta/classes/populate_sdk_base.bbclass b/poky/meta/classes/populate_sdk_base.bbclass
index 16f929b..f260217 100644
--- a/poky/meta/classes/populate_sdk_base.bbclass
+++ b/poky/meta/classes/populate_sdk_base.bbclass
@@ -43,9 +43,22 @@
 
 SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
 
-TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${MACHINE}"
+SDK_TOOLCHAIN_LANGS ??= ""
+SDK_TOOLCHAIN_LANGS:remove:sdkmingw32 = "rust"
+
+TOOLCHAIN_HOST_TASK ?= " \
+    nativesdk-packagegroup-sdk-host \
+    packagegroup-cross-canadian-${MACHINE} \
+    ${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'go', 'packagegroup-go-cross-canadian-${MACHINE}', '', d)} \
+    ${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'rust', 'packagegroup-rust-cross-canadian-${MACHINE}', '', d)} \
+"
 TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
-TOOLCHAIN_TARGET_TASK ?= "${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')} target-sdk-provides-dummy"
+TOOLCHAIN_TARGET_TASK ?= " \
+    ${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')} \
+    ${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'go', multilib_pkg_extend(d, 'packagegroup-go-sdk-target'), '', d)} \
+    ${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'rust', multilib_pkg_extend(d, 'libstd-rs'), '', d)} \
+    target-sdk-provides-dummy \
+"
 TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
 TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-toolchain-${SDK_VERSION}"
 
diff --git a/poky/meta/classes/rootfs-postcommands.bbclass b/poky/meta/classes/rootfs-postcommands.bbclass
index 452b87f..a8a952f 100644
--- a/poky/meta/classes/rootfs-postcommands.bbclass
+++ b/poky/meta/classes/rootfs-postcommands.bbclass
@@ -305,7 +305,7 @@
 }
 
 rootfs_check_host_user_contaminated () {
-	contaminated="${WORKDIR}/host-user-contaminated.txt"
+	contaminated="${S}/host-user-contaminated.txt"
 	HOST_USER_UID="$(PSEUDO_UNLOAD=1 id -u)"
 	HOST_USER_GID="$(PSEUDO_UNLOAD=1 id -g)"
 
diff --git a/poky/meta/recipes-devtools/rust/rust-common.inc b/poky/meta/classes/rust-target-config.bbclass
similarity index 86%
rename from poky/meta/recipes-devtools/rust/rust-common.inc
rename to poky/meta/classes/rust-target-config.bbclass
index ef70c48..87b7dee 100644
--- a/poky/meta/recipes-devtools/rust/rust-common.inc
+++ b/poky/meta/classes/rust-target-config.bbclass
@@ -1,4 +1,3 @@
-
 # Right now this is focused on arm-specific tune features.
 # We get away with this for now as one can only use x86-64 as the build host
 # (not arm).
@@ -117,14 +116,15 @@
                     llvm_features_from_cc_arch(d) +
                     llvm_features_from_target_fpu(d))
 
+llvm_features[vardepvalue] = "${@llvm_features(d)}"
 
 ## arm-unknown-linux-gnueabihf
-DATA_LAYOUT[arm] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
-TARGET_ENDIAN[arm] = "little"
-TARGET_POINTER_WIDTH[arm] = "32"
-TARGET_C_INT_WIDTH[arm] = "32"
-MAX_ATOMIC_WIDTH[arm] = "64"
-FEATURES[arm] = "+v6,+vfp2"
+DATA_LAYOUT[arm-eabi] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
+TARGET_ENDIAN[arm-eabi] = "little"
+TARGET_POINTER_WIDTH[arm-eabi] = "32"
+TARGET_C_INT_WIDTH[arm-eabi] = "32"
+MAX_ATOMIC_WIDTH[arm-eabi] = "64"
+FEATURES[arm-eabi] = "+v6,+vfp2"
 
 ## armv7-unknown-linux-gnueabihf
 DATA_LAYOUT[armv7-eabi] = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
@@ -232,12 +232,6 @@
 TARGET_C_INT_WIDTH[riscv64] = "64"
 MAX_ATOMIC_WIDTH[riscv64] = "64"
 
-def sys_for(d, thing):
-    return d.getVar('{}_SYS'.format(thing))
-
-def prefix_for(d, thing):
-    return d.getVar('{}_PREFIX'.format(thing))
-
 # Convert a normal arch (HOST_ARCH, TARGET_ARCH, BUILD_ARCH, etc) to something
 # rust's internals won't choke on.
 def arch_to_rust_target_arch(arch):
@@ -285,17 +279,27 @@
     except:
         return trans.get(target, "generic")
 
-TARGET_LLVM_CPU="${@llvm_cpu(d)}"
-TARGET_LLVM_FEATURES = "${@llvm_features(d)}"
+llvm_cpu[vardepvalue] = "${@llvm_cpu(d)}"
 
-# class-native implies TARGET=HOST, and TUNE_FEATURES only describes the real
-# (original) target.
-TARGET_LLVM_FEATURES:class-native = "${@','.join(llvm_features_from_cc_arch(d))}"
-
-def rust_gen_target(d, thing, wd, features, cpu, arch, abi=""):
+def rust_gen_target(d, thing, wd, arch):
     import json
-    sys = sys_for(d, thing)
-    prefix = prefix_for(d, thing)
+    sys = d.getVar('{}_SYS'.format(thing))
+    prefix = d.getVar('{}_PREFIX'.format(thing))
+
+    abi = None
+    cpu = "generic"
+    features = ""
+
+    if thing == "TARGET":
+        abi = d.getVar('ABIEXTENSION')
+        cpu = llvm_cpu(d)
+        if bb.data.inherits_class('native', d):
+            features = ','.join(llvm_features_from_cc_arch(d))
+        else:
+            features = llvm_features(d) or ""
+        # arm and armv7 have different targets in llvm
+        if arch == "arm" and target_is_armv7(d):
+            arch = 'armv7'
 
     rust_arch = oe.rust.arch_to_rust_arch(arch)
 
@@ -307,9 +311,13 @@
     features = features or d.getVarFlag('FEATURES', arch_abi) or ""
     features = features.strip()
 
+    llvm_target = d.getVar('RUST_TARGET_SYS')
+    if thing == "BUILD":
+        llvm_target = d.getVar('RUST_HOST_SYS')
+
     # build tspec
     tspec = {}
-    tspec['llvm-target'] = d.getVar('RUST_TARGET_SYS', arch_abi)
+    tspec['llvm-target'] = llvm_target
     tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi)
     tspec['max-atomic-width'] = int(d.getVarFlag('MAX_ATOMIC_WIDTH', arch_abi))
     tspec['target-pointer-width'] = d.getVarFlag('TARGET_POINTER_WIDTH', arch_abi)
@@ -345,14 +353,20 @@
         json.dump(tspec, f, indent=4)
 
 # These are accounted for in tmpdir path names so don't need to be in the task sig
-rust_gen_target[vardepsexclude] += "RUST_HOST_SYS RUST_TARGET_SYS"
+rust_gen_target[vardepsexclude] += "RUST_HOST_SYS RUST_TARGET_SYS ABIEXTENSION llvm_cpu"
 
 do_rust_gen_targets[vardeps] += "DATA_LAYOUT TARGET_ENDIAN TARGET_POINTER_WIDTH TARGET_C_INT_WIDTH MAX_ATOMIC_WIDTH FEATURES"
 
+RUST_TARGETGENS = "BUILD"
+
 python do_rust_gen_targets () {
     wd = d.getVar('WORKDIR') + '/targets/'
-    build_arch = d.getVar('BUILD_ARCH')
-    rust_gen_target(d, 'BUILD', wd, "", "generic", build_arch)
+    # Order of BUILD, HOST, TARGET is important in case the files overwrite, most specific last
+    rust_gen_target(d, 'BUILD', wd, d.getVar('BUILD_ARCH'))
+    if "HOST" in d.getVar("RUST_TARGETGENS"):
+        rust_gen_target(d, 'HOST', wd, d.getVar('HOST_ARCH'))
+    if "TARGET" in d.getVar("RUST_TARGETGENS"):
+        rust_gen_target(d, 'TARGET', wd, d.getVar('TARGET_ARCH'))
 }
 
 addtask rust_gen_targets after do_patch before do_compile
diff --git a/poky/meta/classes/toolchain-scripts.bbclass b/poky/meta/classes/toolchain-scripts.bbclass
index 1d7c703..16f1e17 100644
--- a/poky/meta/classes/toolchain-scripts.bbclass
+++ b/poky/meta/classes/toolchain-scripts.bbclass
@@ -63,24 +63,46 @@
 	toolchain_shared_env_script
 }
 
-# This function creates an environment-setup-script in the TMPDIR which enables
+# This function creates an environment-setup-script in B which enables
 # a OE-core IDE to integrate with the build tree
 # Caller must ensure CONFIG_SITE is setup
 toolchain_create_tree_env_script () {
-	script=${TMPDIR}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
+	script=${B}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
 	rm -f $script
 	touch $script
+	echo 'standalone_sysroot_target="${STAGING_DIR}/${MACHINE}"' >> $script
+	echo 'standalone_sysroot_native="${STAGING_DIR}/${BUILD_ARCH}"' >> $script
 	echo 'orig=`pwd`; cd ${COREBASE}; . ./oe-init-build-env ${TOPDIR}; cd $orig' >> $script
-	echo 'export PATH=${STAGING_DIR_NATIVE}/usr/bin:${STAGING_BINDIR_TOOLCHAIN}:$PATH' >> $script
-	echo 'export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR}' >> $script
-	echo 'export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}' >> $script
+	echo 'export PATH=$standalone_sysroot_native/${bindir_native}:$standalone_sysroot_native/${bindir_native}/${TARGET_SYS}:$PATH' >> $script
+	echo 'export PKG_CONFIG_SYSROOT_DIR=$standalone_sysroot_target' >> $script
+	echo 'export PKG_CONFIG_PATH=$standalone_sysroot_target'"$libdir"'/pkgconfig:$standalone_sysroot_target'"$prefix"'/share/pkgconfig' >> $script
 	echo 'export CONFIG_SITE="${CONFIG_SITE}"' >> $script
-	echo 'export SDKTARGETSYSROOT=${STAGING_DIR_TARGET}' >> $script
-	echo 'export OECORE_NATIVE_SYSROOT="${STAGING_DIR_NATIVE}"' >> $script
-	echo 'export OECORE_TARGET_SYSROOT="${STAGING_DIR_TARGET}"' >> $script
-	echo 'export OECORE_ACLOCAL_OPTS="-I ${STAGING_DIR_NATIVE}/usr/share/aclocal"' >> $script
+	echo 'export SDKTARGETSYSROOT=$standalone_sysroot_target' >> $script
+	echo 'export OECORE_NATIVE_SYSROOT=$standalone_sysroot_native' >> $script
+	echo 'export OECORE_TARGET_SYSROOT=$standalone_sysroot_target' >> $script
+	echo 'export OECORE_ACLOCAL_OPTS="-I $standalone_sysroot_native/usr/share/aclocal"' >> $script
+	echo 'export OECORE_BASELIB="${baselib}"' >> $script
+	echo 'export OECORE_TARGET_ARCH="${TARGET_ARCH}"' >>$script
+	echo 'export OECORE_TARGET_OS="${TARGET_OS}"' >>$script
 
 	toolchain_shared_env_script
+
+	cat >> $script <<EOF
+
+if [ -d "\$OECORE_NATIVE_SYSROOT/${datadir}/post-relocate-setup.d/" ]; then
+	for s in \$OECORE_NATIVE_SYSROOT/${datadir}/post-relocate-setup.d/*; do
+		if [ ! -x \$s ]; then
+			continue
+		fi
+		\$s "\$1"
+		status=\$?
+		if [ \$status != 0 ]; then
+			echo "post-relocate command \"\$s \$1\" failed with status \$status" >&2
+			exit \$status
+		fi
+	done
+fi
+EOF
 }
 
 toolchain_shared_env_script () {
diff --git a/poky/meta/classes/uboot-config.bbclass b/poky/meta/classes/uboot-config.bbclass
index b9ad358..e8da8c7 100644
--- a/poky/meta/classes/uboot-config.bbclass
+++ b/poky/meta/classes/uboot-config.bbclass
@@ -125,5 +125,6 @@
                     else:
                         bb.debug(1, "Appending '%s' to UBOOT_BINARIES." % ubootbinary)
                         d.appendVar('UBOOT_BINARIES', ' ' + ubootbinary)
-                    break
+                    return
+        raise bb.parse.SkipRecipe("The selected UBOOT_CONFIG key %s has no match in %s." % (ubootconfig, ubootconfigflags.keys()))
 }
diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass
index 31ffe1f..eecdec9 100644
--- a/poky/meta/classes/uboot-sign.bbclass
+++ b/poky/meta/classes/uboot-sign.bbclass
@@ -73,6 +73,9 @@
 FIT_SIGN_ALG ?= "rsa2048"
 UBOOT_FIT_SIGN_ALG ?= "rsa2048"
 
+# Kernel / U-Boot fitImage Padding Algo
+FIT_PAD_ALG ?= "pkcs-1.5"
+
 # Generate keys for signing Kernel / U-Boot fitImage
 FIT_GENERATE_KEYS ?= "0"
 UBOOT_FIT_GENERATE_KEYS ?= "0"
diff --git a/poky/meta/conf/distro/include/default-distrovars.inc b/poky/meta/conf/distro/include/default-distrovars.inc
index 9f4617b..230bab8 100644
--- a/poky/meta/conf/distro/include/default-distrovars.inc
+++ b/poky/meta/conf/distro/include/default-distrovars.inc
@@ -16,6 +16,9 @@
 # seccomp is not yet ported to ARC
 DISTRO_FEATURES_DEFAULT:remove:arc = "seccomp"
 
+# seccomp is not yet ported to microblaze
+DISTRO_FEATURES_DEFAULT:remove:microblaze = "seccomp"
+
 DISTRO_FEATURES_DEFAULT ?= "acl alsa bluetooth debuginfod ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
 IMAGE_FEATURES ?= ""
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index ac1a1ea..e20275c 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -841,7 +841,6 @@
 RECIPE_MAINTAINER:pn-xev = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xeyes = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xf86-input-evdev = "Unassigned <unassigned@yoctoproject.org>"
-RECIPE_MAINTAINER:pn-xf86-input-keyboard = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xf86-input-libinput = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xf86-input-mouse = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xf86-input-synaptics = "Unassigned <unassigned@yoctoproject.org>"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 860671e..4477689 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -26,7 +26,7 @@
 GOVERSION ?= "1.18%"
 # This can not use wildcards like 8.0.% since it is also used in mesa to denote
 # llvm version being used, so always bump it with llvm recipe version bump
-LLVMVERSION ?= "14.0.4"
+LLVMVERSION ?= "14.0.6"
 RUSTVERSION ?= "1.62%"
 
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
diff --git a/poky/meta/lib/oe/package_manager/ipk/__init__.py b/poky/meta/lib/oe/package_manager/ipk/__init__.py
index 6fd2f02..7cbea0f 100644
--- a/poky/meta/lib/oe/package_manager/ipk/__init__.py
+++ b/poky/meta/lib/oe/package_manager/ipk/__init__.py
@@ -102,12 +102,14 @@
         This method extracts the common parts for Opkg and Dpkg
         """
 
-        try:
-            output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
-        except subprocess.CalledProcessError as e:
+        proc = subprocess.run(cmd, capture_output=True, encoding="utf-8", shell=True)
+        if proc.returncode:
             bb.fatal("Unable to list available packages. Command '%s' "
-                     "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
-        return opkg_query(output)
+                     "returned %d:\n%s" % (cmd, proc.returncode, proc.stderr))
+        elif proc.stderr:
+            bb.note("Command '%s' returned stderr: %s" % (cmd, proc.stderr))
+
+        return opkg_query(proc.stdout)
 
     def extract(self, pkg, pkg_info):
         """
@@ -445,15 +447,16 @@
         cmd = "%s %s --noaction install %s " % (self.opkg_cmd,
                                                 opkg_args,
                                                 ' '.join(pkgs))
-        try:
-            output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
-        except subprocess.CalledProcessError as e:
+        proc = subprocess.run(cmd, capture_output=True, encoding="utf-8", shell=True)
+        if proc.returncode:
             bb.fatal("Unable to dummy install packages. Command '%s' "
-                     "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+                     "returned %d:\n%s" % (cmd, proc.returncode, proc.stderr))
+        elif proc.stderr:
+            bb.note("Command '%s' returned stderr: %s" % (cmd, proc.stderr))
 
         bb.utils.remove(temp_rootfs, True)
 
-        return output
+        return proc.stdout
 
     def backup_packaging_data(self):
         # Save the opkglib for increment ipk image generation
diff --git a/poky/meta/lib/oe/reproducible.py b/poky/meta/lib/oe/reproducible.py
index 35b8be6..2e815df 100644
--- a/poky/meta/lib/oe/reproducible.py
+++ b/poky/meta/lib/oe/reproducible.py
@@ -152,7 +152,6 @@
 def get_source_date_epoch(d, sourcedir):
     return (
         get_source_date_epoch_from_git(d, sourcedir) or
-        get_source_date_epoch_from_known_files(d, sourcedir) or
         get_source_date_epoch_from_youngest_file(d, sourcedir) or
         fixed_source_date_epoch(d)       # Last resort
     )
diff --git a/poky/meta/lib/oe/spdx.py b/poky/meta/lib/oe/spdx.py
index 14ca706..6d56ed9 100644
--- a/poky/meta/lib/oe/spdx.py
+++ b/poky/meta/lib/oe/spdx.py
@@ -218,7 +218,7 @@
     SPDXID = _String()
     versionInfo = _String()
     downloadLocation = _String(default="NOASSERTION")
-    packageSupplier = _String(default="NOASSERTION")
+    supplier = _String(default="NOASSERTION")
     homepage = _String()
     licenseConcluded = _String(default="NOASSERTION")
     licenseDeclared = _String(default="NOASSERTION")
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index 7150bd0..de65244 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -24,10 +24,19 @@
         return "/allarch.bbclass" in inherits
     def isImage(mc, fn):
         return "/image.bbclass" in " ".join(dataCaches[mc].inherits[fn])
+    def isSPDXTask(task):
+        return task in ("do_create_spdx", "do_create_runtime_spdx")
 
     depmc, _, deptaskname, depmcfn = bb.runqueue.split_tid_mcfn(dep)
     mc, _ = bb.runqueue.split_mc(fn)
 
+    # Keep all dependencies between SPDX tasks in the signature. SPDX documents
+    # are linked together by hashes, which means if a dependent document changes,
+    # all downstream documents must be re-written (even if they are "safe"
+    # dependencies).
+    if isSPDXTask(task) and isSPDXTask(deptaskname):
+        return True
+
     # (Almost) always include our own inter-task dependencies (unless it comes
     # from a mcdepends). The exception is the special
     # do_kernel_configme->do_unpack_and_patch dependency from archiver.bbclass.
diff --git a/poky/meta/lib/oeqa/runtime/cases/rt.py b/poky/meta/lib/oeqa/runtime/cases/rt.py
new file mode 100644
index 0000000..849ac19
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/rt.py
@@ -0,0 +1,17 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+
+class RtTest(OERuntimeTestCase):
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_is_rt(self):
+        """
+        Check that the kernel has CONFIG_PREEMPT_RT enabled.
+        """
+        status, output = self.target.run("uname -a")
+        self.assertEqual(status, 0, msg=output)
+        # Split so we don't get a substring false-positive
+        self.assertIn("PREEMPT_RT", output.split())
diff --git a/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py b/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py
index f69f720..ad08b77 100644
--- a/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py
+++ b/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py
@@ -16,7 +16,8 @@
     Test that Meson builds correctly.
     """
     def setUp(self):
-        if not (self.tc.hasHostPackage("nativesdk-meson")):
+        if not (self.tc.hasHostPackage("nativesdk-meson") or
+                self.tc.hasHostPackage("meson-native")):
             raise unittest.SkipTest("EpoxyTest class: SDK doesn't contain Meson")
 
     def test_epoxy(self):
diff --git a/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py b/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py
index eb3c8dd..58ade92 100644
--- a/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py
+++ b/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py
@@ -19,7 +19,8 @@
         if not (self.tc.hasTargetPackage("gtk+3", multilib=True) or \
                 self.tc.hasTargetPackage("libgtk-3.0", multilib=True)):
             raise unittest.SkipTest("GalculatorTest class: SDK don't support gtk+3")
-        if not (self.tc.hasHostPackage("nativesdk-gettext-dev")):
+        if not (self.tc.hasHostPackage("nativesdk-gettext-dev") or
+                self.tc.hasHostPackage("gettext-native")):
             raise unittest.SkipTest("GalculatorTest class: SDK doesn't contain gettext")
 
     def test_galculator(self):
diff --git a/poky/meta/lib/oeqa/sdk/cases/rust.py b/poky/meta/lib/oeqa/sdk/cases/rust.py
new file mode 100644
index 0000000..1075d37
--- /dev/null
+++ b/poky/meta/lib/oeqa/sdk/cases/rust.py
@@ -0,0 +1,33 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import os
+import shutil
+import unittest
+
+from oeqa.core.utils.path import remove_safe
+from oeqa.sdk.case import OESDKTestCase
+
+from oeqa.utils.subprocesstweak import errors_have_output
+errors_have_output()
+
+class RustCompileTest(OESDKTestCase):
+    td_vars = ['MACHINE']
+
+    @classmethod
+    def setUpClass(self):
+        targetdir = os.path.join(self.tc.sdk_dir, "hello")
+        try:
+            shutil.rmtree(targetdir)
+        except FileNotFoundError:
+            pass
+        shutil.copytree(os.path.join(self.tc.sdk_files_dir, "rust/hello"), targetdir)
+
+    def setUp(self):
+        machine = self.td.get("MACHINE")
+        if not self.tc.hasHostPackage("packagegroup-rust-cross-canadian-%s" % machine):
+            raise unittest.SkipTest("RustCompileTest class: SDK doesn't contain a Rust cross-canadian toolchain")
+
+    def test_cargo_build(self):
+        self._run('cd %s/hello; cargo build' % self.tc.sdk_dir)
diff --git a/poky/meta/lib/oeqa/sdk/files/rust/hello/Cargo.toml b/poky/meta/lib/oeqa/sdk/files/rust/hello/Cargo.toml
new file mode 100644
index 0000000..fe61947
--- /dev/null
+++ b/poky/meta/lib/oeqa/sdk/files/rust/hello/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "hello"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/poky/meta/lib/oeqa/sdk/files/rust/hello/src/main.rs b/poky/meta/lib/oeqa/sdk/files/rust/hello/src/main.rs
new file mode 100644
index 0000000..a06c03f
--- /dev/null
+++ b/poky/meta/lib/oeqa/sdk/files/rust/hello/src/main.rs
@@ -0,0 +1,3 @@
+fn main() {
+    println!("Hello, OpenEmbedded world!");
+}
diff --git a/poky/meta/lib/oeqa/sdk/testmetaidesupport.py b/poky/meta/lib/oeqa/sdk/testmetaidesupport.py
new file mode 100644
index 0000000..2ff76fd
--- /dev/null
+++ b/poky/meta/lib/oeqa/sdk/testmetaidesupport.py
@@ -0,0 +1,43 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+class TestSDK(object):
+    def run(self, d):
+        import json
+        import logging
+        from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor
+        from oeqa.utils import make_logger_bitbake_compatible
+
+        pn = d.getVar("PN")
+
+        logger = make_logger_bitbake_compatible(logging.getLogger("BitBake"))
+
+        sdk_dir = d.expand("${WORKDIR}/testsdk/")
+        bb.utils.remove(sdk_dir, True)
+        bb.utils.mkdirhier(sdk_dir)
+
+        sdk_envs = OESDKTestContextExecutor._get_sdk_environs(d.getVar("DEPLOY_DIR_IMAGE"))
+        tdname = d.expand("${DEPLOY_DIR_IMAGE}/${PN}.testdata.json")
+        test_data = json.load(open(tdname, "r"))
+
+        host_pkg_manifest = {"cmake-native":"", "gcc-cross":"", "gettext-native":"", "meson-native":"", "perl-native":"", "python3-core-native":"", }
+        target_pkg_manifest = {"gtk+3":""}
+
+        for s in sdk_envs:
+            bb.plain("meta-ide-support based SDK testing environment: %s" % s)
+
+            sdk_env = sdk_envs[s]
+
+            tc = OESDKTestContext(td=test_data, logger=logger, sdk_dir=sdk_dir,
+                sdk_env=sdk_env, target_pkg_manifest=target_pkg_manifest,
+                host_pkg_manifest=host_pkg_manifest)
+
+            tc.loadTests(OESDKTestContextExecutor.default_cases)
+
+            results = tc.runTests()
+            if results:
+                results.logSummary(pn)
+
+            if (not results) or (not results.wasSuccessful()):
+                bb.fatal('%s - FAILED' % (pn,), forcelog=True)
diff --git a/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py b/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
index c809d7c..978898b 100644
--- a/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
+++ b/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
@@ -43,12 +43,6 @@
 
     @classmethod
     def tearDownClass(cls):
-        # Go creates file which are readonly
-        for dirpath, dirnames, filenames in os.walk(cls.tmpdir_SDKQA):
-            for filename in filenames + dirnames:
-                f = os.path.join(dirpath, filename)
-                if not os.path.islink(f):
-                    os.chmod(f, 0o775)
         shutil.rmtree(cls.tmpdir_SDKQA, ignore_errors=True)
         super(oeGoToolchainSelfTest, cls).tearDownClass()
 
@@ -56,6 +50,8 @@
         cmd = "cd %s/src/%s/%s; " % (self.go_path, proj, name)
         cmd = cmd + ". %s; " % self.env_SDK
         cmd = cmd + "export GOPATH=%s; " % self.go_path
+        cmd = cmd + "export GOFLAGS=-modcacherw; "
+        cmd = cmd + "export CGO_ENABLED=1; "
         cmd = cmd + "${CROSS_COMPILE}go %s" % gocmd
         return runCmd(cmd).status
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/git.py b/poky/meta/lib/oeqa/selftest/cases/intercept.py
similarity index 100%
rename from poky/meta/lib/oeqa/selftest/cases/git.py
rename to poky/meta/lib/oeqa/selftest/cases/intercept.py
diff --git a/poky/meta/lib/oeqa/selftest/cases/meta_ide.py b/poky/meta/lib/oeqa/selftest/cases/meta_ide.py
index 6f10d30..ce7bba4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/meta_ide.py
+++ b/poky/meta/lib/oeqa/selftest/cases/meta_ide.py
@@ -16,13 +16,14 @@
     def setUpClass(cls):
         super(MetaIDE, cls).setUpClass()
         bitbake('meta-ide-support')
-        bb_vars = get_bb_vars(['MULTIMACH_TARGET_SYS', 'TMPDIR', 'COREBASE'])
+        bitbake('build-sysroots')
+        bb_vars = get_bb_vars(['MULTIMACH_TARGET_SYS', 'DEPLOY_DIR_IMAGE', 'COREBASE'])
         cls.environment_script = 'environment-setup-%s' % bb_vars['MULTIMACH_TARGET_SYS']
-        cls.tmpdir = bb_vars['TMPDIR']
-        cls.environment_script_path = '%s/%s' % (cls.tmpdir, cls.environment_script)
+        cls.deploydir = bb_vars['DEPLOY_DIR_IMAGE']
+        cls.environment_script_path = '%s/%s' % (cls.deploydir, cls.environment_script)
         cls.corebasedir = bb_vars['COREBASE']
         cls.tmpdir_metaideQA = tempfile.mkdtemp(prefix='metaide')
-        
+
     @classmethod
     def tearDownClass(cls):
         shutil.rmtree(cls.tmpdir_metaideQA, ignore_errors=True)
@@ -49,3 +50,8 @@
                         msg="Running make failed")
         self.assertEqual(self.project.run_install(), 0,
                         msg="Running make install failed")
+
+    def test_meta_ide_can_run_sdk_tests(self):
+        bitbake('-c populate_sysroot gtk+3')
+        bitbake('build-sysroots')
+        bitbake('-c testsdk meta-ide-support')
diff --git a/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py b/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
index 802a91a..33bd6df 100644
--- a/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
+++ b/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py
@@ -3,6 +3,7 @@
 #
 
 import os
+import sys
 from oeqa.selftest.case import OESelftestTestCase
 import tempfile
 import operator
@@ -11,15 +12,14 @@
 class TestBlobParsing(OESelftestTestCase):
 
     def setUp(self):
-        import time
         self.repo_path = tempfile.mkdtemp(prefix='selftest-buildhistory',
             dir=get_bb_var('TOPDIR'))
 
         try:
             from git import Repo
             self.repo = Repo.init(self.repo_path)
-        except ImportError:
-            self.skipTest('Python module GitPython is not present')
+        except ImportError as e:
+            self.skipTest('Python module GitPython is not present (%s)  (%s)' % (e, sys.path))
 
         self.test_file = "test"
         self.var_map = {}
diff --git a/poky/meta/lib/oeqa/selftest/cases/pkgdata.py b/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
index 254abc4..87d069d 100644
--- a/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
@@ -47,8 +47,8 @@
         self.assertGreater(pkgsize, 1, "Size should be greater than 1. %s" % result.output)
 
     def test_find_path(self):
-        result = runCmd('oe-pkgdata-util find-path /lib/libz.so.1')
-        self.assertEqual(result.output, 'zlib: /lib/libz.so.1')
+        result = runCmd('oe-pkgdata-util find-path /usr/lib/libz.so.1')
+        self.assertEqual(result.output, 'zlib: /usr/lib/libz.so.1')
         result = runCmd('oe-pkgdata-util find-path /usr/bin/m4')
         self.assertEqual(result.output, 'm4: /usr/bin/m4')
         result = runCmd('oe-pkgdata-util find-path /not/exist', ignore_status=True)
@@ -120,8 +120,7 @@
                     curpkg = line.split(':')[0]
                     files[curpkg] = []
             return files
-        bb_vars = get_bb_vars(['base_libdir', 'libdir', 'includedir', 'mandir'])
-        base_libdir = bb_vars['base_libdir']
+        bb_vars = get_bb_vars(['libdir', 'includedir', 'mandir'])
         libdir = bb_vars['libdir']
         includedir = bb_vars['includedir']
         mandir = bb_vars['mandir']
@@ -138,7 +137,7 @@
         self.assertIn('libz1', list(files.keys()), "listed pkgs. files: %s" %result.output)
         self.assertIn('libz-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
         self.assertGreater(len(files['libz1']), 1)
-        libspec = os.path.join(base_libdir, 'libz.so.1.*')
+        libspec = os.path.join(libdir, 'libz.so.1.*')
         found = False
         for fileitem in files['libz1']:
             if fnmatch.fnmatchcase(fileitem, libspec):
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 4749f28..63827f3 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -444,7 +444,7 @@
             f = []
             for root, dirs, files in os.walk(d):
                 for name in files:
-                    if "meta-environment" in root or "cross-canadian" in root:
+                    if "meta-environment" in root or "cross-canadian" in root or 'meta-ide-support' in root:
                         continue
                     if "qemux86copy-" in root or "qemux86-" in root:
                         continue
diff --git a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch b/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch
deleted file mode 100644
index 42f3a81..0000000
--- a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 99b578501643377e0b1994b2a068b790d189d5ad Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones@redhat.com>
-Date: Wed, 13 Jun 2018 09:41:01 -0400
-Subject: [PATCH] remove extra decl
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
-
-Upstream-Status: Backport [git://github.com/rhinstaller/efibootmgr.git]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- src/efibootmgr.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/src/efibootmgr.c b/src/efibootmgr.c
-index de38f01..4e1a680 100644
---- a/src/efibootmgr.c
-+++ b/src/efibootmgr.c
-@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv)
- 					       "invalid numeric value %s\n",
- 					       optarg);
- 			}
--                        /* XXX efivar-36 accidentally doesn't have a public
--                         * header for this */
--			extern int efi_set_verbose(int verbosity, FILE *errlog);
- 			efi_set_verbose(opts.verbose - 2, stderr);
- 			break;
- 		case 'V':
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-src-make-compatible-with-efivar-38.patch b/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-src-make-compatible-with-efivar-38.patch
deleted file mode 100644
index f8d9123..0000000
--- a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-src-make-compatible-with-efivar-38.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 07f080184d067c1ebc3fec1b53dd4a06d1a2566a Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 17 Jan 2022 23:24:34 +0100
-Subject: [PATCH] src: make compatible with efivar 38
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/efibootdump.c | 2 +-
- src/efibootmgr.c  | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/efibootdump.c b/src/efibootdump.c
-index eceffd6..09bd76e 100644
---- a/src/efibootdump.c
-+++ b/src/efibootdump.c
-@@ -69,7 +69,7 @@ print_boot_entry(efi_load_option *loadopt, size_t data_size)
- 	text_path = alloca(text_path_len);
- 	if (!text_path)
- 		error(100, "Couldn't allocate memory");
--	rc = efidp_format_device_path(text_path, text_path_len,
-+	rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
- 				      dp, pathlen);
- 	if (rc < 0) {
- 		printf("<bad device path>");
-diff --git a/src/efibootmgr.c b/src/efibootmgr.c
-index 4e1a680..b77b1fb 100644
---- a/src/efibootmgr.c
-+++ b/src/efibootmgr.c
-@@ -949,7 +949,7 @@ show_vars(const char *prefix)
- 			pathlen = efi_loadopt_pathlen(load_option,
- 						      boot->data_size);
- 			dp = efi_loadopt_path(load_option, boot->data_size);
--			rc = efidp_format_device_path(text_path, text_path_len,
-+			rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
- 						      dp, pathlen);
- 			if (rc < 0)
- 				error(18, "Could not parse device path");
-@@ -960,7 +960,7 @@ show_vars(const char *prefix)
- 			if (!text_path)
- 				error(19, "Could not parse device path");
- 
--			rc = efidp_format_device_path(text_path, text_path_len,
-+			rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
- 						      dp, pathlen);
- 			if (rc < 0)
- 				error(20, "Could not parse device path");
diff --git a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch b/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch
deleted file mode 100644
index 9525ed8..0000000
--- a/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 97668ae0bce776a36ea2001dea63d376be8274ac Mon Sep 17 00:00:00 2001
-From: Peter Jones <pjones@redhat.com>
-Date: Wed, 6 Mar 2019 13:08:33 -0500
-Subject: [PATCH] Make sure PKGS= is propogated into the submake for "make
- deps"
-
-When we're doing make deps with "$(CC) -MF", gcc and clang have different
-behavior, both broken in different ways, which we're hitting because of a
-missing -I argument for libefivar's includes.  On clang, when a header can't
-be found, it emits a rule with the header as a prerequisite without a path,
-such as efivar.h here:
-
-efibootmgr.o: efibootmgr.c fix_coverity.h efivar.h efiboot.h \
-  /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
-  /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
-  /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
-  /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
-  error.h
-
-Then the build that utilizes that rule will fail to find the
-prerequisite and tell you something like:
-
-make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'.  Stop.
-make[1]: Leaving directory '/home/pjones/devel/github.com/efibootmgr/master/src'
-
-With gcc, when a header can't be found, it emits a rule without that header
-as a prerequisite, as such (again with efivar.h):
-
-efibootmgr.o: efibootmgr.c fix_coverity.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
- error.h
-
-And then your build will fail if you haven't adjusted CFLAGS to tell it
-where to find the header.
-
-Both of these would be better just erroring, but at least gcc's doesn't
-insert a *wrong* dependency.
-
-This patch adds "PKGS=efivar efibootmgr popt" for all deps under src/.
-Technically that's overkill, as efibootmgr itself doesn't need popt, but it
-doesn't hurt anything to have the extra part there.  The resulting
-.efibootmgr.d file has the prerequisites expressed correctly:
-
-efibootmgr.o: efibootmgr.c fix_coverity.h /usr/include/efivar/efivar.h \
- /usr/include/efivar/efiboot.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
- /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
- error.h
-
-This fixes the issue described in github PR #96
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
-Upstream-Status: Backport [https://github.com/rhboot/efibootmgr/commit/97668ae0bce776a36ea2001dea63d376be8274ac]
----
- src/Makefile | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 258bac1..32fa188 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -31,8 +31,13 @@ efibootdump : PKGS=efivar efiboot popt
- efibootnext : $(call objects-of,$(EFIBOOTNEXT_SOURCES))
- efibootnext : PKGS=efivar efiboot popt
- 
-+deps : PKGS=efivar efiboot popt
- deps : $(ALL_SOURCES)
--	$(MAKE) -f $(TOPDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)" SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)"
-+	$(MAKE) -f $(TOPDIR)/Make.deps \
-+		SOURCES="$(ALL_SOURCES)" \
-+		SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" \
-+		PKGS="$(PKGS)" \
-+		deps
- 
- clean :
- 	@rm -rfv *.o *.a *.so $(TARGETS)
diff --git a/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb b/poky/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
similarity index 75%
rename from poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
rename to poky/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
index 11d8b90..cbcaac1 100644
--- a/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb
+++ b/poky/meta/recipes-bsp/efibootmgr/efibootmgr_18.bb
@@ -10,12 +10,8 @@
 
 COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
 
-SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=master \
-           file://0001-remove-extra-decl.patch \
-           file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \
-           file://0001-src-make-compatible-with-efivar-38.patch \
-           "
-SRCREV = "e067160ecef8208e1944002e5d50b275733211fb"
+SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main"
+SRCREV = "c3f9f0534e32158f62c43564036878b93b9e0fd6"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-bsp/efivar/efivar/0001-Fix-invalid-free-in-main.patch b/poky/meta/recipes-bsp/efivar/efivar/0001-Fix-invalid-free-in-main.patch
new file mode 100644
index 0000000..7e63df5
--- /dev/null
+++ b/poky/meta/recipes-bsp/efivar/efivar/0001-Fix-invalid-free-in-main.patch
@@ -0,0 +1,30 @@
+From 085f027e9e9f1478f68ddda705f83b244ee3bd88 Mon Sep 17 00:00:00 2001
+From: Robbie Harwood <rharwood@redhat.com>
+Date: Mon, 18 Apr 2022 13:08:18 -0400
+Subject: [PATCH] Fix invalid free in main()
+
+data is allocated by mmap() in prepare_data().
+
+Resolves: #173
+Signed-off-by: Robbie Harwood <rharwood@redhat.com>
+Upstream-Status: Backport
+Link: https://github.com/rhboot/efivar/commit/6be2cb1c0139ac177e754b0767abf1ca1533847f
+Signed-off-by: Grygorii Tertychnyi <grygorii.tertychnyi@leica-geosystems.com>
+
+---
+ src/efivar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/efivar.c b/src/efivar.c
+index 5cd1eb2bc73c..09f85edd0a38 100644
+--- a/src/efivar.c
++++ b/src/efivar.c
+@@ -633,7 +633,7 @@ int main(int argc, char *argv[])
+ 				if (sz < 0)
+ 					err(1, "Could not import data from \"%s\"", infile);
+ 
+-				free(data);
++				munmap(data, data_size);
+ 				data = NULL;
+ 				data_size = 0;
+ 
diff --git a/poky/meta/recipes-bsp/efivar/efivar_38.bb b/poky/meta/recipes-bsp/efivar/efivar_38.bb
index 53fe20a..42625fa 100644
--- a/poky/meta/recipes-bsp/efivar/efivar_38.bb
+++ b/poky/meta/recipes-bsp/efivar/efivar_38.bb
@@ -11,6 +11,7 @@
            file://0001-docs-do-not-build-efisecdb-manpage.patch \
            file://0001-src-Makefile-build-util.c-separately-for-makeguids.patch \
            file://efisecdb-fix-build-with-musl-libc.patch \
+           file://0001-Fix-invalid-free-in-main.patch \
            "
 SRCREV = "1753149d4176ebfb2b135ac0aaf79340bf0e7a93"
 
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
index 8fc3360..d7fd3c7 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -7,12 +7,12 @@
 DEPENDS += "flex-native bison-native"
 
 LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://Licenses/README;md5=5a7450c57ffe5ae63fd732446b988025"
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=2ca5f2c35c8cc335f0a19756634782f1"
 PE = "1"
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "e4b6ebd3de982ae7185dbf689a030e73fd06e0d2"
+SRCREV = "e092e3250270a1016c877da7bdd9384f14b1321e"
 
 SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
 
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc b/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc
index a8d7fab..0bdbce7 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc
@@ -1,5 +1,8 @@
 SUMMARY = "U-Boot bootloader tools"
-DEPENDS += "gnutls openssl util-linux"
+DEPENDS += "gnutls openssl util-linux swig-native"
+
+inherit python3native
+export STAGING_INCDIR="${STAGING_INCDIR_NATIVE}"
 
 PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage"
 PROVIDES:class-native = "u-boot-mkimage-native u-boot-mkenvimage-native"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.07.bb
similarity index 97%
rename from poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.04.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.07.bb
index 7eaf721..ef386f7 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.04.bb
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2022.07.bb
@@ -1,2 +1,3 @@
 require u-boot-common.inc
 require u-boot-tools.inc
+
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2022.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2022.07.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2022.04.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2022.07.bb
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.4.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.4.bb
index c68816c..8c62fc7 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.18.4.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.18.4.bb
@@ -46,8 +46,6 @@
                "
 LDFLAGS:append = " -lz"
 
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native setuptools3-base', '', d)}
-
 # dhcp needs .la so keep them
 REMOVE_LIBTOOL_LA = "0"
 
@@ -67,12 +65,6 @@
 	install -d "${D}${sysconfdir}/init.d"
 	install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/"
 	install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind"
-        if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
-		sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \
-		${D}${sbindir}/dnssec-coverage \
-		${D}${sbindir}/dnssec-checkds \
-		${D}${sbindir}/dnssec-keymgr
-	fi
 
 	# Install systemd related files
 	install -d ${D}${sbindir}
@@ -119,9 +111,4 @@
 FILES:${PN}-libs = "${libdir}/named/*.so* ${libdir}/*-${PV}.so"
 FILES:${PN}-staticdev += "${libdir}/*.la"
 
-PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}"
-FILES:python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \
-                ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}"
-
 DEV_PKG_DEPENDENCY = ""
-RDEPENDS:python3-bind = "python3-core python3-ply"
diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.44.1.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.44.2.bb
similarity index 93%
rename from poky/meta/recipes-connectivity/libuv/libuv_1.44.1.bb
rename to poky/meta/recipes-connectivity/libuv/libuv_1.44.2.bb
index 4c96d80..4c1b8ee 100644
--- a/poky/meta/recipes-connectivity/libuv/libuv_1.44.1.bb
+++ b/poky/meta/recipes-connectivity/libuv/libuv_1.44.2.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=ad93ca1fffe931537fcf64f6fcce084d"
 
-SRCREV = "e8b7eb6908a847ffbe6ab2eec7428e43a0aa53a2"
+SRCREV = "0c1fa696aa502eb749c2c4735005f41ba00a27b8"
 SRC_URI = "git://github.com/libuv/libuv;branch=v1.x;protocol=https"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.0.5.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.0.5.bb
index e50ff7f..04aff04 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.0.5.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.0.5.bb
@@ -77,7 +77,7 @@
 	esac
 	target="$os-${HOST_ARCH}"
 	case $target in
-	linux-arc)
+	linux-arc | linux-microblaze*)
 		target=linux-latomic
 		;;
 	linux-arm*)
@@ -105,7 +105,7 @@
 	linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el)
 		target=linux64-mips64
 		;;
-	linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*)
+	linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*)
 		target=linux-generic32
 		;;
 	linux-powerpc)
diff --git a/poky/meta/recipes-core/dropbear/dropbear.inc b/poky/meta/recipes-core/dropbear/dropbear.inc
index 78f9f9a..e170587 100644
--- a/poky/meta/recipes-core/dropbear/dropbear.inc
+++ b/poky/meta/recipes-core/dropbear/dropbear.inc
@@ -123,4 +123,6 @@
   fi
 }
 
+CONFFILES:${PN} = "${sysconfdir}/default/dropbear"
+
 FILES:${PN} += "${bindir}"
diff --git a/poky/meta/recipes-core/glibc/glibc-package.inc b/poky/meta/recipes-core/glibc/glibc-package.inc
index 278e1b7..7f9e750 100644
--- a/poky/meta/recipes-core/glibc/glibc-package.inc
+++ b/poky/meta/recipes-core/glibc/glibc-package.inc
@@ -40,7 +40,7 @@
 FILES:libsotruss = "${libdir}/audit/sotruss-lib.so"
 FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}"
 FILES:${PN}-dev += "${libdir}/libpthread.a ${libdir}/libdl.a ${libdir}/libutil.a ${libdir}/libanl.a ${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal"
-DEV_PKG_DEPENDENCY = "linux-libc-headers-dev"
+RDEPENDS:${PN}-dev = "linux-libc-headers-dev"
 FILES:${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a"
 FILES:nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_system_unitdir}/nscd* ${sysconfdir}/tmpfiles.d/nscd.conf \
               ${sysconfdir}/nscd.conf ${sysconfdir}/default/volatiles/98_nscd ${localstatedir}/db/nscd"
diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 6ed797c..2cdac20 100644
--- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -24,7 +24,7 @@
 
 inherit core-image setuptools3
 
-SRCREV ?= "0674ae7bc46ebfa90c55bbedec6b22dc5f48dacf"
+SRCREV ?= "093398daf5000e69057aedfe8c9f8df2c4e837f3"
 SRC_URI = "git://git.yoctoproject.org/poky;branch=master \
            file://Yocto_Build_Appliance.vmx \
            file://Yocto_Build_Appliance.vmxf \
diff --git a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb
index 2244d1b..7c9d9ca 100644
--- a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -130,7 +130,7 @@
 	update-rc.d -r ${D} rmnologin.sh start 99 2 3 4 5 .
 	update-rc.d -r ${D} sendsigs start 20 0 6 .
 	update-rc.d -r ${D} urandom start 38 S 0 6 .
-	update-rc.d -r ${D} umountnfs.sh start 31 0 1 6 .
+	update-rc.d -r ${D} umountnfs.sh stop 31 0 1 6 .
 	update-rc.d -r ${D} umountfs start 40 0 6 .
 	update-rc.d -r ${D} reboot start 90 6 .
 	update-rc.d -r ${D} halt start 90 0 .
diff --git a/poky/meta/recipes-core/meta/meta-ide-support.bb b/poky/meta/recipes-core/meta/meta-ide-support.bb
index 39317d5..7f349f6 100644
--- a/poky/meta/recipes-core/meta/meta-ide-support.bb
+++ b/poky/meta/recipes-core/meta/meta-ide-support.bb
@@ -2,11 +2,13 @@
 DESCRIPTION = "Meta package for ensuring the build directory contains all appropriate toolchain packages for using an IDE"
 LICENSE = "MIT"
 
-DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native cmake-native"
+DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native cmake-native autoconf-native automake-native meson-native intltool-native pkgconfig-native"
 PR = "r3"
 RM_WORK_EXCLUDE += "${PN}"
 
-inherit toolchain-scripts nopackages
+inherit toolchain-scripts nopackages deploy testsdk
+
+TESTSDK_CLASS_NAME = "oeqa.sdk.testmetaidesupport.TestSDK"
 
 do_populate_ide_support () {
   toolchain_create_tree_env_script
@@ -18,4 +20,22 @@
     d.appendVarFlag("do_populate_ide_support", "file-checksums", " " + " ".join(searched))
 }
 
-addtask populate_ide_support before do_build after do_install
+addtask populate_ide_support before do_deploy after do_install
+
+python do_write_test_data() {
+    from oe.data import export2json
+
+    out_dir = d.getVar('B')
+    testdata_name = os.path.join(out_dir, "%s.testdata.json" % d.getVar('PN'))
+
+    export2json(d, testdata_name)
+}
+addtask write_test_data before do_deploy after do_install
+
+do_deploy () {
+        install ${B}/* ${DEPLOYDIR}
+}
+
+addtask deploy before do_build
+
+do_build[deptask] += "do_prepare_recipe_sysroot"
diff --git a/poky/meta/recipes-core/meta/wic-tools.bb b/poky/meta/recipes-core/meta/wic-tools.bb
index b9580d7..9282d36 100644
--- a/poky/meta/recipes-core/meta/wic-tools.bb
+++ b/poky/meta/recipes-core/meta/wic-tools.bb
@@ -7,6 +7,7 @@
            mtools-native bmap-tools-native grub-native cdrtools-native \
            btrfs-tools-native squashfs-tools-native pseudo-native \
            e2fsprogs-native util-linux-native tar-native erofs-utils-native \
+           virtual/${TARGET_PREFIX}binutils \
            "
 DEPENDS:append:x86 = " syslinux-native syslinux grub-efi systemd-boot"
 DEPENDS:append:x86-64 = " syslinux-native syslinux grub-efi systemd-boot"
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_251.2.bb b/poky/meta/recipes-core/systemd/systemd-boot_251.3.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd-boot_251.2.bb
rename to poky/meta/recipes-core/systemd/systemd-boot_251.3.bb
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index b8dbe22..03f1559 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,10 +14,9 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "253052686cbd840ac69030d31c4b186af23aba4c"
+SRCREV = "516108f273888df3dcfa4f42b140252a285a2288"
 SRCBRANCH = "v251-stable"
 SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
-           file://38c87ca2ab96d085158485ecfc46c7cb6af0f166.patch \
 "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Add-sys-file.h-for-LOCK_.patch b/poky/meta/recipes-core/systemd/systemd/0001-Add-sys-file.h-for-LOCK_.patch
deleted file mode 100644
index 08e8af0..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-Add-sys-file.h-for-LOCK_.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From c193380a08f5adea1fd514e0a20abd1d7b50d08c Mon Sep 17 00:00:00 2001
-From: Pavel Zhukov <pavel.zhukov@huawei.com>
-Date: Mon, 20 Jun 2022 11:24:52 +0200
-Subject: [PATCH] Add sys/file.h for LOCK_
-
-Upstream-Status: Backport [19df770fe14da601d4e54e1592c11c10ffe4df5a]
-
-Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
-
----
- src/core/namespace.c       | 1 +
- src/dissect/dissect.c      | 1 +
- src/shared/dissect-image.c | 2 ++
- src/sysext/sysext.c        | 1 +
- src/test/test-loop-block.c | 1 +
- 5 files changed, 6 insertions(+)
-
-diff --git a/src/core/namespace.c b/src/core/namespace.c
-index 926aa96174..39f9e21c93 100644
---- a/src/core/namespace.c
-+++ b/src/core/namespace.c
-@@ -7,6 +7,7 @@
- #include <sys/mount.h>
- #include <unistd.h>
- #include <linux/fs.h>
-+#include <sys/file.h>
- 
- #include "alloc-util.h"
- #include "base-filesystem.h"
-diff --git a/src/dissect/dissect.c b/src/dissect/dissect.c
-index bd94a755db..a0d2a6f287 100644
---- a/src/dissect/dissect.c
-+++ b/src/dissect/dissect.c
-@@ -6,6 +6,7 @@
- #include <stdio.h>
- #include <sys/ioctl.h>
- #include <sys/mount.h>
-+#include <sys/file.h>
- 
- #include "architecture.h"
- #include "chase-symlinks.h"
-diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c
-index 1ab88839aa..a9e3fe4b44 100644
---- a/src/shared/dissect-image.c
-+++ b/src/shared/dissect-image.c
-@@ -4,6 +4,8 @@
- #include <valgrind/memcheck.h>
- #endif
- 
-+#include <sys/file.h>
-+
- #include <linux/blkpg.h>
- #include <linux/dm-ioctl.h>
- #include <linux/loop.h>
-diff --git a/src/sysext/sysext.c b/src/sysext/sysext.c
-index 364af195e0..85686c0fab 100644
---- a/src/sysext/sysext.c
-+++ b/src/sysext/sysext.c
-@@ -5,6 +5,7 @@
- #include <linux/loop.h>
- #include <sys/mount.h>
- #include <unistd.h>
-+#include <sys/file.h>
- 
- #include "capability-util.h"
- #include "chase-symlinks.h"
-diff --git a/src/test/test-loop-block.c b/src/test/test-loop-block.c
-index d1793222f0..6886c4cd31 100644
---- a/src/test/test-loop-block.c
-+++ b/src/test/test-loop-block.c
-@@ -3,6 +3,7 @@
- #include <fcntl.h>
- #include <linux/loop.h>
- #include <pthread.h>
-+#include <sys/file.h>
- 
- #include "alloc-util.h"
- #include "dissect-image.h"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/poky/meta/recipes-core/systemd/systemd/0001-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch
index 31efc4c..0fb6efb 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0001-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch
@@ -1,4 +1,4 @@
-From beb0219b71510bc63aed81d2a970a04349d6c616 Mon Sep 17 00:00:00 2001
+From 258af8106cbed6fa53f7bee042bf903e58b57a41 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 29 Sep 2020 18:01:41 -0700
 Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr
@@ -10,18 +10,19 @@
 Upstream-Status: Inappropriate (OE-specific)
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
+
 ---
  src/core/systemd.pc.in           | 8 ++++----
  src/libsystemd/sd-path/sd-path.c | 8 ++++----
  2 files changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
-index fc0f8c34fa..65996bbed8 100644
+index 693433b34b..8368a3ff02 100644
 --- a/src/core/systemd.pc.in
 +++ b/src/core/systemd.pc.in
-@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_dir}
- tmpfiles_dir=${prefix}/lib/tmpfiles.d
- tmpfilesdir=${tmpfiles_dir}
+@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir}
+ 
+ user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d
  
 -sysusers_dir=${rootprefix}/lib/sysusers.d
 +sysusers_dir=${prefix}/lib/sysusers.d
@@ -41,7 +42,7 @@
  
  catalog_dir=${prefix}/lib/systemd/catalog
 diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c
-index ff1e0d5f8e..19a001f47e 100644
+index ac33e349c0..f0615ffb22 100644
 --- a/src/libsystemd/sd-path/sd-path.c
 +++ b/src/libsystemd/sd-path/sd-path.c
 @@ -362,19 +362,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
@@ -68,6 +69,3 @@
                  return 0;
  
          case SD_PATH_CATALOG:
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch b/poky/meta/recipes-core/systemd/systemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch
new file mode 100644
index 0000000..6222dfe
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch
@@ -0,0 +1,97 @@
+From b0933e76c6f0594c10cf8a9a70b34e15b68066d1 Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Sat, 23 Jul 2022 10:38:49 +0000
+Subject: [PATCH] glibc: Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/pull/23992/commits/21c03ad5e9d8d0350e30dae92a5e15da318a1539]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build             | 13 ++++++++++++-
+ src/basic/fd-util.c     |  2 ++
+ src/core/namespace.c    |  2 ++
+ src/shared/mount-util.c |  2 ++
+ 4 files changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 9c170acc0a..a2e4d5054e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -481,7 +481,6 @@ decl_headers = '''
+ #include <uchar.h>
+ #include <sys/mount.h>
+ #include <sys/stat.h>
+-#include <linux/fs.h>
+ '''
+ 
+ foreach decl : ['char16_t',
+@@ -493,6 +492,17 @@ foreach decl : ['char16_t',
+         # We get -1 if the size cannot be determined
+         have = cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0
+ 
++        if decl == 'struct mount_attr'
++                if have
++                        want_linux_fs_h = false
++                else
++                        have = cc.sizeof(decl,
++                                         prefix : decl_headers + '#include <linux/fs.h>',
++                                         args : '-D_GNU_SOURCE') > 0
++                        want_linux_fs_h = have
++                endif
++        endif
++
+         if decl == 'struct statx'
+                 if have
+                         want_linux_stat_h = false
+@@ -508,6 +518,7 @@ foreach decl : ['char16_t',
+ endforeach
+ 
+ conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h)
++conf.set10('WANT_LINUX_FS_H', want_linux_fs_h)
+ 
+ foreach ident : ['secure_getenv', '__secure_getenv']
+         conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident))
+diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c
+index 6c1de92a26..00591d6c2d 100644
+--- a/src/basic/fd-util.c
++++ b/src/basic/fd-util.c
+@@ -3,7 +3,9 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <linux/btrfs.h>
++#if WANT_LINUX_FS_H
+ #include <linux/fs.h>
++#endif
+ #include <linux/magic.h>
+ #include <sys/ioctl.h>
+ #include <sys/resource.h>
+diff --git a/src/core/namespace.c b/src/core/namespace.c
+index 3256871803..2eafe43290 100644
+--- a/src/core/namespace.c
++++ b/src/core/namespace.c
+@@ -7,7 +7,9 @@
+ #include <sys/file.h>
+ #include <sys/mount.h>
+ #include <unistd.h>
++#if WANT_LINUX_FS_H
+ #include <linux/fs.h>
++#endif
+ 
+ #include "alloc-util.h"
+ #include "base-filesystem.h"
+diff --git a/src/shared/mount-util.c b/src/shared/mount-util.c
+index e76e4a0b38..0c8dec7688 100644
+--- a/src/shared/mount-util.c
++++ b/src/shared/mount-util.c
+@@ -7,7 +7,9 @@
+ #include <sys/statvfs.h>
+ #include <unistd.h>
+ #include <linux/loop.h>
++#if WANT_LINUX_FS_H
+ #include <linux/fs.h>
++#endif
+ 
+ #include "alloc-util.h"
+ #include "chase-symlinks.h"
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-shared-utmp-wtmp-fix-build-without-utmp.patch b/poky/meta/recipes-core/systemd/systemd/0001-shared-utmp-wtmp-fix-build-without-utmp.patch
deleted file mode 100644
index 2bb9565..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-shared-utmp-wtmp-fix-build-without-utmp.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d6e2c2d34d336398f5948a8b731fefff3dc0ff12 Mon Sep 17 00:00:00 2001
-From: Christian Hesse <mail@eworm.de>
-Date: Thu, 2 Jun 2022 20:49:46 +0200
-Subject: [PATCH] shared/utmp-wtmp: fix build without utmp
-
-Commit 16618332388442f2f1c3e52b0a9fde00121564a3 changed a function to
-add an extra argument. The data types used when building without utmp
-missed the change.
-
-Upstream-Status: Backport [d6e2c2d34d336398f5948a8b731fefff3dc0ff12]
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
----
- src/shared/utmp-wtmp.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/shared/utmp-wtmp.h b/src/shared/utmp-wtmp.h
-index 36e4203b4f..188d011fdd 100644
---- a/src/shared/utmp-wtmp.h
-+++ b/src/shared/utmp-wtmp.h
-@@ -59,7 +59,7 @@ static inline int utmp_wall(
-                 const char *message,
-                 const char *username,
-                 const char *origin_tty,
--                bool (*match_tty)(const char *tty, void *userdata),
-+                bool (*match_tty)(const char *tty, bool is_local, void *userdata),
-                 void *userdata) {
-         return 0;
- }
--- 
-2.36.1
-
diff --git a/poky/meta/recipes-core/systemd/systemd/38c87ca2ab96d085158485ecfc46c7cb6af0f166.patch b/poky/meta/recipes-core/systemd/systemd/38c87ca2ab96d085158485ecfc46c7cb6af0f166.patch
deleted file mode 100644
index 6ab89cd..0000000
--- a/poky/meta/recipes-core/systemd/systemd/38c87ca2ab96d085158485ecfc46c7cb6af0f166.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 38c87ca2ab96d085158485ecfc46c7cb6af0f166 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
-Date: Fri, 3 Jun 2022 09:32:02 +0200
-Subject: [PATCH] sha256: fix compilation on efi-ia32
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-/usr/bin/gcc -c ../src/fundamental/sha256.c -o src/boot/efi/sha256.c.o -Wno-format-signedness -Wno-missing-field-initializers -Wno-unused-parameter -Wdate-time -Wendif-labels -Werror=format=2 -Werror=implicit-function-declaration -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=overflow -Werror=override-init -Werror=return-type -Werror=shift-count-overflow -Werror=shift-overflow=2 -Werror=undef -Wfloat-equal -Wimplicit-fallthrough=5 -Winit-self -Wlogical-op -Wmissing-include-dirs -Wmissing-noreturn -Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-aliasing=2 -Wstrict-prototypes -Wsuggest-attribute=noreturn -Wunused-function -Wwrite-strings -Wno-unused-result -fno-stack-protector -fno-strict-aliasing -fpic -fwide-exec-charset=UCS2 -Wall -Wextra -Wsign-compare -nostdlib -std=gnu99 -ffreestanding -fshort-wchar -fvisibility=hidden -isystem /usr/include/efi -isystem /usr/include/efi/ia32 -I /builddir/build/BUILD/systemd-stable-250.7/src/fundamental -DSD_BOOT -DGNU_EFI_USE_MS_ABI -include src/boot/efi/efi_config.h -include version.h -mno-sse -mno-mmx -flto -O2 -flto=auto
-../src/fundamental/sha256.c: In function ‘sha256_finish_ctx’:
-../src/fundamental/sha256.c:61:25: error: ‘false’ undeclared (first use in this function)
-   61 | # define UNALIGNED_P(p) false
-      |                         ^~~~~
-../src/fundamental/sha256.c:136:21: note: in expansion of macro ‘UNALIGNED_P’
-  136 |                 if (UNALIGNED_P(resbuf))
-      |                     ^~~~~~~~~~~
-../src/fundamental/sha256.c:32:1: note: ‘false’ is defined in header ‘<stdbool.h>’; did you forget to ‘#include <stdbool.h>’?
-   31 | #include "sha256.h"
-  +++ |+#include <stdbool.h>
-   32 |
-...
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
----
- src/fundamental/sha256.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/fundamental/sha256.c b/src/fundamental/sha256.c
-index cd16aec4dd..58b1a80d33 100644
---- a/src/fundamental/sha256.c
-+++ b/src/fundamental/sha256.c
-@@ -58,7 +58,7 @@
- #  define UNALIGNED_P(p) (((size_t) p) % sizeof(uint32_t) != 0)
- # endif
- #else
--# define UNALIGNED_P(p) false
-+# define UNALIGNED_P(p) sd_false
- #endif
- 
- /* This array contains the bytes used to pad the buffer to the next
diff --git a/poky/meta/recipes-core/systemd/systemd_251.2.bb b/poky/meta/recipes-core/systemd/systemd_251.3.bb
similarity index 99%
rename from poky/meta/recipes-core/systemd/systemd_251.2.bb
rename to poky/meta/recipes-core/systemd/systemd_251.3.bb
index bb3c59f..72b9155 100644
--- a/poky/meta/recipes-core/systemd/systemd_251.2.bb
+++ b/poky/meta/recipes-core/systemd/systemd_251.3.bb
@@ -14,7 +14,8 @@
 # that we don't build both udev and systemd in world builds.
 REQUIRED_DISTRO_FEATURES = "systemd"
 
-SRC_URI += "file://touchscreen.rules \
+SRC_URI += " \
+           file://touchscreen.rules \
            file://00-create-volatile.conf \
            ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://org.freedesktop.hostname1_no_polkit.conf', '', d)} \
            ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://00-hostnamed-network-user.conf', '', d)} \
@@ -24,7 +25,7 @@
            file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
            file://0003-implment-systemd-sysv-install-for-OE.patch \
            file://0001-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \
-           file://0001-shared-utmp-wtmp-fix-build-without-utmp.patch \
+           file://0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch \
            "
 
 # patches needed by musl
@@ -49,7 +50,6 @@
                file://0001-pass-correct-parameters-to-getdents64.patch \
                file://0002-Add-sys-stat.h-for-S_IFDIR.patch \
                file://0001-Adjust-for-musl-headers.patch \
-               file://0001-Add-sys-file.h-for-LOCK_.patch \
                "
 
 PAM_PLUGINS = " \
@@ -786,7 +786,7 @@
 PACKAGE_WRITE_DEPS += "qemu-native"
 pkg_postinst:udev-hwdb () {
 	if test -n "$D"; then
-		$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}"
+		$INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}" base_bindir="${base_bindir}"
 	else
 		udevadm hwdb --update
 	fi
diff --git a/poky/meta/recipes-core/udev/udev-extraconf/mount.sh b/poky/meta/recipes-core/udev/udev-extraconf/mount.sh
index 43acb3a..b7e86db 100644
--- a/poky/meta/recipes-core/udev/udev-extraconf/mount.sh
+++ b/poky/meta/recipes-core/udev/udev-extraconf/mount.sh
@@ -89,7 +89,7 @@
         rm_dir "$MOUNT_BASE/$name"
     else
         logger "mount.sh/automount" "Auto-mount of [$MOUNT_BASE/$name] successful"
-        touch "/tmp/.automount-$name"
+        echo "$name" > "/tmp/.automount-$name"
     fi
 }
 
diff --git a/poky/meta/recipes-core/zlib/zlib_1.2.12.bb b/poky/meta/recipes-core/zlib/zlib_1.2.12.bb
index e921703..77e7a49 100644
--- a/poky/meta/recipes-core/zlib/zlib_1.2.12.bb
+++ b/poky/meta/recipes-core/zlib/zlib_1.2.12.bb
@@ -39,16 +39,4 @@
 	install ${B}/examplesh ${D}${PTEST_PATH}
 }
 
-# Move zlib shared libraries for target builds to $base_libdir so the library
-# can be used in early boot before $prefix is mounted.
-do_install:append:class-target() {
-	if [ ${base_libdir} != ${libdir} ]
-	then
-		mkdir -p ${D}/${base_libdir}
-		mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir}
-		libname=`readlink ${D}/${libdir}/libz.so`
-		ln -sf ${@oe.path.relative("${libdir}", "${base_libdir}")}/$libname ${D}${libdir}/libz.so
-	fi
-}
-
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-device-utils.c-Use-linux-mount.h-instead-of-sys-moun.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-device-utils.c-Use-linux-mount.h-instead-of-sys-moun.patch
new file mode 100644
index 0000000..1397e50
--- /dev/null
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-device-utils.c-Use-linux-mount.h-instead-of-sys-moun.patch
@@ -0,0 +1,32 @@
+From d9f118a3408a8a2530f0f60e8072f4323911530f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 27 Jul 2022 01:08:20 +0000
+Subject: [PATCH] device-utils.c: Use linux mount.h instead of sys/mount.h
+
+This file includes linucx/fs.h which includes linux/mount.h and with
+glibc 2.36 linux/mount.h and glibc mount.h are not compatible [1]
+therefore try to avoid including both headers
+
+[1] https://sourceware.org/glibc/wiki/Release/2.36
+
+Upstream-Status: Submitted [https://www.spinics.net/lists/linux-btrfs/msg126918.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ common/device-utils.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/common/device-utils.c b/common/device-utils.c
+index 617b6746..25a4fb8c 100644
+--- a/common/device-utils.c
++++ b/common/device-utils.c
+@@ -15,7 +15,6 @@
+  */
+ 
+ #include <sys/ioctl.h>
+-#include <sys/mount.h>
+ #include <sys/statfs.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.18.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.18.1.bb
index 816fc17..5b24bef 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.18.1.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.18.1.bb
@@ -17,6 +17,7 @@
 
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \
            file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
+           file://0001-device-utils.c-Use-linux-mount.h-instead-of-sys-moun.patch \
            "
 SRCREV = "47b5cf867fc37411ef51eb5c09893a95f7f6c3b7"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/cargo/cargo-cross-canadian.inc b/poky/meta/recipes-devtools/cargo/cargo-cross-canadian.inc
index 7fc22a4..a2fac92 100644
--- a/poky/meta/recipes-devtools/cargo/cargo-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/cargo/cargo-cross-canadian.inc
@@ -5,7 +5,7 @@
 HOST_SYS = "${HOST_ARCH}-unknown-linux-gnu"
 CARGO_RUST_TARGET_CCLD = "${RUST_BUILD_CCLD}"
 
-require recipes-devtools/rust/rust-common.inc
+inherit rust-target-config
 require cargo.inc
 
 CARGO = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
@@ -28,17 +28,24 @@
 
 PN = "cargo-cross-canadian-${TRANSLATED_TARGET_ARCH}"
 
-python do_rust_gen_targets () {
-    wd = d.getVar('WORKDIR') + '/targets/'
-
-    rust_gen_target(d, 'BUILD', wd, "", "generic", d.getVar('BUILD_ARCH'))
-    rust_gen_target(d, 'HOST', wd, "", "generic", d.getVar('HOST_ARCH'))
-}
+RUST_TARGETGENS = "BUILD HOST"
 
 do_compile:prepend () {
 	PKG_CONFIG_PATH="${RECIPE_SYSROOT_NATIVE}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
 }
 
+create_sdk_wrapper () {
+        file="$1"
+        shift
+
+        cat <<- EOF > "${file}"
+		#!/bin/sh
+		\$$1 \$@
+		EOF
+
+        chmod +x "$file"
+}
+
 do_install () {
     SYS_BINDIR=$(dirname ${D}${bindir})
     install -d "${SYS_BINDIR}"
@@ -47,6 +54,9 @@
 	chrpath -r "\$ORIGIN/../lib" ${i}
     done
 
+    # Uses SDK's CC as linker so linked binaries works out of box.
+    create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld" "CC"
+
     ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
     mkdir "${ENV_SETUP_DIR}"
     ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh"
@@ -58,7 +68,10 @@
 		touch "\$CARGO_HOME/config"
 		echo "[build]" >> "\$CARGO_HOME/config"
 		echo 'target = "'${TARGET_SYS}'"' >> "\$CARGO_HOME/config"
-        fi
+		echo '# TARGET_SYS' >> "\$CARGO_HOME/config"
+		echo '[target.'${TARGET_SYS}']' >> "\$CARGO_HOME/config"
+		echo 'linker = "target-rust-ccld"' >> "\$CARGO_HOME/config"
+    fi
 
 	# Keep the below off as long as HTTP/2 is disabled.
 	export CARGO_HTTP_MULTIPLEXING=false
diff --git a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
index 86446c3..3ddef12 100644
--- a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
+++ b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
@@ -1,7 +1,6 @@
 set( CMAKE_SYSTEM_NAME Linux )
 set( CMAKE_C_FLAGS $ENV{CFLAGS} CACHE STRING "" FORCE )
 set( CMAKE_CXX_FLAGS $ENV{CXXFLAGS}  CACHE STRING "" FORCE )
-set( CMAKE_ASM_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE )
 set( CMAKE_SYSROOT $ENV{OECORE_TARGET_SYSROOT} )
 
 set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} )
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb
index d03da61..561112c 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb
@@ -49,6 +49,9 @@
 
 EXTRA_OECONF:append:class-target = " --disable-tests-rpath"
 
+# symver functions not currently supported on microblaze
+EXTRA_OECONF:append:class-target:microblaze = " --disable-symbol-versioning"
+
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-dbg glibc-dev"
 INSANE_SKIP:${PN}-ptest = "debug-deps dev-deps"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-12.1.inc b/poky/meta/recipes-devtools/gcc/gcc-12.1.inc
index 8c6c4a0..56678c7 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-12.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-12.1.inc
@@ -64,6 +64,7 @@
            file://0024-Fix-install-path-of-linux64.h.patch \
            file://0025-Move-sched.h-include-ahead-of-user-headers.patch \
            file://0026-rust-recursion-limit.patch \
+           file://0001-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch \
 "
 SRC_URI[sha256sum] = "62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
index 5d74e44..b8bfdce 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -16,7 +16,8 @@
 
 EXTRA_OECONF:append:linuxstdbase = " --enable-clocale=gnu"
 EXTRA_OECONF:append = " --cache-file=${B}/config.cache"
-EXTRA_OECONF:append:libc-newlib = " --with-newlib"
+EXTRA_OECONF:append:libc-newlib = " --with-newlib --with-target-subdir"
+EXTRA_OECONF:append:libc-baremetal = " --with-target-subdir"
 
 # Disable ifuncs for libatomic on arm conflicts -march/-mcpu
 EXTRA_OECONF:append:arm = " libat_cv_have_ifunc=no "
@@ -68,8 +69,8 @@
 	# libstdc++ isn't built yet so CXX would error not able to find it which breaks stdc++'s configure
 	# tests. Create a dummy empty lib for the purposes of configure.
 	mkdir -p ${WORKDIR}/dummylib
-	touch ${WORKDIR}/dummylib/dummylib.c
-	${CC} ${WORKDIR}/dummylib/dummylib.c -shared -o ${WORKDIR}/dummylib/libstdc++.so
+	${CC} -x c /dev/null -c -o ${WORKDIR}/dummylib/dummylib.o
+	${AR} rcs ${WORKDIR}/dummylib/libstdc++.a ${WORKDIR}/dummylib/dummylib.o
 	for d in libgcc ${RUNTIMETARGET}; do
 		echo "Configuring $d"
 		rm -rf ${B}/${TARGET_SYS}/$d/
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch
new file mode 100644
index 0000000..6bbc95a
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-libsanitizer-cherry-pick-9cf13067cb5088626ba7-from-u.patch
@@ -0,0 +1,45 @@
+From 2701442d0cf6292f6624443c15813d6d1a3562fe Mon Sep 17 00:00:00 2001
+From: Martin Liska <mliska@suse.cz>
+Date: Mon, 11 Jul 2022 22:03:14 +0200
+Subject: [PATCH] libsanitizer: cherry-pick 9cf13067cb5088626ba7 from upstream
+
+9cf13067cb5088626ba7ee1ec4c42ec59c7995a0 [sanitizer] Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36
+
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=2701442d0cf6292f6624443c15813d6d1a3562fe]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../sanitizer_platform_limits_posix.cpp                | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
+index 8ed3e92d270..97fd07acf9d 100644
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
+@@ -73,7 +73,9 @@
+ #include <sys/vt.h>
+ #include <linux/cdrom.h>
+ #include <linux/fd.h>
++#if SANITIZER_ANDROID
+ #include <linux/fs.h>
++#endif
+ #include <linux/hdreg.h>
+ #include <linux/input.h>
+ #include <linux/ioctl.h>
+@@ -869,10 +871,10 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
+   unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
+   unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
+ #endif
+-  unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
+-  unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
+-  unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
+-  unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
++  unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long);
++  unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long);
++  unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long);
++  unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long);
+   unsigned IOCTL_GIO_CMAP = GIO_CMAP;
+   unsigned IOCTL_GIO_FONT = GIO_FONT;
+   unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-devtools/gcc/libgcc-common.inc b/poky/meta/recipes-devtools/gcc/libgcc-common.inc
index fbeb43d..cf8d6b7 100644
--- a/poky/meta/recipes-devtools/gcc/libgcc-common.inc
+++ b/poky/meta/recipes-devtools/gcc/libgcc-common.inc
@@ -45,10 +45,14 @@
 }
 
 do_install:append:libc-baremetal () {
-	rmdir ${D}${base_libdir}
+	if [ "${base_libdir}" != "${libdir}" ]; then
+		rmdir ${D}${base_libdir}
+	fi
 }
 do_install:append:libc-newlib () {
-	rmdir ${D}${base_libdir}
+	if [ "${base_libdir}" != "${libdir}" ]; then
+		rmdir ${D}${base_libdir}
+	fi
 }
 
 # No rpm package is actually created but -dev depends on it, avoid dnf error
diff --git a/poky/meta/recipes-devtools/git/git_2.37.0.bb b/poky/meta/recipes-devtools/git/git_2.37.1.bb
similarity index 98%
rename from poky/meta/recipes-devtools/git/git_2.37.0.bb
rename to poky/meta/recipes-devtools/git/git_2.37.1.bb
index d3bd061..5d2524a 100644
--- a/poky/meta/recipes-devtools/git/git_2.37.0.bb
+++ b/poky/meta/recipes-devtools/git/git_2.37.1.bb
@@ -165,4 +165,4 @@
                  "
 EXTRA_OEMAKE += "NO_GETTEXT=1"
 
-SRC_URI[tarball.sha256sum] = "fc3ffe6c65c1f7c681a1ce6bb91703866e432c762731d4b57c566d696f6d62c3"
+SRC_URI[tarball.sha256sum] = "7dded96a52e7996ce90dd74a187aec175737f680dc063f3f33c8932cf5c8d809"
diff --git a/poky/meta/recipes-devtools/go/go-1.18.3.inc b/poky/meta/recipes-devtools/go/go-1.18.4.inc
similarity index 88%
rename from poky/meta/recipes-devtools/go/go-1.18.3.inc
rename to poky/meta/recipes-devtools/go/go-1.18.4.inc
index 693b045..bfda15c 100644
--- a/poky/meta/recipes-devtools/go/go-1.18.3.inc
+++ b/poky/meta/recipes-devtools/go/go-1.18.4.inc
@@ -15,4 +15,4 @@
     file://0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
     file://filter-build-paths.patch \
 "
-SRC_URI[main.sha256sum] = "0012386ddcbb5f3350e407c679923811dbd283fcdc421724931614a842ecbc2d"
+SRC_URI[main.sha256sum] = "4525aa6b0e3cecb57845f4060a7075aafc9ab752bb7b6b4cf8a212d43078e1e4"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.18.3.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.18.4.bb
similarity index 83%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.18.4.bb
index f207a47..252c467 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.18.3.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.18.4.bb
@@ -8,8 +8,8 @@
 PROVIDES = "go-native"
 
 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] = "956f8507b302ab0bb747613695cdae10af99bbd39a90cae522b7c0302cc27245"
-SRC_URI[go_linux_arm64.sha256sum] = "beacbe1441bee4d7978b900136d1d6a71d150f0a9bb77e9d50c822065623a35a"
+SRC_URI[go_linux_amd64.sha256sum] = "c9b099b68d93f5c5c8a8844a89f8db07eaa58270e3a1e01804f17f4cf8df02f5"
+SRC_URI[go_linux_arm64.sha256sum] = "35014d92b50d97da41dade965df7ebeb9a715da600206aa59ce1b2d05527421f"
 
 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.18.3.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.18.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.18.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.18.3.bb b/poky/meta/recipes-devtools/go/go-cross_1.18.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.18.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.18.3.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.18.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.18.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.18.3.bb b/poky/meta/recipes-devtools/go/go-native_1.18.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go-native_1.18.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.18.3.bb b/poky/meta/recipes-devtools/go/go-runtime_1.18.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.18.4.bb
diff --git a/poky/meta/recipes-devtools/go/go_1.18.3.bb b/poky/meta/recipes-devtools/go/go_1.18.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.18.3.bb
rename to poky/meta/recipes-devtools/go/go_1.18.4.bb
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index 2ec5c1e..bdea95d 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -19,14 +19,14 @@
 
 PROVIDES += "llvm${PV}"
 
-PV = "14.0.4"
+PV = "14.0.6"
 
 MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}"
 
 LLVM_RELEASE = "${PV}"
 
 BRANCH = "release/${MAJOR_VERSION}.x"
-SRCREV = "29f1039a7285a5c3a9c353d054140bf2556d4c4d"
+SRCREV = "f28c006a5895fc0e329fe15fead81e37457cb1d1"
 SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \
            file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \
            file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
diff --git a/poky/meta/recipes-devtools/log4cplus/log4cplus_2.0.7.bb b/poky/meta/recipes-devtools/log4cplus/log4cplus_2.0.8.bb
similarity index 90%
rename from poky/meta/recipes-devtools/log4cplus/log4cplus_2.0.7.bb
rename to poky/meta/recipes-devtools/log4cplus/log4cplus_2.0.8.bb
index 3798b93..bbf4ce6 100644
--- a/poky/meta/recipes-devtools/log4cplus/log4cplus_2.0.7.bb
+++ b/poky/meta/recipes-devtools/log4cplus/log4cplus_2.0.8.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \
           "
-SRC_URI[sha256sum] = "086451c7e7c582862cbd6c60d87bb6d9d63c4b65321dba85fa71766382f7ec6d"
+SRC_URI[sha256sum] = "cdc3c738e00be84d8d03b580816b9f12628ecc1d71e1395080c802615d2d9ced"
 
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
 UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
diff --git a/poky/meta/recipes-devtools/lua/lua/CVE-2022-33099.patch b/poky/meta/recipes-devtools/lua/lua/CVE-2022-33099.patch
new file mode 100644
index 0000000..fe7b606
--- /dev/null
+++ b/poky/meta/recipes-devtools/lua/lua/CVE-2022-33099.patch
@@ -0,0 +1,61 @@
+From 42d40581dd919fb134c07027ca1ce0844c670daf Mon Sep 17 00:00:00 2001
+From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
+Date: Fri, 20 May 2022 13:14:33 -0300
+Subject: [PATCH] Save stack space while handling errors
+
+Because error handling (luaG_errormsg) uses slots from EXTRA_STACK,
+and some errors can recur (e.g., string overflow while creating an
+error message in 'luaG_runerror', or a C-stack overflow before calling
+the message handler), the code should use stack slots with parsimony.
+
+This commit fixes the bug "Lua-stack overflow when C stack overflows
+while handling an error".
+
+CVE: CVE-2022-33099
+
+Upstream-Status: Backport [https://github.com/lua/lua/commit/42d40581dd919fb134c07027ca1ce0844c670daf]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ldebug.c | 5 ++++-
+ lvm.c    | 6 ++++--
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+--- a/src/ldebug.c
++++ b/src/ldebug.c
+@@ -824,8 +824,11 @@ l_noret luaG_runerror (lua_State *L, con
+   va_start(argp, fmt);
+   msg = luaO_pushvfstring(L, fmt, argp);  /* format message */
+   va_end(argp);
+-  if (isLua(ci))  /* if Lua function, add source:line information */
++  if (isLua(ci)) {  /* if Lua function, add source:line information */
+     luaG_addinfo(L, msg, ci_func(ci)->p->source, getcurrentline(ci));
++    setobjs2s(L, L->top - 2, L->top - 1);  /* remove 'msg' from the stack */
++    L->top--;
++  }
+   luaG_errormsg(L);
+ }
+ 
+--- a/src/lvm.c
++++ b/src/lvm.c
+@@ -656,8 +656,10 @@ void luaV_concat (lua_State *L, int tota
+       /* collect total length and number of strings */
+       for (n = 1; n < total && tostring(L, s2v(top - n - 1)); n++) {
+         size_t l = vslen(s2v(top - n - 1));
+-        if (l_unlikely(l >= (MAX_SIZE/sizeof(char)) - tl))
++        if (l_unlikely(l >= (MAX_SIZE/sizeof(char)) - tl)) {
++          L->top = top - total;  /* pop strings to avoid wasting stack */
+           luaG_runerror(L, "string length overflow");
++        }
+         tl += l;
+       }
+       if (tl <= LUAI_MAXSHORTLEN) {  /* is result a short string? */
+@@ -672,7 +674,7 @@ void luaV_concat (lua_State *L, int tota
+       setsvalue2s(L, top - n, ts);  /* create result */
+     }
+     total -= n-1;  /* got 'n' strings to create 1 new */
+-    L->top -= n-1;  /* popped 'n' strings and pushed one */
++    L->top = top - (n - 1);  /* popped 'n' strings and pushed one */
+   } while (total > 1);  /* repeat until only 1 result left */
+ }
+ 
diff --git a/poky/meta/recipes-devtools/lua/lua_5.4.4.bb b/poky/meta/recipes-devtools/lua/lua_5.4.4.bb
index 6f2cea5..0b2e754 100644
--- a/poky/meta/recipes-devtools/lua/lua_5.4.4.bb
+++ b/poky/meta/recipes-devtools/lua/lua_5.4.4.bb
@@ -7,6 +7,7 @@
 SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz;name=tarballsrc \
            file://lua.pc.in \
            file://CVE-2022-28805.patch \
+           file://CVE-2022-33099.patch \
            ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'http://www.lua.org/tests/lua-${PV_testsuites}-tests.tar.gz;name=tarballtest file://run-ptest ', '', d)} \
            "
 
diff --git a/poky/meta/recipes-devtools/meson/meson/meson-wrapper b/poky/meta/recipes-devtools/meson/meson/meson-wrapper
index 8fafaad..c62007f 100755
--- a/poky/meta/recipes-devtools/meson/meson/meson-wrapper
+++ b/poky/meta/recipes-devtools/meson/meson/meson-wrapper
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 if [ -z "$OECORE_NATIVE_SYSROOT" ]; then
-    echo "OECORE_NATIVE_SYSROOT not set; are you in a Yocto SDK environment?" >&2
+    exec "meson.real" "$@"
 fi
 
 if [ -z "$SSL_CERT_DIR" ]; then
diff --git a/poky/meta/recipes-devtools/meson/meson_0.62.2.bb b/poky/meta/recipes-devtools/meson/meson_0.63.0.bb
similarity index 82%
rename from poky/meta/recipes-devtools/meson/meson_0.62.2.bb
rename to poky/meta/recipes-devtools/meson/meson_0.63.0.bb
index acfc64f..890f475 100644
--- a/poky/meta/recipes-devtools/meson/meson_0.62.2.bb
+++ b/poky/meta/recipes-devtools/meson/meson_0.63.0.bb
@@ -17,7 +17,7 @@
            file://0001-is_debianlike-always-return-False.patch \
            file://0001-Check-for-clang-before-guessing-gcc-or-lcc.patch \
            "
-SRC_URI[sha256sum] = "a7669e4c4110b06b743d57cc5d6432591a6677ef2402139fe4f3d42ac13380b0"
+SRC_URI[sha256sum] = "3b51d451744c2bc71838524ec8d96cd4f8c4793d5b8d5d0d0a9c8a4f7c94cd6f"
 
 UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
 UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -75,7 +75,7 @@
 
     return repr(val)
 
-do_install:append:class-nativesdk() {
+install_templates() {
     install -d ${D}${datadir}/meson
 
     cat >${D}${datadir}/meson/meson.native.template <<EOF
@@ -117,11 +117,19 @@
 sys_root = @OECORE_TARGET_SYSROOT
 
 [host_machine]
-system = '${SDK_OS}'
-cpu_family = '${@meson_cpu_family("SDK_ARCH", d)}'
-cpu = '${SDK_ARCH}'
-endian = '${@meson_endian("SDK", d)}'
+system = '$host_system'
+cpu_family = '$host_cpu_family'
+cpu = '$host_cpu'
+endian = '$host_endian'
 EOF
+}
+
+do_install:append:class-nativesdk() {
+    host_system=${SDK_OS}
+    host_cpu_family=${@meson_cpu_family("SDK_ARCH", d)}
+    host_cpu=${SDK_ARCH}
+    host_endian=${@meson_endian("SDK", d)}
+    install_templates
 
     install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
     install -m 0755 ${WORKDIR}/meson-setup.py ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
@@ -132,3 +140,19 @@
 }
 
 FILES:${PN}:append:class-nativesdk = "${datadir}/meson ${SDKPATHNATIVE}"
+
+do_install:append:class-native() {
+    host_system=${HOST_OS}
+    host_cpu_family=${@meson_cpu_family("HOST_ARCH", d)}
+    host_cpu=${HOST_ARCH}
+    host_endian=${@meson_endian("HOST", d)}
+    install_templates
+
+    install -d ${D}${datadir}/post-relocate-setup.d
+    install -m 0755 ${WORKDIR}/meson-setup.py ${D}${datadir}/post-relocate-setup.d/
+
+    # We need to wrap the real meson with a thin wrapper that substitues native/cross files
+    # when running in a direct SDK environment.
+    mv ${D}${bindir}/meson ${D}${bindir}/meson.real
+    install -m 0755 ${WORKDIR}/meson-wrapper ${D}${bindir}/meson
+}
diff --git a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 3e611d1..0bb94ab 100644
--- a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d"
 
 SRCBRANCH ?= "master"
-SRCREV = "b7e4d5a6ae9942d26a11de9b05ae7d52c0802802"
+SRCREV = "d7b343fd262880994f041ce2335442e7bd1071f5"
 
 PV = "0.1+git${SRCPV}"
 
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index ab8c4d6..750ccfd 100644
--- a/poky/meta/recipes-devtools/python/python-cython.inc
+++ b/poky/meta/recipes-devtools/python/python-cython.inc
@@ -9,7 +9,7 @@
 PYPI_PACKAGE = "Cython"
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[sha256sum] = "2235b62da8fe6fa8b99422c8e583f2fb95e143867d337b5c75e4b9a1a865f9e3"
+SRC_URI[sha256sum] = "8733cf4758b79304f2a4e39ebfac5e92341bce47bcceb26c1254398b2f8c1af7"
 UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
 
 inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_21.4.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_22.1.0.bb
similarity index 68%
rename from poky/meta/recipes-devtools/python/python3-attrs_21.4.0.bb
rename to poky/meta/recipes-devtools/python/python3-attrs_22.1.0.bb
index 1839ce6..ba07ac7 100644
--- a/poky/meta/recipes-devtools/python/python3-attrs_21.4.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-attrs_22.1.0.bb
@@ -1,9 +1,9 @@
 DESCRIPTION = "Classes Without Boilerplate"
 HOMEPAGE = "http://www.attrs.org/"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887"
 
-SRC_URI[sha256sum] = "626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"
+SRC_URI[sha256sum] = "29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.30.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.32.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-cython_0.29.30.bb
rename to poky/meta/recipes-devtools/python/python3-cython_0.29.32.bb
diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.28.1.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.28.4.bb
similarity index 82%
rename from poky/meta/recipes-devtools/python/python3-dbusmock_0.28.1.bb
rename to poky/meta/recipes-devtools/python/python3-dbusmock_0.28.4.bb
index d6889f4..e895d87 100644
--- a/poky/meta/recipes-devtools/python/python3-dbusmock_0.28.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-dbusmock_0.28.4.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-SRC_URI[sha256sum] = "6434e544c055e3570b20e341e50a3d2dd50b19d9e55d579b919e14879f9f1e57"
+SRC_URI[sha256sum] = "52ad024a44d46602084fd91c0c467ab95b7ecf27c4e2168e0d2160623f18c0a2"
 
 PYPI_PACKAGE = "python-dbusmock"
 
diff --git a/poky/meta/recipes-devtools/python/python3-docutils_0.18.1.bb b/poky/meta/recipes-devtools/python/python3-docutils_0.19.bb
similarity index 62%
rename from poky/meta/recipes-devtools/python/python3-docutils_0.18.1.bb
rename to poky/meta/recipes-devtools/python/python3-docutils_0.19.bb
index e4ddd01..7ae93ab 100644
--- a/poky/meta/recipes-devtools/python/python3-docutils_0.18.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-docutils_0.19.bb
@@ -2,9 +2,9 @@
 HOMEPAGE = "http://docutils.sourceforge.net"
 SECTION = "devel/python"
 LICENSE = "PSF-2.0 & BSD-2-Clause & GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fecee07ad8df9116e1f739e2ed2ea513"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=41001b296a89bb2780bbe306e947ecee"
 
-SRC_URI[sha256sum] = "679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"
+SRC_URI[sha256sum] = "33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6"
 
 inherit pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2022.5.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2022.7.bb
similarity index 83%
rename from poky/meta/recipes-devtools/python/python3-dtschema_2022.5.bb
rename to poky/meta/recipes-devtools/python/python3-dtschema_2022.7.bb
index 0520dd7..dd9092f 100644
--- a/poky/meta/recipes-devtools/python/python3-dtschema_2022.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-dtschema_2022.7.bb
@@ -7,7 +7,7 @@
 
 PYPI_PACKAGE = "dtschema"
 
-SRC_URI[sha256sum] = "147ff18bf446131d3ba14bc751febd84f4fdedf06130f53e193d3370052dfe3f"
+SRC_URI[sha256sum] = "2238753fa16bee7b26841cced75d745af777b896190f40aff5802992335201bb"
 
 DEPENDS += "python3-setuptools-scm-native"
 RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987"
diff --git a/poky/meta/recipes-devtools/python/python3-hatchling_1.5.0.bb b/poky/meta/recipes-devtools/python/python3-hatchling_1.6.0.bb
similarity index 85%
rename from poky/meta/recipes-devtools/python/python3-hatchling_1.5.0.bb
rename to poky/meta/recipes-devtools/python/python3-hatchling_1.6.0.bb
index 61b3e87..e06bdf0 100644
--- a/poky/meta/recipes-devtools/python/python3-hatchling_1.5.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-hatchling_1.6.0.bb
@@ -8,7 +8,7 @@
 DEPENDS += "python3-pluggy-native python3-tomli-native python3-pathspec-native python3-packaging-native python3-editables-native"
 DEPENDS:remove:class-native = "python3-hatchling-native"
 
-SRC_URI[sha256sum] = "9ca409a41140cc662164680b78adcd3ba77b23a945984bd9970d11fe38e86a38"
+SRC_URI[sha256sum] = "bd6e8505de511ac4217ff50927f6d1845494608e401e63a62b830c31fb613544"
 
 do_compile:prepend() {
     export PYTHONPATH=src
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.48.2.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.50.1.bb
similarity index 90%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.48.2.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.50.1.bb
index 9e74e2c..0c93c12 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.48.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.50.1.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "ef548f10438095678af7fcfa369b882390355a6329db73174a65749b677677ec"
+SRC_URI[sha256sum] = "1a19ade3b27825cab622c95fcf25182a27a42f97589c163173fcbdafb8621d1e"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-jsonschema_4.7.1.bb b/poky/meta/recipes-devtools/python/python3-jsonschema_4.9.0.bb
similarity index 82%
rename from poky/meta/recipes-devtools/python/python3-jsonschema_4.7.1.bb
rename to poky/meta/recipes-devtools/python/python3-jsonschema_4.9.0.bb
index f17f28a..66e0aff 100644
--- a/poky/meta/recipes-devtools/python/python3-jsonschema_4.7.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-jsonschema_4.9.0.bb
@@ -4,10 +4,13 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
                     file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
 
-SRC_URI[sha256sum] = "25203dbebd62a1179f810f14339f7a638baaf279b5cc3b738a58c3744af56d65"
+SRC_URI[sha256sum] = "df10e65c8f3687a48e93d0d348ce0ce5f897b5a28e9bbcbbe8f7c7eaf019e850"
 
 inherit pypi python_hatchling
 
+PACKAGES =+ "${PN}-tests"
+FILES:${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/jsonschema/tests"
+
 DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
 
 PACKAGECONFIG ??= "format"
@@ -35,14 +38,11 @@
     ${PYTHON_PN}-json \
     ${PYTHON_PN}-netclient \
     ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-pkgutil \
     ${PYTHON_PN}-pprint \
     ${PYTHON_PN}-pyrsistent \
-    ${PYTHON_PN}-shell \
-    ${PYTHON_PN}-six \
-    ${PYTHON_PN}-unittest \
-    ${PYTHON_PN}-setuptools-scm \
     ${PYTHON_PN}-zipp \
 "
 
+RDEPENDS:${PN}-tests = "${PN}"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-picobuild_0.1.bb b/poky/meta/recipes-devtools/python/python3-picobuild_0.2.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-picobuild_0.1.bb
rename to poky/meta/recipes-devtools/python/python3-picobuild_0.2.bb
index 3c92b07..99e4cb8 100644
--- a/poky/meta/recipes-devtools/python/python3-picobuild_0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-picobuild_0.2.bb
@@ -11,7 +11,7 @@
                     "
 
 SRC_URI = "git://gitlab.com/rossburton/picobuild.git;protocol=https;branch=main"
-SRCREV = "3441d5500a5ad23a44027576cf5261c3b7c1d6b0"
+SRCREV = "ed3b16ce48d91df181e5f5d77b9bbc2577b3fd9d"
 PV .= "+git${SRCPV}"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch b/poky/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch
deleted file mode 100644
index d6c27b8..0000000
--- a/poky/meta/recipes-devtools/python/python3-pip/0001-change-shebang-to-python3.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From dca973830d4eee3e0f79e61237c44a9dd8201641 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Tue, 22 Jun 2021 12:31:46 -0400
-Subject: [PATCH] change shebang to python3
-
-Upstream-Status: Inappropriate (OE-specific)
-
-Despite no longer supporting python2, some files in the pip source refer
-to "python" instead of "python3", so patch them as needed to ensure that
-they correctly reference the python3 binary.
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
----
- src/pip/_vendor/chardet/langbulgarianmodel.py | 2 +-
- src/pip/_vendor/chardet/langgreekmodel.py     | 2 +-
- src/pip/_vendor/chardet/langhebrewmodel.py    | 2 +-
- src/pip/_vendor/chardet/langhungarianmodel.py | 2 +-
- src/pip/_vendor/chardet/langrussianmodel.py   | 2 +-
- src/pip/_vendor/chardet/langthaimodel.py      | 2 +-
- src/pip/_vendor/chardet/langturkishmodel.py   | 2 +-
- src/pip/_vendor/chardet/metadata/languages.py | 2 +-
- src/pip/_vendor/requests/certs.py             | 2 +-
- 9 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/pip/_vendor/chardet/langbulgarianmodel.py b/src/pip/_vendor/chardet/langbulgarianmodel.py
-index e963a50..97ea6ce 100644
---- a/src/pip/_vendor/chardet/langbulgarianmodel.py
-+++ b/src/pip/_vendor/chardet/langbulgarianmodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/langgreekmodel.py b/src/pip/_vendor/chardet/langgreekmodel.py
-index d99528e..4a127ea 100644
---- a/src/pip/_vendor/chardet/langgreekmodel.py
-+++ b/src/pip/_vendor/chardet/langgreekmodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/langhebrewmodel.py b/src/pip/_vendor/chardet/langhebrewmodel.py
-index 484c652..676c1a7 100644
---- a/src/pip/_vendor/chardet/langhebrewmodel.py
-+++ b/src/pip/_vendor/chardet/langhebrewmodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/langhungarianmodel.py b/src/pip/_vendor/chardet/langhungarianmodel.py
-index bbc5cda..042eae7 100644
---- a/src/pip/_vendor/chardet/langhungarianmodel.py
-+++ b/src/pip/_vendor/chardet/langhungarianmodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/langrussianmodel.py b/src/pip/_vendor/chardet/langrussianmodel.py
-index 5594452..564b02e 100644
---- a/src/pip/_vendor/chardet/langrussianmodel.py
-+++ b/src/pip/_vendor/chardet/langrussianmodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/langthaimodel.py b/src/pip/_vendor/chardet/langthaimodel.py
-index 9a37db5..c974879 100644
---- a/src/pip/_vendor/chardet/langthaimodel.py
-+++ b/src/pip/_vendor/chardet/langthaimodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/langturkishmodel.py b/src/pip/_vendor/chardet/langturkishmodel.py
-index 43f4230..7e710c3 100644
---- a/src/pip/_vendor/chardet/langturkishmodel.py
-+++ b/src/pip/_vendor/chardet/langturkishmodel.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- from pip._vendor.chardet.sbcharsetprober import SingleByteCharSetModel
-diff --git a/src/pip/_vendor/chardet/metadata/languages.py b/src/pip/_vendor/chardet/metadata/languages.py
-index 3237d5a..aa2ec7c 100644
---- a/src/pip/_vendor/chardet/metadata/languages.py
-+++ b/src/pip/_vendor/chardet/metadata/languages.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- Metadata about languages used by our model training code for our
-diff --git a/src/pip/_vendor/requests/certs.py b/src/pip/_vendor/requests/certs.py
-index 06a594e..bfa7839 100644
---- a/src/pip/_vendor/requests/certs.py
-+++ b/src/pip/_vendor/requests/certs.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- 
- """
diff --git a/poky/meta/recipes-devtools/python/python3-pip/reproducible.patch b/poky/meta/recipes-devtools/python/python3-pip/reproducible.patch
index 538bb94..0ed0c91 100644
--- a/poky/meta/recipes-devtools/python/python3-pip/reproducible.patch
+++ b/poky/meta/recipes-devtools/python/python3-pip/reproducible.patch
@@ -14,34 +14,17 @@
 
 Upstream-Status: Pending
 
-Index: pip-22.0.3/src/pip/_internal/req/req_install.py
-===================================================================
---- pip-22.0.3.orig/src/pip/_internal/req/req_install.py
-+++ pip-22.0.3/src/pip/_internal/req/req_install.py
-@@ -758,7 +758,9 @@ class InstallRequirement:
-         if self.is_wheel:
-             assert self.local_file_path
-             direct_url = None
--            if self.editable:
-+            if '_PYTHON_SYSCONFIGDATA_NAME' in os.environ:
-+                direct_url = None
-+            elif self.editable:
-                 direct_url = direct_url_for_editable(self.unpacked_source_directory)
-             elif self.original_link:
-                 direct_url = direct_url_from_link(
-@@ -775,6 +777,7 @@ class InstallRequirement:
-                 warn_script_location=warn_script_location,
-                 direct_url=direct_url,
-                 requested=self.user_supplied,
-+                root=root,
-             )
-             self.install_succeeded = True
-             return
-Index: pip-22.0.3/src/pip/_internal/operations/install/wheel.py
-===================================================================
---- pip-22.0.3.orig/src/pip/_internal/operations/install/wheel.py
-+++ pip-22.0.3/src/pip/_internal/operations/install/wheel.py
-@@ -436,6 +436,7 @@ def _install_wheel(
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ src/pip/_internal/operations/install/wheel.py | 5 ++++-
+ src/pip/_internal/req/req_install.py          | 5 ++++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/pip/_internal/operations/install/wheel.py b/src/pip/_internal/operations/install/wheel.py
+index 1af8978..3e48f9b 100644
+--- a/src/pip/_internal/operations/install/wheel.py
++++ b/src/pip/_internal/operations/install/wheel.py
+@@ -434,6 +434,7 @@ def _install_wheel(
      warn_script_location: bool = True,
      direct_url: Optional[DirectUrl] = None,
      requested: bool = False,
@@ -49,7 +32,7 @@
  ) -> None:
      """Install a wheel.
  
-@@ -612,7 +613,7 @@ def _install_wheel(
+@@ -610,7 +611,7 @@ def _install_wheel(
              with warnings.catch_warnings():
                  warnings.filterwarnings("ignore")
                  for path in pyc_source_file_paths():
@@ -58,7 +41,7 @@
                      if success:
                          pyc_path = pyc_output_path(path)
                          assert os.path.exists(pyc_path)
-@@ -723,6 +724,7 @@ def install_wheel(
+@@ -721,6 +722,7 @@ def install_wheel(
      warn_script_location: bool = True,
      direct_url: Optional[DirectUrl] = None,
      requested: bool = False,
@@ -66,9 +49,35 @@
  ) -> None:
      with ZipFile(wheel_path, allowZip64=True) as z:
          with req_error_context(req_description):
-@@ -735,4 +737,5 @@ def install_wheel(
+@@ -733,4 +735,5 @@ def install_wheel(
                  warn_script_location=warn_script_location,
                  direct_url=direct_url,
                  requested=requested,
 +                root=root,
              )
+diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py
+index a1e376c..4c3f1bb 100644
+--- a/src/pip/_internal/req/req_install.py
++++ b/src/pip/_internal/req/req_install.py
+@@ -779,7 +779,9 @@ class InstallRequirement:
+             assert self.local_file_path
+             direct_url = None
+             # TODO this can be refactored to direct_url = self.download_info
+-            if self.editable:
++            if '_PYTHON_SYSCONFIGDATA_NAME' in os.environ:
++                direct_url = None
++            elif self.editable:
+                 direct_url = direct_url_for_editable(self.unpacked_source_directory)
+             elif self.original_link:
+                 direct_url = direct_url_from_link(
+@@ -796,6 +798,7 @@ class InstallRequirement:
+                 warn_script_location=warn_script_location,
+                 direct_url=direct_url,
+                 requested=self.user_supplied,
++                root=root,
+             )
+             self.install_succeeded = True
+             return
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/python/python3-pip_22.1.2.bb b/poky/meta/recipes-devtools/python/python3-pip_22.2.1.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-pip_22.1.2.bb
rename to poky/meta/recipes-devtools/python/python3-pip_22.2.1.bb
index 5fe59a4..39349b6 100644
--- a/poky/meta/recipes-devtools/python/python3-pip_22.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pip_22.2.1.bb
@@ -6,11 +6,10 @@
   file://LICENSE.txt;md5=63ec52baf95163b597008bb46db68030 \
   file://src/pip/_vendor/cachecontrol/LICENSE.txt;md5=6572692148079ebbbd800be4b9f36c6d \
   file://src/pip/_vendor/certifi/LICENSE;md5=67da0714c3f9471067b729eca6c9fbe8 \
-  file://src/pip/_vendor/chardet/LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+  file://src/pip/_vendor/chardet/LICENSE;md5=4fbd65380cdd255951079008b364516c \
   file://src/pip/_vendor/colorama/LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26 \
   file://src/pip/_vendor/distlib/LICENSE.txt;md5=f6a11430d5cd6e2cd3832ee94f22ddfc \
   file://src/pip/_vendor/distro/LICENSE;md5=d2794c0df5b907fdace235a619d80314 \
-  file://src/pip/_vendor/html5lib/LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c \
   file://src/pip/_vendor/idna/LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1 \
   file://src/pip/_vendor/msgpack/COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751 \
   file://src/pip/_vendor/packaging/LICENSE;md5=faadaedca9251a90b205c9167578ce91 \
@@ -18,7 +17,7 @@
   file://src/pip/_vendor/pep517/LICENSE;md5=aad69c93f605003e3342b174d9b0708c \
   file://src/pip/_vendor/pkg_resources/LICENSE;md5=9a33897f1bca1160d7aad3835152e158 \
   file://src/pip/_vendor/platformdirs/LICENSE.txt;md5=282c970bb844954c8535dd6e9733db7f \
-  file://src/pip/_vendor/pygments/LICENSE;md5=98419e351433ac106a24e3ad435930bc \
+  file://src/pip/_vendor/pygments/LICENSE;md5=36a13c90514e2899f1eba7f41c3ee592 \
   file://src/pip/_vendor/pyparsing/LICENSE;md5=657a566233888513e1f07ba13e2f47f1 \
   file://src/pip/_vendor/requests/LICENSE;md5=34400b68072d710fecd0a2940a0d1658 \
   file://src/pip/_vendor/resolvelib/LICENSE;md5=78e1c0248051c32a38a7f820c30bd7a5 \
@@ -33,11 +32,10 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI += "file://0001-change-shebang-to-python3.patch"
 SRC_URI += "file://no_shebang_mangling.patch"
 SRC_URI += "file://reproducible.patch"
 
-SRC_URI[sha256sum] = "6d55b27e10f506312894a87ccc59f280136bad9061719fac9101bdad5a6bce69"
+SRC_URI[sha256sum] = "50516e47a2b79e77446f0d05649f0d53772c192571486236b1905492bfc24bac"
 
 do_install:append() {
     rm -f ${D}/${bindir}/pip
diff --git a/poky/meta/recipes-devtools/python/python3-pygobject_3.42.1.bb b/poky/meta/recipes-devtools/python/python3-pygobject_3.42.2.bb
similarity index 92%
rename from poky/meta/recipes-devtools/python/python3-pygobject_3.42.1.bb
rename to poky/meta/recipes-devtools/python/python3-pygobject_3.42.2.bb
index 443605a..cc7b07e 100644
--- a/poky/meta/recipes-devtools/python/python3-pygobject_3.42.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygobject_3.42.2.bb
@@ -18,7 +18,7 @@
     http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
     file://0001-Do-not-build-tests.patch \
 "
-SRC_URI[sha256sum] = "1f34b5f7624de35e44eb5a7eb428353285bd03004d55131a5f7f7fa9b90f3cc9"
+SRC_URI[sha256sum] = "ade8695e2a7073849dd0316d31d8728e15e1e0bc71d9ff6d1c09e86be52bc957"
 
 S = "${WORKDIR}/${SRCNAME}-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-scons_4.3.0.bb b/poky/meta/recipes-devtools/python/python3-scons_4.4.0.bb
similarity index 90%
rename from poky/meta/recipes-devtools/python/python3-scons_4.3.0.bb
rename to poky/meta/recipes-devtools/python/python3-scons_4.4.0.bb
index ae91d98..ad11495 100644
--- a/poky/meta/recipes-devtools/python/python3-scons_4.3.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-scons_4.4.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7"
 
 SRC_URI += " file://0001-Fix-man-page-installation.patch"
-SRC_URI[sha256sum] = "d47081587e3675cc168f1f54f0d74a69b328a2fc90ec4feb85f728677419b879"
+SRC_URI[sha256sum] = "7703c4e9d2200b4854a31800c1dbd4587e1fa86e75f58795c740bcfa7eca7eaa"
 
 PYPI_PACKAGE = "SCons"
 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-rust/8e9892f08b1248dc03862da86915c2745e0ff7ec.patch b/poky/meta/recipes-devtools/python/python3-setuptools-rust/8e9892f08b1248dc03862da86915c2745e0ff7ec.patch
new file mode 100644
index 0000000..2a531e1
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-rust/8e9892f08b1248dc03862da86915c2745e0ff7ec.patch
@@ -0,0 +1,221 @@
+From 8e9892f08b1248dc03862da86915c2745e0ff7ec Mon Sep 17 00:00:00 2001
+From: "Andrew J. Hesford" <ajh@sideband.org>
+Date: Fri, 15 Jul 2022 10:33:02 -0400
+Subject: [PATCH] build_rust: remove linker handling that broke cross
+ compilation
+
+Upstream-Status: Submitted [https://github.com/PyO3/setuptools-rust/pull/269]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ setuptools_rust/build.py | 151 ++-------------------------------------
+ 1 file changed, 7 insertions(+), 144 deletions(-)
+
+diff --git a/setuptools_rust/build.py b/setuptools_rust/build.py
+index 4fe594b..e81ed8f 100644
+--- a/setuptools_rust/build.py
++++ b/setuptools_rust/build.py
+@@ -113,23 +113,10 @@ def build_extension(
+         self, ext: RustExtension, forced_target_triple: Optional[str] = None
+     ) -> List["_BuiltModule"]:
+ 
+-        target_info = self._detect_rust_target(forced_target_triple)
+-        if target_info is not None:
+-            target_triple = target_info.triple
+-            cross_lib = target_info.cross_lib
+-            linker = target_info.linker
+-            # We're ignoring target_info.linker_args for now because we're not
+-            # sure if they will always do the right thing. Might help with some
+-            # of the OS-specific logic if it does.
+-
+-        else:
+-            target_triple = None
+-            cross_lib = None
+-            linker = None
+-
++        target_triple = self._detect_rust_target(forced_target_triple)
+         rustc_cfgs = get_rustc_cfgs(target_triple)
+ 
+-        env = _prepare_build_environment(cross_lib)
++        env = _prepare_build_environment()
+ 
+         if not os.path.exists(ext.path):
+             raise DistutilsFileError(
+@@ -150,9 +137,6 @@ def build_extension(
+ 
+         rustflags = []
+ 
+-        if linker is not None:
+-            rustflags.extend(["-C", "linker=" + linker])
+-
+         if ext._uses_exec_binding():
+             command = [self.cargo, "build", "--manifest-path", ext.path, *cargo_args]
+ 
+@@ -407,45 +391,12 @@ def _py_limited_api(self) -> _PyLimitedApi:
+ 
+     def _detect_rust_target(
+         self, forced_target_triple: Optional[str] = None
+-    ) -> Optional["_TargetInfo"]:
++    ) -> Optional[str]:
+         assert self.plat_name is not None
+-        cross_compile_info = _detect_unix_cross_compile_info()
+-        if cross_compile_info is not None:
+-            cross_target_info = cross_compile_info.to_target_info()
+-            if forced_target_triple is not None:
+-                if (
+-                    cross_target_info is not None
+-                    and not cross_target_info.is_compatible_with(forced_target_triple)
+-                ):
+-                    self.warn(
+-                        f"Forced Rust target `{forced_target_triple}` is not "
+-                        f"compatible with deduced Rust target "
+-                        f"`{cross_target_info.triple}` - the built package "
+-                        f" may not import successfully once installed."
+-                    )
+-
+-                # Forcing the target in a cross-compile environment; use
+-                # the cross-compile information in combination with the
+-                # forced target
+-                return _TargetInfo(
+-                    forced_target_triple,
+-                    cross_compile_info.cross_lib,
+-                    cross_compile_info.linker,
+-                    cross_compile_info.linker_args,
+-                )
+-            elif cross_target_info is not None:
+-                return cross_target_info
+-            else:
+-                raise DistutilsPlatformError(
+-                    "Don't know the correct rust target for system type "
+-                    f"{cross_compile_info.host_type}. Please set the "
+-                    "CARGO_BUILD_TARGET environment variable."
+-                )
+-
+-        elif forced_target_triple is not None:
++        if forced_target_triple is not None:
+             # Automatic target detection can be overridden via the CARGO_BUILD_TARGET
+             # environment variable or --target command line option
+-            return _TargetInfo.for_triple(forced_target_triple)
++            return forced_target_triple
+ 
+         # Determine local rust target which needs to be "forced" if necessary
+         local_rust_target = _adjusted_local_rust_target(self.plat_name)
+@@ -457,7 +408,7 @@ def _detect_rust_target(
+             # check for None first to avoid calling to rustc if not needed
+             and local_rust_target != get_rust_host()
+         ):
+-            return _TargetInfo.for_triple(local_rust_target)
++            return local_rust_target
+ 
+         return None
+ 
+@@ -547,91 +498,6 @@ class _BuiltModule(NamedTuple):
+     path: str
+ 
+ 
+-class _TargetInfo(NamedTuple):
+-    triple: str
+-    cross_lib: Optional[str]
+-    linker: Optional[str]
+-    linker_args: Optional[str]
+-
+-    @staticmethod
+-    def for_triple(triple: str) -> "_TargetInfo":
+-        return _TargetInfo(triple, None, None, None)
+-
+-    def is_compatible_with(self, target: str) -> bool:
+-        if self.triple == target:
+-            return True
+-
+-        # the vendor field can be ignored, so x86_64-pc-linux-gnu is compatible
+-        # with x86_64-unknown-linux-gnu
+-        if _replace_vendor_with_unknown(self.triple) == target:
+-            return True
+-
+-        return False
+-
+-
+-class _CrossCompileInfo(NamedTuple):
+-    host_type: str
+-    cross_lib: Optional[str]
+-    linker: Optional[str]
+-    linker_args: Optional[str]
+-
+-    def to_target_info(self) -> Optional[_TargetInfo]:
+-        """Maps this cross compile info to target info.
+-
+-        Returns None if the corresponding target information could not be
+-        deduced.
+-        """
+-        # hopefully an exact match
+-        targets = get_rust_target_list()
+-        if self.host_type in targets:
+-            return _TargetInfo(
+-                self.host_type, self.cross_lib, self.linker, self.linker_args
+-            )
+-
+-        # the vendor field can be ignored, so x86_64-pc-linux-gnu is compatible
+-        # with x86_64-unknown-linux-gnu
+-        without_vendor = _replace_vendor_with_unknown(self.host_type)
+-        if without_vendor is not None and without_vendor in targets:
+-            return _TargetInfo(
+-                without_vendor, self.cross_lib, self.linker, self.linker_args
+-            )
+-
+-        return None
+-
+-
+-def _detect_unix_cross_compile_info() -> Optional["_CrossCompileInfo"]:
+-    # See https://github.com/PyO3/setuptools-rust/issues/138
+-    # This is to support cross compiling on *NIX, where plat_name isn't
+-    # necessarily the same as the system we are running on.  *NIX systems
+-    # have more detailed information available in sysconfig. We need that
+-    # because plat_name doesn't give us information on e.g., glibc vs musl.
+-    host_type = sysconfig.get_config_var("HOST_GNU_TYPE")
+-    build_type = sysconfig.get_config_var("BUILD_GNU_TYPE")
+-
+-    if not host_type or host_type == build_type:
+-        # not *NIX, or not cross compiling
+-        return None
+-
+-    if "apple-darwin" in host_type and (build_type and "apple-darwin" in build_type):
+-        # On macos and the build and host differ. This is probably an arm
+-        # Python which was built on x86_64. Don't try to handle this for now.
+-        # (See https://github.com/PyO3/setuptools-rust/issues/192)
+-        return None
+-
+-    stdlib = sysconfig.get_path("stdlib")
+-    assert stdlib is not None
+-    cross_lib = os.path.dirname(stdlib)
+-
+-    bldshared = sysconfig.get_config_var("BLDSHARED")
+-    if not bldshared:
+-        linker = None
+-        linker_args = None
+-    else:
+-        [linker, _, linker_args] = bldshared.partition(" ")
+-
+-    return _CrossCompileInfo(host_type, cross_lib, linker, linker_args)
+-
+-
+ def _replace_vendor_with_unknown(target: str) -> Optional[str]:
+     """Replaces vendor in the target triple with unknown.
+ 
+@@ -644,7 +510,7 @@ def _replace_vendor_with_unknown(target: str) -> Optional[str]:
+     return "-".join(components)
+ 
+ 
+-def _prepare_build_environment(cross_lib: Optional[str]) -> Dict[str, str]:
++def _prepare_build_environment() -> Dict[str, str]:
+     """Prepares environment variables to use when executing cargo build."""
+ 
+     # Make sure that if pythonXX-sys is used, it builds against the current
+@@ -665,9 +531,6 @@ def _prepare_build_environment(cross_lib: Optional[str]) -> Dict[str, str]:
+         }
+     )
+ 
+-    if cross_lib:
+-        env.setdefault("PYO3_CROSS_LIB_DIR", cross_lib)
+-
+     env.pop("CARGO", None)
+     return env
+ 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.3.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.4.1.bb
similarity index 84%
rename from poky/meta/recipes-devtools/python/python3-setuptools-rust_1.3.0.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools-rust_1.4.1.bb
index 51e27b8..c63a3f2 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.3.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-rust_1.4.1.bb
@@ -9,8 +9,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5"
 
-SRC_URI = "https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz"
-SRC_URI[sha256sum] = "958c5bf4ab6483d59dab888538121871cc5006354a42fb0fbd50acf03caad1de"
+SRC_URI = "https://files.pythonhosted.org/packages/67/08/e1aa2c582c62ac76e4d60f8e454bd3bba933781a06a88b4e38797445822a/setuptools-rust-${PV}.tar.gz \
+           file://8e9892f08b1248dc03862da86915c2745e0ff7ec.patch"
+SRC_URI[sha256sum] = "18ff850831f58ee21d5783825c99fad632da21e47645e9427fd7dec048029e76"
 
 inherit cargo pypi python_setuptools_build_meta
 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.0.3.bb b/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.0.5.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-setuptools-scm_7.0.3.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools-scm_7.0.5.bb
index 7252935..a1e719f 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-scm_7.0.5.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
 
-SRC_URI[sha256sum] = "cf8ab8e235bed840cd4559b658af0d8e8a70896a191bbc510ee914ec5325332d"
+SRC_URI[sha256sum] = "031e13af771d6f892b941adb6ea04545bbf91ebc5ce68c78aaf3fff6e1fb4844"
 
 PYPI_PACKAGE = "setuptools_scm"
 inherit pypi python_setuptools_build_meta
diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
similarity index 94%
rename from poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
rename to poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index b957407..9c5ff6a 100644
--- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From b64f3066ead6b317fb62c031c173ec6eadd44db9 Mon Sep 17 00:00:00 2001
+From 3a5ae454c0738510daf5df68b7968cab66cceb7f Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 17 Jul 2018 10:13:38 +0800
 Subject: [PATCH] conditionally do not fetch code by easy_install
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_62.6.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_63.3.0.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-setuptools_62.6.0.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_63.3.0.bb
index be6707c..da7e789 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_62.6.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_63.3.0.bb
@@ -11,7 +11,7 @@
 SRC_URI += "file://0001-change-shebang-to-python3.patch \
             file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
 
-SRC_URI[sha256sum] = "990a4f7861b31532871ab72331e755b5f14efbe52d336ea7f6118144dd478741"
+SRC_URI[sha256sum] = "273b6847ae61f7829c1affcdd9a32f67aa65233be508f4fbaab866c5faa4e408"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-zipp_3.8.0.bb b/poky/meta/recipes-devtools/python/python3-zipp_3.8.1.bb
similarity index 85%
rename from poky/meta/recipes-devtools/python/python3-zipp_3.8.0.bb
rename to poky/meta/recipes-devtools/python/python3-zipp_3.8.1.bb
index f1fd383..fa2f7bc 100644
--- a/poky/meta/recipes-devtools/python/python3-zipp_3.8.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-zipp_3.8.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
 
-SRC_URI[sha256sum] = "56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad"
+SRC_URI[sha256sum] = "05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2"
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index e5e6444..0db6701 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -27,6 +27,7 @@
            file://0008-tests-meson.build-use-relative-path-to-refer-to-file.patch \
            file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \
            file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \
+           file://CVE-2022-35414.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
@@ -141,6 +142,7 @@
 PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2"
 PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr,"
 PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio,"
+PACKAGECONFIG[uring] = "--enable-linux-io-uring,--disable-linux-io-uring,liburing"
 PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest"
 PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl,"
 PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpeg,"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch
new file mode 100644
index 0000000..fe79a74
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch
@@ -0,0 +1,53 @@
+From a10c33942dc8cb31b3762b9dd4adde4c490eed9c Mon Sep 17 00:00:00 2001
+From: Hitendra Prajapati <hprajapati@mvista.com>
+Date: Wed, 3 Aug 2022 10:11:11 +0530
+Subject: [PATCH] CVE-2022-35414
+
+Upstream-Status: Backport [https://github.com/qemu/qemu/commit/418ade7849ce7641c0f7333718caf5091a02fd4c]
+CVE: CVE-2022-35414
+Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
+---
+ softmmu/physmem.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/softmmu/physmem.c b/softmmu/physmem.c
+index 4e1b27a20..ad8a90dec 100644
+--- a/softmmu/physmem.c
++++ b/softmmu/physmem.c
+@@ -669,7 +669,7 @@ void tcg_iommu_init_notifier_list(CPUState *cpu)
+ 
+ /* Called from RCU critical section */
+ MemoryRegionSection *
+-address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr,
++address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr orig_addr,
+                                   hwaddr *xlat, hwaddr *plen,
+                                   MemTxAttrs attrs, int *prot)
+ {
+@@ -678,6 +678,7 @@ address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr,
+     IOMMUMemoryRegionClass *imrc;
+     IOMMUTLBEntry iotlb;
+     int iommu_idx;
++    hwaddr addr = orig_addr;
+     AddressSpaceDispatch *d =
+         qatomic_rcu_read(&cpu->cpu_ases[asidx].memory_dispatch);
+ 
+@@ -722,6 +723,16 @@ address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr,
+     return section;
+ 
+ translate_fail:
++    /*
++     * We should be given a page-aligned address -- certainly
++     * tlb_set_page_with_attrs() does so.  The page offset of xlat
++     * is used to index sections[], and PHYS_SECTION_UNASSIGNED = 0.
++     * The page portion of xlat will be logged by memory_region_access_valid()
++     * when this memory access is rejected, so use the original untranslated
++     * physical address.
++     */
++    assert((orig_addr & ~TARGET_PAGE_MASK) == 0);
++    *xlat = orig_addr;
+     return &d->map.sections[PHYS_SECTION_UNASSIGNED];
+ }
+ 
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/repo/repo_2.27.bb b/poky/meta/recipes-devtools/repo/repo_2.28.bb
similarity index 94%
rename from poky/meta/recipes-devtools/repo/repo_2.27.bb
rename to poky/meta/recipes-devtools/repo/repo_2.28.bb
index 3c1e3ac..052108e 100644
--- a/poky/meta/recipes-devtools/repo/repo_2.27.bb
+++ b/poky/meta/recipes-devtools/repo/repo_2.28.bb
@@ -12,7 +12,7 @@
 SRC_URI = "git://gerrit.googlesource.com/git-repo.git;protocol=https;branch=main \
            file://0001-python3-shebang.patch \
            "
-SRCREV = "68d69635c7bfef6ed8a5c7e29246265611471e0f"
+SRCREV = "a8cf575d68e7e211292d967f4a12cf609a028b20"
 
 MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git"
 
diff --git a/poky/meta/recipes-devtools/rust/rust-cross-canadian-common.inc b/poky/meta/recipes-devtools/rust/rust-cross-canadian-common.inc
index 1f21c8a..34020ff 100644
--- a/poky/meta/recipes-devtools/rust/rust-cross-canadian-common.inc
+++ b/poky/meta/recipes-devtools/rust/rust-cross-canadian-common.inc
@@ -25,12 +25,7 @@
                     -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
                     "
 
-python do_rust_gen_targets () {
-    wd = d.getVar('WORKDIR') + '/targets/'
-    rust_gen_target(d, 'TARGET', wd, d.getVar('TARGET_LLVM_FEATURES') or "", d.getVar('TARGET_LLVM_CPU'), d.getVar('TARGET_ARCH'))
-    rust_gen_target(d, 'HOST', wd, "", "generic", d.getVar('HOST_ARCH'))
-    rust_gen_target(d, 'BUILD', wd, "", "generic", d.getVar('BUILD_ARCH'))
-}
+RUST_TARGETGENS = "BUILD HOST TARGET"
 
 INHIBIT_DEFAULT_RUST_DEPS = "1"
 
diff --git a/poky/meta/recipes-devtools/rust/rust-cross.inc b/poky/meta/recipes-devtools/rust/rust-cross.inc
index f6babfe..ab538e6 100644
--- a/poky/meta/recipes-devtools/rust/rust-cross.inc
+++ b/poky/meta/recipes-devtools/rust/rust-cross.inc
@@ -1,23 +1,4 @@
-python do_rust_gen_targets () {
-    wd = d.getVar('WORKDIR') + '/targets/'
-    # It is important 'TARGET' is last here so that it overrides our less
-    # informed choices for BUILD & HOST if TARGET happens to be the same as
-    # either of them.
-    for thing in ['BUILD', 'HOST', 'TARGET']:
-        bb.debug(1, "rust_gen_target for " + thing)
-        features = ""
-        cpu = "generic"
-        arch = d.getVar('{}_ARCH'.format(thing))
-        abi = ""
-        if thing is "TARGET":
-            abi = d.getVar('ABIEXTENSION')
-            # arm and armv7 have different targets in llvm
-            if arch == "arm" and target_is_armv7(d):
-                arch = 'armv7'
-            features = d.getVar('TARGET_LLVM_FEATURES') or ""
-            cpu = d.getVar('TARGET_LLVM_CPU')
-        rust_gen_target(d, thing, wd, features, cpu, arch, abi)
-}
+RUST_TARGETGENS = "BUILD HOST TARGET"
 
 # Otherwise we'll depend on what we provide
 INHIBIT_DEFAULT_RUST_DEPS = "1"
diff --git a/poky/meta/recipes-devtools/rust/rust.inc b/poky/meta/recipes-devtools/rust/rust.inc
index ea716d3..ecb057a 100644
--- a/poky/meta/recipes-devtools/rust/rust.inc
+++ b/poky/meta/recipes-devtools/rust/rust.inc
@@ -39,7 +39,7 @@
     printf "linker = '%s'\n" "${RUST_BUILD_CCLD}" >> ${CARGO_HOME}/config
 }
 
-include rust-common.inc
+inherit rust-target-config
 
 do_rust_setup_snapshot () {
     for installer in "${WORKDIR}/rust-snapshot-components/"*"/install.sh"; do
diff --git a/poky/meta/recipes-devtools/strace/strace_5.18.bb b/poky/meta/recipes-devtools/strace/strace_5.18.bb
index 08f0f1d..75ff58b 100644
--- a/poky/meta/recipes-devtools/strace/strace_5.18.bb
+++ b/poky/meta/recipes-devtools/strace/strace_5.18.bb
@@ -18,6 +18,9 @@
 
 inherit autotools ptest
 
+# Not yet ported to rv32
+COMPATIBLE_HOST:riscv32 = "null"
+
 PACKAGECONFIG:class-target ??= "\
     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
 "
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.1.bb b/poky/meta/recipes-devtools/vala/vala_0.56.1.bb
deleted file mode 100644
index 48d2168..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.56.1.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI[sha256sum] = "c518b81dfdda82d1cdf586b3f9b2323162cb96bd3cb5a2c03650cea025d91fb9"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.2.bb b/poky/meta/recipes-devtools/vala/vala_0.56.2.bb
new file mode 100644
index 0000000..08c8ccc
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.56.2.bb
@@ -0,0 +1,3 @@
+require ${BPN}.inc
+
+SRC_URI[sha256sum] = "66c9619bb17859fd1ac3aba0a57970613e38fd2a1ee30541174260c9fb90124c"
diff --git a/poky/meta/recipes-extended/hdparm/hdparm/0001-hdparm-Remove-unused-linux-fs.h-header.patch b/poky/meta/recipes-extended/hdparm/hdparm/0001-hdparm-Remove-unused-linux-fs.h-header.patch
new file mode 100644
index 0000000..dd88743
--- /dev/null
+++ b/poky/meta/recipes-extended/hdparm/hdparm/0001-hdparm-Remove-unused-linux-fs.h-header.patch
@@ -0,0 +1,32 @@
+From c8fc52968f9e97d29ccf6deb348ec02627d74235 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Jul 2022 13:00:40 -0700
+Subject: [PATCH] hdparm: Remove unused linux/fs.h header
+
+this helps fixing builds with glibc 2.36 where mount.h conflits now with
+kernel mount.h which is included indirectly by linux/fs.h see [1] for
+details
+
+[1] https://sourceware.org/glibc/wiki/Release/2.36
+
+Upstream-Status: Submitted [https://sourceforge.net/p/hdparm/patches/52/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ hdparm.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/hdparm.c b/hdparm.c
+index fa21e2f..901bdd8 100644
+--- a/hdparm.c
++++ b/hdparm.c
+@@ -25,7 +25,6 @@
+ #include <sys/mman.h>
+ #include <sys/user.h>
+ #include <linux/types.h>
+-#include <linux/fs.h>
+ #include <linux/major.h>
+ #include <endian.h>
+ #include <asm/byteorder.h>
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/hdparm/hdparm_9.63.bb b/poky/meta/recipes-extended/hdparm/hdparm_9.64.bb
similarity index 89%
rename from poky/meta/recipes-extended/hdparm/hdparm_9.63.bb
rename to poky/meta/recipes-extended/hdparm/hdparm_9.64.bb
index 7900a31..eeb63a2 100644
--- a/poky/meta/recipes-extended/hdparm/hdparm_9.63.bb
+++ b/poky/meta/recipes-extended/hdparm/hdparm_9.64.bb
@@ -24,9 +24,10 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/hdparm/${BP}.tar.gz \
            file://wiper.sh-fix-stat-path.patch \
+           file://0001-hdparm-Remove-unused-linux-fs.h-header.patch \
           "
 
-SRC_URI[sha256sum] = "70785deaebba5877a89c123568b41dee990da55fc51420f13f609a1072899691"
+SRC_URI[sha256sum] = "315b956951c3fea027287de204381534217c0bd0f37b4935877fe2db0cab859a"
 
 EXTRA_OEMAKE = 'STRIP="echo" LDFLAGS="${LDFLAGS}"'
 
diff --git a/poky/meta/recipes-extended/libarchive/libarchive/0001-libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch b/poky/meta/recipes-extended/libarchive/libarchive/0001-libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch
new file mode 100644
index 0000000..0d21799
--- /dev/null
+++ b/poky/meta/recipes-extended/libarchive/libarchive/0001-libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch
@@ -0,0 +1,47 @@
+From a2f68263a1da5ad227bcb9cd8fa91b93c8b6c99f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Jul 2022 10:56:53 -0700
+Subject: [PATCH] libarchive: Do not include sys/mount.h when linux/fs.h is
+ present
+
+These headers are in conflict and only one is needed by
+archive_read_disk_posix.c therefore include linux/fs.h if it exists
+otherwise include sys/mount.h
+
+It also helps compiling with glibc 2.36
+where sys/mount.h conflicts with linux/mount.h see [1]
+
+[1] https://sourceware.org/glibc/wiki/Release/2.36
+
+Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/1761]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libarchive/archive_read_disk_posix.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
+index 2b39e672..a96008db 100644
+--- a/libarchive/archive_read_disk_posix.c
++++ b/libarchive/archive_read_disk_posix.c
+@@ -34,9 +34,6 @@ __FBSDID("$FreeBSD$");
+ #ifdef HAVE_SYS_PARAM_H
+ #include <sys/param.h>
+ #endif
+-#ifdef HAVE_SYS_MOUNT_H
+-#include <sys/mount.h>
+-#endif
+ #ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+@@ -54,6 +51,8 @@ __FBSDID("$FreeBSD$");
+ #endif
+ #ifdef HAVE_LINUX_FS_H
+ #include <linux/fs.h>
++#elif HAVE_SYS_MOUNT_H
++#include <sys/mount.h>
+ #endif
+ /*
+  * Some Linux distributions have both linux/ext2_fs.h and ext2fs/ext2_fs.h.
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.6.1.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.6.1.bb
index 761cfca..24d7918 100644
--- a/poky/meta/recipes-extended/libarchive/libarchive_3.6.1.bb
+++ b/poky/meta/recipes-extended/libarchive/libarchive_3.6.1.bb
@@ -32,7 +32,9 @@
 
 EXTRA_OECONF += "--enable-largefile"
 
-SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz"
+SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \
+           file://0001-libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch \
+           "
 UPSTREAM_CHECK_URI = "http://libarchive.org/"
 
 SRC_URI[sha256sum] = "c676146577d989189940f1959d9e3980d28513d74eedfbc6b7f15ea45fe54ee2"
diff --git a/poky/meta/recipes-extended/libidn/libidn2_2.3.2.bb b/poky/meta/recipes-extended/libidn/libidn2_2.3.3.bb
similarity index 81%
rename from poky/meta/recipes-extended/libidn/libidn2_2.3.2.bb
rename to poky/meta/recipes-extended/libidn/libidn2_2.3.3.bb
index e1b25b4..a86b2b5 100644
--- a/poky/meta/recipes-extended/libidn/libidn2_2.3.2.bb
+++ b/poky/meta/recipes-extended/libidn/libidn2_2.3.3.bb
@@ -7,11 +7,12 @@
                     file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
                     file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://COPYING.unicode;md5=684cf5f7e3fded3546679424528261a9 \
-                    file://src/idn2.c;endline=16;md5=e4b6d628a84a55f1fd8ae4c76c5f6509 \
-                    file://lib/idn2.h.in;endline=27;md5=d0fc8ec628be130a1d5b889107e92477"
+                    file://src/idn2.c;endline=16;md5=0f347a5b17acf44440bf53e406f1df70 \
+                    file://lib/idn2.h.in;endline=27;md5=4d7b3771faa9c60067ed1da914508bc5 \
+                    "
 
 SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz"
-SRC_URI[sha256sum] = "76940cd4e778e8093579a9d195b25fff5e936e9dc6242068528b437a76764f91"
+SRC_URI[sha256sum] = "f3ac987522c00d33d44b323cae424e2cffcb4c63c6aa6cd1376edacbf1c36eb0"
 
 DEPENDS = "virtual/libiconv libunistring"
 
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-kvm-Fix-stack-access-mode-in-KVM-test-ELF-headers.patch b/poky/meta/recipes-extended/ltp/ltp/0001-kvm-Fix-stack-access-mode-in-KVM-test-ELF-headers.patch
new file mode 100644
index 0000000..764e9c0
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-kvm-Fix-stack-access-mode-in-KVM-test-ELF-headers.patch
@@ -0,0 +1,40 @@
+From 608fc7bcda43e60536ae1f19842f7affba8f0aea Mon Sep 17 00:00:00 2001
+From: Martin Doucha <mdoucha@suse.cz>
+Date: Wed, 1 Jun 2022 16:16:34 +0200
+Subject: [PATCH] kvm: Fix stack access mode in KVM test ELF headers
+
+When the linker converts guest payload binary into a linkable resource
+object file, it somehow defaults to requesting executable stack section
+for the final test binary. This trips some build-time security checks
+on newer systems. Add explicit linker option to make the stack
+non-executable.
+
+Suggested-by: Fabian Vogt <fvogt@suse.com>
+Signed-off-by: Martin Doucha <mdoucha@suse.cz>
+Reviewed-by: Petr Vorel <pvorel@suse.cz>
+Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/f9715d7c2e78713e26533c6e0846aaabf5c4095b]
+---
+ testcases/kernel/kvm/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/testcases/kernel/kvm/Makefile b/testcases/kernel/kvm/Makefile
+index 69a9946fe..adab56952 100644
+--- a/testcases/kernel/kvm/Makefile
++++ b/testcases/kernel/kvm/Makefile
+@@ -50,11 +50,11 @@ include $(top_srcdir)/include/mk/generic_leaf_target.mk
+ ifdef VERBOSE
+ 	$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS)
+ 	objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin
+-	ld -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
++	ld -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
+ else
+ 	@$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS)
+ 	@objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin
+-	@ld -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
++	@ld -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
+ 	@echo KVM_CC $(target_rel_dir)$@
+ endif
+ 	@rm $*-payload.elf $*-payload.bin
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-memcg-functional-Fix-usage-of-PAGESIZE-from-memcg_li.patch b/poky/meta/recipes-extended/ltp/ltp/0001-memcg-functional-Fix-usage-of-PAGESIZE-from-memcg_li.patch
new file mode 100644
index 0000000..726f621
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-memcg-functional-Fix-usage-of-PAGESIZE-from-memcg_li.patch
@@ -0,0 +1,121 @@
+From bda92ad659a52d38ac810099f69adff626b064c6 Mon Sep 17 00:00:00 2001
+From: Joerg Vehlow <joerg.vehlow@aox.de>
+Date: Mon, 27 Jun 2022 10:44:49 +0200
+Subject: [PATCH] memcg/functional: Fix usage of PAGESIZE from memcg_lib.sh
+
+$PAGESIZES is set in memcg_lib.sh, which was moved to the bottom of the file.
+
+Fixes: 04021637f ("tst_test.sh: Cleanup getopts usage")
+
+Reviewed-by: Petr Vorel <pvorel@suse.cz>
+Signed-off-by: Joerg Vehlow <joerg.vehlow@aox.de>
+Upstream-Status: Backport [bda92ad659a52d38ac810099f69adff626b064c6]
+---
+ .../controllers/memcg/functional/memcg_failcnt.sh      |  7 ++++---
+ .../memcg/functional/memcg_max_usage_in_bytes_test.sh  | 10 +++++-----
+ .../memcg/functional/memcg_subgroup_charge.sh          |  8 ++++----
+ .../memcg/functional/memcg_usage_in_bytes_test.sh      | 10 +++++-----
+ 4 files changed, 18 insertions(+), 17 deletions(-)
+
+diff --git a/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh b/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh
+index 1fed01569..1be98a056 100755
+--- a/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh
++++ b/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh
+@@ -12,9 +12,6 @@ MEMCG_TESTFUNC=test
+ MEMCG_SHMMAX=1
+ TST_TEST_DATA="--mmap-anon --mmap-file --shm"
+ 
+-MEMORY_LIMIT=$PAGESIZE
+-MEMORY_TO_ALLOCATE=$((MEMORY_LIMIT * 2))
+-
+ test()
+ {
+ 	ROD echo $MEMORY_LIMIT \> memory.limit_in_bytes
+@@ -36,4 +33,8 @@ test()
+ }
+ 
+ . memcg_lib.sh
++
++MEMORY_LIMIT=$PAGESIZE
++MEMORY_TO_ALLOCATE=$((MEMORY_LIMIT * 2))
++
+ tst_run
+diff --git a/testcases/kernel/controllers/memcg/functional/memcg_max_usage_in_bytes_test.sh b/testcases/kernel/controllers/memcg/functional/memcg_max_usage_in_bytes_test.sh
+index d1ffbe053..302810513 100755
+--- a/testcases/kernel/controllers/memcg/functional/memcg_max_usage_in_bytes_test.sh
++++ b/testcases/kernel/controllers/memcg/functional/memcg_max_usage_in_bytes_test.sh
+@@ -9,11 +9,6 @@
+ MEMCG_TESTFUNC=test
+ TST_CNT=4
+ 
+-
+-MEM_TO_ALLOC=$((PAGESIZE * 1024))
+-MEM_EXPECTED_UPPER=$((MEM_TO_ALLOC + MEM_USAGE_RANGE))
+-MEM_LIMIT=$((MEM_TO_ALLOC * 2))
+-
+ # Run test cases which checks memory.[memsw.]max_usage_in_bytes after make
+ # some memory allocation
+ test_max_usage_in_bytes()
+@@ -88,4 +83,9 @@ test4()
+ }
+ 
+ . memcg_lib.sh
++
++MEM_TO_ALLOC=$((PAGESIZE * 1024))
++MEM_EXPECTED_UPPER=$((MEM_TO_ALLOC + MEM_USAGE_RANGE))
++MEM_LIMIT=$((MEM_TO_ALLOC * 2))
++
+ tst_run
+diff --git a/testcases/kernel/controllers/memcg/functional/memcg_subgroup_charge.sh b/testcases/kernel/controllers/memcg/functional/memcg_subgroup_charge.sh
+index 08b6697d4..9bcc01258 100755
+--- a/testcases/kernel/controllers/memcg/functional/memcg_subgroup_charge.sh
++++ b/testcases/kernel/controllers/memcg/functional/memcg_subgroup_charge.sh
+@@ -12,10 +12,6 @@
+ MEMCG_TESTFUNC=test
+ TST_CNT=3
+ 
+-
+-# Allocate memory bigger than per-cpu kernel memory
+-MEM_TO_ALLOC=$((PAGESIZES * 2))
+-
+ # Test the memory charge won't move to subgroup
+ # $1 - memory.limit_in_bytes in sub group
+ test_subgroup()
+@@ -67,4 +63,8 @@ test3()
+ }
+ 
+ . memcg_lib.sh
++
++# Allocate memory bigger than per-cpu kernel memory
++MEM_TO_ALLOC=$((PAGESIZES * 2))
++
+ tst_run
+diff --git a/testcases/kernel/controllers/memcg/functional/memcg_usage_in_bytes_test.sh b/testcases/kernel/controllers/memcg/functional/memcg_usage_in_bytes_test.sh
+index 6f932124e..125d88e55 100755
+--- a/testcases/kernel/controllers/memcg/functional/memcg_usage_in_bytes_test.sh
++++ b/testcases/kernel/controllers/memcg/functional/memcg_usage_in_bytes_test.sh
+@@ -9,11 +9,6 @@
+ MEMCG_TESTFUNC=test
+ TST_CNT=2
+ 
+-
+-MEM_TO_ALLOC=$((PAGESIZE * 1024))
+-MEM_EXPECTED_UPPER=$((MEM_TO_ALLOC + MEM_USAGE_RANGE))
+-MEM_LIMIT=$((MEM_TO_ALLOC * 2))
+-
+ test1()
+ {
+ 	tst_res TINFO "Test memory.usage_in_bytes"
+@@ -35,4 +30,9 @@ test2()
+ }
+ 
+ . memcg_lib.sh
++
++MEM_TO_ALLOC=$((PAGESIZE * 1024))
++MEM_EXPECTED_UPPER=$((MEM_TO_ALLOC + MEM_USAGE_RANGE))
++MEM_LIMIT=$((MEM_TO_ALLOC * 2))
++
+ tst_run
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-mountns0-1-3-wait-for-umount-completed-in-thread_b.patch b/poky/meta/recipes-extended/ltp/ltp/0001-mountns0-1-3-wait-for-umount-completed-in-thread_b.patch
new file mode 100644
index 0000000..1339c60
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-mountns0-1-3-wait-for-umount-completed-in-thread_b.patch
@@ -0,0 +1,63 @@
+From 6d4c8343d33e7d8fa059246310413f029a9e8573 Mon Sep 17 00:00:00 2001
+From: Li Wang <liwang@redhat.com>
+Date: Thu, 7 Jul 2022 17:38:45 +0800
+Subject: [PATCH] mountns0[1-3]: wait for umount completed in thread_b
+
+To get rid of race condition (occurs with umount_folders):
+
+    mountns01.c:42: TPASS: shared mount in parent passed
+    mountns01.c:83: TPASS: shared mount in child passed
+    tst_device.c:394: TWARN: umount('B') failed with EINVAL
+    mountns.h:39: TWARN: umount(B) failed: EINVAL (22)
+
+Signed-off-by: Li Wang <liwang@redhat.com>
+Reviewed-by: Yang Xu <xuyang2018.jy@fujitsu.com>
+Upstream-Status: Backport [6d4c8343d33e7d8fa059246310413f029a9e8573]
+---
+ testcases/kernel/containers/mountns/mountns01.c | 2 ++
+ testcases/kernel/containers/mountns/mountns02.c | 2 ++
+ testcases/kernel/containers/mountns/mountns03.c | 2 ++
+ 3 files changed, 6 insertions(+)
+
+diff --git a/testcases/kernel/containers/mountns/mountns01.c b/testcases/kernel/containers/mountns/mountns01.c
+index e99134aba..e8f176920 100644
+--- a/testcases/kernel/containers/mountns/mountns01.c
++++ b/testcases/kernel/containers/mountns/mountns01.c
+@@ -86,6 +86,8 @@ static void run(void)
+ 
+ 	TST_CHECKPOINT_WAKE(0);
+ 
++	SAFE_WAIT(NULL);
++
+ 	SAFE_UMOUNT(DIRA);
+ }
+ 
+diff --git a/testcases/kernel/containers/mountns/mountns02.c b/testcases/kernel/containers/mountns/mountns02.c
+index 258b61217..4b85fa79b 100644
+--- a/testcases/kernel/containers/mountns/mountns02.c
++++ b/testcases/kernel/containers/mountns/mountns02.c
+@@ -87,6 +87,8 @@ static void run(void)
+ 
+ 	TST_CHECKPOINT_WAKE(0);
+ 
++	SAFE_WAIT(NULL);
++
+ 	SAFE_UMOUNT(DIRA);
+ }
+ 
+diff --git a/testcases/kernel/containers/mountns/mountns03.c b/testcases/kernel/containers/mountns/mountns03.c
+index f37ae7902..1d26a25d8 100644
+--- a/testcases/kernel/containers/mountns/mountns03.c
++++ b/testcases/kernel/containers/mountns/mountns03.c
+@@ -97,6 +97,8 @@ static void run(void)
+ 
+ 	TST_CHECKPOINT_WAKE(0);
+ 
++	SAFE_WAIT(NULL);
++
+ 	SAFE_UMOUNT(DIRA);
+ }
+ 
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-net_stress-Fix-usage-of-variables-from-tst_net.sh.patch b/poky/meta/recipes-extended/ltp/ltp/0001-net_stress-Fix-usage-of-variables-from-tst_net.sh.patch
new file mode 100644
index 0000000..f747a1f
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-net_stress-Fix-usage-of-variables-from-tst_net.sh.patch
@@ -0,0 +1,154 @@
+From 33c156e295e35d4839a135d8ba5db485b7712ced Mon Sep 17 00:00:00 2001
+From: Joerg Vehlow <joerg.vehlow@aox.de>
+Date: Mon, 27 Jun 2022 09:27:09 +0200
+Subject: [PATCH] net_stress: Fix usage of variables from tst_net.sh
+
+These tests use variables (NS_TIMES, IP_TOTAL, ROUTE_TOTAL
+and IF_UPDOWN_TIMES) from tst_net.sh, before sourcing it.
+
+Fixes: 04021637f ("tst_test.sh: Cleanup getopts usage")
+
+Reviewed-by: Petr Vorel <pvorel@suse.cz>
+Signed-off-by: Joerg Vehlow <joerg.vehlow@aox.de>
+Upstream-Status: Backport [33c156e295e35d4839a135d8ba5db485b7712ced]
+---
+ testcases/network/stress/interface/if-addr-adddel.sh    | 7 ++++---
+ testcases/network/stress/interface/if-addr-addlarge.sh  | 7 ++++---
+ testcases/network/stress/interface/if-route-adddel.sh   | 5 +++--
+ testcases/network/stress/interface/if-route-addlarge.sh | 5 +++--
+ testcases/network/stress/interface/if-updown.sh         | 5 +++--
+ testcases/network/stress/interface/if4-addr-change.sh   | 4 +++-
+ 6 files changed, 20 insertions(+), 13 deletions(-)
+
+diff --git a/testcases/network/stress/interface/if-addr-adddel.sh b/testcases/network/stress/interface/if-addr-adddel.sh
+index cb453e612..0750501f0 100755
+--- a/testcases/network/stress/interface/if-addr-adddel.sh
++++ b/testcases/network/stress/interface/if-addr-adddel.sh
+@@ -7,9 +7,6 @@
+ 
+ IF_CMD='ifconfig'
+ 
+-# The interval of the check interface activity
+-CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
+-
+ test_body()
+ {
+ 	local cmd="$CMD"
+@@ -89,4 +86,8 @@ test_body()
+ }
+ 
+ . if-lib.sh
++
++# The interval of the check interface activity
++CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
++
+ tst_run
+diff --git a/testcases/network/stress/interface/if-addr-addlarge.sh b/testcases/network/stress/interface/if-addr-addlarge.sh
+index 3c876c17d..d0759c86b 100755
+--- a/testcases/network/stress/interface/if-addr-addlarge.sh
++++ b/testcases/network/stress/interface/if-addr-addlarge.sh
+@@ -7,9 +7,6 @@
+ 
+ IF_CMD='ifconfig'
+ 
+-# The interval of the check interface activity
+-CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IP_TOTAL / 20))}
+-
+ test_body()
+ {
+ 	local cmd="$CMD"
+@@ -110,4 +107,8 @@ test_body()
+ }
+ 
+ . if-lib.sh
++
++# The interval of the check interface activity
++CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IP_TOTAL / 20))}
++
+ tst_run
+diff --git a/testcases/network/stress/interface/if-route-adddel.sh b/testcases/network/stress/interface/if-route-adddel.sh
+index b50da268a..51445e4f7 100755
+--- a/testcases/network/stress/interface/if-route-adddel.sh
++++ b/testcases/network/stress/interface/if-route-adddel.sh
+@@ -7,8 +7,6 @@
+ 
+ IF_CMD='route'
+ 
+-CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
+-
+ test_body()
+ {
+ 	local cmd="$CMD"
+@@ -64,4 +62,7 @@ test_body()
+ }
+ 
+ . if-lib.sh
++
++CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
++
+ tst_run
+diff --git a/testcases/network/stress/interface/if-route-addlarge.sh b/testcases/network/stress/interface/if-route-addlarge.sh
+index 7d09d1216..355b6b4ab 100755
+--- a/testcases/network/stress/interface/if-route-addlarge.sh
++++ b/testcases/network/stress/interface/if-route-addlarge.sh
+@@ -7,8 +7,6 @@
+ 
+ IF_CMD='route'
+ 
+-CHECK_INTERVAL=${CHECK_INTERVAL:-$(($ROUTE_TOTAL / 20))}
+-
+ test_body()
+ {
+ 	local cmd="$CMD"
+@@ -76,4 +74,7 @@ test_body()
+ }
+ 
+ . if-lib.sh
++
++CHECK_INTERVAL=${CHECK_INTERVAL:-$(($ROUTE_TOTAL / 20))}
++
+ tst_run
+diff --git a/testcases/network/stress/interface/if-updown.sh b/testcases/network/stress/interface/if-updown.sh
+index 9a5709c85..71c78d785 100755
+--- a/testcases/network/stress/interface/if-updown.sh
++++ b/testcases/network/stress/interface/if-updown.sh
+@@ -8,8 +8,6 @@
+ IF_CMD='ifconfig'
+ TST_CLEANUP="if_cleanup_restore"
+ 
+-CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IF_UPDOWN_TIMES / 20))}
+-
+ test_body()
+ {
+ 	local cmd="$CMD"
+@@ -47,4 +45,7 @@ test_body()
+ }
+ 
+ . if-lib.sh
++
++CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IF_UPDOWN_TIMES / 20))}
++
+ tst_run
+diff --git a/testcases/network/stress/interface/if4-addr-change.sh b/testcases/network/stress/interface/if4-addr-change.sh
+index b9ece2af9..f162e6a51 100755
+--- a/testcases/network/stress/interface/if4-addr-change.sh
++++ b/testcases/network/stress/interface/if4-addr-change.sh
+@@ -9,7 +9,6 @@ TST_CLEANUP="do_cleanup"
+ TST_TESTFUNC="test_body"
+ TST_NEEDS_CMDS="ifconfig"
+ 
+-CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
+ # Maximum host portion of the IPv4 address on the local host
+ LHOST_IPV4_HOST_MAX="254"
+ 
+@@ -61,4 +60,7 @@ test_body()
+ }
+ 
+ . tst_net.sh
++
++CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
++
+ tst_run
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-netstress-Restore-runtime-to-5m.patch b/poky/meta/recipes-extended/ltp/ltp/0001-netstress-Restore-runtime-to-5m.patch
new file mode 100644
index 0000000..8acfaf7
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-netstress-Restore-runtime-to-5m.patch
@@ -0,0 +1,53 @@
+From cc4a27c235d0cf69a55cd8829b232566b0223333 Mon Sep 17 00:00:00 2001
+From: Petr Vorel <pvorel@suse.cz>
+Date: Wed, 13 Jul 2022 09:46:14 +0200
+Subject: [PATCH] netstress: Restore runtime to 5m
+
+netstress requires the previous default timeout 5m due longer timeout
+for higher message sizes (e.g. 65535):
+
+./sctp_ipsec.sh -6 -p comp -m transport -s 100:1000:65535:R65535
+sctp_ipsec 1 TPASS: netstress passed, median time 5 ms, data: 5 9 6 5 5
+sctp_ipsec 2 TINFO: run server 'netstress -T sctp -S fd00:1:1:1::1 -D ltp_ns_veth1 -R 500000 -B /tmp/LTP_sctp_ipsec.ARZbGkvjPa'
+sctp_ipsec 2 TINFO: run client 'netstress -l -T sctp -H fd00:1:1:1::1 -n 1000 -N 1000 -S fd00:1:1:1::2 -D ltp_ns_veth2 -a 2 -r 100 -d /tmp/LTP_sctp_ipsec.ARZbGkvjPa/tst_netload.res' 5 times
+sctp_ipsec 2 TPASS: netstress passed, median time 6 ms, data: 8 6 6 5 6
+sctp_ipsec 3 TINFO: run server 'netstress -T sctp -S fd00:1:1:1::1 -D ltp_ns_veth1 -R 500000 -B /tmp/LTP_sctp_ipsec.ARZbGkvjPa'
+sctp_ipsec 3 TINFO: run client 'netstress -l -T sctp -H fd00:1:1:1::1 -n 65535 -N 65535 -S fd00:1:1:1::2 -D ltp_ns_veth2 -a 2 -r 100 -d /tmp/LTP_sctp_ipsec.ARZbGkvjPa/tst_netload.res' 5 times
+sctp_ipsec 3 TWARN: netstress failed, ret: 2
+tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s
+netstress.c:896: TINFO: IP_BIND_ADDRESS_NO_PORT is used
+netstress.c:898: TINFO: connection: addr 'fd00:1:1:1::1', port '55097'
+netstress.c:900: TINFO: client max req: 100
+netstress.c:901: TINFO: clients num: 2
+netstress.c:906: TINFO: client msg size: 65535
+netstress.c:907: TINFO: server msg size: 65535
+netstress.c:979: TINFO: SCTP client
+netstress.c:475: TINFO: Running the test over IPv6
+Test timeouted, sending SIGKILL!
+tst_test.c:1577: TINFO: If you are running on slow machine, try exporting LTP_TIMEOUT_MUL > 1
+tst_test.c:1579: TBROK: Test killed! (timeout?)
+
+Converting netstress.c to use TST_NO_DEFAULT_MAIN (i.e. implementing main)
+would require more changes, because it uses .forks_child, .needs_checkpoints,
+cleanup function.
+
+Signed-off-by: Petr Vorel <pvorel@suse.cz>
+Upstream-Status: Backport [cc4a27c235d0cf69a55cd8829b232566b0223333]
+---
+ testcases/network/netstress/netstress.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/testcases/network/netstress/netstress.c b/testcases/network/netstress/netstress.c
+index 6c9e83112..7c222531d 100644
+--- a/testcases/network/netstress/netstress.c
++++ b/testcases/network/netstress/netstress.c
+@@ -1028,5 +1028,6 @@ static struct tst_test test = {
+ 		{"B:", &server_bg, "Run in background, arg is the process directory"},
+ 		{}
+ 	},
++	.max_runtime = 300,
+ 	.needs_checkpoints = 1,
+ };
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-nfs05_make_tree-Restore-5-min-timeout.patch b/poky/meta/recipes-extended/ltp/ltp/0001-nfs05_make_tree-Restore-5-min-timeout.patch
new file mode 100644
index 0000000..2b9557a
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-nfs05_make_tree-Restore-5-min-timeout.patch
@@ -0,0 +1,31 @@
+From 463da729537faa6d5ef206912fdec871c1059dac Mon Sep 17 00:00:00 2001
+From: Petr Vorel <pvorel@suse.cz>
+Date: Thu, 16 Jun 2022 16:33:31 +0200
+Subject: [PATCH] nfs05_make_tree: Restore 5 min timeout
+
+nfs05_make_tree is a long running test. The previous default timeout 5
+min was enough after reducing runtime in 05be61cf6.
+
+But the new default 30 sec introduced in the concept of max runtime is
+definitely not enough. Restore the previous timeout 5 min.
+
+Signed-off-by: Petr Vorel <pvorel@suse.cz>
+
+Upstream-Status: Backport [463da729537faa6d5ef206912fdec871c1059dac]
+---
+ testcases/network/nfs/nfs_stress/nfs05_make_tree.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/testcases/network/nfs/nfs_stress/nfs05_make_tree.c b/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
+index fdc13bd5d..5456c1bf0 100644
+--- a/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
++++ b/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
+@@ -215,4 +215,5 @@ static struct tst_test test = {
+ 	.options = opts,
+ 	.test_all = do_test,
+ 	.setup = setup,
++	.max_runtime = 300,
+ };
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-migrate_pages03-restore-runtime-to-5m.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-migrate_pages03-restore-runtime-to-5m.patch
new file mode 100644
index 0000000..1652f8c
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-migrate_pages03-restore-runtime-to-5m.patch
@@ -0,0 +1,44 @@
+From 9fb28002bb2ce988b99d1756ff7b902f76e3472a Mon Sep 17 00:00:00 2001
+From: Jan Stancek <jstancek@redhat.com>
+Date: Tue, 21 Jun 2022 10:37:17 +0200
+Subject: [PATCH] syscalls/migrate_pages03: restore runtime to 5m
+
+Arches with large pages have trouble completing all loops in 30s,
+restore runtime to 5m. Also check for remaining runtime and
+exit if we run out.
+
+Signed-off-by: Jan Stancek <jstancek@redhat.com>
+Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
+Signed-off-by: Li Wang <liwang@redhat.com>
+Upstream-Status: Backport [9fb28002bb2ce988b99d1756ff7b902f76e3472a]
+---
+ testcases/kernel/syscalls/migrate_pages/migrate_pages03.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/testcases/kernel/syscalls/migrate_pages/migrate_pages03.c b/testcases/kernel/syscalls/migrate_pages/migrate_pages03.c
+index c6afb4cce..2866c96e6 100644
+--- a/testcases/kernel/syscalls/migrate_pages/migrate_pages03.c
++++ b/testcases/kernel/syscalls/migrate_pages/migrate_pages03.c
+@@ -127,6 +127,11 @@ static void migrate_test(void)
+ 			tst_res(TFAIL | TERRNO, "migrate_pages() failed");
+ 			return;
+ 		}
++
++		if (!tst_remaining_runtime()) {
++			tst_res(TINFO, "Out of runtime, exitting...");
++			break;
++		}
+ 	}
+ 	SAFE_SETEUID(0);
+ 
+@@ -134,6 +139,7 @@ static void migrate_test(void)
+ }
+ 
+ static struct tst_test test = {
++	.max_runtime = 300,
+ 	.min_kver = "2.6.32",
+ 	.needs_root = 1,
+ 	.setup = setup,
+-- 
+2.37.1
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-kvm-use-LD-instead-of-hardcoding-ld.patch b/poky/meta/recipes-extended/ltp/ltp/0002-kvm-use-LD-instead-of-hardcoding-ld.patch
similarity index 60%
rename from poky/meta/recipes-extended/ltp/ltp/0001-kvm-use-LD-instead-of-hardcoding-ld.patch
rename to poky/meta/recipes-extended/ltp/ltp/0002-kvm-use-LD-instead-of-hardcoding-ld.patch
index 23634d0..060ba05 100644
--- a/poky/meta/recipes-extended/ltp/ltp/0001-kvm-use-LD-instead-of-hardcoding-ld.patch
+++ b/poky/meta/recipes-extended/ltp/ltp/0002-kvm-use-LD-instead-of-hardcoding-ld.patch
@@ -1,7 +1,4 @@
-Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/948]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 7670233e43df2aed6d44b96c51b034f8e2d28a19 Mon Sep 17 00:00:00 2001
+From 1cea308a647c2a2f9790b0bac7c523de7aa83270 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@arm.com>
 Date: Tue, 12 Jul 2022 15:03:54 +0100
 Subject: [PATCH] kvm: use $(LD) instead of hardcoding ld
@@ -9,29 +6,34 @@
 In cross-compiled builds the host ld may not know the required ELF format,
 so ensure we use $(LD) which will be the cross-capable ld binary.
 
+Closes: https://github.com/linux-test-project/ltp/pull/948
+
+Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb]
 Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+Reviewed-by: Petr Vorel <pvorel@suse.cz>
+Reviewed-by: Martin Doucha <mdoucha@suse.cz>
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 ---
  testcases/kernel/kvm/Makefile | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/testcases/kernel/kvm/Makefile b/testcases/kernel/kvm/Makefile
-index 69a9946fe..4ddef9f95 100644
+index adab56952..d67230735 100644
 --- a/testcases/kernel/kvm/Makefile
 +++ b/testcases/kernel/kvm/Makefile
 @@ -50,11 +50,11 @@ include $(top_srcdir)/include/mk/generic_leaf_target.mk
  ifdef VERBOSE
  	$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS)
  	objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin
--	ld -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
-+	$(LD) -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
+-	ld -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
++	$(LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
  else
  	@$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS)
  	@objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin
--	@ld -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
-+	@$(LD) -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
+-	@ld -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
++	@$(LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
  	@echo KVM_CC $(target_rel_dir)$@
  endif
  	@rm $*-payload.elf $*-payload.bin
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/0003-Add-KVM_LD-Makefile-variable-for-building-KVM-payloa.patch b/poky/meta/recipes-extended/ltp/ltp/0003-Add-KVM_LD-Makefile-variable-for-building-KVM-payloa.patch
new file mode 100644
index 0000000..974ca5e
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0003-Add-KVM_LD-Makefile-variable-for-building-KVM-payloa.patch
@@ -0,0 +1,63 @@
+From a8d41b7937a34904611011ca357f8db880d42270 Mon Sep 17 00:00:00 2001
+From: Martin Doucha <mdoucha@suse.cz>
+Date: Mon, 25 Jul 2022 17:37:27 +0200
+Subject: [PATCH] Add KVM_LD Makefile variable for building KVM payload
+ binaries
+
+KVM linker needs to be configurable for cross-compiling but some
+linkers don't support the linker script for wrapping arbitrary files
+into linkable resource files. Allow KVM linker to be changed
+independently of $LD via $KVM_LD.
+
+Signed-off-by: Martin Doucha <mdoucha@suse.cz>
+Acked-by: Richard Palethorpe <rpalethorpe@suse.com>
+
+Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/5ef0b7892a17b64040e55e9ad62d36ebb75d33fd]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ doc/build-system-guide.txt    | 5 +++++
+ testcases/kernel/kvm/Makefile | 5 +++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/doc/build-system-guide.txt b/doc/build-system-guide.txt
+index 166f7fb92..b8d267b4b 100644
+--- a/doc/build-system-guide.txt
++++ b/doc/build-system-guide.txt
+@@ -145,6 +145,11 @@ $(CPPFLAGS)		: Preprocessor flags, e.g. -I arguments.
+ 
+ $(DEBUG_CFLAGS)		: Debug flags to pass to $(CC), -g, etc.
+ 
++$(KVM_LD)		: Special linker for wrapping KVM payload binaries
++			  into linkable object files. Defaults to $(LD).
++			  Change this variable if the KVM Makefile fails
++			  to build files named *-payload.o.
++
+ $(LD)			: The system linker (typically $(CC), but not
+ 			  necessarily).
+ 
+diff --git a/testcases/kernel/kvm/Makefile b/testcases/kernel/kvm/Makefile
+index d67230735..31f144c26 100644
+--- a/testcases/kernel/kvm/Makefile
++++ b/testcases/kernel/kvm/Makefile
+@@ -11,6 +11,7 @@ GUEST_CPPFLAGS = $(CPPFLAGS) -DCOMPILE_PAYLOAD
+ GUEST_CFLAGS = -ffreestanding -O2 -Wall -fno-asynchronous-unwind-tables -mno-mmx -mno-sse
+ GUEST_LDFLAGS = -nostdlib -Wl,--build-id=none
+ GUEST_LDLIBS =
++KVM_LD ?= $(LD)
+ 
+ FILTER_OUT_MAKE_TARGETS := lib_guest lib_host lib_x86
+ 
+@@ -50,11 +51,11 @@ include $(top_srcdir)/include/mk/generic_leaf_target.mk
+ ifdef VERBOSE
+ 	$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS)
+ 	objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin
+-	$(LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
++	$(KVM_LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
+ else
+ 	@$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS)
+ 	@objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin
+-	@$(LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
++	@$(KVM_LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin
+ 	@echo KVM_CC $(target_rel_dir)$@
+ endif
+ 	@rm $*-payload.elf $*-payload.bin
diff --git a/poky/meta/recipes-extended/ltp/ltp_20220527.bb b/poky/meta/recipes-extended/ltp/ltp_20220527.bb
index 094251e..b0f4ea6 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20220527.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20220527.bb
@@ -28,7 +28,15 @@
 SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=https \
            file://0001-Remove-OOM-tests-from-runtest-mm.patch \
            file://disable_hanging_tests.patch \
-           file://0001-kvm-use-LD-instead-of-hardcoding-ld.patch \
+           file://0001-kvm-Fix-stack-access-mode-in-KVM-test-ELF-headers.patch \
+           file://0002-kvm-use-LD-instead-of-hardcoding-ld.patch \
+           file://0003-Add-KVM_LD-Makefile-variable-for-building-KVM-payloa.patch \
+           file://0001-nfs05_make_tree-Restore-5-min-timeout.patch \
+           file://0001-syscalls-migrate_pages03-restore-runtime-to-5m.patch \
+           file://0001-mountns0-1-3-wait-for-umount-completed-in-thread_b.patch \
+           file://0001-netstress-Restore-runtime-to-5m.patch \
+           file://0001-net_stress-Fix-usage-of-variables-from-tst_net.sh.patch \
+           file://0001-memcg-functional-Fix-usage-of-PAGESIZE-from-memcg_li.patch \
            "
 
 S = "${WORKDIR}/git"
@@ -41,6 +49,13 @@
 # https://github.com/linux-test-project/ltp/commit/3fce2064b54843218d085aae326c8f7ecf3a8c41#diff-39268f0855c634ca48c8993fcd2c95b12a65b79e8d9fa5ccd6b0f5a8785c0dd6R36
 LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
 
+# After 0002-kvm-use-LD-instead-of-hardcoding-ld.patch
+# https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb
+# it fails with gold also a bit later when trying to use *-payload.bin
+# http://errors.yoctoproject.org/Errors/Details/663094/
+# work around this by forcing .bfd linked in LD when ld-is-gold is in DISTRO_FEATURES
+KVM_LD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}"
+
 TARGET_CC_ARCH += "${LDFLAGS}"
 
 export prefix = "/opt/${PN}"
@@ -53,7 +68,7 @@
 EXTRA_OECONF += " --without-tirpc "
 
 do_compile() {
-    oe_runmake HOSTCC="${CC_FOR_BUILD}" HOST_CFLAGS="${CFLAGS_FOR_BUILD}" HOST_LDFLAGS="${LDFLAGS_FOR_BUILD}"
+    oe_runmake HOSTCC="${CC_FOR_BUILD}" HOST_CFLAGS="${CFLAGS_FOR_BUILD}" HOST_LDFLAGS="${LDFLAGS_FOR_BUILD}" KVM_LD="${KVM_LD}"
 }
 
 do_install(){
diff --git a/poky/meta/recipes-extended/zstd/zstd_1.5.2.bb b/poky/meta/recipes-extended/zstd/zstd_1.5.2.bb
index 3887f31..2a638eb 100644
--- a/poky/meta/recipes-extended/zstd/zstd_1.5.2.bb
+++ b/poky/meta/recipes-extended/zstd/zstd_1.5.2.bb
@@ -26,6 +26,8 @@
 # See programs/README.md for how to use this
 ZSTD_LEGACY_SUPPORT ??= "4"
 
+EXTRA_OEMAKE += "V=1"
+
 do_compile () {
     oe_runmake ${PACKAGECONFIG_CONFARGS} ZSTD_LEGACY_SUPPORT=${ZSTD_LEGACY_SUPPORT}
     oe_runmake ${PACKAGECONFIG_CONFARGS} ZSTD_LEGACY_SUPPORT=${ZSTD_LEGACY_SUPPORT} -C contrib/pzstd
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_42.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_42.3.bb
similarity index 94%
rename from poky/meta/recipes-gnome/epiphany/epiphany_42.2.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_42.3.bb
index dc1b34a..f9d60ff 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_42.2.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_42.3.bb
@@ -28,7 +28,7 @@
            file://migrator.patch \
            file://distributor.patch \
            "
-SRC_URI[archive.sha256sum] = "92c02cf886d10d2ccff5de658e1a420eab31d20bb50e746d430e9535b485192d"
+SRC_URI[archive.sha256sum] = "7316d3c6500e825d8e57293fa58047c56727bee16cd6b6ac804ffe5d9b229560"
 
 PACKAGECONFIG_SOUP ?= "soup2"
 PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}"
diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb b/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
index b6e591f..0c2af42 100644
--- a/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
+++ b/poky/meta/recipes-gnome/gcr/gcr_3.40.0.bb
@@ -16,6 +16,7 @@
 GNOMEBASEBUILDCLASS = "meson"
 GTKDOC_MESON_OPTION = "gtk_doc"
 inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
+UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>\d+\.(?!9\d+)(\d*[02468])+(\.\d+)+)\.tar"
 
 SRC_URI += "file://0001-gcr-meson.build-fix-one-parallel-build-failure.patch \ 
             file://b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8.patch"
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb
index 355e77d..9a47e90 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb
@@ -113,9 +113,6 @@
 }
 
 do_compile:prepend() {
-        # This prevents g-ir-scanner from writing cache data to $HOME
-        export GI_SCANNER_DISABLE_CACHE=1
-
         # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise
         export GIR_EXTRA_LIBS_PATH=$B/.libs
 }
diff --git a/poky/meta/recipes-gnome/libhandy/libhandy_1.6.2.bb b/poky/meta/recipes-gnome/libhandy/libhandy_1.6.3.bb
similarity index 95%
rename from poky/meta/recipes-gnome/libhandy/libhandy_1.6.2.bb
rename to poky/meta/recipes-gnome/libhandy/libhandy_1.6.3.bb
index 8d99046..01ca699 100644
--- a/poky/meta/recipes-gnome/libhandy/libhandy_1.6.2.bb
+++ b/poky/meta/recipes-gnome/libhandy/libhandy_1.6.3.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
 SRC_URI = "git://gitlab.gnome.org/GNOME/libhandy.git;protocol=https;branch=libhandy-1-6"
-SRCREV = "f050453109db05621b9a47b9931fe1b571905e67"
+SRCREV = "2885c314c9c84037b6fe55ead6a232e60ebfc9c5"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))"
diff --git a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.12.bb b/poky/meta/recipes-gnome/libnotify/libnotify_0.8.0.bb
similarity index 93%
rename from poky/meta/recipes-gnome/libnotify/libnotify_0.7.12.bb
rename to poky/meta/recipes-gnome/libnotify/libnotify_0.8.0.bb
index 21e737f..9c9af87 100644
--- a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.12.bb
+++ b/poky/meta/recipes-gnome/libnotify/libnotify_0.8.0.bb
@@ -22,7 +22,7 @@
 # depends on gtk+3 if tests are enabled
 ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'tests', '${GTK3DISTROFEATURES}', '', d)}"
 
-SRC_URI[archive.sha256sum] = "744b2b37508135f8261b755a9debe6e09add421adc75bde930f6e198b70ab46e"
+SRC_URI[archive.sha256sum] = "46a26f0db4e64cf24016291eb1579ed9f0ba7611fe6cd9e1afec8f42780d3924"
 
 EXTRA_OEMESON = "-Dman=false"
 
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.111.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.112.bb
similarity index 96%
rename from poky/meta/recipes-graphics/drm/libdrm_2.4.111.bb
rename to poky/meta/recipes-graphics/drm/libdrm_2.4.112.bb
index 17b737c..4883824 100644
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.111.bb
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.112.bb
@@ -13,7 +13,7 @@
 SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
           "
 
-SRC_URI[sha256sum] = "1ad7164f77424de6f4ecba7c262bde196a214c6e19a6fbf497f0815f4d7ab2a9"
+SRC_URI[sha256sum] = "00b07710bd09b35cd8d80eaf4f4497fe27f4becf467a9830f1f5e8324f8420ff"
 
 inherit meson pkgconfig manpages
 
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.14.0.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.15.0.bb
similarity index 100%
rename from poky/meta/recipes-graphics/libva/libva-initial_2.14.0.bb
rename to poky/meta/recipes-graphics/libva/libva-initial_2.15.0.bb
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.14.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.15.0.bb
similarity index 90%
rename from poky/meta/recipes-graphics/libva/libva-utils_2.14.0.bb
rename to poky/meta/recipes-graphics/libva/libva-utils_2.15.0.bb
index b816b5e..4c46c38 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.14.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.15.0.bb
@@ -14,8 +14,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
 
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.14-branch;protocol=https"
-SRCREV = "9cf21686ad9cacef53ee6b3f13c02b830cf0c7a3"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.15-branch;protocol=https"
+SRCREV = "be203c8b85b07e1f7a3faedd13057b0a8cabd3c3"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-graphics/libva/libva.inc b/poky/meta/recipes-graphics/libva/libva.inc
index 148bb03..956cd50 100644
--- a/poky/meta/recipes-graphics/libva/libva.inc
+++ b/poky/meta/recipes-graphics/libva/libva.inc
@@ -18,7 +18,7 @@
 
 SRC_URI = "https://github.com/intel/libva/releases/download/${PV}/libva-${PV}.tar.bz2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[sha256sum] = "511e9a74d1ccfb548bc192290603082c11074ac59b17aadfd5d56a3f93e58454"
+SRC_URI[sha256sum] = "258ed409458d3e7a000e1908bc852619615ee6a933359c745fcd93eb3e461eca"
 
 S = "${WORKDIR}/libva-${PV}"
 
diff --git a/poky/meta/recipes-graphics/libva/libva_2.14.0.bb b/poky/meta/recipes-graphics/libva/libva_2.15.0.bb
similarity index 100%
rename from poky/meta/recipes-graphics/libva/libva_2.14.0.bb
rename to poky/meta/recipes-graphics/libva/libva_2.15.0.bb
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch b/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch
new file mode 100644
index 0000000..48fc1e3
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch
@@ -0,0 +1,65 @@
+Backport merge request to fix mesa compile error when debug build
+enabled.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17439]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From c69c6e7a35205557de73734ad4a1f411c8f99926 Mon Sep 17 00:00:00 2001
+From: t bettler <thomas.bettler@gmail.com>
+Date: Sat, 9 Jul 2022 09:28:51 +0000
+Subject: [PATCH] nir/nir_opt_move: fix ALWAYS_INLINE compiler error
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+fix call to ‘always_inline’ ‘src_is_ssa’
+
+Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6825
+Fixes: f1d20ec67c3f186886b97de94f74484650f8fda1 ("nir/nir_opt_move: handle non-SSA defs ")
+---
+ src/compiler/nir/nir_inline_helpers.h | 10 ++++++++--
+ src/compiler/nir/nir_opt_move.c       |  2 +-
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/compiler/nir/nir_inline_helpers.h b/src/compiler/nir/nir_inline_helpers.h
+index 125dd8a537c..ec33f0509f7 100644
+--- a/src/compiler/nir/nir_inline_helpers.h
++++ b/src/compiler/nir/nir_inline_helpers.h
+@@ -73,8 +73,8 @@ nir_foreach_dest(nir_instr *instr, nir_foreach_dest_cb cb, void *state)
+    return _nir_foreach_dest(instr, cb, state);
+ }
+ 
+-static inline bool
+-nir_foreach_src(nir_instr *instr, nir_foreach_src_cb cb, void *state)
++static ALWAYS_INLINE bool
++_nir_foreach_src(nir_instr *instr, nir_foreach_src_cb cb, void *state)
+ {
+    switch (instr->type) {
+    case nir_instr_type_alu: {
+@@ -162,3 +162,9 @@ nir_foreach_src(nir_instr *instr, nir_foreach_src_cb cb, void *state)
+    dest_state.cb = cb;
+    return _nir_foreach_dest(instr, _nir_visit_dest_indirect, &dest_state);
+ }
++
++static inline bool
++nir_foreach_src(nir_instr *instr, nir_foreach_src_cb cb, void *state)
++{
++   return _nir_foreach_src(instr, cb, state);
++}
+diff --git a/src/compiler/nir/nir_opt_move.c b/src/compiler/nir/nir_opt_move.c
+index 81bcde5c436..051c3cc6295 100644
+--- a/src/compiler/nir/nir_opt_move.c
++++ b/src/compiler/nir/nir_opt_move.c
+@@ -60,7 +60,7 @@ src_is_ssa(nir_src *src, void *state)
+ static ALWAYS_INLINE bool
+ instr_reads_register(nir_instr *instr)
+ {
+-   return !nir_foreach_src(instr, src_is_ssa, NULL);
++   return !_nir_foreach_src(instr, src_is_ssa, NULL);
+ }
+ 
+ static bool
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 710cacb..f02ef2d 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -22,6 +22,7 @@
            file://0001-util-format-Check-for-NEON-before-using-it.patch \
            file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \
            file://0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch \
+           file://0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch \
            "
 
 SRC_URI[sha256sum] = "b98f32ba7aa2a1ff5725fb36eb999c693079f0ca16f70aa2f103e2b6c3f093e3"
diff --git a/poky/meta/recipes-graphics/pango/pango_1.50.7.bb b/poky/meta/recipes-graphics/pango/pango_1.50.8.bb
similarity index 94%
rename from poky/meta/recipes-graphics/pango/pango_1.50.7.bb
rename to poky/meta/recipes-graphics/pango/pango_1.50.8.bb
index 01a11a1..9365267 100644
--- a/poky/meta/recipes-graphics/pango/pango_1.50.7.bb
+++ b/poky/meta/recipes-graphics/pango/pango_1.50.8.bb
@@ -24,7 +24,7 @@
             file://0001-Skip-running-test-layout-test.patch \
 "
 
-SRC_URI[archive.sha256sum] = "0477f369a3d4c695df7299a6989dc004756a7f4de27eecac405c6790b7e3ad33"
+SRC_URI[archive.sha256sum] = "cf626f59dd146c023174c4034920e9667f1d25ac2c1569516d63136c311255fa"
 
 DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
 
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index 38ededf..932f292 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -14,7 +14,7 @@
            "
 UPSTREAM_CHECK_COMMITS = "1"
 
-SRCREV = "479b0002d004bc99514d186724b5a4fbfe543370"
+SRCREV = "c107462e4e429fa1cf6daac39168674c1c0c9fd4"
 # (when PV goes above 1.0 remove the trailing r)
 PV = "1.0+gitr${SRCPV}"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-hpp_vulkan_resource.h-add-header-incl.patch b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-hpp_vulkan_resource.h-add-header-incl.patch
new file mode 100644
index 0000000..c2bb43f
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples/0001-framework-core-hpp_vulkan_resource.h-add-header-incl.patch
@@ -0,0 +1,27 @@
+From 8c069a1c4452f626e5bafc547463507d86111319 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Tue, 19 Jul 2022 16:55:40 +0200
+Subject: [PATCH] framework/core/hpp_vulkan_resource.h: add header include that
+ defines std::exchange
+
+Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Samples/pull/501]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ framework/core/hpp_vulkan_resource.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/framework/core/hpp_vulkan_resource.h b/framework/core/hpp_vulkan_resource.h
+index 0e30f5a..8d83019 100644
+--- a/framework/core/hpp_vulkan_resource.h
++++ b/framework/core/hpp_vulkan_resource.h
+@@ -18,6 +18,7 @@
+ #pragma once
+ 
+ #include <vulkan/vulkan.hpp>
++#include <utility>
+ 
+ namespace vkb
+ {
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
index 57d3bd8..41cb4a4 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
@@ -8,10 +8,11 @@
 SRC_URI = "gitsm://github.com/KhronosGroup/Vulkan-Samples.git;branch=master;protocol=https \
            file://0001-CMakeLists.txt-do-not-hardcode-lib-as-installation-t.patch \
            file://debugfix.patch \
+           file://0001-framework-core-hpp_vulkan_resource.h-add-header-incl.patch \
            "
 
 UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "0cc04a63583769bd13bcc51229a5a263d59343df"
+SRCREV = "ee6c1522af8ba9b56f8416c2eedafb440f681085"
 
 UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.25.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.26.bb
similarity index 91%
rename from poky/meta/recipes-graphics/wayland/wayland-protocols_1.25.bb
rename to poky/meta/recipes-graphics/wayland/wayland-protocols_1.26.bb
index 92ba296..322f55d 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.25.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.26.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
            "
-SRC_URI[sha256sum] = "f1ff0f7199d0a0da337217dd8c99979967808dc37731a1e759e822b75b571460"
+SRC_URI[sha256sum] = "c553384c1c68afd762fa537a2569cc9074fe7600da12d3472761e77a2ba56f13"
 
 UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
 
diff --git a/poky/meta/recipes-graphics/xorg-app/xev_1.2.4.bb b/poky/meta/recipes-graphics/xorg-app/xev_1.2.5.bb
similarity index 81%
rename from poky/meta/recipes-graphics/xorg-app/xev_1.2.4.bb
rename to poky/meta/recipes-graphics/xorg-app/xev_1.2.5.bb
index 9407fa6..0e3def6 100644
--- a/poky/meta/recipes-graphics/xorg-app/xev_1.2.4.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xev_1.2.5.bb
@@ -14,4 +14,6 @@
 
 SRC_URI += "file://diet-x11.patch"
 
-SRC_URI[sha256sum] = "d700e08bfe751ed2dbf802baa204b056d0e49348b6eb3c6f9cb035d8ae4885e2"
+SRC_URI[sha256sum] = "c9461a4389714e0f33974f9e75934bdc38d836a0f059b8dc089c7cbf2ce36ec1"
+
+SRC_URI_EXT = "xz"
diff --git a/poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.10.bb b/poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.11.bb
similarity index 78%
rename from poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.10.bb
rename to poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.11.bb
index 7dedb03..dc955aa 100644
--- a/poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.10.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.11.bb
@@ -12,5 +12,6 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=272c17e96370e1e74773fa22d9989621"
 
 PE = "1"
-SRC_URI[md5sum] = "51f1d30a525e9903280ffeea2744b1f6"
-SRC_URI[sha256sum] = "473f0941d7439d501bb895ff358832b936ec34c749b9704c37a15e11c318487c"
+SRC_URI[sha256sum] = "9a2f8168f7b0bc382828847403902cb6bf175e17658b36189eac87edda877e81"
+
+SRC_URI_EXT = "xz"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb
deleted file mode 100644
index 1896fff..0000000
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.9.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require xorg-driver-input.inc
-
-SUMMARY = "X.Org X server -- keyboard input driver"
-
-DESCRIPTION = "keyboard is an Xorg input driver for keyboards. The \
-driver supports the standard OS-provided keyboard interface.  The driver \
-functions as a keyboard input device, and may be used as the X server's \
-core keyboard."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10"
-
-SRC_URI[md5sum] = "a3a3f0dd32361dcdbd406e894dafe090"
-SRC_URI[sha256sum] = "f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
deleted file mode 100644
index 4bb7fb3..0000000
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-This patch avoids using time field of input_event structure which is not available
-on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new
-and keeps old input.h implementation functional as well.
-
-See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/src/eventcomm.c
-+++ b/src/eventcomm.c
-@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
-         ev->type = EV_SYN;
-         ev->code = SYN_REPORT;
-         ev->value = 0;
--        ev->time = last_event_time;
--    } else if (ev->type == EV_SYN)
--        last_event_time = ev->time;
--
-+	ev->input_event_sec = last_event_time.tv_sec;
-+	ev->input_event_usec = last_event_time.tv_usec;
-+    } else if (ev->type == EV_SYN) {
-+        last_event_time.tv_sec = ev->input_event_sec;
-+        last_event_time.tv_usec = ev->input_event_usec;
-+    }
-     return TRUE;
- }
- 
-@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo,
-             case SYN_REPORT:
-                 hw->numFingers = count_fingers(pInfo, comm);
-                 if (proto_data->have_monotonic_clock)
--                    hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
-+                    hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000;
-                 else
-                     hw->millis = GetTimeInMillis();
-                 SynapticsCopyHwState(hwRet, hw);
---- a/src/eventcomm.h
-+++ b/src/eventcomm.h
-@@ -34,6 +34,11 @@
- #include <xf86Xinput.h>
- #include "synproto.h"
- 
-+#ifndef input_event_sec
-+#define input_event_sec time.tv_sec
-+#define input_event_usec time.tv_usec
-+#endif
-+
- /* for auto-dev: */
- #define DEV_INPUT_EVENT "/dev/input"
- #define EVENT_DEV_NAME "event"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.2.bb
similarity index 74%
rename from poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
rename to poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.2.bb
index 388350c..8e44629 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.2.bb
@@ -10,9 +10,8 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398"
 
-SRC_URI += "file://64bit_time_t_support.patch"
-
-SRC_URI[md5sum] = "cfb79d3c975151f9bbf30b727c260cb9"
-SRC_URI[sha256sum] = "7af83526eff1c76e8b9e1553b34245c203d029028d8044dd9dcf71eef1001576"
+SRC_URI[sha256sum] = "b8fa4aab913fc63754bbd6439e020658c412743a055201ddf212760593962c38"
 
 DEPENDS += "libxi mtdev libxtst libevdev"
+
+XORG_DRIVER_COMPRESSOR = ".tar.xz"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.6.0.bb
similarity index 72%
rename from poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb
rename to poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.6.0.bb
index c498477..32eb8a4 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.5.3.bb
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-cirrus_1.6.0.bb
@@ -7,7 +7,8 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6ddc7ca860dc5fd014e7f160ea699295"
 
-SRC_URI[md5sum] = "7d7dfd4cdc42aa8b6e923510fa00ad2b"
-SRC_URI[sha256sum] = "edc87b20a55259126b5239b5c1ef913419eab7ded0ed12ae9ae989460d7351ab"
+SRC_URI[sha256sum] = "0ef3fa0083de3d9a040f11b3af38598d8405f1165b908fdd6712c30038326401"
 
 DEPENDS += "libpciaccess"
+
+XORG_DRIVER_COMPRESSOR = ".tar.xz"
diff --git a/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch b/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch
index ec7c7d8..9ee7abe 100644
--- a/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch
+++ b/poky/meta/recipes-graphics/xorg-font/encodings/nocompiler.patch
@@ -1,4 +1,4 @@
-From b08c43a0842076e0a94e88ad6456a9326cd7ffc9 Mon Sep 17 00:00:00 2001
+From 0c0790e90a68bf8290da5c0e57142bf7c620f039 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Tue, 17 May 2011 23:03:02 +0000
 Subject: [PATCH] Improve handling of 'all' architecture recipes and their
@@ -21,12 +21,12 @@
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 622c27b..5ee84ed 100644
+index b80e3de..80208bb 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -3,12 +3,12 @@ AC_INIT([encodings], [1.0.5],
+@@ -3,12 +3,12 @@ AC_INIT([encodings], [1.0.6],
          [https://gitlab.freedesktop.org/xorg/font/encodings/issues])
- AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ AM_INIT_AUTOMAKE([foreign dist-xz])
  
 -# Require xorg-macros: XORG_DEFAULT_OPTIONS
  m4_ifndef([XORG_MACROS_VERSION],
diff --git a/poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb b/poky/meta/recipes-graphics/xorg-font/encodings_1.0.6.bb
similarity index 78%
rename from poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb
rename to poky/meta/recipes-graphics/xorg-font/encodings_1.0.6.bb
index 8ddbaf2..be82414 100644
--- a/poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb
+++ b/poky/meta/recipes-graphics/xorg-font/encodings_1.0.6.bb
@@ -7,14 +7,14 @@
 LICENSE = "PD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76"
 PE = "1"
-PR = "r3"
 
 DEPENDS = "mkfontscale-native mkfontdir-native font-util-native"
 RDEPENDS:${PN} = ""
 
 SRC_URI += "file://nocompiler.patch"
-SRC_URI[md5sum] = "bbae4f247b88ccde0e85ed6a403da22a"
-SRC_URI[sha256sum] = "bd96e16143a044b19e87f217cf6a3763a70c561d1076aad6f6d862ec41774a31"
+SRC_URI[sha256sum] = "77e301de661f35a622b18f60b555a7e7d8c4d5f43ed41410e830d5ac9084fc26"
+
+SRC_URI_EXT = "xz"
 
 inherit allarch
 
diff --git a/poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb b/poky/meta/recipes-graphics/xorg-font/font-util_1.3.3.bb
similarity index 83%
rename from poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb
rename to poky/meta/recipes-graphics/xorg-font/font-util_1.3.3.bb
index b3e8327..64c7057 100644
--- a/poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb
+++ b/poky/meta/recipes-graphics/xorg-font/font-util_1.3.3.bb
@@ -16,7 +16,8 @@
 
 BBCLASSEXTEND = "native"
 
-SRC_URI[md5sum] = "3d6adb76fdd072db8c8fae41b40855e8"
-SRC_URI[sha256sum] = "3ad880444123ac06a7238546fa38a2a6ad7f7e0cc3614de7e103863616522282"
+SRC_URI[sha256sum] = "e791c890779c40056ab63aaed5e031bb6e2890a98418ca09c534e6261a2eebd2"
 
 SYSROOT_DIRS_IGNORE:remove = "${datadir}/fonts"
+
+SRC_URI_EXT = "xz"
diff --git a/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc b/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc
index 2df23ef..edf7cf7 100644
--- a/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc
+++ b/poky/meta/recipes-graphics/xorg-font/xorg-font-common.inc
@@ -9,7 +9,8 @@
 
 XORG_PN = "${BPN}"
 
-SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.bz2"
+SRC_URI_EXT = "bz2"
+SRC_URI = "${XORG_MIRROR}/individual/font/${XORG_PN}-${PV}.tar.${SRC_URI_EXT}"
 S = "${WORKDIR}/${XORG_PN}-${PV}"
 
 inherit autotools pkgconfig features_check
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-render-Fix-build-with-gcc-12.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-render-Fix-build-with-gcc-12.patch
deleted file mode 100644
index df9332f..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-render-Fix-build-with-gcc-12.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 12041ad0610f1345d6b9994c32943fd4dd01f65d Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Thu, 20 Jan 2022 10:20:38 +0100
-Subject: [PATCH] render: Fix build with gcc 12
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The xserver fails to compile with the latest gcc 12:
-
- render/picture.c: In function ‘CreateSolidPicture’:
- render/picture.c:874:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[16]’ [-Werror=array-bounds]
-  874 |     pPicture->pSourcePict->type = SourcePictTypeSolidFill;
-      |                          ^~
- render/picture.c:868:45: note: object of size 16 allocated by ‘malloc’
-  868 |     pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill));
-      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- render/picture.c: In function ‘CreateLinearGradientPicture’:
- render/picture.c:906:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds]
-  906 |     pPicture->pSourcePict->linear.type = SourcePictTypeLinear;
-      |                          ^~
- render/picture.c:899:45: note: object of size 32 allocated by ‘malloc’
-  899 |     pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient));
-      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- render/picture.c: In function ‘CreateConicalGradientPicture’:
- render/picture.c:989:26: error: array subscript ‘union _SourcePict[0]’ is partly outside array bounds of ‘unsigned char[32]’ [-Werror=array-bounds]
-  989 |     pPicture->pSourcePict->conical.type = SourcePictTypeConical;
-      |                          ^~
- render/picture.c:982:45: note: object of size 32 allocated by ‘malloc’
-  982 |     pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient));
-      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- cc1: some warnings being treated as errors
- ninja: build stopped: subcommand failed.
-
-This is because gcc 12 has become stricter and raises a warning now.
-
-Fix the warning/error by allocating enough memory to store the union
-struct.
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e]
-Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
-Acked-by: Michel Dänzer <mdaenzer@redhat.com>
-Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256
----
- render/picture.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/render/picture.c b/render/picture.c
-index afa0d25..2be4b19 100644
---- a/render/picture.c
-+++ b/render/picture.c
-@@ -865,7 +865,7 @@ CreateSolidPicture(Picture pid, xRenderColor * color, int *error)
-     }
- 
-     pPicture->id = pid;
--    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill));
-+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
-     if (!pPicture->pSourcePict) {
-         *error = BadAlloc;
-         free(pPicture);
-@@ -896,7 +896,7 @@ CreateLinearGradientPicture(Picture pid, xPointFixed * p1, xPointFixed * p2,
-     }
- 
-     pPicture->id = pid;
--    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient));
-+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
-     if (!pPicture->pSourcePict) {
-         *error = BadAlloc;
-         free(pPicture);
-@@ -936,7 +936,7 @@ CreateRadialGradientPicture(Picture pid, xPointFixed * inner,
-     }
- 
-     pPicture->id = pid;
--    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictRadialGradient));
-+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
-     if (!pPicture->pSourcePict) {
-         *error = BadAlloc;
-         free(pPicture);
-@@ -979,7 +979,7 @@ CreateConicalGradientPicture(Picture pid, xPointFixed * center, xFixed angle,
-     }
- 
-     pPicture->id = pid;
--    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictConicalGradient));
-+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
-     if (!pPicture->pSourcePict) {
-         *error = BadAlloc;
-         free(pPicture);
--- 
-2.35.1
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.3.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.4.bb
similarity index 79%
rename from poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.3.bb
rename to poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.4.bb
index 1f53ab5..b9cbc99 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.3.bb
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.4.bb
@@ -1,10 +1,9 @@
 require xserver-xorg.inc
 
 SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
-            file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
-            file://0001-render-Fix-build-with-gcc-12.patch \
-            "
-SRC_URI[sha256sum] = "61d6aad5b6b47a116b960bd7f0cba4ee7e6da95d6bb0b127bde75d7d1acdebe5"
+           file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
+           "
+SRC_URI[sha256sum] = "5cc4be8ee47edb58d4a90e603a59d56b40291ad38371b0bd2471fc3cbee1c587"
 
 # These extensions are now integrated into the server, so declare the migration
 # path for in-place upgrades.
diff --git a/poky/meta/recipes-graphics/xwayland/xwayland_22.1.2.bb b/poky/meta/recipes-graphics/xwayland/xwayland_22.1.3.bb
similarity index 95%
rename from poky/meta/recipes-graphics/xwayland/xwayland_22.1.2.bb
rename to poky/meta/recipes-graphics/xwayland/xwayland_22.1.3.bb
index 8c52613..da1b275 100644
--- a/poky/meta/recipes-graphics/xwayland/xwayland_22.1.2.bb
+++ b/poky/meta/recipes-graphics/xwayland/xwayland_22.1.3.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
 
 SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz"
-SRC_URI[sha256sum] = "743c4d56cfc0818755e2281d625d51860b41a473c641e179649a4f41776d1fca"
+SRC_URI[sha256sum] = "a712eb7bce32cd934df36814b5dd046aa670899c16fe98f2afb003578f86a1c5"
 
 UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220610.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220708.bb
similarity index 98%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220610.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220708.bb
index 78b38df..91c32e4 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220610.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220708.bb
@@ -27,7 +27,6 @@
     & Firmware-go7007 \
     & Firmware-GPLv2 \
     & Firmware-hfi1_firmware \
-    & Firmware-i2400m \
     & Firmware-i915 \
     & Firmware-ibt_firmware \
     & Firmware-ice \
@@ -57,7 +56,6 @@
     & Firmware-rtlwifi_firmware \
     & Firmware-imx-sdma_firmware \
     & Firmware-siano \
-    & Firmware-tda7706-firmware \
     & Firmware-ti-connectivity \
     & Firmware-ti-keystone \
     & Firmware-ueagle-atm4-firmware \
@@ -69,7 +67,6 @@
     & WHENCE \
 "
 
-WHENCE_CHKSUM = "385947b278a6646ae4c3d39ba8c9b1bb"
 LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
                     file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
                     file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
@@ -92,7 +89,6 @@
                     file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \
                     file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \
-                    file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \
                     file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
                     file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
                     file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \
@@ -124,7 +120,6 @@
                     file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \
                     file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \
                     file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \
-                    file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \
                     file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \
                     file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \
                     file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \
@@ -135,6 +130,9 @@
                     file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
                     file://WHENCE;md5=${WHENCE_CHKSUM} \
                     "
+# WHENCE checksum is defined separately to ease overriding it if
+# class-devupstream is selected.
+WHENCE_CHKSUM  = "def08711eb23ba967fb7e1f8cff66178"
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
@@ -160,7 +158,6 @@
 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-i2400m] = "LICENCE.i2400m"
 NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915"
 NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware"
 NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice"
@@ -191,7 +188,6 @@
 NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt"
 NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano"
 NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware"
-NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt"
 NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity"
 NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone"
 NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware"
@@ -213,7 +209,7 @@
 # Pin this to the 20220509 release, override this in local.conf
 SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae"
 
-SRC_URI[sha256sum] = "faf3aedf89530e61f4fa1e8c7303dead9127cc24416945647797d079feb12837"
+SRC_URI[sha256sum] = "0abec827a035c82bdcabdf82aa37ded247bc682ef05861bd409ea6f477bab81d"
 
 inherit allarch
 
@@ -1033,7 +1029,6 @@
     & Firmware-fw_sst_0f28 \
     & Firmware-go7007 \
     & Firmware-hfi1_firmware \
-    & Firmware-i2400m \
     & Firmware-ibt_firmware \
     & Firmware-it913x \
     & Firmware-IntcSST2 \
@@ -1054,7 +1049,6 @@
     & Firmware-ralink-firmware \
     & Firmware-imx-sdma_firmware \
     & Firmware-siano \
-    & Firmware-tda7706-firmware \
     & Firmware-ti-connectivity \
     & Firmware-ti-keystone \
     & Firmware-ueagle-atm4-firmware \
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-net-skb-introduce-kfree_skb_reason-v5.15.58.v5.1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-net-skb-introduce-kfree_skb_reason-v5.15.58.v5.1.patch
new file mode 100644
index 0000000..ca6abea
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-net-skb-introduce-kfree_skb_reason-v5.15.58.v5.1.patch
@@ -0,0 +1,53 @@
+From d8254360c7f2ff9b3f945e9668d89c0b56b9bd91 Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Fri, 29 Jul 2022 15:37:43 -0400
+Subject: [PATCH] fix: net: skb: introduce kfree_skb_reason() (v5.15.58..v5.16)
+
+See upstream commit :
+
+  commit c504e5c2f9648a1e5c2be01e8c3f59d394192bd3
+  Author: Menglong Dong <imagedong@tencent.com>
+  Date:   Sun Jan 9 14:36:26 2022 +0800
+
+    net: skb: introduce kfree_skb_reason()
+
+    Introduce the interface kfree_skb_reason(), which is able to pass
+    the reason why the skb is dropped to 'kfree_skb' tracepoint.
+
+    Add the 'reason' field to 'trace_kfree_skb', therefor user can get
+    more detail information about abnormal skb with 'drop_monitor' or
+    eBPF.
+
+    All drop reasons are defined in the enum 'skb_drop_reason', and
+    they will be print as string in 'kfree_skb' tracepoint in format
+    of 'reason: XXX'.
+
+    ( Maybe the reasons should be defined in a uapi header file, so that
+    user space can use them? )
+
+Upstream-Status: Backport
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: Ib3c039207739dad10f097cf76474e0822e351273
+---
+ include/instrumentation/events/skb.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/include/instrumentation/events/skb.h b/include/instrumentation/events/skb.h
+index 237e54ad..186732ea 100644
+--- a/include/instrumentation/events/skb.h
++++ b/include/instrumentation/events/skb.h
+@@ -13,7 +13,9 @@
+ /*
+  * Tracepoint for free an sk_buff:
+  */
+-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0) \
++	|| LTTNG_KERNEL_RANGE(5,15,58, 5,16,0))
++
+ LTTNG_TRACEPOINT_ENUM(skb_drop_reason,
+ 	TP_ENUM_VALUES(
+ 		ctf_enum_value("NOT_SPECIFIED",	SKB_DROP_REASON_NOT_SPECIFIED)
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb
index ea2ec3c..fea0e38 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.4.bb
@@ -14,6 +14,7 @@
            file://0001-fix-mm-page_alloc-fix-tracepoint-mm_page_alloc_zone_.patch \
            file://0002-fix-fs-Remove-flags-parameter-from-aops-write_begin-.patch \
            file://0003-fix-workqueue-Fix-type-of-cpu-in-trace-event-v5.19.patch \
+           file://0001-fix-net-skb-introduce-kfree_skb_reason-v5.15.58.v5.1.patch \
            "
 
 # Use :append here so that the patch is applied also when using devupstream
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index 603d3f9..95e7eae 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -227,6 +227,9 @@
         # reproducible.
         sed -i -e 's,$(call get-executable-or-default\,PYTHON\,$(PYTHON_AUTO)),$(notdir $(call get-executable-or-default\,PYTHON\,$(PYTHON_AUTO))),g' \
             ${S}/tools/perf/Makefile.config
+        # The same line is in older releases, but looking explicitly for Python 2
+        sed -i -e 's,$(call get-executable-or-default\,PYTHON\,$(PYTHON2)),$(notdir $(call get-executable-or-default\,PYTHON\,$(PYTHON2))),g' \
+            ${S}/tools/perf/Makefile.config
 
 	# likewise with this substitution. Kernels with commit 18f2967418d031a39
 	# [perf tools: Use Python devtools for version autodetection rather than runtime]
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.7.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.7.2.bb
similarity index 93%
rename from poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.7.1.bb
rename to poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.7.2.bb
index 7f7b955..9efdae8 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.7.1.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.7.2.bb
@@ -10,7 +10,7 @@
                     "
 
 SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "046dc42dfcfad269217be05954686137e5e7397f3041372f8c6dcd7d79461e61"
+SRC_URI[sha256sum] = "8a35b7218e50f2a2c79342d0de98ded81439ce19e12809385ec9be9596de7c2f"
 
 inherit autotools pkgconfig
 
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.2.bb
similarity index 89%
rename from poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.1.bb
rename to poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.2.bb
index 79b8206..51314f3 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.1.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.7.2.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4"
 
 SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "ac5b2a1275783eff07e1cb34c36c6c5987742679a340037507c04a9dc1d22cac"
+SRC_URI[sha256sum] = "53ef5639c4097b228e8f5cfaa2e7b829d04b5de2dc9a38d54efa8aa350d3f5fd"
 # Something went wrong at upstream tarballing
 
 inherit allarch
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.30.0.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.30.1.bb
similarity index 96%
rename from poky/meta/recipes-multimedia/mpg123/mpg123_1.30.0.bb
rename to poky/meta/recipes-multimedia/mpg123/mpg123_1.30.1.bb
index f80bfa6..502d9d1 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.30.0.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.30.1.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
 
 SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "397ead52f0299475f2cefd38c3835977193fd9b1db6593680346c4e9109ed61c"
+SRC_URI[sha256sum] = "1b20c9c751bea9be556749bd7f97cf580f52ed11f2540756e9af26ae036e4c59"
 
 UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 602d726..6055a9e 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -61,7 +61,7 @@
 "
 
 # libtool is needed for libltdl, used in module loading.
-DEPENDS = "libatomic-ops libsndfile1 libtool"
+DEPENDS = "m4-native libatomic-ops libsndfile1 libtool"
 # optional
 DEPENDS += "udev alsa-lib glib-2.0"
 DEPENDS += "speexdsp libxml-parser-perl-native libcap"
diff --git a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
index 43c2a2f..5410ec9 100644
--- a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
+++ b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
@@ -1,4 +1,4 @@
-From 05ccf5045adf4248f29623ad0db2d2a55ae5cd06 Mon Sep 17 00:00:00 2001
+From 5a7caafe04cac805b5057db2632b0defe703eacd Mon Sep 17 00:00:00 2001
 From: Randy Witt <randy.e.witt@intel.com>
 Date: Fri, 16 Oct 2020 16:54:30 -0700
 Subject: [PATCH] Makefile: Allow for CC and AR to be overridden
@@ -15,11 +15,11 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/Makefile b/Makefile
-index ec5d693..ab8a8de 100644
+index 3fbf882..04d3c0f 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,6 +1,6 @@
- VERSION = 2.3
+ VERSION = 2.4
 -CC = $(CROSS_COMPILE)gcc
 -AR = $(CROSS_COMPILE)ar
 +CC ?= $(CROSS_COMPILE)gcc
diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
index e519dfd..93fa390 100644
--- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -1,5 +1,5 @@
-SRCREV = "338843c1ee157ae5d990c6f544f66b447b24fa8b"
-PV = "2.3"
+SRCREV = "ca4a6293da23ad0fd708ea1fecb2d465a9ea6093"
+PV = "2.4"
 PE = "1"
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main"
diff --git a/poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb b/poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb
index e2140bf..1ebbf01 100644
--- a/poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb
+++ b/poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_git.bb
@@ -10,6 +10,7 @@
 
 SRC_URI = "git://git.yoctoproject.org/sato-icon-theme.git;protocol=https;branch=master"
 SRCREV = "d23f04ecb0328f655bf195df8eb04c1b734d53a9"
+UPSTREAM_CHECK_COMMITS = "1"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.36.3.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.36.4.bb
similarity index 98%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.36.3.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.36.4.bb
index 83b6f8a..df4ff63 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.36.3.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.36.4.bb
@@ -17,7 +17,7 @@
            file://0001-When-building-introspection-files-do-not-quote-CFLAG.patch \
            "
 
-SRC_URI[sha256sum] = "732fcf8c4ec644b8ed28b46ebbd7c1ebab9d9e0afea9bdf5e5d12786afc478d1"
+SRC_URI[sha256sum] = "b6bebe1f85a479d968c19e44a4704622ef8cef61636ad1b2406b77d16ae2e2a8"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
 
diff --git a/poky/meta/recipes-support/curl/curl_7.84.0.bb b/poky/meta/recipes-support/curl/curl_7.84.0.bb
index 28b09ef..75417cd 100644
--- a/poky/meta/recipes-support/curl/curl_7.84.0.bb
+++ b/poky/meta/recipes-support/curl/curl_7.84.0.bb
@@ -93,9 +93,10 @@
 
 do_install_ptest() {
 	cat  ${WORKDIR}/disable-tests >> ${S}/tests/data/DISABLED
-	rm  ${B}/tests/configurehelp.pm
+	rm -f ${B}/tests/configurehelp.pm
 	cp -rf ${B}/tests ${D}${PTEST_PATH}
 	cp -rf ${S}/tests ${D}${PTEST_PATH}
+	find ${D}${PTEST_PATH}/ -type f -name Makefile.am -o -name Makefile.in -o -name Makefile -delete
 	install -d ${D}${PTEST_PATH}/src
 	ln -sf ${bindir}/curl   ${D}${PTEST_PATH}/src/curl
 	cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH}
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_217.bb b/poky/meta/recipes-support/diffoscope/diffoscope_218.bb
similarity index 92%
rename from poky/meta/recipes-support/diffoscope/diffoscope_217.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_218.bb
index d5ab38f..eceba47 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_217.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_218.bb
@@ -12,7 +12,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "1e9791e3f718ca809d98fb319b150ce6222a682b4009ea00838b9d8705003950"
+SRC_URI[sha256sum] = "68056e6d5382bfe16662c60d47bf710aa7b0ef43bfde1172fad694bc487279e3"
 
 RDEPENDS:${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm"
 
diff --git a/poky/meta/recipes-support/libgit2/libgit2_1.4.3.bb b/poky/meta/recipes-support/libgit2/libgit2_1.4.3.bb
deleted file mode 100644
index 7e27b5b..0000000
--- a/poky/meta/recipes-support/libgit2/libgit2_1.4.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "the Git linkable library"
-HOMEPAGE = "http://libgit2.github.com/"
-LICENSE = "GPL-2.0-with-GCC-exception & MIT & OpenSSL"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e5a9227de4cb6afb5d35ed7b0fdf480d"
-
-DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2"
-
-SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v1.4;protocol=https"
-SRCREV = "465bbf88ea939a965fbcbade72870c61f815e457"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "\
-    -DBUILD_CLAR=OFF \
-    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-    -DLIB_INSTALL_DIR=${libdir} \
-    -DREGEX_BACKEND='pcre2' \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/libgit2/libgit2_1.5.0.bb b/poky/meta/recipes-support/libgit2/libgit2_1.5.0.bb
new file mode 100644
index 0000000..ee4d79b
--- /dev/null
+++ b/poky/meta/recipes-support/libgit2/libgit2_1.5.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "the Git linkable library"
+HOMEPAGE = "http://libgit2.github.com/"
+LICENSE = "GPL-2.0-with-GCC-exception & MIT & OpenSSL & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=112e6bb421dea73cd41de09e777f2d2c"
+
+DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2"
+
+SRC_URI = "git://github.com/libgit2/libgit2.git;branch=main;protocol=https"
+SRCREV = "fbea439d4b6fc91c6b619d01b85ab3b7746e4c19"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "\
+    -DBUILD_CLAR=OFF \
+    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+    -DLIB_INSTALL_DIR=${libdir} \
+    -DREGEX_BACKEND='pcre2' \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/libnl/files/fa7f97f8982544c4fcb403893bae6701230d5165.patch b/poky/meta/recipes-support/libnl/files/fa7f97f8982544c4fcb403893bae6701230d5165.patch
deleted file mode 100644
index 02662c9..0000000
--- a/poky/meta/recipes-support/libnl/files/fa7f97f8982544c4fcb403893bae6701230d5165.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From fa7f97f8982544c4fcb403893bae6701230d5165 Mon Sep 17 00:00:00 2001
-From: Thomas Haller <thaller@redhat.com>
-Date: Fri, 15 Apr 2022 13:29:49 +0200
-Subject: [PATCH] build: avoid building check-direct with --disable-static
-
-"check-direct" needs to statically link with the libraries, because
-it wants to test internal ABI, which is hidden in the share libraries.
-When configuring with "--disable-static", static libs are not build
-and the test tool cannot be build.
-
-Just skip the test in that case.
-
-https://github.com/thom311/libnl/issues/306
-Upstream-Status: Backport [https://github.com/thom311/libnl/commit/fa7f97f8982544c4fcb403893bae6701230d5165]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- Makefile.am  | 2 ++
- configure.ac | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index a6bcf553..2f5e0dfc 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -984,8 +984,10 @@ tests_check_all_LDADD = \
- 	$(NULL)
- 
- if WITH_CHECK
-+if ENABLE_STATIC
- check_programs += tests/check-direct
- endif
-+endif
- 
- tests_check_direct_SOURCES = \
- 	tests/check-direct.c \
-diff --git a/configure.ac b/configure.ac
-index 1f9ad0eb..0fd1cc0f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -107,6 +107,8 @@ else
-     AC_CHECK_LIB([pthread], [pthread_mutex_lock], [], AC_MSG_ERROR([libpthread is required]))
- fi
- 
-+AM_CONDITIONAL([ENABLE_STATIC], [test "$enable_static" != "no"])
-+
- AC_ARG_ENABLE([debug],
- 	AS_HELP_STRING([--disable-debug], [Do not include debugging statements]),
- 	[enable_debug="$enableval"], [enable_debug="yes"])
diff --git a/poky/meta/recipes-support/libnl/libnl_3.6.0.bb b/poky/meta/recipes-support/libnl/libnl_3.7.0.bb
similarity index 91%
rename from poky/meta/recipes-support/libnl/libnl_3.6.0.bb
rename to poky/meta/recipes-support/libnl/libnl_3.7.0.bb
index af3aa41..ddcc83a 100644
--- a/poky/meta/recipes-support/libnl/libnl_3.6.0.bb
+++ b/poky/meta/recipes-support/libnl/libnl_3.7.0.bb
@@ -14,14 +14,12 @@
 
 DEPENDS = "flex-native bison-native"
 
-SRC_URI = " \
-           https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \
+SRC_URI = "https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \
            file://enable-serial-tests.patch \
            file://run-ptest \
-           file://fa7f97f8982544c4fcb403893bae6701230d5165.patch \
-          "
+           "
 
-SRC_URI[sha256sum] = "532155fd011e5a805bd67121b87a01c757e2bb24112ac17e69cb86013b970009"
+SRC_URI[sha256sum] = "9fe43ccbeeea72c653bdcf8c93332583135cda46a79507bfd0a483bb57f65939"
 
 
 UPSTREAM_CHECK_URI = "https://github.com/thom311/${BPN}/releases"
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/rngd.service b/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools.service
similarity index 100%
rename from poky/meta/recipes-support/rng-tools/rng-tools/rngd.service
rename to poky/meta/recipes-support/rng-tools/rng-tools/rng-tools.service
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.15.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.15.bb
index 0696351..efc08b5 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.15.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.15.bb
@@ -11,7 +11,7 @@
 SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
            file://init \
            file://default \
-           file://rngd.service \
+           file://rng-tools.service \
            "
 SRCREV = "381f69828b782afda574f259c1b7549f48f9bb77"
 
@@ -32,7 +32,7 @@
 INITSCRIPT_NAME = "rng-tools"
 INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ."
 
-SYSTEMD_SERVICE:${PN} = "rngd.service"
+SYSTEMD_SERVICE:${PN} = "rng-tools.service"
 
 CFLAGS += " -DJENT_CONF_ENABLE_INTERNAL_TIMER "
 
@@ -44,18 +44,18 @@
 do_install:append() {
     install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools
     install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
-    install -Dm 0644 ${WORKDIR}/rngd.service \
-                     ${D}${systemd_system_unitdir}/rngd.service
+    install -Dm 0644 ${WORKDIR}/rng-tools.service \
+                     ${D}${systemd_system_unitdir}/rng-tools.service
     sed -i \
         -e 's,@SYSCONFDIR@,${sysconfdir},g' \
         -e 's,@SBINDIR@,${sbindir},g' \
         ${D}${sysconfdir}/init.d/rng-tools \
-        ${D}${systemd_system_unitdir}/rngd.service
+        ${D}${systemd_system_unitdir}/rng-tools.service
 
     if [ "${@bb.utils.contains('PACKAGECONFIG', 'nistbeacon', 'yes', 'no', d)}" = "yes" ]; then
         sed -i \
             -e '/^IPAddressDeny=any/d' \
             -e '/^RestrictAddressFamilies=/ s/$/ AF_INET AF_INET6/' \
-            ${D}${systemd_system_unitdir}/rngd.service
+            ${D}${systemd_system_unitdir}/rng-tools.service
     fi
 }
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.39.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.39.1.bb
similarity index 86%
rename from poky/meta/recipes-support/sqlite/sqlite3_3.39.0.bb
rename to poky/meta/recipes-support/sqlite/sqlite3_3.39.1.bb
index a44a752..39ddbfb 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.39.0.bb
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.39.1.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
 
 SRC_URI = "http://www.sqlite.org/2022/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "e90bcaef6dd5813fcdee4e867f6b65f3c9bfd0aec0f1017f9f3bbce1e4ed09e2"
+SRC_URI[sha256sum] = "87c8e7a7fa0c68ab28e208ba49f3a22a56000dbf53a6f90206e2bc5843931cc4"
 
 # -19242 is only an issue in specific development branch commits
 CVE_CHECK_IGNORE += "CVE-2019-19242"
diff --git a/poky/meta/recipes-support/vim/files/racefix.patch b/poky/meta/recipes-support/vim/files/racefix.patch
deleted file mode 100644
index 1cb8fb4..0000000
--- a/poky/meta/recipes-support/vim/files/racefix.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-The creation of the LINGUAS file is duplicated for each desktop file
-which can lead the commands to race against each other. Rework
-the makefile to avoid this as the expense of leaving the file on disk.
-
-Upstream-Status: Pending
-RP 2021/2/15
-
-Index: git/src/po/Makefile
-===================================================================
---- git.orig/src/po/Makefile
-+++ git/src/po/Makefile
-@@ -207,17 +207,16 @@ $(PACKAGE).pot: $(PO_INPUTLIST) $(PO_VIM
- 	# Delete the temporary files
- 	rm *.js
- 
--vim.desktop: vim.desktop.in $(POFILES)
-+LINGUAS:
- 	echo $(LANGUAGES) | tr " " "\n" |sed -e '/\./d' | sort > LINGUAS
-+
-+vim.desktop: vim.desktop.in $(POFILES) LINGUAS
- 	$(MSGFMT) --desktop -d . --template vim.desktop.in -o tmp_vim.desktop
--	rm -f LINGUAS
- 	if command -v desktop-file-validate; then desktop-file-validate tmp_vim.desktop; fi
- 	mv tmp_vim.desktop vim.desktop
- 
--gvim.desktop: gvim.desktop.in $(POFILES)
--	echo $(LANGUAGES) | tr " " "\n" |sed -e '/\./d' | sort > LINGUAS
-+gvim.desktop: gvim.desktop.in $(POFILES) LINGUAS
- 	$(MSGFMT) --desktop -d . --template gvim.desktop.in -o tmp_gvim.desktop
--	rm -f LINGUAS
- 	if command -v desktop-file-validate; then desktop-file-validate tmp_gvim.desktop; fi
- 	mv tmp_gvim.desktop gvim.desktop
- 
diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc
index 7e2c624..4889646 100644
--- a/poky/meta/recipes-support/vim/vim.inc
+++ b/poky/meta/recipes-support/vim/vim.inc
@@ -18,11 +18,10 @@
            file://vim-add-knob-whether-elf.h-are-checked.patch \
            file://0001-src-Makefile-improve-reproducibility.patch \
            file://no-path-adjust.patch \
-           file://racefix.patch \
            "
 
-PV .= ".0021"
-SRCREV = "5e59ea54c0c37c2f84770f068d95280069828774"
+PV .= ".0115"
+SRCREV = "6747cf1671bd41cddee77c65b3f9a70509f968db"
 
 # Remove when 8.3 is out
 UPSTREAM_VERSION_UNKNOWN = "1"
@@ -95,6 +94,10 @@
     STRIP=/bin/true \
 "
 
+# Some host distros don't have it, disable consistently
+EXTRA_OECONF:append:class-native = " vim_cv_timer_create=no"
+EXTRA_OECONF:append:class-target = " vim_cv_timer_create=yes"
+
 do_install() {
     autotools_do_install
 
diff --git a/poky/scripts/devtool b/poky/scripts/devtool
index af4811b..20d785c 100755
--- a/poky/scripts/devtool
+++ b/poky/scripts/devtool
@@ -104,6 +104,7 @@
     for fn in glob.glob(os.path.join(config.workspace_path, 'appends', '*.bbappend')):
         with open(fn, 'r') as f:
             pnvalues = {}
+            pn = None
             for line in f:
                 res = externalsrc_re.match(line.rstrip())
                 if res:
@@ -123,6 +124,9 @@
                 elif line.startswith('# srctreebase: '):
                     pnvalues['srctreebase'] = line.split(':', 1)[1].strip()
             if pnvalues:
+                if not pn:
+                    raise DevtoolError("Found *.bbappend in %s, but could not determine EXTERNALSRC:pn-*. "
+                            "Maybe still using old syntax?" % config.workspace_path)
                 if not pnvalues.get('srctreebase', None):
                     pnvalues['srctreebase'] = pnvalues['srctree']
                 logger.debug('Found recipe %s' % pnvalues)
@@ -314,10 +318,10 @@
 
     args = parser.parse_args(unparsed_args, namespace=global_args)
 
-    if not getattr(args, 'no_workspace', False):
-        read_workspace()
-
     try:
+        if not getattr(args, 'no_workspace', False):
+            read_workspace()
+
         ret = args.func(args, config, basepath, workspace)
     except DevtoolError as err:
         if str(err):
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 0357ec0..39a1910 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -119,20 +119,19 @@
             f.write('# original_files: %s\n' % ' '.join(copied))
     return af
 
-def _cleanup_on_error(rf, srctree):
-    rfp = os.path.split(rf)[0] # recipe folder
-    rfpp = os.path.split(rfp)[0] # recipes folder
-    if os.path.exists(rfp):
-        shutil.rmtree(rfp)
-    if not len(os.listdir(rfpp)):
-        os.rmdir(rfpp)
+def _cleanup_on_error(rd, srctree):
+    rdp = os.path.split(rd)[0] # recipes folder
+    if os.path.exists(rd):
+        shutil.rmtree(rd)
+    if not len(os.listdir(rdp)):
+        os.rmdir(rdp)
     srctree = os.path.abspath(srctree)
     if os.path.exists(srctree):
         shutil.rmtree(srctree)
 
-def _upgrade_error(e, rf, srctree, keep_failure=False, extramsg=None):
-    if rf and not keep_failure:
-        _cleanup_on_error(rf, srctree)
+def _upgrade_error(e, rd, srctree, keep_failure=False, extramsg=None):
+    if not keep_failure:
+        _cleanup_on_error(rd, srctree)
     logger.error(e)
     if extramsg:
         logger.error(extramsg)
@@ -337,7 +336,10 @@
         replacing = True
         new_src_uri = []
         for entry in src_uri:
-            scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(entry)
+            try:
+                scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(entry)
+            except bb.fetch2.MalformedUrl as e:
+                raise DevtoolError("Could not decode SRC_URI: {}".format(e))
             if replacing and scheme in ['git', 'gitsm']:
                 branch = params.get('branch', 'master')
                 if rd.expand(branch) != srcbranch:
@@ -426,7 +428,7 @@
     try:
         rd = tinfoil.parse_recipe_file(fullpath, False)
     except bb.tinfoil.TinfoilCommandFailed as e:
-        _upgrade_error(e, fullpath, srctree, keep_failure, 'Parsing of upgraded recipe failed')
+        _upgrade_error(e, os.path.dirname(fullpath), srctree, keep_failure, 'Parsing of upgraded recipe failed')
     oe.recipeutils.patch_recipe(rd, fullpath, newvalues)
 
     return fullpath, copied
@@ -568,10 +570,9 @@
             new_licenses = _extract_licenses(srctree_s, (rd.getVar('LIC_FILES_CHKSUM') or ""))
             license_diff = _generate_license_diff(old_licenses, new_licenses)
             rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, srcbranch, srcsubdir1, srcsubdir2, config.workspace_path, tinfoil, rd, license_diff, new_licenses, srctree, args.keep_failure)
-        except bb.process.CmdError as e:
-            _upgrade_error(e, rf, srctree, args.keep_failure)
-        except DevtoolError as e:
-            _upgrade_error(e, rf, srctree, args.keep_failure)
+        except (bb.process.CmdError, DevtoolError) as e:
+            recipedir = os.path.join(config.workspace_path, 'recipes', rd.getVar('BPN'))
+            _upgrade_error(e, recipedir, srctree, args.keep_failure)
         standard._add_md5(config, pn, os.path.dirname(rf))
 
         af = _write_append(rf, srctree_s, args.same_dir, args.no_same_dir, rev2,
diff --git a/poky/scripts/lib/wic/misc.py b/poky/scripts/lib/wic/misc.py
index 3bc165f..2b90821 100644
--- a/poky/scripts/lib/wic/misc.py
+++ b/poky/scripts/lib/wic/misc.py
@@ -141,11 +141,12 @@
         cmd_and_args = pseudo + cmd_and_args
 
     hosttools_dir = get_bitbake_var("HOSTTOOLS_DIR")
+    target_sys = get_bitbake_var("TARGET_SYS")
 
-    native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/bin:%s" % \
+    native_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin:%s/usr/bin/%s:%s/bin:%s" % \
                    (native_sysroot, native_sysroot,
-                    native_sysroot, native_sysroot,
-                    hosttools_dir)
+                    native_sysroot, native_sysroot, target_sys,
+                    native_sysroot, hosttools_dir)
 
     native_cmd_and_args = "export PATH=%s:$PATH;%s" % \
                    (native_paths, cmd_and_args)
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index 0391aeb..634a808 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -35,6 +35,26 @@
     name = 'bootimg-efi'
 
     @classmethod
+    def _copy_additional_files(cls, hdddir, initrd, dtb):
+        bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
+        if not bootimg_dir:
+            raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
+
+        if initrd:
+            initrds = initrd.split(';')
+            for rd in initrds:
+                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
+                exec_cmd(cp_cmd, True)
+        else:
+            logger.debug("Ignoring missing initrd")
+
+        if dtb:
+            if ';' in dtb:
+                raise WicError("Only one DTB supported, exiting")
+            cp_cmd = "cp %s/%s %s" % (bootimg_dir, dtb, hdddir)
+            exec_cmd(cp_cmd, True)
+
+    @classmethod
     def do_configure_grubefi(cls, hdddir, creator, cr_workdir, source_params):
         """
         Create loader-specific (grub-efi) config
@@ -53,18 +73,9 @@
                                "get it from %s." % configfile)
 
         initrd = source_params.get('initrd')
+        dtb = source_params.get('dtb')
 
-        if initrd:
-            bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
-            if not bootimg_dir:
-                raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
-
-            initrds = initrd.split(';')
-            for rd in initrds:
-                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
-                exec_cmd(cp_cmd, True)
-        else:
-            logger.debug("Ignoring missing initrd")
+        cls._copy_additional_files(hdddir, initrd, dtb)
 
         if not custom_cfg:
             # Create grub configuration using parameters from wks file
@@ -98,6 +109,9 @@
                     grubefi_conf += " /%s" % rd
                 grubefi_conf += "\n"
 
+            if dtb:
+                grubefi_conf += "devicetree /%s\n" % dtb
+
             grubefi_conf += "}\n"
 
         logger.debug("Writing grubefi config %s/hdd/boot/EFI/BOOT/grub.cfg",
@@ -119,25 +133,18 @@
 
         bootloader = creator.ks.bootloader
 
+        unified_image = source_params.get('create-unified-kernel-image') == "true"
+
         loader_conf = ""
-        if source_params.get('create-unified-kernel-image') != "true":
+        if not unified_image:
             loader_conf += "default boot\n"
         loader_conf += "timeout %d\n" % bootloader.timeout
 
         initrd = source_params.get('initrd')
+        dtb = source_params.get('dtb')
 
-        if initrd and source_params.get('create-unified-kernel-image') != "true":
-            # obviously we need to have a common common deploy var
-            bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
-            if not bootimg_dir:
-                raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
-
-            initrds = initrd.split(';')
-            for rd in initrds:
-                cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
-                exec_cmd(cp_cmd, True)
-        else:
-            logger.debug("Ignoring missing initrd")
+        if not unified_image:
+            cls._copy_additional_files(hdddir, initrd, dtb)
 
         logger.debug("Writing systemd-boot config "
                      "%s/hdd/boot/loader/loader.conf", cr_workdir)
@@ -185,7 +192,10 @@
                 for rd in initrds:
                     boot_conf += "initrd /%s\n" % rd
 
-        if source_params.get('create-unified-kernel-image') != "true":
+            if dtb:
+                boot_conf += "devicetree /%s\n" % dtb
+
+        if not unified_image:
             logger.debug("Writing systemd-boot config "
                          "%s/hdd/boot/loader/entries/boot.conf", cr_workdir)
             cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w")
@@ -320,27 +330,36 @@
                         shutil.copyfileobj(in_file, initrd)
                 initrd.close()
 
+                dtb = source_params.get('dtb')
+                if dtb:
+                    if ';' in dtb:
+                        raise WicError("Only one DTB supported, exiting")
+                    dtb_params = '--add-section .dtb=%s/%s --change-section-vma .dtb=0x40000' % \
+                        (deploy_dir, dtb)
+                else:
+                    dtb_params = ''
+
                 # Searched by systemd-boot:
                 # https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images
                 install_cmd = "install -d %s/EFI/Linux" % hdddir
                 exec_cmd(install_cmd)
 
                 staging_dir_host = get_bitbake_var("STAGING_DIR_HOST")
+                target_sys = get_bitbake_var("TARGET_SYS")
 
                 # https://www.freedesktop.org/software/systemd/man/systemd-stub.html
-                objcopy_cmd = "objcopy \
-                    --add-section .osrel=%s --change-section-vma .osrel=0x20000 \
-                    --add-section .cmdline=%s --change-section-vma .cmdline=0x30000 \
-                    --add-section .linux=%s --change-section-vma .linux=0x2000000 \
-                    --add-section .initrd=%s --change-section-vma .initrd=0x3000000 \
-                    %s %s" % \
-                    ("%s/usr/lib/os-release" % staging_dir_host,
-                    cmdline.name,
-                    "%s/%s" % (staging_kernel_dir, kernel),
-                    initrd.name,
-                    efi_stub,
-                    "%s/EFI/Linux/linux.efi" % hdddir)
-                exec_cmd(objcopy_cmd)
+                objcopy_cmd = "%s-objcopy" % target_sys
+                objcopy_cmd += " --add-section .osrel=%s/usr/lib/os-release" % staging_dir_host
+                objcopy_cmd += " --change-section-vma .osrel=0x20000"
+                objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
+                objcopy_cmd += " --change-section-vma .cmdline=0x30000"
+                objcopy_cmd += dtb_params
+                objcopy_cmd += " --add-section .linux=%s/%s" % (staging_kernel_dir, kernel)
+                objcopy_cmd += " --change-section-vma .linux=0x2000000"
+                objcopy_cmd += " --add-section .initrd=%s" % initrd.name
+                objcopy_cmd += " --change-section-vma .initrd=0x3000000"
+                objcopy_cmd += " %s %s/EFI/Linux/linux.efi" % (efi_stub, hdddir)
+                exec_native_cmd(objcopy_cmd, native_sysroot)
         else:
             install_cmd = "install -m 0644 %s/%s %s/%s" % \
                 (staging_kernel_dir, kernel, hdddir, kernel)
diff --git a/poky/scripts/lib/wic/plugins/source/rootfs.py b/poky/scripts/lib/wic/plugins/source/rootfs.py
index 25bb41d..fc06312 100644
--- a/poky/scripts/lib/wic/plugins/source/rootfs.py
+++ b/poky/scripts/lib/wic/plugins/source/rootfs.py
@@ -35,7 +35,7 @@
     @staticmethod
     def __validate_path(cmd, rootfs_dir, path):
         if os.path.isabs(path):
-            logger.error("%s: Must be relative: %s" % (cmd, orig_path))
+            logger.error("%s: Must be relative: %s" % (cmd, path))
             sys.exit(1)
 
         # Disallow climbing outside of parent directory using '..',
diff --git a/poky/scripts/oe-setup-builddir b/poky/scripts/oe-setup-builddir
index 54048e6..5d64416 100755
--- a/poky/scripts/oe-setup-builddir
+++ b/poky/scripts/oe-setup-builddir
@@ -74,9 +74,10 @@
 if [ ! -r "$BUILDDIR/conf/local.conf" ]; then
     cat <<EOM
 You had no conf/local.conf file. This configuration file has therefore been
-created for you with some default values. You may wish to edit it to, for
-example, select a different MACHINE (target hardware). See conf/local.conf
-for more information as common configuration options are commented.
+created for you from $OECORELOCALCONF
+You may wish to edit it to, for example, select a different MACHINE (target
+hardware). See conf/local.conf for more information as common configuration
+options are commented.
 
 EOM
     cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf"
@@ -89,8 +90,9 @@
 if [ ! -r "$BUILDDIR/conf/bblayers.conf" ]; then
     cat <<EOM
 You had no conf/bblayers.conf file. This configuration file has therefore been
-created for you with some default values. To add additional metadata layers
-into your configuration please add entries to conf/bblayers.conf.
+created for you from $OECORELAYERCONF
+To add additional metadata layers into your configuration please add entries
+to conf/bblayers.conf.
 
 EOM
 
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/draw.py b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
index a13df3a..4326361 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/draw.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
@@ -88,6 +88,10 @@
 IO_PRESSURE_AVG10_COLOR = (0.0, 0.0, 0.0, 1.0)
 # delta total IO pressure color
 IO_PRESSURE_TOTAL_COLOR = IO_COLOR
+# avg10 memory pressure color
+MEM_PRESSURE_AVG10_COLOR = (0.0, 0.0, 0.0, 1.0)
+# delta total memory pressure color
+MEM_PRESSURE_TOTAL_COLOR = DISK_TPUT_COLOR
 
 
 
@@ -429,8 +433,10 @@
 
     # render CPU pressure chart
     if trace.cpu_pressure:
-        draw_legend_line(ctx, "avg10 CPU Pressure", CPU_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
-        draw_legend_box(ctx, "delta total CPU Pressure", CPU_PRESSURE_TOTAL_COLOR, off_x + 140, curr_y+20, leg_s)
+        max_sample_avg = max (trace.cpu_pressure, key = lambda s: s.avg10)
+        max_sample_total = max (trace.cpu_pressure, key = lambda s: s.deltaTotal)
+        draw_legend_line(ctx, "avg10 CPU Pressure (max %d%%)"  % (max_sample_avg.avg10), CPU_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
+        draw_legend_box(ctx, "delta total CPU Pressure (max %d)" % (max_sample_total.deltaTotal), CPU_PRESSURE_TOTAL_COLOR, off_x + 240, curr_y+20, leg_s)
 
         # render delta total cpu
         chart_rect = (off_x, curr_y+30, w, bar_h)
@@ -442,30 +448,31 @@
                     proc_tree, None)
 
         # render avg10 cpu
-        max_sample = max (trace.cpu_pressure, key = lambda s: s.avg10)
         if clip_visible (clip, chart_rect):
             draw_chart (ctx, CPU_PRESSURE_AVG10_COLOR, False, chart_rect, \
                     [(sample.time, sample.avg10) for sample in trace.cpu_pressure], \
                     proc_tree, None)
 
-        pos_x = off_x + ((max_sample.time - proc_tree.start_time) * w / proc_tree.duration)
+        pos_x = off_x + ((max_sample_avg.time - proc_tree.start_time) * w / proc_tree.duration)
 
         shift_x, shift_y = -20, 20
         if (pos_x < off_x + 245):
             shift_x, shift_y = 5, 40
 
 
-        label = "%d%%" % (max_sample.avg10)
+        label = "%d%%" % (max_sample_avg.avg10)
         draw_text (ctx, label, CPU_PRESSURE_AVG10_COLOR, pos_x + shift_x, curr_y + shift_y)
 
         curr_y = curr_y + 30 + bar_h
 
-    # render delta total io
+    # render I/O pressure chart
     if trace.io_pressure:
-        draw_legend_line(ctx, "avg10 I/O Pressure", IO_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
-        draw_legend_box(ctx, "delta total I/O Pressure", IO_PRESSURE_TOTAL_COLOR, off_x + 140, curr_y+20, leg_s)
+        max_sample_avg = max (trace.io_pressure, key = lambda s: s.avg10)
+        max_sample_total = max (trace.io_pressure, key = lambda s: s.deltaTotal)
+        draw_legend_line(ctx, "avg10 I/O Pressure (max %d%%)"  % (max_sample_avg.avg10), IO_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
+        draw_legend_box(ctx, "delta total I/O Pressure (max %d)" % (max_sample_total.deltaTotal), IO_PRESSURE_TOTAL_COLOR, off_x + 240, curr_y+20, leg_s)
 
-        # render avg10 io
+        # render delta total io
         chart_rect = (off_x, curr_y+30, w, bar_h)
         if clip_visible (clip, chart_rect):
             draw_box_ticks (ctx, chart_rect, sec_w)
@@ -474,24 +481,58 @@
                     [(sample.time, sample.deltaTotal) for sample in trace.io_pressure], \
                     proc_tree, None)
 
-        # render io pressure
-        max_sample = max (trace.io_pressure, key = lambda s: s.avg10)
+        # render avg10 io
         if clip_visible (clip, chart_rect):
             draw_chart (ctx, IO_PRESSURE_AVG10_COLOR, False, chart_rect, \
                     [(sample.time, sample.avg10) for sample in trace.io_pressure], \
                     proc_tree, None)
 
-        pos_x = off_x + ((max_sample.time - proc_tree.start_time) * w / proc_tree.duration)
+        pos_x = off_x + ((max_sample_avg.time - proc_tree.start_time) * w / proc_tree.duration)
 
         shift_x, shift_y = -20, 20
         if (pos_x < off_x + 245):
             shift_x, shift_y = 5, 40
 
-        label = "%d%%" % (max_sample.avg10)
+
+        label = "%d%%" % (max_sample_avg.avg10)
         draw_text (ctx, label, IO_PRESSURE_AVG10_COLOR, pos_x + shift_x, curr_y + shift_y)
 
         curr_y = curr_y + 30 + bar_h
 
+    # render MEM pressure chart
+    if trace.mem_pressure:
+        max_sample_avg = max (trace.mem_pressure, key = lambda s: s.avg10)
+        max_sample_total = max (trace.mem_pressure, key = lambda s: s.deltaTotal)
+        draw_legend_line(ctx, "avg10 MEM Pressure (max %d%%)"  % (max_sample_avg.avg10), MEM_PRESSURE_AVG10_COLOR, off_x, curr_y+20, leg_s)
+        draw_legend_box(ctx, "delta total MEM Pressure (max %d)" % (max_sample_total.deltaTotal), MEM_PRESSURE_TOTAL_COLOR, off_x + 240, curr_y+20, leg_s)
+
+        # render delta total mem
+        chart_rect = (off_x, curr_y+30, w, bar_h)
+        if clip_visible (clip, chart_rect):
+            draw_box_ticks (ctx, chart_rect, sec_w)
+            draw_annotations (ctx, proc_tree, trace.times, chart_rect)
+            draw_chart (ctx, MEM_PRESSURE_TOTAL_COLOR, True, chart_rect, \
+                    [(sample.time, sample.deltaTotal) for sample in trace.mem_pressure], \
+                    proc_tree, None)
+
+        # render avg10 mem
+        if clip_visible (clip, chart_rect):
+            draw_chart (ctx, MEM_PRESSURE_AVG10_COLOR, False, chart_rect, \
+                    [(sample.time, sample.avg10) for sample in trace.mem_pressure], \
+                    proc_tree, None)
+
+        pos_x = off_x + ((max_sample_avg.time - proc_tree.start_time) * w / proc_tree.duration)
+
+        shift_x, shift_y = -20, 20
+        if (pos_x < off_x + 245):
+            shift_x, shift_y = 5, 40
+
+
+        label = "%d%%" % (max_sample_avg.avg10)
+        draw_text (ctx, label, MEM_PRESSURE_AVG10_COLOR, pos_x + shift_x, curr_y + shift_y)
+
+        curr_y = curr_y + 30 + bar_h
+
     # render disk space usage
     #
     # Draws the amount of disk space used on each volume relative to the
@@ -775,7 +816,7 @@
         cmdString = proc.cmd
     else:
         cmdString = ''
-    if (OPTIONS.show_pid or OPTIONS.show_all) and ipid is not 0:
+    if (OPTIONS.show_pid or OPTIONS.show_all) and ipid != 0:
         cmdString = cmdString + " [" + str(ipid // 1000) + "]"
     if OPTIONS.show_all:
         if proc.args:
@@ -873,7 +914,7 @@
         if self.color is None:
             i = self.next() % HSV_MAX_MOD
             h = 0.0
-            if i is not 0:
+            if i != 0:
                 h = (1.0 * i) / HSV_MAX_MOD
             s = 0.5
             v = 1.0
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/parsing.py b/poky/scripts/pybootchartgui/pybootchartgui/parsing.py
index 004d6fb..362d515 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/parsing.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/parsing.py
@@ -51,6 +51,7 @@
         self.monitor_disk = None
         self.cpu_pressure = []
         self.io_pressure = []
+        self.mem_pressure = []
         self.times = [] # Always empty, but expected by draw.py when drawing system charts.
 
         if len(paths):
@@ -564,6 +565,8 @@
     pressure_stats = []
     if filename == "cpu.log":
         SamplingClass = CPUPressureSample
+    elif filename == "memory.log":
+        SamplingClass = MemPressureSample
     else:
         SamplingClass = IOPressureSample
     for time, lines in _parse_timed_blocks(file):
@@ -769,6 +772,8 @@
         state.cpu_pressure = _parse_pressure_logs(file, name)
     elif name == "io.log":
         state.io_pressure = _parse_pressure_logs(file, name)
+    elif name == "memory.log":
+        state.mem_pressure = _parse_pressure_logs(file, name)
     elif not filename.endswith('.log'):
         _parse_bitbake_buildstats(writer, state, filename, file)
     t2 = time.process_time()
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/samples.py b/poky/scripts/pybootchartgui/pybootchartgui/samples.py
index 472dc27..a70d8a5 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/samples.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/samples.py
@@ -53,6 +53,14 @@
         self.avg300 = avg300
         self.deltaTotal = deltaTotal
 
+class MemPressureSample:
+    def __init__(self, time, avg10, avg60, avg300, deltaTotal):
+        self.time = time
+        self.avg10 = avg10
+        self.avg60 = avg60
+        self.avg300 = avg300
+        self.deltaTotal = deltaTotal
+
 
 class MemSample:
     used_values = ('MemTotal', 'MemFree', 'Buffers', 'Cached', 'SwapTotal', 'SwapFree',)
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index b4c1ae6..b6fc212 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -1375,7 +1375,7 @@
             elif "-display sdl" in output:
                 self.sdl = True
             else:
-                self.qemu_opt += '-display none'
+                self.qemu_opt += ' -display none'
 
         if self.sdl == True or self.gtk == True or self.egl_headless == True: