subtree updates

meta-security: a397a38ed9..53c5cc794f:
  Anton Antonov (2):
        Fix PACKAGECONFIG check in Parsec OEQA tests
        Flush caches after OEQA tests

  Armin Kuster (6):
        checksecurity: update to 2.0.16
        krill: forced to inclued fetch hashes.
        suricata: Fixup to work within the recent crate changes.
        suricata: Missed on crate depends
        parsec-tool: update SRC_URI hash
        parsec-service: fix SRC_URI hash

  Gowtham Suresh Kumar (2):
        meta-parsec: Disable RSA-OAEP OEQA tests for Parsec PKCS11 backend
        parsec-service: Update parsec recipes to 1.2.0 and parsec-tool to 0.6.0

  Patrick Williams (1):
        libwhisker2-perl: adjust perl-version variable

meta-openembedded: 17243e70c8..c5f330bc9a:
  Alex Yao (3):
        lcov: Fix Perl Path
        lcov: Upgrade 1.14 -> 1.16
        lcov: Fix homepage

  Ari Parkkila (1):
        python3-appdirs: add native and nativesdk to BBCLASSEXTEND

  Arsalan H. Awan (1):
        meta-networking/licenses/netperf: remove unused license

  Bartosz Golaszewski (11):
        reboot-mode: put the build artifacts in ${B}
        libgpiod: enable all features for ptest
        libgpiod: drop unneeded S assignment
        libgpiod: generalize the local files directories
        libgpiod: update to v2.0.1
        python3-gpiod: don't hardcode the project version in recipe
        python3-gpiod: add missing run-time dependencies
        libgpiod: install the libgpiosim header
        python3-gpiod: fetch sources from pypi
        libgpiod: fold libgpiod-src.inc into libgpiod.inc
        libgpiod: remove test executables from ${bindir}

  Chen Qi (1):
        android-tools: fix systemd service setting

  Enrico Scholz (1):
        sox: remove ffmpeg dependency

  Etienne Cordonnier (4):
        uutils-coreutils: Add crates checksum
        uutils-coreutils: remove obsolete comment
        uutils-coreutils: upgrade 0.0.17 -> 0.0.18
        uutils-coreutils: disable musl support

  Ever ATILANO (4):
        meta-python: python3-path: Add ptest
        meta-python: python3-lorem: Add ptest
        meta-oe: recipes-support: dc: Add ptest
        meta-oe: recipes-extended: bitwise: Add ptest

  Gianfranco Costamagna (1):
        vbxguestdrivers: upgrade 7.0.4 -> 7.0.8

  Jasper Orschulko (1):
        python3-gcovr: Add missing runtime dependency

  Jayanth Othayoth (1):
        etcd-cpp-apiv3: add recipe

  Johannes Kirchmair (1):
        redirect unwanted error message in nginx install

  Johannes Pointner (1):
        python3-pyzstd: add new recipe

  Kai Kang (16):
        xfce4-taskmanager: 1.5.2 -> 1.5.5
        xfce4-terminal: 1.0.0 -> 1.0.4
        syslog-ng: not deliver syslog-ng-update-virtualenv
        xfce4-notifyd: 0.6.3 -> 0.8.2
        xfce4-screenshooter: 1.9.10 -> 1.10.3
        thunar: 4.18.0 -> 4.18.4
        thunar-media-tags-plugin: 0.3.0 -> 0.4.0
        libxfce4util: 4.18.0 -> 4.18.1
        libxfce4ui: 4.18.0 -> 4.18.3
        xfce4-settings: 4.18.0 -> 4.18.2
        xfce4-session: 4.18.0 -> 4.18.2
        xfce4-panel: 4.18.0 -> 4.18.3
        thunar-archive-plugin: 0.5.0 -> 0.5.1
        xfce4-power-manager: 4.18.0 -> 4.18.1
        garcon: 4.18.0 -> 4.18.1
        xfce4-screensaver: 4.16.0 -> 4.18.1

  Khem Raj (36):
        krb5: Fix build with autoconf 2.72
        cyrus-sasl: Fix autoconf patch to work with new autoconf 2.72
        gmime: Update to 3.2.13
        imagemagick: Update to 7.1.1
        mpv: Upgrade to 0.35.1
        fwknop: Use pkg-config instead of gpgme-config
        fwknop: Fix AS_IF configure syntax
        libstemmer: Update to 2.2.0
        libidn: Update largefile m4 macros
        emacs: Fix build with autconf 2.72+
        ptest-packagelists-meta-oe: Remove minicoredumper from PTESTS_FAST_META_OE on musl
        poco: Remove pushd/popd from run-ptest
        surf: Fix build with gtkwebkit 2.40
        libio-pty-perl: Fix build with musl/clang
        meta-gnome: Update patch status for several recipes
        libnet-ssleay-perl: Fix patch upstream status
        meta-xfce: Fix missing upstream status in patches
        meta-multimedia: Fix missing upstream status in several patches
        meta-webserver: Fix missing upstream status on patches
        babl: Drop clang10 workaround for mips/rv64
        babl: Package /usr/lib/babl-0.1/ directory
        libtinyxml2: Add ptest support
        ptest-packagelists-meta-oe: Add libtinyxml2
        minifi-cpp: Always use stat on 64bit linux
        libdnet: Upgrade to 1.16.3
        python3-pyruvate: regenerate with updated bbclass
        monkey,webmin: Fix upstream patch status
        python3-pyruvate: Upgrade to 1.2.1
        onig: Ignore .debug directories while finding ptests
        python3-h5py: Fix TMPDIR references in dbg files
        python3-pandas: Fix TMPDIR references in dbg files
        fwupd: Do not emit build time paths into generated headers
        libcereal: Fix TMPDIR leaking into debug_str section
        xmlrpc-c: Upgrade to 1.59.01
        grilo: Fix buildpaths in generated header file
        python3-click: Fix ptest failure

  Leon Anavi (2):
        libpcsc-perl: Add recipe
        pcsc-tools: Add runtime dependencies

  Linus Jacobson (1):
        khronos-cts: Replace wayland feature dependancy with vulkan

  Markus Volk (40):
        nv-codec-headers: add clean target to Makefile
        flatpak: update 1.15.3 -> 1.15.4
        libcamera: re-introduce fix for gcc-13
        polkit-gnome: add recipe
        eog: update 43.2 -> 44.0
        evince: update 43.1 -> 44.0
        gdm: update 43.0 -> 44.0
        gnome-calculator: update 43.0.1 -> 44.0
        gnome-calendar: update 43.1 -> 44.0
        gnome-desktop: update 43 -> 44.0
        gnome-disk-utility: update 43.0 -> 44.0
        gnome-font-viewer: update 43.0 -> 44.0
        gnome-online-accounts: update 3.46.0 -> 3.48.0
        gnome-photos: update 43.0 -> 44.0
        gnome-session: update 43.0 -> 44.0
        gnome-settings-daemon: update 43.0 -> 44.0
        gnome-shell-extensions: update 43.1 -> 44.0
        gnome-software: update 43.4 -> 44.0
        gnome-terminal: update 3.46.7 -> 3.48.0
        gnome-text-editor: update 43.1 -> 44.0
        tracker-miners: update 3.4.2 -> 3.5.0
        zenity: update 3.43.0 -> 3.44.0
        xdg-desktop-portal-gnome: update 43.1 -> 44.0
        gedit: update 43.2 -> 44.2
        evolution-data-server: build oauth with gtk+3
        file-roller: set cpio path manually
        libdecor: update 1.1.0 -> 1.1.99
        freerdp: set PROXY_PLUGINDIR
        libnfs: add recipe
        pipewire: update 0.3.67 -> 0.3.68
        iwd: update 2.3 -> 2.4
        mozjs: update 102.5.0 -> 102.9.0
        glibmm: fix reproducibility issues
        adw-gtk3: add recipe
        xdg-desktop-portal-wlr: update
        pipewire: remove 'inherit gsettings'
        polkit: update SRC_URI
        webp-pixbuf-loader: update 0.2.0 -> 0.2.4
        udisks2: add PACKAGECONFIGs for btrfs,lvm2 and lsm
        pipewire: update 0.3.68 -> 0.3.70

  Martin Jansa (7):
        zsh: fix installed-vs-shipped with multilib
        restinio: fix S variable in multilib builds
        mongodb: fix chown user for multilib builds
        pahole: respect libdir
        lvgl,lv-lib-png,lv-drivers: fix installed-vs-shipped QA issue with multilib
        dleyna-{server,renderer}: fix dev-so QA issue with multilib
        lirc: fix do_install with multilib

  Mingli Yu (2):
        mcelog: improve the ptest output
        php: Fix GCC 12 -Og

  Peter Johennecken (1):
        nginx: added packagegroup for webdav module

  Peter Kjellerstedt (5):
        python3-crc32c: Correct the license information
        paho-mqtt-cpp: Improve the license information
        autossh: Correct the license information
        paho-mqtt-c: Improve the license information
        recipes: Remove double protocol= from SRC_URIs

  Peter Marko (1):
        ntp: whitelist CVE-2019-11331

  Petr Gotthard (2):
        cockpit: upgrade 276 -> 289
        nftables: upgrade 1.0.6 -> 1.0.7

  Randolph Sapp (1):
        glfw: add packageconfig and wayland dependencies

  Steffen Trumtrar (3):
        openocd: 0.11->0.12
        openocd: fix jimtcl url
        openocd: enable jtag-vpi and buspirate

  Tim Orling (11):
        cli11: do not inherit ptest
        span-lite: do not inherit ptest
        ptest-packagelists-meta-oe.inc: add ptest recipes
        meta-oe-ptest*-image: enable BBCLASSEXTEND parallel execution
        ptest-packagelists-meta-python.inc: add ptest recipes
        meta-python-ptest*-image: enable BBCLASSEXTEND parallel execution
        python3-aspectlib: fix ptest
        ptest-packagelists-meta-perl.inc: add ptest recipes
        recipes-perl/packagegroups: move to recipes-core/
        recipes-perl/images: move to recipes-core
        meta-perl-ptest*-image: enable BBCLASSEXTEND parallel execution

  Ulrich Ölmann (1):
        jwt-cpp: enable usage in an SDK

  Valeria Petrov (1):
        apache2: upgrade 2.4.56 -> 2.4.57

  Virendra Thakur (2):
        p7zip: fix for CVE-2018-5996
        p7zip: Fix for CVE-2016-9296

  Wang Mingyu (117):
        abseil-cpp: upgrade 20230125.1 -> 20230125.2
        libbytesize: upgrade 2.7 -> 2.8
        gegl: upgrade 0.4.42 -> 0.4.44
        ctags: upgrade 6.0.20230319.0 -> 6.0.20230402.0
        libdeflate: upgrade 1.17 -> 1.18
        libldb: upgrade 2.7.1 -> 2.7.2
        ndisc6: upgrade 1.0.6 -> 1.0.7
        libpfm4: upgrade 4.12.0 -> 4.13.0
        libtraceevent: upgrade 1.7.1 -> 1.7.2
        nginx: upgrade 1.23.3 -> 1.23.4
        links: upgrade 2.28 -> 2.29
        python3-pyproj: upgrade 3.4.1 -> 3.5.0
        ostree: upgrade 2023.1 -> 2023.2
        openvpn: upgrade 2.6.1 -> 2.6.2
        python3-aenum: upgrade 3.1.11 -> 3.1.12
        python3-argcomplete: upgrade 3.0.0 -> 3.0.5
        python3-cassandra-driver: upgrade 3.25.0 -> 3.26.0
        python3-astroid: upgrade 2.15.0 -> 2.15.1
        python3-cmake: upgrade 3.26.0 -> 3.26.1
        python3-dateparser: upgrade 1.1.7 -> 1.1.8
        python3-google-api-python-client: upgrade 2.81.0 -> 2.83.0
        python3-elementpath: upgrade 4.0.1 -> 4.1.0
        python3-googleapis-common-protos: upgrade 1.58.0 -> 1.59.0
        python3-httplib2: upgrade 0.21.0 -> 0.22.0
        python3-google-auth: upgrade 2.16.2 -> 2.17.1
        python3-ipython: upgrade 8.11.0 -> 8.12.0
        python3-imageio: upgrade 2.26.0 -> 2.27.0
        python3-pychromecast: upgrade 13.0.4 -> 13.0.6
        python3-jdatetime: upgrade 4.1.0 -> 4.1.1
        python3-luma-oled: upgrade 3.11.0 -> 3.12.0
        python3-pydantic: upgrade 1.10.6 -> 1.10.7
        python3-pymodbus: upgrade 3.2.1 -> 3.2.2
        python3-pymisp: upgrade 2.4.169.2 -> 2.4.169.3
        python3-pywbemtools: upgrade 1.1.1 -> 1.2.0
        python3-redis: upgrade 4.5.1 -> 4.5.4
        python3-regex: upgrade 2022.10.31 -> 2023.3.23
        python3-typeguard: upgrade 3.0.1 -> 3.0.2
        python3-sentry-sdk: upgrade 1.17.0 -> 1.18.0
        python3-rich: upgrade 13.3.2 -> 13.3.3
        python3-watchdog: upgrade 2.3.1 -> 3.0.0
        feh: upgrade 3.9.1 -> 3.10
        c-periphery: upgrade 2.3.1 -> 2.4.0
        grilo-plugins: upgrade 0.3.15 -> 0.3.16
        hwdata: upgrade 0.368 -> 0.369
        hwloc: upgrade 2.9.0 -> 2.9.1
        libconfig-tiny-perl: upgrade 2.28 -> 2.29
        mg: upgrade 20221112 -> 20230406
        python3-pillow: upgrade 9.4.0 -> 9.5.0
        python3-websockets: upgrade 10.4 -> 11.0.1
        poppler: upgrade 23.03.0 -> 23.04.0
        python3-alembic: upgrade 1.10.2 -> 1.10.3
        python3-astroid: upgrade 2.15.1 -> 2.15.2
        python3-coverage: upgrade 7.2.2 -> 7.2.3
        python3-google-api-python-client: upgrade 2.83.0 -> 2.84.0
        python3-google-auth: upgrade 2.17.1 -> 2.17.2
        python3-imgtool: upgrade 1.9.0 -> 1.10.0
        python3-pychromecast: upgrade 13.0.6 -> 13.0.7
        python3-simplejson: upgrade 3.18.4 -> 3.19.1
        python3-networkx: upgrade 3.0 -> 3.1
        tesseract: upgrade 5.3.0 -> 5.3.1
        python3-zeroconf: upgrade 0.47.4 -> 0.55.0
        python3-web3: upgrade 6.0.0 -> 6.1.0
        python3-sqlalchemy: upgrade 2.0.7 -> 2.0.9
        python3-sentry-sdk: upgrade 1.18.0 -> 1.19.1
        hdf5: Fix install conflict when enable multilib.
        capnproto: upgrade 0.10.3 -> 0.10.4
        ctags: upgrade 6.0.20230402.0 -> 6.0.20230416.0
        mctp: upgrade 1.0 -> 1.1
        php: upgrade 8.2.4 -> 8.2.5
        openvpn: upgrade 2.6.2 -> 2.6.3
        python3-croniter: upgrade 1.3.8 -> 1.3.14
        python3-diskcache: upgrade 5.4.0 -> 5.5.1
        python3-cmake: upgrade 3.26.1 -> 3.26.3
        python3-elementpath: upgrade 4.1.0 -> 4.1.1
        python3-google-api-python-client: upgrade 2.84.0 -> 2.85.0
        python3-google-auth: upgrade 2.17.2 -> 2.17.3
        python3-protobuf: upgrade 4.22.1 -> 4.22.3
        python3-web3: upgrade 6.1.0 -> 6.2.0
        python3-rich: upgrade 13.3.3 -> 13.3.4
        python3-pymisp: upgrade 2.4.169.3 -> 2.4.170
        python3-xlsxwriter: upgrade 3.0.9 -> 3.1.0
        python3-zeroconf: upgrade 0.55.0 -> 0.56.0
        remmina: upgrade 1.4.29 -> 1.4.30
        tbb: upgrade 2021.8.0 -> 2021.9.0
        sip: upgrade 6.7.7 -> 6.7.8
        tcpdump: upgrade 4.99.3 -> 4.99.4
        tcsh: upgrade 6.24.07 -> 6.24.10
        evolution-data-server: upgrade 3.48.0 -> 3.48.1
        babl: upgrade 0.1.102 -> 0.1.104
        gensio: upgrade 2.6.2 -> 2.6.4
        libopus: upgrade 1.3.1 -> 1.4
        network-manager-applet: upgrade 1.30.0 -> 1.32.0
        networkmanager: upgrade 1.42.4 -> 1.42.6
        opencl-headers: upgrade 2023.02.06 -> 2023.04.17
        c-periphery: upgrade 2.4.0 -> 2.4.1
        mbw: upgrade 1.5 -> 2.0
        libmodule-build-tiny-perl: upgrade 0.039 -> 0.043
        python3-periphery: upgrade 2.3.0 -> 2.4.1
        python3-astroid: upgrade 2.15.2 -> 2.15.3
        python3-diskcache: upgrade 5.5.1 -> 5.6.1
        python3-engineio: upgrade 4.4.0 -> 4.4.1
        python3-soupsieve: upgrade 2.4 -> 2.4.1
        python3-google-api-python-client: upgrade 2.85.0 -> 2.86.0
        python3-mock: upgrade 5.0.1 -> 5.0.2
        python3-pyalsaaudio: upgrade 0.9.2 -> 0.10.0
        python3-icu: upgrade 2.10.2 -> 2.11
        python3-pymisp: upgrade 2.4.170 -> 2.4.170.1
        python3-python-vlc: upgrade 3.0.18121 -> 3.0.18122
        python3-sentry-sdk: upgrade 1.19.1 -> 1.20.0
        python3-pyscaffold: upgrade 4.4 -> 4.4.1
        python3-websockets: upgrade 11.0.1 -> 11.0.2
        python3-tornado: upgrade 6.2 -> 6.3
        redis: upgrade 7.0.10 -> 7.0.11
        python3-xmlschema: upgrade 2.2.2 -> 2.2.3
        samba: upgrade 4.18.1 -> 4.18.2
        ser2net: upgrade 4.3.11 -> 4.3.12
        sip: upgrade 6.7.8 -> 6.7.9

  Wentao Zhang (2):
        jemalloc: include the missing shell scripts and source the corresponds shell scripts for some test cases.
        nss: fix failed test of nss.

  Wolfgang Meyer (2):
        qrencode: add PACKAGECONFIG for command line tools
        qrencode: enable native build

  Yi Zhao (1):
        samba: upgrade 4.18.0 -> 4.18.1

  Yogita Urade (1):
        dlt-daemon: fix CVE-2023-26257

  Zoltán Böszörményi (2):
        hplip: Fix installation and QA
        libgusb: Allow building in native mode

poky: 0907793d5e..cce6db2a59:
  Alex Kiernan (2):
        cargo_common.bbclass: Support local github repos
        rust: Upgrade 1.68.1 -> 1.68.2

  Alexander Kanavin (5):
        rust: do not run separate build/install steps
        rust: install llvm item only once
        rust: update 1.67.1 -> 1.68.1
        ffmpeg: update 5.1.2 -> 6.0
        meta/recipes: ensure all recipes have a SUMMARY

  Arslan Ahmad (1):
        kernel-fitimage: Fix the default dtb config check

  Bartosz Golaszewski (5):
        python3-pyproject-hooks: add missing run-time dependencies
        python3-packaging: add missing run-time dependencies
        python3-manifest: add tomllib
        python3-manifest: add ensurepip
        python3-build: add missing run-time dependencies

  Bruce Ashfield (7):
        kernel: improve initramfs bundle processing time
        linux-yocto/6.1: update to v6.1.23
        linux-yocto/5.15: update to v5.15.106
        linux-yocto/6.1: update to v6.1.24
        linux-yocto/5.15: update to v5.15.107
        linux-yocto/6.1: update to v6.1.25
        linux-yocto/5.15: update to v5.15.108

  Chen Qi (1):
        bitbake: runqueue: fix PSI check calculation

  Chris Elledge (1):
        busybox: move hwclock init earlier in startup

  Denys Dmytriyenko (2):
        xz: upgrade 5.4.1 -> 5.4.2
        grep: upgrade 3.9 -> 3.10

  Dit Kozmaj (2):
        wic: use part_name when defined
        selftest: wic: Add test for --part-name argument

  Dmitry Baryshkov (1):
        linux-firmware: upgrade 20230210 -> 20230404

  Enrico Jörns (10):
        oeqa/selftest/cases/runqemu: update imports
        oeqa/targetcontrol: fix misspelled RuntimeError
        oeqa/targetcontrol: do not set dump_host_cmds redundantly
        oeqa/targetcontrol: remove unused imports
        oeqa/utils/commands: fix usage of undefined EPIPE
        oeqa/utils/commands: remove unused imports
        oeqa/utils/qemurunner: replace hard-coded user 'root' in debug output
        oeqa/utils/qemurunner: limit precision of timing debugging output
        oeqa/utils/qemurunner: fix undefined TimeoutExpired
        oeqa: whitespace and indentation cleanups

  Enrico Scholz (2):
        bitbake: fetch2/crate: create versioned 'name' entries
        bitbake: cooker: do not abort on single ctrl-c

  Fabio Estevam (1):
        u-boot: Upgrade to 2023.04

  Frank WOLFF (1):
        logrotate: add ptest support

  Frederic Martinsons (6):
        cargo_common.bbclass: add support of user in url for patch
        devtool: add support for multiple git url inside a cargo based recipe
        patch: support of git patches when the source uri contained subpath parameter
        meta-selftest: provide a recipe for zvariant
        cargo-update-recipe-crates: force name overrides
        bitbake: fetch2: Display all missing checksum at once

  Geoffrey GIRY (1):
        cve-extra-exclusions: ignore inapplicable linux-yocto CVEs

  Jan Vermaete (1):
        cve-update-nvd2-native: added the missing http import

  Kai Kang (2):
        libnotify: remove dependency dbus
        bitbake: bitbake: ConfHandler: Allow variable flag name with a single character

  Khem Raj (16):
        e2fsprogs: Define 64bit off_t on rv32
        ffmpeg: Disable asm and rvv on riscv32
        cargo: Fix build on musl/riscv
        musl: Update to latest trunk
        systemd: Refresh a musl patch to remove patch-fuzz with 253.3
        musl-locales: Add Canadian French (fr_CA) locale support
        gawk: Disable known ptest fails on musl
        gawk: Remove redundant patch
        gawk: Add skipped.txt to emit test to ignore
        libxml2: Disable icu tests on musl
        apt-util: Fix ptest on musl
        lua: Disable locale dependent tests on musl
        attr: Disable attr.test on musl
        acl: Disable misc.test on musl
        fts: Fix typo in summary
        m4: Do not munge locale in ptests for musl

  Lee Chee Yang (2):
        migration-guides: add release-notes for 4.0.9
        release-notes-4.2: update RC3 changes

  Luca Ceresoli (1):
        devicetree.bbclass: fix typo

  Marek Vasut (1):
        cpio: Fix wrong CRC with ASCII CRC for large files

  Mark Asselstine (2):
        oeqa/selftest/bblogging: uncomment python stdout checks
        python3-psutil: fix-up -tests runtime dependencies

  Mark Hatle (1):
        sanity.bbclass: Update minimum gcc version to 8.0

  Markus Volk (1):
        at-spi2-core: update 2.46.0 -> 2.48.0

  Marta Rybczynska (1):
        cve-update-nvd2-native: new CVE database fetcher

  Martin Jansa (8):
        selftest: imagefeatures.py: don't mix tabs and spaces for indentation
        selftest: runqemu: better check for ROOTFS: in the log
        selftest: runqemu: use better error message when asserts fail
        runqemu: respect IMAGE_LINK_NAME
        python3-cryptography-crates.inc: regenerate with updated bbclass
        python3-bcrypt-crates.inc: regenerate with updated bbclass
        selftest: efibootpartition.py: fix QEMU_USE_KVM usage
        populate_sdk_ext.bbclass: set METADATA_REVISION with an DISTRO override

  Michael Opdenacker (20):
        manuals: update disk space requirements
        manuals: add rm_work disk space data
        manuals: add minimum RAM requirements
        ref-manual: release-process.rst: update testing section
        ref-manual: release-process.rst: major updates
        manuals: add "LTS" term
        manuals: improve and fix target for supported distros
        ref-manual: variables: document VOLATILE_TMP_DIR
        migration-guides: update 4.2 migration and release notes
        ref-manual: classes.rst: document devicetree.bbclass
        ref-manual: remove unused and obsolete file
        ref-manual: variables.rst: add wikipedia shortcut for "getty"
        overview-manual: update section about source archives
        manuals: document SPDX_CUSTOM_ANNOTATION_VARS
        overview-manual: development-environment: update text and screenshots
        ref-manual: add "Mixin" term
        migration-guides: release-notes-4.0.9.rst: add missing SPDX info
        migration-guides: fixes and improvements to 4.2 release notes
        manuals: expand init manager documentation
        ref-manual: variables.rst: document KERNEL_DANGLING_FEATURES_WARN_ONLY

  Mikko Rapeli (2):
        oeqa ping.py: avoid busylooping failing ping command
        oeqa ping.py: fail test if target IP address has not been set

  Mingli Yu (3):
        report-error: catch Nothing PROVIDES error
        bitbake: event: add bb.event.ParseError
        report-error: make it catch ParseError error

  Ola x Nilsson (2):
        patch.py: Use shlex instead of deprecated pipe
        package: Use shlex instead of deprecated pipe

  Pascal Bach (1):
        cmake: add CMAKE_SYSROOT to generated toolchain file

  Paul Eggleton (20):
        bitbake: bitbake-user-manual: document BB_CACHEDIR
        bitbake: bitbake-user-manual: add addpylib and BB_GLOBAL_PYMODULES
        bitbake: bitbake-user-manual: add BB_HASH_CODEPARSER_VALS
        ref-manual: add new SDK_ZIP_OPTIONS variable
        ref-manual: Add new RUST_CHANNEL variable
        ref-manual: update for IMAGE_MACHINE_SUFFIX addition
        dev/ref-manual: Remove references to INC_PR
        ref-manual: add BB_CACHEDIR
        migration-guides: Add coverage of addpylib directive
        ref-manual: Remove references to package_tar class
        ref-manual: add missing QA checks from previous releases
        ref-manual: document new patch-status-* QA checks
        ref-manual: add FIT_CONF_DEFAULT_DTB
        ref-manual: add section link also to buildtools-extended entry
        ref-manual: add SDK_ARCHIVE_TYPE
        ref-manual: move Initramfs entry from variables to terms
        dev/ref-manual: Document INIT_MANAGER
        migration-guides: extend migration guide for 4.2
        release-notes-4.1: fix some CVE links
        release-notes-4.2: add release notes

  Pavel Zhukov (2):
        scripts/rpm2cpio.sh: Use bzip2 instead of bunzip2
        scripts/runqemu: Add possibility to disable network

  Pawan Badganchi (1):
        tiff: Add fix for CVE-2022-4645

  Peter Kjellerstedt (1):
        cargo-update-recipe-crates.bbclass: Do not add name= to crate:// URIs

  Petr Kubizňák (12):
        harfbuzz: depend on glib-2.0-native
        json-glib: depend on glib-2.0-native
        libgudev: depend on glib-2.0-native
        at-spi2-core: depend on glib-2.0-native
        avahi: add missing dependencies
        graphene: add gobject-types PACKAGECONFIG
        python3-pygobject: depend on gobject-introspection
        gconf: add missing dependencies
        webkitgtk: add missing dependencies
        libnotify: depend on glib-2.0-native
        vte: depend on glib-2.0-native
        gobject-introspection: reduce dependencies

  Piotr Łobacz (1):
        libarchive: Enable acls, xattr for native as well as target

  Qiu Tingting (1):
        coreutils: Delete gcc sysroot parameter for ptest on target

  Randolph Sapp (1):
        wic/bootimg-efi: if fixed-size is set then use that for mkdosfs

  Richard Purdie (11):
        oeqa/loader: Ensure module names don't contain uppercase characters
        zvariant: Exclude from world for now to avoid reproducibility issues
        xdg-utils: Add a patch for CVE-2020-27748
        cve-extra-exclusions.inc: Exclude some issues not present in linux-yocto
        xdg-utils: Fix CVE number
        bitbake: bitbake: Bump to version 2.4.0
        build-appliance-image: Update to master head revision
        poky.conf: Bump version for 4.2 mickledore release
        build-appliance-image: Update to master head revision
        build-appliance-image: Update to master head revision
        cve-exclusions: Document some further linux-yocto CVE statuses

  Ross Burton (11):
        llvm: remove redundant CMake variables
        libgit2: clean up CMake variables
        webkitgtk: clean up Python variables
        oeqa/runtime: clean up deprecated backslash expansion
        classes-recipe/setuptools3-base: clean up FILES assignments
        bind: don't package non-existant .la files into -staticdev
        gstreamer1.0-plugins: package the internal libraries explicitly
        Increase minimum GCC version to 8.0
        machine/qemuarm*: don't explicitly set vmalloc
        screen: backport fix for CVE-2023-24626
        go: backport fix for CVE-2023-24537

  Soumya (1):
        shadow: Fix can not print full login timeout message

  Svend Meyland Nicolaisen (1):
        bitbake: npmsw fetcher: Avoid instantiating Fetch class if url list is empty

  Thomas De Schampheleire (3):
        qemu: make tracetool-generated output reproducible
        qemu: retain default trace backend if 'ust' is not enabled
        qemu: rename deprecated --enable-trace-backend configure option

  Thomas Roos (2):
        oeqa/selftest: Use SSTATE_DIR of parent build dir
        oeqa/utils/metadata.py: Fix running oe-selftest running with no distro set

  Tobias Hagelborn (1):
        lib/oe/gpg_sign.py: Avoid race when creating .sig files in detach_sign

  Ulrich Ölmann (3):
        kernel-dev: fix typos
        ref-manual: classes.rst: fix typo
        bitbake: bitbake-user-manual: fix BB_RUNFMT's default value

  Wang Mingyu (46):
        apr: upgrade 1.7.2 -> 1.7.3
        bind: upgrade 9.18.12 -> 9.18.13
        cracklib: upgrade 2.9.10 -> 2.9.11
        libhandy: upgrade 1.8.1 -> 1.8.2
        libpcap: upgrade 1.10.3 -> 1.10.4
        libsdl2: upgrade 2.26.3 -> 2.26.5
        libsoup: upgrade 3.2.2 -> 3.4.0
        mpg123: upgrade 1.31.2 -> 1.31.3
        acpica: upgrade 20220331 -> 20230331
        ccache: upgrade 4.7.4 -> 4.8
        libcap: upgrade 2.67 -> 2.68
        man-pages: upgrade 6.03 -> 6.04
        mtools: upgrade 4.0.42 -> 4.0.43
        pango: upgrade 1.50.13 -> 1.50.14
        ruby: upgrade 3.2.1 -> 3.2.2
        spirv-headers: upgrade 1.3.239.0 -> 1.3.243.0
        spirv-tools: upgrade 1.3.239.0 -> 1.3.243.0
        sqlite3: upgrade 3.41.0 -> 3.41.2
        texinfo: upgrade 7.0.2 -> 7.0.3
        wayland: upgrade 1.21.0 -> 1.22.0
        wpebackend-fdo: upgrade 1.14.0 -> 1.14.2
        xserver-xorg: upgrade 21.1.7 -> 21.1.8
        xwayland: upgrade 22.1.8 -> 23.1.1
        vala: upgrade 0.56.4 -> 0.56.6
        python3-cython: upgrade 0.29.33 -> 0.29.34
        python3-hypothesis: upgrade 6.68.2 -> 6.71.0
        python3-importlib-metadata: upgrade 6.0.0 -> 6.2.0
        python3-installer: upgrade 0.6.0 -> 0.7.0
        python3-markdown: upgrade 3.4.1 -> 3.4.3
        python3-pathspec: upgrade 0.11.0 -> 0.11.1
        python3-pygobject: upgrade 3.42.2 -> 3.44.1
        python3-pyopenssl: upgrade 23.0.0 -> 23.1.1
        python3-pytz: upgrade 2022.7.1 -> 2023.3
        python3-setuptools: upgrade 67.6.0 -> 67.6.1
        mesa: upgrade 23.0.0 -> 23.0.2
        systemd: upgrade 253.1 -> 253.3
        libgit2: upgrade 1.6.3 -> 1.6.4
        libsolv: upgrade 0.7.23 -> 0.7.24
        libxml2: upgrade 2.10.3 -> 2.10.4
        boost: upgrade 1.81.0 -> 1.82.0
        ofono: upgrade 2.0 -> 2.1
        python3-dtschema: upgrade 2023.1 -> 2023.4
        python3-packaging: upgrade 23.0 -> 23.1
        python3-pytest: upgrade 7.2.2 -> 7.3.1
        stress-ng: upgrade 0.15.06 -> 0.15.07
        gdb: Fix conflict of sframe-spec.info

  Wentao Zhang (1):
        python3: Fix failing sysconfig.py test on x86(64 bit) using lib64 as baselib by updating test_sysconfig for posix_user purelib

  Xiangyu Chen (1):
        shadow: backport patch to fix CVE-2023-29383

  Yoann Congal (4):
        cve-extra-exclusions: ignore inapplicable linux-yocto CVEs
        cve-exclusions_6.1: ignore patched CVE-2022-38457 & CVE-2022-40133
        cve-extra-exclusion: ignore disputed CVE-2023-23005
        cve-extra-exclusions: linux-yocto: ignore fixed CVE-2023-1652 & CVE-2023-1829

  Zhixiong Chi (1):
        libpam: Fix the xtests/tst-pam_motd[1|3] failures

  bkylerussell@gmail.com (1):
        kernel-devsrc: depend on python3-core instead of python3

meta-raspberrypi: 3afdbbf782..bf948e0aa8:
  Jesse Visser (2):
        recipe-bsp: Add support for Raspberry Pi Camera Module v3
        docs: Update extra build config Raspberry Pi Camera Module section

  Rodrigo M. Duarte (1):
        python3-adafruit-blinka: Fix the correct python recipes path in dynamic-layer sub-dir

meta-arm: 9b6c8c95e4..c60d7865dd:
  Adam Johnston (3):
        arm-bsp/optee: Update OP-TEE TA devkit to 3.20 for N1SDP
        CI: Remove ts-smm-gateway from N1SDP
        arm-bsp/trusted-firmware-a: Update N1SDP to v2.8.0

  Denys Dmytriyenko (4):
        optee-os-tadevkit: remove old unused patches
        optee-client: add 3.20.0 version
        optee-test: add 3.20.0 version
        optee-examples: add 3.20.0 version

  Emekcan Aras (4):
        arm-bsp/trusted-firmware-m: apply patches correctly from external repos
        arm-bsp/trusted-firmware-m: Switch to TF-M BL1 in Corstone1000
        arm-bsp/corstone1000: add OTP config for fvp
        arm-bsp/trusted-firmware-m: Increase assets number for corstone1000

  Jon Mason (8):
        CI: dev kernel allow failure
        arm/linux-yocto: remove IP_VS config fragment
        CI: update to the latest kas version
        CI: track mickledore branch
        arm-bsp/tc1: Fix signed u-boot
        arm-bsp/tc1: Add FVP support
        arm/trusted-firmware-m-scripts: relocate to tfm directory
        arm-bsp/tc1: disable signed kernel image

  Peter Hoyes (1):
        arm/scp-firmware: Add support for components other than SCP, MCP

  Ross Burton (8):
        arm/scp-firmware: add recipe for 2.11
        arm-bsp/scp-firmware: move all machines to SCP 2.11
        arm/scp-firmware: remove 2.10 recipe
        arm/trusted-firmware-m: add the tf-m-extras repository that some machines need
        arm/trusted-firmware-m: clean up environment flags
        arm/trusted-firmware-m: package .elf files in PN-dbg
        arm-bsp/trusted-firmware-m: enable for Total Compute on RSS
        CI: add TF-M to TC build

  Rui Miguel Silva (1):
        arm-bsp/corstone1000: tf-m set/get fwu, private metadata using gpt

  Xueliang Zhong (3):
        arm-bsp/n1sdp-board-firmware: update to newer SHA
        arm-bsp/optee-os: N1SDP support for optee-os 3.20
        arm-bsp/n1sdp: use edk2-firmware 202211 version

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I68eb48f27b781da34c4a7636f9b3bb1507b46416
diff --git a/meta-arm/.gitlab-ci.yml b/meta-arm/.gitlab-ci.yml
index 28d0cc1..df1f0f5 100644
--- a/meta-arm/.gitlab-ci.yml
+++ b/meta-arm/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: ghcr.io/siemens/kas/kas:3.2
+image: ghcr.io/siemens/kas/kas:3.2.3
 
 variables:
   CPU_REQUEST: ""
@@ -42,9 +42,21 @@
   extends: .setup
   variables:
     KUBERNETES_CPU_REQUEST: $CPU_REQUEST
-  only:
-    variables:
-      - $BUILD_ENABLE_REGEX == null || $CI_JOB_NAME =~ $BUILD_ENABLE_REGEX
+  rules:
+    # Don't run MR pipelines
+    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+      when: never
+    # Don't run pipelines for tags
+    - if: $CI_COMMIT_TAG
+      when: never
+    # Don't run if BUILD_ENABLE_REGEX is set, but the job doesn't match the regex
+    - if: '$BUILD_ENABLE_REGEX != null && $CI_JOB_NAME !~ $BUILD_ENABLE_REGEX'
+      when: never
+    # Allow the dev kernels to fail and not fail the overall build
+    - if: '$KERNEL == "linux-yocto-dev"'
+      allow_failure: true
+    # Catch all for everything else
+    - if: '$KERNEL != "linux-yocto-dev"'
   script:
     - KASFILES=$(./ci/jobs-to-kas "$CI_JOB_NAME")
     - kas dump --update --force-checkout --resolve-refs --resolve-env $KASFILES 
@@ -207,6 +219,9 @@
 
 tc1:
   extends: .build
+  parallel:
+    matrix:
+      - TESTING: testimage
   tags:
     - x86_64
 
diff --git a/meta-arm/ci/base.yml b/meta-arm/ci/base.yml
index 23fb7cc..a724db6 100644
--- a/meta-arm/ci/base.yml
+++ b/meta-arm/ci/base.yml
@@ -5,7 +5,7 @@
 
 defaults:
   repos:
-    refspec: master
+    refspec: mickledore
 
 repos:
   meta-arm:
diff --git a/meta-arm/ci/fvps.yml b/meta-arm/ci/fvps.yml
index e3bc5fe5a..58c29d5 100644
--- a/meta-arm/ci/fvps.yml
+++ b/meta-arm/ci/fvps.yml
@@ -13,7 +13,8 @@
 
 target:
   - nativesdk-fvp-base-a-aem
-  - nativesdk-fvp-n1-edge
-  - nativesdk-fvp-sgi575
   - nativesdk-fvp-corstone500
   - nativesdk-fvp-corstone1000
+  - nativesdk-fvp-n1-edge
+  - nativesdk-fvp-sgi575
+  - nativesdk-fvp-tc1
diff --git a/meta-arm/ci/meta-virtualization.yml b/meta-arm/ci/meta-virtualization.yml
index 1cd0e21..8791fc3 100644
--- a/meta-arm/ci/meta-virtualization.yml
+++ b/meta-arm/ci/meta-virtualization.yml
@@ -6,3 +6,4 @@
 repos:
   meta-virtualization:
     url: git://git.yoctoproject.org/meta-virtualization
+    refspec: master
diff --git a/meta-arm/ci/n1sdp.yml b/meta-arm/ci/n1sdp.yml
index 797a522..f688307 100644
--- a/meta-arm/ci/n1sdp.yml
+++ b/meta-arm/ci/n1sdp.yml
@@ -4,3 +4,7 @@
     - ci/base.yml
 
 machine: n1sdp
+
+local_conf_header:
+  unsupported_trusted_services: |
+    MACHINE_FEATURES:remove = "ts-smm-gateway"
diff --git a/meta-arm/ci/tc1.yml b/meta-arm/ci/tc1.yml
index fd9acbd..f2de9a4 100644
--- a/meta-arm/ci/tc1.yml
+++ b/meta-arm/ci/tc1.yml
@@ -2,8 +2,11 @@
   version: 11
   includes:
     - ci/base.yml
+    - ci/fvp.yml
+    - ci/meta-openembedded.yml
 
 machine: tc1
 
 target:
-  - tc-artifacts-image
+  - core-image-minimal
+  - trusted-firmware-m
diff --git a/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf b/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
index ca89c70..03577b8 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
@@ -29,6 +29,7 @@
 FVP_CONFIG[diagnostics] ?= "4"
 FVP_CONFIG[disable_visualisation] ?= "true"
 FVP_CONFIG[se.nvm.update_raw_image] ?= "0"
+FVP_CONFIG[se.cryptocell.USER_OTP_FILTERING_DISABLE] ?= "1"
 
 # Boot image
 FVP_DATA ?= "board.flash0=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.wic@0x68000000"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/include/tc.inc b/meta-arm/meta-arm-bsp/conf/machine/include/tc.inc
index f51497d..f7a1cfa 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/include/tc.inc
+++ b/meta-arm/meta-arm-bsp/conf/machine/include/tc.inc
@@ -11,16 +11,6 @@
 UBOOT_RD_ENTRYPOINT = "0x88000000"
 UBOOT_LOADADDRESS = "0x80080000"
 UBOOT_ENTRYPOINT = "0x80080000"
-# Below options will generate a key to sign the kernel Image and INITRAMFS_IMAGE
-# according to the default parameters of kernel-fitimage.bbclass. If the user
-# would prefer to use their own keys, disable the key generation using the
-# FIT_GENERATE_KEYS parameter and specify the location of the keys using the
-# below paramters.
-UBOOT_SIGN_ENABLE = "1"
-UBOOT_MKIMAGE_DTCOPTS = "-I dts -O dtb"
-UBOOT_SIGN_KEYNAME = "dev_key"
-UBOOT_SIGN_KEYDIR = "${DEPLOY_DIR_IMAGE}/keys"
-FIT_GENERATE_KEYS = "1"
 
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-arm64-ack"
 
@@ -38,3 +28,8 @@
 INITRAMFS_IMAGE ?= "core-image-minimal"
 
 SERIAL_CONSOLES = "115200;ttyAMA0"
+
+EXTRA_IMAGEDEPENDS += "trusted-firmware-a optee-os"
+# FIXME - there is signed image dependency/race with testimage.
+# This should be fixed in oe-core
+TESTIMAGEDEPENDS:append = " virtual/kernel:do_deploy"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf b/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
index 0e047e8..16b4098 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
@@ -29,9 +29,10 @@
 
 #UEFI EDK2 firmware
 EXTRA_IMAGEDEPENDS += "edk2-firmware"
+PREFERRED_VERSION_edk2-firmware ?= "202211"
 
 #optee
-PREFERRED_VERSION_optee-os ?= "3.18.%"
+PREFERRED_VERSION_optee-os ?= "3.20.%"
 
 #grub-efi
 EFI_PROVIDER ?= "grub-efi"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/tc1.conf b/meta-arm/meta-arm-bsp/conf/machine/tc1.conf
index 42c5d8d..f99bfd2 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/tc1.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/tc1.conf
@@ -5,3 +5,27 @@
 #@DESCRIPTION: Machine configuration for TC1
 
 require conf/machine/include/tc.inc
+
+TEST_TARGET = "OEFVPSerialTarget"
+TEST_SUITES = "linuxboot"
+
+# FVP Config
+FVP_PROVIDER ?= "fvp-tc1-native"
+FVP_EXE ?= "FVP_TC1"
+
+# FVP Parameters
+FVP_CONFIG[css.scp.ROMloader.fname] ?= "${DEPLOY_DIR_IMAGE}/scp_romfw.bin"
+FVP_CONFIG[css.trustedBootROMloader.fname] ?= "${DEPLOY_DIR_IMAGE}/bl1-tc.bin"
+FVP_CONFIG[board.flashloader0.fname] ?= "${DEPLOY_DIR_IMAGE}/fip_gpt-tc.bin"
+
+#FVP_CONFIG[board.hostbridge.userNetworking] ?= "true"
+#FVP_CONFIG[board.hostbridge.userNetPorts] ?= "8022=22"
+#smsc ethernet takes a very long time to come up.  disable now to prevent testimage timeout
+#FVP_CONFIG[board.smsc_91c111.enabled] ?= "1"
+
+FVP_CONSOLE = "terminal_s1"
+FVP_TERMINALS[soc.terminal_s0] ?= "Secure Console"
+FVP_TERMINALS[soc.terminal_s1] ?= "Console"
+
+# Boot image
+FVP_DATA ?= "board.dram=${DEPLOY_DIR_IMAGE}/fitImage-core-image-minimal-tc1-tc1@0x20000000"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/images/n1sdp-board-firmware_2022.06.22.bb b/meta-arm/meta-arm-bsp/recipes-bsp/images/n1sdp-board-firmware_2022.06.22.bb
index ef7a4fc..6a27f02 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/images/n1sdp-board-firmware_2022.06.22.bb
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/images/n1sdp-board-firmware_2022.06.22.bb
@@ -13,7 +13,8 @@
 
 SRC_URI = "git://git.gitlab.arm.com/arm-reference-solutions/board-firmware.git;protocol=https;branch=n1sdp"
 
-SRCREV = "6d5253584a9c2fdc2edbdc39bf6f2436215d1382"
+SRCREV = "70ba494265eee76747faff38264860c19e214540"
+PV .= "+git${SRCPV}"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc b/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc
index ea2face..f78c94b 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc
@@ -10,7 +10,7 @@
     for TYPE in ${FW_INSTALL}; do
         if [ "$TYPE" = "romfw_bypass" ]; then
             install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass.bin" "${D}/firmware/${FW}_${TYPE}.bin"
-            install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass" "${D}/firmware/${FW}_${TYPE}.elf"
+            install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass.elf" "${D}/firmware/${FW}_${TYPE}.elf"
         fi
     done
 }
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc
index 85f89a0..811537a 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc
@@ -3,9 +3,6 @@
 SCP_PLATFORM  = "n1sdp"
 SCP_LOG_LEVEL = "INFO"
 
-SRCREV  = "de7e464ecd77130147103cf48328099c2d0e6289"
-PV .= "+git${SRCPV}"
-
 COMPATIBLE_MACHINE:n1sdp = "n1sdp"
 
 DEPENDS += "fiptool-native"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.11.%.bbappend
similarity index 100%
rename from meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend
rename to meta-arm/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.11.%.bbappend
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
index 9fb567f..f4ebcc1 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
@@ -1,9 +1,5 @@
 # N1SDP specific TFA support
 
-# Align with post-N1SDP-2022.06.22 refresh
-SRCREV_tfa  = "1309c6c805190bd376c0561597653f3f8ecd0f58"
-PV .= "+git${SRCPV}"
-
 COMPATIBLE_MACHINE = "n1sdp"
 TFA_PLATFORM       = "n1sdp"
 TFA_BUILD_TARGET   = "all fip"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-Introduce-IO-framework.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-Introduce-IO-framework.patch
deleted file mode 100644
index 900fd54..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-Introduce-IO-framework.patch
+++ /dev/null
@@ -1,1354 +0,0 @@
-From 1db9afdbf70eb9708640debe5d7d24558fe0f63a Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Mon, 7 Nov 2022 12:49:11 +0000
-Subject: [PATCH 01/10] Platform: corstone1000: Introduce IO framework
-
-- Introduce IO storage framework
-- Add IO flash to abstract flash implementation details from upper layer
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Accepted [TF-Mv1.8.0]
----
- .../target/arm/corstone1000/CMakeLists.txt    |   4 +
- .../ext/target/arm/corstone1000/io/io_block.c | 527 ++++++++++++++++++
- .../ext/target/arm/corstone1000/io/io_block.h |  40 ++
- .../ext/target/arm/corstone1000/io/io_defs.h  |  27 +
- .../target/arm/corstone1000/io/io_driver.h    |  54 ++
- .../ext/target/arm/corstone1000/io/io_flash.c | 183 ++++++
- .../ext/target/arm/corstone1000/io/io_flash.h |  37 ++
- .../target/arm/corstone1000/io/io_storage.c   | 289 ++++++++++
- .../target/arm/corstone1000/io/io_storage.h   |  92 +++
- 9 files changed, 1253 insertions(+)
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_block.c
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_block.h
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_defs.h
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_driver.h
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_flash.c
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_flash.h
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_storage.c
- create mode 100644 platform/ext/target/arm/corstone1000/io/io_storage.h
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index cfbaffc995..7808efae68 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -125,6 +125,9 @@ target_sources(platform_bl2
-         fw_update_agent/fwu_agent.c
-         bl2_security_cnt.c
-         $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
-+        io/io_block.c
-+        io/io_flash.c
-+        io/io_storage.c
- )
- 
- if (PLATFORM_IS_FVP)
-@@ -182,6 +185,7 @@ target_include_directories(platform_bl2
-         fip_parser
-         Native_Driver
-         fw_update_agent
-+        io
-         .
-     INTERFACE
-         cc312
-diff --git a/platform/ext/target/arm/corstone1000/io/io_block.c b/platform/ext/target/arm/corstone1000/io/io_block.c
-new file mode 100644
-index 0000000000..f7eaf7444c
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_block.c
-@@ -0,0 +1,527 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#include "io_block.h"
-+
-+#include <assert.h>
-+#include <errno.h>
-+
-+#include "io_defs.h"
-+#include "io_driver.h"
-+#include "io_storage.h"
-+
-+typedef struct {
-+    io_block_dev_spec_t *dev_spec;
-+    uintptr_t base;
-+    uint32_t file_pos;
-+    uint32_t size;
-+} block_dev_state_t;
-+
-+#define is_power_of_2(x) (((x) != 0U) && (((x) & ((x)-1U)) == 0U))
-+
-+io_type_t device_type_block(void);
-+
-+static int block_open(io_dev_info_t *dev_info, const uintptr_t spec,
-+                      io_entity_t *entity);
-+static int block_seek(io_entity_t *entity, int mode, size_t offset);
-+static int block_read(io_entity_t *entity, uintptr_t buffer, size_t length,
-+                      size_t *length_read);
-+static int block_write(io_entity_t *entity, const uintptr_t buffer,
-+                       size_t length, size_t *length_written);
-+static int block_close(io_entity_t *entity);
-+static int block_dev_open(const uintptr_t dev_spec, io_dev_info_t **dev_info);
-+static int block_dev_close(io_dev_info_t *dev_info);
-+
-+static const io_dev_connector_t block_dev_connector = {.dev_open =
-+                                                           block_dev_open};
-+
-+static const io_dev_funcs_t block_dev_funcs = {
-+    .type = device_type_block,
-+    .open = block_open,
-+    .seek = block_seek,
-+    .size = NULL,
-+    .read = block_read,
-+    .write = block_write,
-+    .close = block_close,
-+    .dev_init = NULL,
-+    .dev_close = block_dev_close,
-+};
-+
-+static block_dev_state_t state_pool[MAX_IO_BLOCK_DEVICES];
-+static io_dev_info_t dev_info_pool[MAX_IO_BLOCK_DEVICES];
-+
-+/* Track number of allocated block state */
-+static unsigned int block_dev_count;
-+
-+io_type_t device_type_block(void) { return IO_TYPE_BLOCK; }
-+
-+/* Locate a block state in the pool, specified by address */
-+static int find_first_block_state(const io_block_dev_spec_t *dev_spec,
-+                                  unsigned int *index_out) {
-+    unsigned int index;
-+    int result = -ENOENT;
-+
-+    for (index = 0U; index < MAX_IO_BLOCK_DEVICES; ++index) {
-+        /* dev_spec is used as identifier since it's unique */
-+        if (state_pool[index].dev_spec == dev_spec) {
-+            result = 0;
-+            *index_out = index;
-+            break;
-+        }
-+    }
-+    return result;
-+}
-+
-+/* Allocate a device info from the pool and return a pointer to it */
-+static int allocate_dev_info(io_dev_info_t **dev_info) {
-+    int result = -ENOMEM;
-+    assert(dev_info != NULL);
-+
-+    if (block_dev_count < MAX_IO_BLOCK_DEVICES) {
-+        unsigned int index = 0;
-+        result = find_first_block_state(NULL, &index);
-+        assert(result == 0);
-+        /* initialize dev_info */
-+        dev_info_pool[index].funcs = &block_dev_funcs;
-+        dev_info_pool[index].info = (uintptr_t)&state_pool[index];
-+        *dev_info = &dev_info_pool[index];
-+        ++block_dev_count;
-+    }
-+
-+    return result;
-+}
-+
-+/* Release a device info to the pool */
-+static int free_dev_info(io_dev_info_t *dev_info) {
-+    int result;
-+    unsigned int index = 0;
-+    block_dev_state_t *state;
-+    assert(dev_info != NULL);
-+
-+    state = (block_dev_state_t *)dev_info->info;
-+    result = find_first_block_state(state->dev_spec, &index);
-+    if (result == 0) {
-+        /* free if device info is valid */
-+        memset(state, 0, sizeof(block_dev_state_t));
-+        memset(dev_info, 0, sizeof(io_dev_info_t));
-+        --block_dev_count;
-+    }
-+
-+    return result;
-+}
-+
-+static int block_open(io_dev_info_t *dev_info, const uintptr_t spec,
-+                      io_entity_t *entity) {
-+    block_dev_state_t *cur;
-+    io_block_spec_t *region;
-+
-+    assert((dev_info->info != (uintptr_t)NULL) && (spec != (uintptr_t)NULL) &&
-+           (entity->info == (uintptr_t)NULL));
-+
-+    region = (io_block_spec_t *)spec;
-+    cur = (block_dev_state_t *)dev_info->info;
-+    assert(((region->offset % cur->dev_spec->block_size) == 0) &&
-+           ((region->length % cur->dev_spec->block_size) == 0));
-+
-+    cur->base = region->offset;
-+    cur->size = region->length;
-+    cur->file_pos = 0;
-+
-+    entity->info = (uintptr_t)cur;
-+    return 0;
-+}
-+
-+/* parameter offset is relative address at here */
-+static int block_seek(io_entity_t *entity, int mode, size_t offset) {
-+    block_dev_state_t *cur;
-+
-+    assert(entity->info != (uintptr_t)NULL);
-+
-+    cur = (block_dev_state_t *)entity->info;
-+
-+    assert((offset >= 0) && ((uint32_t)offset < cur->size));
-+    switch (mode) {
-+        case IO_SEEK_SET:
-+            cur->file_pos = (uint32_t)offset;
-+            break;
-+        case IO_SEEK_CUR:
-+            cur->file_pos += (uint32_t)offset;
-+            break;
-+        default:
-+            return -EINVAL;
-+    }
-+    assert(cur->file_pos < cur->size);
-+    return 0;
-+}
-+
-+/*
-+ * This function allows the caller to read any number of bytes
-+ * from any position. It hides from the caller that the low level
-+ * driver only can read aligned blocks of data. For this reason
-+ * we need to handle the use case where the first byte to be read is not
-+ * aligned to start of the block, the last byte to be read is also not
-+ * aligned to the end of a block, and there are zero or more blocks-worth
-+ * of data in between.
-+ *
-+ * In such a case we need to read more bytes than requested (i.e. full
-+ * blocks) and strip-out the leading bytes (aka skip) and the trailing
-+ * bytes (aka padding). See diagram below
-+ *
-+ * cur->file_pos ------------
-+ *                          |
-+ * cur->base                |
-+ *  |                       |
-+ *  v                       v<----  length   ---->
-+ *  --------------------------------------------------------------
-+ * |           |         block#1    |        |   block#n          |
-+ * |  block#0  |            +       |   ...  |     +              |
-+ * |           | <- skip -> +       |        |     + <- padding ->|
-+ *  ------------------------+----------------------+--------------
-+ *             ^                                                  ^
-+ *             |                                                  |
-+ *             v    iteration#1                iteration#n        v
-+ *              --------------------------------------------------
-+ *             |                    |        |                    |
-+ *             |<----  request ---->|  ...   |<----- request ---->|
-+ *             |                    |        |                    |
-+ *              --------------------------------------------------
-+ *            /                   /          |                    |
-+ *           /                   /           |                    |
-+ *          /                   /            |                    |
-+ *         /                   /             |                    |
-+ *        /                   /              |                    |
-+ *       /                   /               |                    |
-+ *      /                   /                |                    |
-+ *     /                   /                 |                    |
-+ *    /                   /                  |                    |
-+ *   /                   /                   |                    |
-+ *  <---- request ------>                    <------ request  ----->
-+ *  ---------------------                    -----------------------
-+ *  |        |          |                    |          |           |
-+ *  |<-skip->|<-nbytes->|           -------->|<-nbytes->|<-padding->|
-+ *  |        |          |           |        |          |           |
-+ *  ---------------------           |        -----------------------
-+ *  ^        \           \          |        |          |
-+ *  |         \           \         |        |          |
-+ *  |          \           \        |        |          |
-+ *  buf->offset \           \   buf->offset  |          |
-+ *               \           \               |          |
-+ *                \           \              |          |
-+ *                 \           \             |          |
-+ *                  \           \            |          |
-+ *                   \           \           |          |
-+ *                    \           \          |          |
-+ *                     \           \         |          |
-+ *                      --------------------------------
-+ *                      |           |        |         |
-+ * buffer-------------->|           | ...    |         |
-+ *                      |           |        |         |
-+ *                      --------------------------------
-+ *                      <-count#1->|                   |
-+ *                      <----------  count#n   -------->
-+ *                      <----------  length  ---------->
-+ *
-+ * Additionally, the IO driver has an underlying buffer that is at least
-+ * one block-size and may be big enough to allow.
-+ */
-+static int block_read(io_entity_t *entity, uintptr_t buffer, size_t length,
-+                      size_t *length_read) {
-+    block_dev_state_t *cur;
-+    io_block_spec_t *buf;
-+    io_block_ops_t *ops;
-+    int lba;
-+    size_t block_size, left;
-+    size_t nbytes;  /* number of bytes read in one iteration */
-+    size_t request; /* number of requested bytes in one iteration */
-+    size_t count;   /* number of bytes already read */
-+    /*
-+     * number of leading bytes from start of the block
-+     * to the first byte to be read
-+     */
-+    size_t skip;
-+
-+    /*
-+     * number of trailing bytes between the last byte
-+     * to be read and the end of the block
-+     */
-+    size_t padding;
-+
-+    assert(entity->info != (uintptr_t)NULL);
-+    cur = (block_dev_state_t *)entity->info;
-+    ops = &(cur->dev_spec->ops);
-+    buf = &(cur->dev_spec->buffer);
-+    block_size = cur->dev_spec->block_size;
-+    assert((length <= cur->size) && (length > 0U) && (ops->read != 0));
-+
-+    /*
-+     * We don't know the number of bytes that we are going
-+     * to read in every iteration, because it will depend
-+     * on the low level driver.
-+     */
-+    count = 0;
-+    for (left = length; left > 0U; left -= nbytes) {
-+        /*
-+         * We must only request operations aligned to the block
-+         * size. Therefore if file_pos is not block-aligned,
-+         * we have to request the operation to start at the
-+         * previous block boundary and skip the leading bytes. And
-+         * similarly, the number of bytes requested must be a
-+         * block size multiple
-+         */
-+        skip = cur->file_pos & (block_size - 1U);
-+
-+        /*
-+         * Calculate the block number containing file_pos
-+         * - e.g. block 3.
-+         */
-+        lba = (cur->file_pos + cur->base) / block_size;
-+
-+        if ((skip + left) > buf->length) {
-+            /*
-+             * The underlying read buffer is too small to
-+             * read all the required data - limit to just
-+             * fill the buffer, and then read again.
-+             */
-+            request = buf->length;
-+        } else {
-+            /*
-+             * The underlying read buffer is big enough to
-+             * read all the required data. Calculate the
-+             * number of bytes to read to align with the
-+             * block size.
-+             */
-+            request = skip + left;
-+            request = (request + (block_size - 1U)) & ~(block_size - 1U);
-+        }
-+        request = ops->read(lba, buf->offset, request);
-+
-+        if (request <= skip) {
-+            /*
-+             * We couldn't read enough bytes to jump over
-+             * the skip bytes, so we should have to read
-+             * again the same block, thus generating
-+             * the same error.
-+             */
-+            return -EIO;
-+        }
-+
-+        /*
-+         * Need to remove skip and padding bytes,if any, from
-+         * the read data when copying to the user buffer.
-+         */
-+        nbytes = request - skip;
-+        padding = (nbytes > left) ? nbytes - left : 0U;
-+        nbytes -= padding;
-+
-+        memcpy((void *)(buffer + count), (void *)(buf->offset + skip), nbytes);
-+
-+        cur->file_pos += nbytes;
-+        count += nbytes;
-+    }
-+    assert(count == length);
-+    *length_read = count;
-+
-+    return 0;
-+}
-+
-+/*
-+ * This function allows the caller to write any number of bytes
-+ * from any position. It hides from the caller that the low level
-+ * driver only can write aligned blocks of data.
-+ * See comments for block_read for more details.
-+ */
-+static int block_write(io_entity_t *entity, const uintptr_t buffer,
-+                       size_t length, size_t *length_written) {
-+    block_dev_state_t *cur;
-+    io_block_spec_t *buf;
-+    io_block_ops_t *ops;
-+    int lba;
-+    size_t block_size, left;
-+    size_t nbytes;  /* number of bytes read in one iteration */
-+    size_t request; /* number of requested bytes in one iteration */
-+    size_t count;   /* number of bytes already read */
-+    /*
-+     * number of leading bytes from start of the block
-+     * to the first byte to be read
-+     */
-+    size_t skip;
-+
-+    /*
-+     * number of trailing bytes between the last byte
-+     * to be read and the end of the block
-+     */
-+    size_t padding;
-+    assert(entity->info != (uintptr_t)NULL);
-+    cur = (block_dev_state_t *)entity->info;
-+    ops = &(cur->dev_spec->ops);
-+    buf = &(cur->dev_spec->buffer);
-+    block_size = cur->dev_spec->block_size;
-+    assert((length <= cur->size) && (length > 0U) && (ops->read != 0) &&
-+           (ops->write != 0));
-+
-+    /*
-+     * We don't know the number of bytes that we are going
-+     * to write in every iteration, because it will depend
-+     * on the low level driver.
-+     */
-+    count = 0;
-+    for (left = length; left > 0U; left -= nbytes) {
-+        /*
-+         * We must only request operations aligned to the block
-+         * size. Therefore if file_pos is not block-aligned,
-+         * we have to request the operation to start at the
-+         * previous block boundary and skip the leading bytes. And
-+         * similarly, the number of bytes requested must be a
-+         * block size multiple
-+         */
-+        skip = cur->file_pos & (block_size - 1U);
-+
-+        /*
-+         * Calculate the block number containing file_pos
-+         * - e.g. block 3.
-+         */
-+        lba = (cur->file_pos + cur->base) / block_size;
-+
-+        if ((skip + left) > buf->length) {
-+            /*
-+             * The underlying read buffer is too small to
-+             * read all the required data - limit to just
-+             * fill the buffer, and then read again.
-+             */
-+            request = buf->length;
-+        } else {
-+            /*
-+             * The underlying read buffer is big enough to
-+             * read all the required data. Calculate the
-+             * number of bytes to read to align with the
-+             * block size.
-+             */
-+            request = skip + left;
-+            request = (request + (block_size - 1U)) & ~(block_size - 1U);
-+        }
-+
-+        /*
-+         * The number of bytes that we are going to write
-+         * from the user buffer will depend of the size
-+         * of the current request.
-+         */
-+        nbytes = request - skip;
-+        padding = (nbytes > left) ? nbytes - left : 0U;
-+        nbytes -= padding;
-+
-+        /*
-+         * If we have skip or padding bytes then we have to preserve
-+         * some content and it means that we have to read before
-+         * writing
-+         */
-+        if ((skip > 0U) || (padding > 0U)) {
-+            request = ops->read(lba, buf->offset, request);
-+            /*
-+             * The read may return size less than
-+             * requested. Round down to the nearest block
-+             * boundary
-+             */
-+            request &= ~(block_size - 1U);
-+            if (request <= skip) {
-+                /*
-+                 * We couldn't read enough bytes to jump over
-+                 * the skip bytes, so we should have to read
-+                 * again the same block, thus generating
-+                 * the same error.
-+                 */
-+                return -EIO;
-+            }
-+            nbytes = request - skip;
-+            padding = (nbytes > left) ? nbytes - left : 0U;
-+            nbytes -= padding;
-+        }
-+
-+        memcpy((void *)(buf->offset + skip), (void *)(buffer + count), nbytes);
-+
-+        request = ops->write(lba, buf->offset, request);
-+        if (request <= skip) return -EIO;
-+
-+        /*
-+         * And the previous write operation may modify the size
-+         * of the request, so again, we have to calculate the
-+         * number of bytes that we consumed from the user
-+         * buffer
-+         */
-+        nbytes = request - skip;
-+        padding = (nbytes > left) ? nbytes - left : 0U;
-+        nbytes -= padding;
-+
-+        cur->file_pos += nbytes;
-+        count += nbytes;
-+    }
-+    assert(count == length);
-+    *length_written = count;
-+
-+    return 0;
-+}
-+
-+static int block_close(io_entity_t *entity) {
-+    entity->info = (uintptr_t)NULL;
-+    return 0;
-+}
-+
-+static int block_dev_open(const uintptr_t dev_spec, io_dev_info_t **dev_info) {
-+    block_dev_state_t *cur;
-+    io_block_spec_t *buffer;
-+    io_dev_info_t *info;
-+    size_t block_size;
-+    int result;
-+    assert(dev_info != NULL);
-+    result = allocate_dev_info(&info);
-+    if (result != 0) return -ENOENT;
-+
-+    cur = (block_dev_state_t *)info->info;
-+    /* dev_spec is type of io_block_dev_spec_t. */
-+    cur->dev_spec = (io_block_dev_spec_t *)dev_spec;
-+    buffer = &(cur->dev_spec->buffer);
-+    block_size = cur->dev_spec->block_size;
-+
-+    assert((block_size > 0U) && (is_power_of_2(block_size) != 0U) &&
-+           ((buffer->length % block_size) == 0U));
-+
-+    *dev_info = info; /* cast away const */
-+    (void)block_size;
-+    (void)buffer;
-+    return 0;
-+}
-+
-+static int block_dev_close(io_dev_info_t *dev_info) {
-+    return free_dev_info(dev_info);
-+}
-+
-+/* Exported functions */
-+
-+/* Register the Block driver with the IO abstraction */
-+int register_io_dev_block(const io_dev_connector_t **dev_con) {
-+    int result;
-+
-+    assert(dev_con != NULL);
-+
-+    /*
-+     * Since dev_info isn't really used in io_register_device, always
-+     * use the same device info at here instead.
-+     */
-+    result = io_register_device(&dev_info_pool[0]);
-+    if (result == 0) *dev_con = &block_dev_connector;
-+    return result;
-+}
-diff --git a/platform/ext/target/arm/corstone1000/io/io_block.h b/platform/ext/target/arm/corstone1000/io/io_block.h
-new file mode 100644
-index 0000000000..1603aa74c5
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_block.h
-@@ -0,0 +1,40 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#ifndef __IO_BLOCK_H__
-+#define __IO_BLOCK_H__
-+
-+#include "io_storage.h"
-+
-+/* block devices ops */
-+typedef struct io_block_ops {
-+    size_t (*read)(int lba, uintptr_t buf, size_t size);
-+    size_t (*write)(int lba, const uintptr_t buf, size_t size);
-+} io_block_ops_t;
-+
-+typedef struct io_block_dev_spec {
-+    io_block_spec_t buffer;
-+    io_block_ops_t ops;
-+    size_t block_size;
-+} io_block_dev_spec_t;
-+
-+struct io_dev_connector;
-+
-+int register_io_dev_block(const struct io_dev_connector **dev_con);
-+
-+#endif /* __IO_BLOCK_H__ */
-\ No newline at end of file
-diff --git a/platform/ext/target/arm/corstone1000/io/io_defs.h b/platform/ext/target/arm/corstone1000/io/io_defs.h
-new file mode 100644
-index 0000000000..acba969ed6
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_defs.h
-@@ -0,0 +1,27 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#ifndef __IO_DEFS_H__
-+#define __IO_DEFS_H__
-+
-+#define MAX_IO_DEVICES          (2)
-+#define MAX_IO_HANDLES          (2)
-+#define MAX_IO_BLOCK_DEVICES    (2)
-+#define MAX_IO_FLASH_DEVICES    (2)
-+
-+#endif /* __IO_DEFS_H__ */
-\ No newline at end of file
-diff --git a/platform/ext/target/arm/corstone1000/io/io_driver.h b/platform/ext/target/arm/corstone1000/io/io_driver.h
-new file mode 100644
-index 0000000000..cf9e21a6d4
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_driver.h
-@@ -0,0 +1,54 @@
-+/*
-+ * Copyright (c) 2014-2022, ARM Limited and Contributors. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ */
-+
-+#ifndef __IO_DRIVER_H__
-+#define __IO_DRIVER_H__
-+
-+#include <io_storage.h>
-+#include <stdint.h>
-+
-+/* Generic IO entity structure,representing an accessible IO construct on the
-+ * device, such as a file */
-+typedef struct io_entity {
-+    struct io_dev_info *dev_handle;
-+    uintptr_t info;
-+} io_entity_t;
-+
-+/* Device info structure, providing device-specific functions and a means of
-+ * adding driver-specific state */
-+typedef struct io_dev_info {
-+    const struct io_dev_funcs *funcs;
-+    uintptr_t info;
-+} io_dev_info_t;
-+
-+/* Structure used to create a connection to a type of device */
-+typedef struct io_dev_connector {
-+    /* dev_open opens a connection to a particular device driver */
-+    int (*dev_open)(const uintptr_t dev_spec, io_dev_info_t **dev_info);
-+} io_dev_connector_t;
-+
-+/* Structure to hold device driver function pointers */
-+typedef struct io_dev_funcs {
-+    io_type_t (*type)(void);
-+    int (*open)(io_dev_info_t *dev_info, const uintptr_t spec,
-+                io_entity_t *entity);
-+    int (*seek)(io_entity_t *entity, int mode, size_t offset);
-+    int (*size)(io_entity_t *entity, size_t *length);
-+    int (*read)(io_entity_t *entity, uintptr_t buffer, size_t length,
-+                size_t *length_read);
-+    int (*write)(io_entity_t *entity, const uintptr_t buffer, size_t length,
-+                 size_t *length_written);
-+    int (*close)(io_entity_t *entity);
-+    int (*dev_init)(io_dev_info_t *dev_info, const uintptr_t init_params);
-+    int (*dev_close)(io_dev_info_t *dev_info);
-+} io_dev_funcs_t;
-+
-+/* Operations intended to be performed during platform initialisation */
-+
-+/* Register an IO device */
-+int io_register_device(const io_dev_info_t *dev_info);
-+
-+#endif /* __IO_DRIVER_H__ */
-diff --git a/platform/ext/target/arm/corstone1000/io/io_flash.c b/platform/ext/target/arm/corstone1000/io/io_flash.c
-new file mode 100644
-index 0000000000..ff4524e9c5
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_flash.c
-@@ -0,0 +1,183 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#include "io_flash.h"
-+
-+#include <assert.h>
-+#include <errno.h>
-+
-+#include "Driver_Flash.h"
-+#include "io_block.h"
-+#include "io_defs.h"
-+#include "io_driver.h"
-+#include "io_storage.h"
-+
-+#if MAX_IO_FLASH_DEVICES > MAX_IO_BLOCK_DEVICES
-+#error \
-+    "FLASH devices are BLOCK devices .. MAX_IO_FLASH_DEVICES should be less or equal to MAX_IO_BLOCK_DEVICES"
-+#endif
-+
-+/* Private Prototypes */
-+
-+static int flash_dev_open(const uintptr_t dev_spec, io_dev_info_t **dev_info);
-+static size_t flash_read(int lba, uintptr_t buf, size_t size, size_t flash_id);
-+static size_t flash_write(int lba, const uintptr_t buf, size_t size,
-+                          size_t flash_id);
-+static size_t flash0_read(int lba, uintptr_t buf, size_t size);
-+static size_t flash0_write(int lba, uintptr_t buf, size_t size);
-+static size_t flash1_read(int lba, uintptr_t buf, size_t size);
-+static size_t flash1_write(int lba, uintptr_t buf, size_t size);
-+
-+/** Private Data **/
-+
-+/* Flash device data */
-+static const io_dev_connector_t flash_dev_connector = {.dev_open =
-+                                                           flash_dev_open};
-+static size_t flash_dev_count = 0;
-+static io_flash_dev_spec_t *flash_dev_specs[MAX_IO_FLASH_DEVICES];
-+
-+/* Block device data */
-+static io_dev_connector_t block_dev_connectors[MAX_IO_FLASH_DEVICES];
-+static io_block_dev_spec_t block_dev_spec[MAX_IO_FLASH_DEVICES];
-+
-+/* Flash devices read/write function pointers */
-+static io_block_ops_t flashs_ops[MAX_IO_FLASH_DEVICES] = {
-+    [0] = {.read = flash0_read, .write = flash0_write},
-+    [1] = {.read = flash1_read, .write = flash1_write},
-+};
-+
-+/* Flash ops functions */
-+static size_t flash_read(int lba, uintptr_t buf, size_t size, size_t flash_id) {
-+    ARM_DRIVER_FLASH *flash_driver =
-+        ((ARM_DRIVER_FLASH *)flash_dev_specs[flash_id]->flash_driver);
-+    ARM_FLASH_INFO *info = flash_driver->GetInfo();
-+    uint32_t addr = info->sector_size * lba;
-+    uint32_t offset = addr - flash_dev_specs[flash_id]->base_addr;
-+    size_t rem = info->sector_count * info->sector_size - offset;
-+    size_t cnt = size < rem ? size : rem;
-+
-+    return flash_driver->ReadData(offset, buf, cnt);
-+}
-+
-+static size_t flash_write(int lba, const uintptr_t buf, size_t size,
-+                          size_t flash_id) {
-+    ARM_DRIVER_FLASH *flash_driver =
-+        ((ARM_DRIVER_FLASH *)flash_dev_specs[flash_id]->flash_driver);
-+    ARM_FLASH_INFO *info = flash_driver->GetInfo();
-+    int32_t rc = 0;
-+    uint32_t addr = info->sector_size * lba;
-+    uint32_t offset = addr - flash_dev_specs[flash_id]->base_addr;
-+    size_t rem = info->sector_count * info->sector_size - offset;
-+    size_t cnt = size < rem ? size : rem;
-+
-+    flash_driver->EraseSector(offset);
-+    rc = flash_driver->ProgramData(offset, buf, cnt);
-+    return rc;
-+}
-+
-+/* Flash ops functions wrapper for each device */
-+
-+static size_t flash0_read(int lba, uintptr_t buf, size_t size) {
-+    return flash_read(lba, buf, size, 0);
-+}
-+
-+static size_t flash0_write(int lba, uintptr_t buf, size_t size) {
-+    return flash_write(lba, buf, size, 0);
-+}
-+
-+static size_t flash1_read(int lba, uintptr_t buf, size_t size) {
-+    return flash_read(lba, buf, size, 1);
-+}
-+
-+static size_t flash1_write(int lba, uintptr_t buf, size_t size) {
-+    return flash_write(lba, buf, size, 1);
-+}
-+
-+/**
-+ *  Helper function to find the index of stored flash_dev_specs or
-+ *  return a free slot in case of a new dev_spec
-+ */
-+static int find_flash_dev_specs(const uintptr_t dev_spec) {
-+    /* Search in the saved ones */
-+    for (int i = 0; i < flash_dev_count; ++i) {
-+        if (flash_dev_specs[i] != NULL &&
-+            flash_dev_specs[i]->flash_driver ==
-+                ((io_flash_dev_spec_t *)dev_spec)->flash_driver) {
-+            return i;
-+        }
-+    }
-+    /* Find the first empty flash_dev_specs to be used */
-+    for (int i = 0; i < flash_dev_count; ++i) {
-+        if (flash_dev_specs[i] == NULL) {
-+            return i;
-+        }
-+    }
-+    return -1;
-+}
-+
-+/**
-+ * This function should be called
-+ */
-+static int flash_dev_open(const uintptr_t dev_spec, io_dev_info_t **dev_info) {
-+    ARM_DRIVER_FLASH *flash_driver;
-+    assert(dev_info != NULL);
-+    assert(dev_spec != NULL);
-+
-+    size_t index = find_flash_dev_specs(dev_spec);
-+
-+    /* Check if Flash ops functions are defined for this flash */
-+    assert(flashs_ops[index].read && flashs_ops[index].write);
-+
-+    flash_dev_specs[index] = dev_spec;
-+    flash_driver = flash_dev_specs[index]->flash_driver;
-+
-+    block_dev_spec[index].block_size = flash_driver->GetInfo()->sector_size;
-+    block_dev_spec[index].buffer.offset = flash_dev_specs[index]->buffer;
-+    block_dev_spec[index].buffer.length = flash_dev_specs[index]->bufferlen;
-+    block_dev_spec[index].ops = flashs_ops[index];
-+
-+    flash_driver->Initialize(NULL);
-+
-+    block_dev_connectors[index].dev_open(&block_dev_spec[index], dev_info);
-+
-+    return 0;
-+}
-+
-+/* Exported functions */
-+
-+/**
-+ * Register the flash device.
-+ * Internally it register a block device.
-+ */
-+int register_io_dev_flash(const io_dev_connector_t **dev_con) {
-+    int result;
-+
-+    if (flash_dev_count >= MAX_IO_FLASH_DEVICES) {
-+        return -ENOENT;
-+    }
-+    assert(dev_con != NULL);
-+
-+    result = register_io_dev_block(dev_con);
-+    if (result == 0) {
-+        /* Store the block dev connector */
-+        block_dev_connectors[flash_dev_count++] = **dev_con;
-+        /* Override dev_con with the flash dev connector */
-+        *dev_con = &flash_dev_connector;
-+    }
-+    return result;
-+}
-diff --git a/platform/ext/target/arm/corstone1000/io/io_flash.h b/platform/ext/target/arm/corstone1000/io/io_flash.h
-new file mode 100644
-index 0000000000..8bc38b5824
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_flash.h
-@@ -0,0 +1,37 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#ifndef __IO_FLASH_H__
-+#define __IO_FLASH_H__
-+
-+#include "io_storage.h"
-+
-+typedef struct io_flash_dev_spec {
-+    uintptr_t buffer;
-+    size_t bufferlen;
-+    uint32_t base_addr;
-+    uintptr_t flash_driver;
-+} io_flash_dev_spec_t;
-+
-+struct io_dev_connector;
-+
-+/* Register the flash driver with the IO abstraction internally it register a
-+ * block device*/
-+int register_io_dev_flash(const struct io_dev_connector **dev_con);
-+
-+#endif /* __IO_FLASH_H__ */
-diff --git a/platform/ext/target/arm/corstone1000/io/io_storage.c b/platform/ext/target/arm/corstone1000/io/io_storage.c
-new file mode 100644
-index 0000000000..f26f4980f0
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_storage.c
-@@ -0,0 +1,289 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#include <assert.h>
-+#include <errno.h>
-+#include <stdbool.h>
-+
-+#include "io_defs.h"
-+#include "io_driver.h"
-+
-+/* Storage for a fixed maximum number of IO entities, definable by platform */
-+static io_entity_t entity_pool[MAX_IO_HANDLES];
-+
-+/* Simple way of tracking used storage - each entry is NULL or a pointer to an
-+ * entity */
-+static io_entity_t *entity_map[MAX_IO_HANDLES];
-+
-+/* Track number of allocated entities */
-+static unsigned int entity_count;
-+
-+/* Array of fixed maximum of registered devices, definable by platform */
-+static const io_dev_info_t *devices[MAX_IO_DEVICES];
-+
-+/* Number of currently registered devices */
-+static unsigned int dev_count;
-+
-+/* Return a boolean value indicating whether a device connector is valid */
-+static bool is_valid_dev_connector(const io_dev_connector_t *dev_con) {
-+    return (dev_con != NULL) && (dev_con->dev_open != NULL);
-+}
-+
-+/* Return a boolean value indicating whether a device handle is valid */
-+static bool is_valid_dev(const uintptr_t dev_handle) {
-+    const io_dev_info_t *dev = (io_dev_info_t *)dev_handle;
-+
-+    return (dev != NULL) && (dev->funcs != NULL) &&
-+           (dev->funcs->type != NULL) && (dev->funcs->type() < IO_TYPE_MAX);
-+}
-+
-+/* Return a boolean value indicating whether an IO entity is valid */
-+static bool is_valid_entity(const uintptr_t handle) {
-+    const io_entity_t *entity = (io_entity_t *)handle;
-+
-+    return (entity != NULL) && (is_valid_dev((uintptr_t)entity->dev_handle));
-+}
-+
-+/* Return a boolean value indicating whether a seek mode is valid */
-+static bool is_valid_seek_mode(io_seek_mode_t mode) {
-+    return ((mode != IO_SEEK_INVALID) && (mode < IO_SEEK_MAX));
-+}
-+
-+/* Open a connection to a specific device */
-+static int io_storage_dev_open(const io_dev_connector_t *dev_con,
-+                               const uintptr_t dev_spec,
-+                               io_dev_info_t **dev_info) {
-+    assert(dev_info != NULL);
-+    assert(is_valid_dev_connector(dev_con));
-+
-+    return dev_con->dev_open(dev_spec, dev_info);
-+}
-+
-+/* Set a handle to track an entity */
-+static void set_handle(uintptr_t *handle, io_entity_t *entity) {
-+    assert(handle != NULL);
-+    *handle = (uintptr_t)entity;
-+}
-+
-+/* Locate an entity in the pool, specified by address */
-+static int find_first_entity(const io_entity_t *entity,
-+                             unsigned int *index_out) {
-+    int result = -ENOENT;
-+    for (unsigned int index = 0; index < MAX_IO_HANDLES; ++index) {
-+        if (entity_map[index] == entity) {
-+            result = 0;
-+            *index_out = index;
-+            break;
-+        }
-+    }
-+    return result;
-+}
-+
-+/* Allocate an entity from the pool and return a pointer to it */
-+static int allocate_entity(io_entity_t **entity) {
-+    int result = -ENOMEM;
-+    assert(entity != NULL);
-+
-+    if (entity_count < MAX_IO_HANDLES) {
-+        unsigned int index = 0;
-+        result = find_first_entity(NULL, &index);
-+        assert(result == 0);
-+        *entity = &entity_pool[index];
-+        entity_map[index] = &entity_pool[index];
-+        ++entity_count;
-+    }
-+
-+    return result;
-+}
-+
-+/* Release an entity back to the pool */
-+static int free_entity(const io_entity_t *entity) {
-+    int result;
-+    unsigned int index = 0;
-+    assert(entity != NULL);
-+
-+    result = find_first_entity(entity, &index);
-+    if (result == 0) {
-+        entity_map[index] = NULL;
-+        --entity_count;
-+    }
-+
-+    return result;
-+}
-+
-+/* Exported API */
-+
-+/* Register an io device */
-+int io_register_device(const io_dev_info_t *dev_info) {
-+    int result = -ENOMEM;
-+    assert(dev_info != NULL);
-+
-+    if (dev_count < MAX_IO_DEVICES) {
-+        devices[dev_count] = dev_info;
-+        dev_count++;
-+        result = 0;
-+    }
-+
-+    return result;
-+}
-+
-+/* Open a connection to an IO device */
-+int io_dev_open(const io_dev_connector_t *dev_con, const uintptr_t dev_spec,
-+                uintptr_t *handle) {
-+    assert(handle != NULL);
-+    return io_storage_dev_open(dev_con, dev_spec, (io_dev_info_t **)handle);
-+}
-+
-+/* Initialise an IO device explicitly - to permit lazy initialisation or
-+ * re-initialisation */
-+int io_dev_init(uintptr_t dev_handle, const uintptr_t init_params) {
-+    int result = 0;
-+    assert(dev_handle != (uintptr_t)NULL);
-+    assert(is_valid_dev(dev_handle));
-+
-+    io_dev_info_t *dev = (io_dev_info_t *)dev_handle;
-+
-+    /* Absence of registered function implies NOP here */
-+    if (dev->funcs->dev_init != NULL) {
-+        result = dev->funcs->dev_init(dev, init_params);
-+    }
-+
-+    return result;
-+}
-+
-+/* Close a connection to a device */
-+int io_dev_close(uintptr_t dev_handle) {
-+    int result = 0;
-+    assert(dev_handle != (uintptr_t)NULL);
-+    assert(is_valid_dev(dev_handle));
-+
-+    io_dev_info_t *dev = (io_dev_info_t *)dev_handle;
-+
-+    /* Absence of registered function implies NOP here */
-+    if (dev->funcs->dev_close != NULL) {
-+        result = dev->funcs->dev_close(dev);
-+    }
-+
-+    return result;
-+}
-+
-+/* Synchronous operations */
-+
-+/* Open an IO entity */
-+int io_open(uintptr_t dev_handle, const uintptr_t spec, uintptr_t *handle) {
-+    int result;
-+    assert((spec != (uintptr_t)NULL) && (handle != NULL));
-+    assert(is_valid_dev(dev_handle));
-+
-+    io_dev_info_t *dev = (io_dev_info_t *)dev_handle;
-+    io_entity_t *entity;
-+
-+    result = allocate_entity(&entity);
-+
-+    if (result == 0) {
-+        assert(dev->funcs->open != NULL);
-+        result = dev->funcs->open(dev, spec, entity);
-+
-+        if (result == 0) {
-+            entity->dev_handle = dev;
-+            set_handle(handle, entity);
-+        } else
-+            free_entity(entity);
-+    }
-+    return result;
-+}
-+
-+/* Seek to a specific position in an IO entity */
-+int io_seek(uintptr_t handle, io_seek_mode_t mode, int32_t offset) {
-+    int result = -ENODEV;
-+    assert(is_valid_entity(handle) && is_valid_seek_mode(mode));
-+
-+    io_entity_t *entity = (io_entity_t *)handle;
-+
-+    io_dev_info_t *dev = entity->dev_handle;
-+
-+    if (dev->funcs->seek != NULL)
-+        result = dev->funcs->seek(entity, mode, offset);
-+
-+    return result;
-+}
-+
-+/* Determine the length of an IO entity */
-+int io_size(uintptr_t handle, size_t *length) {
-+    int result = -ENODEV;
-+    assert(is_valid_entity(handle) && (length != NULL));
-+
-+    io_entity_t *entity = (io_entity_t *)handle;
-+
-+    io_dev_info_t *dev = entity->dev_handle;
-+
-+    if (dev->funcs->size != NULL) result = dev->funcs->size(entity, length);
-+
-+    return result;
-+}
-+
-+/* Read data from an IO entity */
-+int io_read(uintptr_t handle, uintptr_t buffer, size_t length,
-+            size_t *length_read) {
-+    int result = -ENODEV;
-+    assert(is_valid_entity(handle));
-+
-+    io_entity_t *entity = (io_entity_t *)handle;
-+
-+    io_dev_info_t *dev = entity->dev_handle;
-+
-+    if (dev->funcs->read != NULL)
-+        result = dev->funcs->read(entity, buffer, length, length_read);
-+
-+    return result;
-+}
-+
-+/* Write data to an IO entity */
-+int io_write(uintptr_t handle, const uintptr_t buffer, size_t length,
-+             size_t *length_written) {
-+    int result = -ENODEV;
-+    assert(is_valid_entity(handle));
-+
-+    io_entity_t *entity = (io_entity_t *)handle;
-+
-+    io_dev_info_t *dev = entity->dev_handle;
-+
-+    if (dev->funcs->write != NULL) {
-+        result = dev->funcs->write(entity, buffer, length, length_written);
-+    }
-+
-+    return result;
-+}
-+
-+/* Close an IO entity */
-+int io_close(uintptr_t handle) {
-+    int result = 0;
-+    assert(is_valid_entity(handle));
-+
-+    io_entity_t *entity = (io_entity_t *)handle;
-+
-+    io_dev_info_t *dev = entity->dev_handle;
-+
-+    /* Absence of registered function implies NOP here */
-+    if (dev->funcs->close != NULL) result = dev->funcs->close(entity);
-+
-+    /* Ignore improbable free_entity failure */
-+    (void)free_entity(entity);
-+
-+    return result;
-+}
-diff --git a/platform/ext/target/arm/corstone1000/io/io_storage.h b/platform/ext/target/arm/corstone1000/io/io_storage.h
-new file mode 100644
-index 0000000000..0cdca5b269
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/io/io_storage.h
-@@ -0,0 +1,92 @@
-+/*
-+ * Copyright (c) 2022 Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#ifndef __IO_STORAGE_H__
-+#define __IO_STORAGE_H__
-+
-+#include <stddef.h>
-+#include <stdint.h>
-+
-+/* Access modes used when accessing data on a device */
-+#define IO_MODE_INVALID (0)
-+#define IO_MODE_RO (1 << 0)
-+#define IO_MODE_RW (1 << 1)
-+
-+/* Device type which can be used to enable policy decisions about which device
-+ * to access */
-+typedef enum {
-+    IO_TYPE_INVALID,
-+    IO_TYPE_SEMIHOSTING,
-+    IO_TYPE_MEMMAP,
-+    IO_TYPE_DUMMY,
-+    IO_TYPE_FIRMWARE_IMAGE_PACKAGE,
-+    IO_TYPE_BLOCK,
-+    IO_TYPE_MTD,
-+    IO_TYPE_MMC,
-+    IO_TYPE_STM32IMAGE,
-+    IO_TYPE_ENCRYPTED,
-+    IO_TYPE_MAX
-+} io_type_t;
-+
-+/* Modes used when seeking data on a supported device */
-+typedef enum {
-+    IO_SEEK_INVALID,
-+    IO_SEEK_SET,
-+    IO_SEEK_END,
-+    IO_SEEK_CUR,
-+    IO_SEEK_MAX
-+} io_seek_mode_t;
-+
-+/* Connector type, providing a means of identifying a device to open */
-+struct io_dev_connector;
-+
-+/* Block specification - used to refer to data on a device supporting
-+ * block-like entities */
-+typedef struct io_block_spec {
-+    size_t offset;
-+    size_t length;
-+} io_block_spec_t;
-+
-+
-+/* Open a connection to a device */
-+int io_dev_open(const struct io_dev_connector *dev_con,
-+                const uintptr_t dev_spec, uintptr_t *handle);
-+
-+/* Initialise a device explicitly - to permit lazy initialisation or
-+ * re-initialisation */
-+int io_dev_init(uintptr_t dev_handle, const uintptr_t init_params);
-+
-+/* Close a connection to a device */
-+int io_dev_close(uintptr_t dev_handle);
-+
-+/* Synchronous operations */
-+int io_open(uintptr_t dev_handle, const uintptr_t spec, uintptr_t *handle);
-+
-+int io_seek(uintptr_t handle, io_seek_mode_t mode, int32_t offset);
-+
-+int io_size(uintptr_t handle, size_t *length);
-+
-+int io_read(uintptr_t handle, uintptr_t buffer, size_t length,
-+            size_t *length_read);
-+
-+int io_write(uintptr_t handle, const uintptr_t buffer, size_t length,
-+             size_t *length_written);
-+
-+int io_close(uintptr_t handle);
-+
-+#endif /* __IO_STORAGE_H__ */
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
similarity index 94%
rename from meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
index 24150b6..eeaf6d1 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
@@ -7,7 +7,7 @@
 the copies in both replicas are good. so, make sure
 we write fwu metadata in both replicas.
 
-Upstream-Status: Pending [Not submitted to upstream yet]
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20550]
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
  .../arm/corstone1000/fw_update_agent/fwu_agent.c   | 14 ++++++++++++++
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch
deleted file mode 100644
index a4da13e..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch
+++ /dev/null
@@ -1,646 +0,0 @@
-From 3bca7e6bae9a5017fff83b0a7d2d0d78b422a741 Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Mon, 7 Nov 2022 12:51:58 +0000
-Subject: [PATCH 02/10] Platform: corstone1000: Add IO test in ci_regressions
-
-The test is simply writing data on the edge of a block
-then reading back again.
-this test is preformed on two flash devices:
-- Nor Flash
-- Flash emu in the SRAM for testing
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I4950086e9e3dcbde29ab5b4ed5fe61fec7ebec86
-Upstream-Status: Accepted [TF-Mv1.8.0]
----
- .../ci_regression_tests/CMakeLists.txt        |  10 +
- .../Driver_Flash_SRAM_Emu.c                   | 327 ++++++++++++++++++
- .../ci_regression_tests/s_io_storage_test.c   | 147 ++++++++
- .../ci_regression_tests/s_io_storage_test.h   |  15 +
- .../corstone1000/ci_regression_tests/s_test.c |   5 +
- .../ci_regression_tests/s_test_config.cmake   |   5 +
- .../ci_regression_tests/test_flash.h          |  25 ++
- 7 files changed, 534 insertions(+)
- create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c
- create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c
- create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h
- create mode 100644 platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h
-
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt b/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt
-index 9543e29e55..405b2b3702 100644
---- a/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/CMakeLists.txt
-@@ -17,12 +17,18 @@ target_sources(tfm_test_suite_extra_s
-     PRIVATE
-         ${CMAKE_CURRENT_SOURCE_DIR}/s_test.c
-         ../Native_Driver/firewall.c
-+        ../io/io_storage.c
-+        ../io/io_block.c
-+        ../io/io_flash.c
-+        Driver_Flash_SRAM_Emu.c
-+        s_io_storage_test.c
- )
- 
- target_include_directories(tfm_test_suite_extra_s
-     PRIVATE
-         ../Device/Include
-         ../Native_Driver
-+        ../io
- )
- 
- target_link_libraries(tfm_test_suite_extra_s
-@@ -33,4 +39,8 @@ target_link_libraries(tfm_test_suite_extra_s
- target_compile_definitions(tfm_test_suite_extra_s
-     PRIVATE
-         $<$<BOOL:${PLATFORM_IS_FVP}>:PLATFORM_IS_FVP>
-+        TEST_FLASH_SIZE_IN_BYTES=${TEST_FLASH_SIZE_IN_BYTES}
-+        TEST_FLASH_SECTOR_SIZE_IN_BYTES=${TEST_FLASH_SECTOR_SIZE_IN_BYTES}
-+        TEST_FLASH_PAGE_SIZE=${TEST_FLASH_PAGE_SIZE}
-+        TEST_FLASH_PROGRAM_UNIT=${TEST_FLASH_PROGRAM_UNIT}
- )
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c b/platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c
-new file mode 100644
-index 0000000000..06b6b51c09
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/Driver_Flash_SRAM_Emu.c
-@@ -0,0 +1,327 @@
-+/*
-+ * Copyright (c) 2013-2022 ARM Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: Apache-2.0
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the License); you may
-+ * not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ * www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
-+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#include <string.h>
-+#include <stdint.h>
-+#include "Driver_Flash.h"
-+#include "test_flash.h"
-+#include "tfm_sp_log.h"
-+
-+#ifndef ARG_UNUSED
-+#define ARG_UNUSED(arg)  ((void)arg)
-+#endif
-+
-+/* Driver version */
-+#define ARM_FLASH_DRV_VERSION      ARM_DRIVER_VERSION_MAJOR_MINOR(1, 1)
-+#define ARM_FLASH_DRV_ERASE_VALUE  0xFF
-+
-+
-+/**
-+ * There is no real flash memory. This driver just emulates a flash
-+ * interface and behaviour on top of the SRAM memory.
-+ */
-+
-+/**
-+ * Data width values for ARM_FLASH_CAPABILITIES::data_width
-+ * \ref ARM_FLASH_CAPABILITIES
-+ */
-+ enum {
-+    DATA_WIDTH_8BIT   = 0u,
-+    DATA_WIDTH_16BIT,
-+    DATA_WIDTH_32BIT,
-+    DATA_WIDTH_ENUM_SIZE
-+};
-+
-+static const uint32_t data_width_byte[DATA_WIDTH_ENUM_SIZE] = {
-+    sizeof(uint8_t),
-+    sizeof(uint16_t),
-+    sizeof(uint32_t),
-+};
-+
-+
-+/*
-+ * ARM FLASH device structure
-+ *
-+ */
-+struct arm_flash_dev_t {
-+    const uint8_t* memory_base;   /*!< FLASH memory base address */
-+    ARM_FLASH_INFO *data;         /*!< FLASH data */
-+};
-+
-+/* Flash emulated memory */
-+static uint8_t flash_memory[TEST_FLASH_SIZE_IN_BYTES]
-+    __attribute__((aligned(TEST_FLASH_SECTOR_SIZE_IN_BYTES)));
-+
-+/* Flash Status */
-+static ARM_FLASH_STATUS FlashStatus = {0, 0, 0};
-+
-+/* Driver Version */
-+static const ARM_DRIVER_VERSION DriverVersion = {
-+    ARM_FLASH_API_VERSION,
-+    ARM_FLASH_DRV_VERSION
-+};
-+
-+/* Driver Capabilities */
-+static const ARM_FLASH_CAPABILITIES DriverCapabilities = {
-+    0, /* event_ready */
-+    0, /* data_width = 0:8-bit, 1:16-bit, 2:32-bit */
-+    1  /* erase_chip */
-+};
-+
-+static int32_t is_range_valid(struct arm_flash_dev_t *flash_dev,
-+                              uint32_t offset)
-+{
-+    uint32_t flash_limit = 0;
-+    int32_t rc = 0;
-+
-+    flash_limit = (flash_dev->data->sector_count * flash_dev->data->sector_size);
-+    if (offset > flash_limit) {
-+        rc = -1;
-+    }
-+    return rc;
-+}
-+
-+static int32_t is_write_aligned(struct arm_flash_dev_t *flash_dev,
-+                                uint32_t param)
-+{
-+    int32_t rc = 0;
-+
-+    if ((param % flash_dev->data->program_unit) != 0) {
-+        rc = -1;
-+    }
-+    return rc;
-+}
-+
-+static int32_t is_sector_aligned(struct arm_flash_dev_t *flash_dev,
-+                                 uint32_t offset)
-+{
-+    int32_t rc = 0;
-+
-+    if ((offset % flash_dev->data->sector_size) != 0) {
-+        rc = -1;
-+    }
-+    return rc;
-+}
-+
-+static int32_t is_flash_ready_to_write(const uint8_t *start_addr, uint32_t cnt)
-+{
-+    int32_t rc = 0;
-+    uint32_t i;
-+
-+    for (i = 0; i < cnt; i++) {
-+        if(start_addr[i] != ARM_FLASH_DRV_ERASE_VALUE) {
-+            rc = -1;
-+            break;
-+        }
-+    }
-+
-+    return rc;
-+}
-+
-+static ARM_FLASH_INFO ARM_TEST_FLASH_DEV_DATA = {
-+    .sector_info  = NULL,/* Uniform sector layout */
-+    .sector_count = TEST_FLASH_SIZE_IN_BYTES / TEST_FLASH_SECTOR_SIZE_IN_BYTES,
-+    .sector_size  = TEST_FLASH_SECTOR_SIZE_IN_BYTES,
-+    .page_size    = TEST_FLASH_PAGE_SIZE,
-+    .program_unit = TEST_FLASH_PROGRAM_UNIT,
-+    .erased_value = ARM_FLASH_DRV_ERASE_VALUE};
-+
-+static struct arm_flash_dev_t ARM_TEST_FLASH_DEV = {
-+    .memory_base = flash_memory,
-+    .data        = &(ARM_TEST_FLASH_DEV_DATA)};
-+
-+static struct arm_flash_dev_t *TEST_FLASH_DEV = &ARM_TEST_FLASH_DEV;
-+
-+/*
-+ * Functions
-+ */
-+
-+static ARM_DRIVER_VERSION ARM_Flash_GetVersion(void)
-+{
-+    return DriverVersion;
-+}
-+
-+static ARM_FLASH_CAPABILITIES ARM_Flash_GetCapabilities(void)
-+{
-+    return DriverCapabilities;
-+}
-+
-+static int32_t ARM_Flash_Initialize(ARM_Flash_SignalEvent_t cb_event)
-+{
-+    ARG_UNUSED(cb_event);
-+
-+    if (DriverCapabilities.data_width >= DATA_WIDTH_ENUM_SIZE) {
-+        return ARM_DRIVER_ERROR;
-+    }
-+
-+    /* Nothing to be done */
-+    return ARM_DRIVER_OK;
-+}
-+
-+static int32_t ARM_Flash_Uninitialize(void)
-+{
-+    /* Nothing to be done */
-+    return ARM_DRIVER_OK;
-+}
-+
-+static int32_t ARM_Flash_PowerControl(ARM_POWER_STATE state)
-+{
-+    switch (state) {
-+    case ARM_POWER_FULL:
-+        /* Nothing to be done */
-+        return ARM_DRIVER_OK;
-+        break;
-+
-+    case ARM_POWER_OFF:
-+    case ARM_POWER_LOW:
-+    default:
-+        return ARM_DRIVER_ERROR_UNSUPPORTED;
-+    }
-+}
-+
-+static int32_t ARM_Flash_ReadData(uint32_t addr, void *data, uint32_t cnt)
-+{
-+    int32_t rc = 0;
-+
-+    /* The addr given is a relative address*/
-+    uint32_t offset = addr;
-+    addr += (uint32_t)(TEST_FLASH_DEV->memory_base);
-+
-+    /* Conversion between data items and bytes */
-+    cnt *= data_width_byte[DriverCapabilities.data_width];
-+
-+    /* Check flash memory boundaries */
-+    rc = is_range_valid(TEST_FLASH_DEV, offset + cnt);
-+    if (rc != 0) {
-+        return ARM_DRIVER_ERROR_PARAMETER;
-+    }
-+
-+    /* Flash interface just emulated over SRAM, use memcpy */
-+    memcpy(data, (void *)addr, cnt);
-+
-+    /* Conversion between bytes and data items */
-+    cnt /= data_width_byte[DriverCapabilities.data_width];
-+
-+    return cnt;
-+}
-+
-+static int32_t ARM_Flash_ProgramData(uint32_t addr, const void *data,
-+                                     uint32_t cnt)
-+{
-+    int32_t rc = 0;
-+
-+    /* The addr given is a relative address*/
-+    uint32_t offset = addr;
-+    addr += (uint32_t)(TEST_FLASH_DEV->memory_base);
-+
-+    /* Conversion between data items and bytes */
-+    cnt *= data_width_byte[DriverCapabilities.data_width];
-+
-+    /* Check flash memory boundaries and alignment with minimal write size */
-+    rc  = is_range_valid(TEST_FLASH_DEV, offset + cnt);
-+    rc |= is_write_aligned(TEST_FLASH_DEV, offset);
-+    rc |= is_write_aligned(TEST_FLASH_DEV, cnt);
-+    if (rc != 0) {
-+        return ARM_DRIVER_ERROR_PARAMETER;
-+    }
-+
-+    /* Check if the flash area to write the data was erased previously */
-+    rc = is_flash_ready_to_write((const uint8_t*)addr, cnt);
-+    if (rc != 0) {
-+        return ARM_DRIVER_ERROR;
-+    }
-+
-+    /* Flash interface just emulated over SRAM, use memcpy */
-+    memcpy((void *)addr, data, cnt);
-+
-+    /* Conversion between bytes and data items */
-+    cnt /= data_width_byte[DriverCapabilities.data_width];
-+
-+    return cnt;
-+}
-+
-+static int32_t ARM_Flash_EraseSector(uint32_t addr)
-+{
-+    uint32_t rc = 0;
-+
-+    /* The addr given is a relative address*/
-+    uint32_t offset = addr;
-+    addr += (uint32_t)(TEST_FLASH_DEV->memory_base);
-+
-+    rc  = is_range_valid(TEST_FLASH_DEV, offset);
-+    rc |= is_sector_aligned(TEST_FLASH_DEV, offset);
-+    if (rc != 0) {
-+        return ARM_DRIVER_ERROR_PARAMETER;
-+    }
-+
-+    /* Flash interface just emulated over SRAM, use memset */
-+    memset((void *)addr,
-+           TEST_FLASH_DEV->data->erased_value,
-+           TEST_FLASH_DEV->data->sector_size);
-+    return ARM_DRIVER_OK;
-+}
-+
-+static int32_t ARM_Flash_EraseChip(void)
-+{
-+    uint32_t i;
-+    uint32_t addr = TEST_FLASH_DEV->memory_base;
-+    int32_t rc = ARM_DRIVER_ERROR_UNSUPPORTED;
-+
-+    /* Check driver capability erase_chip bit */
-+    if (DriverCapabilities.erase_chip == 1) {
-+        for (i = 0; i < TEST_FLASH_DEV->data->sector_count; i++) {
-+            /* Flash interface just emulated over SRAM, use memset */
-+            memset((void *)addr,
-+                   TEST_FLASH_DEV->data->erased_value,
-+                   TEST_FLASH_DEV->data->sector_size);
-+
-+            addr += TEST_FLASH_DEV->data->sector_size;
-+            rc = ARM_DRIVER_OK;
-+        }
-+    }
-+    return rc;
-+}
-+
-+static ARM_FLASH_STATUS ARM_Flash_GetStatus(void)
-+{
-+    return FlashStatus;
-+}
-+
-+static ARM_FLASH_INFO * ARM_Flash_GetInfo(void)
-+{
-+    return TEST_FLASH_DEV->data;
-+}
-+
-+
-+/* Global Variables */
-+
-+ARM_DRIVER_FLASH Driver_TEST_FLASH = {
-+    ARM_Flash_GetVersion,
-+    ARM_Flash_GetCapabilities,
-+    ARM_Flash_Initialize,
-+    ARM_Flash_Uninitialize,
-+    ARM_Flash_PowerControl,
-+    ARM_Flash_ReadData,
-+    ARM_Flash_ProgramData,
-+    ARM_Flash_EraseSector,
-+    ARM_Flash_EraseChip,
-+    ARM_Flash_GetStatus,
-+    ARM_Flash_GetInfo
-+};
-+
-+uintptr_t flash_base_address = flash_memory;
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c
-new file mode 100644
-index 0000000000..f8be384a74
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.c
-@@ -0,0 +1,147 @@
-+/*
-+ * Copyright (c) 2022, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#include "s_io_storage_test.h"
-+
-+#include "Driver_Flash.h"
-+#include "flash_layout.h"
-+#include "io_block.h"
-+#include "io_driver.h"
-+#include "io_flash.h"
-+#include "tfm_sp_log.h"
-+
-+#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(*(array)))
-+
-+extern ARM_DRIVER_FLASH Driver_FLASH0;
-+extern ARM_DRIVER_FLASH Driver_TEST_FLASH;
-+extern uintptr_t flash_base_address;
-+
-+void s_test_io_storage_multiple_flash_simultaneous(struct test_result_t *ret) {
-+    /* FLASH0 */
-+    static io_dev_connector_t* flash0_dev_con;
-+    static uint8_t local_block_flash0[FLASH_SECTOR_SIZE];
-+    ARM_FLASH_INFO* flash0_info = Driver_FLASH0.GetInfo();
-+    size_t flash0_block_size = flash0_info->sector_size;
-+    io_flash_dev_spec_t flash0_dev_spec = {
-+        .buffer = local_block_flash0,
-+        .bufferlen = flash0_block_size,
-+        .base_addr = FLASH_BASE_ADDRESS,
-+        .flash_driver = &Driver_FLASH0,
-+    };
-+    io_block_spec_t flash0_spec = {
-+        .offset = FLASH_BASE_ADDRESS,
-+        .length = flash0_info->sector_count * flash0_info->sector_size};
-+    uintptr_t flash0_dev_handle = NULL;
-+    uintptr_t flash0_handle = NULL;
-+
-+    /* EMU TEST FLASH */
-+    static io_dev_connector_t* flash_emu_dev_con;
-+    static uint8_t local_block_flash_emu[TEST_FLASH_SECTOR_SIZE_IN_BYTES]
-+        __attribute__((aligned(TEST_FLASH_SECTOR_SIZE_IN_BYTES)));
-+    ARM_FLASH_INFO* flash_emu_info = Driver_TEST_FLASH.GetInfo();
-+    size_t flash_emu_block_size = flash_emu_info->sector_size;
-+    io_flash_dev_spec_t flash_emu_dev_spec = {
-+        .buffer = local_block_flash_emu,
-+        .bufferlen = flash_emu_block_size,
-+        .base_addr = flash_base_address,
-+        .flash_driver = &Driver_TEST_FLASH,
-+    };
-+    io_block_spec_t flash_emu_spec = {
-+        .offset = flash_base_address,
-+        .length = flash_emu_info->sector_count * flash_emu_info->sector_size};
-+    uintptr_t flash_emu_dev_handle = NULL;
-+    uintptr_t flash_emu_handle = NULL;
-+
-+    /* Common */
-+    int rc = -1;
-+    static uint8_t test_data[] = {0xEE, 0xDD, 0xCC, 0xBB, 0xAA,
-+                                  0x10, 0x50, 0xA0, 0xD0, 0x51,
-+                                  0x55, 0x44, 0x33, 0x22, 0x11};
-+    static uint8_t actual_data[15];
-+    size_t bytes_written_count = 0;
-+    size_t bytes_read_count = 0;
-+
-+    memset(local_block_flash0, -1, sizeof(local_block_flash0));
-+    memset(local_block_flash_emu, -1, sizeof(local_block_flash_emu));
-+
-+    /* Register */
-+    register_io_dev_flash(&flash0_dev_con);
-+    register_io_dev_flash(&flash_emu_dev_con);
-+
-+    io_dev_open(flash0_dev_con, &flash0_dev_spec, &flash0_dev_handle);
-+    io_dev_open(flash_emu_dev_con, &flash_emu_dev_spec, &flash_emu_dev_handle);
-+
-+    /* Write Data */
-+    io_open(flash0_dev_handle, &flash0_spec, &flash0_handle);
-+    io_open(flash_emu_dev_handle, &flash_emu_spec, &flash_emu_handle);
-+
-+    io_seek(flash0_handle, IO_SEEK_SET,
-+            BANK_1_PARTITION_OFFSET + flash0_info->sector_size - 7);
-+    io_seek(flash_emu_handle, IO_SEEK_SET, flash_emu_info->sector_size - 7);
-+
-+    io_write(flash0_handle, test_data, ARRAY_LENGTH(test_data),
-+             &bytes_written_count);
-+    if (bytes_written_count != ARRAY_LENGTH(test_data)) {
-+        LOG_ERRFMT("io_write failed to write %d bytes for flash0",
-+                   ARRAY_LENGTH(test_data));
-+        LOG_ERRFMT("bytes_written_count %d for flash0", bytes_written_count);
-+        ret->val = TEST_FAILED;
-+    }
-+    io_write(flash_emu_handle, test_data, ARRAY_LENGTH(test_data),
-+             &bytes_written_count);
-+    if (bytes_written_count != ARRAY_LENGTH(test_data)) {
-+        LOG_ERRFMT("io_write failed to write %d bytes for flash emu",
-+                   ARRAY_LENGTH(test_data));
-+        LOG_ERRFMT("bytes_written_count %d for flash emu", bytes_written_count);
-+        ret->val = TEST_FAILED;
-+    }
-+    io_close(flash0_handle);
-+    io_close(flash_emu_handle);
-+
-+    /* Read Data */
-+    io_open(flash0_dev_handle, &flash0_spec, &flash0_handle);
-+    io_open(flash_emu_dev_handle, &flash_emu_spec, &flash_emu_handle);
-+
-+    io_seek(flash0_handle, IO_SEEK_SET,
-+            BANK_1_PARTITION_OFFSET + flash0_info->sector_size - 7);
-+    io_seek(flash_emu_handle, IO_SEEK_SET, flash_emu_info->sector_size - 7);
-+
-+    /* Flash0 */
-+    io_read(flash0_handle, actual_data, ARRAY_LENGTH(actual_data),
-+            &bytes_read_count);
-+    if (bytes_read_count != ARRAY_LENGTH(test_data)) {
-+        LOG_ERRFMT("io_read failed to read %d bytes for flash0",
-+                   ARRAY_LENGTH(test_data));
-+        LOG_ERRFMT("bytes_read_count %d for flash0", bytes_read_count);
-+        ret->val = TEST_FAILED;
-+    }
-+    if (memcmp((uint8_t*)test_data, actual_data, ARRAY_LENGTH(actual_data)) !=
-+        0) {
-+        LOG_ERRFMT("Data written != Data read\r\n");
-+        ret->val = TEST_FAILED;
-+    }
-+
-+    memset(actual_data, -1, sizeof(actual_data));
-+
-+    /* Flash Emu */
-+    io_read(flash_emu_handle, actual_data, ARRAY_LENGTH(actual_data),
-+            &bytes_read_count);
-+    if (bytes_read_count != ARRAY_LENGTH(test_data)) {
-+        LOG_ERRFMT("io_read failed to read %d bytes for flash emu",
-+                   ARRAY_LENGTH(test_data));
-+        LOG_ERRFMT("bytes_read_count %d for flash emu", bytes_read_count);
-+        ret->val = TEST_FAILED;
-+    }
-+    if (memcmp((uint8_t*)test_data, actual_data, ARRAY_LENGTH(actual_data)) !=
-+        0) {
-+        LOG_ERRFMT("Data written != Data read\r\n");
-+        ret->val = TEST_FAILED;
-+    }
-+
-+    LOG_INFFMT("PASS: %s\n\r", __func__);
-+    ret->val = TEST_PASSED;
-+}
-\ No newline at end of file
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h
-new file mode 100644
-index 0000000000..fa9012776f
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_io_storage_test.h
-@@ -0,0 +1,15 @@
-+/*
-+ * Copyright (c) 2022, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#ifndef __S_IO_STORAGE_TEST_H__
-+#define __S_IO_STORAGE_TEST_H__
-+
-+#include "extra_s_tests.h"
-+
-+void s_test_io_storage_multiple_flash_simultaneous(struct test_result_t *ret);
-+
-+#endif /* __S_IO_STORAGE_TEST_H__ */
-\ No newline at end of file
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c
-index a0bf47a04b..9a8453ff57 100644
---- a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test.c
-@@ -11,6 +11,7 @@
- #include "platform_base_address.h"
- #include "firewall.h"
- #include "tfm_sp_log.h"
-+#include "s_io_storage_test.h"
- 
- /* TODO: if needed each test function can be made as a separate test case, in
-  * such case EXTRA_TEST_XX definitions can be removed */
-@@ -19,6 +20,8 @@
- 
- #define DISABLED_TEST 0
- 
-+int test_io_storage_multiple_flash_simultaneous(void);
-+
- enum host_firewall_host_comp_id_t {
-   HOST_FCTRL = (0x00u),
-   COMP_SYSPERIPH,
-@@ -184,6 +187,8 @@ void s_test(struct test_result_t *ret)
- static struct test_t plat_s_t[] = {
-     {&s_test, "TFM_S_EXTRA_TEST_1001",
-      "Extra Secure test"},
-+    {&s_test_io_storage_multiple_flash_simultaneous, "TFM_S_EXTRA_TEST_1002",
-+     "Extra Secure test: io storage access multiple flash simultaneous"},
- };
- 
- void register_testsuite_extra_s_interface(struct test_suite_t *p_test_suite)
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake
-index bb8d26bf1c..05b7cd7852 100644
---- a/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/s_test_config.cmake
-@@ -6,3 +6,8 @@
- #-------------------------------------------------------------------------------
- 
- ############ Define secure test specific cmake configurations here #############
-+
-+set (TEST_FLASH_SIZE_IN_BYTES         48U  CACHE STRING   "The size of the emulated flash used in io tests")
-+set (TEST_FLASH_SECTOR_SIZE_IN_BYTES  16U  CACHE STRING   "The sector size of the emulated flash used in io tests")
-+set (TEST_FLASH_PAGE_SIZE              8U  CACHE STRING   "The page size of the emulated flash used in io tests")
-+set (TEST_FLASH_PROGRAM_UNIT           1U  CACHE STRING   "The program unit of the emulated flash used in io tests")
-diff --git a/platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h b/platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h
-new file mode 100644
-index 0000000000..4d073a1d71
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/ci_regression_tests/test_flash.h
-@@ -0,0 +1,25 @@
-+/*
-+ * Copyright (c) 2017-2022 Arm Limited. All rights reserved.
-+ *
-+ * Licensed under the Apache License, Version 2.0 (the "License");
-+ * you may not use this file except in compliance with the License.
-+ * You may obtain a copy of the License at
-+ *
-+ *     http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an "AS IS" BASIS,
-+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#ifndef __TEST_FLASH_H__
-+#define __TEST_FLASH_H__
-+
-+#define TEST_FLASH_SIZE_IN_BYTES             (48)    // 48 bytes
-+#define TEST_FLASH_SECTOR_SIZE_IN_BYTES      (16)    // 16 bytes
-+#define TEST_FLASH_PAGE_SIZE                 (8U)    // 8 bytes
-+#define TEST_FLASH_PROGRAM_UNIT              (1U)    /* 1 B */
-+
-+#endif /* __TEST_FLASH_H__ */
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch
new file mode 100644
index 0000000..3d7fc4b
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch
@@ -0,0 +1,307 @@
+From 4a4d1b0a5a2455ad799a45f7f87c0c9fd0173034 Mon Sep 17 00:00:00 2001
+From: Rui Miguel Silva <rui.silva@linaro.org>
+Date: Wed, 29 Mar 2023 10:58:32 +0100
+Subject: [PATCH] Platform: Corstone1000: get fwu and private metadata from gpt
+
+Read and Write the FWU metadata and private metadata using instead
+static flash offsets get the partitions and start address from gpt
+partition table.
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20551]
+Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+---
+ .../target/arm/corstone1000/CMakeLists.txt    |  7 ++
+ .../corstone1000/fw_update_agent/fwu_agent.c  | 90 +++++++++++++++----
+ .../target/arm/corstone1000/partition/efi.h   |  1 +
+ .../arm/corstone1000/partition/partition.c    | 14 +++
+ .../arm/corstone1000/partition/partition.h    |  1 +
+ .../ext/target/arm/corstone1000/platform.h    |  5 ++
+ 6 files changed, 99 insertions(+), 19 deletions(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
+index 19863bcdb6d2..f232c7639bd5 100644
+--- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
++++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
+@@ -64,6 +64,8 @@ target_include_directories(platform_s
+         cc312
+         fw_update_agent
+         soft_crc
++        io
++        partition
+ )
+ 
+ target_sources(platform_s
+@@ -81,6 +83,11 @@ target_sources(platform_s
+         fw_update_agent/fwu_agent.c
+         fw_update_agent/uefi_fmp.c
+         soft_crc/soft_crc.c
++        io/io_block.c
++        io/io_flash.c
++        io/io_storage.c
++        partition/partition.c
++        partition/gpt.c
+         $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
+ )
+ 
+diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
+index b6ed656de833..9c76b25a3a38 100644
+--- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
++++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
+@@ -14,6 +14,8 @@
+ #include "region_defs.h"
+ #include "uefi_capsule_parser.h"
+ #include "flash_common.h"
++#include "partition.h"
++#include "platform.h"
+ #include "platform_base_address.h"
+ #include "platform_description.h"
+ #include "tfm_plat_nv_counters.h"
+@@ -146,6 +148,8 @@ extern ARM_DRIVER_FLASH FWU_METADATA_FLASH_DEV;
+ static enum fwu_agent_error_t private_metadata_read(
+         struct fwu_private_metadata* p_metadata)
+ {
++    partition_entry_t *part;
++    uuid_t private_uuid = PRIVATE_METADATA_TYPE_UUID;
+     int ret;
+ 
+     FWU_LOG_MSG("%s: enter\n\r", __func__);
+@@ -154,7 +158,13 @@ static enum fwu_agent_error_t private_metadata_read(
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, p_metadata,
++    part = get_partition_entry_by_type(&private_uuid);
++    if (!part) {
++        FWU_LOG_MSG("Private metadata partition not found\n\r");
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ReadData(part->start, p_metadata,
+                                           sizeof(struct fwu_private_metadata));
+     if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
+         return FWU_AGENT_ERROR;
+@@ -169,6 +179,8 @@ static enum fwu_agent_error_t private_metadata_read(
+ static enum fwu_agent_error_t private_metadata_write(
+         struct fwu_private_metadata* p_metadata)
+ {
++    uuid_t private_uuid = PRIVATE_METADATA_TYPE_UUID;
++    partition_entry_t *part;
+     int ret;
+ 
+     FWU_LOG_MSG("%s: enter: boot_index = %u\n\r", __func__,
+@@ -178,12 +190,18 @@ static enum fwu_agent_error_t private_metadata_write(
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET);
++    part = get_partition_entry_by_type(&private_uuid);
++    if (!part) {
++        FWU_LOG_MSG("Private metadata partition not found\n\r");
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(part->start);
+     if (ret != ARM_DRIVER_OK) {
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET,
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(part->start,
+                                 p_metadata, sizeof(struct fwu_private_metadata));
+     if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
+         return FWU_AGENT_ERROR;
+@@ -219,16 +237,25 @@ static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
+ 
+ static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
+ {
++    uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
++    partition_entry_t *part;
+     int ret;
+ 
+-    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
+-                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
+-
+     if (!p_metadata) {
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
++    part = get_partition_entry_by_type(&metadata_uuid);
++    if (!part) {
++        FWU_LOG_MSG("%s: FWU metadata partition not found\n\r", __func__);
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  part->start, sizeof(struct fwu_metadata));
++
++
++    ret = FWU_METADATA_FLASH_DEV.ReadData(part->start,
+                                 p_metadata, sizeof(struct fwu_metadata));
+     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
+         return FWU_AGENT_ERROR;
+@@ -242,16 +269,24 @@ static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metada
+ 
+ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
+ {
++    uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
++    partition_entry_t *part;
+     int ret;
+ 
+-    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
+-                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
+-
+     if (!p_metadata) {
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
++    part = get_partition_entry_by_type(&metadata_uuid);
++    if (!part) {
++        FWU_LOG_MSG("%s: FWU metadata partition not found\n\r", __func__);
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  part->start, sizeof(struct fwu_metadata));
++
++    ret = FWU_METADATA_FLASH_DEV.ReadData(part->start,
+                                 p_metadata, sizeof(struct fwu_metadata));
+     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
+         return FWU_AGENT_ERROR;
+@@ -270,35 +305,49 @@ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
+ static enum fwu_agent_error_t metadata_write(
+                         struct fwu_metadata *p_metadata)
+ {
++    uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
++    partition_entry_t *part;
+     int ret;
+ 
+-    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
+-                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
+-
+     if (!p_metadata) {
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_1_OFFSET);
++    part = get_partition_entry_by_type(&metadata_uuid);
++    if (!part) {
++        FWU_LOG_MSG("%s: FWU metadata partition not found\n\r", __func__);
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  part->start, sizeof(struct fwu_metadata));
++
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(part->start);
+     if (ret != ARM_DRIVER_OK) {
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_1_OFFSET,
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(part->start,
+                                 p_metadata, sizeof(struct fwu_metadata));
+     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
+         return FWU_AGENT_ERROR;
+     }
+ 
++    part = get_partition_replica_by_type(&metadata_uuid);
++    if (!part) {
++        FWU_LOG_MSG("%s: FWU metadata replica partition not found\n\r", __func__);
++        return FWU_AGENT_ERROR;
++    }
++
+     FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
+-                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
++                  part->start, sizeof(struct fwu_metadata));
+ 
+-    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(part->start);
+     if (ret != ARM_DRIVER_OK) {
+         return FWU_AGENT_ERROR;
+     }
+ 
+-    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(part->start,
+                                 p_metadata, sizeof(struct fwu_metadata));
+     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
+         return FWU_AGENT_ERROR;
+@@ -355,6 +404,9 @@ enum fwu_agent_error_t fwu_metadata_provision(void)
+ 
+     FWU_LOG_MSG("%s: enter\n\r", __func__);
+ 
++    plat_io_storage_init();
++    partition_init(PLATFORM_GPT_IMAGE);
++
+     ret = fwu_metadata_init();
+     if (ret) {
+         return ret;
+diff --git a/platform/ext/target/arm/corstone1000/partition/efi.h b/platform/ext/target/arm/corstone1000/partition/efi.h
+index f66daffb32d6..7e6a4bc883e6 100644
+--- a/platform/ext/target/arm/corstone1000/partition/efi.h
++++ b/platform/ext/target/arm/corstone1000/partition/efi.h
+@@ -8,6 +8,7 @@
+ #ifndef DRIVERS_PARTITION_EFI_H
+ #define DRIVERS_PARTITION_EFI_H
+ 
++#include <stdint.h>
+ #include <string.h>
+ 
+ #include "uuid.h"
+diff --git a/platform/ext/target/arm/corstone1000/partition/partition.c b/platform/ext/target/arm/corstone1000/partition/partition.c
+index afc6aa1c5cb8..d76e123d728f 100644
+--- a/platform/ext/target/arm/corstone1000/partition/partition.c
++++ b/platform/ext/target/arm/corstone1000/partition/partition.c
+@@ -293,6 +293,20 @@ const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_uuid) {
+     return NULL;
+ }
+ 
++const partition_entry_t *get_partition_replica_by_type(const uuid_t *type_uuid) {
++    int count = 0;
++    int i;
++
++    for (i = 0; i < list.entry_count; i++) {
++        if (guidcmp(type_uuid, &list.list[i].type_guid) == 0) {
++            if (++count == 2)
++                 return &list.list[i];
++        }
++    }
++
++    return NULL;
++}
++
+ const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid) {
+     int i;
+ 
+diff --git a/platform/ext/target/arm/corstone1000/partition/partition.h b/platform/ext/target/arm/corstone1000/partition/partition.h
+index 54af47aca415..450cf20a073c 100644
+--- a/platform/ext/target/arm/corstone1000/partition/partition.h
++++ b/platform/ext/target/arm/corstone1000/partition/partition.h
+@@ -40,6 +40,7 @@ typedef struct partition_entry_list {
+ int load_partition_table(unsigned int image_id);
+ const partition_entry_t *get_partition_entry(const char *name);
+ const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_guid);
++const partition_entry_t *get_partition_replica_by_type(const uuid_t *type_uuid);
+ const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid);
+ const partition_entry_list_t *get_partition_entry_list(void);
+ void partition_init(unsigned int image_id);
+diff --git a/platform/ext/target/arm/corstone1000/platform.h b/platform/ext/target/arm/corstone1000/platform.h
+index 894f5e309029..a88093ed4f9d 100644
+--- a/platform/ext/target/arm/corstone1000/platform.h
++++ b/platform/ext/target/arm/corstone1000/platform.h
+@@ -13,6 +13,11 @@ typedef enum {
+     PLATFORM_IMAGE_COUNT,
+ }platform_image_id_t;
+ 
++#define FWU_METADATA_TYPE_UUID \
++     ((uuid_t){{0xa0, 0x84, 0x7a, 0x8a}, {0x87, 0x83}, {0xf6, 0x40}, 0xab,  0x41, {0xa8, 0xb9, 0xa5, 0xa6, 0x0d, 0x23}})
++#define PRIVATE_METADATA_TYPE_UUID \
++     ((uuid_t){{0xc3, 0x5d, 0xb5, 0xec}, {0xb7, 0x8a}, {0x84, 0x4a}, 0xab,  0x56, {0xeb, 0x0a, 0x99, 0x74, 0xdb, 0x42}})
++
+ /* Initialize io storage of the platform */
+ int32_t plat_io_storage_init(void);
+ 
+-- 
+2.40.0
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-soft-crc32-calculation.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-soft-crc32-calculation.patch
deleted file mode 100644
index 5983a49..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-soft-crc32-calculation.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From 2de11bf9de6d0471772c100c72712d2a09c7cefc Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Wed, 21 Dec 2022 14:44:31 +0000
-Subject: [PATCH 3/10] Platform: corstone1000: Add soft crc32 calculation
-
-crc32 is required by different components.
-for example: during bl1 provisioning crc32 calculation is required
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../arm/corstone1000/soft_crc/soft_crc.c      | 121 ++++++++++++++++++
- .../arm/corstone1000/soft_crc/soft_crc.h      |  18 +++
- 2 files changed, 139 insertions(+)
- create mode 100644 platform/ext/target/arm/corstone1000/soft_crc/soft_crc.c
- create mode 100644 platform/ext/target/arm/corstone1000/soft_crc/soft_crc.h
-
-diff --git a/platform/ext/target/arm/corstone1000/soft_crc/soft_crc.c b/platform/ext/target/arm/corstone1000/soft_crc/soft_crc.c
-new file mode 100644
-index 0000000000..85f1e30d9f
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/soft_crc/soft_crc.c
-@@ -0,0 +1,121 @@
-+/* Copyright (C) 1986 Gary S. Brown.  You may use this program, or
-+   code or tables extracted from it, as desired without restriction.*/
-+
-+/* First, the polynomial itself and its table of feedback terms.  The  */
-+/* polynomial is                                                       */
-+/* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */
-+/* Note that we take it "backwards" and put the highest-order term in  */
-+/* the lowest-order bit.  The X^32 term is "implied"; the LSB is the   */
-+/* X^31 term, etc.  The X^0 term (usually shown as "+1") results in    */
-+/* the MSB being 1.                                                    */
-+
-+/* Note that the usual hardware shift register implementation, which   */
-+/* is what we're using (we're merely optimizing it by doing eight-bit  */
-+/* chunks at a time) shifts bits into the lowest-order term.  In our   */
-+/* implementation, that means shifting towards the right.  Why do we   */
-+/* do it this way?  Because the calculated CRC must be transmitted in  */
-+/* order from highest-order term to lowest-order term.  UARTs transmit */
-+/* characters in order from LSB to MSB.  By storing the CRC this way,  */
-+/* we hand it to the UART in the order low-byte to high-byte; the UART */
-+/* sends each low-bit to hight-bit; and the result is transmission bit */
-+/* by bit from highest- to lowest-order term without requiring any bit */
-+/* shuffling on our part.  Reception works similarly.                  */
-+
-+/* The feedback terms table consists of 256, 32-bit entries.  Notes:   */
-+/*                                                                     */
-+/*  1. The table can be generated at runtime if desired; code to do so */
-+/*     is shown later.  It might not be obvious, but the feedback      */
-+/*     terms simply represent the results of eight shift/xor opera-    */
-+/*     tions for all combinations of data and CRC register values.     */
-+/*                                                                     */
-+/*  2. The CRC accumulation logic is the same for all CRC polynomials, */
-+/*     be they sixteen or thirty-two bits wide.  You simply choose the */
-+/*     appropriate table.  Alternatively, because the table can be     */
-+/*     generated at runtime, you can start by generating the table for */
-+/*     the polynomial in question and use exactly the same "updcrc",   */
-+/*     if your application needn't simultaneously handle two CRC       */
-+/*     polynomials.  (Note, however, that XMODEM is strange.)          */
-+/*                                                                     */
-+/*  3. For 16-bit CRCs, the table entries need be only 16 bits wide;   */
-+/*     of course, 32-bit entries work OK if the high 16 bits are zero. */
-+/*                                                                     */
-+/*  4. The values must be right-shifted by eight bits by the "updcrc"  */
-+/*     logic; the shift must be unsigned (bring in zeroes).  On some   */
-+/*     hardware you could probably optimize the shift in assembler by  */
-+/*     using byte-swap instructions.                                   */
-+
-+/**
-+ * The code derived from work by Gary S. Brown.
-+*/
-+
-+#include "soft_crc.h"
-+
-+
-+const static uint32_t crc_32_tab[] = { /* CRC polynomial 0xedb88320 */
-+0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
-+0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
-+0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
-+0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
-+0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
-+0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
-+0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
-+0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
-+0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
-+0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
-+0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
-+0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
-+0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
-+0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
-+0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
-+0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
-+0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
-+0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
-+0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
-+0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
-+0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
-+0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
-+0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
-+0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
-+0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
-+0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
-+0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
-+0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
-+0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
-+0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
-+0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
-+0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
-+0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
-+0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
-+0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
-+0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
-+0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
-+0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
-+0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
-+0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
-+0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
-+0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
-+0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-+};
-+
-+#define UPDC32(octet,crc) (crc_32_tab[((crc)\
-+     ^ ((uint8_t)octet)) & 0xff] ^ ((crc) >> 8))
-+
-+static inline uint32_t crc32buf(char *buf, size_t len)
-+{
-+      register uint32_t oldcrc32;
-+
-+      oldcrc32 = 0xFFFFFFFF;
-+
-+      for ( ; len; --len, ++buf)
-+      {
-+            oldcrc32 = UPDC32(*buf, oldcrc32);
-+      }
-+
-+      return ~oldcrc32;
-+}
-+
-+/* Calculate crc32 */
-+uint32_t crc32(const void *buf, size_t len) {
-+    return crc32buf(buf, len);
-+}
-+
-diff --git a/platform/ext/target/arm/corstone1000/soft_crc/soft_crc.h b/platform/ext/target/arm/corstone1000/soft_crc/soft_crc.h
-new file mode 100644
-index 0000000000..e5b06075c9
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/soft_crc/soft_crc.h
-@@ -0,0 +1,18 @@
-+/*
-+ * Copyright (c) 2023, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#ifndef __SOFT_CRC_H__
-+#define __SOFT_CRC_H__
-+
-+#include <stddef.h>
-+#include <stdint.h>
-+
-+/* Calculate crc32 */
-+uint32_t crc32(const void *buf, size_t len);
-+
-+#endif /* __SOFT_CRC_H__ */
-+
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-watchdog_reset_timer.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-watchdog_reset_timer.patch
new file mode 100644
index 0000000..3ffd83e
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-watchdog_reset_timer.patch
@@ -0,0 +1,47 @@
+From 33d8f45c8f14e9e0d7add7d2804ed76c7d7fd0c2 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Sat, 25 Feb 2023 09:04:38 +0000
+Subject: [PATCH 1/7] Platform: corstone1000: Add watchdog_reset_timer
+
+From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+
+Implement watchdog_reset_timer
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20552]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Change-Id: I2684ca54f9a456b22efcbcd364abef3537d4c91f
+---
+ .../arm/corstone1000/Native_Driver/watchdog.c   | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c b/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c
+index 4e024a3b1..f6e182194 100644
+--- a/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c
++++ b/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c
+@@ -80,6 +80,23 @@ int corstone1000_watchdog_init()
+     return ARM_DRIVER_OK;
+ }
+ 
++/**
++ *  \brief Reset the Secure Enclave & SoC Watchdog's.
++ *
++ *  \returns ARM Driver return code.
++ */
++int corstone1000_watchdog_reset_timer() {
++    /* Unlock, clear and lock the watchdog timer */
++    arm_watchdog_unlock(&SE_WD_DEV);
++    arm_watchdog_clear_interrupt_and_refresh_counter(&SE_WD_DEV);
++    arm_watchdog_lock(&SE_WD_DEV);
++    /* Unlock, clear and lock the watchdog timer */
++    arm_watchdog_unlock(&SOC_WD_DEV);
++    arm_watchdog_clear_interrupt_and_refresh_counter(&SOC_WD_DEV);
++    arm_watchdog_lock(&SOC_WD_DEV);
++    return ARM_DRIVER_OK;
++}
++
+ /*
+  * Secure Host Watchdog WS1 Handler
+  * efi_reset_system from the host triggers "Secure
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch
new file mode 100644
index 0000000..0ad4494
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch
@@ -0,0 +1,1034 @@
+From e46fd33355b54c08d1764c2a8e7b553960d61157 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Sat, 25 Feb 2023 10:29:55 +0000
+Subject: [PATCH 1/6] Platform: corstone1000: Replace MCUBOOT BL1 by TFM's
+
+From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+
+Replace The current BL1 (MCUBOOT) with the TFM BL1
+by enabling
+- PLATFORM_DEFAULT_BL1
+- Update linkerscripts
+- Update CMakeFile
+- Adapt boot_hal
+- Adapt provisioning (to use the provision bundle)
+- Adapt flash_layout and region_defs
+- Update documentation of corstone1000 build and run sections
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20553]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Change-Id: I224b24d0f4423e62468e609c11a239a4575cdae4
+---
+ .../target/arm/corstone1000/CMakeLists.txt    |  70 +++++-
+ .../Device/Include/boot_measurement.h         |  24 +++
+ .../Device/Include/platform_base_address.h    |   3 +
+ .../Device/Source/gcc/corstone1000_bl1_1.ld   | 203 ++++++++++++++++++
+ ...stone1000_bl1.ld => corstone1000_bl1_2.ld} |   8 +-
+ .../target/arm/corstone1000/bl1/bl1_rotpk.c   |  48 -----
+ .../bl1/{bl1_boot_hal.c => boot_hal_bl1.c}    | 102 ++++-----
+ .../arm/corstone1000/bl1/flash_map_extended.c | 103 ---------
+ .../arm/corstone1000/bl1/provisioning.c       | 109 +++++-----
+ .../ext/target/arm/corstone1000/config.cmake  |  18 +-
+ .../arm/corstone1000/partition/flash_layout.h |  10 -
+ .../arm/corstone1000/partition/region_defs.h  |  37 +++-
+ 12 files changed, 434 insertions(+), 301 deletions(-)
+ create mode 100644 platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h
+ create mode 100644 platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+ rename platform/ext/target/arm/corstone1000/Device/Source/gcc/{corstone1000_bl1.ld => corstone1000_bl1_2.ld} (95%)
+ delete mode 100644 platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c
+ rename platform/ext/target/arm/corstone1000/bl1/{bl1_boot_hal.c => boot_hal_bl1.c} (90%)
+ delete mode 100644 platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c
+
+diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
+index 19863bcdb..a4fe28c08 100644
+--- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
++++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
+@@ -41,6 +41,23 @@ target_add_scatter_file(bl2
+         $<$<C_COMPILER_ID:GNU>:${PLATFORM_DIR}/ext/common/gcc/tfm_common_bl2.ld>
+ )
+ 
++target_sources(bl1_1
++PRIVATE
++    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/startup_corstone1000.c>
++)
++
++target_add_scatter_file(bl1_1
++    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/gcc/corstone1000_bl1_1.ld>
++)
++
++target_sources(bl1_2
++PRIVATE
++    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/startup_corstone1000.c>
++)
++target_add_scatter_file(bl1_2
++    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/gcc/corstone1000_bl1_2.ld>
++)
++
+ #========================= Platform Secure ====================================#
+ 
+ add_subdirectory(openamp)
+@@ -115,6 +132,55 @@ if (TFM_PARTITION_CRYPTO)
+     )
+ endif()
+ 
++#========================= Platform BL1 =======================================#
++
++target_sources(platform_bl1
++    PRIVATE
++        ./Device/Source/system_core_init.c
++        ./Device/Source/device_definition.c
++        ./bl1/boot_hal_bl1.c
++        ./Native_Driver/firewall.c
++        ./CMSIS_Driver/Driver_Flash.c
++        ./CMSIS_Driver/Driver_USART.c
++        ./Native_Driver/uart_pl011_drv.c
++        $<$<BOOL:${PLATFORM_IS_FVP}>:${CMAKE_CURRENT_SOURCE_DIR}/Native_Driver/cfi_drv.c>
++        $<$<BOOL:${PLATFORM_IS_FVP}>:${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c>
++        $<$<NOT:$<BOOL:${PLATFORM_IS_FVP}>>:${PLATFORM_DIR}/ext/target/arm/drivers/qspi/xilinx_pg153_axi/xilinx_pg153_axi_qspi_controller_drv.c>
++        $<$<NOT:$<BOOL:${PLATFORM_IS_FVP}>>:${PLATFORM_DIR}/ext/target/arm/drivers/flash/n25q256a/spi_n25q256a_flash_lib.c>
++        $<$<NOT:$<BOOL:${PLATFORM_IS_FVP}>>:${PLATFORM_DIR}/ext/target/arm/drivers/flash/sst26vf064b/spi_sst26vf064b_flash_lib.c>
++        ./fw_update_agent/uefi_capsule_parser.c
++        ./fw_update_agent/fwu_agent.c
++        ./fw_update_agent/uefi_fmp.c
++        ./soft_crc/soft_crc.c
++        ./Native_Driver/arm_watchdog_drv.c
++        ./Native_Driver/watchdog.c
++        ./bl1/provisioning.c
++        $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
++)
++
++target_compile_definitions(platform_bl1
++    PUBLIC
++        $<$<BOOL:${PLATFORM_IS_FVP}>:PLATFORM_IS_FVP>
++        $<$<AND:$<BOOL:${CONFIG_TFM_BOOT_STORE_MEASUREMENTS}>,$<BOOL:${TFM_PARTITION_MEASURED_BOOT}>>:MEASURED_BOOT_API>
++        $<$<BOOL:${PLATFORM_DEFAULT_OTP_WRITEABLE}>:OTP_WRITEABLE>
++)
++
++target_include_directories(platform_bl1_interface
++    INTERFACE
++        .
++        ./Device/Include
++        ./Device/Config
++        ./Native_Driver
++        ./CMSIS_Driver/Config
++        ./fw_update_agent
++        ./soft_crc
++        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common
++        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata
++        ${PLATFORM_DIR}/ext/target/arm/drivers/qspi/xilinx_pg153_axi/
++        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/n25q256a/
++        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/sst26vf064b/
++)
++
+ #========================= Platform BL2 =======================================#
+ 
+ set(BL2_SOURCE ${CMAKE_SOURCE_DIR}/bl2)
+@@ -214,10 +280,6 @@ target_include_directories(platform_bl2
+         $<BUILD_INTERFACE:${BL2_SOURCE}/ext/mcuboot/include>
+ )
+ 
+-#========================= BL1 component =======================================#
+-
+-add_subdirectory(bl1)
+-
+ #========================= ns_agent_mailbox ===================================#
+ 
+ target_sources(tfm_psa_rot_partition_ns_agent_mailbox
+diff --git a/platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h b/platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h
+new file mode 100644
+index 000000000..a47bdb148
+--- /dev/null
++++ b/platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h
+@@ -0,0 +1,24 @@
++/*
++ * Copyright (c) 2023, Arm Limited. All rights reserved.
++ *
++ * SPDX-License-Identifier: BSD-3-Clause
++ *
++ */
++
++#ifndef __BOOT_MEASUREMENT_H__
++#define __BOOT_MEASUREMENT_H__
++
++enum boot_measurement_slot_t {
++    BOOT_MEASUREMENT_SLOT_BL1_2 = 0,
++    BOOT_MEASUREMENT_SLOT_BL2,
++    BOOT_MEASUREMENT_SLOT_RT_0,
++    BOOT_MEASUREMENT_SLOT_RT_1,
++    BOOT_MEASUREMENT_SLOT_RT_2,
++    BOOT_MEASUREMENT_SLOT_MAX = 32,
++    BOOT_MEASUREMENT_SLOT_MAX_THEORETICAL = 63  /* Slot index is stored in
++                                                 * 6 bits in the shared
++                                                 * memory area.
++                                                 */
++};
++
++#endif /* __BOOT_MEASUREMENT_H__ */
+diff --git a/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h b/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h
+index 5cca4c4a1..416f0ebcd 100644
+--- a/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h
++++ b/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h
+@@ -79,4 +79,7 @@
+ #define CORSTONE1000_HOST_AXI_QSPI_CTRL_REG_BASE_SE_SECURE_FLASH (0x90010000U) /* AXI QSPI Controller for SE FLash  */
+ #define CORSTONE1000_HOST_DRAM_UEFI_CAPSULE        (0xA0000000U) /* 1.5 GB DDR                        */
+ 
++/* Map Component definitions to Corstone definitions */
++#define CC3XX_BASE_S        CORSTONE1000_CRYPTO_ACCELERATOR_BASE
++
+ #endif  /* __PLATFORM_BASE_ADDRESS_H__ */
+diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+new file mode 100644
+index 000000000..d4eca2841
+--- /dev/null
++++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+@@ -0,0 +1,203 @@
++;/*
++; * Copyright (c) 2009-2022, Arm Limited. All rights reserved.
++; *
++; * Licensed under the Apache License, Version 2.0 (the "License");
++; * you may not use this file except in compliance with the License.
++; * You may obtain a copy of the License at
++; *
++; *     http://www.apache.org/licenses/LICENSE-2.0
++; *
++; * Unless required by applicable law or agreed to in writing, software
++; * distributed under the License is distributed on an "AS IS" BASIS,
++; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++; * See the License for the specific language governing permissions and
++; * limitations under the License.
++; *
++; *
++; * This file is derivative of CMSIS V5.00 gcc_arm.ld
++; */
++
++/* Linker script to configure memory regions. */
++/* This file will be run trough the pre-processor. */
++
++#include "region_defs.h"
++
++MEMORY
++{
++    FLASH (rx)  : ORIGIN = BL1_1_CODE_START, LENGTH = BL1_1_CODE_SIZE
++    RAM   (rwx) : ORIGIN = BL1_1_DATA_START, LENGTH = BL1_1_DATA_SIZE
++}
++
++__heap_size__  = BL1_1_HEAP_SIZE;
++__msp_stack_size__ = BL1_1_MSP_STACK_SIZE;
++
++/* Library configurations */
++GROUP(libgcc.a libc.a libm.a libnosys.a)
++
++ENTRY(Reset_Handler)
++
++SECTIONS
++{
++    .text :
++    {
++        KEEP(*(.vectors))
++        __Vectors_End = .;
++        __Vectors_Size = __Vectors_End - __Vectors;
++        __end__ = .;
++
++        *(.text*)
++
++        KEEP(*shared_lib*:*(.text*))
++        KEEP(*bl1_tests_shared*:*(.text*))
++        KEEP(*bl1_crypto_hw*:*(.text*))
++        KEEP(*boot_hal_bl1*(.text*))
++
++        KEEP(*(.init))
++        KEEP(*(.fini))
++
++
++        /* .ctors */
++        *crtbegin.o(.ctors)
++        *crtbegin?.o(.ctors)
++        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
++        *(SORT(.ctors.*))
++        *(.ctors)
++
++        /* .dtors */
++         *crtbegin.o(.dtors)
++         *crtbegin?.o(.dtors)
++         *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
++         *(SORT(.dtors.*))
++         *(.dtors)
++
++        *(.rodata*)
++
++        KEEP(*(.eh_frame*))
++    } > FLASH
++
++    .ARM.extab :
++    {
++        *(.ARM.extab* .gnu.linkonce.armextab.*)
++    } > FLASH
++
++    __exidx_start = .;
++    .ARM.exidx :
++    {
++        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
++    } > FLASH
++    __exidx_end = .;
++
++    /* To copy multiple ROM to RAM sections,
++     * define etext2/data2_start/data2_end and
++     * define __STARTUP_COPY_MULTIPLE in startup_corstone700_bl2.S */
++    .copy.table :
++    {
++        . = ALIGN(4);
++        __copy_table_start__ = .;
++        LONG (__etext)
++        LONG (__data_start__)
++        LONG ((__data_end__ - __data_start__) / 4)
++        LONG (DEFINED(__etext2) ? __etext2 : 0)
++        LONG (DEFINED(__data2_start__) ? __data2_start__ : 0)
++        LONG (DEFINED(__data2_start__) ? ((__data2_end__ - __data2_start__) / 4) : 0)
++        __copy_table_end__ = .;
++    } > FLASH
++
++    /* To clear multiple BSS sections,
++     * uncomment .zero.table section and,
++     * define __STARTUP_CLEAR_BSS_MULTIPLE in startup_cmsdk_musca_bl2.S */
++    .zero.table :
++    {
++        . = ALIGN(4);
++        __zero_table_start__ = .;
++        LONG (__bss_start__)
++        LONG ((__bss_end__ - __bss_start__) / 4)
++        LONG (DEFINED(__bss2_start__) ? __bss2_start__ : 0)
++        LONG (DEFINED(__bss2_start__) ? ((__bss2_end__ - __bss2_start__) / 4) : 0)
++        __zero_table_end__ = .;
++    } > FLASH
++
++    __etext = ALIGN (4);
++
++    .tfm_bl2_shared_data : ALIGN(32)
++    {
++        . += BOOT_TFM_SHARED_DATA_SIZE;
++    } > RAM
++    Image$$SHARED_DATA$$RW$$Base = ADDR(.tfm_bl2_shared_data);
++    Image$$SHARED_DATA$$RW$$Limit = ADDR(.tfm_bl2_shared_data) + SIZEOF(.tfm_bl2_shared_data);
++
++    . = BL1_1_DATA_START;
++    Image$$BL1_1_ER_DATA_START$$Base = .;
++    .data : AT (__etext)
++    {
++        __data_start__ = .;
++        *(vtable)
++        *(.data*)
++
++        . = ALIGN(4);
++        /* preinit data */
++        PROVIDE_HIDDEN (__preinit_array_start = .);
++        KEEP(*(.preinit_array))
++        PROVIDE_HIDDEN (__preinit_array_end = .);
++
++        . = ALIGN(4);
++        /* init data */
++        PROVIDE_HIDDEN (__init_array_start = .);
++        KEEP(*(SORT(.init_array.*)))
++        KEEP(*(.init_array))
++        PROVIDE_HIDDEN (__init_array_end = .);
++
++
++        . = ALIGN(4);
++        /* finit data */
++        PROVIDE_HIDDEN (__fini_array_start = .);
++        KEEP(*(SORT(.fini_array.*)))
++        KEEP(*(.fini_array))
++        PROVIDE_HIDDEN (__fini_array_end = .);
++
++        KEEP(*(.jcr*))
++        . = ALIGN(4);
++        /* All data end */
++        __data_end__ = .;
++
++    } > RAM
++    Image$$ER_DATA$$Base = ADDR(.data);
++
++    .bss :
++    {
++        . = ALIGN(4);
++        __bss_start__ = .;
++        *(.bss*)
++        *(COMMON)
++        . = ALIGN(4);
++        __bss_end__ = .;
++    } > RAM
++
++    bss_size = __bss_end__ - __bss_start__;
++
++    .msp_stack (NOLOAD) : ALIGN(32)
++    {
++        . += __msp_stack_size__;
++    } > RAM
++    Image$$ARM_LIB_STACK$$ZI$$Base = ADDR(.msp_stack);
++    Image$$ARM_LIB_STACK$$ZI$$Limit = ADDR(.msp_stack) + SIZEOF(.msp_stack);
++
++    .heap (NOLOAD): ALIGN(8)
++    {
++        . = ALIGN(8);
++        __end__ = .;
++        PROVIDE(end = .);
++        __HeapBase = .;
++        . += __heap_size__;
++        __HeapLimit = .;
++        __heap_limit = .; /* Add for _sbrk */
++    } > RAM
++    Image$$ARM_LIB_HEAP$$ZI$$Limit = ADDR(.heap) + SIZEOF(.heap);
++
++    PROVIDE(__stack = Image$$ARM_LIB_STACK$$ZI$$Limit);
++
++    Image$$BL1_1_ER_DATA_LIMIT$$Base = .;
++
++    Image$$BL1_2_ER_DATA_START$$Base = BL1_2_DATA_START;
++    Image$$BL1_2_ER_DATA_LIMIT$$Base = BL1_2_DATA_START + BL1_2_DATA_SIZE;
++}
+diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+similarity index 95%
+rename from platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1.ld
+rename to platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+index 73be37d7c..6cd806378 100644
+--- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1.ld
++++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+@@ -24,12 +24,12 @@
+ 
+ MEMORY
+ {
+-    FLASH (rx)  : ORIGIN = BL1_CODE_START, LENGTH = BL1_CODE_SIZE
+-    RAM   (rwx) : ORIGIN = BL1_DATA_START, LENGTH = BL1_DATA_SIZE
++    FLASH (rx)  : ORIGIN = BL1_2_CODE_START, LENGTH = BL1_2_CODE_SIZE
++    RAM   (rwx) : ORIGIN = BL1_2_DATA_START, LENGTH = BL1_2_DATA_SIZE
+ }
+ 
+-__heap_size__  = BL1_HEAP_SIZE;
+-__msp_stack_size__ = BL1_MSP_STACK_SIZE;
++__heap_size__  = BL1_2_HEAP_SIZE;
++__msp_stack_size__ = BL1_2_MSP_STACK_SIZE;
+ 
+ /* Library configurations */
+ GROUP(libgcc.a libc.a libm.a libnosys.a)
+diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c b/platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c
+deleted file mode 100644
+index d8cfe3759..000000000
+--- a/platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c
++++ /dev/null
+@@ -1,48 +0,0 @@
+-/*
+- * Copyright (c) 2019-2021, Arm Limited. All rights reserved.
+- *
+- * SPDX-License-Identifier: BSD-3-Clause
+- *
+- */
+-
+-#include <stdint.h>
+-#include "tfm_plat_otp.h"
+-
+-static enum tfm_plat_err_t get_rotpk_hash(enum tfm_otp_element_id_t id,
+-                                          uint8_t* rotpk_hash,
+-                                          uint32_t* rotpk_hash_size)
+-{
+-    enum tfm_plat_err_t err;
+-    size_t otp_size;
+-
+-    err = tfm_plat_otp_read(id, *rotpk_hash_size, rotpk_hash);
+-    if (err != TFM_PLAT_ERR_SUCCESS) {
+-        return err;
+-    }
+-
+-    err = tfm_plat_otp_get_size(id, &otp_size);
+-    if (err != TFM_PLAT_ERR_SUCCESS) {
+-        return err;
+-    }
+-
+-    *rotpk_hash_size = otp_size;
+-
+-    return TFM_PLAT_ERR_SUCCESS;
+-}
+-
+-enum tfm_plat_err_t
+-tfm_plat_get_rotpk_hash(uint8_t image_id,
+-                        uint8_t *rotpk_hash,
+-                        uint32_t *rotpk_hash_size)
+-{
+-    switch(image_id) {
+-        case 0:
+-            return get_rotpk_hash(PLAT_OTP_ID_BL1_ROTPK_0, rotpk_hash,
+-                                  rotpk_hash_size);
+-
+-        default:
+-            return TFM_PLAT_ERR_INVALID_INPUT;
+-    }
+-
+-    return TFM_PLAT_ERR_SYSTEM_ERR;
+-}
+diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
+similarity index 90%
+rename from platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
+rename to platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
+index a5fe0f7da..678342443 100644
+--- a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
++++ b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
+@@ -12,13 +12,16 @@
+ #include "Driver_Flash.h"
+ #include "flash_layout.h"
+ #include "fih.h"
+-#include "bootutil/bootutil_log.h"
+ #include "firewall.h"
+ #include "watchdog.h"
+ #include "mpu_config.h"
+ #include "tfm_plat_otp.h"
+ #include "tfm_plat_provisioning.h"
+ #include "fwu_agent.h"
++#include "uart_stdout.h"
++#include "region_defs.h"
++#include "log.h"
++
+ 
+ #if defined(CRYPTO_HW_ACCELERATOR) || \
+     defined(CRYPTO_HW_ACCELERATOR_OTP_PROVISIONING)
+@@ -81,6 +84,9 @@ enum host_firewall_host_comp_id_t {
+   COMP_DEBUG,
+ };
+ 
++extern uint32_t platform_code_is_bl1_2;
++
++
+ static void setup_mpu(void)
+ {
+     uint32_t size; /* region size */
+@@ -581,56 +587,44 @@ static void setup_host_firewall(void)
+        fw_lockdown(FW_FULL_LOCKDOWN);
+ }
+ 
+-
+-__attribute__((naked)) void boot_clear_bl2_ram_area(void)
++uint32_t bl1_image_get_flash_offset(uint32_t image_id)
+ {
+-    __ASM volatile(
+-        ".syntax unified                             \n"
+-        "movs    r0, #0                              \n"
+-        "ldr     r1, =Image$$ER_DATA$$Base           \n"
+-        "ldr     r2, =Image$$ARM_LIB_HEAP$$ZI$$Limit \n"
+-        "subs    r2, r2, r1                          \n"
+-        "Loop:                                       \n"
+-        "subs    r2, #4                              \n"
+-        "blt     Clear_done                          \n"
+-        "str     r0, [r1, r2]                        \n"
+-        "b       Loop                                \n"
+-        "Clear_done:                                 \n"
+-        "bx      lr                                  \n"
+-         : : : "r0" , "r1" , "r2" , "memory"
+-    );
++    /* SE BL2 Offset is equal to bank offset as it is the first think in the Bank */
++    uint32_t se_bl2_offset = 0;
++    bl1_get_active_bl2_image(&se_bl2_offset);
++    switch (image_id) {
++        case 0:
++            return se_bl2_offset;
++        case 1:
++            return se_bl2_offset + SE_BL2_PARTITION_SIZE;
++        default:
++            FIH_PANIC;
++    }
+ }
+ 
+-extern void set_flash_area_image_offset(uint32_t offset);
+-
+ int32_t boot_platform_init(void)
+ {
+     int32_t result;
+     uint32_t image_offset;
+ 
+-    result = corstone1000_watchdog_init();
+-    if (result != ARM_DRIVER_OK) {
+-        return 1;
+-    }
+-
++    if (!platform_code_is_bl1_2) {
++        result = corstone1000_watchdog_init();
++        if (result != ARM_DRIVER_OK) {
++            return 1;
++        }
+ #if !(PLATFORM_IS_FVP)
+-    setup_mpu();
++        setup_mpu();
+ #endif
+-    setup_se_firewall();
++        setup_se_firewall();
+ #if !(PLATFORM_IS_FVP)
+-    setup_host_firewall();
++        setup_host_firewall();
+ #endif
+-
+-    result = FLASH_DEV_NAME.Initialize(NULL);
+-    if (result != ARM_DRIVER_OK) {
+-        return 1;
+     }
+-#if PLATFORM_DEFAULT_OTP
+-   result = FLASH_DEV_NAME_SE_SECURE_FLASH.Initialize(NULL);
+-   if (result != ARM_DRIVER_OK) {
+-       return 1;
+-   }
+-#endif
++
++#if defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2)
++    stdio_init();
++#endif /* defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2) */
++
+ 
+ #ifdef CRYPTO_HW_ACCELERATOR
+     result = crypto_hw_accelerator_init();
+@@ -639,23 +633,11 @@ int32_t boot_platform_init(void)
+     }
+ #endif /* CRYPTO_HW_ACCELERATOR */
+ 
+-    result = tfm_plat_otp_init();
+-    if (result != TFM_PLAT_ERR_SUCCESS) {
+-        BOOT_LOG_ERR("OTP system initialization failed");
+-        FIH_PANIC;
+-    }
+-
+-    if (tfm_plat_provisioning_is_required()) {
+-        result = fwu_metadata_provision();
+-        if (result != FWU_AGENT_SUCCESS) {
+-            BOOT_LOG_ERR("Provisioning FWU Metadata failed");
+-            FIH_PANIC;
+-        }
+-    }
+-
+-    bl1_get_active_bl2_image(&image_offset);
+-    set_flash_area_image_offset(image_offset);
++    return 0;
++}
+ 
++int32_t boot_platform_post_init(void)
++{
+     return 0;
+ }
+ 
+@@ -678,17 +660,15 @@ void boot_platform_quit(struct boot_arm_vector_table *vt)
+     (void)fih_delay_init();
+ #endif /* CRYPTO_HW_ACCELERATOR */
+ 
+-    result = FLASH_DEV_NAME.Uninitialize();
+-    if (result != ARM_DRIVER_OK) {
+-        while (1);
+-    }
+ 
+-#if PLATFORM_DEFAULT_OTP
+-    result = FLASH_DEV_NAME_SE_SECURE_FLASH.Uninitialize();
++#if defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2)
++    stdio_uninit();
++#endif /* defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2) */
++
++    result = corstone1000_watchdog_reset_timer();
+     if (result != ARM_DRIVER_OK) {
+         while (1);
+     }
+-#endif
+ 
+     vt_cpy = vt;
+ 
+diff --git a/platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c b/platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c
+deleted file mode 100644
+index b6632b6c2..000000000
+--- a/platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c
++++ /dev/null
+@@ -1,103 +0,0 @@
+-/*
+- * Copyright (c) 2018 Nordic Semiconductor ASA
+- * Copyright (c) 2015 Runtime Inc
+- * Copyright (c) 2019-2021 Arm Limited.
+- *
+- * SPDX-License-Identifier: Apache-2.0
+- */
+-
+-/*
+- * Original code taken from mcuboot project at:
+- * https://github.com/mcu-tools/mcuboot
+- * Git SHA of the original version: ac55554059147fff718015be9f4bd3108123f50a
+- */
+-
+-#include <errno.h>
+-#include "target.h"
+-#include "cmsis.h"
+-#include "Driver_Flash.h"
+-#include "sysflash/sysflash.h"
+-#include "flash_map/flash_map.h"
+-#include "flash_map_backend/flash_map_backend.h"
+-#include "bootutil/bootutil_log.h"
+-
+-__WEAK int flash_device_base(uint8_t fd_id, uintptr_t *ret)
+-{
+-    if (fd_id != FLASH_DEVICE_ID) {
+-        BOOT_LOG_ERR("invalid flash ID %d; expected %d",
+-                     fd_id, FLASH_DEVICE_ID);
+-        return -1;
+-    }
+-    *ret = FLASH_DEVICE_BASE;
+-    return 0;
+-}
+-
+-/*
+- * This depends on the mappings defined in flash_map.h.
+- * MCUBoot uses continuous numbering for the primary slot, the secondary slot,
+- * and the scratch while TF-M might number it differently.
+- */
+-int flash_area_id_from_multi_image_slot(int image_index, int slot)
+-{
+-    switch (slot) {
+-    case 0: return BL1_FLASH_AREA_IMAGE_PRIMARY(image_index);
+-    case 1: return BL1_FLASH_AREA_IMAGE_SECONDARY(image_index);
+-    case 2: return BL1_FLASH_AREA_IMAGE_SCRATCH;
+-    }
+-
+-    return -1; /* flash_area_open will fail on that */
+-}
+-
+-int flash_area_id_from_image_slot(int slot)
+-{
+-    return flash_area_id_from_multi_image_slot(0, slot);
+-}
+-
+-int flash_area_id_to_multi_image_slot(int image_index, int area_id)
+-{
+-    if (area_id == BL1_FLASH_AREA_IMAGE_PRIMARY(image_index)) {
+-        return 0;
+-    }
+-    if (area_id == BL1_FLASH_AREA_IMAGE_SECONDARY(image_index)) {
+-        return 1;
+-    }
+-
+-    BOOT_LOG_ERR("invalid flash area ID");
+-    return -1;
+-}
+-
+-int flash_area_id_to_image_slot(int area_id)
+-{
+-    return flash_area_id_to_multi_image_slot(0, area_id);
+-}
+-
+-uint8_t flash_area_erased_val(const struct flash_area *fap)
+-{
+-    return DRV_FLASH_AREA(fap)->GetInfo()->erased_value;
+-}
+-
+-int flash_area_read_is_empty(const struct flash_area *fa, uint32_t off,
+-        void *dst, uint32_t len)
+-{
+-    uint32_t i;
+-    uint8_t *u8dst;
+-    int rc;
+-
+-    BOOT_LOG_DBG("read_is_empty area=%d, off=%#x, len=%#x",
+-                 fa->fa_id, off, len);
+-
+-    rc = DRV_FLASH_AREA(fa)->ReadData(fa->fa_off + off, dst, len);
+-    if (rc) {
+-        return -1;
+-    }
+-
+-    u8dst = (uint8_t*)dst;
+-
+-    for (i = 0; i < len; i++) {
+-        if (u8dst[i] != flash_area_erased_val(fa)) {
+-            return 0;
+-        }
+-    }
+-
+-    return 1;
+-}
+diff --git a/platform/ext/target/arm/corstone1000/bl1/provisioning.c b/platform/ext/target/arm/corstone1000/bl1/provisioning.c
+index 832fcea89..683bc45ea 100644
+--- a/platform/ext/target/arm/corstone1000/bl1/provisioning.c
++++ b/platform/ext/target/arm/corstone1000/bl1/provisioning.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
++ * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
+  *
+  * SPDX-License-Identifier: BSD-3-Clause
+  *
+@@ -11,7 +11,9 @@
+ #include "tfm_plat_otp.h"
+ #include "tfm_attest_hal.h"
+ #include "psa/crypto.h"
+-#include "bootutil/bootutil_log.h"
++#include "region_defs.h"
++#include "log.h"
++#include "fwu_agent.h"
+ 
+ #include <string.h>
+ 
+@@ -19,51 +21,20 @@
+ 
+ __PACKED_STRUCT bl1_assembly_and_test_provisioning_data_t {
+     uint32_t magic;
+-    uint8_t bl1_rotpk_0[32];
++    uint8_t bl2_encryption_key[32];
++    uint8_t guk[32];
++    uint8_t bl1_2_image_hash[32];
++    uint8_t bl2_image_hash[32];
++    uint8_t bl1_2_image[BL1_2_CODE_SIZE];
++    uint8_t bl1_rotpk_0[56];
+ };
+ 
+-#ifdef TFM_DUMMY_PROVISIONING
+-static const struct bl1_assembly_and_test_provisioning_data_t bl1_assembly_and_test_prov_data = {
+-    ASSEMBLY_AND_TEST_PROV_DATA_MAGIC,
+-#if (MCUBOOT_SIGN_RSA_LEN == 2048)
+-    /* bl1 rotpk 0 */
+-    {
+-        0xfc, 0x57, 0x01, 0xdc, 0x61, 0x35, 0xe1, 0x32,
+-        0x38, 0x47, 0xbd, 0xc4, 0x0f, 0x04, 0xd2, 0xe5,
+-        0xbe, 0xe5, 0x83, 0x3b, 0x23, 0xc2, 0x9f, 0x93,
+-        0x59, 0x3d, 0x00, 0x01, 0x8c, 0xfa, 0x99, 0x94,
+-    },
+-#elif (MCUBOOT_SIGN_RSA_LEN == 3072)
+-    /* bl1 rotpk 0 */
+-    {
+-        0xbf, 0xe6, 0xd8, 0x6f, 0x88, 0x26, 0xf4, 0xff,
+-        0x97, 0xfb, 0x96, 0xc4, 0xe6, 0xfb, 0xc4, 0x99,
+-        0x3e, 0x46, 0x19, 0xfc, 0x56, 0x5d, 0xa2, 0x6a,
+-        0xdf, 0x34, 0xc3, 0x29, 0x48, 0x9a, 0xdc, 0x38,
+-    },
+-#else
+-#error "No public key available for given signing algorithm."
+-#endif /* MCUBOOT_SIGN_RSA_LEN */
+-};
+-#else
+-static const struct bl1_assembly_and_test_provisioning_data_t bl1_assembly_and_test_prov_data;
+-#endif /* TFM_DUMMY_PROVISIONING */
++static const struct bl1_assembly_and_test_provisioning_data_t *bl1_assembly_and_test_prov_data =
++                    (struct bl1_assembly_and_test_provisioning_data_t *)PROVISIONING_DATA_START;
++
+ 
+ void tfm_plat_provisioning_check_for_dummy_keys(void)
+ {
+-    uint64_t iak_start;
+-
+-    tfm_plat_otp_read(PLAT_OTP_ID_IAK, sizeof(iak_start), (uint8_t*)&iak_start);
+-
+-    if(iak_start == 0xA4906F6DB254B4A9) {
+-        BOOT_LOG_WRN("%s%s%s%s",
+-                     "\033[1;31m",
+-                     "This device was provisioned with dummy keys. ",
+-                     "This device is \033[1;1mNOT SECURE",
+-                     "\033[0m");
+-    }
+-
+-    memset(&iak_start, 0, sizeof(iak_start));
+ }
+ 
+ int tfm_plat_provisioning_is_required(void)
+@@ -85,12 +56,47 @@ enum tfm_plat_err_t provision_assembly_and_test(void)
+     enum tfm_plat_err_t err;
+ 
+     err = tfm_plat_otp_write(PLAT_OTP_ID_BL1_ROTPK_0,
+-                             sizeof(bl1_assembly_and_test_prov_data.bl1_rotpk_0),
+-                             bl1_assembly_and_test_prov_data.bl1_rotpk_0);
++                             sizeof(bl1_assembly_and_test_prov_data->bl1_rotpk_0),
++                             bl1_assembly_and_test_prov_data->bl1_rotpk_0);
++    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
++        return err;
++    }
++
++
++    err = tfm_plat_otp_write(PLAT_OTP_ID_BL1_2_IMAGE_HASH,
++                             sizeof(bl1_assembly_and_test_prov_data->bl1_2_image_hash),
++                             bl1_assembly_and_test_prov_data->bl1_2_image_hash);
++    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
++        return err;
++    }
++
++
++    err = tfm_plat_otp_write(PLAT_OTP_ID_BL1_2_IMAGE,
++                             sizeof(bl1_assembly_and_test_prov_data->bl1_2_image),
++                             bl1_assembly_and_test_prov_data->bl1_2_image);
++    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
++        return err;
++    }
++
++    err = tfm_plat_otp_write(PLAT_OTP_ID_KEY_BL2_ENCRYPTION,
++                             sizeof(bl1_assembly_and_test_prov_data->bl2_encryption_key),
++                             bl1_assembly_and_test_prov_data->bl2_encryption_key);
+     if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
+         return err;
+     }
+ 
++    err = tfm_plat_otp_write(PLAT_OTP_ID_BL2_IMAGE_HASH,
++                             sizeof(bl1_assembly_and_test_prov_data->bl2_image_hash),
++                             bl1_assembly_and_test_prov_data->bl2_image_hash);
++    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
++        return err;
++    }
++
++    err = fwu_metadata_provision();
++    if (err != FWU_AGENT_SUCCESS) {
++        return 1;
++    }
++
+     return err;
+ }
+ 
+@@ -104,19 +110,18 @@ enum tfm_plat_err_t tfm_plat_provisioning_perform(void)
+         return err;
+     }
+ 
+-    BOOT_LOG_INF("Beginning BL1 provisioning");
++    BL1_LOG("[INF] Beginning BL1 provisioning\r\n");
+ 
+ #ifdef TFM_DUMMY_PROVISIONING
+-    BOOT_LOG_WRN("%s%s%s%s",
+-                 "\033[1;31m",
+-                 "TFM_DUMMY_PROVISIONING is not suitable for production! ",
+-                 "This device is \033[1;1mNOT SECURE",
+-                 "\033[0m");
++    BL1_LOG("\033[1;31m[WRN]");
++    BL1_LOG("TFM_DUMMY_PROVISIONING is not suitable for production! ");
++    BL1_LOG("This device is \033[1;1mNOT SECURE");
++    BL1_LOG("\033[0m\r\n");
+ #endif /* TFM_DUMMY_PROVISIONING */
+ 
+     if (lcs == PLAT_OTP_LCS_ASSEMBLY_AND_TEST) {
+-        if (bl1_assembly_and_test_prov_data.magic != ASSEMBLY_AND_TEST_PROV_DATA_MAGIC) {
+-            BOOT_LOG_ERR("No valid ASSEMBLY_AND_TEST provisioning data found");
++        if (bl1_assembly_and_test_prov_data->magic != ASSEMBLY_AND_TEST_PROV_DATA_MAGIC) {
++            BL1_LOG("[ERR] No valid ASSEMBLY_AND_TEST provisioning data found\r\n");
+             return TFM_PLAT_ERR_INVALID_INPUT;
+         }
+ 
+diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
+index aca75394d..1b0675404 100644
+--- a/platform/ext/target/arm/corstone1000/config.cmake
++++ b/platform/ext/target/arm/corstone1000/config.cmake
+@@ -8,7 +8,14 @@
+ #-------------------------------------------------------------------------------
+ 
+ set(BL1                                 ON         CACHE BOOL     "Whether to build BL1")
+-set(PLATFORM_DEFAULT_BL1                OFF        CACHE STRING   "Whether to use default BL1 or platform-specific one")
++set(PLATFORM_DEFAULT_BL1                ON         CACHE STRING   "Whether to use default BL1 or platform-specific one")
++set(PLATFORM_DEFAULT_OTP                OFF        CACHE BOOL     "Use trusted on-chip flash to implement OTP memory")
++
++set(TFM_BL1_DEFAULT_PROVISIONING        OFF        CACHE BOOL     "Whether BL1_1 will use default provisioning")
++set(TFM_BL1_SOFTWARE_CRYPTO             OFF        CACHE BOOL     "Whether BL1_1 will use software crypto")
++set(TFM_BL1_MEMORY_MAPPED_FLASH         OFF        CACHE BOOL     "Whether BL1 can directly access flash content")
++set(TFM_BL1_PQ_CRYPTO                   OFF        CACHE BOOL     "Enable LMS PQ crypto for BL2 verification. This is experimental and should not yet be used in production")
++
+ set(BL2                                 ON         CACHE BOOL     "Whether to build BL2")
+ set(BL2_TRAILER_SIZE                    0x800      CACHE STRING   "Trailer size")
+ set(DEFAULT_MCUBOOT_FLASH_MAP           OFF        CACHE BOOL     "Whether to use the default flash map defined by TF-M project")
+@@ -26,13 +33,6 @@ set(TFM_CRYPTO_TEST_ALG_CFB             OFF        CACHE BOOL     "Test CFB cryp
+ set(NS                                  FALSE      CACHE BOOL     "Whether to build NS app")
+ set(EXTERNAL_SYSTEM_SUPPORT             OFF        CACHE BOOL     "Whether to include external system support.")
+ 
+-# FVP is not integrated/tested with CC312.
+-if (${PLATFORM_IS_FVP})
+-  set(PLATFORM_DEFAULT_OTP              TRUE      CACHE BOOL      "Use trusted on-chip flash to implement OTP memory")
+-else()
+-  set(PLATFORM_DEFAULT_OTP              FALSE      CACHE BOOL      "Use trusted on-chip flash to implement OTP memory")
+-endif()
+-
+ # External dependency on OpenAMP and Libmetal
+ set(LIBMETAL_SRC_PATH                   "DOWNLOAD"  CACHE PATH      "Path to Libmetal (or DOWNLOAD to fetch automatically")
+ set(LIBMETAL_VERSION                    "f252f0e007fbfb8b3a52b1d5901250ddac96baad"  CACHE STRING    "The version of libmetal to use")
+@@ -59,6 +59,8 @@ set(TFM_PARTITION_PROTECTED_STORAGE     ON          CACHE BOOL      "Enable Prot
+ set(TFM_PARTITION_CRYPTO                ON          CACHE BOOL      "Enable Crypto partition")
+ set(TFM_PARTITION_INITIAL_ATTESTATION   ON          CACHE BOOL      "Enable Initial Attestation partition")
+ set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON       CACHE BOOL      "Enable Internal Trusted Storage partition")
++set(TFM_PARTITION_MEASURED_BOOT         ON          CACHE BOOL      "Enable Measured boot partition")
++
+ 
+ if (${CMAKE_BUILD_TYPE} STREQUAL Debug OR ${CMAKE_BUILD_TYPE} STREQUAL RelWithDebInfo)
+   set(ENABLE_FWU_AGENT_DEBUG_LOGS     TRUE          CACHE BOOL      "Enable Firmware update agent debug logs.")
+diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
+index b01a3621b..a95ff63ef 100644
+--- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
++++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
+@@ -34,16 +34,6 @@
+ 
+ #define BL2_DATA_GAP_SIZE               (0x09800)  /* 38 KB */
+ 
+-#define BL1_DATA_START                  (SRAM_BASE)
+-#define BL1_DATA_SIZE                   (0x10000)     /* 64 KiB*/
+-#define BL1_DATA_LIMIT                  (BL1_DATA_START + BL1_DATA_SIZE - 1)
+-
+-#ifdef BL1
+-
+-#define IMAGE_EXECUTABLE_RAM_START      (SRAM_BASE + BL1_DATA_SIZE)
+-#define IMAGE_EXECUTABLE_RAM_SIZE       (SRAM_SIZE - BL1_DATA_SIZE)
+-
+-#endif /* BL1 */
+ 
+ /*****************/
+ /***** Flash *****/
+diff --git a/platform/ext/target/arm/corstone1000/partition/region_defs.h b/platform/ext/target/arm/corstone1000/partition/region_defs.h
+index 35055fe9c..8157c36bf 100644
+--- a/platform/ext/target/arm/corstone1000/partition/region_defs.h
++++ b/platform/ext/target/arm/corstone1000/partition/region_defs.h
+@@ -20,12 +20,17 @@
+ 
+ #include "flash_layout.h"
+ 
++/* BL1_1 */
++#define BL1_1_HEAP_SIZE         (0x0001000) /* 4KiB */
++#define BL1_1_MSP_STACK_SIZE    (0x0001800) /* 6KiB */
++
++/* BL1_2 */
++#define BL1_2_HEAP_SIZE         (0x0001000) /* 4KiB */
++#define BL1_2_MSP_STACK_SIZE    (0x0001800) /* 6KiB */
++
+ #define BL2_HEAP_SIZE           (0x0001000)
+ #define BL2_MSP_STACK_SIZE      (0x0001E00)
+ 
+-#define BL1_HEAP_SIZE           (0x0001000)
+-#define BL1_MSP_STACK_SIZE      (0x0001800)
+-
+ #ifdef ENABLE_HEAP
+     #define S_HEAP_SIZE             (0x0000200)
+ #endif
+@@ -80,8 +85,8 @@
+ 
+ 
+ /* SE BL2 regions */
+-#define BL2_CODE_START    (SRAM_BASE + TFM_PARTITION_SIZE + \
+-                           BL2_DATA_GAP_SIZE + BL2_HEADER_SIZE)
++#define BL2_IMAGE_START   (SRAM_BASE + SRAM_SIZE - SE_BL2_PARTITION_SIZE)
++#define BL2_CODE_START    (BL2_IMAGE_START + BL2_HEADER_SIZE)
+ #define BL2_CODE_SIZE     (IMAGE_BL2_CODE_SIZE)
+ #define BL2_CODE_LIMIT    (BL2_CODE_START + BL2_CODE_SIZE - 1)
+ 
+@@ -91,9 +96,25 @@
+ #define BL2_DATA_LIMIT    (BL2_DATA_START + BL2_DATA_SIZE - 1)
+ 
+ /* SE BL1 regions */
+-#define BL1_CODE_START    (0)
+-#define BL1_CODE_SIZE     (0x00020000)     /* Whole SE ROM, 128 KiB */
+-#define BL1_CODE_LIMIT    (BL2_CODE_START + BL2_CODE_SIZE - 1)
++#define BL1_1_CODE_START    (0)
++#define BL1_1_CODE_SIZE     (0x0000A000)     /* 40 KiB */
++#define BL1_1_CODE_LIMIT    (BL1_1_CODE_START + BL1_1_CODE_SIZE - 1)
++
++#define PROVISIONING_DATA_START (BL1_1_CODE_START + BL1_1_CODE_SIZE)
++#define PROVISIONING_DATA_SIZE  (0x00002000)     /* 8 KiB */
++#define PROVISIONING_DATA_LIMIT (PROVISIONING_DATA_START + PROVISIONING_DATA_SIZE - 1)
++
++#define BL1_1_DATA_START    (SRAM_BASE)
++#define BL1_1_DATA_SIZE     (0x8000)     /* 32 KiB*/
++#define BL1_1_DATA_LIMIT    (BL1_1_DATA_START + BL1_1_DATA_SIZE - 1)
++
++#define BL1_2_CODE_START    (BL1_1_DATA_START + BL1_1_DATA_SIZE)
++#define BL1_2_CODE_SIZE     (0x00001000)     /* 4 KiB */
++#define BL1_2_CODE_LIMIT    (BL1_2_CODE_START + BL1_2_CODE_SIZE - 1)
++
++#define BL1_2_DATA_START    (BL1_2_CODE_START+BL1_2_CODE_SIZE)
++#define BL1_2_DATA_SIZE     (0x8000)     /* 32 KiB*/
++#define BL1_2_DATA_LIMIT    (BL1_2_DATA_START + BL1_2_DATA_SIZE - 1)
+ 
+ #define BOOT_TFM_SHARED_DATA_BASE (S_DATA_PRIV_START)
+ 
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-calculate-metadata-crc32.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-calculate-metadata-crc32.patch
deleted file mode 100644
index 4921e3a..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-calculate-metadata-crc32.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 6f8ce3c0f70fecb1e7b990b8b47af16972b90671 Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Wed, 21 Dec 2022 15:13:27 +0000
-Subject: [PATCH 4/10] Platform: corstone1000: calculate metadata crc32
-
-Calculate metadata crc32 during provisioning.
-It is requried to enable TF-A, U-Boot to verify fwu_metadata.
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- platform/ext/target/arm/corstone1000/CMakeLists.txt        | 2 ++
- platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt    | 2 ++
- .../target/arm/corstone1000/fw_update_agent/fwu_agent.c    | 7 ++++++-
- 3 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index 7808efae68..554fc51b21 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -58,6 +58,7 @@ target_include_directories(platform_s
-     INTERFACE
-         cc312
-         fw_update_agent
-+        soft_crc
- )
- 
- target_sources(platform_s
-@@ -185,6 +186,7 @@ target_include_directories(platform_bl2
-         fip_parser
-         Native_Driver
-         fw_update_agent
-+        soft_crc
-         io
-         .
-     INTERFACE
-diff --git a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt
-index 62fd0f6ddf..426a8df698 100644
---- a/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/bl1/CMakeLists.txt
-@@ -229,6 +229,7 @@ target_include_directories(bl1_main
-         $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/platform/ext/accelerator/cc312>
-         $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/lib/ext/cryptocell-312-runtime/shared/include/mbedtls>
-         $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:${CMAKE_SOURCE_DIR}/lib/ext/cryptocell-312-runtime/shared/include/crypto_api/cc3x>
-+        ../soft_crc
- )
- 
- # Configurations based on platform level cmake files
-@@ -241,6 +242,7 @@ target_sources(bl1_main
-         ../Native_Driver/firewall.c
-         ../Native_Driver/uart_pl011_drv.c
-         ../fw_update_agent/fwu_agent.c
-+        ../soft_crc/soft_crc.c
-         ../Native_Driver/arm_watchdog_drv.c
-         ../Native_Driver/watchdog.c
-         bl1_boot_hal.c
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index d5491e08db..1a42c72bd5 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2021, Arm Limited. All rights reserved.
-+ * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
-  *
-  * SPDX-License-Identifier: BSD-3-Clause
-  *
-@@ -20,6 +20,7 @@
- #include "tfm_plat_defs.h"
- #include "uefi_fmp.h"
- #include "uart_stdout.h"
-+#include "soft_crc.h"
- 
- /* Properties of image in a bank */
- struct fwu_image_properties {
-@@ -324,6 +325,10 @@ enum fwu_agent_error_t fwu_metadata_provision(void)
-         _metadata.img_entry[i].img_props[BANK_1].version = INVALID_VERSION;
-     }
- 
-+    /* Calculate CRC32 for fwu metadata */
-+    _metadata.crc_32 = crc32((uint8_t *)&_metadata.version,
-+                             sizeof(struct fwu_metadata) - sizeof(uint32_t));
-+
-     ret = metadata_write(&_metadata);
-     if (ret) {
-         return ret;
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch
new file mode 100644
index 0000000..697061e
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch
@@ -0,0 +1,202 @@
+From d5a7cde4648d2247f83a0f259aa088152199dfbd Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Mon, 27 Feb 2023 20:58:30 +0000
+Subject: [PATCH 2/6] Platform: corstone1000: Replace MCUBOOT BL1 by TFM's
+ (BL2)
+
+From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+
+Set region_defs of BL2 correctly
+Set FLASH Areas 0 and 1 to have BL2
+Set FLASH Areas 2 and 3 to have TFM
+Set FLASH Areas 4 and 5 to have FIP
+Initialize FLASH in BL1_2 boot platform code
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20554]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Change-Id: I987d29cb6318b8b30cafab67d24f446aaadfe500
+---
+ .../arm/corstone1000/bl1/boot_hal_bl1.c       | 14 +++++++
+ .../target/arm/corstone1000/bl2_flash_map.c   |  8 ++--
+ .../ext/target/arm/corstone1000/config.cmake  |  3 ++
+ .../arm/corstone1000/partition/flash_layout.h | 41 +++++++++++++------
+ .../arm/corstone1000/partition/region_defs.h  |  4 +-
+ 5 files changed, 51 insertions(+), 19 deletions(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
+index 678342443..2124720b2 100644
+--- a/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
++++ b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
+@@ -638,6 +638,13 @@ int32_t boot_platform_init(void)
+ 
+ int32_t boot_platform_post_init(void)
+ {
++    int32_t result;
++    if (platform_code_is_bl1_2) {
++        result = FLASH_DEV_NAME.Initialize(NULL);
++        if (result != ARM_DRIVER_OK) {
++            return 1;
++        }
++    }
+     return 0;
+ }
+ 
+@@ -665,6 +672,13 @@ void boot_platform_quit(struct boot_arm_vector_table *vt)
+     stdio_uninit();
+ #endif /* defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2) */
+ 
++    if (platform_code_is_bl1_2) {
++        result = FLASH_DEV_NAME.Uninitialize();
++        if (result != ARM_DRIVER_OK) {
++            return 1;
++        }
++    }
++
+     result = corstone1000_watchdog_reset_timer();
+     if (result != ARM_DRIVER_OK) {
+         while (1);
+diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
+index 599f80b41..2b1cdfa19 100644
+--- a/platform/ext/target/arm/corstone1000/bl2_flash_map.c
++++ b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
+@@ -25,14 +25,14 @@ extern ARM_DRIVER_FLASH FLASH_DEV_NAME;
+  */
+ struct flash_area flash_map[] = {
+     {
+-        .fa_id = FLASH_AREA_0_ID,
++        .fa_id = FLASH_AREA_2_ID,
+         .fa_device_id = FLASH_DEVICE_ID,
+         .fa_driver = &FLASH_DEV_NAME,
+         .fa_off = FLASH_INVALID_OFFSET,
+         .fa_size = FLASH_INVALID_SIZE,
+     },
+     {
+-        .fa_id = FLASH_AREA_1_ID,
++        .fa_id = FLASH_AREA_3_ID,
+         .fa_device_id = FLASH_DEVICE_ID,
+         .fa_driver = &FLASH_DEV_NAME,
+         .fa_off = FLASH_INVALID_OFFSET,
+@@ -40,14 +40,14 @@ struct flash_area flash_map[] = {
+     },
+ #ifndef TFM_S_REG_TEST
+     {
+-        .fa_id = FLASH_AREA_2_ID,
++        .fa_id = FLASH_AREA_4_ID,
+         .fa_device_id = FLASH_DEVICE_ID,
+         .fa_driver = &FLASH_DEV_NAME,
+         .fa_off = FLASH_INVALID_OFFSET,
+         .fa_size = FLASH_INVALID_SIZE,
+     },
+     {
+-        .fa_id = FLASH_AREA_3_ID,
++        .fa_id = FLASH_AREA_5_ID,
+         .fa_device_id = FLASH_DEVICE_ID,
+         .fa_driver = &FLASH_DEV_NAME,
+         .fa_off = FLASH_INVALID_OFFSET,
+diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
+index 1b0675404..bec6b84f0 100644
+--- a/platform/ext/target/arm/corstone1000/config.cmake
++++ b/platform/ext/target/arm/corstone1000/config.cmake
+@@ -16,6 +16,9 @@ set(TFM_BL1_SOFTWARE_CRYPTO             OFF        CACHE BOOL     "Whether BL1_1
+ set(TFM_BL1_MEMORY_MAPPED_FLASH         OFF        CACHE BOOL     "Whether BL1 can directly access flash content")
+ set(TFM_BL1_PQ_CRYPTO                   OFF        CACHE BOOL     "Enable LMS PQ crypto for BL2 verification. This is experimental and should not yet be used in production")
+ 
++set(TFM_BL2_IMAGE_FLASH_AREA_NUM        0          CACHE STRING   "Which flash area BL2 is stored in")
++set(MCUBOOT_S_IMAGE_FLASH_AREA_NUM      2          CACHE STRING   "ID of the flash area containing the primary Secure image")
++
+ set(BL2                                 ON         CACHE BOOL     "Whether to build BL2")
+ set(BL2_TRAILER_SIZE                    0x800      CACHE STRING   "Trailer size")
+ set(DEFAULT_MCUBOOT_FLASH_MAP           OFF        CACHE BOOL     "Whether to use the default flash map defined by TF-M project")
+diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
+index a95ff63ef..41b4c6323 100644
+--- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
++++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
+@@ -136,23 +136,38 @@
+ #define BANK_PARTITION_SIZE             (0xFE0000)   /* 15.875 MB */
+ #define TFM_PARTITION_SIZE              (0x5E000)    /* 376 KB */
+ 
+-/* Macros needed to imgtool.py, used when creating BL2 signed image */
+-#define BL2_IMAGE_LOAD_ADDRESS          (SRAM_BASE + TFM_PARTITION_SIZE + BL2_DATA_GAP_SIZE)
+-#define BL2_IMAGE_OFFSET                (0x0)
+-#define BL2_IMAGE_MAX_SIZE              (SE_BL2_PARTITION_SIZE)
++/************************************************************/
++/* Bank : Images flash offsets are with respect to the bank */
++/************************************************************/
+ 
+-/* Image 1: TF-M primary and secondary images */
++/* Image 0: BL2 primary and secondary images */
+ #define FLASH_AREA_0_ID                 (1)
+-#define FLASH_AREA_0_SIZE               (TFM_PARTITION_SIZE)
++#define FLASH_AREA_0_OFFSET             (0) /* starting from 0th offset of the bank */
++#define FLASH_AREA_0_SIZE               (SE_BL2_PARTITION_SIZE)
++
+ #define FLASH_AREA_1_ID                 (FLASH_AREA_0_ID + 1)
+-#define FLASH_AREA_1_SIZE               (TFM_PARTITION_SIZE)
++#define FLASH_AREA_1_OFFSET             (FLASH_AREA_0_OFFSET + FLASH_AREA_0_SIZE)
++#define FLASH_AREA_1_SIZE               (SE_BL2_PARTITION_SIZE)
++
++/* Image 1: TF-M primary and secondary images */
++#define FLASH_AREA_2_ID                 (1)
++#define FLASH_AREA_2_SIZE               (TFM_PARTITION_SIZE)
++#define FLASH_AREA_3_ID                 (FLASH_AREA_2_ID + 1)
++#define FLASH_AREA_3_SIZE               (TFM_PARTITION_SIZE)
+ 
+ /* Image 2: Host FIP */
+ #define FIP_SIGNATURE_AREA_SIZE         (0x1000)      /* 4 KB */
+ 
+ /* Host BL2 (TF-A) primary and secondary image. */
+-#define FLASH_AREA_2_ID                 (FLASH_AREA_1_ID + 1)
+-#define FLASH_AREA_3_ID                 (FLASH_AREA_2_ID + 1)
++#define FLASH_AREA_4_ID                 (FLASH_AREA_3_ID + 1)
++#define FLASH_AREA_5_ID                 (FLASH_AREA_4_ID + 1)
++
++#define BL1_FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_0_ID : \
++                                                          255 )
++#define BL1_FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_1_ID : \
++                                                          255 )
++
++#define BL1_FLASH_AREA_IMAGE_SCRATCH        255
+ 
+ /* Macros needed to imgtool.py, used when creating TF-M signed image */
+ #define S_IMAGE_LOAD_ADDRESS            (SRAM_BASE)
+@@ -161,11 +176,11 @@
+ #define NON_SECURE_IMAGE_OFFSET         (TFM_PARTITION_SIZE)
+ #define NON_SECURE_IMAGE_MAX_SIZE       (0x0)
+ 
+-#define FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_0_ID : \
+-                                         ((x) == 1) ? FLASH_AREA_2_ID : \
++#define FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_2_ID : \
++                                         ((x) == 1) ? FLASH_AREA_4_ID : \
+                                                       255 )
+-#define FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_1_ID : \
+-                                         ((x) == 1) ? FLASH_AREA_3_ID : \
++#define FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_3_ID : \
++                                         ((x) == 1) ? FLASH_AREA_5_ID : \
+                                                       255 )
+ 
+ #define FLASH_AREA_IMAGE_SCRATCH        255
+diff --git a/platform/ext/target/arm/corstone1000/partition/region_defs.h b/platform/ext/target/arm/corstone1000/partition/region_defs.h
+index 8157c36bf..fc9f734f6 100644
+--- a/platform/ext/target/arm/corstone1000/partition/region_defs.h
++++ b/platform/ext/target/arm/corstone1000/partition/region_defs.h
+@@ -48,7 +48,7 @@
+             (TFM_PARTITION_SIZE - BL2_HEADER_SIZE - BL2_TRAILER_SIZE)
+ 
+ #define IMAGE_BL2_CODE_SIZE \
+-            (SE_BL2_PARTITION_SIZE - BL2_HEADER_SIZE - BL2_TRAILER_SIZE)
++            (SE_BL2_PARTITION_SIZE - BL1_HEADER_SIZE - BL1_TRAILER_SIZE)
+ 
+ /* Secure regions */
+ #define S_CODE_START            (SRAM_BASE + BL2_HEADER_SIZE)
+@@ -86,7 +86,7 @@
+ 
+ /* SE BL2 regions */
+ #define BL2_IMAGE_START   (SRAM_BASE + SRAM_SIZE - SE_BL2_PARTITION_SIZE)
+-#define BL2_CODE_START    (BL2_IMAGE_START + BL2_HEADER_SIZE)
++#define BL2_CODE_START    (BL2_IMAGE_START + BL1_HEADER_SIZE)
+ #define BL2_CODE_SIZE     (IMAGE_BL2_CODE_SIZE)
+ #define BL2_CODE_LIMIT    (BL2_CODE_START + BL2_CODE_SIZE - 1)
+ 
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-fwu-metadata_read-validate-crc.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-fwu-metadata_read-validate-crc.patch
deleted file mode 100644
index 49452b8..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-fwu-metadata_read-validate-crc.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 25924b6c0504faae0b0ed680c09fb8996b6aaba6 Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Wed, 21 Dec 2022 15:42:21 +0000
-Subject: [PATCH 5/10] Platform:corstone1000:fwu: metadata_read validate crc
-
-Add validation logic to metadata_read function.
-Also, add metadata_read_without_validation
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../target/arm/corstone1000/CMakeLists.txt    |  1 +
- .../corstone1000/fw_update_agent/fwu_agent.c  | 51 +++++++++++++++++++
- 2 files changed, 52 insertions(+)
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index 554fc51b21..9db2864033 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -75,6 +75,7 @@ target_sources(platform_s
-         fw_update_agent/uefi_capsule_parser.c
-         fw_update_agent/fwu_agent.c
-         fw_update_agent/uefi_fmp.c
-+        soft_crc/soft_crc.c
-         $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
- )
- 
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index 1a42c72bd5..eb17c3a377 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -193,6 +193,53 @@ static enum fwu_agent_error_t private_metadata_write(
-     return FWU_AGENT_SUCCESS;
- }
- 
-+static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
-+{
-+    int ret;
-+
-+    FWU_LOG_MSG("%s: enter:\n\r", __func__);
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    uint32_t calculated_crc32 = crc32((uint8_t *)&(p_metadata->version),
-+                                      sizeof(struct fwu_metadata) - sizeof(uint32_t));
-+
-+    if (p_metadata->crc_32 != calculated_crc32) {
-+        FWU_LOG_MSG("%s: failed: crc32 calculated: 0x%x, given: 0x%x\n\r", __func__,
-+                    calculated_crc32, p_metadata->crc_32);
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success\n\r", __func__);
-+
-+    return FWU_AGENT_SUCCESS;
-+}
-+
-+static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
-+{
-+    int ret;
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
-+                  p_metadata->active_index, p_metadata->previous_active_index);
-+
-+    return FWU_AGENT_SUCCESS;
-+}
-+
- static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
- {
-     int ret;
-@@ -210,6 +257,10 @@ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
-         return FWU_AGENT_ERROR;
-     }
- 
-+    if (metadata_validate(p_metadata) != FWU_AGENT_SUCCESS) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-     FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
-                   p_metadata->active_index, p_metadata->previous_active_index);
- 
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Add-common-platform-logger.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Add-common-platform-logger.patch
deleted file mode 100644
index a7c17ab..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Add-common-platform-logger.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 9545d9bb44f8fb5af438fb40cab7fefc95d5a9a4 Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Thu, 22 Dec 2022 09:24:50 +0000
-Subject: [PATCH 6/10] Platform:corstone1000: Add common platform logger
-
-platform_log defines log messages macros to be used by the platform code
-It allows defining the module name to be added at the beginning of the log
-message.
-Based on build type PLAT_LOG_LEVEL is defined.
-In case of Debug/RelWithDebInfo PLAT_LOG_LEVEL is defined to Debug level
-else it is defined to OFF.
-
-usage in source file:
-...
-INFO("msg");
-ERROR("msg");
-WARN("msg");
-VERBOSE("msg");
-DBG("msg");
-...
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../target/arm/corstone1000/CMakeLists.txt    |  1 +
- .../ext/target/arm/corstone1000/config.cmake  |  4 +-
- .../target/arm/corstone1000/platform_log.h    | 60 +++++++++++++++++++
- 3 files changed, 64 insertions(+), 1 deletion(-)
- create mode 100644 platform/ext/target/arm/corstone1000/platform_log.h
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index 9db2864033..a120f39ea4 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -152,6 +152,7 @@ target_compile_definitions(platform_bl2
-         $<$<BOOL:${PLATFORM_IS_FVP}>:PLATFORM_IS_FVP>
-         $<$<BOOL:${TFM_S_REG_TEST}>:TFM_S_REG_TEST>
-         $<$<BOOL:${ENABLE_FWU_AGENT_DEBUG_LOGS}>:ENABLE_FWU_AGENT_DEBUG_LOGS>
-+        PLAT_LOG_LEVEL=${PLAT_LOG_LEVEL}
- )
- 
- # boot_hal_bl2.c is compiled as part of 'bl2' target and not inside
-diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
-index b71ca672f3..de0b4b64c1 100644
---- a/platform/ext/target/arm/corstone1000/config.cmake
-+++ b/platform/ext/target/arm/corstone1000/config.cmake
-@@ -63,6 +63,8 @@ set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON       CACHE BOOL      "Enable Inte
- 
- if (${CMAKE_BUILD_TYPE} STREQUAL Debug OR ${CMAKE_BUILD_TYPE} STREQUAL RelWithDebInfo)
-   set(ENABLE_FWU_AGENT_DEBUG_LOGS     TRUE        CACHE BOOL      "Enable Firmware update agent debug logs.")
--else()
-+  set(PLAT_LOG_LEVEL                    4        CACHE STRING     "Set platform log level.")
-+  else()
-   set(ENABLE_FWU_AGENT_DEBUG_LOGS     FALSE        CACHE BOOL     "Enable Firmware update agent debug logs.")
-+  set(PLAT_LOG_LEVEL                    0        CACHE STRING     "Set platform log level.")
- endif()
-diff --git a/platform/ext/target/arm/corstone1000/platform_log.h b/platform/ext/target/arm/corstone1000/platform_log.h
-new file mode 100644
-index 0000000000..b3a6e98026
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/platform_log.h
-@@ -0,0 +1,60 @@
-+/*
-+ * Copyright (c) 2023, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#ifndef __PLATFORM_LOG_H__
-+#define __PLATFORM_LOG_H__
-+
-+#define PLAT_LOG_LEVEL_OFF       (0)
-+#define PLAT_LOG_LEVEL_ERROR     (1)
-+#define PLAT_LOG_LEVEL_WARN      (2)
-+#define PLAT_LOG_LEVEL_INFO      (3)
-+#define PLAT_LOG_LEVEL_DEBUG     (4)
-+
-+#ifndef PLAT_LOG_MODULE_NAME
-+#define MODULE_NAME_STR " "
-+#else
-+#define MODULE_NAME_STR "["PLAT_LOG_MODULE_NAME"]: "
-+#endif
-+
-+#ifndef PLAT_LOG_LEVEL
-+#warning "Logging level is not defined, default is PLAT_LOG_LEVEL_ERROR."
-+#define PLAT_LOG_LEVEL   PLAT_LOG_LEVEL_ERROR
-+#endif
-+
-+
-+/* System can override PRINTF with other rich format function*/
-+#ifndef PRINTF
-+#if PLAT_LOG_LEVEL > PLAT_LOG_LEVEL_OFF
-+#include <stdio.h>
-+#define PRINTF printf
-+#endif
-+#endif
-+
-+#if PLAT_LOG_LEVEL >= PLAT_LOG_LEVEL_ERROR
-+    #define ERROR(f_, ...) do { PRINTF("\033[31;4m[ERR]:\033[m%s"f_"\r\n", MODULE_NAME_STR, ##__VA_ARGS__);  } while (0)
-+#else
-+    #define ERROR(f_, ...) do {  } while(0)
-+#endif
-+#if PLAT_LOG_LEVEL >= PLAT_LOG_LEVEL_WARN
-+    #define WARN(f_, ...) do { PRINTF("\033[33;4m[WRN]:\033[m%s"f_"\r\n", MODULE_NAME_STR, ##__VA_ARGS__);  } while (0)
-+#else
-+    #define WARN(f_, ...) do {  } while(0)
-+#endif
-+#if PLAT_LOG_LEVEL >= PLAT_LOG_LEVEL_INFO
-+    #define INFO(f_, ...) do { PRINTF("[INF]:%s"f_"\r\n", MODULE_NAME_STR, ##__VA_ARGS__);  } while (0)
-+#else
-+    #define INFO(f_, ...) do {  } while(0)
-+#endif
-+#if PLAT_LOG_LEVEL >= PLAT_LOG_LEVEL_DEBUG
-+    #define VERBOSE(f_, ...) do { PRINTF("[DBG]:%s" f_"\r\n",MODULE_NAME_STR, ##__VA_ARGS__);  } while (0)
-+    #define DEBUG(f_, ...) do { PRINTF("[DBG]:%s" f_"\r\n",MODULE_NAME_STR, ##__VA_ARGS__);  } while (0)
-+#else
-+    #define VERBOSE(f_, ...) do {  } while(0)
-+    #define DEBUG(f_, ...) do {  } while(0)
-+#endif
-+
-+#endif /* __PLATFORM_LOG_H__ */
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Reorganize-bl2-files.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Reorganize-bl2-files.patch
new file mode 100644
index 0000000..1e56e36
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Reorganize-bl2-files.patch
@@ -0,0 +1,61 @@
+From 535d366137d2dd0804d3e67ada78151e0e318eeb Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Fri, 3 Mar 2023 12:25:04 +0000
+Subject: [PATCH 3/6] Platform: corstone1000: Reorganize bl2 files
+
+From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+
+To be consistnant, organize bl2 files same as bl1 files
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20555]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Change-Id: I3332f4dbbde1c5f2cde5a187b038dc3430b9503f
+---
+ platform/ext/target/arm/corstone1000/CMakeLists.txt         | 6 +++---
+ .../ext/target/arm/corstone1000/{ => bl2}/boot_hal_bl2.c    | 0
+ .../corstone1000/{bl2_flash_map.c => bl2/flash_map_bl2.c}   | 0
+ .../{bl2_security_cnt.c => bl2/security_cnt_bl2.c}          | 0
+ 4 files changed, 3 insertions(+), 3 deletions(-)
+ rename platform/ext/target/arm/corstone1000/{ => bl2}/boot_hal_bl2.c (100%)
+ rename platform/ext/target/arm/corstone1000/{bl2_flash_map.c => bl2/flash_map_bl2.c} (100%)
+ rename platform/ext/target/arm/corstone1000/{bl2_security_cnt.c => bl2/security_cnt_bl2.c} (100%)
+
+diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
+index a4fe28c08..3d4c787a6 100644
+--- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
++++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
+@@ -196,7 +196,7 @@ target_sources(platform_bl2
+         Native_Driver/arm_watchdog_drv.c
+         fip_parser/fip_parser.c
+         fw_update_agent/fwu_agent.c
+-        bl2_security_cnt.c
++        bl2/security_cnt_bl2.c
+         $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
+         io/io_block.c
+         io/io_flash.c
+@@ -235,8 +235,8 @@ target_compile_definitions(platform_bl2
+ # platform_init/quit* apis symbol collision in bl1.
+ target_sources(bl2
+     PRIVATE
+-        bl2_flash_map.c
+-        boot_hal_bl2.c
++        bl2/flash_map_bl2.c
++        bl2/boot_hal_bl2.c
+ )
+ 
+ target_link_libraries(bl2
+diff --git a/platform/ext/target/arm/corstone1000/boot_hal_bl2.c b/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
+similarity index 100%
+rename from platform/ext/target/arm/corstone1000/boot_hal_bl2.c
+rename to platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
+diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2/flash_map_bl2.c
+similarity index 100%
+rename from platform/ext/target/arm/corstone1000/bl2_flash_map.c
+rename to platform/ext/target/arm/corstone1000/bl2/flash_map_bl2.c
+diff --git a/platform/ext/target/arm/corstone1000/bl2_security_cnt.c b/platform/ext/target/arm/corstone1000/bl2/security_cnt_bl2.c
+similarity index 100%
+rename from platform/ext/target/arm/corstone1000/bl2_security_cnt.c
+rename to platform/ext/target/arm/corstone1000/bl2/security_cnt_bl2.c
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Fix-linker-script-comment.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Fix-linker-script-comment.patch
new file mode 100644
index 0000000..62a9d85
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Fix-linker-script-comment.patch
@@ -0,0 +1,47 @@
+From 25b131f0d082b32b262c4e788f3bc95b7761bef7 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Mon, 13 Mar 2023 00:16:49 +0000
+Subject: [PATCH 4/6] Platform: corstone1000: Fix linker script comment
+
+From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+
+Comment explaining the necessary defines to copy multiple ROM to RAM
+sections, was refering to the wrong file.
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20556]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Change-Id: I3e5f806330481daa24c5456d9c956e0cf589afee
+---
+ .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld    | 2 +-
+ .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld    | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+index d4eca2841..8ee334c6b 100644
+--- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
++++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+@@ -89,7 +89,7 @@ SECTIONS
+ 
+     /* To copy multiple ROM to RAM sections,
+      * define etext2/data2_start/data2_end and
+-     * define __STARTUP_COPY_MULTIPLE in startup_corstone700_bl2.S */
++     * define __STARTUP_COPY_MULTIPLE in startup_corstone1000.c */
+     .copy.table :
+     {
+         . = ALIGN(4);
+diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+index 6cd806378..e1e4f2966 100644
+--- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
++++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+@@ -84,7 +84,7 @@ SECTIONS
+ 
+     /* To copy multiple ROM to RAM sections,
+      * define etext2/data2_start/data2_end and
+-     * define __STARTUP_COPY_MULTIPLE in startup_corstone700_bl2.S */
++     * define __STARTUP_COPY_MULTIPLE in startup_corstone1000.c */
+     .copy.table :
+     {
+         . = ALIGN(4);
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Introduce-GPT-parser.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Introduce-GPT-parser.patch
deleted file mode 100644
index 418c533..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Introduce-GPT-parser.patch
+++ /dev/null
@@ -1,735 +0,0 @@
-From 1fdc3000f1ab6f9c1bb792cb8baff16a7517c03a Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Thu, 22 Dec 2022 14:27:41 +0000
-Subject: [PATCH 7/10] Platform:corstone1000: Introduce GPT parser
-
-Adding GPT parser
-Side changes required:
-Includes the implementation of the `plat_get_image_source` function
-in the platform.c file.
-
-The GPT parser requires the function. Given the image id, it should
-return handle to the IO device contains the image and image
-specification that allows IO storage access to the image.
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../target/arm/corstone1000/partition/efi.h   |  36 ++
- .../target/arm/corstone1000/partition/gpt.c   |  58 ++++
- .../target/arm/corstone1000/partition/gpt.h   |  51 +++
- .../target/arm/corstone1000/partition/mbr.h   |  29 ++
- .../arm/corstone1000/partition/partition.c    | 310 ++++++++++++++++++
- .../arm/corstone1000/partition/partition.h    |  47 +++
- .../target/arm/corstone1000/partition/uuid.h  |  76 +++++
- .../ext/target/arm/corstone1000/platform.c    |  20 ++
- .../ext/target/arm/corstone1000/platform.h    |  14 +
- 9 files changed, 641 insertions(+)
- create mode 100644 platform/ext/target/arm/corstone1000/partition/efi.h
- create mode 100644 platform/ext/target/arm/corstone1000/partition/gpt.c
- create mode 100644 platform/ext/target/arm/corstone1000/partition/gpt.h
- create mode 100644 platform/ext/target/arm/corstone1000/partition/mbr.h
- create mode 100644 platform/ext/target/arm/corstone1000/partition/partition.c
- create mode 100644 platform/ext/target/arm/corstone1000/partition/partition.h
- create mode 100644 platform/ext/target/arm/corstone1000/partition/uuid.h
- create mode 100644 platform/ext/target/arm/corstone1000/platform.c
- create mode 100644 platform/ext/target/arm/corstone1000/platform.h
-
-diff --git a/platform/ext/target/arm/corstone1000/partition/efi.h b/platform/ext/target/arm/corstone1000/partition/efi.h
-new file mode 100644
-index 0000000000..f66daffb32
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/efi.h
-@@ -0,0 +1,36 @@
-+/*
-+ * Copyright (c) 2021, Linaro Limited
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#ifndef DRIVERS_PARTITION_EFI_H
-+#define DRIVERS_PARTITION_EFI_H
-+
-+#include <string.h>
-+
-+#include "uuid.h"
-+
-+#define EFI_NAMELEN 36
-+
-+static inline int guidcmp(const void *g1, const void *g2) {
-+    return memcmp(g1, g2, sizeof(struct efi_guid));
-+}
-+
-+static inline void *guidcpy(void *dst, const void *src) {
-+    return memcpy(dst, src, sizeof(struct efi_guid));
-+}
-+
-+#define EFI_GUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)  \
-+    {                                                      \
-+        (a) & 0xffffffff, (b)&0xffff, (c)&0xffff, {        \
-+            (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) \
-+        }                                                  \
-+    }
-+
-+#define NULL_GUID                                                            \
-+    EFI_GUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
-+             0x00, 0x00)
-+
-+#endif /* DRIVERS_PARTITION_EFI_H */
-diff --git a/platform/ext/target/arm/corstone1000/partition/gpt.c b/platform/ext/target/arm/corstone1000/partition/gpt.c
-new file mode 100644
-index 0000000000..8549785e3b
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/gpt.c
-@@ -0,0 +1,58 @@
-+/*
-+ * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ */
-+
-+#include "gpt.h"
-+
-+#include <assert.h>
-+#include <errno.h>
-+#include <string.h>
-+
-+#include "efi.h"
-+
-+static int unicode_to_ascii(unsigned short *str_in, unsigned char *str_out) {
-+    uint8_t *name;
-+    int i;
-+
-+    assert((str_in != NULL) && (str_out != NULL));
-+
-+    name = (uint8_t *)str_in;
-+
-+    assert(name[0] != '\0');
-+
-+    /* check whether the unicode string is valid */
-+    for (i = 1; i < (EFI_NAMELEN << 1); i += 2) {
-+        if (name[i] != '\0') return -EINVAL;
-+    }
-+    /* convert the unicode string to ascii string */
-+    for (i = 0; i < (EFI_NAMELEN << 1); i += 2) {
-+        str_out[i >> 1] = name[i];
-+        if (name[i] == '\0') break;
-+    }
-+    return 0;
-+}
-+
-+int parse_gpt_entry(gpt_entry_t *gpt_entry, partition_entry_t *entry) {
-+    int result;
-+
-+    assert((gpt_entry != NULL) && (entry != NULL));
-+
-+    if ((gpt_entry->first_lba == 0) && (gpt_entry->last_lba == 0)) {
-+        return -EINVAL;
-+    }
-+
-+    memset(entry, 0, sizeof(partition_entry_t));
-+    result = unicode_to_ascii(gpt_entry->name, (uint8_t *)entry->name);
-+    if (result != 0) {
-+        return result;
-+    }
-+    entry->start = (uint64_t)gpt_entry->first_lba * PLAT_PARTITION_BLOCK_SIZE;
-+    entry->length = (uint64_t)(gpt_entry->last_lba - gpt_entry->first_lba + 1) *
-+                    PLAT_PARTITION_BLOCK_SIZE;
-+    guidcpy(&entry->part_guid, &gpt_entry->unique_uuid);
-+    guidcpy(&entry->type_guid, &gpt_entry->type_uuid);
-+
-+    return 0;
-+}
-diff --git a/platform/ext/target/arm/corstone1000/partition/gpt.h b/platform/ext/target/arm/corstone1000/partition/gpt.h
-new file mode 100644
-index 0000000000..b528fc05c0
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/gpt.h
-@@ -0,0 +1,51 @@
-+/*
-+ * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ */
-+
-+#ifndef GPT_H
-+#define GPT_H
-+
-+#include "efi.h"
-+#include "partition.h"
-+#include "uuid.h"
-+
-+#define PARTITION_TYPE_GPT 0xee
-+#define GPT_HEADER_OFFSET PLAT_PARTITION_BLOCK_SIZE
-+#define GPT_ENTRY_OFFSET (GPT_HEADER_OFFSET + PLAT_PARTITION_BLOCK_SIZE)
-+
-+#define GPT_SIGNATURE "EFI PART"
-+
-+typedef struct gpt_entry {
-+    struct efi_guid type_uuid;
-+    struct efi_guid unique_uuid;
-+    unsigned long long first_lba;
-+    unsigned long long last_lba;
-+    unsigned long long attr;
-+    unsigned short name[EFI_NAMELEN];
-+} gpt_entry_t;
-+
-+typedef struct gpt_header {
-+    unsigned char signature[8];
-+    unsigned int revision;
-+    unsigned int size;
-+    unsigned int header_crc;
-+    unsigned int reserved;
-+    unsigned long long current_lba;
-+    unsigned long long backup_lba;
-+    unsigned long long first_lba;
-+    unsigned long long last_lba;
-+    struct efi_guid disk_uuid;
-+    /* starting LBA of array of partition entries */
-+    unsigned long long part_lba;
-+    /* number of partition entries in array */
-+    unsigned int list_num;
-+    /* size of a single partition entry (usually 128) */
-+    unsigned int part_size;
-+    unsigned int part_crc;
-+} gpt_header_t;
-+
-+int parse_gpt_entry(gpt_entry_t *gpt_entry, partition_entry_t *entry);
-+
-+#endif /* GPT_H */
-diff --git a/platform/ext/target/arm/corstone1000/partition/mbr.h b/platform/ext/target/arm/corstone1000/partition/mbr.h
-new file mode 100644
-index 0000000000..e77f367016
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/mbr.h
-@@ -0,0 +1,29 @@
-+/*
-+ * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ */
-+
-+#ifndef MBR_H
-+#define MBR_H
-+
-+#define MBR_OFFSET 0
-+
-+#define MBR_PRIMARY_ENTRY_OFFSET 0x1be
-+#define MBR_PRIMARY_ENTRY_SIZE 0x10
-+#define MBR_PRIMARY_ENTRY_NUMBER 4
-+#define MBR_CHS_ADDRESS_LEN 3
-+
-+#define MBR_SIGNATURE_FIRST 0x55
-+#define MBR_SIGNATURE_SECOND 0xAA
-+
-+typedef struct mbr_entry {
-+    unsigned char status;
-+    unsigned char first_sector[MBR_CHS_ADDRESS_LEN];
-+    unsigned char type;
-+    unsigned char last_sector[MBR_CHS_ADDRESS_LEN];
-+    unsigned int first_lba;
-+    unsigned int sector_nums;
-+} mbr_entry_t;
-+
-+#endif /* MBR_H */
-diff --git a/platform/ext/target/arm/corstone1000/partition/partition.c b/platform/ext/target/arm/corstone1000/partition/partition.c
-new file mode 100644
-index 0000000000..afc6aa1c5c
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/partition.c
-@@ -0,0 +1,310 @@
-+/*
-+ * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ */
-+
-+#include "partition.h"
-+
-+#include <assert.h>
-+#include <errno.h>
-+#include <inttypes.h>
-+#include <stdio.h>
-+#include <string.h>
-+
-+#include "efi.h"
-+#include "gpt.h"
-+#include "mbr.h"
-+
-+#include "io_storage.h"
-+#include "platform.h"
-+#include "soft_crc.h"
-+
-+#define PLAT_LOG_MODULE_NAME "partition"
-+#include "platform_log.h"
-+
-+static uint8_t mbr_sector[PLAT_PARTITION_BLOCK_SIZE];
-+static partition_entry_list_t list;
-+
-+#if LOG_LEVEL >= LOG_LEVEL_DEBUG
-+static void dump_entries(int num) {
-+    char name[EFI_NAMELEN];
-+    int i, j, len;
-+
-+    VERBOSE("Partition table with %d entries:", num);
-+    for (i = 0; i < num; i++) {
-+        len = snprintf(name, EFI_NAMELEN, "%s", list.list[i].name);
-+        for (j = 0; j < EFI_NAMELEN - len - 1; j++) {
-+            name[len + j] = ' ';
-+        }
-+        name[EFI_NAMELEN - 1] = '\0';
-+        VERBOSE("%d: %s %x%x %d", i + 1, name,
-+                (uint32_t)(list.list[i].start >> 32),
-+                (uint32_t)list.list[i].start,
-+                (uint32_t)(list.list[i].start + list.list[i].length - 4));
-+    }
-+}
-+#else
-+#define dump_entries(num) ((void)num)
-+#endif
-+
-+/*
-+ * Load the first sector that carries MBR header.
-+ * The MBR boot signature should be always valid whether it's MBR or GPT.
-+ */
-+static int load_mbr_header(uintptr_t image_handle, mbr_entry_t *mbr_entry) {
-+    size_t bytes_read;
-+    uintptr_t offset;
-+    int result;
-+
-+    assert(mbr_entry != NULL);
-+    /* MBR partition table is in LBA0. */
-+    result = io_seek(image_handle, IO_SEEK_SET, MBR_OFFSET);
-+    if (result != 0) {
-+        WARN("Failed to seek (%i)\n", result);
-+        return result;
-+    }
-+    result = io_read(image_handle, (uintptr_t)&mbr_sector,
-+                     PLAT_PARTITION_BLOCK_SIZE, &bytes_read);
-+    if (result != 0) {
-+        WARN("Failed to read data (%i)\n", result);
-+        return result;
-+    }
-+
-+    /* Check MBR boot signature. */
-+    if ((mbr_sector[LEGACY_PARTITION_BLOCK_SIZE - 2] != MBR_SIGNATURE_FIRST) ||
-+        (mbr_sector[LEGACY_PARTITION_BLOCK_SIZE - 1] != MBR_SIGNATURE_SECOND)) {
-+        ERROR("MBR signature isn't correct");
-+        return -ENOENT;
-+    }
-+    offset = (uintptr_t)&mbr_sector + MBR_PRIMARY_ENTRY_OFFSET;
-+    memcpy(mbr_entry, (void *)offset, sizeof(mbr_entry_t));
-+    return 0;
-+}
-+
-+/*
-+ * Load GPT header and check the GPT signature and header CRC.
-+ * If partition numbers could be found, check & update it.
-+ */
-+static int load_gpt_header(uintptr_t image_handle) {
-+    gpt_header_t header;
-+    size_t bytes_read;
-+    int result;
-+    uint32_t header_crc, calc_crc;
-+
-+    result = io_seek(image_handle, IO_SEEK_SET, GPT_HEADER_OFFSET);
-+    if (result != 0) {
-+        return result;
-+    }
-+    result = io_read(image_handle, (uintptr_t)&header, sizeof(gpt_header_t),
-+                     &bytes_read);
-+    if ((result != 0) || (sizeof(gpt_header_t) != bytes_read)) {
-+        return result;
-+    }
-+    if (memcmp(header.signature, GPT_SIGNATURE, sizeof(header.signature)) !=
-+        0) {
-+        return -EINVAL;
-+    }
-+
-+    /*
-+     * UEFI Spec 2.8 March 2019 Page 119: HeaderCRC32 value is
-+     * computed by setting this field to 0, and computing the
-+     * 32-bit CRC for HeaderSize bytes.
-+     */
-+    header_crc = header.header_crc;
-+    header.header_crc = 0U;
-+
-+    calc_crc = crc32((uint8_t *)&header, DEFAULT_GPT_HEADER_SIZE);
-+    if (header_crc != calc_crc) {
-+        ERROR("Invalid GPT Header CRC: Expected 0x%x but got 0x%x.\n",
-+              header_crc, calc_crc);
-+        return -EINVAL;
-+    }
-+
-+    header.header_crc = header_crc;
-+
-+    /* partition numbers can't exceed PLAT_PARTITION_MAX_ENTRIES */
-+    list.entry_count = header.list_num;
-+    if (list.entry_count > PLAT_PARTITION_MAX_ENTRIES) {
-+        list.entry_count = PLAT_PARTITION_MAX_ENTRIES;
-+    }
-+    return 0;
-+}
-+
-+static int load_mbr_entry(uintptr_t image_handle, mbr_entry_t *mbr_entry,
-+                          int part_number) {
-+    size_t bytes_read;
-+    uintptr_t offset;
-+    int result;
-+
-+    assert(mbr_entry != NULL);
-+    /* MBR partition table is in LBA0. */
-+    result = io_seek(image_handle, IO_SEEK_SET, MBR_OFFSET);
-+    if (result != 0) {
-+        WARN("Failed to seek (%i)\n", result);
-+        return result;
-+    }
-+    result = io_read(image_handle, (uintptr_t)&mbr_sector,
-+                     PLAT_PARTITION_BLOCK_SIZE, &bytes_read);
-+    if (result != 0) {
-+        WARN("Failed to read data (%i)\n", result);
-+        return result;
-+    }
-+
-+    /* Check MBR boot signature. */
-+    if ((mbr_sector[LEGACY_PARTITION_BLOCK_SIZE - 2] != MBR_SIGNATURE_FIRST) ||
-+        (mbr_sector[LEGACY_PARTITION_BLOCK_SIZE - 1] != MBR_SIGNATURE_SECOND)) {
-+        return -ENOENT;
-+    }
-+    offset = (uintptr_t)&mbr_sector + MBR_PRIMARY_ENTRY_OFFSET +
-+             MBR_PRIMARY_ENTRY_SIZE * part_number;
-+    memcpy(mbr_entry, (void *)offset, sizeof(mbr_entry_t));
-+
-+    return 0;
-+}
-+
-+static int load_mbr_entries(uintptr_t image_handle) {
-+    mbr_entry_t mbr_entry;
-+    int i;
-+
-+    list.entry_count = MBR_PRIMARY_ENTRY_NUMBER;
-+
-+    for (i = 0; i < list.entry_count; i++) {
-+        load_mbr_entry(image_handle, &mbr_entry, i);
-+        list.list[i].start = mbr_entry.first_lba * 512;
-+        list.list[i].length = mbr_entry.sector_nums * 512;
-+        list.list[i].name[0] = mbr_entry.type;
-+    }
-+
-+    return 0;
-+}
-+
-+static int load_gpt_entry(uintptr_t image_handle, gpt_entry_t *entry) {
-+    size_t bytes_read;
-+    int result;
-+
-+    assert(entry != NULL);
-+    result = io_read(image_handle, (uintptr_t)entry, sizeof(gpt_entry_t),
-+                     &bytes_read);
-+    if (sizeof(gpt_entry_t) != bytes_read) return -EINVAL;
-+    return result;
-+}
-+
-+static int verify_partition_gpt(uintptr_t image_handle) {
-+    gpt_entry_t entry;
-+    int result, i;
-+
-+    for (i = 0; i < list.entry_count; i++) {
-+        result = load_gpt_entry(image_handle, &entry);
-+        assert(result == 0);
-+        if (result != 0) {
-+            break;
-+        }
-+        result = parse_gpt_entry(&entry, &list.list[i]);
-+        if (result != 0) {
-+            break;
-+        }
-+    }
-+    if (i == 0) {
-+        return -EINVAL;
-+    }
-+    /*
-+     * Only records the valid partition number that is loaded from
-+     * partition table.
-+     */
-+    list.entry_count = i;
-+    dump_entries(list.entry_count);
-+
-+    return 0;
-+}
-+
-+int load_partition_table(unsigned int image_id) {
-+    uintptr_t dev_handle, image_handle, image_spec = 0;
-+    mbr_entry_t mbr_entry;
-+    int result;
-+
-+    result = plat_get_image_source(image_id, &dev_handle, &image_spec);
-+    if (result != 0) {
-+        WARN("Failed to obtain reference to image id=%u (%i)\n", image_id,
-+             result);
-+        return result;
-+    }
-+
-+    result = io_open(dev_handle, image_spec, &image_handle);
-+    if (result != 0) {
-+        WARN("Failed to open image id=%u (%i)\n", image_id, result);
-+        return result;
-+    }
-+
-+    result = load_mbr_header(image_handle, &mbr_entry);
-+    if (result != 0) {
-+        ERROR("Loading mbr header failed with image id=%u (%i)\n", image_id,
-+              result);
-+        return result;
-+    }
-+    if (mbr_entry.type == PARTITION_TYPE_GPT) {
-+        INFO("Loading gpt header");
-+        result = load_gpt_header(image_handle);
-+        assert(result == 0);
-+        if (result != 0) {
-+            ERROR("Failed load gpt header! %i", result);
-+            goto load_partition_table_exit;
-+        }
-+        result = io_seek(image_handle, IO_SEEK_SET, GPT_ENTRY_OFFSET);
-+        assert(result == 0);
-+        if (result != 0) {
-+            ERROR("Failed seek gpt header! %i", result);
-+            goto load_partition_table_exit;
-+        }
-+        result = verify_partition_gpt(image_handle);
-+        if (result != 0) {
-+            ERROR("Failed verify gpt partition %i", result);
-+            goto load_partition_table_exit;
-+        }
-+    } else {
-+        result = load_mbr_entries(image_handle);
-+    }
-+
-+load_partition_table_exit:
-+    io_close(image_handle);
-+    return result;
-+}
-+
-+const partition_entry_t *get_partition_entry(const char *name) {
-+    int i;
-+
-+    for (i = 0; i < list.entry_count; i++) {
-+        if (strcmp(name, list.list[i].name) == 0) {
-+            return &list.list[i];
-+        }
-+    }
-+    return NULL;
-+}
-+
-+const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_uuid) {
-+    int i;
-+
-+    for (i = 0; i < list.entry_count; i++) {
-+        if (guidcmp(type_uuid, &list.list[i].type_guid) == 0) {
-+            return &list.list[i];
-+        }
-+    }
-+
-+    return NULL;
-+}
-+
-+const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid) {
-+    int i;
-+
-+    for (i = 0; i < list.entry_count; i++) {
-+        if (guidcmp(part_uuid, &list.list[i].part_guid) == 0) {
-+            return &list.list[i];
-+        }
-+    }
-+
-+    return NULL;
-+}
-+
-+const partition_entry_list_t *get_partition_entry_list(void) { return &list; }
-+
-+void partition_init(unsigned int image_id) { load_partition_table(image_id); }
-diff --git a/platform/ext/target/arm/corstone1000/partition/partition.h b/platform/ext/target/arm/corstone1000/partition/partition.h
-new file mode 100644
-index 0000000000..54af47aca4
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/partition.h
-@@ -0,0 +1,47 @@
-+/*
-+ * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ */
-+
-+#ifndef PARTITION_H
-+#define PARTITION_H
-+
-+#include <stdint.h>
-+
-+#include "efi.h"
-+#include "uuid.h"
-+
-+#if !PLAT_PARTITION_MAX_ENTRIES
-+#define PLAT_PARTITION_MAX_ENTRIES 16
-+#endif /* PLAT_PARTITION_MAX_ENTRIES */
-+
-+#if !PLAT_PARTITION_BLOCK_SIZE
-+#define PLAT_PARTITION_BLOCK_SIZE 512
-+#endif /* PLAT_PARTITION_BLOCK_SIZE */
-+
-+#define LEGACY_PARTITION_BLOCK_SIZE 512
-+
-+#define DEFAULT_GPT_HEADER_SIZE 92
-+
-+typedef struct partition_entry {
-+    uint64_t start;
-+    uint64_t length;
-+    char name[EFI_NAMELEN];
-+    struct efi_guid part_guid;
-+    struct efi_guid type_guid;
-+} partition_entry_t;
-+
-+typedef struct partition_entry_list {
-+    partition_entry_t list[PLAT_PARTITION_MAX_ENTRIES];
-+    int entry_count;
-+} partition_entry_list_t;
-+
-+int load_partition_table(unsigned int image_id);
-+const partition_entry_t *get_partition_entry(const char *name);
-+const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_guid);
-+const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid);
-+const partition_entry_list_t *get_partition_entry_list(void);
-+void partition_init(unsigned int image_id);
-+
-+#endif /* PARTITION_H */
-diff --git a/platform/ext/target/arm/corstone1000/partition/uuid.h b/platform/ext/target/arm/corstone1000/partition/uuid.h
-new file mode 100644
-index 0000000000..06fec5a3c0
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/partition/uuid.h
-@@ -0,0 +1,76 @@
-+/*-
-+ * Copyright (c) 2002 Marcel Moolenaar
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ *    notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *    notice, this list of conditions and the following disclaimer in the
-+ *    documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * $FreeBSD$
-+ */
-+
-+/*
-+ * Portions copyright (c) 2014-2020, ARM Limited and Contributors.
-+ * All rights reserved.
-+ */
-+
-+#ifndef UUID_H
-+#define UUID_H
-+
-+#include <stdint.h>
-+
-+/* Length of a node address (an IEEE 802 address). */
-+#define _UUID_NODE_LEN 6
-+
-+/* Length of UUID string including dashes. */
-+#define _UUID_STR_LEN 36
-+
-+/*
-+ * See also:
-+ *      http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt
-+ *      http://www.opengroup.org/onlinepubs/009629399/apdxa.htm
-+ *
-+ * A DCE 1.1 compatible source representation of UUIDs.
-+ */
-+struct uuid {
-+    uint8_t time_low[4];
-+    uint8_t time_mid[2];
-+    uint8_t time_hi_and_version[2];
-+    uint8_t clock_seq_hi_and_reserved;
-+    uint8_t clock_seq_low;
-+    uint8_t node[_UUID_NODE_LEN];
-+};
-+
-+struct efi_guid {
-+    uint32_t time_low;
-+    uint16_t time_mid;
-+    uint16_t time_hi_and_version;
-+    uint8_t clock_seq_and_node[8];
-+};
-+
-+union uuid_helper_t {
-+    struct uuid uuid_struct;
-+    struct efi_guid efi_guid;
-+};
-+
-+/* XXX namespace pollution? */
-+typedef struct uuid uuid_t;
-+
-+#endif /* UUID_H */
-diff --git a/platform/ext/target/arm/corstone1000/platform.c b/platform/ext/target/arm/corstone1000/platform.c
-new file mode 100644
-index 0000000000..908b66b7ac
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/platform.c
-@@ -0,0 +1,20 @@
-+/*
-+ * Copyright (c) 2023, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#include "platform.h"
-+
-+#include <stdint.h>
-+
-+/* Return an IO device handle and specification which can be used to access
-+ * an image. This has to be implemented for the GPT parser. */
-+int32_t plat_get_image_source(unsigned int image_id, uintptr_t *dev_handle,
-+                              uintptr_t *image_spec) {
-+    (void)image_id;
-+    *dev_handle = NULL;
-+    *image_spec = NULL;
-+    return 0;
-+}
-diff --git a/platform/ext/target/arm/corstone1000/platform.h b/platform/ext/target/arm/corstone1000/platform.h
-new file mode 100644
-index 0000000000..250f9cd9f5
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/platform.h
-@@ -0,0 +1,14 @@
-+/*
-+ * Copyright (c) 2023, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#ifndef __PLATFORM_H__
-+#define __PLATFORM_H__
-+
-+int32_t plat_get_image_source(unsigned int image_id, uintptr_t *dev_handle,
-+                              uintptr_t *image_spec);
-+
-+#endif /*__PLATFORM_H__*/
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch
deleted file mode 100644
index d9143a0..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch
+++ /dev/null
@@ -1,337 +0,0 @@
-From f70bbd0d8efefcc69916fc0393bc413fb39924af Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Tue, 10 Jan 2023 22:33:26 +0000
-Subject: [PATCH 8/10] Platform: corstone1000: BL1 changes to adapt to new flash
- layout
-
-The commit prepares BL1 to adapt to new GPT-based flash layout.
-
-BL1 does not incorporate a GPT parser and still uses a static
-configuration to understand the flash.
-
-The flash_layout.h is also modified/marked in a way to start
-the process of its simplification.
-
-Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../arm/corstone1000/bl1/bl1_boot_hal.c       | 10 +--
- .../arm/corstone1000/bl1/bl1_flash_map.c      | 17 ++--
- .../target/arm/corstone1000/bl2_flash_map.c   |  8 +-
- .../corstone1000/fw_update_agent/fwu_agent.c  | 16 ++--
- .../corstone1000/fw_update_agent/fwu_agent.h  |  4 +-
- .../arm/corstone1000/partition/flash_layout.h | 84 +++++++++----------
- 6 files changed, 66 insertions(+), 73 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c b/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
-index 9caa26b26c..a5fe0f7da1 100644
---- a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
-+++ b/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
-+ * Copyright (c) 2019-2023, Arm Limited. All rights reserved.
-  *
-  * SPDX-License-Identifier: BSD-3-Clause
-  *
-@@ -601,12 +601,12 @@ __attribute__((naked)) void boot_clear_bl2_ram_area(void)
-     );
- }
- 
--extern void add_bank_offset_to_image_offset(uint32_t bank_offset);
-+extern void set_flash_area_image_offset(uint32_t offset);
- 
- int32_t boot_platform_init(void)
- {
-     int32_t result;
--    uint32_t bank_offset;
-+    uint32_t image_offset;
- 
-     result = corstone1000_watchdog_init();
-     if (result != ARM_DRIVER_OK) {
-@@ -653,8 +653,8 @@ int32_t boot_platform_init(void)
-         }
-     }
- 
--    bl1_get_boot_bank(&bank_offset);
--    add_bank_offset_to_image_offset(bank_offset);
-+    bl1_get_active_bl2_image(&image_offset);
-+    set_flash_area_image_offset(image_offset);
- 
-     return 0;
- }
-diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c b/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c
-index c8a1f13319..0e615da254 100644
---- a/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c
-+++ b/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2019-2021, Arm Limited. All rights reserved.
-+ * Copyright (c) 2019-2021, 2023 Arm Limited. All rights reserved.
-  *
-  * SPDX-License-Identifier: BSD-3-Clause
-  *
-@@ -22,23 +22,22 @@ struct flash_area flash_map[] = {
-         .fa_id = FLASH_AREA_8_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
--        .fa_off = FLASH_AREA_8_OFFSET,
-+        .fa_off = FLASH_INVALID_OFFSET,
-         .fa_size = FLASH_AREA_8_SIZE,
-     },
-+    /* Secondary slot is not supported */
-     {
--        .fa_id = FLASH_AREA_9_ID,
-+        .fa_id = FLASH_INVALID_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
--        .fa_off = FLASH_AREA_9_OFFSET,
--        .fa_size = FLASH_AREA_9_SIZE,
-+        .fa_off = FLASH_INVALID_OFFSET,
-+        .fa_size = FLASH_INVALID_SIZE,
-     },
- };
- 
- const int flash_map_entry_num = ARRAY_SIZE(flash_map);
- 
--void add_bank_offset_to_image_offset(uint32_t bank_offset)
-+void set_flash_area_image_offset(uint32_t offset)
- {
--    for (int i = 0; i < flash_map_entry_num; i++) {
--        flash_map[i].fa_off += bank_offset;
--    }
-+    flash_map[0].fa_off = offset;
- }
-diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-index 0a6a592d94..f512045a44 100644
---- a/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-+++ b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-@@ -28,15 +28,15 @@ struct flash_area flash_map[] = {
-         .fa_id = FLASH_AREA_0_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
--        .fa_off = FLASH_AREA_0_OFFSET,
--        .fa_size = FLASH_AREA_0_SIZE,
-+        .fa_off = FLASH_INVALID_OFFSET,
-+        .fa_size = FLASH_INVALID_SIZE,
-     },
-     {
-         .fa_id = FLASH_AREA_1_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
--        .fa_off = FLASH_AREA_1_OFFSET,
--        .fa_size = FLASH_AREA_1_SIZE,
-+        .fa_off = FLASH_INVALID_OFFSET,
-+        .fa_size = FLASH_INVALID_SIZE,
-     },
- #ifndef TFM_S_REG_TEST
-     {
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index eb17c3a377..e4f9da1ec3 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -154,7 +154,7 @@ static enum fwu_agent_error_t private_metadata_read(
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_AREA_OFFSET, p_metadata,
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, p_metadata,
-                                           sizeof(struct fwu_private_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -178,12 +178,12 @@ static enum fwu_agent_error_t private_metadata_write(
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_AREA_OFFSET);
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET);
-     if (ret != ARM_DRIVER_OK) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_AREA_OFFSET,
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET,
-                                 p_metadata, sizeof(struct fwu_private_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -769,7 +769,7 @@ static enum fwu_agent_error_t fwu_select_previous(
- 
- }
- 
--void bl1_get_boot_bank(uint32_t *bank_offset)
-+void bl1_get_active_bl2_image(uint32_t *offset)
- {
-     struct fwu_private_metadata priv_metadata;
-     enum fwu_agent_state_t current_state;
-@@ -823,15 +823,15 @@ void bl1_get_boot_bank(uint32_t *bank_offset)
-     }
- 
-     if (boot_index == BANK_0) {
--        *bank_offset = BANK_0_PARTITION_OFFSET;
-+        *offset = SE_BL2_BANK_0_OFFSET;
-     } else if (boot_index == BANK_1) {
--        *bank_offset = BANK_1_PARTITION_OFFSET;
-+        *offset = SE_BL2_BANK_1_OFFSET;
-     } else {
-         FWU_ASSERT(0);
-     }
- 
--    FWU_LOG_MSG("%s: exit: booting from bank = %u, offset = %x\n\r", __func__,
--                        boot_index, *bank_offset);
-+    FWU_LOG_MSG("%s: exit: booting from bank = %u, offset = 0x%x\n\r", __func__,
-+                        boot_index, *offset);
- 
-     return;
- }
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h
-index 00a08354be..eb8320ed8a 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2021, Arm Limited. All rights reserved.
-+ * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
-  *
-  * SPDX-License-Identifier: BSD-3-Clause
-  *
-@@ -44,7 +44,7 @@ enum fwu_agent_error_t corstone1000_fwu_flash_image(void);
-  */
- enum fwu_agent_error_t corstone1000_fwu_host_ack(void);
- 
--void bl1_get_boot_bank(uint32_t *bank_offset);
-+void bl1_get_active_bl2_image(uint32_t *bank_offset);
- void bl2_get_boot_bank(uint32_t *bank_offset);
- 
- /* When in trial state, start the timer for host to respond.
-diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-index 5970a13c12..347c91acbb 100644
---- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-+++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2017-2022 Arm Limited. All rights reserved.
-+ * Copyright (c) 2017-2023 Arm Limited. All rights reserved.
-  *
-  * Licensed under the Apache License, Version 2.0 (the "License");
-  * you may not use this file except in compliance with the License.
-@@ -98,56 +98,56 @@
- 
- #endif
- 
--/* Flash layout (32MB) :-
-- *
-- * 1 MB     : FWU_METADATA_PARTITION_SIZE
-- * 15.5 MB  : BANK 1 PARTITION SIZE
-- * 15.5 MB  : BANK 2 PARTITION SIZE
-- *
-- */
--#define FWU_METADATA_PARTITION_SIZE     (0x100000)   /* 1MB */
--#define BANK_PARTITION_SIZE             (0xF80000)   /* 15.5 MB */
-+/* Static Configurations of the Flash */
-+#define SE_BL2_PARTITION_SIZE           (0x18800)    /* 98 KB */
-+#define SE_BL2_BANK_0_OFFSET            (0x9000)  /* 72nd LBA */
-+#define SE_BL2_BANK_1_OFFSET            (0x1002000)  /* 32784th LBA */
- 
--#define FLASH_BASE_OFFSET               (0x0)
-+/* Space in flash to store metadata and uefi variables */
-+#define FWU_METADATA_FLASH_DEV          (FLASH_DEV_NAME)
-+#define FWU_METADATA_FLASH_SECTOR_SIZE  (FLASH_SECTOR_SIZE)
- 
--/* BANK layout (15MB: BANK_PARTITION_SIZE) :-
-- *
-- * 200 KB    : SE_BL2_PARTITION_SIZE + SE_BL2_PARTITION_SIZE
-- * 752 KB    : TFM_PARTITION_SIZE + TFM_PARTITION_SIZE
-- * 2 MB      : FIP_PARTITION_SIZE
-- * 12+ MB    : KERNEL_PARTITION_SIZE
-- *
-- */
--#define SE_BL2_PARTITION_SIZE           (0x19000)    /* 100 KB */
--#define TFM_PARTITION_SIZE              (0x5E000)    /* 376 KB */
--#define FIP_PARTITION_SIZE              (0x200000)   /* 2 MB */
--#define KERNEL_PARTITION_SIZE           (0xC00000)   /* 12 MB */
-+#define FWU_METADATA_REPLICA_1_OFFSET   (0x5000)  /* 40th LBA */
-+#define FWU_METADATA_REPLICA_2_OFFSET   (FWU_METADATA_REPLICA_1_OFFSET + \
-+                                         FWU_METADATA_FLASH_SECTOR_SIZE)
- 
-+#define FWU_PRIVATE_METADATA_REPLICA_1_OFFSET   (FWU_METADATA_REPLICA_2_OFFSET + \
-+                                                 FWU_METADATA_FLASH_SECTOR_SIZE)
-+#define FWU_PRIVATE_METADATA_REPLICA_2_OFFSET   (FWU_PRIVATE_METADATA_REPLICA_1_OFFSET + \
-+                                                 FWU_METADATA_FLASH_SECTOR_SIZE)
- 
-+#define BANK_0_PARTITION_OFFSET         (SE_BL2_BANK_0_OFFSET + \
-+                                         SE_BL2_PARTITION_SIZE)
-+#define BANK_1_PARTITION_OFFSET         (SE_BL2_BANK_1_OFFSET + \
-+                                         SE_BL2_PARTITION_SIZE)
- 
-+/* BL1: mcuboot flashmap configurations */
-+#define FLASH_AREA_8_ID                 (1)
-+#define FLASH_AREA_8_SIZE               (SE_BL2_PARTITION_SIZE)
- 
--/* 1MB: space in flash to store metadata and uefi variables */
--#define FWU_METADATA_FLASH_DEV          (FLASH_DEV_NAME)
--#define FWU_METADATA_FLASH_SECTOR_SIZE  (FLASH_SECTOR_SIZE)
-+#define FLASH_INVALID_ID                (0xFF)
-+#define FLASH_INVALID_OFFSET            (0xFFFFFFFF)
-+#define FLASH_INVALID_SIZE              (0xFFFFFFFF)
- 
--#define FWU_METADATA_PARTITION_OFFSET   (FLASH_BASE_OFFSET)
--#define FWU_METADATA_AREA_SIZE          (FWU_METADATA_FLASH_SECTOR_SIZE)
--#define FWU_METADATA_REPLICA_1_OFFSET   (FLASH_BASE_OFFSET)
--#define FWU_METADATA_REPLICA_2_OFFSET   (FWU_METADATA_REPLICA_1_OFFSET + \
--                                         FWU_METADATA_AREA_SIZE)
--#define FWU_PRIVATE_AREA_SIZE           (FLASH_SECTOR_SIZE)
--#define FWU_PRIVATE_AREA_OFFSET         (FWU_METADATA_REPLICA_2_OFFSET + \
--                                         FWU_METADATA_AREA_SIZE)
-+#define BL1_FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_8_ID : \
-+                                                          255 )
-+#define BL1_FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_INVALID_ID : \
-+                                                          255 )
-+
-+#define BL1_FLASH_AREA_IMAGE_SCRATCH        255
- 
-+/* FWU Configurations */
- #define NR_OF_FW_BANKS                  (2)
- #define NR_OF_IMAGES_IN_FW_BANK         (4) /* Secure Enclave: BL2 and TF-M \
-                                              * Host: FIP and Kernel image
-                                              */
- 
--#define BANK_0_PARTITION_OFFSET         (FWU_METADATA_PARTITION_OFFSET + \
--                                         FWU_METADATA_PARTITION_SIZE)
--#define BANK_1_PARTITION_OFFSET         (BANK_0_PARTITION_OFFSET + \
--                                         BANK_PARTITION_SIZE)
-+/****** TODO: START : NEED SIMPLIFICATION BASED ON GPT *******************/
-+/* Bank configurations */
-+#define BANK_PARTITION_SIZE             (0xFE0000)   /* 15.875 MB */
-+#define TFM_PARTITION_SIZE              (0x5E000)    /* 376 KB */
-+#define FIP_PARTITION_SIZE              (0x200000)   /* 2 MB */
-+#define KERNEL_PARTITION_SIZE           (0xC00000)   /* 12 MB */
- 
- /************************************************************/
- /* Bank : Images flash offsets are with respect to the bank */
-@@ -170,13 +170,6 @@
- #define BL2_IMAGE_OFFSET                (0x0)
- #define BL2_IMAGE_MAX_SIZE              (SE_BL2_PARTITION_SIZE)
- 
--#define BL1_FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_8_ID : \
--                                                          255 )
--#define BL1_FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_9_ID : \
--                                                          255 )
--
--#define BL1_FLASH_AREA_IMAGE_SCRATCH        255
--
- /* Image 1: TF-M primary and secondary images */
- #define FLASH_AREA_0_ID                 (1)
- #define FLASH_AREA_0_OFFSET             (FLASH_AREA_9_OFFSET + \
-@@ -229,6 +222,7 @@
- #define FWU_METADATA_IMAGE_3_OFFSET     (KERNEL_PARTITION_OFFSET)
- #define FWU_METADATA_IMAGE_3_SIZE_LIMIT (KERNEL_PARTITION_SIZE)
- 
-+/****** TODO: END : NEED SIMPLIFICATION BASED ON GPT *******************/
- 
- /*******************************/
- /*** ITS, PS and NV Counters ***/
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch
new file mode 100644
index 0000000..7f7f6ed
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch
@@ -0,0 +1,39 @@
+From 7db7b197ec3f01163422450947540060d3cb0c17 Mon Sep 17 00:00:00 2001
+From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Date: Mon, 13 Mar 2023 00:21:44 +0000
+Subject: [PATCH 6/6] Platform: corstone1000: Fix linkerscripts copyright year
+
+set the copyright year to 2023 as these files are introduced in
+2023.
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20557]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Change-Id: I293a4a380d5d1d59aba1e2ab17e0e5924664dbb4
+---
+ .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld    | 2 +-
+ .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld    | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+index 8ee334c6b..cb6797f27 100644
+--- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
++++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
+@@ -1,5 +1,5 @@
+ ;/*
+-; * Copyright (c) 2009-2022, Arm Limited. All rights reserved.
++; * Copyright (c) 2023, Arm Limited. All rights reserved.
+ ; *
+ ; * Licensed under the Apache License, Version 2.0 (the "License");
+ ; * you may not use this file except in compliance with the License.
+diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+index e1e4f2966..e66e54aa6 100644
+--- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
++++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
+@@ -1,5 +1,5 @@
+ ;/*
+-; * Copyright (c) 2009-2022, Arm Limited. All rights reserved.
++; * Copyright (c) 2023, Arm Limited. All rights reserved.
+ ; *
+ ; * Licensed under the Apache License, Version 2.0 (the "License");
+ ; * you may not use this file except in compliance with the License.
+-- 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-BL2-uses-GPT-layout.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-BL2-uses-GPT-layout.patch
deleted file mode 100644
index 9df98cd..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-BL2-uses-GPT-layout.patch
+++ /dev/null
@@ -1,411 +0,0 @@
-From 6f95d99329e178b7dea5cf7affac2c55135bbb85 Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Wed, 11 Jan 2023 10:27:04 +0000
-Subject: [PATCH 9/10] Platform:corstone1000: BL2 uses GPT layout
-
-Adabt BL2 to use GPT parser find tfm and fip partitions, and then
-extract info to populate MCUBOOT flashmap.
-
-Side changes required:
-Borrow 2k of BL2 code memory to Data memory (during linking)
-i.e. Increase BL2_DATA_GAP_SIZE and decrease SE_BL2_PARTITION_SIZE
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../target/arm/corstone1000/CMakeLists.txt    |  5 +-
- .../target/arm/corstone1000/bl2_flash_map.c   |  7 --
- .../target/arm/corstone1000/boot_hal_bl2.c    | 86 +++++++++++++-----
- .../corstone1000/fw_update_agent/fwu_agent.c  | 24 ++---
- .../corstone1000/fw_update_agent/fwu_agent.h  |  2 +-
- .../arm/corstone1000/partition/flash_layout.h |  2 +-
- .../ext/target/arm/corstone1000/platform.c    | 87 ++++++++++++++++++-
- .../ext/target/arm/corstone1000/platform.h    | 10 +++
- 8 files changed, 168 insertions(+), 55 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index a120f39ea4..f16c1c40b0 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -130,6 +130,10 @@ target_sources(platform_bl2
-         io/io_block.c
-         io/io_flash.c
-         io/io_storage.c
-+        soft_crc/soft_crc.c
-+        partition/partition.c
-+        partition/gpt.c
-+        platform.c
- )
- 
- if (PLATFORM_IS_FVP)
-@@ -174,7 +178,6 @@ target_compile_definitions(bl2
-         $<$<BOOL:${CRYPTO_HW_ACCELERATOR}>:CRYPTO_HW_ACCELERATOR>
-         $<$<BOOL:${CRYPTO_HW_ACCELERATOR_OTP_PROVISIONING}>:CRYPTO_HW_ACCELERATOR_OTP_PROVISIONING>
-         $<$<BOOL:${PLATFORM_PSA_ADAC_SECURE_DEBUG}>:PLATFORM_PSA_ADAC_SECURE_DEBUG>
--
- )
- target_compile_definitions(bootutil
-     PRIVATE
-diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-index f512045a44..599f80b411 100644
---- a/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-+++ b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-@@ -58,13 +58,6 @@ struct flash_area flash_map[] = {
- 
- const int flash_map_entry_num = ARRAY_SIZE(flash_map);
- 
--void add_bank_offset_to_image_offset(uint32_t bank_offset)
--{
--    for (int i = 0; i < flash_map_entry_num; i++) {
--        flash_map[i].fa_off += bank_offset;
--    }
--}
--
- int boot_get_image_exec_ram_info(uint32_t image_id,
-                                  uint32_t *exec_ram_start,
-                                  uint32_t *exec_ram_size)
-diff --git a/platform/ext/target/arm/corstone1000/boot_hal_bl2.c b/platform/ext/target/arm/corstone1000/boot_hal_bl2.c
-index 323d9707fe..52db26beea 100644
---- a/platform/ext/target/arm/corstone1000/boot_hal_bl2.c
-+++ b/platform/ext/target/arm/corstone1000/boot_hal_bl2.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
-+ * Copyright (c) 2019-2023, Arm Limited. All rights reserved.
-  *
-  * SPDX-License-Identifier: BSD-3-Clause
-  *
-@@ -30,6 +30,14 @@
- #include "crypto_hw.h"
- #endif
- 
-+#include "efi.h"
-+#include "partition.h"
-+#include "platform.h"
-+
-+static const uint8_t * const tfm_part_names[] = {"tfm_primary", "tfm_secondary"};
-+static const uint8_t * const fip_part_names[] = {"FIP_A", "FIP_B"};
-+
-+
- /* Flash device name must be specified by target */
- extern ARM_DRIVER_FLASH FLASH_DEV_NAME;
- 
-@@ -39,28 +47,62 @@ REGION_DECLARE(Image$$, ARM_LIB_HEAP, $$ZI$$Limit)[];
- #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof((arr)[0]))
- extern struct flash_area flash_map[];
- 
--int32_t fill_bl2_flash_map_by_parsing_fips(uint32_t bank_offset)
--{
--    int result;
-+static bool fill_flash_map_with_tfm_data(uint8_t boot_index) {
-+
-+    if (boot_index >= ARRAY_SIZE(tfm_part_names)) {
-+        BOOT_LOG_ERR("%d is an invalid boot_index, 0 <= boot_index < %d",
-+                     boot_index, ARRAY_SIZE(tfm_part_names));
-+        return false;
-+    }
-+    partition_entry_t *tfm_entry =
-+        get_partition_entry(tfm_part_names[boot_index]);
-+    if (tfm_entry == NULL) {
-+        BOOT_LOG_ERR("Could not find partition %s", tfm_part_names[boot_index]);
-+        return false;
-+    }
-+    flash_map[0].fa_off = tfm_entry->start;
-+    flash_map[0].fa_size = tfm_entry->length;
-+    return true;
-+}
-+
-+static bool fill_flash_map_with_fip_data(uint8_t boot_index) {
-     uint32_t tfa_offset = 0;
--    uint32_t tfa_size = 0;
-+    size_t tfa_size = 0;
-+    uint32_t fip_offset = 0;
-+    size_t fip_size = 0;
-+    int result;
-+
-+    if (boot_index >= ARRAY_SIZE(fip_part_names)) {
-+        BOOT_LOG_ERR("%d is an invalid boot_index, 0 <= boot_index < %d",
-+                     boot_index, ARRAY_SIZE(fip_part_names));
-+        return false;
-+    }
-+    partition_entry_t *fip_entry =
-+        get_partition_entry(fip_part_names[boot_index]);
-+    if (fip_entry == NULL) {
-+        BOOT_LOG_ERR("Could not find partition %s", fip_part_names[boot_index]);
-+        return false;
-+    }
-+
-+    fip_offset = fip_entry->start;
-+    fip_size = fip_entry->length;
- 
-     /* parse directly from flash using XIP mode */
-     /* FIP is large so its not a good idea to load it in memory */
--    result = parse_fip_and_extract_tfa_info(bank_offset + FLASH_FIP_ADDRESS,
--                  FLASH_FIP_SIZE,
--                  &tfa_offset, &tfa_size);
-+    result = parse_fip_and_extract_tfa_info(
-+        FLASH_BASE_ADDRESS + fip_offset + FIP_SIGNATURE_AREA_SIZE, fip_size,
-+        &tfa_offset, &tfa_size);
-     if (result != FIP_PARSER_SUCCESS) {
-         BOOT_LOG_ERR("parse_fip_and_extract_tfa_info failed");
--        return 1;
-+        return false;
-     }
- 
--    flash_map[2].fa_off = FLASH_FIP_OFFSET + tfa_offset;
-+    flash_map[2].fa_off = fip_offset + FIP_SIGNATURE_AREA_SIZE + tfa_offset;
-     flash_map[2].fa_size = tfa_size;
-     flash_map[3].fa_off = flash_map[2].fa_off + flash_map[2].fa_size;
-     flash_map[3].fa_size = tfa_size;
- 
--    return 0;
-+    return true;
- }
- 
- #ifdef PLATFORM_PSA_ADAC_SECURE_DEBUG
-@@ -89,26 +131,29 @@ uint8_t secure_debug_rotpk[32];
- 
- #endif
- 
--extern void add_bank_offset_to_image_offset(uint32_t bank_offset);
--
- int32_t boot_platform_init(void)
- {
-     int32_t result;
-+    uint8_t boot_index;
- 
-     result = corstone1000_watchdog_init();
-     if (result != ARM_DRIVER_OK) {
-         return 1;
-     }
- 
--#ifndef TFM_S_REG_TEST
--    result = fill_bl2_flash_map_by_parsing_fips(BANK_0_PARTITION_OFFSET);
--    if (result) {
-+    result = FLASH_DEV_NAME.Initialize(NULL);
-+    if (result != ARM_DRIVER_OK) {
-         return 1;
-     }
--#endif
- 
--    result = FLASH_DEV_NAME.Initialize(NULL);
--    if (result != ARM_DRIVER_OK) {
-+    plat_io_storage_init();
-+    partition_init(PLATFORM_GPT_IMAGE);
-+
-+    boot_index = bl2_get_boot_bank();
-+
-+    if (!fill_flash_map_with_tfm_data(boot_index)
-+    || !fill_flash_map_with_fip_data(boot_index)) {
-+        BOOT_LOG_ERR("Filling flash map has failed!");
-         return 1;
-     }
- 
-@@ -149,9 +194,6 @@ int32_t boot_platform_post_init(void)
-     }
- #endif
- 
--    bl2_get_boot_bank(&bank_offset);
--    add_bank_offset_to_image_offset(bank_offset);
--
-     return 0;
- }
- 
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index e4f9da1ec3..1052bf9f00 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -836,34 +836,20 @@ void bl1_get_active_bl2_image(uint32_t *offset)
-     return;
- }
- 
--void bl2_get_boot_bank(uint32_t *bank_offset)
-+uint8_t bl2_get_boot_bank(void)
- {
--    uint32_t boot_index;
-+    uint8_t boot_index;
-     struct fwu_private_metadata priv_metadata;
--    FWU_LOG_MSG("%s: enter\n\r", __func__);
--
-+    FWU_LOG_MSG("%s: enter", __func__);
-     if (fwu_metadata_init()) {
-         FWU_ASSERT(0);
-     }
--
-     if (private_metadata_read(&priv_metadata)) {
-         FWU_ASSERT(0);
-     }
--
-     boot_index = priv_metadata.boot_index;
--
--    if (boot_index == BANK_0) {
--        *bank_offset = BANK_0_PARTITION_OFFSET;
--    } else if (boot_index == BANK_1) {
--        *bank_offset = BANK_1_PARTITION_OFFSET;
--    } else {
--        FWU_ASSERT(0);
--    }
--
--    FWU_LOG_MSG("%s: exit: booting from bank = %u, offset = %x\n\r", __func__,
--                        boot_index, *bank_offset);
--
--    return;
-+    FWU_LOG_MSG("%s: exit: booting from bank = %u", __func__, boot_index);
-+    return boot_index;
- }
- 
- static void disable_host_ack_timer(void)
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h
-index eb8320ed8a..701f205583 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h
-@@ -45,7 +45,7 @@ enum fwu_agent_error_t corstone1000_fwu_flash_image(void);
- enum fwu_agent_error_t corstone1000_fwu_host_ack(void);
- 
- void bl1_get_active_bl2_image(uint32_t *bank_offset);
--void bl2_get_boot_bank(uint32_t *bank_offset);
-+uint8_t bl2_get_boot_bank(void);
- 
- /* When in trial state, start the timer for host to respond.
-  * Diable timer when host responds back either by calling
-diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-index 347c91acbb..c5cf94a52c 100644
---- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-+++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-@@ -32,7 +32,7 @@
- #define SRAM_BASE                       (0x30000000)
- #define SRAM_SIZE                       (0x80000)     /* 512 KB */
- 
--#define BL2_DATA_GAP_SIZE               (0x09000)     /* 36 KB */
-+#define BL2_DATA_GAP_SIZE               (0x09800)  /* 38 KB */
- 
- #define BL1_DATA_START                  (SRAM_BASE)
- #define BL1_DATA_SIZE                   (0x10000)     /* 64 KiB*/
-diff --git a/platform/ext/target/arm/corstone1000/platform.c b/platform/ext/target/arm/corstone1000/platform.c
-index 908b66b7ac..6add0d7e1b 100644
---- a/platform/ext/target/arm/corstone1000/platform.c
-+++ b/platform/ext/target/arm/corstone1000/platform.c
-@@ -5,16 +5,95 @@
-  *
-  */
- 
-+#include "stdint.h"
-+
-+#include "Driver_Flash.h"
-+#include "flash_layout.h"
-+
-+#include "io_driver.h"
-+#include "io_flash.h"
-+#include "io_storage.h"
-+
- #include "platform.h"
- 
--#include <stdint.h>
-+#define PLAT_LOG_MODULE_NAME    "platform"
-+#include "platform_log.h"
-+
-+typedef struct {
-+    uintptr_t dev_handle;
-+    uintptr_t image_spec;
-+} platform_image_source_t;
-+
-+extern ARM_DRIVER_FLASH FLASH_DEV_NAME;
-+
-+static io_dev_connector_t *flash_dev_con;
-+static uint8_t local_block_flash[FLASH_SECTOR_SIZE];
-+static io_flash_dev_spec_t flash_dev_spec = {
-+    .buffer = local_block_flash,
-+    .bufferlen = FLASH_SECTOR_SIZE,
-+    .base_addr = FLASH_BASE_ADDRESS,
-+    .flash_driver = &FLASH_DEV_NAME,
-+};
-+static io_block_spec_t flash_spec = {
-+    .offset = FLASH_BASE_ADDRESS,
-+    .length = FLASH_TOTAL_SIZE
-+};
-+
-+static platform_image_source_t platform_image_source[] = {
-+    [PLATFORM_GPT_IMAGE] = {
-+        .dev_handle = NULL,
-+        .image_spec = &flash_spec,
-+    }
-+};
-+
-+/* Initialize io storage of the platform */
-+int32_t plat_io_storage_init(void)
-+{
-+    int rc = -1;
-+    uintptr_t flash_dev_handle = NULL;
-+    uintptr_t flash_handle = NULL;
-+
-+    rc = register_io_dev_flash((const io_dev_connector_t **) &flash_dev_con);
-+    if (rc != 0) {
-+        ERROR("Failed to register io flash rc: %d", rc);
-+        return rc;
-+    }
-+
-+    rc = io_dev_open(flash_dev_con, (const uintptr_t)&flash_dev_spec, &flash_dev_handle);
-+    if (rc != 0) {
-+        ERROR("Failed to open io flash dev rc: %d", rc);
-+        return rc;
-+    }
-+
-+    VERBOSE("Flash_dev_handle = %p",flash_dev_handle);
-+
-+    rc = io_open(flash_dev_handle, (const uintptr_t)&flash_spec, &flash_handle);
-+    if (rc != 0) {
-+        ERROR("Failed to open io flash rc: %d", rc);
-+        return rc;
-+    }
-+
-+    VERBOSE("Flash_handle = %p",flash_handle);
-+
-+    rc = io_close(flash_handle);
-+    if (rc != 0) {
-+        ERROR("Failed to close io flash rc: %d", rc);
-+        return rc;
-+    }
-+    /* Update the platform image source that uses the flash with dev handles */
-+    platform_image_source[PLATFORM_GPT_IMAGE].dev_handle = flash_dev_handle;
-+
-+    return rc;
-+}
- 
- /* Return an IO device handle and specification which can be used to access
-  * an image. This has to be implemented for the GPT parser. */
- int32_t plat_get_image_source(unsigned int image_id, uintptr_t *dev_handle,
-                               uintptr_t *image_spec) {
--    (void)image_id;
--    *dev_handle = NULL;
--    *image_spec = NULL;
-+    if (image_id >= PLATFORM_IMAGE_COUNT) {
-+        return -1;
-+    }
-+    *dev_handle = platform_image_source[image_id].dev_handle;
-+    *image_spec = platform_image_source[image_id].image_spec;
-     return 0;
- }
-diff --git a/platform/ext/target/arm/corstone1000/platform.h b/platform/ext/target/arm/corstone1000/platform.h
-index 250f9cd9f5..894f5e3090 100644
---- a/platform/ext/target/arm/corstone1000/platform.h
-+++ b/platform/ext/target/arm/corstone1000/platform.h
-@@ -8,6 +8,16 @@
- #ifndef __PLATFORM_H__
- #define __PLATFORM_H__
- 
-+typedef enum {
-+    PLATFORM_GPT_IMAGE = 0,
-+    PLATFORM_IMAGE_COUNT,
-+}platform_image_id_t;
-+
-+/* Initialize io storage of the platform */
-+int32_t plat_io_storage_init(void);
-+
-+/* Return an IO device handle and specification which can be used to access
-+ * an image. This has to be implemented for the GPT parser. */
- int32_t plat_get_image_source(unsigned int image_id, uintptr_t *dev_handle,
-                               uintptr_t *image_spec);
- 
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch
new file mode 100644
index 0000000..5c0024b
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch
@@ -0,0 +1,38 @@
+From 7914ec3f96dbb8228e791d9492cfc3651cf9deca Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Wed, 5 Apr 2023 10:28:57 +0100
+Subject: [PATCH] Platform: corstone1000: Fix Flash reading issue for FIP data
+
+Fixes the flash reading issue since bl2 needs to read the data from
+flash in XIP mode on FPGA (mps3).
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20558]
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+---
+ platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c b/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
+index cf6340c5a9..e4183c7a57 100644
+--- a/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
++++ b/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
+@@ -89,6 +89,7 @@ static bool fill_flash_map_with_fip_data(uint8_t boot_index) {
+ 
+     /* parse directly from flash using XIP mode */
+     /* FIP is large so its not a good idea to load it in memory */
++    Select_XIP_Mode_For_Shared_Flash();
+     result = parse_fip_and_extract_tfa_info(
+         FLASH_BASE_ADDRESS + fip_offset + FIP_SIGNATURE_AREA_SIZE, fip_size,
+         &tfa_offset, &tfa_size);
+@@ -96,7 +97,7 @@ static bool fill_flash_map_with_fip_data(uint8_t boot_index) {
+         BOOT_LOG_ERR("parse_fip_and_extract_tfa_info failed");
+         return false;
+     }
+-
++    Select_Write_Mode_For_Shared_Flash();
+     flash_map[2].fa_off = fip_offset + FIP_SIGNATURE_AREA_SIZE + tfa_offset;
+     flash_map[2].fa_size = tfa_size;
+     flash_map[3].fa_off = flash_map[2].fa_off + flash_map[2].fa_size;
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch
new file mode 100644
index 0000000..29fce5e
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch
@@ -0,0 +1,273 @@
+From 11f6af40dc322630031511146763cc9059bdb805 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Fri, 14 Apr 2023 16:35:55 +0100
+Subject: [PATCH] Platform: corstone1000: Adds compiler flags to FWU agent for
+ BL1
+
+Adds compiler flags for BL1 to fwu_agent.c functions to not use GPT parser and
+IO libraries in BL1 rom code.
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20559]
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+---
+ .../corstone1000/fw_update_agent/fwu_agent.c  | 176 +++++++++++++++++-
+ 1 file changed, 174 insertions(+), 2 deletions(-)
+
+diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
+index 8ecb03d157..afd8d66e42 100644
+--- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
++++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
+@@ -14,8 +14,6 @@
+ #include "region_defs.h"
+ #include "uefi_capsule_parser.h"
+ #include "flash_common.h"
+-#include "partition.h"
+-#include "platform.h"
+ #include "platform_base_address.h"
+ #include "platform_description.h"
+ #include "tfm_plat_nv_counters.h"
+@@ -23,6 +21,10 @@
+ #include "uefi_fmp.h"
+ #include "uart_stdout.h"
+ #include "soft_crc.h"
++#if !BL1
++#include "partition.h"
++#include "platform.h"
++#endif
+ 
+ /* Properties of image in a bank */
+ struct fwu_image_properties {
+@@ -145,6 +147,30 @@ extern ARM_DRIVER_FLASH FWU_METADATA_FLASH_DEV;
+ 
+ #define HOST_ACK_TIMEOUT_SEC    (6 * 60) /* ~seconds, not exact */
+ 
++#if BL1
++static enum fwu_agent_error_t private_metadata_read(
++        struct fwu_private_metadata* p_metadata)
++{
++    int ret;
++
++    FWU_LOG_MSG("%s: enter\n\r", __func__);
++
++    if (!p_metadata) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, p_metadata,
++                                          sizeof(struct fwu_private_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: success: boot_index = %u\n\r", __func__,
++                        p_metadata->boot_index);
++
++    return FWU_AGENT_SUCCESS;
++}
++#elif
+ static enum fwu_agent_error_t private_metadata_read(
+         struct fwu_private_metadata* p_metadata)
+ {
+@@ -175,7 +201,36 @@ static enum fwu_agent_error_t private_metadata_read(
+ 
+     return FWU_AGENT_SUCCESS;
+ }
++#endif
+ 
++#if BL1
++static enum fwu_agent_error_t private_metadata_write(
++        struct fwu_private_metadata* p_metadata)
++{
++    int ret;
++
++    FWU_LOG_MSG("%s: enter: boot_index = %u\n\r", __func__,
++                        p_metadata->boot_index);
++
++    if (!p_metadata) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET);
++    if (ret != ARM_DRIVER_OK) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET,
++                                p_metadata, sizeof(struct fwu_private_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: success\n\r", __func__);
++    return FWU_AGENT_SUCCESS;
++}
++#elif
+ static enum fwu_agent_error_t private_metadata_write(
+         struct fwu_private_metadata* p_metadata)
+ {
+@@ -210,6 +265,7 @@ static enum fwu_agent_error_t private_metadata_write(
+     FWU_LOG_MSG("%s: success\n\r", __func__);
+     return FWU_AGENT_SUCCESS;
+ }
++#endif
+ 
+ static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
+ {
+@@ -235,6 +291,30 @@ static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
+     return FWU_AGENT_SUCCESS;
+ }
+ 
++#if BL1
++static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
++{
++    int ret;
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
++
++    if (!p_metadata) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
++                                p_metadata, sizeof(struct fwu_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
++                  p_metadata->active_index, p_metadata->previous_active_index);
++
++    return FWU_AGENT_SUCCESS;
++}
++#elif
+ static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
+ {
+     uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
+@@ -266,7 +346,36 @@ static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metada
+ 
+     return FWU_AGENT_SUCCESS;
+ }
++#endif
++
++#if BL1
++static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
++{
++    int ret;
+ 
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
++
++    if (!p_metadata) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
++                                p_metadata, sizeof(struct fwu_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    if (metadata_validate(p_metadata) != FWU_AGENT_SUCCESS) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
++                  p_metadata->active_index, p_metadata->previous_active_index);
++
++    return FWU_AGENT_SUCCESS;
++}
++#elif
+ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
+ {
+     uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
+@@ -301,7 +410,66 @@ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
+ 
+     return FWU_AGENT_SUCCESS;
+ }
++#endif
++
+ 
++#if BL1
++static enum fwu_agent_error_t metadata_write(
++                        struct fwu_metadata *p_metadata)
++{
++    int ret;
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
++
++    if (!p_metadata) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_1_OFFSET);
++    if (ret != ARM_DRIVER_OK) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_1_OFFSET,
++                                p_metadata, sizeof(struct fwu_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
++
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
++    if (ret != ARM_DRIVER_OK) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
++                                p_metadata, sizeof(struct fwu_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
++                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
++
++    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
++    if (ret != ARM_DRIVER_OK) {
++        return FWU_AGENT_ERROR;
++    }
++
++    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
++                                p_metadata, sizeof(struct fwu_metadata));
++    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
++        return FWU_AGENT_ERROR;
++    }
++
++    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
++                  p_metadata->active_index, p_metadata->previous_active_index);
++    return FWU_AGENT_SUCCESS;
++}
++#elif
+ static enum fwu_agent_error_t metadata_write(
+                         struct fwu_metadata *p_metadata)
+ {
+@@ -371,6 +539,8 @@ static enum fwu_agent_error_t metadata_write(
+                   p_metadata->active_index, p_metadata->previous_active_index);
+     return FWU_AGENT_SUCCESS;
+ }
++#endif
++
+ 
+ enum fwu_agent_error_t fwu_metadata_init(void)
+ {
+@@ -418,8 +588,10 @@ enum fwu_agent_error_t fwu_metadata_provision(void)
+ 
+     FWU_LOG_MSG("%s: enter\n\r", __func__);
+ 
++#if !BL1
+     plat_io_storage_init();
+     partition_init(PLATFORM_GPT_IMAGE);
++#endif
+ 
+     ret = fwu_metadata_init();
+     if (ret) {
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-flash_layout-simplification.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-flash_layout-simplification.patch
deleted file mode 100644
index c3376e1..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-flash_layout-simplification.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From c385b628aa3588aeb6f86f8b98fd3bdb304a296c Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Wed, 11 Jan 2023 12:47:45 +0000
-Subject: [PATCH 10/10] Platform: corstone1000:flash_layout simplification
-
-Complete the simplification of the flash layout.
-The flash layout contains only the static definitions
-that describe the static layout and the boundries of the dynamic
-regions.
-
-The dynamic regions addresses are known by the GPT parser.
-
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- .../arm/corstone1000/partition/flash_layout.h | 44 -------------------
- 1 file changed, 44 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-index c5cf94a52c..b01a3621b3 100644
---- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-+++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-@@ -142,28 +142,9 @@
-                                              * Host: FIP and Kernel image
-                                              */
- 
--/****** TODO: START : NEED SIMPLIFICATION BASED ON GPT *******************/
- /* Bank configurations */
- #define BANK_PARTITION_SIZE             (0xFE0000)   /* 15.875 MB */
- #define TFM_PARTITION_SIZE              (0x5E000)    /* 376 KB */
--#define FIP_PARTITION_SIZE              (0x200000)   /* 2 MB */
--#define KERNEL_PARTITION_SIZE           (0xC00000)   /* 12 MB */
--
--/************************************************************/
--/* Bank : Images flash offsets are with respect to the bank */
--/************************************************************/
--
--/* Image 0: BL2 primary and secondary images */
--#define FLASH_AREA_8_ID                 (1)
--#define FLASH_AREA_8_OFFSET             (0) /* starting from 0th offset of the bank */
--#define FLASH_AREA_8_SIZE               (SE_BL2_PARTITION_SIZE)
--
--#define FLASH_AREA_9_ID                 (FLASH_AREA_8_ID + 1)
--#define FLASH_AREA_9_OFFSET             (FLASH_AREA_8_OFFSET + FLASH_AREA_8_SIZE)
--#define FLASH_AREA_9_SIZE               (SE_BL2_PARTITION_SIZE)
--
--#define FWU_METADATA_IMAGE_0_OFFSET     (FLASH_AREA_8_OFFSET)
--#define FWU_METADATA_IMAGE_0_SIZE_LIMIT (FLASH_AREA_8_SIZE + FLASH_AREA_9_SIZE)
- 
- /* Macros needed to imgtool.py, used when creating BL2 signed image */
- #define BL2_IMAGE_LOAD_ADDRESS          (SRAM_BASE + TFM_PARTITION_SIZE + BL2_DATA_GAP_SIZE)
-@@ -172,33 +153,16 @@
- 
- /* Image 1: TF-M primary and secondary images */
- #define FLASH_AREA_0_ID                 (1)
--#define FLASH_AREA_0_OFFSET             (FLASH_AREA_9_OFFSET + \
--                                         FLASH_AREA_9_SIZE)
- #define FLASH_AREA_0_SIZE               (TFM_PARTITION_SIZE)
--
- #define FLASH_AREA_1_ID                 (FLASH_AREA_0_ID + 1)
--#define FLASH_AREA_1_OFFSET             (FLASH_AREA_0_OFFSET + FLASH_AREA_0_SIZE)
- #define FLASH_AREA_1_SIZE               (TFM_PARTITION_SIZE)
- 
--#define FWU_METADATA_IMAGE_1_OFFSET     (FLASH_AREA_0_OFFSET)
--#define FWU_METADATA_IMAGE_1_SIZE_LIMIT (FLASH_AREA_0_SIZE + FLASH_AREA_1_SIZE)
--
- /* Image 2: Host FIP */
- #define FIP_SIGNATURE_AREA_SIZE         (0x1000)      /* 4 KB */
- 
--#define FLASH_FIP_OFFSET                (FLASH_AREA_1_OFFSET + \
--                                         FLASH_AREA_1_SIZE + FIP_SIGNATURE_AREA_SIZE)
--#define FLASH_FIP_ADDRESS               (FLASH_BASE_ADDRESS + FLASH_FIP_OFFSET)
--#define FLASH_FIP_SIZE                  (FIP_PARTITION_SIZE)
--
- /* Host BL2 (TF-A) primary and secondary image. */
- #define FLASH_AREA_2_ID                 (FLASH_AREA_1_ID + 1)
- #define FLASH_AREA_3_ID                 (FLASH_AREA_2_ID + 1)
--#define FLASH_INVALID_OFFSET            (0xFFFFFFFF)
--#define FLASH_INVALID_SIZE              (0xFFFFFFFF)
--
--#define FWU_METADATA_IMAGE_2_OFFSET     (FLASH_FIP_OFFSET)
--#define FWU_METADATA_IMAGE_2_SIZE_LIMIT (FLASH_FIP_SIZE)
- 
- /* Macros needed to imgtool.py, used when creating TF-M signed image */
- #define S_IMAGE_LOAD_ADDRESS            (SRAM_BASE)
-@@ -216,14 +180,6 @@
- 
- #define FLASH_AREA_IMAGE_SCRATCH        255
- 
--/* Image 3: Kernel image */
--#define KERNEL_PARTITION_OFFSET         (FLASH_FIP_OFFSET + FLASH_FIP_SIZE)
--
--#define FWU_METADATA_IMAGE_3_OFFSET     (KERNEL_PARTITION_OFFSET)
--#define FWU_METADATA_IMAGE_3_SIZE_LIMIT (KERNEL_PARTITION_SIZE)
--
--/****** TODO: END : NEED SIMPLIFICATION BASED ON GPT *******************/
--
- /*******************************/
- /*** ITS, PS and NV Counters ***/
- /*******************************/
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-Platform-corstone1000-adjust-PS-asset-configuration.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-Platform-corstone1000-adjust-PS-asset-configuration.patch
new file mode 100644
index 0000000..19a3773
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-Platform-corstone1000-adjust-PS-asset-configuration.patch
@@ -0,0 +1,29 @@
+From 148d82d0984273b30d8b148f0c4e0ad0d3f23062 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Mon, 17 Apr 2023 12:07:55 +0100
+Subject: [PATCH 1/3] Platform: corstone1000: adjust PS asset configuration
+
+Adjust protected storage asset configuration to be more inline
+with the one in trusted service side, that would make thinks
+work when testing and using more than the default variables.
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20560]
+Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Change-Id: I181f9c72a816c727c2170c609100aec1d233fea7
+---
+ platform/ext/target/arm/corstone1000/config.cmake | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
+index bec6b84f0..0c91fa59f 100644
+--- a/platform/ext/target/arm/corstone1000/config.cmake
++++ b/platform/ext/target/arm/corstone1000/config.cmake
+@@ -76,3 +76,4 @@ endif()
+ # Platform-specific configurations
+ set(CONFIG_TFM_USE_TRUSTZONE            OFF)
+ set(TFM_MULTI_CORE_TOPOLOGY             ON)
++set(PS_NUM_ASSETS                       "40"        CACHE STRING    "The maximum number of assets to be stored in the Protected Storage area")
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0012-Platform-corstone1000-Increase-number-of-assets.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0012-Platform-corstone1000-Increase-number-of-assets.patch
new file mode 100644
index 0000000..d2fc332
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0012-Platform-corstone1000-Increase-number-of-assets.patch
@@ -0,0 +1,36 @@
+From 34263d1ea99da7b8a680a80601a73149bc9530e5 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Fri, 21 Apr 2023 15:17:21 +0100
+Subject: [PATCH] Platform: corstone1000: Increase number of assets
+
+As Corstone1000 stores at boot time few efi variables.
+Therefore, number of assets is increased to compansate this early usage.
+
+Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20656]
+Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+Change-Id: Id8555a09335ce13b80c07a33c4d913f5cb0f9084
+---
+ platform/ext/target/arm/corstone1000/config_tfm_target.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/platform/ext/target/arm/corstone1000/config_tfm_target.h b/platform/ext/target/arm/corstone1000/config_tfm_target.h
+index bf8d2f95f..e96836663 100644
+--- a/platform/ext/target/arm/corstone1000/config_tfm_target.h
++++ b/platform/ext/target/arm/corstone1000/config_tfm_target.h
+@@ -16,4 +16,12 @@
+ #undef PLATFORM_SERVICE_OUTPUT_BUFFER_SIZE
+ #define PLATFORM_SERVICE_OUTPUT_BUFFER_SIZE    256
+
++/* The maximum number of assets to be stored in the Internal Trusted Storage. */
++#undef ITS_NUM_ASSETS
++#define ITS_NUM_ASSETS       20
++
++/* The maximum number of assets to be stored in the Protected Storage area. */
++#undef PS_NUM_ASSETS
++#define PS_NUM_ASSETS        20
++
+ #endif /* __CONFIG_TFM_TARGET_H__ */
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/rwx.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/rwx.patch
new file mode 100644
index 0000000..1efd661
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/rwx.patch
@@ -0,0 +1,25 @@
+From 1d548c77d07fc9a83e3e9aa28a23aa19a0177e3b Mon Sep 17 00:00:00 2001
+From: Jon Mason <jon.mason@arm.com>
+Date: Wed, 18 Jan 2023 15:13:37 -0500
+Subject: [PATCH] arm/trusted-firmware-m: disable fatal warnings
+
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+Upstream-Status: Inappropriate
+
+---
+ toolchain_GNUARM.cmake | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/toolchain_GNUARM.cmake b/toolchain_GNUARM.cmake
+index 7978eaca68..88395f922a 100644
+--- a/toolchain_GNUARM.cmake
++++ b/toolchain_GNUARM.cmake
+@@ -71,7 +71,6 @@ macro(tfm_toolchain_reset_linker_flags)
+         --entry=Reset_Handler
+         -specs=nano.specs
+         LINKER:-check-sections
+-        LINKER:-fatal-warnings
+         LINKER:--gc-sections
+         LINKER:--no-wchar-size-warning
+         ${MEMORY_USAGE_FLAG}
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc
index a8e76d0..68845cf 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc
@@ -9,7 +9,11 @@
 ## Default is the MPS3 board
 TFM_PLATFORM_IS_FVP ?= "FALSE"
 EXTRA_OECMAKE += "-DPLATFORM_IS_FVP=${TFM_PLATFORM_IS_FVP}"
-EXTRA_OECMAKE += "-DCC312_LEGACY_DRIVER_API_ENABLED=OFF"
+EXTRA_OECMAKE += "-DCC312_LEGACY_DRIVER_API_ENABLED=ON"
+
+SRCREV_tfm = "94c55967cbd1832681f07074a0945605b02ec8d0"
+SRCREV_mcuboot = "9e8eddcecba931f99297765779f8b130d808a9a3"
+SRCREV_mbedtls = "8c89224991adff88d53cd380f42a2baa36f91454"
 
 # libmetal
 LICENSE += "& BSD-3-Clause"
@@ -26,23 +30,46 @@
 EXTRA_OECMAKE += "-DLIBOPENAMP_SRC_PATH=${S}/../openamp -DLIBOPENAMP_BIN_PATH=${B}/libopenamp-build"
 
 
+SRC_URI:remove:corstone1000 =" \
+    file://rwx.patch    \
+"
+
 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
 SRC_URI:append:corstone1000 = " \
-    file://0001-Platform-corstone1000-Introduce-IO-framework.patch              \
-    file://0002-Platform-corstone1000-Add-IO-test-in-ci_regressions.patch       \
-    file://0003-Platform-corstone1000-Add-soft-crc32-calculation.patch          \
-    file://0004-Platform-corstone1000-calculate-metadata-crc32.patch            \
-    file://0005-Platform-corstone1000-fwu-metadata_read-validate-crc.patch      \
-    file://0006-Platform-corstone1000-Add-common-platform-logger.patch          \
-    file://0007-Platform-corstone1000-Introduce-GPT-parser.patch                \
-    file://0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch      \
-    file://0009-Platform-corstone1000-BL2-uses-GPT-layout.patch                 \
-    file://0010-Platform-corstone1000-flash_layout-simplification.patch         \
-    file://0011-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch      \
-           "
+    file://0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch      \
+    file://0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch      \
+    file://0003-Platform-corstone1000-Add-watchdog_reset_timer.patch            \
+    file://0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch        \
+    file://0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch      \
+    file://0006-Platform-corstone1000-Reorganize-bl2-files.patch                \
+    file://0007-Platform-corstone1000-Fix-linker-script-comment.patch           \
+    file://0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch      \
+    file://0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch      \
+    file://0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch      \
+    file://0011-Platform-corstone1000-adjust-PS-asset-configuration.patch       \
+    file://0012-Platform-corstone1000-Increase-number-of-assets.patch           \
+    file://corstone1000/rwx.patch                                               \
+    "
+
+# TF-M ships patches for external dependencies that needs to be applied
+apply_tfm_patches() {
+    find ${S}/lib/ext/qcbor -type f -name '*.patch' -print0 | sort -z | xargs -r -t -0 -n 1 patch -p1 -d ${S}/../qcbor/ -i
+    find ${S}/lib/ext/mbedcrypto -type f -name '*.patch' -print0 | sort -z | xargs -r -t -0 -n 1 patch -p1 -d ${S}/../mbedtls/ -i
+    find ${S}/lib/ext/mcuboot -type f -name '*.patch' -print0 | sort -z | xargs -r -t -0 -n 1 patch -p1 -d ${S}/../mcuboot/ -i
+    find ${S}/lib/ext/tf-m-tests -type f -name '*.patch' -print0 | sort -z | xargs -r -t -0 -n 1 patch -p1 -d ${S}/../tf-m-tests/ -i
+}
+
+do_patch[postfuncs] += "apply_tfm_patches"
 
 do_install() {
   install -D -p -m 0644 ${B}/install/outputs/tfm_s_signed.bin ${D}/firmware/tfm_s_signed.bin
   install -D -p -m 0644 ${B}/install/outputs/bl2_signed.bin ${D}/firmware/bl2_signed.bin
-  install -D -p -m 0644 ${B}/install/outputs/bl1.bin ${D}/firmware/bl1.bin
+  install -D -p -m 0644 ${B}/install/outputs/bl1_1.bin ${D}/firmware/bl1_1.bin
+  install -D -p -m 0644 ${B}/install/outputs/bl1_provisioning_bundle.bin ${D}/firmware/bl1_provisioning_bundle.bin
 }
+
+create_bl1_image(){
+    dd conv=notrunc bs=1 if=${D}/firmware/bl1_1.bin of=${D}/firmware/bl1.bin seek=0
+    dd conv=notrunc bs=1 if=${D}/firmware/bl1_provisioning_bundle.bin of=${D}/firmware/bl1.bin seek=40960
+}
+do_install[postfuncs] += "create_bl1_image"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend
index ec0e483..a558cfe 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend
@@ -4,3 +4,6 @@
 MACHINE_TFM_REQUIRE:corstone1000 = "trusted-firmware-m-1.7.0-corstone1000.inc"
 
 require ${MACHINE_TFM_REQUIRE}
+
+COMPATIBLE_MACHINE:tc = "(tc1)"
+TFM_PLATFORM:tc = "arm/rss/tc"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/tc/bootargs.cfg b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/tc/bootargs.cfg
index 8c31602..a06c44f 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/tc/bootargs.cfg
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/tc/bootargs.cfg
@@ -1,2 +1,3 @@
 CONFIG_USE_BOOTARGS=y
-CONFIG_BOOTARGS="console=ttyAMA0 debug user_debug=31 earlycon=pl011,0x7ff80000 loglevel=9 androidboot.hardware=total_compute androidboot.boot_devices=1c050000.mmci ip=dhcp androidboot.selinux=permissive allow_mismatched_32bit_el0"
+CONFIG_BOOTARGS="console=ttyAMA0 debug user_debug=31 earlycon=pl011,0x7ff80000 loglevel=9 androidboot.hardware=total_compute androidboot.boot_devices=1c050000.mmci androidboot.selinux=permissive allow_mismatched_32bit_el0"
+CONFIG_BOOTDELAY=0
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc
index 629ea04..0d557f3 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc
@@ -1,8 +1,3 @@
-# Align with N1SDP-2022.06.22 release
-SRCREV_edk2           = "b24306f15daa2ff8510b06702114724b33895d3c"
-SRCREV_edk2-platforms = "fdaf4eb69a8b6839aecf6d3bdd938aa5c34a8a17"
-PV .= "+git${SRCPV}"
-
 # N1SDP specific EDK2 configurations
 EDK2_BUILD_RELEASE = "0"
 EDK2_PLATFORM      = "n1sdp"
@@ -20,8 +15,14 @@
 
 SRC_URI:append = "\
     file://0001-Platform-ARM-N1sdp-Add-support-to-parse-NT_FW_CONFIG.patch;patchdir=edk2-platforms \
-    file://0002-Platform-ARM-N1Sdp-Fix-RemoteDdrSize-cast.patch;patchdir=edk2-platforms            \
+    file://0002-Platform-ARM-N1Sdp-Fix-RemoteDdrSize-cast.patch;patchdir=edk2-platforms \
     file://0003-Platform-ARM-N1Sdp-Modify-the-IRQ-ID-of-Debug-UART-a.patch;patchdir=edk2-platforms \
+    file://0004-Silicon-ARM-NeoverseN1Soc-Enable-SCP-QSPI-flash-regi.patch;patchdir=edk2-platforms \
+    file://0005-Platform-ARM-N1Sdp-NOR-flash-library-for-N1Sdp.patch;patchdir=edk2-platforms \
+    file://0006-Platform-ARM-N1Sdp-NOR-flash-Dxe-Driver-for-N1Sdp.patch;patchdir=edk2-platforms \
+    file://0007-Platform-ARM-N1Sdp-Persistent-storage-for-N1Sdp.patch;patchdir=edk2-platforms \
+    file://0008-Platform-ARM-N1Sdp-Enable-FaultTolerantWrite-Dxe-dri.patch;patchdir=edk2-platforms \
+    file://0009-Platform-ARM-N1Sdp-manually-poll-QSPI-status-bit-aft.patch;patchdir=edk2-platforms \
 "
 
 do_deploy:append() {
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0001-Platform-ARM-N1sdp-Add-support-to-parse-NT_FW_CONFIG.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0001-Platform-ARM-N1sdp-Add-support-to-parse-NT_FW_CONFIG.patch
index e5526dd..c7f163b 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0001-Platform-ARM-N1sdp-Add-support-to-parse-NT_FW_CONFIG.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0001-Platform-ARM-N1sdp-Add-support-to-parse-NT_FW_CONFIG.patch
@@ -1,7 +1,7 @@
-From fa3fd24ffbc987e952a2e5610a7b02556afd2087 Mon Sep 17 00:00:00 2001
+From 928cb457b9ab2abefbacad655eefdde943b4ee9a Mon Sep 17 00:00:00 2001
 From: sahil <sahil@arm.com>
 Date: Thu, 17 Mar 2022 16:28:05 +0530
-Subject: [PATCH 1/3] Platform/ARM/N1sdp: Add support to parse NT_FW_CONFIG
+Subject: [PATCH] Platform/ARM/N1sdp: Add support to parse NT_FW_CONFIG
 
 NT_FW_CONFIG DTB contains platform information passed by
 Tf-A boot stage.
@@ -13,8 +13,7 @@
 Signed-off-by: Adam Johnston <adam.johnston@arm.com>
 Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
 Signed-off-by: sahil <sahil@arm.com>
-Change-Id: Ib82571280bf1ca5febe5766e618de09e7b70bb02
-
+Change-Id: I54a86277719607eb00d4a472fae8f13c180eafca
 ---
  .../ConfigurationManager.c                    |  24 ++--
  .../ConfigurationManagerDxe.inf               |   3 +-
@@ -27,7 +26,7 @@
  8 files changed, 152 insertions(+), 25 deletions(-)
 
 diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
-index f50623ae..e023d47c 100644
+index a6b4cb0e..c15020f5 100644
 --- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 +++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 @@ -1,7 +1,7 @@
@@ -35,7 +34,7 @@
    Configuration Manager Dxe

  

 -  Copyright (c) 2021, ARM Limited. All rights reserved.<BR>

-+  Copyright (c) 2021 - 2022, ARM Limited. All rights reserved.<BR>

++  Copyright (c) 2021 - 2023, ARM Limited. All rights reserved.<BR>

  

    SPDX-License-Identifier: BSD-2-Clause-Patent

  

@@ -139,7 +138,7 @@
    // Configuration Manager Protocol

    Status = InitializePlatformRepository (

 diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
-index 4f8e7f13..fb59c295 100644
+index 4f8e7f13..a4e8b783 100644
 --- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
 +++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
 @@ -1,7 +1,7 @@
@@ -147,7 +146,7 @@
  #  Configuration Manager Dxe

  #

 -#  Copyright (c) 2021, ARM Limited. All rights reserved.<BR>

-+#  Copyright (c) 2021 - 2022, ARM Limited. All rights reserved.<BR>

++#  Copyright (c) 2021 - 2023, ARM Limited. All rights reserved.<BR>

  #

  #  SPDX-License-Identifier: BSD-2-Clause-Patent

  #

@@ -160,14 +159,14 @@
    UefiBootServicesTableLib

    UefiDriverEntryPoint

 diff --git a/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h b/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
-index 097160c7..63cebaf0 100644
+index 097160c7..4966011e 100644
 --- a/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
 +++ b/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
 @@ -1,6 +1,6 @@
  /** @file

  *

 -* Copyright (c) 2018 - 2020, ARM Limited. All rights reserved.

-+* Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.

++* Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.

  *

  * SPDX-License-Identifier: BSD-2-Clause-Patent

  *

@@ -204,14 +203,14 @@
 +

  #endif

 diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S
-index 8d2069de..88ed640d 100644
+index 8d2069de..a0b89a7b 100644
 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S
 +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S
 @@ -1,6 +1,6 @@
  /** @file

  *

 -*  Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.

-+*  Copyright (c) 2019 - 2022, ARM Limited. All rights reserved.

++*  Copyright (c) 2019 - 2023, ARM Limited. All rights reserved.

  *

  *  SPDX-License-Identifier: BSD-2-Clause-Patent

  *

@@ -225,14 +224,14 @@
  

  //

 diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c
-index c0effd37..fabe902c 100644
+index c0effd37..2f753be7 100644
 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c
 +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c
 @@ -1,6 +1,6 @@
  /** @file

  

 -  Copyright (c) 2018-2021, ARM Limited. All rights reserved.<BR>

-+  Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>

++  Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

  

    SPDX-License-Identifier: BSD-2-Clause-Patent

  

@@ -270,7 +269,7 @@
  };

  

 diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf
-index 96e590cd..6f9c9d5a 100644
+index 96e590cd..78f309c3 100644
 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf
 +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf
 @@ -1,7 +1,7 @@
@@ -278,7 +277,7 @@
  #  Platform Library for N1Sdp.

  #

 -#  Copyright (c) 2018-2021, ARM Limited. All rights reserved.<BR>

-+#  Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>

++#  Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

  #

  #  SPDX-License-Identifier: BSD-2-Clause-Patent

  #

@@ -308,14 +307,14 @@
    gArmMpCoreInfoPpiGuid

 +  gNtFwConfigDtInfoPpiGuid

 diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
-index 339fa07b..b58bda4b 100644
+index 339fa07b..1d53ec75 100644
 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
 +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
 @@ -1,6 +1,6 @@
  /** @file

  

 -  Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>

-+  Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>

++  Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

  

    SPDX-License-Identifier: BSD-2-Clause-Patent

  

@@ -442,7 +441,7 @@
                               NEOVERSEN1SOC_DRAM_BLOCK1_SIZE / SIZE_1GB) *

                              (UINT64)SIZE_1GB);

 diff --git a/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec b/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
-index d59f25a5..4dea8fe1 100644
+index d59f25a5..9e257ebd 100644
 --- a/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
 +++ b/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
 @@ -1,7 +1,7 @@
@@ -450,7 +449,7 @@
  #  Describes the entire platform configuration.

  #

 -#  Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>

-+#  Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>

++#  Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

  #

  #  SPDX-License-Identifier: BSD-2-Clause-Patent

  #

@@ -470,6 +469,3 @@
 +

 +[Ppis]

 +  gNtFwConfigDtInfoPpiGuid =  { 0xb50dee0e, 0x577f, 0x47fb, { 0x83, 0xd0, 0x41, 0x78, 0x61, 0x8b, 0x33, 0x8a } }

--- 
-2.37.2
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0002-Platform-ARM-N1Sdp-Fix-RemoteDdrSize-cast.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0002-Platform-ARM-N1Sdp-Fix-RemoteDdrSize-cast.patch
index 1c097fc..5e63417 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0002-Platform-ARM-N1Sdp-Fix-RemoteDdrSize-cast.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0002-Platform-ARM-N1Sdp-Fix-RemoteDdrSize-cast.patch
@@ -1,7 +1,7 @@
-From 73aab76042ae34fa4b07414c1830129e572dcd65 Mon Sep 17 00:00:00 2001
+From ba3ed154863d1acd0996178beaf3a2bc693b938c Mon Sep 17 00:00:00 2001
 From: sahil <sahil@arm.com>
 Date: Wed, 20 Apr 2022 12:24:41 +0530
-Subject: [PATCH 2/3] Platform/ARM/N1Sdp: Fix RemoteDdrSize cast
+Subject: [PATCH] Platform/ARM/N1Sdp: Fix RemoteDdrSize cast
 
 RemoteDdrSize calculation wraps around when booting N1Sdp in
 multichip mode. Casting it to UINT64 to fix the issue.
@@ -10,15 +10,14 @@
 Signed-off-by: Adam Johnston <adam.johnston@arm.com>
 Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
 Signed-off-by: sahil <sahil@arm.com>
-Change-Id: I2c2a70c2ab046337236fba92d25dec5905ccd117
-
+Change-Id: Ic51269a8d67669684a5f056701cfbef6beb23da2
 ---
  .../ConfigurationManagerDxe/ConfigurationManager.c              | 2 +-
  Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c  | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
-index e023d47c..36b5fc9e 100644
+index c15020f5..b11c0425 100644
 --- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 +++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 @@ -1254,7 +1254,7 @@ InitializePlatformRepository (
@@ -31,7 +30,7 @@
      // Update Remote DDR Region1

      PlatRepoInfo->MemAffInfo[REMOTE_DDR_REGION1].ProximityDomain = 1;

 diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
-index b58bda4b..fbc9b05e 100644
+index 1d53ec75..5cacd437 100644
 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
 +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
 @@ -157,7 +157,7 @@ ArmPlatformGetVirtualMemoryMap (
@@ -43,6 +42,3 @@
  

      BuildResourceDescriptorHob (

        EFI_RESOURCE_SYSTEM_MEMORY,

--- 
-2.37.2
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0003-Platform-ARM-N1Sdp-Modify-the-IRQ-ID-of-Debug-UART-a.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0003-Platform-ARM-N1Sdp-Modify-the-IRQ-ID-of-Debug-UART-a.patch
index f0de02e..cafc299 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0003-Platform-ARM-N1Sdp-Modify-the-IRQ-ID-of-Debug-UART-a.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0003-Platform-ARM-N1Sdp-Modify-the-IRQ-ID-of-Debug-UART-a.patch
@@ -1,7 +1,7 @@
-From adc66d99663f71ec97313c40b0d00a908f292c30 Mon Sep 17 00:00:00 2001
+From 2ccb463274d0c04f1e3253194ea6eee80c31cb49 Mon Sep 17 00:00:00 2001
 From: Himanshu Sharma <Himanshu.Sharma@arm.com>
 Date: Mon, 30 May 2022 10:53:30 +0000
-Subject: [PATCH 3/3] Platform/ARM/N1Sdp: Modify the IRQ ID of Debug UART and
+Subject: [PATCH] Platform/ARM/N1Sdp: Modify the IRQ ID of Debug UART and
  routing it to IOFPGA UART1
 
 In DBG2 table, IRQ ID was set as 0 for the UART. This overwrote the
@@ -16,15 +16,14 @@
 Signed-off-by: Adam Johnston <adam.johnston@arm.com>
 Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
 Signed-off-by: Himanshu Sharma <Himanshu.Sharma@arm.com>
-Change-Id: I6640c3c8f77afd233304ce9cb06dcf80a8659c16
-
+Change-Id: Ib35fecc57f1d8c496135c18dbebd0be0a4b76041
 ---
  .../ConfigurationManagerDxe/ConfigurationManager.c        | 2 +-
  Platform/ARM/N1Sdp/N1SdpPlatform.dsc                      | 8 ++++----
  2 files changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
-index 36b5fc9e..e8873200 100644
+index b11c0425..44046a00 100644
 --- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 +++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 @@ -320,7 +320,7 @@ EDKII_PLATFORM_REPOSITORY_INFO N1sdpRepositoryInfo = {
@@ -37,7 +36,7 @@
      FixedPcdGet32 (PcdSerialDbgUartClkInHz),                // Clock

      EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_ARM_PL011_UART        // Port subtype

 diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
-index 865dd04d..878c8f2f 100644
+index d04b22d3..676ab677 100644
 --- a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
 +++ b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
 @@ -4,7 +4,7 @@
@@ -45,7 +44,7 @@
  # conform to EFI/Framework standards.

  #

 -# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>

-+# Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>

++# Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

  #

  # SPDX-License-Identifier: BSD-2-Clause-Patent

  #

@@ -62,6 +61,3 @@
  

    # SBSA Watchdog

    gArmTokenSpaceGuid.PcdGenericWatchdogEl2IntrNum|93

--- 
-2.37.2
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0004-Silicon-ARM-NeoverseN1Soc-Enable-SCP-QSPI-flash-regi.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0004-Silicon-ARM-NeoverseN1Soc-Enable-SCP-QSPI-flash-regi.patch
new file mode 100644
index 0000000..264d262
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0004-Silicon-ARM-NeoverseN1Soc-Enable-SCP-QSPI-flash-regi.patch
@@ -0,0 +1,57 @@
+From e4b0fced6f3fd3c8ce5ab4d3aae97b880e7e07b0 Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Mon, 2 May 2022 17:43:17 +0530
+Subject: [PATCH] Silicon/ARM/NeoverseN1Soc: Enable SCP QSPI flash region
+
+Enable SCP QSPI flash region access by adding it in the PlatformLibMem
+
+Upstream-Status: Pending
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: I3ff832746ca94974ed72309eebe00e0024c47005
+---
+ Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h         | 4 ++++
+ .../NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c    | 8 +++++++-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h b/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
+index 4966011e..c7219136 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
++++ b/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
+@@ -41,6 +41,10 @@
+ #define NEOVERSEN1SOC_EXP_PERIPH_BASE0               0x1C000000

+ #define NEOVERSEN1SOC_EXP_PERIPH_BASE0_SZ            0x1300000

+ 

++// SCP QSPI flash device

++#define NEOVERSEN1SOC_SCP_QSPI_AHB_BASE              0x18000000

++#define NEOVERSEN1SOC_SCP_QSPI_AHB_SZ                0x2000000

++

+ /*

+  * Platform information structure stored in Non-secure SRAM. Platform

+  * information are passed from the trusted firmware with the below structure

+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
+index 5cacd437..8bb94074 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
++++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
+@@ -15,7 +15,7 @@
+ #include <NeoverseN1Soc.h>

+ 

+ // The total number of descriptors, including the final "end-of-table" descriptor.

+-#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 19

++#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 20

+ 

+ /** A helper function to locate the NtFwConfig PPI and get the base address of

+   NT_FW_CONFIG DT from which values are obtained using FDT helper functions.

+@@ -283,6 +283,12 @@ ArmPlatformGetVirtualMemoryMap (
+   VirtualMemoryTable[Index].Length          = NEOVERSEN1SOC_EXP_PERIPH_BASE0_SZ;

+   VirtualMemoryTable[Index].Attributes      = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;

+ 

++  // SCP QSPI flash device

++  VirtualMemoryTable[++Index].PhysicalBase  = NEOVERSEN1SOC_SCP_QSPI_AHB_BASE;

++  VirtualMemoryTable[Index].VirtualBase     = NEOVERSEN1SOC_SCP_QSPI_AHB_BASE;

++  VirtualMemoryTable[Index].Length          = NEOVERSEN1SOC_SCP_QSPI_AHB_SZ;

++  VirtualMemoryTable[Index].Attributes      = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;

++

+   if (PlatInfo->MultichipMode == 1) {

+     //Remote DDR (2GB)

+     VirtualMemoryTable[++Index].PhysicalBase  = PcdGet64 (PcdExtMemorySpace) +

diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0005-Platform-ARM-N1Sdp-NOR-flash-library-for-N1Sdp.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0005-Platform-ARM-N1Sdp-NOR-flash-library-for-N1Sdp.patch
new file mode 100644
index 0000000..eabbaf9
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0005-Platform-ARM-N1Sdp-NOR-flash-library-for-N1Sdp.patch
@@ -0,0 +1,119 @@
+From 70e79ba5300f01a13422452c29e26c69042a0c8c Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Mon, 2 May 2022 18:50:08 +0530
+Subject: [PATCH] Platform/ARM/N1Sdp: NOR flash library for N1Sdp
+
+Add NOR flash library, this library provides APIs for getting the list
+of NOR flash devices on the platform.
+
+Upstream-Status: Pending
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: I39ad4143b7fad7e33b3b151a019a74f23e0ed441
+---
+ .../Library/NorFlashLib/NorFlashLib.c         | 52 +++++++++++++++++++
+ .../Library/NorFlashLib/NorFlashLib.inf       | 36 +++++++++++++
+ 2 files changed, 88 insertions(+)
+ create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c
+ create mode 100644 Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf
+
+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c
+new file mode 100644
+index 00000000..eee3d1c6
+--- /dev/null
++++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.c
+@@ -0,0 +1,52 @@
++/** @file
++  NOR flash lib for N1Sdp
++
++  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++
++  SPDX-License-Identifier: BSD-2-Clause-Patent
++
++**/
++
++#include <Library/DebugLib.h>
++#include <Library/IoLib.h>
++#include <Library/NorFlashPlatformLib.h>
++#include <NeoverseN1Soc.h>
++#include <PiDxe.h>
++
++#define FW_ENV_REGION_BASE            FixedPcdGet32 (PcdFlashNvStorageVariableBase)
++#define FW_ENV_REGION_SIZE            (FixedPcdGet32 (PcdFlashNvStorageVariableSize) + \
++                                      FixedPcdGet32 (PcdFlashNvStorageFtwWorkingSize) + \
++                                      FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize))
++
++STATIC NOR_FLASH_DESCRIPTION mNorFlashDevices[] = {
++  {
++    /// Environment variable region
++    NEOVERSEN1SOC_SCP_QSPI_AHB_BASE,                    ///< device base
++    FW_ENV_REGION_BASE,                                 ///< region base
++    FW_ENV_REGION_SIZE,                                 ///< region size
++    SIZE_4KB,                                           ///< block size
++  },
++};
++
++/**
++  Get NOR flash region info
++
++  @param[out]    NorFlashDevices    NOR flash regions info.
++  @param[out]    Count              number of flash instance.
++
++  @retval        EFI_SUCCESS        Success.
++**/
++EFI_STATUS
++NorFlashPlatformGetDevices (
++  OUT NOR_FLASH_DESCRIPTION   **NorFlashDevices,
++  OUT UINT32                  *Count
++  )
++{
++  if ((NorFlashDevices == NULL) || (Count == NULL)) {
++    return EFI_INVALID_PARAMETER;
++  }
++
++  *NorFlashDevices = mNorFlashDevices;
++  *Count = ARRAY_SIZE (mNorFlashDevices);
++  return EFI_SUCCESS;
++}
+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf
+new file mode 100644
+index 00000000..784856c8
+--- /dev/null
++++ b/Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf
+@@ -0,0 +1,36 @@
++## @file
++#  NOR flash lib for N1Sdp
++#
++#  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++#
++#  SPDX-License-Identifier: BSD-2-Clause-Patent
++#
++##
++
++[Defines]
++  INF_VERSION                    = 0x0001001B
++  BASE_NAME                      = NorFlashN1SdpLib
++  FILE_GUID                      = 7006fcf1-a585-4272-92e3-b286b1dff5bb
++  MODULE_TYPE                    = DXE_DRIVER
++  VERSION_STRING                 = 1.0
++  LIBRARY_CLASS                  = NorFlashPlatformLib
++
++[Sources.common]
++  NorFlashLib.c
++
++[Packages]
++  MdeModulePkg/MdeModulePkg.dec
++  MdePkg/MdePkg.dec
++  Platform/ARM/ARM.dec
++  Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
++
++[LibraryClasses]
++  BaseLib
++  DebugLib
++  IoLib
++
++[FixedPcd]
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0006-Platform-ARM-N1Sdp-NOR-flash-Dxe-Driver-for-N1Sdp.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0006-Platform-ARM-N1Sdp-NOR-flash-Dxe-Driver-for-N1Sdp.patch
new file mode 100644
index 0000000..1db94e4
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0006-Platform-ARM-N1Sdp-NOR-flash-Dxe-Driver-for-N1Sdp.patch
@@ -0,0 +1,2538 @@
+From 726f4505970c82db1822b127059519044dc496c8 Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Mon, 2 May 2022 19:00:40 +0530
+Subject: [PATCH] Platform/ARM/N1Sdp: NOR flash Dxe Driver for N1Sdp
+
+Add NOR flash DXE driver, this brings up NV storage on
+QSPI's flash device using FVB protocol.
+
+Upstream-Status: Pending
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: Ica383c2be6d1805daa19afd98d28b943816218dd
+---
+ .../Drivers/CadenceQspiDxe/CadenceQspiDxe.c   | 366 +++++++
+ .../Drivers/CadenceQspiDxe/CadenceQspiDxe.inf |  70 ++
+ .../Drivers/CadenceQspiDxe/CadenceQspiReg.h   |  31 +
+ .../N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c   | 930 ++++++++++++++++++
+ .../N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h   | 484 +++++++++
+ .../Drivers/CadenceQspiDxe/NorFlashFvb.c      | 573 +++++++++++
+ Platform/ARM/N1Sdp/N1SdpPlatform.dec          |   5 +-
+ 7 files changed, 2458 insertions(+), 1 deletion(-)
+ create mode 100644 Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.c
+ create mode 100644 Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf
+ create mode 100644 Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h
+ create mode 100644 Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c
+ create mode 100644 Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h
+ create mode 100644 Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlashFvb.c
+
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.c b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.c
+new file mode 100644
+index 00000000..fb1dff3e
+--- /dev/null
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.c
+@@ -0,0 +1,366 @@
++/** @file
++  NOR flash DXE
++
++  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++
++  SPDX-License-Identifier: BSD-2-Clause-Patent
++
++**/
++
++#include <Library/BaseMemoryLib.h>
++#include <Library/DxeServicesTableLib.h>
++#include <Library/HobLib.h>
++#include <Library/MemoryAllocationLib.h>
++#include <Library/NorFlashInfoLib.h>
++#include <Library/PcdLib.h>
++#include <Library/UefiBootServicesTableLib.h>
++#include <Library/UefiLib.h>
++#include <Library/UefiRuntimeLib.h>
++#include <Library/UefiRuntimeServicesTableLib.h>
++
++#include "NorFlash.h"
++
++STATIC NOR_FLASH_INSTANCE   **mNorFlashInstances;
++STATIC UINT32               mNorFlashDeviceCount;
++
++STATIC EFI_EVENT mNorFlashVirtualAddrChangeEvent;
++
++/**
++  Install Fv block onto variable store region
++
++  @param[in]   Instance         Instance of Nor flash variable region.
++
++  @retval      EFI_SUCCESS      The entry point is executed successfully.
++**/
++EFI_STATUS
++EFIAPI
++NorFlashFvbInitialize (
++  IN NOR_FLASH_INSTANCE* Instance
++  )
++{
++  EFI_STATUS      Status;
++  UINT32          FvbNumLba;
++  EFI_BOOT_MODE   BootMode;
++  UINTN           RuntimeMmioRegionSize;
++  UINTN           RuntimeMmioDeviceSize;
++  UINTN           BlockSize;
++
++  DEBUG ((DEBUG_INFO,"NorFlashFvbInitialize\n"));
++
++  BlockSize = Instance->BlockSize;
++
++  // FirmwareVolumeHeader->FvLength is declared to have the Variable area
++  // AND the FTW working area AND the FTW Spare contiguous.
++  ASSERT (PcdGet32 (PcdFlashNvStorageVariableBase) +
++         PcdGet32 (PcdFlashNvStorageVariableSize) ==
++         PcdGet32 (PcdFlashNvStorageFtwWorkingBase));
++  ASSERT (PcdGet32 (PcdFlashNvStorageFtwWorkingBase) +
++         PcdGet32 (PcdFlashNvStorageFtwWorkingSize) ==
++         PcdGet32 (PcdFlashNvStorageFtwSpareBase));
++
++  // Check if the size of the area is at least one block size.
++  ASSERT ((PcdGet32 (PcdFlashNvStorageVariableSize) > 0) &&
++         (PcdGet32 (PcdFlashNvStorageVariableSize) / BlockSize > 0));
++  ASSERT ((PcdGet32 (PcdFlashNvStorageFtwWorkingSize) > 0) &&
++         (PcdGet32 (PcdFlashNvStorageFtwWorkingSize) / BlockSize > 0));
++  ASSERT ((PcdGet32 (PcdFlashNvStorageFtwSpareSize) > 0) &&
++         (PcdGet32 (PcdFlashNvStorageFtwSpareSize) / BlockSize > 0));
++
++  // Ensure the Variable areas are aligned on block size boundaries.
++  ASSERT ((PcdGet32 (PcdFlashNvStorageVariableBase) % BlockSize) == 0);
++  ASSERT ((PcdGet32 (PcdFlashNvStorageFtwWorkingBase) % BlockSize) == 0);
++  ASSERT ((PcdGet32 (PcdFlashNvStorageFtwSpareBase) % BlockSize) == 0);
++
++  Instance->Initialized = TRUE;
++  mFlashNvStorageVariableBase = FixedPcdGet32 (PcdFlashNvStorageVariableBase);
++
++  // Set the index of the first LBA for the FVB.
++  Instance->StartLba = (PcdGet32 (PcdFlashNvStorageVariableBase) -
++                        Instance->RegionBaseAddress) / BlockSize;
++
++  BootMode = GetBootModeHob ();
++  if (BootMode == BOOT_WITH_DEFAULT_SETTINGS) {
++    Status = EFI_INVALID_PARAMETER;
++  } else {
++    // Determine if there is a valid header at the beginning of the NorFlash.
++    Status = ValidateFvHeader (Instance);
++  }
++
++  // Install the Default FVB header if required.
++  if (EFI_ERROR(Status)) {
++    // There is no valid header, so time to install one.
++    DEBUG ((DEBUG_INFO, "%a: The FVB Header is not valid.\n", __FUNCTION__));
++    DEBUG ((DEBUG_INFO, "%a: Installing a correct one for this volume.\n",
++      __FUNCTION__));
++
++    // Erase all the NorFlash that is reserved for variable storage.
++    FvbNumLba = (PcdGet32 (PcdFlashNvStorageVariableSize) +
++                 PcdGet32 (PcdFlashNvStorageFtwWorkingSize) +
++                 PcdGet32 (PcdFlashNvStorageFtwSpareSize)) /
++                 Instance->BlockSize;
++
++    Status = FvbEraseBlocks (
++               &Instance->FvbProtocol,
++               (EFI_LBA)0,
++               FvbNumLba,
++               EFI_LBA_LIST_TERMINATOR
++               );
++    if (EFI_ERROR(Status)) {
++      return Status;
++    }
++
++    // Install all appropriate headers.
++    Status = InitializeFvAndVariableStoreHeaders (Instance);
++    if (EFI_ERROR(Status)) {
++      return Status;
++    }
++
++    // validate FV header again if FV was created successfully.
++    Status = ValidateFvHeader (Instance);
++    if (EFI_ERROR(Status)) {
++      DEBUG ((DEBUG_ERROR, "ValidateFvHeader is failed \n"));
++      return Status;
++    }
++  }
++
++  // The driver implementing the variable read service can now be dispatched;
++  // the varstore headers are in place.
++  Status = gBS->InstallProtocolInterface (
++                  &gImageHandle,
++                  &gEdkiiNvVarStoreFormattedGuid,
++                  EFI_NATIVE_INTERFACE,
++                  NULL
++                  );
++  if (EFI_ERROR (Status)) {
++    DEBUG ((DEBUG_ERROR,
++      "%a: Failed to install gEdkiiNvVarStoreFormattedGuid\n",
++      __FUNCTION__));
++    return Status;
++  }
++
++  // Declare the Non-Volatile storage as EFI_MEMORY_RUNTIME.
++  RuntimeMmioRegionSize = Instance->Size;
++  RuntimeMmioDeviceSize = Instance->RegionBaseAddress - Instance->DeviceBaseAddress;
++
++  Status = gDS->AddMemorySpace (
++                  EfiGcdMemoryTypeMemoryMappedIo,
++                  Instance->RegionBaseAddress,
++                  RuntimeMmioRegionSize,
++                  EFI_MEMORY_UC | EFI_MEMORY_RUNTIME
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  Status = gDS->AddMemorySpace (
++                  EfiGcdMemoryTypeMemoryMappedIo,
++                  Instance->DeviceBaseAddress,
++                  RuntimeMmioDeviceSize,
++                  EFI_MEMORY_UC | EFI_MEMORY_RUNTIME
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  Status = gDS->SetMemorySpaceAttributes (
++                  Instance->RegionBaseAddress,
++                  RuntimeMmioRegionSize,
++                  EFI_MEMORY_UC | EFI_MEMORY_RUNTIME
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  Status = gDS->SetMemorySpaceAttributes (
++                  Instance->DeviceBaseAddress,
++                  RuntimeMmioDeviceSize,
++                  EFI_MEMORY_UC | EFI_MEMORY_RUNTIME
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  return Status;
++}
++
++/**
++  Fixup internal data so that EFI can be called in virtual mode.
++  convert any pointers in lib to virtual mode.
++
++  @param[in]    Event   The Event that is being processed
++  @param[in]    Context Event Context
++**/
++STATIC
++VOID
++EFIAPI
++NorFlashVirtualNotifyEvent (
++  IN EFI_EVENT        Event,
++  IN VOID             *Context
++  )
++{
++  UINTN Index;
++
++  EfiConvertPointer (0x0, (VOID**)&mFlashNvStorageVariableBase);
++
++  for (Index = 0; Index < mNorFlashDeviceCount; Index++) {
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->HostRegisterBaseAddress);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->DeviceBaseAddress);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->RegionBaseAddress);
++
++    // Convert Fvb.
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.EraseBlocks);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.GetAttributes);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.GetBlockSize);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.GetPhysicalAddress);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.Read);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.SetAttributes);
++    EfiConvertPointer (0x0,
++      (VOID**)&mNorFlashInstances[Index]->FvbProtocol.Write);
++
++    if (mNorFlashInstances[Index]->ShadowBuffer != NULL) {
++      EfiConvertPointer (0x0, (VOID**)&mNorFlashInstances[Index]->ShadowBuffer);
++    }
++  }
++}
++
++/**
++  Entrypoint of Platform Nor flash DXE driver
++
++  @param[in]  ImageHandle       The firmware allocated handle for the EFI image.
++  @param[in]  SystemTable       A pointer to the EFI System Table.
++
++  @retval     EFI_SUCCESS       The entry point is executed successfully.
++**/
++EFI_STATUS
++EFIAPI
++NorFlashInitialise (
++  IN EFI_HANDLE           ImageHandle,
++  IN EFI_SYSTEM_TABLE     *SystemTable
++  )
++{
++  EFI_STATUS              Status;
++  EFI_PHYSICAL_ADDRESS    HostRegisterBaseAddress;
++  UINT32                  Index;
++  NOR_FLASH_DESCRIPTION*  NorFlashDevices;
++  BOOLEAN                 ContainVariableStorage;
++
++  HostRegisterBaseAddress = PcdGet32 (PcdCadenceQspiDxeRegBaseAddress);
++
++  Status = gDS->AddMemorySpace (
++                  EfiGcdMemoryTypeMemoryMappedIo,
++                  HostRegisterBaseAddress,
++                  SIZE_64KB,
++                  EFI_MEMORY_UC | EFI_MEMORY_RUNTIME
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  Status = gDS->SetMemorySpaceAttributes (
++                  HostRegisterBaseAddress,
++                  SIZE_64KB,
++                  EFI_MEMORY_UC | EFI_MEMORY_RUNTIME
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  // Initialize NOR flash instances.
++  Status = NorFlashPlatformGetDevices (&NorFlashDevices, &mNorFlashDeviceCount);
++  if (EFI_ERROR (Status)) {
++    DEBUG ((DEBUG_ERROR,"NorFlashInitialise: Fail to get Nor Flash devices\n"));
++    return Status;
++  }
++
++  mNorFlashInstances = AllocateRuntimePool (sizeof (NOR_FLASH_INSTANCE*) *
++                                            mNorFlashDeviceCount);
++
++  if(mNorFlashInstances == NULL) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashInitialise: Failed to allocate mem for NorFlashInstance\n"));
++    return EFI_OUT_OF_RESOURCES;
++  }
++
++  for (Index = 0; Index < mNorFlashDeviceCount; Index++) {
++    // Check if this NOR Flash device contain the variable storage region.
++    ContainVariableStorage =
++        (NorFlashDevices[Index].RegionBaseAddress <=
++         PcdGet32 (PcdFlashNvStorageVariableBase)) &&
++        (PcdGet32 (PcdFlashNvStorageVariableBase) +
++         PcdGet32 (PcdFlashNvStorageVariableSize) <=
++        NorFlashDevices[Index].RegionBaseAddress + NorFlashDevices[Index].Size);
++
++    Status = NorFlashCreateInstance (
++               HostRegisterBaseAddress,
++               NorFlashDevices[Index].DeviceBaseAddress,
++               NorFlashDevices[Index].RegionBaseAddress,
++               NorFlashDevices[Index].Size,
++               Index,
++               NorFlashDevices[Index].BlockSize,
++               ContainVariableStorage,
++               &mNorFlashInstances[Index]
++               );
++    if (EFI_ERROR (Status)) {
++      DEBUG ((DEBUG_ERROR,
++        "NorFlashInitialise: Fail to create instance for NorFlash[%d]\n",
++        Index));
++      continue;
++    }
++    Status = gBS->InstallMultipleProtocolInterfaces (
++                    &mNorFlashInstances[Index]->Handle,
++                    &gEfiDevicePathProtocolGuid,
++                    &mNorFlashInstances[Index]->DevicePath,
++                    &gEfiFirmwareVolumeBlockProtocolGuid,
++                    &mNorFlashInstances[Index]->FvbProtocol,
++                    NULL
++                    );
++    ASSERT_EFI_ERROR (Status);
++  }
++  // Register for the virtual address change event.
++  Status = gBS->CreateEventEx (
++                  EVT_NOTIFY_SIGNAL,
++                  TPL_NOTIFY,
++                  NorFlashVirtualNotifyEvent,
++                  NULL,
++                  &gEfiEventVirtualAddressChangeGuid,
++                  &mNorFlashVirtualAddrChangeEvent
++                  );
++  ASSERT_EFI_ERROR (Status);
++
++  return Status;
++}
++
++/**
++  Lock all pending read/write to Nor flash device
++
++  @param[in]     Context     Nor flash device context structure.
++**/
++VOID
++EFIAPI
++NorFlashLock (
++  IN NOR_FLASH_LOCK_CONTEXT    *Context
++  )
++{
++  if (!EfiAtRuntime ()) {
++    // Raise TPL to TPL_HIGH to stop anyone from interrupting us.
++    Context->OriginalTPL = gBS->RaiseTPL (TPL_HIGH_LEVEL);
++  } else {
++    Context->InterruptsEnabled = SaveAndDisableInterrupts ();
++  }
++}
++
++/**
++  Unlock all pending read/write to Nor flash device
++
++  @param[in]     Context     Nor flash device context structure.
++**/
++VOID
++EFIAPI
++NorFlashUnlock (
++  IN NOR_FLASH_LOCK_CONTEXT    *Context
++  )
++{
++  if (!EfiAtRuntime ()) {
++    // Interruptions can resume.
++    gBS->RestoreTPL (Context->OriginalTPL);
++  } else if (Context->InterruptsEnabled) {
++    SetInterruptState (TRUE);
++  }
++}
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf
+new file mode 100644
+index 00000000..4f20c3ba
+--- /dev/null
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf
+@@ -0,0 +1,70 @@
++## @file
++#  NOR flash DXE
++#
++#  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++#
++#  SPDX-License-Identifier: BSD-2-Clause-Patent
++#
++##
++
++[Defines]
++  INF_VERSION                    = 0x0001001B
++  BASE_NAME                      = CadenceQspiDxe
++  FILE_GUID                      = CC8A9713-4442-4A6C-B389-8B46490A0641
++  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
++  VERSION_STRING                 = 0.1
++  ENTRY_POINT                    = NorFlashInitialise
++
++[Sources]
++  CadenceQspiDxe.c
++  NorFlash.c
++  NorFlash.h
++  NorFlashFvb.c
++
++[Packages]
++  EmbeddedPkg/EmbeddedPkg.dec
++  MdeModulePkg/MdeModulePkg.dec
++  MdePkg/MdePkg.dec
++  Platform/ARM/ARM.dec
++  Platform/ARM/N1Sdp/N1SdpPlatform.dec
++
++[LibraryClasses]
++  BaseLib
++  BaseMemoryLib
++  DebugLib
++  DevicePathLib
++  DxeServicesTableLib
++  HobLib
++  IoLib
++  MemoryAllocationLib
++  NorFlashInfoLib
++  NorFlashPlatformLib
++  UefiBootServicesTableLib
++  UefiDriverEntryPoint
++  UefiLib
++  UefiRuntimeLib
++  UefiRuntimeServicesTableLib
++
++[Guids]
++  gEdkiiNvVarStoreFormattedGuid
++  gEfiAuthenticatedVariableGuid
++  gEfiEventVirtualAddressChangeGuid
++  gEfiSystemNvDataFvGuid
++  gEfiVariableGuid
++  gEfiGlobalVariableGuid
++
++[Protocols]
++  gEfiDevicePathProtocolGuid
++  gEfiFirmwareVolumeBlockProtocolGuid
++
++[FixedPcd]
++  gArmN1SdpTokenSpaceGuid.PcdCadenceQspiDxeRegBaseAddress
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase
++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
++
++[Depex]
++  gEfiCpuArchProtocolGuid
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h
+new file mode 100644
+index 00000000..fe3b327c
+--- /dev/null
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h
+@@ -0,0 +1,31 @@
++/** @file
++
++  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++
++  SPDX-License-Identifier: BSD-2-Clause-Patent
++
++**/
++
++#ifndef CADENCE_QSPI_REG_H_
++#define CADENCE_QSPI_REG_H_
++
++// QSPI Controller defines
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_OFFSET               0x90
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_EXECUTE              0x01
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_ENABLE          0x01
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BIT_POS         19
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_BIT_POS    16
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_STATUS_BIT           0x02
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_4B         0x03
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_3B         0x02
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS       24
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_ENABLE          0x01
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_BYTE_3B         0x02
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_READEN_BIT_POS       23
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_READBYTE_BIT_POS     20
++
++#define CDNS_QSPI_FLASH_CMD_READ_DATA_REG_OFFSET          0xA0
++
++#define CDNS_QSPI_FLASH_CMD_ADDR_REG_OFFSET               0x94
++
++#endif /* CADENCE_QSPI_REG_H_ */
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c
+new file mode 100644
+index 00000000..188c75e2
+--- /dev/null
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c
+@@ -0,0 +1,930 @@
++/** @file
++
++  Copyright (c) 2023 ARM Limited. All rights reserved.<BR>
++
++  SPDX-License-Identifier: BSD-2-Clause-Patent
++
++**/
++
++#include <Library/BaseMemoryLib.h>
++#include <Library/MemoryAllocationLib.h>
++#include <Library/NorFlashInfoLib.h>
++#include <Library/PcdLib.h>
++#include <Library/UefiBootServicesTableLib.h>
++#include <Library/UefiLib.h>
++
++#include "NorFlash.h"
++
++STATIC CONST NOR_FLASH_INSTANCE mNorFlashInstanceTemplate = {
++  NOR_FLASH_SIGNATURE, // Signature
++  NULL, // Handle
++
++  FALSE, // Initialized
++  NULL, // Initialize
++
++  0, // HostRegisterBaseAddress
++  0, // DeviceBaseAddress
++  0, // RegionBaseAddress
++  0, // Size
++  0, // BlockSize
++  0, // LastBlock
++  0, // StartLba
++  0, // OffsetLba
++
++  {
++    FvbGetAttributes, // GetAttributes
++    FvbSetAttributes, // SetAttributes
++    FvbGetPhysicalAddress,  // GetPhysicalAddress
++    FvbGetBlockSize,  // GetBlockSize
++    FvbRead,  // Read
++    FvbWrite, // Write
++    FvbEraseBlocks, // EraseBlocks
++    NULL, //ParentHandle
++  }, //  FvbProtoccol;
++  NULL, // ShadowBuffer
++
++  {
++    {
++      {
++        HARDWARE_DEVICE_PATH,
++        HW_VENDOR_DP,
++        {
++          (UINT8)(OFFSET_OF (NOR_FLASH_DEVICE_PATH, End)),
++          (UINT8)(OFFSET_OF (NOR_FLASH_DEVICE_PATH, End) >> 8)
++        }
++      },
++    { 0x0, 0x0, 0x0, { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } },
++  },
++  0,  // Index
++
++  {
++    END_DEVICE_PATH_TYPE,
++    END_ENTIRE_DEVICE_PATH_SUBTYPE,
++    { sizeof (EFI_DEVICE_PATH_PROTOCOL), 0 }
++  }
++
++  }, // DevicePath
++  0 // Flags
++};
++
++/**
++  Execute Flash cmd ctrl and Read Status.
++
++  @param[in]      Instance         NOR flash Instance.
++  @param[in]      Val              Value to be written to Flash cmd ctrl Register.
++
++  @retval         EFI_SUCCESS      Request is executed successfully.
++
++**/
++STATIC
++EFI_STATUS
++CdnsQspiExecuteCommand (
++  IN  NOR_FLASH_INSTANCE    *Instance,
++  IN  UINT32                Val
++  )
++{
++  // Set the command
++  MmioWrite32 (Instance->HostRegisterBaseAddress + CDNS_QSPI_FLASH_CMD_CTRL_REG_OFFSET,
++                Val);
++  // Execute the command
++  MmioWrite32 (Instance->HostRegisterBaseAddress + CDNS_QSPI_FLASH_CMD_CTRL_REG_OFFSET,
++                Val | CDNS_QSPI_FLASH_CMD_CTRL_REG_EXECUTE);
++
++  // Wait until command has been executed
++  while ((MmioRead32 (Instance->HostRegisterBaseAddress + CDNS_QSPI_FLASH_CMD_CTRL_REG_OFFSET)
++          & CDNS_QSPI_FLASH_CMD_CTRL_REG_STATUS_BIT) == CDNS_QSPI_FLASH_CMD_CTRL_REG_STATUS_BIT)
++    continue;
++
++  return EFI_SUCCESS;
++}
++
++/**
++  Create Nor flash Instance for given region.
++
++  @param[in]    HostRegisterBase      Base address of Nor flash controller.
++  @param[in]    NorFlashDeviceBase    Base address of flash device.
++  @param[in]    NorFlashRegionBase    Base address of flash region on device.
++  @param[in]    NorFlashSize          Size of flash region.
++  @param[in]    Index                 Index of given flash region.
++  @param[in]    BlockSize             Block size of NOR flash device.
++  @param[in]    HasVarStore           Boolean set for VarStore on given region.
++  @param[out]   NorFlashInstance      Instance of given flash region.
++
++  @retval       EFI_SUCCESS           On successful creation of NOR flash instance.
++**/
++EFI_STATUS
++NorFlashCreateInstance (
++  IN UINTN                  HostRegisterBase,
++  IN UINTN                  NorFlashDeviceBase,
++  IN UINTN                  NorFlashRegionBase,
++  IN UINTN                  NorFlashSize,
++  IN UINT32                 Index,
++  IN UINT32                 BlockSize,
++  IN BOOLEAN                HasVarStore,
++  OUT NOR_FLASH_INSTANCE**  NorFlashInstance
++  )
++{
++  EFI_STATUS Status;
++  NOR_FLASH_INSTANCE* Instance;
++  NOR_FLASH_INFO *FlashInfo;
++  UINT8 JedecId[3];
++
++  ASSERT(NorFlashInstance != NULL);
++  Instance = AllocateRuntimeCopyPool (sizeof (mNorFlashInstanceTemplate),
++                                      &mNorFlashInstanceTemplate);
++  if (Instance == NULL) {
++    return EFI_OUT_OF_RESOURCES;
++  }
++
++  Instance->HostRegisterBaseAddress = HostRegisterBase;
++  Instance->DeviceBaseAddress       = NorFlashDeviceBase;
++  Instance->RegionBaseAddress       = NorFlashRegionBase;
++  Instance->Size                    = NorFlashSize;
++  Instance->BlockSize               = BlockSize;
++  Instance->LastBlock               = (NorFlashSize / BlockSize) - 1;
++
++  Instance->OffsetLba = (NorFlashRegionBase - NorFlashDeviceBase) / BlockSize;
++
++  CopyGuid (&Instance->DevicePath.Vendor.Guid, &gEfiCallerIdGuid);
++  Instance->DevicePath.Index = (UINT8)Index;
++
++  Status = NorFlashReadID (Instance, JedecId);
++  if (EFI_ERROR (Status)) {
++    goto FreeInstance;
++  }
++
++  Status = NorFlashGetInfo (JedecId, &FlashInfo, TRUE);
++  if (EFI_ERROR (Status)) {
++    goto FreeInstance;
++  }
++
++  NorFlashPrintInfo (FlashInfo);
++
++  Instance->Flags = 0;
++  if (FlashInfo->Flags & NOR_FLASH_WRITE_FSR) {
++    Instance->Flags = NOR_FLASH_POLL_FSR;
++  }
++
++  Instance->ShadowBuffer = AllocateRuntimePool (BlockSize);
++  if (Instance->ShadowBuffer == NULL) {
++    Status = EFI_OUT_OF_RESOURCES;
++    goto FreeInstance;
++  }
++
++  if (HasVarStore) {
++    Instance->Initialize = NorFlashFvbInitialize;
++  }
++
++  *NorFlashInstance = Instance;
++  FreePool (FlashInfo);
++  return EFI_SUCCESS;
++
++FreeInstance:
++  FreePool (Instance);
++  return Status;
++}
++
++/**
++  Check whether NOR flash opertions are Locked.
++
++  @param[in]     Instance         NOR flash Instance.
++  @param[in]     BlockAddress     BlockAddress in NOR flash device.
++
++  @retval        FALSE            If NOR flash is not locked.
++**/
++STATIC
++BOOLEAN
++NorFlashBlockIsLocked (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  BlockAddress
++  )
++{
++  return FALSE;
++}
++
++/**
++  Unlock NOR flash operations on given block.
++
++  @param[in]      Instance         NOR flash instance.
++  @param[in]      BlockAddress     BlockAddress in NOR flash device.
++
++  @retval         EFI_SUCCESS      NOR flash operations is unlocked.
++**/
++STATIC
++EFI_STATUS
++NorFlashUnlockSingleBlock (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  BlockAddress
++  )
++{
++  return EFI_SUCCESS;
++}
++
++/**
++  Unlock NOR flash operations if it is necessary.
++
++  @param[in]      Instance         NOR flash instance.
++  @param[in]      BlockAddress     BlockAddress in NOR flash device.
++
++  @retval         EFI_SUCCESS      Request is executed successfully.
++**/
++STATIC
++EFI_STATUS
++NorFlashUnlockSingleBlockIfNecessary (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  BlockAddress
++  )
++{
++  EFI_STATUS Status;
++
++  Status = EFI_SUCCESS;
++
++  if (!NorFlashBlockIsLocked (Instance, BlockAddress)) {
++    Status = NorFlashUnlockSingleBlock (Instance, BlockAddress);
++  }
++
++  return Status;
++}
++
++/**
++  Enable write to NOR flash device.
++
++  @param[in]      Instance         NOR flash instance.
++
++  @retval         EFI_SUCCESS      Request is executed successfully.
++**/
++STATIC
++EFI_STATUS
++NorFlashEnableWrite (
++  IN  NOR_FLASH_INSTANCE    *Instance
++  )
++{
++
++  UINT32          val;
++
++  DEBUG ((DEBUG_INFO, "NorFlashEnableWrite()\n"));
++  val = (SPINOR_OP_WREN << CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS);
++  if (EFI_ERROR (CdnsQspiExecuteCommand (Instance, val))) {
++    return EFI_DEVICE_ERROR;
++  }
++
++  return EFI_SUCCESS;
++}
++
++/**
++  The following function presumes that the block has already been unlocked.
++
++  @param[in]      Instance         NOR flash instance.
++  @param[in]      BlockAddress     Block address within the variable region.
++
++  @retval         EFI_SUCCESS      Request is executed successfully.
++ **/
++EFI_STATUS
++NorFlashEraseSingleBlock (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  BlockAddress
++  )
++{
++
++  UINT32 DevConfigVal;
++  UINT32 EraseOffset;
++
++  EraseOffset = 0x0;
++
++  DEBUG ((DEBUG_INFO, "NorFlashEraseSingleBlock(BlockAddress=0x%08x)\n",
++    BlockAddress));
++
++  if (EFI_ERROR (NorFlashEnableWrite (Instance))) {
++    return EFI_DEVICE_ERROR;
++  }
++
++  EraseOffset = BlockAddress - Instance->DeviceBaseAddress;
++
++  MmioWrite32 (Instance->HostRegisterBaseAddress + CDNS_QSPI_FLASH_CMD_ADDR_REG_OFFSET,
++                EraseOffset);
++
++  DevConfigVal = SPINOR_OP_BE_4K << CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS |
++                 CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_ENABLE << CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BIT_POS |
++                 CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_3B << CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_BIT_POS;
++
++  if (EFI_ERROR (CdnsQspiExecuteCommand (Instance, DevConfigVal))) {
++    return EFI_DEVICE_ERROR;
++  }
++
++  return EFI_SUCCESS;
++}
++
++/**
++  This function unlock and erase an entire NOR Flash block.
++
++  @param[in]     Instance       NOR flash Instance of variable store region.
++  @param[in]     BlockAddress   Block address within the variable store region.
++
++  @retval        EFI_SUCCESS    The erase and unlock successfully completed.
++**/
++EFI_STATUS
++NorFlashUnlockAndEraseSingleBlock (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  BlockAddress
++  )
++{
++  EFI_STATUS              Status;
++  UINTN                   Index;
++  NOR_FLASH_LOCK_CONTEXT  Lock;
++  NorFlashLock (&Lock);
++
++  Index = 0;
++  do {
++    // Unlock the block if we have to
++    Status = NorFlashUnlockSingleBlockIfNecessary (Instance, BlockAddress);
++    if (EFI_ERROR (Status)) {
++      break;
++    }
++    Status = NorFlashEraseSingleBlock (Instance, BlockAddress);
++    if (EFI_ERROR (Status)) {
++      break;
++    }
++    Index++;
++  } while ((Index < NOR_FLASH_ERASE_RETRY) && (Status == EFI_WRITE_PROTECTED));
++
++  if (Index == NOR_FLASH_ERASE_RETRY) {
++    DEBUG ((DEBUG_ERROR,
++      "EraseSingleBlock(BlockAddress=0x%08x: Block Locked Error (try to erase %d times)\n",
++      BlockAddress,Index));
++  }
++
++  NorFlashUnlock (&Lock);
++
++  return Status;
++}
++
++/**
++  Write a single word to given location.
++
++  @param[in]    Instance     NOR flash Instance of variable store region.
++  @param[in]    WordAddress  The address in NOR flash to write given word.
++  @param[in]    WriteData    The data to write into NOR flash location.
++
++  @retval       EFI_SUCCESS  The write is completed.
++**/
++STATIC
++EFI_STATUS
++NorFlashWriteSingleWord (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  WordAddress,
++  IN UINT32                 WriteData
++  )
++{
++  DEBUG ((DEBUG_INFO,
++    "NorFlashWriteSingleWord(WordAddress=0x%08x, WriteData=0x%08x)\n",
++    WordAddress, WriteData));
++
++  if (EFI_ERROR (NorFlashEnableWrite (Instance))) {
++    return EFI_DEVICE_ERROR;
++  }
++  MmioWrite32 (WordAddress, WriteData);
++  return EFI_SUCCESS;
++}
++
++/**
++  Write a full block to given location.
++
++  @param[in]    Instance           NOR flash Instance of variable store region.
++  @param[in]    Lba                The logical block address in NOR flash.
++  @param[in]    DataBuffer         The data to write into NOR flash location.
++  @param[in]    BlockSizeInWords   The number of bytes to write.
++
++  @retval       EFI_SUCCESS        The write is completed.
++**/
++STATIC
++EFI_STATUS
++NorFlashWriteFullBlock (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN EFI_LBA                Lba,
++  IN UINT32                 *DataBuffer,
++  IN UINT32                 BlockSizeInWords
++  )
++{
++  EFI_STATUS              Status;
++  UINTN                   WordAddress;
++  UINT32                  WordIndex;
++  UINTN                   BlockAddress;
++  NOR_FLASH_LOCK_CONTEXT  Lock;
++
++  Status = EFI_SUCCESS;
++
++  // Get the physical address of the block
++  BlockAddress = GET_NOR_BLOCK_ADDRESS (Instance->RegionBaseAddress, Lba,
++                   BlockSizeInWords * 4);
++
++  // Start writing from the first address at the start of the block
++  WordAddress = BlockAddress;
++
++  NorFlashLock (&Lock);
++
++  Status = NorFlashUnlockAndEraseSingleBlock (Instance, BlockAddress);
++  if (EFI_ERROR (Status)) {
++    DEBUG ((DEBUG_ERROR,
++      "WriteSingleBlock: ERROR - Failed to Unlock and Erase the single block at 0x%X\n",
++      BlockAddress));
++    goto EXIT;
++  }
++
++  for (WordIndex=0;
++       WordIndex < BlockSizeInWords;
++       WordIndex++, DataBuffer++, WordAddress += 4) {
++    Status = NorFlashWriteSingleWord (Instance, WordAddress, *DataBuffer);
++    if (EFI_ERROR (Status)) {
++      goto EXIT;
++    }
++  }
++
++EXIT:
++  NorFlashUnlock (&Lock);
++
++  if (EFI_ERROR (Status)) {
++    DEBUG ((DEBUG_ERROR,
++      "NOR FLASH Programming [WriteSingleBlock] failed at address 0x%08x. Exit Status = %r.\n",
++      WordAddress, Status));
++  }
++  return Status;
++}
++
++/**
++  Write a full  block.
++
++  @param[in]    Instance           NOR flash Instance of variable store region.
++  @param[in]    Lba                The starting logical block index.
++  @param[in]    BufferSizeInBytes  The number of bytes to read.
++  @param[in]    Buffer             The pointer to a caller-allocated buffer that
++                                   contains the source for the write.
++
++  @retval       EFI_SUCCESS        The write is completed.
++**/
++EFI_STATUS
++NorFlashWriteBlocks (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN EFI_LBA                Lba,
++  IN UINTN                  BufferSizeInBytes,
++  IN VOID                   *Buffer
++  )
++{
++  UINT32          *pWriteBuffer;
++  EFI_STATUS      Status;
++  EFI_LBA         CurrentBlock;
++  UINT32          BlockSizeInWords;
++  UINT32          NumBlocks;
++  UINT32          BlockCount;
++
++  Status = EFI_SUCCESS;
++  // The buffer must be valid
++  if (Buffer == NULL) {
++    return EFI_INVALID_PARAMETER;
++  }
++
++  // We must have some bytes to read
++  DEBUG ((DEBUG_INFO, "NorFlashWriteBlocks: BufferSizeInBytes=0x%x\n",
++    BufferSizeInBytes));
++  if (BufferSizeInBytes == 0) {
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  // The size of the buffer must be a multiple of the block size
++  DEBUG ((DEBUG_INFO, "NorFlashWriteBlocks: BlockSize in bytes =0x%x\n",
++    Instance->BlockSize));
++  if ((BufferSizeInBytes % Instance->BlockSize) != 0) {
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  // All blocks must be within the device
++  NumBlocks = ((UINT32)BufferSizeInBytes) / Instance->BlockSize;
++
++  DEBUG ((DEBUG_INFO,
++    "NorFlashWriteBlocks: NumBlocks=%d, LastBlock=%ld, Lba=%ld.\n", NumBlocks,
++    Instance->LastBlock, Lba));
++
++  if ((Lba + NumBlocks) > (Instance->LastBlock + 1)) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashWriteBlocks: ERROR - Write will exceed last block.\n"));
++    return EFI_INVALID_PARAMETER;
++  }
++
++  ASSERT (((UINTN)Buffer % sizeof (UINT32)) == 0);
++
++  BlockSizeInWords = Instance->BlockSize / 4;
++
++  // Because the target *Buffer is a pointer to VOID, we must put
++  // all the data into a pointer to a proper data type, so use *ReadBuffer
++  pWriteBuffer = (UINT32 *)Buffer;
++
++  CurrentBlock = Lba;
++  for (BlockCount = 0;
++       BlockCount < NumBlocks;
++       BlockCount++, CurrentBlock++, pWriteBuffer += BlockSizeInWords) {
++
++    DEBUG ((DEBUG_INFO, "NorFlashWriteBlocks: Writing block #%d\n",
++      (UINTN)CurrentBlock));
++
++    Status = NorFlashWriteFullBlock (
++               Instance,
++               CurrentBlock,
++               pWriteBuffer,
++               BlockSizeInWords
++               );
++
++    if (EFI_ERROR (Status)) {
++      break;
++    }
++  }
++
++  DEBUG ((DEBUG_INFO, "NorFlashWriteBlocks: Exit Status = %r.\n", Status));
++  return Status;
++}
++
++/**
++  Read a full  block.
++
++  @param[in]     Instance           NOR flash Instance of variable store region.
++  @param[in]     Lba                The starting logical block index to read from.
++  @param[in]     BufferSizeInBytes  The number of bytes to read.
++  @param[out]    Buffer             The pointer to a caller-allocated buffer that
++                                    should be copied with read data.
++
++  @retval        EFI_SUCCESS        The read is completed.
++**/
++EFI_STATUS
++NorFlashReadBlocks (
++  IN NOR_FLASH_INSTANCE   *Instance,
++  IN EFI_LBA              Lba,
++  IN UINTN                BufferSizeInBytes,
++  OUT VOID                *Buffer
++  )
++{
++  UINT32              NumBlocks;
++  UINTN               StartAddress;
++  DEBUG ((DEBUG_INFO,
++    "NorFlashReadBlocks: BufferSize=0x%xB BlockSize=0x%xB LastBlock=%ld, Lba=%ld.\n",
++    BufferSizeInBytes, Instance->BlockSize, Instance->LastBlock,
++    Lba));
++
++  // The buffer must be valid
++  if (Buffer == NULL) {
++    return EFI_INVALID_PARAMETER;
++  }
++
++  // Return if we do not have any byte to read
++  if (BufferSizeInBytes == 0) {
++    return EFI_SUCCESS;
++  }
++
++  // The size of the buffer must be a multiple of the block size
++  if ((BufferSizeInBytes % Instance->BlockSize) != 0) {
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  NumBlocks = ((UINT32)BufferSizeInBytes) / Instance->BlockSize;
++
++  if ((Lba + NumBlocks) > (Instance->LastBlock + 1)) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashReadBlocks: ERROR - Read will exceed last block\n"));
++    return EFI_INVALID_PARAMETER;
++  }
++
++  // Get the address to start reading from
++  StartAddress = GET_NOR_BLOCK_ADDRESS (Instance->RegionBaseAddress, Lba,
++                                        Instance->BlockSize);
++
++  // Readout the data
++  CopyMem(Buffer, (UINTN *)StartAddress, BufferSizeInBytes);
++
++  return EFI_SUCCESS;
++}
++
++/**
++  Read from nor flash.
++
++  @param[in]     Instance           NOR flash Instance of variable store region.
++  @param[in]     Lba                The starting logical block index to read from.
++  @param[in]     Offset             Offset into the block at which to begin reading.
++  @param[in]     BufferSizeInBytes  The number of bytes to read.
++  @param[out]    Buffer             The pointer to a caller-allocated buffer that
++                                    should copied with read data.
++
++  @retval        EFI_SUCCESS        The read is completed.
++**/
++EFI_STATUS
++NorFlashRead (
++  IN NOR_FLASH_INSTANCE   *Instance,
++  IN EFI_LBA              Lba,
++  IN UINTN                Offset,
++  IN UINTN                BufferSizeInBytes,
++  OUT VOID                *Buffer
++  )
++{
++  UINTN  StartAddress;
++  // The buffer must be valid
++  if (Buffer == NULL) {
++    return EFI_INVALID_PARAMETER;
++  }
++
++  // Return if we do not have any byte to read
++  if (BufferSizeInBytes == 0) {
++    return EFI_SUCCESS;
++  }
++
++  if (((Lba * Instance->BlockSize) + Offset + BufferSizeInBytes) >
++      Instance->Size) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashRead: ERROR - Read will exceed device size.\n"));
++    return EFI_INVALID_PARAMETER;
++  }
++
++  // Get the address to start reading from
++  StartAddress = GET_NOR_BLOCK_ADDRESS (Instance->RegionBaseAddress, Lba,
++                                        Instance->BlockSize);
++
++  // Readout the data
++  CopyMem (Buffer, (UINTN *)(StartAddress + Offset), BufferSizeInBytes);
++
++  return EFI_SUCCESS;
++}
++
++/**
++  Write a full or portion of a block.
++
++  @param[in]         Instance     NOR flash Instance of variable store region.
++  @param[in]         Lba          The starting logical block index to write to.
++  @param[in]         Offset       Offset into the block at which to begin writing.
++  @param[in, out]    NumBytes     The total size of the buffer.
++  @param[in]         Buffer       The pointer to a caller-allocated buffer that
++                                  contains the source for the write.
++
++  @retval            EFI_SUCCESS  The write is completed.
++**/
++EFI_STATUS
++NorFlashWriteSingleBlock (
++  IN        NOR_FLASH_INSTANCE   *Instance,
++  IN        EFI_LBA               Lba,
++  IN        UINTN                 Offset,
++  IN OUT    UINTN                *NumBytes,
++  IN        UINT8                *Buffer
++  )
++{
++  EFI_STATUS  Status;
++  UINT32      Tmp;
++  UINT32      TmpBuf;
++  UINT32      WordToWrite;
++  UINT32      Mask;
++  BOOLEAN     DoErase;
++  UINTN       BytesToWrite;
++  UINTN       CurOffset;
++  UINTN       WordAddr;
++  UINTN       BlockSize;
++  UINTN       BlockAddress;
++  UINTN       PrevBlockAddress;
++
++  if (Buffer == NULL) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashWriteSingleBlock: ERROR - Buffer is invalid\n" ));
++    return EFI_OUT_OF_RESOURCES;
++  }
++
++  PrevBlockAddress = 0;
++  if (!Instance->Initialized && Instance->Initialize) {
++    Instance->Initialize(Instance);
++  }
++
++  DEBUG ((DEBUG_INFO,
++    "NorFlashWriteSingleBlock(Parameters: Lba=%ld, Offset=0x%x, *NumBytes=0x%x, Buffer @ 0x%08x)\n",
++    Lba, Offset, *NumBytes, Buffer));
++
++  // Localise the block size to avoid de-referencing pointers all the time
++  BlockSize = Instance->BlockSize;
++
++  // The write must not span block boundaries.
++  // We need to check each variable individually because adding two large
++  // values together overflows.
++  if (Offset               >= BlockSize ||
++      *NumBytes            >  BlockSize ||
++      (Offset + *NumBytes) >  BlockSize) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashWriteSingleBlock: ERROR - EFI_BAD_BUFFER_SIZE: (Offset=0x%x + NumBytes=0x%x) > BlockSize=0x%x\n",
++      Offset, *NumBytes, BlockSize ));
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  // We must have some bytes to write
++  if (*NumBytes == 0) {
++    DEBUG ((DEBUG_ERROR,
++      "NorFlashWriteSingleBlock: ERROR - EFI_BAD_BUFFER_SIZE: (Offset=0x%x + NumBytes=0x%x) > BlockSize=0x%x\n",
++      Offset, *NumBytes, BlockSize ));
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  // Pick 128bytes as a good start for word operations as opposed to erasing the
++  // block and writing the data regardless if an erase is really needed.
++  // It looks like most individual NV variable writes are smaller than 128bytes.
++  if (*NumBytes <= 128) {
++    // Check to see if we need to erase before programming the data into NOR.
++    // If the destination bits are only changing from 1s to 0s we can just write.
++    // After a block is erased all bits in the block is set to 1.
++    // If any byte requires us to erase we just give up and rewrite all of it.
++    DoErase      = FALSE;
++    BytesToWrite = *NumBytes;
++    CurOffset    = Offset;
++
++    while (BytesToWrite > 0) {
++      // Read full word from NOR, splice as required. A word is the smallest
++      // unit we can write.
++      Status = NorFlashRead (
++                 Instance,
++                 Lba,
++                 CurOffset & ~(0x3),
++                 sizeof(Tmp),
++                 &Tmp
++                 );
++      if (EFI_ERROR (Status)) {
++        return EFI_DEVICE_ERROR;
++      }
++
++      // Physical address of word in NOR to write.
++      WordAddr = (CurOffset & ~(0x3)) +
++                 GET_NOR_BLOCK_ADDRESS (Instance->RegionBaseAddress, Lba,
++                   BlockSize);
++
++      // The word of data that is to be written.
++      TmpBuf = ReadUnaligned32 ((UINT32 *)(Buffer + (*NumBytes - BytesToWrite)));
++
++      // First do word aligned chunks.
++      if ((CurOffset & 0x3) == 0) {
++        if (BytesToWrite >= 4) {
++          // Is the destination still in 'erased' state?
++          if (~Tmp != 0) {
++            // Check to see if we are only changing bits to zero.
++            if ((Tmp ^ TmpBuf) & TmpBuf) {
++              DoErase = TRUE;
++              break;
++            }
++          }
++          // Write this word to NOR
++          WordToWrite = TmpBuf;
++          CurOffset += sizeof(TmpBuf);
++          BytesToWrite -= sizeof(TmpBuf);
++        } else {
++          // BytesToWrite < 4. Do small writes and left-overs
++          Mask = ~((~0) << (BytesToWrite * 8));
++          // Mask out the bytes we want.
++          TmpBuf &= Mask;
++          // Is the destination still in 'erased' state?
++          if ((Tmp & Mask) != Mask) {
++            // Check to see if we are only changing bits to zero.
++            if ((Tmp ^ TmpBuf) & TmpBuf) {
++              DoErase = TRUE;
++              break;
++            }
++          }
++          // Merge old and new data. Write merged word to NOR
++          WordToWrite = (Tmp & ~Mask) | TmpBuf;
++          CurOffset += BytesToWrite;
++          BytesToWrite = 0;
++        }
++      } else {
++        // Do multiple words, but starting unaligned.
++        if (BytesToWrite > (4 - (CurOffset & 0x3))) {
++          Mask = ((~0) << ((CurOffset & 0x3) * 8));
++          // Mask out the bytes we want.
++          TmpBuf &= Mask;
++          // Is the destination still in 'erased' state?
++          if ((Tmp & Mask) != Mask) {
++            // Check to see if we are only changing bits to zero.
++            if ((Tmp ^ TmpBuf) & TmpBuf) {
++              DoErase = TRUE;
++              break;
++            }
++          }
++          // Merge old and new data. Write merged word to NOR
++          WordToWrite = (Tmp & ~Mask) | TmpBuf;
++          BytesToWrite -= (4 - (CurOffset & 0x3));
++          CurOffset += (4 - (CurOffset & 0x3));
++        } else {
++          // Unaligned and fits in one word.
++          Mask = (~((~0) << (BytesToWrite * 8))) << ((CurOffset & 0x3) * 8);
++          // Mask out the bytes we want.
++          TmpBuf = (TmpBuf << ((CurOffset & 0x3) * 8)) & Mask;
++          // Is the destination still in 'erased' state?
++          if ((Tmp & Mask) != Mask) {
++            // Check to see if we are only changing bits to zero.
++            if ((Tmp ^ TmpBuf) & TmpBuf) {
++              DoErase = TRUE;
++              break;
++            }
++          }
++          // Merge old and new data. Write merged word to NOR
++          WordToWrite = (Tmp & ~Mask) | TmpBuf;
++          CurOffset += BytesToWrite;
++          BytesToWrite = 0;
++        }
++      }
++
++      BlockAddress = GET_NOR_BLOCK_ADDRESS (
++                       Instance->RegionBaseAddress,
++                       Lba,
++                       BlockSize
++                       );
++      if (BlockAddress != PrevBlockAddress) {
++        Status = NorFlashUnlockSingleBlockIfNecessary (Instance, BlockAddress);
++        if (EFI_ERROR (Status)) {
++          return EFI_DEVICE_ERROR;
++        }
++        PrevBlockAddress = BlockAddress;
++      }
++      Status = NorFlashWriteSingleWord (Instance, WordAddr, WordToWrite);
++      if (EFI_ERROR (Status)) {
++        return EFI_DEVICE_ERROR;
++      }
++    }
++    // Exit if we got here and could write all the data. Otherwise do the
++    // Erase-Write cycle.
++    if (!DoErase) {
++      return EFI_SUCCESS;
++    }
++  }
++
++  // Check we did get some memory. Buffer is BlockSize.
++  if (Instance->ShadowBuffer == NULL) {
++    DEBUG ((DEBUG_ERROR, "FvbWrite: ERROR - Buffer not ready\n"));
++    return EFI_DEVICE_ERROR;
++  }
++
++  // Read NOR Flash data into shadow buffer
++  Status = NorFlashReadBlocks (
++             Instance,
++             Lba,
++             BlockSize,
++             Instance->ShadowBuffer
++             );
++  if (EFI_ERROR (Status)) {
++    // Return one of the pre-approved error statuses
++    return EFI_DEVICE_ERROR;
++  }
++
++  // Put the data at the appropriate location inside the buffer area
++  CopyMem ((VOID*)((UINTN)Instance->ShadowBuffer + Offset), Buffer, *NumBytes);
++
++  // Write the modified buffer back to the NorFlash
++  Status = NorFlashWriteBlocks (
++             Instance,
++             Lba,
++             BlockSize,
++             Instance->ShadowBuffer
++             );
++  if (EFI_ERROR (Status)) {
++    // Return one of the pre-approved error statuses
++    return EFI_DEVICE_ERROR;
++  }
++
++  return EFI_SUCCESS;
++}
++
++/**
++  Read JEDEC ID of NOR flash device.
++
++  @param[in]     Instance     NOR flash Instance of variable store region.
++  @param[out]    JedecId      JEDEC ID of NOR flash device.
++
++  @retval        EFI_SUCCESS  The write is completed.
++**/
++EFI_STATUS
++NorFlashReadID (
++  IN  NOR_FLASH_INSTANCE  *Instance,
++  OUT UINT8               JedecId[3]
++  )
++{
++  UINT32 val;
++  if (Instance == NULL || JedecId == NULL) {
++    return EFI_INVALID_PARAMETER;
++  }
++
++  val = SPINOR_OP_RDID << CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS |
++        CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_ENABLE << CDNS_QSPI_FLASH_CMD_CTRL_REG_READEN_BIT_POS |
++        CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_3B << CDNS_QSPI_FLASH_CMD_CTRL_REG_READBYTE_BIT_POS;
++
++  if (EFI_ERROR (CdnsQspiExecuteCommand (Instance, val))) {
++    return EFI_DEVICE_ERROR;
++  }
++
++  val = MmioRead32 (Instance->HostRegisterBaseAddress + CDNS_QSPI_FLASH_CMD_READ_DATA_REG_OFFSET);
++
++  // Manu.ID field
++  JedecId[0] = (UINT8) val;
++  // Type field
++  JedecId[1] = (UINT8) (val >> 8);
++  // Capacity field
++  JedecId[2] = (UINT8) (val >> 16);
++
++  DEBUG ((DEBUG_INFO,
++    "Nor flash detected, Jedec ID, Manu.Id=%x Type=%x Capacity=%x \n",
++    JedecId[0],JedecId[1],JedecId[2]));
++
++  return EFI_SUCCESS;
++}
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h
+new file mode 100644
+index 00000000..e720937e
+--- /dev/null
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h
+@@ -0,0 +1,484 @@
++/** @file
++
++  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++
++  SPDX-License-Identifier: BSD-2-Clause-Patent
++
++**/
++
++#ifndef NOR_FLASH_DXE_H_
++#define NOR_FLASH_DXE_H_
++
++#include <Guid/EventGroup.h>
++#include <Library/DebugLib.h>
++#include <Library/IoLib.h>
++#include <Library/NorFlashPlatformLib.h>
++#include <PiDxe.h>
++#include <Protocol/BlockIo.h>
++#include <Protocol/DiskIo.h>
++#include <Protocol/FirmwareVolumeBlock.h>
++
++#include "CadenceQspiReg.h"
++
++#define NOR_FLASH_ERASE_RETRY                     10
++
++#define GET_NOR_BLOCK_ADDRESS(BaseAddr, Lba, LbaSize) \
++                                      ((BaseAddr) + (UINTN)((Lba) * (LbaSize)))
++
++#define NOR_FLASH_SIGNATURE          SIGNATURE_32('S', 'n', 'o', 'r')
++#define INSTANCE_FROM_FVB_THIS(a)    CR(a, NOR_FLASH_INSTANCE, FvbProtocol, \
++                                        NOR_FLASH_SIGNATURE)
++
++#define NOR_FLASH_POLL_FSR      BIT0
++
++typedef struct _NOR_FLASH_INSTANCE                NOR_FLASH_INSTANCE;
++
++typedef EFI_STATUS (*NOR_FLASH_INITIALIZE)        (NOR_FLASH_INSTANCE* Instance);
++
++#pragma pack(1)
++typedef struct {
++  VENDOR_DEVICE_PATH                  Vendor;
++  UINT8                               Index;
++  EFI_DEVICE_PATH_PROTOCOL            End;
++} NOR_FLASH_DEVICE_PATH;
++#pragma pack()
++
++struct _NOR_FLASH_INSTANCE {
++  UINT32                              Signature;
++  EFI_HANDLE                          Handle;
++
++  BOOLEAN                             Initialized;
++  NOR_FLASH_INITIALIZE                Initialize;
++
++  UINTN                               HostRegisterBaseAddress;
++  UINTN                               DeviceBaseAddress;
++  UINTN                               RegionBaseAddress;
++  UINTN                               Size;
++  UINTN                               BlockSize;
++  UINTN                               LastBlock;
++  EFI_LBA                             StartLba;
++  EFI_LBA                             OffsetLba;
++
++  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL FvbProtocol;
++  VOID*                               ShadowBuffer;
++
++  NOR_FLASH_DEVICE_PATH               DevicePath;
++
++  UINT32                              Flags;
++};
++
++typedef struct {
++  EFI_TPL         OriginalTPL;
++  BOOLEAN         InterruptsEnabled;
++} NOR_FLASH_LOCK_CONTEXT;
++
++/**
++  Lock all pending read/write to Nor flash device
++
++  @param[in]     Context     Nor flash device context structure.
++**/
++VOID
++EFIAPI
++NorFlashLock (
++  IN NOR_FLASH_LOCK_CONTEXT    *Context
++  );
++
++/**
++  Unlock all pending read/write to Nor flash device
++
++  @param[in]     Context     Nor flash device context structure.
++**/
++VOID
++EFIAPI
++NorFlashUnlock (
++  IN NOR_FLASH_LOCK_CONTEXT    *Context
++  );
++
++extern UINTN     mFlashNvStorageVariableBase;
++
++/**
++  Create Nor flash Instance for given region.
++
++  @param[in]    HostRegisterBase      Base address of Nor flash controller.
++  @param[in]    NorFlashDeviceBase    Base address of flash device.
++  @param[in]    NorFlashRegionBase    Base address of flash region on device.
++  @param[in]    NorFlashSize          Size of flash region.
++  @param[in]    Index                 Index of given flash region.
++  @param[in]    BlockSize             Block size of NOR flash device.
++  @param[in]    HasVarStore           Boolean set for VarStore on given region.
++  @param[out]   NorFlashInstance      Instance of given flash region.
++
++  @retval       EFI_SUCCESS           On successful creation of NOR flash instance.
++**/
++EFI_STATUS
++NorFlashCreateInstance (
++  IN UINTN                  HostRegisterBase,
++  IN UINTN                  NorFlashDeviceBase,
++  IN UINTN                  NorFlashRegionBase,
++  IN UINTN                  NorFlashSize,
++  IN UINT32                 Index,
++  IN UINT32                 BlockSize,
++  IN BOOLEAN                HasVarStore,
++  OUT NOR_FLASH_INSTANCE**  NorFlashInstance
++  );
++
++/**
++  Install Fv block on to variable store region
++
++  @param[in]   Instance         Instance of Nor flash variable region.
++
++  @retval      EFI_SUCCESS      The entry point is executed successfully.
++**/
++EFI_STATUS
++EFIAPI
++NorFlashFvbInitialize (
++  IN NOR_FLASH_INSTANCE* Instance
++  );
++
++/**
++  Check the integrity of firmware volume header.
++
++  @param[in]  Instance        Instance of Nor flash variable region.
++
++  @retval     EFI_SUCCESS     The firmware volume is consistent.
++  @retval     EFI_NOT_FOUND   The firmware volume has been corrupted.
++
++**/
++EFI_STATUS
++ValidateFvHeader (
++  IN  NOR_FLASH_INSTANCE *Instance
++  );
++
++/**
++  Initialize the FV Header and Variable Store Header
++  to support variable operations.
++
++  @param[in]  Instance      Location to Initialize the headers
++
++  @retval     EFI_SUCCESS   Fv init is done
++
++**/
++EFI_STATUS
++InitializeFvAndVariableStoreHeaders (
++  IN NOR_FLASH_INSTANCE *Instance
++  );
++
++/**
++ Retrieves the attributes and current settings of the block.
++
++ @param[in]   This         Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[out]  Attributes   Pointer to EFI_FVB_ATTRIBUTES_2 in which the attributes and
++                           current settings are returned.
++                           Type EFI_FVB_ATTRIBUTES_2 is defined in
++                           EFI_FIRMWARE_VOLUME_HEADER.
++
++ @retval      EFI_SUCCESS  The firmware volume attributes were returned.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbGetAttributes(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  OUT       EFI_FVB_ATTRIBUTES_2                    *Attributes
++  );
++
++/**
++ Sets configurable firmware volume attributes and returns the
++ new settings of the firmware volume.
++
++
++ @param[in]         This                     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in, out]    Attributes               On input, Attributes is a pointer to
++                                             EFI_FVB_ATTRIBUTES_2 that contains the desired
++                                             firmware volume settings.
++                                             On successful return, it contains the new
++                                             settings of the firmware volume.
++
++ @retval            EFI_UNSUPPORTED          The firmware volume attributes are not supported.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbSetAttributes(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  IN OUT    EFI_FVB_ATTRIBUTES_2                    *Attributes
++  );
++
++/**
++ Retrieves the base address of a memory-mapped firmware volume.
++ This function should be called only for memory-mapped firmware volumes.
++
++ @param[in]     This               EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[out]    Address            Pointer to a caller-allocated
++                                   EFI_PHYSICAL_ADDRESS that, on successful
++                                   return from GetPhysicalAddress(), contains the
++                                   base address of the firmware volume.
++
++ @retval        EFI_SUCCESS        The firmware volume base address was returned.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbGetPhysicalAddress(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  OUT       EFI_PHYSICAL_ADDRESS                    *Address
++  );
++
++/**
++ Retrieves the size of the requested block.
++ It also returns the number of additional blocks with the identical size.
++ The GetBlockSize() function is used to retrieve the block map
++ (see EFI_FIRMWARE_VOLUME_HEADER).
++
++
++ @param[in]     This                     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in]     Lba                      Indicates the block whose size to return
++
++ @param[out]    BlockSize                Pointer to a caller-allocated UINTN in which
++                                         the size of the block is returned.
++
++ @param[out]    NumberOfBlocks           Pointer to a caller-allocated UINTN in
++                                         which the number of consecutive blocks,
++                                         starting with Lba, is returned. All
++                                         blocks in this range have a size of
++                                         BlockSize.
++
++ @retval        EFI_SUCCESS              The firmware volume base address was returned.
++
++ @retval        EFI_INVALID_PARAMETER    The requested LBA is out of range.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbGetBlockSize(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  IN        EFI_LBA                                 Lba,
++  OUT       UINTN                                   *BlockSize,
++  OUT       UINTN                                   *NumberOfBlocks
++  );
++
++/**
++ Reads the specified number of bytes into a buffer from the specified block.
++
++ The Read() function reads the requested number of bytes from the
++ requested block and stores them in the provided buffer.
++
++ @param[in]       This                 EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in]       Lba                  The starting logical block index from which to read
++
++ @param[in]       Offset               Offset into the block at which to begin reading.
++
++ @param[in, out]  NumBytes             Pointer to a UINTN.
++                                       At entry, *NumBytes contains the total size of the
++                                       buffer. *NumBytes should have a non zero value.
++                                       At exit, *NumBytes contains the total number of
++                                       bytes read.
++
++ @param[in out]   Buffer               Pointer to a caller-allocated buffer that will be
++                                       used to hold the data that is read.
++
++ @retval          EFI_SUCCESS          The firmware volume was read successfully, and
++                                       contents are in Buffer.
++
++ @retval          EFI_BAD_BUFFER_SIZE  Read attempted across an LBA boundary.
++
++ @retval          EFI_DEVICE_ERROR     The block device is not functioning correctly and
++                                       could not be read.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbRead(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  IN        EFI_LBA                                 Lba,
++  IN        UINTN                                   Offset,
++  IN OUT    UINTN                                   *NumBytes,
++  IN OUT    UINT8                                   *Buffer
++  );
++
++/**
++ Writes the specified number of bytes from the input buffer to the block.
++
++ @param[in]        This                 EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in]        Lba                  The starting logical block index to write to.
++
++ @param[in]        Offset               Offset into the block at which to begin writing.
++
++ @param[in, out]   NumBytes             The pointer to a UINTN.
++                                        At entry, *NumBytes contains the total size of the
++                                        buffer.
++                                        At exit, *NumBytes contains the total number of
++                                        bytes actually written.
++
++ @param[in]        Buffer               The pointer to a caller-allocated buffer that
++                                        contains the source for the write.
++
++ @retval           EFI_SUCCESS          The firmware volume was written successfully.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbWrite(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  IN        EFI_LBA                                 Lba,
++  IN        UINTN                                   Offset,
++  IN OUT    UINTN                                   *NumBytes,
++  IN        UINT8                                   *Buffer
++  );
++
++/**
++ Erases and initialises a firmware volume block.
++
++ @param[in]   This                     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL
++
++ @param[in]   ...                      The variable argument list is a list of tuples.
++                                       Each tuple describes a range of LBAs to erase
++                                       and consists of the following:
++                                       - An EFI_LBA that indicates the starting LBA
++                                       - A UINTN that indicates the number of blocks
++                                       to erase.
++
++                                       The list is terminated with an
++                                       EFI_LBA_LIST_TERMINATOR.
++
++ @retval      EFI_SUCCESS              The erase request successfully completed.
++
++ @retval      EFI_ACCESS_DENIED        The firmware volume is in the WriteDisabled
++                                       state.
++
++ @retval      EFI_DEVICE_ERROR         The block device is not functioning correctly
++                                       and could not be written.
++                                       The firmware device may have been partially
++                                       erased.
++
++ @retval      EFI_INVALID_PARAMETER    One or more of the LBAs listed in the variable
++                                       argument list do not exist in the firmware
++                                       volume.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbEraseBlocks(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL     *This,
++  ...
++  );
++
++/**
++  This function unlock and erase an entire NOR Flash block.
++
++  @param[in]     Instance       NOR flash Instance of variable store region.
++  @param[in]     BlockAddress   Block address within the variable store region.
++
++  @retval        EFI_SUCCESS    The erase and unlock successfully completed.
++**/
++EFI_STATUS
++NorFlashUnlockAndEraseSingleBlock (
++  IN NOR_FLASH_INSTANCE     *Instance,
++  IN UINTN                  BlockAddress
++  );
++
++/**
++  Write a full or portion of a block.
++
++  @param[in]        Instance     NOR flash Instance of variable store region.
++  @param[in]        Lba          The starting logical block index to write to.
++  @param[in]        Offset       Offset into the block at which to begin writing.
++  @param[in,out]    NumBytes     The total size of the buffer.
++  @param[in]        Buffer       The pointer to a caller-allocated buffer that
++                                 contains the source for the write.
++
++  @retval           EFI_SUCCESS  The write is completed.
++**/
++EFI_STATUS
++NorFlashWriteSingleBlock (
++  IN        NOR_FLASH_INSTANCE   *Instance,
++  IN        EFI_LBA               Lba,
++  IN        UINTN                 Offset,
++  IN OUT    UINTN                *NumBytes,
++  IN        UINT8                *Buffer
++  );
++
++/**
++  Write a full  block.
++
++  @param[in]    Instance             NOR flash Instance of variable store region.
++  @param[in]    Lba                  The starting logical block index to write to.
++  @param[in]    BufferSizeInBytes    The number of bytes to write.
++  @param[in]    Buffer               The pointer to a caller-allocated buffer that
++                                     contains the source for the write.
++
++  @retval       EFI_SUCCESS          The write is completed.
++**/
++EFI_STATUS
++NorFlashWriteBlocks (
++  IN  NOR_FLASH_INSTANCE *Instance,
++  IN  EFI_LBA            Lba,
++  IN  UINTN              BufferSizeInBytes,
++  IN  VOID               *Buffer
++  );
++
++/**
++  Read a full  block.
++
++  @param[in]     Instance           NOR flash Instance of variable store region.
++  @param[in]     Lba                The starting logical block index to read from.
++  @param[in]     BufferSizeInBytes  The number of bytes to read.
++  @param[out]    Buffer             The pointer to a caller-allocated buffer that
++                                    should be copied with read data.
++
++  @retval        EFI_SUCCESS        The read is completed.
++**/
++EFI_STATUS
++NorFlashReadBlocks (
++  IN NOR_FLASH_INSTANCE   *Instance,
++  IN EFI_LBA              Lba,
++  IN UINTN                BufferSizeInBytes,
++  OUT VOID                *Buffer
++  );
++
++/**
++  Read from nor flash.
++
++  @param[in]     Instance           NOR flash Instance of variable store region.
++  @param[in]     Lba                The starting logical block index to read from.
++  @param[in]     Offset             Offset into the block at which to begin reading.
++  @param[in]     BufferSizeInBytes  The number of bytes to read.
++  @param[out]    Buffer             The pointer to a caller-allocated buffer that
++                                    should copied with read data.
++
++  @retval        EFI_SUCCESS        The read is completed.
++**/
++EFI_STATUS
++NorFlashRead (
++  IN NOR_FLASH_INSTANCE   *Instance,
++  IN EFI_LBA              Lba,
++  IN UINTN                Offset,
++  IN UINTN                BufferSizeInBytes,
++  OUT VOID                *Buffer
++  );
++
++/**
++  Read JEDEC ID of NOR flash device.
++
++  @param[in]     Instance     NOR flash Instance of variable store region.
++  @param[out]    JedecId      JEDEC ID of NOR flash device.
++
++  @retval        EFI_SUCCESS  The write is completed.
++**/
++EFI_STATUS
++NorFlashReadID (
++  IN  NOR_FLASH_INSTANCE  *Instance,
++  OUT UINT8               JedecId[3]
++  );
++
++#define SPINOR_OP_WREN                0x06  // Write enable
++#define SPINOR_OP_BE_4K               0x20  // Erase 4KiB block
++#define SPINOR_OP_RDID                0x9f  // Read JEDEC ID
++
++#endif /* NOR_FLASH_DXE_H_ */
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlashFvb.c b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlashFvb.c
+new file mode 100644
+index 00000000..edd84c07
+--- /dev/null
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlashFvb.c
+@@ -0,0 +1,573 @@
++/** @file
++
++  Copyright (c) 2023, ARM Limited. All rights reserved.<BR>
++
++  SPDX-License-Identifier: BSD-2-Clause-Patent
++
++**/
++
++#include <Guid/VariableFormat.h>
++#include <Guid/SystemNvDataGuid.h>
++
++#include <Library/BaseLib.h>
++#include <Library/BaseMemoryLib.h>
++#include <Library/MemoryAllocationLib.h>
++#include <Library/PcdLib.h>
++#include <Library/UefiBootServicesTableLib.h>
++#include <Library/UefiLib.h>
++
++#include <PiDxe.h>
++
++#include "NorFlash.h"
++
++UINTN     mFlashNvStorageVariableBase;
++
++/**
++  Initialize the FV Header and Variable Store Header
++  to support variable operations.
++
++  @param[in]  Instance      Location to initialise the headers.
++
++  @retval     EFI_SUCCESS   Fv init is done.
++
++**/
++EFI_STATUS
++InitializeFvAndVariableStoreHeaders (
++  IN NOR_FLASH_INSTANCE *Instance
++  )
++{
++  EFI_STATUS                          Status;
++  VOID*                               Headers;
++  UINTN                               HeadersLength;
++  EFI_FIRMWARE_VOLUME_HEADER          *FirmwareVolumeHeader;
++  VARIABLE_STORE_HEADER               *VariableStoreHeader;
++
++  if (!Instance->Initialized && Instance->Initialize) {
++    Instance->Initialize (Instance);
++  }
++
++  HeadersLength = sizeof (EFI_FIRMWARE_VOLUME_HEADER) +
++                  sizeof (EFI_FV_BLOCK_MAP_ENTRY) +
++                  sizeof (VARIABLE_STORE_HEADER);
++  Headers = AllocateZeroPool (HeadersLength);
++
++  FirmwareVolumeHeader = (EFI_FIRMWARE_VOLUME_HEADER*)Headers;
++  CopyGuid (&FirmwareVolumeHeader->FileSystemGuid, &gEfiSystemNvDataFvGuid);
++  FirmwareVolumeHeader->FvLength =
++      PcdGet32 (PcdFlashNvStorageVariableSize) +
++      PcdGet32 (PcdFlashNvStorageFtwWorkingSize) +
++      PcdGet32 (PcdFlashNvStorageFtwSpareSize);
++  FirmwareVolumeHeader->Signature = EFI_FVH_SIGNATURE;
++  FirmwareVolumeHeader->Attributes = EFI_FVB2_READ_ENABLED_CAP |
++                                     EFI_FVB2_READ_STATUS |
++                                     EFI_FVB2_STICKY_WRITE |
++                                     EFI_FVB2_MEMORY_MAPPED |
++                                     EFI_FVB2_ERASE_POLARITY |
++                                     EFI_FVB2_WRITE_STATUS |
++                                     EFI_FVB2_WRITE_ENABLED_CAP;
++
++  FirmwareVolumeHeader->HeaderLength = sizeof (EFI_FIRMWARE_VOLUME_HEADER) +
++                                       sizeof (EFI_FV_BLOCK_MAP_ENTRY);
++  FirmwareVolumeHeader->Revision = EFI_FVH_REVISION;
++  FirmwareVolumeHeader->BlockMap[0].NumBlocks = Instance->LastBlock + 1;
++  FirmwareVolumeHeader->BlockMap[0].Length    = Instance->BlockSize;
++  FirmwareVolumeHeader->BlockMap[1].NumBlocks = 0;
++  FirmwareVolumeHeader->BlockMap[1].Length    = 0;
++  FirmwareVolumeHeader->Checksum = CalculateCheckSum16 (
++                                     (UINT16*)FirmwareVolumeHeader,
++                                     FirmwareVolumeHeader->HeaderLength);
++
++  VariableStoreHeader = (VOID *)((UINTN)Headers +
++                                 FirmwareVolumeHeader->HeaderLength);
++  CopyGuid (&VariableStoreHeader->Signature, &gEfiAuthenticatedVariableGuid);
++  VariableStoreHeader->Size = PcdGet32 (PcdFlashNvStorageVariableSize) -
++                              FirmwareVolumeHeader->HeaderLength;
++  VariableStoreHeader->Format = VARIABLE_STORE_FORMATTED;
++  VariableStoreHeader->State = VARIABLE_STORE_HEALTHY;
++
++  // Install the combined super-header in the NorFlash
++  Status = FvbWrite (&Instance->FvbProtocol, 0, 0, &HeadersLength, Headers);
++
++  FreePool (Headers);
++  return Status;
++}
++
++/**
++  Check the integrity of firmware volume header.
++
++  @param[in]  Instance        Instance of Nor flash variable region.
++
++  @retval     EFI_SUCCESS     The firmware volume is consistent.
++  @retval     EFI_NOT_FOUND   The firmware volume has been corrupted.
++
++**/
++EFI_STATUS
++ValidateFvHeader (
++  IN  NOR_FLASH_INSTANCE *Instance
++  )
++{
++  EFI_FIRMWARE_VOLUME_HEADER  *FwVolHeader;
++  VARIABLE_STORE_HEADER       *VariableStoreHeader;
++  UINTN                       VariableStoreLength;
++  UINTN                       FvLength;
++
++  FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER*)Instance->RegionBaseAddress;
++
++  FvLength = PcdGet32 (PcdFlashNvStorageVariableSize) +
++             PcdGet32 (PcdFlashNvStorageFtwWorkingSize) +
++             PcdGet32 (PcdFlashNvStorageFtwSpareSize);
++
++  if ((FwVolHeader->Revision  != EFI_FVH_REVISION)
++      || (FwVolHeader->Signature != EFI_FVH_SIGNATURE)
++      || (FwVolHeader->FvLength  != FvLength)
++      )
++  {
++    DEBUG ((DEBUG_ERROR, "%a: No Firmware Volume header present\n",
++      __FUNCTION__));
++    return EFI_NOT_FOUND;
++  }
++
++  // Check the Firmware Volume Guid
++  if (!CompareGuid (&FwVolHeader->FileSystemGuid, &gEfiSystemNvDataFvGuid)) {
++    DEBUG ((DEBUG_ERROR, "%a: Firmware Volume Guid non-compatible\n",
++      __FUNCTION__));
++    return EFI_NOT_FOUND;
++  }
++
++  VariableStoreHeader = (VOID *)((UINTN)FwVolHeader +
++                                 FwVolHeader->HeaderLength);
++
++  // Check the Variable Store Guid
++  if (!CompareGuid (&VariableStoreHeader->Signature, &gEfiVariableGuid) &&
++      !CompareGuid (&VariableStoreHeader->Signature,
++        &gEfiAuthenticatedVariableGuid)) {
++    DEBUG ((DEBUG_ERROR, "%a: Variable Store Guid non-compatible\n",
++      __FUNCTION__));
++    return EFI_NOT_FOUND;
++  }
++
++  VariableStoreLength = PcdGet32 (PcdFlashNvStorageVariableSize) -
++                        FwVolHeader->HeaderLength;
++  if (VariableStoreHeader->Size != VariableStoreLength) {
++    DEBUG ((DEBUG_ERROR, "%a: Variable Store Length does not match\n",
++      __FUNCTION__));
++    return EFI_NOT_FOUND;
++  }
++  return EFI_SUCCESS;
++}
++
++/**
++ Retrieves the attributes and current settings of the block.
++
++ @param[in]   This         Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[out]  Attributes   Pointer to EFI_FVB_ATTRIBUTES_2 in which the attributes and
++                           current settings are returned.
++                           Type EFI_FVB_ATTRIBUTES_2 is defined in
++                           EFI_FIRMWARE_VOLUME_HEADER.
++
++ @retval      EFI_SUCCESS  The firmware volume attributes were returned.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbGetAttributes(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL    *This,
++  OUT       EFI_FVB_ATTRIBUTES_2                   *Attributes
++  )
++{
++  EFI_FVB_ATTRIBUTES_2  FlashFvbAttributes;
++
++  FlashFvbAttributes = EFI_FVB2_READ_ENABLED_CAP | EFI_FVB2_READ_STATUS |
++                       EFI_FVB2_WRITE_ENABLED_CAP | EFI_FVB2_WRITE_STATUS |
++                       EFI_FVB2_STICKY_WRITE | EFI_FVB2_MEMORY_MAPPED |
++                       EFI_FVB2_ERASE_POLARITY;
++
++  *Attributes = FlashFvbAttributes;
++
++  DEBUG ((DEBUG_INFO, "FvbGetAttributes(0x%X)\n", *Attributes));
++
++  return EFI_SUCCESS;
++}
++
++/**
++ Sets configurable firmware volume attributes and returns the
++ new settings of the firmware volume.
++
++
++ @param[in]         This                     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in, out]    Attributes               On input, Attributes is a pointer to
++                                             EFI_FVB_ATTRIBUTES_2 that contains the desired
++                                             firmware volume settings.
++                                             On successful return, it contains the new
++                                             settings of the firmware volume.
++
++ @retval            EFI_UNSUPPORTED          The firmware volume attributes are not supported.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbSetAttributes(
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL  *This,
++  IN OUT    EFI_FVB_ATTRIBUTES_2                 *Attributes
++  )
++{
++  DEBUG ((DEBUG_INFO, "FvbSetAttributes(0x%X) is not supported\n",
++    *Attributes));
++  return EFI_UNSUPPORTED;
++}
++
++/**
++ Retrieves the base address of a memory-mapped firmware volume.
++ This function should be called only for memory-mapped firmware volumes.
++
++ @param[in]     This               EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[out]    Address            Pointer to a caller-allocated
++                                   EFI_PHYSICAL_ADDRESS that, on successful
++                                   return from GetPhysicalAddress(), contains the
++                                   base address of the firmware volume.
++
++ @retval        EFI_SUCCESS        The firmware volume base address was returned.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbGetPhysicalAddress (
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL  *This,
++  OUT       EFI_PHYSICAL_ADDRESS                 *Address
++  )
++{
++  NOR_FLASH_INSTANCE *Instance;
++
++  Instance = INSTANCE_FROM_FVB_THIS (This);
++
++  DEBUG ((DEBUG_INFO, "FvbGetPhysicalAddress(BaseAddress=0x%08x)\n",
++    Instance->RegionBaseAddress));
++
++  ASSERT(Address != NULL);
++
++  *Address = Instance->RegionBaseAddress;
++  return EFI_SUCCESS;
++}
++
++/**
++ Retrieves the size of the requested block.
++ It also returns the number of additional blocks with the identical size.
++ The GetBlockSize() function is used to retrieve the block map
++ (see EFI_FIRMWARE_VOLUME_HEADER).
++
++
++ @param[in]     This                     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in]     Lba                      Indicates the block whose size to return
++
++ @param[out]    BlockSize                Pointer to a caller-allocated UINTN in which
++                                         the size of the block is returned.
++
++ @param[out]    NumberOfBlocks           Pointer to a caller-allocated UINTN in
++                                         which the number of consecutive blocks,
++                                         starting with Lba, is returned. All
++                                         blocks in this range have a size of
++                                         BlockSize.
++
++ @retval        EFI_SUCCESS              The firmware volume base address was returned.
++
++ @retval        EFI_INVALID_PARAMETER    The requested LBA is out of range.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbGetBlockSize (
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL  *This,
++  IN        EFI_LBA                              Lba,
++  OUT       UINTN                                *BlockSize,
++  OUT       UINTN                                *NumberOfBlocks
++  )
++{
++  EFI_STATUS Status;
++  NOR_FLASH_INSTANCE *Instance;
++
++  Instance = INSTANCE_FROM_FVB_THIS (This);
++
++  DEBUG ((DEBUG_INFO,
++    "FvbGetBlockSize(Lba=%ld, BlockSize=0x%x, LastBlock=%ld)\n", Lba,
++    Instance->BlockSize, Instance->LastBlock));
++
++  if (Lba > Instance->LastBlock) {
++    DEBUG ((DEBUG_ERROR,
++      "FvbGetBlockSize: ERROR - Parameter LBA %ld is beyond the last Lba (%ld).\n",
++      Lba, Instance->LastBlock));
++    Status = EFI_INVALID_PARAMETER;
++  } else {
++    // This is easy because in this platform each NorFlash device has equal sized blocks.
++    *BlockSize = (UINTN) Instance->BlockSize;
++    *NumberOfBlocks = (UINTN) (Instance->LastBlock - Lba + 1);
++
++    DEBUG ((DEBUG_INFO,
++      "FvbGetBlockSize: *BlockSize=0x%x, *NumberOfBlocks=0x%x.\n", *BlockSize,
++      *NumberOfBlocks));
++
++    Status = EFI_SUCCESS;
++  }
++
++  return Status;
++}
++
++/**
++ Reads the specified number of bytes into a buffer from the specified block.
++
++ The Read() function reads the requested number of bytes from the
++ requested block and stores them in the provided buffer.
++
++ @param[in]       This                 EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in]       Lba                  The starting logical block index from which to read
++
++ @param[in]       Offset               Offset into the block at which to begin reading.
++
++ @param[in, out]  NumBytes             Pointer to a UINTN.
++                                       At entry, *NumBytes contains the total size of the
++                                       buffer. *NumBytes should have a non zero value.
++                                       At exit, *NumBytes contains the total number of
++                                       bytes read.
++
++ @param[in, out]  Buffer               Pointer to a caller-allocated buffer that will be
++                                       used to hold the data that is read.
++
++ @retval          EFI_SUCCESS          The firmware volume was read successfully, and
++                                       contents are in Buffer.
++
++ @retval          EFI_BAD_BUFFER_SIZE  Read attempted across an LBA boundary.
++
++ @retval          EFI_DEVICE_ERROR     The block device is not functioning correctly and
++                                       could not be read.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbRead (
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL   *This,
++  IN        EFI_LBA                               Lba,
++  IN        UINTN                                 Offset,
++  IN OUT    UINTN                                 *NumBytes,
++  IN OUT    UINT8                                 *Buffer
++  )
++{
++  EFI_STATUS    Status;
++  UINTN         BlockSize;
++  NOR_FLASH_INSTANCE *Instance;
++
++  Instance = INSTANCE_FROM_FVB_THIS (This);
++
++  DEBUG ((DEBUG_INFO,
++    "FvbRead(Parameters: Lba=%ld, Offset=0x%x, *NumBytes=0x%x, Buffer @ 0x%08x)\n",
++    Instance->StartLba + Lba, Offset, *NumBytes, Buffer));
++
++  if (!Instance->Initialized && Instance->Initialize) {
++    Instance->Initialize(Instance);
++  }
++
++  BlockSize = Instance->BlockSize;
++
++  DEBUG ((DEBUG_INFO,
++    "FvbRead: Check if (Offset=0x%x + NumBytes=0x%x) <= BlockSize=0x%x\n",
++    Offset, *NumBytes, BlockSize ));
++
++  // The read must not span block boundaries.
++  // We need to check each variable individually because adding two large
++  // values together overflows.
++  if (Offset               >= BlockSize ||
++      *NumBytes            >  BlockSize ||
++      (Offset + *NumBytes) >  BlockSize) {
++    DEBUG ((DEBUG_ERROR,
++      "FvbRead: ERROR - EFI_BAD_BUFFER_SIZE: (Offset=0x%x + NumBytes=0x%x) > BlockSize=0x%x\n",
++      Offset, *NumBytes, BlockSize ));
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  // We must have some bytes to read
++  if (*NumBytes == 0) {
++    return EFI_BAD_BUFFER_SIZE;
++  }
++
++  // Decide if we are doing full block reads or not.
++  if (*NumBytes % BlockSize != 0) {
++    Status = NorFlashRead (Instance, Instance->StartLba + Lba, Offset,
++                   *NumBytes, Buffer);
++  } else {
++    // Read NOR Flash data into shadow buffer
++    Status = NorFlashReadBlocks (Instance, Instance->StartLba + Lba,
++                   BlockSize, Buffer);
++  }
++  if (EFI_ERROR (Status)) {
++    // Return one of the pre-approved error statuses
++    return EFI_DEVICE_ERROR;
++  }
++  return EFI_SUCCESS;
++}
++
++/**
++ Writes the specified number of bytes from the input buffer to the block.
++
++ @param[in]        This                 EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
++
++ @param[in]        Lba                  The starting logical block index to write to.
++
++ @param[in]        Offset               Offset into the block at which to begin writing.
++
++ @param[in, out]   NumBytes             The pointer to a UINTN.
++                                        At entry, *NumBytes contains the total size of the
++                                        buffer.
++                                        At exit, *NumBytes contains the total number of
++                                        bytes actually written.
++
++ @param[in]        Buffer               The pointer to a caller-allocated buffer that
++                                        contains the source for the write.
++
++ @retval           EFI_SUCCESS          The firmware volume was written successfully.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbWrite (
++  IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL   *This,
++  IN        EFI_LBA                               Lba,
++  IN        UINTN                                 Offset,
++  IN OUT    UINTN                                 *NumBytes,
++  IN        UINT8                                 *Buffer
++  )
++{
++  NOR_FLASH_INSTANCE *Instance;
++
++  Instance = INSTANCE_FROM_FVB_THIS (This);
++
++  return NorFlashWriteSingleBlock (Instance, Instance->StartLba + Lba, Offset,
++           NumBytes, Buffer);
++}
++
++/**
++ Erases and initialises a firmware volume block.
++
++ @param[in]   This                     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL
++
++ @param[in]   ...                      The variable argument list is a list of tuples.
++                                       Each tuple describes a range of LBAs to erase
++                                       and consists of the following:
++                                       - An EFI_LBA that indicates the starting LBA
++                                       - A UINTN that indicates the number of blocks
++                                       to erase.
++
++                                       The list is terminated with an
++                                       EFI_LBA_LIST_TERMINATOR.
++
++ @retval      EFI_SUCCESS              The erase request successfully completed.
++
++ @retval      EFI_ACCESS_DENIED        The firmware volume is in the WriteDisabled
++                                       state.
++
++ @retval      EFI_DEVICE_ERROR         The block device is not functioning correctly
++                                       and could not be written.
++                                       The firmware device may have been partially
++                                       erased.
++
++ @retval      EFI_INVALID_PARAMETER   One or more of the LBAs listed in the variable
++                                      argument list do not exist in the firmware
++                                      volume.
++
++**/
++EFI_STATUS
++EFIAPI
++FvbEraseBlocks (
++  IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
++  ...
++  )
++{
++  EFI_STATUS  Status;
++  VA_LIST     Args;
++  UINTN       BlockAddress; // Physical address of Lba to erase
++  EFI_LBA     StartingLba;  // Lba from which we start erasing
++  UINTN       NumOfLba;     // Number of Lba blocks to erase
++  NOR_FLASH_INSTANCE *Instance;
++
++  Instance = INSTANCE_FROM_FVB_THIS (This);
++
++  DEBUG ((DEBUG_INFO, "FvbEraseBlocks()\n"));
++
++  Status = EFI_SUCCESS;
++
++  // Before erasing, check the entire list of parameters to ensure
++  // all specified blocks are valid
++
++  VA_START (Args, This);
++  do {
++    // Get the Lba from which we start erasing
++    StartingLba = VA_ARG (Args, EFI_LBA);
++
++    // Have we reached the end of the list?
++    if (StartingLba == EFI_LBA_LIST_TERMINATOR) {
++      break;
++    }
++
++    // How many Lba blocks are we requested to erase?
++    NumOfLba = VA_ARG (Args, UINT32);
++
++    // All blocks must be within range
++    DEBUG ((DEBUG_INFO,
++      "FvbEraseBlocks: Check if: ( StartingLba=%ld + NumOfLba=%d - 1 ) > LastBlock=%ld.\n",
++      Instance->StartLba + StartingLba, NumOfLba, Instance->LastBlock));
++    if (NumOfLba == 0 ||
++        (Instance->StartLba + StartingLba + NumOfLba - 1) >
++        Instance->LastBlock) {
++      VA_END (Args);
++      DEBUG ((DEBUG_ERROR,
++        "FvbEraseBlocks: ERROR - Lba range goes past the last Lba.\n"));
++      return EFI_INVALID_PARAMETER;
++    }
++  } while (TRUE);
++  VA_END (Args);
++
++  VA_START (Args, This);
++  do {
++    // Get the Lba from which we start erasing
++    StartingLba = VA_ARG (Args, EFI_LBA);
++
++    // Have we reached the end of the list?
++    if (StartingLba == EFI_LBA_LIST_TERMINATOR) {
++      // Exit the while loop
++      break;
++    }
++
++    // How many Lba blocks are we requested to erase?
++    NumOfLba = VA_ARG (Args, UINT32);
++
++    // Go through each one and erase it
++    while (NumOfLba > 0) {
++
++      // Get the physical address of Lba to erase
++      BlockAddress = GET_NOR_BLOCK_ADDRESS (
++                       Instance->RegionBaseAddress,
++                       Instance->StartLba + StartingLba,
++                       Instance->BlockSize
++                       );
++
++      // Erase it
++      DEBUG ((DEBUG_INFO, "FvbEraseBlocks: Erasing Lba=%ld @ 0x%08x.\n",
++        Instance->StartLba + StartingLba, BlockAddress));
++      Status = NorFlashUnlockAndEraseSingleBlock (Instance, BlockAddress);
++      if (EFI_ERROR(Status)) {
++        VA_END (Args);
++        return EFI_DEVICE_ERROR;
++      }
++
++      // Move to the next Lba
++      StartingLba++;
++      NumOfLba--;
++    }
++  } while (TRUE);
++  VA_END (Args);
++
++  return Status;
++
++}
+diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.dec b/Platform/ARM/N1Sdp/N1SdpPlatform.dec
+index 16937197..986a078f 100644
+--- a/Platform/ARM/N1Sdp/N1SdpPlatform.dec
++++ b/Platform/ARM/N1Sdp/N1SdpPlatform.dec
+@@ -1,7 +1,7 @@
+ ## @file

+ #  Describes the N1Sdp configuration.

+ #

+-#  Copyright (c) 2021, ARM Limited. All rights reserved.<BR>

++#  Copyright (c) 2021-2022, ARM Limited. All rights reserved.<BR>

+ #

+ #  SPDX-License-Identifier: BSD-2-Clause-Patent

+ ##

+@@ -89,3 +89,6 @@
+   # unmapped reserved region results in a DECERR response.

+   #

+   gArmN1SdpTokenSpaceGuid.PcdCsComponentSize|0x1000|UINT32|0x00000049

++

++  # Base address of Cadence QSPI controller configuration registers

++  gArmN1SdpTokenSpaceGuid.PcdCadenceQspiDxeRegBaseAddress|0x1C0C0000|UINT32|0x0000004A

diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0007-Platform-ARM-N1Sdp-Persistent-storage-for-N1Sdp.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0007-Platform-ARM-N1Sdp-Persistent-storage-for-N1Sdp.patch
new file mode 100644
index 0000000..197a6ec
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0007-Platform-ARM-N1Sdp-Persistent-storage-for-N1Sdp.patch
@@ -0,0 +1,88 @@
+From e79fd5cfa3190eb27a9637facc9891cab55b5e09 Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Mon, 2 May 2022 19:24:47 +0530
+Subject: [PATCH] Platform/ARM/N1Sdp: Persistent storage for N1Sdp
+
+Enable persistent storage on QSPI flash device.
+
+Upstream-Status: Pending
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: I403113bb885d1d411d433a7f266715d007509a5e
+---
+ Platform/ARM/N1Sdp/N1SdpPlatform.dsc | 18 +++++++++++++-----
+ Platform/ARM/N1Sdp/N1SdpPlatform.fdf |  4 +++-
+ 2 files changed, 16 insertions(+), 6 deletions(-)
+
+diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
+index 676ab677..80bc875a 100644
+--- a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
++++ b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
+@@ -44,6 +44,9 @@
+   # file explorer library support

+   FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf

+ 

++  # NOR flash support

++  NorFlashInfoLib|EmbeddedPkg/Library/NorFlashInfoLib/NorFlashInfoLib.inf

++

+ [LibraryClasses.common.SEC]

+   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf

+   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf

+@@ -161,11 +164,9 @@
+   # ACPI Table Version

+   gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20

+ 

+-  # Runtime Variable storage

+-  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0

+-  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE

+-  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000

+-  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800

++  # NOR flash support

++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x18F00000

++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00020000

+ 

+ ################################################################################

+ #

+@@ -197,6 +198,12 @@
+       gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F

+   }

+ 

++  # NOR flash support

++  Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf {

++      <LibraryClasses>

++      NorFlashPlatformLib|Silicon/ARM/NeoverseN1Soc/Library/NorFlashLib/NorFlashLib.inf

++  }

++

+   # Architectural Protocols

+   ArmPkg/Drivers/CpuDxe/CpuDxe.inf

+   ArmPkg/Drivers/ArmGic/ArmGicDxe.inf

+@@ -217,6 +224,7 @@
+   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {

+     <LibraryClasses>

+       NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf

++      NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf

+       BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

+   }

+ 

+diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.fdf b/Platform/ARM/N1Sdp/N1SdpPlatform.fdf
+index e5e24ea5..4329f892 100644
+--- a/Platform/ARM/N1Sdp/N1SdpPlatform.fdf
++++ b/Platform/ARM/N1Sdp/N1SdpPlatform.fdf
+@@ -1,7 +1,7 @@
+ ## @file

+ #  FDF file of N1Sdp

+ #

+-#  Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>

++#  Copyright (c) 2018 - 2023, ARM Limited. All rights reserved.<BR>

+ #

+ #  SPDX-License-Identifier: BSD-2-Clause-Patent

+ ##

+@@ -140,6 +140,8 @@ READ_LOCK_STATUS   = TRUE
+   INF ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf

+   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

+ 

++  INF Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf

++

+   INF Platform/ARM/Drivers/BootMonFs/BootMonFs.inf

+   INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf

+ 

diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0008-Platform-ARM-N1Sdp-Enable-FaultTolerantWrite-Dxe-dri.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0008-Platform-ARM-N1Sdp-Enable-FaultTolerantWrite-Dxe-dri.patch
new file mode 100644
index 0000000..3951b48
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0008-Platform-ARM-N1Sdp-Enable-FaultTolerantWrite-Dxe-dri.patch
@@ -0,0 +1,50 @@
+From 5e8fbb3ba0f634f7fc873c6577269845f9e243db Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Mon, 2 May 2022 19:28:19 +0530
+Subject: [PATCH] Platform/ARM/N1Sdp: Enable FaultTolerantWrite Dxe driver for
+ N1Sdp
+
+Upstream-Status: Pending
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: If448ad95b2e72cef31ce1e1e5ab2504d607f0545
+---
+ Platform/ARM/N1Sdp/N1SdpPlatform.dsc | 5 +++++
+ Platform/ARM/N1Sdp/N1SdpPlatform.fdf | 1 +
+ 2 files changed, 6 insertions(+)
+
+diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
+index 80bc875a..90a0d5b6 100644
+--- a/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
++++ b/Platform/ARM/N1Sdp/N1SdpPlatform.dsc
+@@ -165,6 +165,10 @@
+   gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20

+ 

+   # NOR flash support

++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x18F40000

++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00020000

++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x18F20000

++  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00020000

+   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x18F00000

+   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00020000

+ 

+@@ -227,6 +231,7 @@
+       NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf

+       BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

+   }

++  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf

+ 

+   # ACPI Support

+   MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf

+diff --git a/Platform/ARM/N1Sdp/N1SdpPlatform.fdf b/Platform/ARM/N1Sdp/N1SdpPlatform.fdf
+index 4329f892..17d370a3 100644
+--- a/Platform/ARM/N1Sdp/N1SdpPlatform.fdf
++++ b/Platform/ARM/N1Sdp/N1SdpPlatform.fdf
+@@ -90,6 +90,7 @@ READ_LOCK_STATUS   = TRUE
+   INF MdeModulePkg/Universal/Metronome/Metronome.inf

+   INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf

+   INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf

++  INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf

+   INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf

+   INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf

+   INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf

diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0009-Platform-ARM-N1Sdp-manually-poll-QSPI-status-bit-aft.patch b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0009-Platform-ARM-N1Sdp-manually-poll-QSPI-status-bit-aft.patch
new file mode 100644
index 0000000..8e14699
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/0009-Platform-ARM-N1Sdp-manually-poll-QSPI-status-bit-aft.patch
@@ -0,0 +1,197 @@
+From 6d274379f584a638c1f2b4b8a19014d4baef1d9f Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Thu, 11 Aug 2022 11:26:29 +0530
+Subject: [PATCH] Platform/ARM/N1Sdp: manually poll QSPI status bit after
+ erase/write
+
+This patch adds a function to poll Nor flash memory's status register
+bit (WIP bit) to wait for an erase/write operation to complete.
+The polling timeout is set to 1 second.
+
+Upstream-Status: Pending
+Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: Ie678b7586671964ae0f8506a0542d73cbddddfe4
+---
+ .../Drivers/CadenceQspiDxe/CadenceQspiDxe.inf |  1 +
+ .../Drivers/CadenceQspiDxe/CadenceQspiReg.h   |  6 +-
+ .../N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c   | 80 ++++++++++++++++++-
+ .../N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h   |  5 ++
+ 4 files changed, 88 insertions(+), 4 deletions(-)
+
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf
+index 4f20c3ba..7a39eb2d 100644
+--- a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiDxe.inf
+@@ -39,6 +39,7 @@
+   MemoryAllocationLib
+   NorFlashInfoLib
+   NorFlashPlatformLib
++  TimerLib
+   UefiBootServicesTableLib
+   UefiDriverEntryPoint
+   UefiLib
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h
+index fe3b327c..1971631d 100644
+--- a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/CadenceQspiReg.h
+@@ -16,13 +16,15 @@
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BIT_POS         19
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_BIT_POS    16
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_STATUS_BIT           0x02
+-#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_4B         0x03
+-#define CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_3B         0x02
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS       24
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_ENABLE          0x01
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_BYTE_3B         0x02
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_READEN_BIT_POS       23
+ #define CDNS_QSPI_FLASH_CMD_CTRL_REG_READBYTE_BIT_POS     20
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_DUMMY_8C             0x8
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_DUMMY_BIT_POS        7
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_NUM_DATA_BYTES(x) ((x - 1) << CDNS_QSPI_FLASH_CMD_CTRL_REG_READBYTE_BIT_POS)
++#define CDNS_QSPI_FLASH_CMD_CTRL_REG_NUM_ADDR_BYTES(x) ((x - 1) << CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_BIT_POS)
+ 
+ #define CDNS_QSPI_FLASH_CMD_READ_DATA_REG_OFFSET          0xA0
+ 
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c
+index 188c75e2..6832351a 100644
+--- a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.c
+@@ -10,6 +10,7 @@
+ #include <Library/MemoryAllocationLib.h>
+ #include <Library/NorFlashInfoLib.h>
+ #include <Library/PcdLib.h>
++#include <Library/TimerLib.h>
+ #include <Library/UefiBootServicesTableLib.h>
+ #include <Library/UefiLib.h>
+ 
+@@ -184,6 +185,74 @@ FreeInstance:
+   return Status;
+ }
+ 
++/**
++  Converts milliseconds into number of ticks of the performance counter.
++
++  @param[in] Milliseconds  Milliseconds to convert into ticks.
++
++  @retval Milliseconds expressed as number of ticks.
++
++**/
++STATIC
++UINT64
++MilliSecondsToTicks (
++  IN UINTN Milliseconds
++  )
++{
++  CONST UINT64  NanoSecondsPerTick = GetTimeInNanoSecond (1);
++
++  return (Milliseconds * 1000000) / NanoSecondsPerTick;
++}
++
++/**
++  Poll Status register for NOR flash erase/write completion.
++
++  @param[in]      Instance           NOR flash Instance.
++
++  @retval         EFI_SUCCESS        Request is executed successfully.
++  @retval         EFI_TIMEOUT        Operation timed out.
++  @retval         EFI_DEVICE_ERROR   Controller operartion failed.
++
++**/
++STATIC
++EFI_STATUS
++NorFlashPollStatusRegister (
++  IN NOR_FLASH_INSTANCE     *Instance
++  )
++{
++  BOOLEAN     SRegDone;
++  UINT32      val;
++
++  val = SPINOR_OP_RDSR << CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS |
++      CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_ENABLE << CDNS_QSPI_FLASH_CMD_CTRL_REG_READEN_BIT_POS |
++      CDNS_QSPI_FLASH_CMD_CTRL_REG_NUM_DATA_BYTES(1) |
++      CDNS_QSPI_FLASH_CMD_CTRL_REG_DUMMY_8C << CDNS_QSPI_FLASH_CMD_CTRL_REG_DUMMY_BIT_POS;
++
++  CONST UINT64  TickOut =
++    GetPerformanceCounter () + MilliSecondsToTicks (SPINOR_SR_WIP_POLL_TIMEOUT_MS);
++
++  do {
++    if (GetPerformanceCounter () > TickOut) {
++      DEBUG ((
++        DEBUG_ERROR,
++        "NorFlashPollStatusRegister: Timeout waiting for erase/write.\n"
++        ));
++      return EFI_TIMEOUT;
++    }
++
++    if (EFI_ERROR (CdnsQspiExecuteCommand (Instance, val))) {
++      return EFI_DEVICE_ERROR;
++    }
++
++    SRegDone =
++      (MmioRead8 (Instance->HostRegisterBaseAddress + CDNS_QSPI_FLASH_CMD_READ_DATA_REG_OFFSET)
++      & SPINOR_SR_WIP) == 0;
++
++  } while (!SRegDone);
++
++  return EFI_SUCCESS;
++}
++
+ /**
+   Check whether NOR flash opertions are Locked.
+ 
+@@ -305,12 +374,16 @@ NorFlashEraseSingleBlock (
+ 
+   DevConfigVal = SPINOR_OP_BE_4K << CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS |
+                  CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_ENABLE << CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BIT_POS |
+-                 CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_3B << CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_BIT_POS;
++                 CDNS_QSPI_FLASH_CMD_CTRL_REG_NUM_ADDR_BYTES(3);
+ 
+   if (EFI_ERROR (CdnsQspiExecuteCommand (Instance, DevConfigVal))) {
+     return EFI_DEVICE_ERROR;
+   }
+ 
++  if (EFI_ERROR (NorFlashPollStatusRegister (Instance))) {
++      return EFI_DEVICE_ERROR;
++  }
++
+   return EFI_SUCCESS;
+ }
+ 
+@@ -383,6 +456,9 @@ NorFlashWriteSingleWord (
+     return EFI_DEVICE_ERROR;
+   }
+   MmioWrite32 (WordAddress, WriteData);
++  if (EFI_ERROR (NorFlashPollStatusRegister (Instance))) {
++    return EFI_DEVICE_ERROR;
++  }
+   return EFI_SUCCESS;
+ }
+ 
+@@ -907,7 +983,7 @@ NorFlashReadID (
+ 
+   val = SPINOR_OP_RDID << CDNS_QSPI_FLASH_CMD_CTRL_REG_OPCODE_BIT_POS |
+         CDNS_QSPI_FLASH_CMD_CTRL_REG_READ_ENABLE << CDNS_QSPI_FLASH_CMD_CTRL_REG_READEN_BIT_POS |
+-        CDNS_QSPI_FLASH_CMD_CTRL_REG_ADDR_BYTE_3B << CDNS_QSPI_FLASH_CMD_CTRL_REG_READBYTE_BIT_POS;
++        CDNS_QSPI_FLASH_CMD_CTRL_REG_NUM_DATA_BYTES(3);
+ 
+   if (EFI_ERROR (CdnsQspiExecuteCommand (Instance, val))) {
+     return EFI_DEVICE_ERROR;
+diff --git a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h
+index e720937e..eb0afc60 100644
+--- a/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h
++++ b/Platform/ARM/N1Sdp/Drivers/CadenceQspiDxe/NorFlash.h
+@@ -477,8 +477,13 @@ NorFlashReadID (
+   OUT UINT8               JedecId[3]
+   );
+ 
++#define SPINOR_SR_WIP                 BIT0  // Write in progress
++
+ #define SPINOR_OP_WREN                0x06  // Write enable
+ #define SPINOR_OP_BE_4K               0x20  // Erase 4KiB block
+ #define SPINOR_OP_RDID                0x9f  // Read JEDEC ID
++#define SPINOR_OP_RDSR                0x05  // Read status register
++
++#define SPINOR_SR_WIP_POLL_TIMEOUT_MS  1000u // Status Register read timeout
+ 
+ #endif /* NOR_FLASH_DXE_H_ */
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
index 356be9e..67d9872 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
@@ -15,8 +15,8 @@
 index e0fa0aa6..c7a45387 100644
 --- a/core/arch/arm/kernel/spmc_sp_handler.c
 +++ b/core/arch/arm/kernel/spmc_sp_handler.c
-@@ -1004,6 +1004,12 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
- 			ffa_mem_reclaim(args, caller_sp);
+@@ -1132,6 +1132,12 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
+ 			handle_mem_perm_set(args, caller_sp);
  			sp_enter(args, caller_sp);
  			break;
 +		case 0xdeadbeef:
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend
index 9a21083..6a22d47 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend
@@ -2,6 +2,5 @@
 
 MACHINE_OPTEE_OS_TADEVKIT_REQUIRE ?= ""
 MACHINE_OPTEE_OS_TADEVKIT_REQUIRE:tc = "optee-os-generic-tc.inc"
-MACHINE_OPTEE_OS_TADEVKIT_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
 
 require ${MACHINE_OPTEE_OS_TADEVKIT_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.20.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.20.0.bbappend
new file mode 100644
index 0000000..e09c4a5
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.20.0.bbappend
@@ -0,0 +1,6 @@
+# Machine specific configurations
+
+MACHINE_OPTEE_OS_TADEVKIT_REQUIRE ?= ""
+MACHINE_OPTEE_OS_TADEVKIT_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
+
+require ${MACHINE_OPTEE_OS_TADEVKIT_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
index bc933dd..e276fb8 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
@@ -1,7 +1,6 @@
 # Machine specific configurations
 
 MACHINE_OPTEE_OS_REQUIRE ?= ""
-MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
 MACHINE_OPTEE_OS_REQUIRE:tc = "optee-os-tc.inc"
 
 require ${MACHINE_OPTEE_OS_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend
index e732c80..b5493e5 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.20.0.bbappend
@@ -2,5 +2,6 @@
 
 MACHINE_OPTEE_OS_REQUIRE ?= ""
 MACHINE_OPTEE_OS_REQUIRE:corstone1000 = "optee-os-corstone1000-common.inc"
+MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
 
 require ${MACHINE_OPTEE_OS_REQUIRE}
diff --git a/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.10.0.bb b/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.11.0.bb
similarity index 88%
rename from meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.10.0.bb
rename to meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.11.0.bb
index b9d0953..30705f6 100644
--- a/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.10.0.bb
+++ b/meta-arm/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.11.0.bb
@@ -10,7 +10,7 @@
 SRC_URI = "${SRC_URI_SCP_FIRMWARE};branch=${SRCBRANCH}"
 SRCBRANCH = "master"
 
-SRCREV  = "673d014f3861ad81cc5ab06d2884a314a610799b"
+SRCREV  = "635697544170b78167ed698393a72d6e522032e1"
 
 PROVIDES += "virtual/control-processor-firmware"
 
@@ -77,18 +77,18 @@
            if [ "$TYPE" = "romfw" ]; then
                if [ "$FW" = "scp" ]; then
                    install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.bin" "${D}/firmware/${FW}_${TYPE}.bin"
-                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1" "${D}/firmware/${FW}_${TYPE}.elf"
-               elif [ "$FW" = "mcp" ]; then
-                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-mcp-bl1.bin" "${D}/firmware/${FW}_${TYPE}.bin"
-                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-mcp-bl1" "${D}/firmware/${FW}_${TYPE}.elf"
+                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.elf" "${D}/firmware/${FW}_${TYPE}.elf"
+               else
+                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.bin" "${D}/firmware/${FW}_${TYPE}.bin"
+                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.elf" "${D}/firmware/${FW}_${TYPE}.elf"
                fi
            elif [ "$TYPE" = "ramfw" ]; then
                if [ "$FW" = "scp" ]; then
                    install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.bin" "${D}/firmware/${FW}_${TYPE}.bin"
-                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2" "${D}/firmware/${FW}_${TYPE}.elf"
-               elif [ "$FW" = "mcp" ]; then
-                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-mcp-bl2.bin" "${D}/firmware/${FW}_${TYPE}.bin"
-                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-mcp-bl2" "${D}/firmware/${FW}_${TYPE}.elf"
+                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.elf" "${D}/firmware/${FW}_${TYPE}.elf"
+               else
+                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.bin" "${D}/firmware/${FW}_${TYPE}.bin"
+                   install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.elf" "${D}/firmware/${FW}_${TYPE}.elf"
                fi
            fi
        done
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
index 7d5b4b5..6a209c3 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
@@ -12,11 +12,13 @@
 SRC_URI_TRUSTED_FIRMWARE_M_MBEDTLS ?= "git://github.com/ARMmbed/mbedtls.git;protocol=https"
 SRC_URI_TRUSTED_FIRMWARE_M_MCUBOOT ?= "git://github.com/mcu-tools/mcuboot.git;protocol=https"
 SRC_URI_TRUSTED_FIRMWARE_M_QCBOR ?= "git://github.com/laurencelundblade/QCBOR.git;protocol=https"
+SRC_URI_TRUSTED_FIRMWARE_M_EXTRAS ?= "git://git.trustedfirmware.org/TF-M/tf-m-extras.git;protocol=https"
 SRC_URI  = "${SRC_URI_TRUSTED_FIRMWARE_M};branch=${SRCBRANCH_tfm};name=tfm;destsuffix=git/tfm \
             ${SRC_URI_TRUSTED_FIRMWARE_M_TESTS};branch=${SRCBRANCH_tfm-tests};name=tfm-tests;destsuffix=git/tf-m-tests \
             ${SRC_URI_TRUSTED_FIRMWARE_M_MBEDTLS};branch=${SRCBRANCH_mbedtls};name=mbedtls;destsuffix=git/mbedtls \
             ${SRC_URI_TRUSTED_FIRMWARE_M_MCUBOOT};branch=${SRCBRANCH_mcuboot};name=mcuboot;destsuffix=git/mcuboot \
             ${SRC_URI_TRUSTED_FIRMWARE_M_QCBOR};branch=${SRCBRANCH_qcbor};name=qcbor;destsuffix=git/qcbor \
+            ${SRC_URI_TRUSTED_FIRMWARE_M_EXTRAS};branch=${SRCBRANCH_tfm-extras};name=tfm-extras;destsuffix=git/tfm-extras \
             "
 
 # The required dependencies are documented in tf-m/config/config_default.cmake
@@ -35,6 +37,9 @@
 # qcbor
 SRCBRANCH_qcbor ?= "master"
 SRCREV_qcbor = "b0e7033268e88c9f27146fa9a1415ef4c19ebaff"
+# TF-Mv1.7.0
+SRCBRANCH_tfm-extras ?= "master"
+SRCREV_tfm-extras = "daacaa6df3881e205bc03d75fc8fb688afe9f0f1"
 
 SRCREV_FORMAT = "tfm"
 
diff --git a/meta-arm/meta-arm/recipes-devtools/trusted-firmware-m-scripts/trusted-firmware-m-scripts-native.inc b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native.inc
similarity index 100%
rename from meta-arm/meta-arm/recipes-devtools/trusted-firmware-m-scripts/trusted-firmware-m-scripts-native.inc
rename to meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.7.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.7.0.bb
new file mode 100644
index 0000000..504846e
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.7.0.bb
@@ -0,0 +1,2 @@
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
index 9062df8..d074442 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
@@ -72,14 +72,12 @@
 # Verbose builds
 EXTRA_OECMAKE += "-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
 
-EXTRA_OECMAKE += "-DMBEDCRYPTO_PATH=${S}/../mbedtls -DTFM_TEST_REPO_PATH=${S}/../tf-m-tests -DMCUBOOT_PATH=${S}/../mcuboot -DQCBOR_PATH=${S}/../qcbor"
+EXTRA_OECMAKE += "-DMBEDCRYPTO_PATH=${S}/../mbedtls -DTFM_TEST_REPO_PATH=${S}/../tf-m-tests -DTFM_EXTRAS_REPO_PATH=${S}/../tfm-extras -DMCUBOOT_PATH=${S}/../mcuboot -DQCBOR_PATH=${S}/../qcbor"
 
 export CMAKE_BUILD_PARALLEL_LEVEL = "${@oe.utils.parallel_make(d, False)}"
 
-# Let the Makefile handle setting up the CFLAGS and LDFLAGS as it is a standalone application
-CFLAGS[unexport] = "1"
-LDFLAGS[unexport] = "1"
 AS[unexport] = "1"
+CC[unexport] = "1"
 LD[unexport] = "1"
 
 # python3-cryptography needs the legacy provider, so set OPENSSL_MODULES to the
@@ -108,11 +106,16 @@
 
 FILES:${PN} = "/firmware"
 SYSROOT_DIRS += "/firmware"
+FILES:${PN}-dbg = "/firmware/*.elf"
 
 addtask deploy after do_install
 do_deploy() {
     cp -rf ${D}/firmware/* ${DEPLOYDIR}/
 }
 
-# Build paths are currently embedded
+# Build paths are currently embedded because it's impossible to pass -fdebug-prefix-map
 INSANE_SKIP:${PN} += "buildpaths"
+INSANE_SKIP:${PN}-dbg += "buildpaths"
+# Target binaries will be 32-bit Arm
+INSANE_SKIP:${PN} += "arch"
+INSANE_SKIP:${PN}-dbg += "arch"
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb
new file mode 100644
index 0000000..386bed4
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb
@@ -0,0 +1,4 @@
+SRCREV_edk2           ?= "fff6d81270b57ee786ea18ad74f43149b9f03494"
+SRCREV_edk2-platforms ?= "982212662c71b6c734b7578526071d6b78da3bcc"
+
+require edk2-firmware.inc
diff --git a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-tc1.bb b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-tc1.bb
new file mode 100644
index 0000000..4a1295c
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-tc1.bb
@@ -0,0 +1,11 @@
+require fvp-ecosystem.inc
+
+MODEL = "TC1"
+MODEL_CODE = "FVP_TC1"
+PV = "11.18.28_Linux64"
+
+SRC_URI = "https://developer.arm.com/-/media/Arm%20Developer%20Community/Downloads/OSS/FVP/TotalCompute/Total%20Compute%20Update%202022/${MODEL_CODE}_${PV_URL}.tgz;subdir=${BP}"
+SRC_URI[sha256sum] = "3a2b32ecf34dc9581482d6fc682a9378ba6ed151ea9b68914b4ebad39fb5cacf"
+
+LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=a50d186fffa51ed55599183aad911298 \
+                    file://license_terms/third_party_licenses/third_party_licenses.txt;md5=34a1ba318d745f05e6197def68ea5411"
diff --git a/meta-arm/meta-arm/recipes-devtools/trusted-firmware-m-scripts/trusted-firmware-m-scripts-native_1.7.0.bb b/meta-arm/meta-arm/recipes-devtools/trusted-firmware-m-scripts/trusted-firmware-m-scripts-native_1.7.0.bb
deleted file mode 100644
index 2e9e524..0000000
--- a/meta-arm/meta-arm/recipes-devtools/trusted-firmware-m-scripts/trusted-firmware-m-scripts-native_1.7.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
-require recipes-devtools/trusted-firmware-m-scripts/trusted-firmware-m-scripts-native.inc
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/files/no-ipvs.cfg b/meta-arm/meta-arm/recipes-kernel/linux/files/no-ipvs.cfg
deleted file mode 100644
index fcfd2b2..0000000
--- a/meta-arm/meta-arm/recipes-kernel/linux/files/no-ipvs.cfg
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_IP_VS=n
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend
index cab7f47..883ed2c 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend
@@ -10,7 +10,6 @@
 FILESEXTRAPATHS:prepend:generic-arm64 = "${ARMFILESPATHS}"
 SRC_URI:append:generic-arm64 = " \
     file://generic-arm64-kmeta;type=kmeta;destsuffix=generic-arm64-kmeta \
-    file://no-ipvs.cfg \
     "
 
 FILESEXTRAPATHS:prepend:qemuarm64-secureboot = "${ARMFILESPATHS}"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-client_3.20.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-client_3.20.0.bb
new file mode 100644
index 0000000..1e69136
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-client_3.20.0.bb
@@ -0,0 +1,7 @@
+require optee-client.inc
+
+SRCREV = "dd2d39b49975d2ada7870fe2b7f5a84d0d3860dc"
+
+inherit pkgconfig
+DEPENDS += "util-linux"
+EXTRA_OEMAKE += "PKG_CONFIG=pkg-config"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.20.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.20.0.bb
new file mode 100644
index 0000000..e424d70
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.20.0.bb
@@ -0,0 +1,3 @@
+require optee-examples.inc
+
+SRCREV = "a98d01e1b9168eaed96bcd0bac0df67c44a81081"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0001-core-Define-section-attributes-for-clang.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0001-core-Define-section-attributes-for-clang.patch
deleted file mode 100644
index a69d777..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0001-core-Define-section-attributes-for-clang.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-From f189457b79989543f65b8a4e8729eff2cdf9a758 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 13 Aug 2022 19:24:55 -0700
-Subject: [PATCH] core: Define section attributes for clang
-
-Clang's attribute section is not same as gcc, here we need to add flags
-to sections so they can be eventually collected by linker into final
-output segments. Only way to do so with clang is to use
-
-pragma clang section ...
-
-The behavious is described here [1], this allows us to define names bss
-sections. This was not an issue until clang-15 where LLD linker starts
-to detect the section flags before merging them and throws the following
-errors
-
-| ld.lld: error: section type mismatch for .nozi.kdata_page
-| >>> /mnt/b/yoe/master/build/tmp/work/qemuarm64-yoe-linux/optee-os-tadevkit/3.17.0-r0/build/core/arch/arm/kernel/thread.o:(.nozi.kdata_page): SHT_PROGBITS
-| >>> output section .nozi: SHT_NOBITS
-|
-| ld.lld: error: section type mismatch for .nozi.mmu.l2
-| >>> /mnt/b/yoe/master/build/tmp/work/qemuarm64-yoe-linux/optee-os-tadevkit/3.17.0-r0/build/core/arch/arm/mm/core_mmu_lpae.o:(.nozi.mmu.l2): SHT_PROGBITS
-| >>> output section .nozi: SHT_NOBITS
-
-These sections should be carrying SHT_NOBITS but so far it was not
-possible to do so, this patch tries to use clangs pragma to get this
-going and match the functionality with gcc.
-
-[1] https://intel.github.io/llvm-docs/clang/LanguageExtensions.html#specifying-section-names-for-global-objects-pragma-clang-section
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- core/arch/arm/kernel/thread.c    | 19 +++++++++++++++--
- core/arch/arm/mm/core_mmu_lpae.c | 35 ++++++++++++++++++++++++++++----
- core/arch/arm/mm/pgt_cache.c     | 12 ++++++++++-
- core/kernel/thread.c             | 13 +++++++++++-
- 4 files changed, 71 insertions(+), 8 deletions(-)
-
---- a/core/arch/arm/kernel/thread.c
-+++ b/core/arch/arm/kernel/thread.c
-@@ -44,16 +44,31 @@ static size_t thread_user_kcode_size __n
- #if defined(CFG_CORE_UNMAP_CORE_AT_EL0) && \
- 	defined(CFG_CORE_WORKAROUND_SPECTRE_BP_SEC) && defined(ARM64)
- long thread_user_kdata_sp_offset __nex_bss;
-+#ifdef __clang__
-+#ifndef CFG_VIRTUALIZATION
-+#pragma clang section bss=".nozi.kdata_page"
-+#else
-+#pragma clang section bss=".nex_nozi.kdata_page"
-+#endif
-+#endif
- static uint8_t thread_user_kdata_page[
- 	ROUNDUP(sizeof(struct thread_core_local) * CFG_TEE_CORE_NB_CORE,
- 		SMALL_PAGE_SIZE)]
- 	__aligned(SMALL_PAGE_SIZE)
-+#ifndef __clang__
- #ifndef CFG_VIRTUALIZATION
--	__section(".nozi.kdata_page");
-+	__section(".nozi.kdata_page")
- #else
--	__section(".nex_nozi.kdata_page");
-+	__section(".nex_nozi.kdata_page")
- #endif
- #endif
-+    ;
-+#endif
-+
-+/* reset BSS section to default ( .bss ) */
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 
- #ifdef ARM32
- uint32_t __nostackcheck thread_get_exceptions(void)
---- a/core/arch/arm/mm/core_mmu_lpae.c
-+++ b/core/arch/arm/mm/core_mmu_lpae.c
-@@ -233,19 +233,46 @@ typedef uint16_t l1_idx_t;
- typedef uint64_t base_xlat_tbls_t[CFG_TEE_CORE_NB_CORE][NUM_BASE_LEVEL_ENTRIES];
- typedef uint64_t xlat_tbl_t[XLAT_TABLE_ENTRIES];
- 
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.base_table"
-+#endif
- static base_xlat_tbls_t base_xlation_table[NUM_BASE_TABLES]
- 	__aligned(NUM_BASE_LEVEL_ENTRIES * XLAT_ENTRY_SIZE)
--	__section(".nozi.mmu.base_table");
-+#ifndef __clang__
-+	__section(".nozi.mmu.base_table")
-+#endif
-+;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.l2"
-+#endif
- static xlat_tbl_t xlat_tables[MAX_XLAT_TABLES]
--	__aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2");
-+	__aligned(XLAT_TABLE_SIZE)
-+#ifndef __clang__
-+	__section(".nozi.mmu.l2")
-+#endif
-+;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 
- #define XLAT_TABLES_SIZE	(sizeof(xlat_tbl_t) * MAX_XLAT_TABLES)
- 
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.l2"
-+#endif
- /* MMU L2 table for TAs, one for each thread */
- static xlat_tbl_t xlat_tables_ul1[CFG_NUM_THREADS]
--	__aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2");
--
-+#ifndef __clang__
-+	__aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2")
-+#endif
-+;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- /*
-  * TAs page table entry inside a level 1 page table.
-  *
---- a/core/arch/arm/mm/pgt_cache.c
-+++ b/core/arch/arm/mm/pgt_cache.c
-@@ -104,8 +104,18 @@ void pgt_init(void)
- 	 * has a large alignment, while .bss has a small alignment. The current
- 	 * link script is optimized for small alignment in .bss
- 	 */
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.l2"
-+#endif
- 	static uint8_t pgt_tables[PGT_CACHE_SIZE][PGT_SIZE]
--			__aligned(PGT_SIZE) __section(".nozi.pgt_cache");
-+			__aligned(PGT_SIZE)
-+#ifndef __clang__
-+			__section(".nozi.pgt_cache")
-+#endif
-+			;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 	size_t n;
- 
- 	for (n = 0; n < ARRAY_SIZE(pgt_tables); n++) {
---- a/core/kernel/thread.c
-+++ b/core/kernel/thread.c
-@@ -37,13 +37,24 @@ struct thread_core_local thread_core_loc
- 	name[stack_num][sizeof(name[stack_num]) / sizeof(uint32_t) - 1]
- #endif
- 
-+#define DO_PRAGMA(x) _Pragma (#x)
-+
-+#ifdef __clang__
-+#define DECLARE_STACK(name, num_stacks, stack_size, linkage) \
-+DO_PRAGMA (clang section bss=".nozi_stack." #name) \
-+linkage uint32_t name[num_stacks] \
-+		[ROUNDUP(stack_size + STACK_CANARY_SIZE + STACK_CHECK_EXTRA, \
-+			 STACK_ALIGNMENT) / sizeof(uint32_t)] \
-+		__attribute__((aligned(STACK_ALIGNMENT))); \
-+DO_PRAGMA(clang section bss="")
-+#else
- #define DECLARE_STACK(name, num_stacks, stack_size, linkage) \
- linkage uint32_t name[num_stacks] \
- 		[ROUNDUP(stack_size + STACK_CANARY_SIZE + STACK_CHECK_EXTRA, \
- 			 STACK_ALIGNMENT) / sizeof(uint32_t)] \
- 		__attribute__((section(".nozi_stack." # name), \
- 			       aligned(STACK_ALIGNMENT)))
--
-+#endif
- #define GET_STACK(stack) ((vaddr_t)(stack) + STACK_SIZE(stack))
- 
- DECLARE_STACK(stack_tmp, CFG_TEE_CORE_NB_CORE,
---- a/core/arch/arm/mm/core_mmu_v7.c
-+++ b/core/arch/arm/mm/core_mmu_v7.c
-@@ -204,16 +204,46 @@ typedef uint32_t l1_xlat_tbl_t[NUM_L1_EN
- typedef uint32_t l2_xlat_tbl_t[NUM_L2_ENTRIES];
- typedef uint32_t ul1_xlat_tbl_t[NUM_UL1_ENTRIES];
- 
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.l1"
-+#endif
- static l1_xlat_tbl_t main_mmu_l1_ttb
--		__aligned(L1_ALIGNMENT) __section(".nozi.mmu.l1");
-+		__aligned(L1_ALIGNMENT)
-+#ifndef __clang__
-+       __section(".nozi.mmu.l1")
-+#endif
-+;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 
- /* L2 MMU tables */
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.l2"
-+#endif
- static l2_xlat_tbl_t main_mmu_l2_ttb[MAX_XLAT_TABLES]
--		__aligned(L2_ALIGNMENT) __section(".nozi.mmu.l2");
-+		__aligned(L2_ALIGNMENT)
-+#ifndef __clang__
-+       __section(".nozi.mmu.l2")
-+#endif
-+;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 
- /* MMU L1 table for TAs, one for each thread */
-+#ifdef __clang__
-+#pragma clang section bss=".nozi.mmu.ul1"
-+#endif
- static ul1_xlat_tbl_t main_mmu_ul1_ttb[CFG_NUM_THREADS]
--		__aligned(UL1_ALIGNMENT) __section(".nozi.mmu.ul1");
-+		__aligned(UL1_ALIGNMENT)
-+#ifndef __clang__
-+       __section(".nozi.mmu.ul1")
-+#endif
-+;
-+#ifdef __clang__
-+#pragma clang section bss=""
-+#endif
- 
- struct mmu_partition {
- 	l1_xlat_tbl_t *l1_table;
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0006-allow-setting-sysroot-for-libgcc-lookup.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0006-allow-setting-sysroot-for-libgcc-lookup.patch
deleted file mode 100644
index ab4a6db..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0006-allow-setting-sysroot-for-libgcc-lookup.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 528aeb42652a3159c1bfd51d6c1442c3ff27b84c Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Tue, 26 May 2020 14:38:02 -0500
-Subject: [PATCH] allow setting sysroot for libgcc lookup
-
-Explicitly pass the new variable LIBGCC_LOCATE_CFLAGS variable when searching
-for the compiler libraries as there's no easy way to reliably pass --sysroot
-otherwise.
-
-Upstream-Status: Pending [https://github.com/OP-TEE/optee_os/issues/4188]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
----
- mk/gcc.mk | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/mk/gcc.mk b/mk/gcc.mk
-index adc77a24..81bfa78a 100644
---- a/mk/gcc.mk
-+++ b/mk/gcc.mk
-@@ -13,11 +13,11 @@ nostdinc$(sm)	:= -nostdinc -isystem $(shell $(CC$(sm)) \
- 			-print-file-name=include 2> /dev/null)
- 
- # Get location of libgcc from gcc
--libgcc$(sm)  	:= $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
-+libgcc$(sm)  	:= $(shell $(CC$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CFLAGS$(arch-bits-$(sm))) \
- 			-print-libgcc-file-name 2> /dev/null)
--libstdc++$(sm)	:= $(shell $(CXX$(sm)) $(CXXFLAGS$(arch-bits-$(sm))) $(comp-cxxflags$(sm)) \
-+libstdc++$(sm)	:= $(shell $(CXX$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CXXFLAGS$(arch-bits-$(sm))) $(comp-cxxflags$(sm)) \
- 			-print-file-name=libstdc++.a 2> /dev/null)
--libgcc_eh$(sm)	:= $(shell $(CXX$(sm)) $(CXXFLAGS$(arch-bits-$(sm))) $(comp-cxxflags$(sm)) \
-+libgcc_eh$(sm)	:= $(shell $(CXX$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CXXFLAGS$(arch-bits-$(sm))) $(comp-cxxflags$(sm)) \
- 			-print-file-name=libgcc_eh.a 2> /dev/null)
- 
- # Define these to something to discover accidental use
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0007-allow-setting-sysroot-for-clang.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0007-allow-setting-sysroot-for-clang.patch
deleted file mode 100644
index 067ba6e..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0007-allow-setting-sysroot-for-clang.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From db9e44af75c7cfd3316cab15aaa387383df3e57e Mon Sep 17 00:00:00 2001
-From: Brett Warren <brett.warren@arm.com>
-Date: Wed, 23 Sep 2020 09:27:34 +0100
-Subject: [PATCH] optee: enable clang support
-
-When compiling with clang, the LIBGCC_LOCATE_CFLAG variable used
-to provide a sysroot wasn't included, which results in not locating
-compiler-rt. This is mitigated by including the variable as ammended.
-
-Upstream-Status: Pending
-ChangeId: 8ba69a4b2eb8ebaa047cb266c9aa6c2c3da45701
-Signed-off-by: Brett Warren <brett.warren@arm.com>
-
----
- mk/clang.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mk/clang.mk b/mk/clang.mk
-index c141a3f2..7d067cc0 100644
---- a/mk/clang.mk
-+++ b/mk/clang.mk
-@@ -27,7 +27,7 @@ comp-cflags-warns-clang := -Wno-language-extension-token \
- 
- # Note, use the compiler runtime library (libclang_rt.builtins.*.a) instead of
- # libgcc for clang
--libgcc$(sm)	:= $(shell $(CC$(sm)) $(CFLAGS$(arch-bits-$(sm))) \
-+libgcc$(sm)	:= $(shell $(CC$(sm)) $(LIBGCC_LOCATE_CFLAGS) $(CFLAGS$(arch-bits-$(sm))) \
- 			-rtlib=compiler-rt -print-libgcc-file-name 2> /dev/null)
- 
- # Core ASLR relies on the executable being ready to run from its preferred load
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0008-no-warn-rwx-segments.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0008-no-warn-rwx-segments.patch
deleted file mode 100644
index 6d48a76..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0008-no-warn-rwx-segments.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From cf2a2451f4e9300532d677bb3a8315494a3b3a82 Mon Sep 17 00:00:00 2001
-From: Jerome Forissier <jerome.forissier@linaro.org>
-Date: Fri, 5 Aug 2022 09:48:03 +0200
-Subject: [PATCH] core: link: add --no-warn-rwx-segments
-
-Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
-Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5474]
-
-binutils ld.bfd generates one RWX LOAD segment by merging several sections
-with mixed R/W/X attributes (.text, .rodata, .data). After version 2.38 it
-also warns by default when that happens [1], which breaks the build due to
---fatal-warnings. The RWX segment is not a problem for the TEE core, since
-that information is not used to set memory permissions. Therefore, silence
-the warning.
-
-Link: [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
-Link: https://sourceware.org/bugzilla/show_bug.cgi?id=29448
-Reported-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
-Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
-Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
-
----
- core/arch/arm/kernel/link.mk | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
-index 7eed333a..c39d43cb 100644
---- a/core/arch/arm/kernel/link.mk
-+++ b/core/arch/arm/kernel/link.mk
-@@ -31,6 +31,7 @@ link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/tee.map
- link-ldflags += --sort-section=alignment
- link-ldflags += --fatal-warnings
- link-ldflags += --gc-sections
-+link-ldflags += $(call ld-option,--no-warn-rwx-segments)
- 
- link-ldadd  = $(LDADD)
- link-ldadd += $(ldflags-external)
-@@ -55,6 +56,7 @@ link-script-cppflags := \
- 		$(cppflagscore))
- 
- ldargs-all_objs := -T $(link-script-dummy) --no-check-sections \
-+		   $(call ld-option,--no-warn-rwx-segments) \
- 		   $(link-objs) $(link-ldadd) $(libgcccore)
- cleanfiles += $(link-out-dir)/all_objs.o
- $(link-out-dir)/all_objs.o: $(objs) $(libdeps) $(MAKEFILE_LIST)
-@@ -67,7 +69,8 @@ $(link-out-dir)/unpaged_entries.txt: $(link-out-dir)/all_objs.o
- 	$(q)$(NMcore) $< | \
- 		$(AWK) '/ ____keep_pager/ { printf "-u%s ", $$3 }' > $@
- 
--unpaged-ldargs = -T $(link-script-dummy) --no-check-sections --gc-sections
-+unpaged-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
-+		 $(call ld-option,--no-warn-rwx-segments)
- unpaged-ldadd := $(objs) $(link-ldadd) $(libgcccore)
- cleanfiles += $(link-out-dir)/unpaged.o
- $(link-out-dir)/unpaged.o: $(link-out-dir)/unpaged_entries.txt
-@@ -95,7 +98,8 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
- 	$(q)$(NMcore) $< | \
- 		$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
- 
--init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections
-+init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
-+	       $(call ld-option,--no-warn-rwx-segments)
- init-ldadd := $(link-objs-init) $(link-out-dir)/version.o  $(link-ldadd) \
- 	      $(libgcccore)
- cleanfiles += $(link-out-dir)/init.o
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0009-add-z-execstack.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0009-add-z-execstack.patch
deleted file mode 100644
index 3ba6c4e..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0009-add-z-execstack.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From ea932656461865ab9ac4036245c756c082aeb3e1 Mon Sep 17 00:00:00 2001
-From: Jerome Forissier <jerome.forissier@linaro.org>
-Date: Tue, 23 Aug 2022 11:41:00 +0000
-Subject: [PATCH] core, ldelf: link: add -z execstack
-
-When building for arm32 with GNU binutils 2.39, the linker outputs
-warnings when generating some TEE core binaries (all_obj.o, init.o,
-unpaged.o and tee.elf) as well as ldelf.elf:
-
- arm-poky-linux-gnueabi-ld.bfd: warning: atomic_a32.o: missing .note.GNU-stack section implies executable stack
- arm-poky-linux-gnueabi-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
-
-The permissions used when mapping the TEE core stacks do not depend on
-any metadata found in the ELF file. Similarly when the TEE core loads
-ldelf it already creates a non-executable stack regardless of ELF
-information. Therefore we can safely ignore the warnings. This is done
-by adding the '-z execstack' option.
-
-Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
-
-Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
-Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
-
----
- core/arch/arm/kernel/link.mk | 13 +++++++++----
- ldelf/link.mk                |  3 +++
- 2 files changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
-index c39d43cb..0e96e606 100644
---- a/core/arch/arm/kernel/link.mk
-+++ b/core/arch/arm/kernel/link.mk
-@@ -9,6 +9,11 @@ link-script-dep = $(link-out-dir)/.kern.ld.d
- 
- AWK	 = awk
- 
-+link-ldflags-common += $(call ld-option,--no-warn-rwx-segments)
-+ifeq ($(CFG_ARM32_core),y)
-+link-ldflags-common += $(call ld-option,--no-warn-execstack)
-+endif
-+
- link-ldflags  = $(LDFLAGS)
- ifeq ($(CFG_CORE_ASLR),y)
- link-ldflags += -pie -Bsymbolic -z norelro $(ldflag-apply-dynamic-relocs)
-@@ -31,7 +36,7 @@ link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/tee.map
- link-ldflags += --sort-section=alignment
- link-ldflags += --fatal-warnings
- link-ldflags += --gc-sections
--link-ldflags += $(call ld-option,--no-warn-rwx-segments)
-+link-ldflags += $(link-ldflags-common)
- 
- link-ldadd  = $(LDADD)
- link-ldadd += $(ldflags-external)
-@@ -56,7 +61,7 @@ link-script-cppflags := \
- 		$(cppflagscore))
- 
- ldargs-all_objs := -T $(link-script-dummy) --no-check-sections \
--		   $(call ld-option,--no-warn-rwx-segments) \
-+		   $(link-ldflags-common) \
- 		   $(link-objs) $(link-ldadd) $(libgcccore)
- cleanfiles += $(link-out-dir)/all_objs.o
- $(link-out-dir)/all_objs.o: $(objs) $(libdeps) $(MAKEFILE_LIST)
-@@ -70,7 +75,7 @@ $(link-out-dir)/unpaged_entries.txt: $(link-out-dir)/all_objs.o
- 		$(AWK) '/ ____keep_pager/ { printf "-u%s ", $$3 }' > $@
- 
- unpaged-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
--		 $(call ld-option,--no-warn-rwx-segments)
-+		 $(link-ldflags-common)
- unpaged-ldadd := $(objs) $(link-ldadd) $(libgcccore)
- cleanfiles += $(link-out-dir)/unpaged.o
- $(link-out-dir)/unpaged.o: $(link-out-dir)/unpaged_entries.txt
-@@ -99,7 +104,7 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
- 		$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
- 
- init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
--	       $(call ld-option,--no-warn-rwx-segments)
-+	       $(link-ldflags-common)
- init-ldadd := $(link-objs-init) $(link-out-dir)/version.o  $(link-ldadd) \
- 	      $(libgcccore)
- cleanfiles += $(link-out-dir)/init.o
-diff --git a/ldelf/link.mk b/ldelf/link.mk
-index 64c8212a..bd49551e 100644
---- a/ldelf/link.mk
-+++ b/ldelf/link.mk
-@@ -20,6 +20,9 @@ link-ldflags += -z max-page-size=4096 # OP-TEE always uses 4K alignment
- ifeq ($(CFG_CORE_BTI),y)
- link-ldflags += $(call ld-option,-z force-bti) --fatal-warnings
- endif
-+ifeq ($(CFG_ARM32_$(sm)), y)
-+link-ldflags += $(call ld-option,--no-warn-execstack)
-+endif
- link-ldflags += $(link-ldflags$(sm))
- 
- link-ldadd  = $(addprefix -L,$(libdirs))
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0010-add-note-GNU-stack-section.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0010-add-note-GNU-stack-section.patch
deleted file mode 100644
index 4ea65d8..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit-3.18.0/0010-add-note-GNU-stack-section.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From ec30e84671aac9a2e9549754eb7bc6201728db4c Mon Sep 17 00:00:00 2001
-From: Jerome Forissier <jerome.forissier@linaro.org>
-Date: Tue, 23 Aug 2022 12:31:46 +0000
-Subject: [PATCH] arm32: libutils, libutee, ta: add .note.GNU-stack section to
-
- .S files
-
-When building for arm32 with GNU binutils 2.39, the linker outputs
-warnings when linking Trusted Applications:
-
- arm-unknown-linux-uclibcgnueabihf-ld.bfd: warning: utee_syscalls_a32.o: missing .note.GNU-stack section implies executable stack
- arm-unknown-linux-uclibcgnueabihf-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
-
-We could silence the warning by adding the '-z execstack' option to the
-TA link flags, like we did in the parent commit for the TEE core and
-ldelf. Indeed, ldelf always allocates a non-executable piece of memory
-for the TA to use as a stack.
-
-However it seems preferable to comply with the common ELF practices in
-this case. A better fix is therefore to add the missing .note.GNU-stack
-sections in the assembler files.
-
-Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
-
-Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
-Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
-
----
- lib/libutee/arch/arm/utee_syscalls_a32.S             | 2 ++
- lib/libutils/ext/arch/arm/atomic_a32.S               | 2 ++
- lib/libutils/ext/arch/arm/mcount_a32.S               | 2 ++
- lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S  | 2 ++
- lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S | 2 ++
- lib/libutils/isoc/arch/arm/setjmp_a32.S              | 2 ++
- ta/arch/arm/ta_entry_a32.S                           | 2 ++
- 7 files changed, 14 insertions(+)
-
-diff --git a/lib/libutee/arch/arm/utee_syscalls_a32.S b/lib/libutee/arch/arm/utee_syscalls_a32.S
-index 6e621ca6..af405f62 100644
---- a/lib/libutee/arch/arm/utee_syscalls_a32.S
-+++ b/lib/libutee/arch/arm/utee_syscalls_a32.S
-@@ -7,6 +7,8 @@
- #include <tee_syscall_numbers.h>
- #include <asm.S>
- 
-+	.section .note.GNU-stack,"",%progbits
-+
-         .section .text
-         .balign 4
-         .code 32
-diff --git a/lib/libutils/ext/arch/arm/atomic_a32.S b/lib/libutils/ext/arch/arm/atomic_a32.S
-index eaef6914..2be73ffa 100644
---- a/lib/libutils/ext/arch/arm/atomic_a32.S
-+++ b/lib/libutils/ext/arch/arm/atomic_a32.S
-@@ -5,6 +5,8 @@
- 
- #include <asm.S>
- 
-+	.section .note.GNU-stack,"",%progbits
-+
- /* uint32_t atomic_inc32(uint32_t *v); */
- FUNC atomic_inc32 , :
- 	ldrex	r1, [r0]
-diff --git a/lib/libutils/ext/arch/arm/mcount_a32.S b/lib/libutils/ext/arch/arm/mcount_a32.S
-index 51439a23..54dc3c02 100644
---- a/lib/libutils/ext/arch/arm/mcount_a32.S
-+++ b/lib/libutils/ext/arch/arm/mcount_a32.S
-@@ -7,6 +7,8 @@
- 
- #if defined(CFG_TA_GPROF_SUPPORT) || defined(CFG_FTRACE_SUPPORT)
- 
-+	.section .note.GNU-stack,"",%progbits
-+
- /*
-  * Convert return address to call site address by subtracting the size of the
-  * mcount call instruction (blx __gnu_mcount_nc).
-diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
-index a600c879..37ae9ec6 100644
---- a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
-+++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
-@@ -5,6 +5,8 @@
- 
- #include <asm.S>
- 
-+	.section .note.GNU-stack,"",%progbits
-+
- /*
-  * signed ret_idivmod_values(signed quot, signed rem);
-  * return quotient and remaining the EABI way (regs r0,r1)
-diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
-index 2dc50bc9..5c3353e2 100644
---- a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
-+++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
-@@ -5,6 +5,8 @@
- 
- #include <asm.S>
- 
-+	.section .note.GNU-stack,"",%progbits
-+
- /*
-  * __value_in_regs lldiv_t __aeabi_ldivmod( long long n, long long d)
-  */
-diff --git a/lib/libutils/isoc/arch/arm/setjmp_a32.S b/lib/libutils/isoc/arch/arm/setjmp_a32.S
-index 43ea5937..f8a0b70d 100644
---- a/lib/libutils/isoc/arch/arm/setjmp_a32.S
-+++ b/lib/libutils/isoc/arch/arm/setjmp_a32.S
-@@ -51,6 +51,8 @@
- #define SIZE(x)
- #endif
- 
-+	.section .note.GNU-stack,"",%progbits
-+
- /* Arm/Thumb interworking support:
- 
-    The interworking scheme expects functions to use a BX instruction
-diff --git a/ta/arch/arm/ta_entry_a32.S b/ta/arch/arm/ta_entry_a32.S
-index d2f8a69d..cd9a12f9 100644
---- a/ta/arch/arm/ta_entry_a32.S
-+++ b/ta/arch/arm/ta_entry_a32.S
-@@ -5,6 +5,8 @@
- 
- #include <asm.S>
- 
-+	.section .note.GNU-stack,"",%progbits
-+
- /*
-  * This function is the bottom of the user call stack. Mark it as such so that
-  * the unwinding code won't try to go further down.
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.20.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.20.0.bb
new file mode 100644
index 0000000..202caa5
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.20.0.bb
@@ -0,0 +1,24 @@
+require optee-os_3.20.0.bb
+
+SUMMARY = "OP-TEE Trusted OS TA devkit"
+DESCRIPTION = "OP-TEE TA devkit for build TAs"
+HOMEPAGE = "https://www.op-tee.org/"
+
+DEPENDS += "python3-pycryptodome-native"
+
+do_install() {
+    #install TA devkit
+    install -d ${D}${includedir}/optee/export-user_ta/
+    for f in ${B}/export-ta_${OPTEE_ARCH}/* ; do
+        cp -aR $f ${D}${includedir}/optee/export-user_ta/
+    done
+}
+
+do_deploy() {
+	echo "Do not inherit do_deploy from optee-os."
+}
+
+FILES:${PN} = "${includedir}/optee/"
+
+# Build paths are currently embedded
+INSANE_SKIP:${PN}-dev += "buildpaths"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-test_3.20.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-test_3.20.0.bb
new file mode 100644
index 0000000..95452b6
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-test_3.20.0.bb
@@ -0,0 +1,10 @@
+require optee-test.inc
+
+SRC_URI:append = " \
+    file://musl-workaround.patch \
+   "
+SRCREV = "5db8ab4c733d5b2f4afac3e9aef0a26634c4b444"
+
+EXTRA_OEMAKE:append:libc-musl = " OPTEE_OPENSSL_EXPORT=${STAGING_INCDIR}"
+DEPENDS:append:libc-musl = " openssl"
+CFLAGS:append:libc-musl = " -Wno-error=deprecated-declarations"
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.30.0.bb b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb
similarity index 90%
rename from meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.30.0.bb
rename to meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb
index 8c7564a..cc37291 100644
--- a/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.30.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb
@@ -9,7 +9,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRC_URI[archive.sha256sum] = "9516b84e9d9f100db89a0c67cbfe57cedb0562310d45caafb6332e27bbeb5cd3"
+SRC_URI[archive.sha256sum] = "a2b5affa1505ad43902959fdbe09e5bcec57b11ed333fa60458ffb9c62efba38"
 
 # We don't not have ubuntu's appindicator (yet?)
 EXTRA_OEMESON = "-Dappindicator=no"
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch
new file mode 100644
index 0000000..f8f7ec3
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch
@@ -0,0 +1,80 @@
+From: Utopia Maintenance Team
+ <pkg-utopia-maintainers@lists.alioth.debian.org>
+Date: Mon, 30 Apr 2018 17:56:52 +0000
+Subject: Select the current user to authenticate with by default
+
+Bug: http://bugzilla.gnome.org/show_bug.cgi?id=596188
+Bug-Ubuntu: https://launchpad.net/bugs/435227
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticationdialog.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c
+index 743cc96..d307516 100644
+--- a/src/polkitgnomeauthenticationdialog.c
++++ b/src/polkitgnomeauthenticationdialog.c
+@@ -138,7 +138,7 @@ user_combobox_changed (GtkComboBox *widget,
+ static void
+ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ {
+-  int n;
++  int n, i, selected_index = 0;
+   GtkComboBox *combo;
+   GtkTreeIter iter;
+   GtkCellRenderer *renderer;
+@@ -162,7 +162,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ 
+ 
+   /* For each user */
+-  for (n = 0; dialog->priv->users[n] != NULL; n++)
++  for (i = 0, n = 0; dialog->priv->users[n] != NULL; n++)
+     {
+       gchar *gecos;
+       gchar *real_name;
+@@ -224,6 +224,14 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+                           USERNAME_COL, dialog->priv->users[n],
+                           -1);
+ 
++      i++;
++      if (passwd->pw_uid == getuid ())
++        {
++          selected_index = i;
++          g_free (dialog->priv->selected_user);
++          dialog->priv->selected_user = g_strdup (dialog->priv->users[n]);
++        }
++
+       g_free (real_name);
+       g_object_unref (pixbuf);
+     }
+@@ -252,8 +260,8 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+                                       user_combobox_set_sensitive,
+                                       NULL, NULL);
+ 
+-  /* Initially select the "Select user..." ... */
+-  gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
++  /* Select the default user */
++  gtk_combo_box_set_active (GTK_COMBO_BOX (combo), selected_index);
+ 
+   /* Listen when a new user is selected */
+   g_signal_connect (GTK_WIDGET (combo),
+@@ -719,16 +727,13 @@ polkit_gnome_authentication_dialog_constructed (GObject *object)
+   gtk_widget_set_tooltip_markup (label, s);
+   g_free (s);
+ 
+-  if (have_user_combobox)
++  /* Disable password entry and authenticate until have a user selected */
++  if (have_user_combobox && gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->priv->user_combobox)) == 0)
+     {
+-      /* ... and make the password entry and "Authenticate" button insensitive */
+       gtk_widget_set_sensitive (dialog->priv->prompt_label, FALSE);
+       gtk_widget_set_sensitive (dialog->priv->password_entry, FALSE);
+       gtk_widget_set_sensitive (dialog->priv->auth_button, FALSE);
+     }
+-  else
+-    {
+-    }
+ 
+   gtk_widget_realize (GTK_WIDGET (dialog));
+ 
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch
new file mode 100644
index 0000000..011fe6e
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch
@@ -0,0 +1,34 @@
+From: Lars Uebernickel <lars@uebernic.de>
+Date: Fri, 17 Oct 2014 15:35:25 +0200
+Subject: Auth dialog: Make the label wrap at 70 chars
+
+Because GtkWindow doesn't have a default width anymore.
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=738688
+Bug-Ubuntu: https://launchpad.net/bugs/1382566
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticationdialog.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c
+index d307516..efd4185 100644
+--- a/src/polkitgnomeauthenticationdialog.c
++++ b/src/polkitgnomeauthenticationdialog.c
+@@ -574,6 +574,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object)
+   g_free (s);
+   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
++  gtk_label_set_max_width_chars (GTK_LABEL (label), 70);
+   gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0);
+ 
+   /* secondary message */
+@@ -601,6 +602,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object)
+     }
+   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
++  gtk_label_set_max_width_chars (GTK_LABEL (label), 70);
+   gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0);
+ 
+   /* user combobox */
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch
new file mode 100644
index 0000000..a3759c4
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch
@@ -0,0 +1,138 @@
+From: Marc Deslauriers <marc.deslauriers@canonical.com>
+Date: Mon, 30 Apr 2018 18:03:22 +0000
+Subject: Get user icon from accountsservice instead of looking in ~/.face
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=669857
+Bug-Ubuntu: https://launchpad.net/bugs/928249
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticationdialog.c | 107 ++++++++++++++++++++++++++++++----
+ 1 file changed, 97 insertions(+), 10 deletions(-)
+
+diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c
+index efd4185..565da87 100644
+--- a/src/polkitgnomeauthenticationdialog.c
++++ b/src/polkitgnomeauthenticationdialog.c
+@@ -135,6 +135,102 @@ user_combobox_changed (GtkComboBox *widget,
+     }
+ }
+ 
++static GdkPixbuf *
++get_user_icon (char *username)
++{
++  GError *error;
++  GDBusConnection *connection;
++  GVariant *find_user_result;
++  GVariant *get_icon_result;
++  GVariant *icon_result_variant;
++  const gchar *user_path;
++  const gchar *icon_filename;
++  GdkPixbuf *pixbuf;
++
++  error = NULL;
++  connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
++
++  if (connection == NULL)
++    {
++      g_warning ("Unable to connect to system bus: %s", error->message);
++      g_error_free (error);
++      return NULL;
++    }
++
++  find_user_result = g_dbus_connection_call_sync (connection,
++                                          "org.freedesktop.Accounts",
++                                          "/org/freedesktop/Accounts",
++                                          "org.freedesktop.Accounts",
++                                          "FindUserByName",
++                                          g_variant_new ("(s)",
++                                          username),
++                                          G_VARIANT_TYPE ("(o)"),
++                                          G_DBUS_CALL_FLAGS_NONE,
++                                          -1,
++                                          NULL,
++                                          &error);
++
++  if (find_user_result == NULL)
++    {
++      g_warning ("Accounts couldn't find user: %s", error->message);
++      g_error_free (error);
++      return NULL;
++    }
++
++  user_path = g_variant_get_string (g_variant_get_child_value (find_user_result, 0),
++                                    NULL);
++
++  get_icon_result = g_dbus_connection_call_sync (connection,
++                                                 "org.freedesktop.Accounts",
++                                                 user_path,
++                                                 "org.freedesktop.DBus.Properties",
++                                                 "Get",
++                                                 g_variant_new ("(ss)",
++                                                                "org.freedesktop.Accounts.User",
++                                                                "IconFile"),
++                                                 G_VARIANT_TYPE ("(v)"),
++                                                 G_DBUS_CALL_FLAGS_NONE,
++                                                 -1,
++                                                 NULL,
++                                                 &error);
++
++  g_variant_unref (find_user_result);
++
++  if (get_icon_result == NULL)
++    {
++      g_warning ("Accounts couldn't find user icon: %s", error->message);
++      g_error_free (error);
++      return NULL;
++    }
++
++  g_variant_get_child (get_icon_result, 0, "v", &icon_result_variant);
++  icon_filename = g_variant_get_string (icon_result_variant, NULL);
++
++  if (icon_filename == NULL)
++    {
++      g_warning ("Accounts didn't return a valid filename for user icon");
++      pixbuf = NULL;
++    }
++  else
++    {
++      /* TODO: we probably shouldn't hard-code the size to 16x16 */
++      pixbuf = gdk_pixbuf_new_from_file_at_size (icon_filename,
++                                                 16,
++                                                 16,
++                                                 &error);
++      if (pixbuf == NULL)
++        {
++          g_warning ("Couldn't open user icon: %s", error->message);
++          g_error_free (error);
++        }
++    }
++
++  g_variant_unref (icon_result_variant);
++  g_variant_unref (get_icon_result);
++
++  return pixbuf;
++}
++
+ static void
+ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ {
+@@ -197,16 +293,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+       g_free (gecos);
+ 
+       /* Load users face */
+-      pixbuf = NULL;
+-      if (passwd->pw_dir != NULL)
+-        {
+-          gchar *path;
+-          path = g_strdup_printf ("%s/.face", passwd->pw_dir);
+-          /* TODO: we probably shouldn't hard-code the size to 16x16 */
+-          pixbuf = gdk_pixbuf_new_from_file_at_scale (path, 16, 16, TRUE, NULL);
+-          g_free (path);
+-        }
+-
++      pixbuf = get_user_icon (dialog->priv->users[n]);
+       /* fall back to avatar-default icon */
+       if (pixbuf == NULL)
+         {
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch
new file mode 100644
index 0000000..2c9c5bb
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch
@@ -0,0 +1,48 @@
+From: Jeffrey Knockel <jeff250@gmail.com>
+Date: Mon, 30 Apr 2018 18:05:20 +0000
+Subject: Use fresh X11 timestamps when displaying authentication dialog
+
+This circumvents focus-stealing prevention.
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=676076
+Bug-Debian: https://bugs.debian.org/684300
+Bug-Ubuntu: https://launchpad.net/bugs/946171
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticator.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/polkitgnomeauthenticator.c b/src/polkitgnomeauthenticator.c
+index 23163b4..e57d76e 100644
+--- a/src/polkitgnomeauthenticator.c
++++ b/src/polkitgnomeauthenticator.c
+@@ -26,6 +26,7 @@
+ #include <sys/types.h>
+ #include <pwd.h>
+ #include <glib/gi18n.h>
++#include <gdk/gdkx.h>
+ 
+ #include <polkit/polkit.h>
+ #include <polkitagent/polkitagent.h>
+@@ -306,7 +307,17 @@ session_request (PolkitAgentSession *session,
+     }
+ 
+   gtk_widget_show_all (GTK_WIDGET (authenticator->dialog));
+-  gtk_window_present (GTK_WINDOW (authenticator->dialog));
++  GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (authenticator->dialog));
++
++  if (GDK_IS_X11_WINDOW (window))
++    {
++    gtk_window_present_with_time (GTK_WINDOW (authenticator->dialog), gdk_x11_get_server_time (window));
++    }
++  else
++    {
++    gtk_window_present (GTK_WINDOW (authenticator->dialog));
++    }
++
+   password = polkit_gnome_authentication_dialog_run_until_response_for_prompt (POLKIT_GNOME_AUTHENTICATION_DIALOG (authenticator->dialog),
+                                                                                modified_request,
+                                                                                echo_on,
+
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch
new file mode 100644
index 0000000..7eee12a
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch
@@ -0,0 +1,29 @@
+From 334abb04ff953dabec63a91094de43e3cf064d7d Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Fri, 24 Feb 2023 17:29:24 +0100
+Subject: [PATCH] configure.ac: disable gnome-tools that are not provided
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 24eb724..02fccbd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -33,8 +33,8 @@ LT_INIT
+ # GNOME
+ # *****
+ 
+-GNOME_DEBUG_CHECK
+-GNOME_COMPILE_WARNINGS([maximum])
++#GNOME_DEBUG_CHECK
++#GNOME_COMPILE_WARNINGS([maximum])
+ 
+ #### gcc warning flags
+ 
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
new file mode 100644
index 0000000..c45acfa
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
@@ -0,0 +1,87 @@
+[Desktop Entry]
+Name=PolicyKit Authentication Agent
+Name[ar]=مدير الاستيثاق PolicyKit
+Name[be]=PolicyKit - аґент аўтэнтыфікацыі
+Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Name[ca]=Agent d'autenticació del PolicyKit
+Name[cs]=Ověřovací agent PolicyKit
+Name[da]=Godkendelsesprogrammet PolicyKit
+Name[de]=Legitimationsdienst von PolicyKit
+Name[el]=Πράκτορας πιστοποίησης PolicyKit
+Name[en_GB]=PolicyKit Authentication Agent
+Name[es]=Agente de autenticación de PolicyKit
+Name[eu]=PolicyKit autentifikatzeko agentea
+Name[fi]=PolicytKit-tunnistautumisohjelma
+Name[fr]=Agent d'authentification de PolicyKit
+Name[gl]=Axente de autenticación PolicyKit
+Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Name[hu]=PolicyKit hitelesítési ügynök
+Name[it]=Agente di autenticazione per PolicyKit
+Name[ja]=PolicyKit 認証エージェント
+Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Name[lt]=PolicyKit tapatybės nustatymo agentas
+Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Name[pl]=Agent uwierzytelniania PolicyKit
+Name[pt]=Agente de Autenticação PolicyKit
+Name[pt_BR]=Agente de autenticação PolicyKit
+Name[ro]=Agent de autentificare PolicyKit
+Name[sk]=Agent PolicyKit na overovanie totožnosti
+Name[sl]=PolicyKit program overjanja
+Name[sv]=Autentiseringsagent för PolicyKit
+Name[ta]=PolicyKit அங்கீகார முகவர்
+Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Name[uk]=Агент автентифікації PolicyKit
+Name[zh_CN]=PolicyKit 认证代理
+Name[zh_HK]=PolicyKit 驗證代理程式
+Name[zh_TW]=PolicyKit 驗證代理程式
+Comment=PolicyKit Authentication Agent
+Comment[ar]=مدير الاستيثاق PolicyKit
+Comment[be]=PolicyKit - аґент аўтэнтыфікацыі
+Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Comment[ca]=Agent d'autenticació del PolicyKit
+Comment[cs]=Ověřovací agent PolicyKit
+Comment[da]=Godkendelsesprogrammet PolicyKit
+Comment[de]=Legitimationsdienst von PolicyKit
+Comment[el]=Πράκτορας πιστοποίησης PolicyKit
+Comment[en_GB]=PolicyKit Authentication Agent
+Comment[es]=Agente de autenticación de PolicyKit
+Comment[eu]=PolicyKit autentifikatzeko agentea
+Comment[fi]=PolicytKit-tunnistautumisohjelma
+Comment[fr]=Agent d'authentification de PolicyKit
+Comment[gl]=Axente de autenticación PolicyKit
+Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Comment[hu]=PolicyKit hitelesítési ügynök
+Comment[it]=Agente di autenticazione per PolicyKit
+Comment[ja]=PolicyKit 認証エージェント
+Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Comment[lt]=PolicyKit tapatybės nustatymo agentas
+Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Comment[pl]=Agent uwierzytelniania PolicyKit
+Comment[pt]=Agente de Autenticação PolicyKit
+Comment[pt_BR]=Agente de autenticação PolicyKit
+Comment[ro]=Agent de autentificare PolicyKit
+Comment[sk]=Agent PolicyKit na overovanie totožnosti
+Comment[sl]=PolicyKit program overjanja
+Comment[sv]=Autentiseringsagent för PolicyKit
+Comment[ta]=PolicyKit அங்கீகார முகவர்
+Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Comment[uk]=Агент автентифікації PolicyKit
+Comment[zh_CN]=PolicyKit 认证代理
+Comment[zh_HK]=PolicyKit 驗證代理程式
+Comment[zh_TW]=PolicyKit 驗證代理程式
+Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+Terminal=false
+Type=Application
+Categories=
+NoDisplay=true
+OnlyShowIn=GNOME;
diff --git a/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb
new file mode 100644
index 0000000..e0e4a59
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb
@@ -0,0 +1,29 @@
+SUMMARY = "PolicyKit-gnome provides an Authentication Agent for PolicyKit"
+HOMEPAGE = "https://gitlab.gnome.org/Archive/policykit-gnome"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec"
+
+DEPENDS = "glib-2.0-native glib-2.0 gtk+3 polkit intltool-native"
+
+inherit autotools pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = " \
+    git://gitlab.gnome.org/Archive/policykit-gnome.git;protocol=https;branch=master \
+    file://0001-Select-the-current-user-to-authenticate-with-by-defa.patch \
+    file://0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch \
+    file://0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch \
+    file://0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch \
+    file://0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch \
+    file://polkit-gnome-authentication-agent-1.desktop \
+"
+SRCREV = "a0763a246a81188f60b0f9810143e49224dc752f"
+S = "${WORKDIR}/git"
+
+
+do_install:append() {
+  install -d ${D}${datadir}/applications
+  install -m644 ${WORKDIR}/polkit-gnome-authentication-agent-1.desktop \
+      ${D}${datadir}/applications
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/babl/babl_0.1.102.bb b/meta-openembedded/meta-gnome/recipes-gimp/babl/babl_0.1.102.bb
deleted file mode 100644
index b12dc16..0000000
--- a/meta-openembedded/meta-gnome/recipes-gimp/babl/babl_0.1.102.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-GIR_MESON_OPTION = "enable-gir"
-
-inherit setuptools3 gnomebase gobject-introspection vala
-
-DEPENDS += "lcms"
-
-# https://bugs.llvm.org/show_bug.cgi?id=45555
-CFLAGS:append:toolchain-clang:mipsarch = " -ffp-exception-behavior=ignore "
-CFLAGS:append:toolchain-clang:riscv64 = " -ffp-exception-behavior=ignore "
-
-SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
-SRC_URI[sha256sum] = "a88bb28506575f95158c8c89df6e23686e50c8b9fea412bf49fe8b80002d84f0"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/babl/babl_0.1.104.bb b/meta-openembedded/meta-gnome/recipes-gimp/babl/babl_0.1.104.bb
new file mode 100644
index 0000000..a79dd4d
--- /dev/null
+++ b/meta-openembedded/meta-gnome/recipes-gimp/babl/babl_0.1.104.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+GIR_MESON_OPTION = "enable-gir"
+
+inherit setuptools3 gnomebase gobject-introspection vala
+
+DEPENDS += "lcms"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
+SRC_URI[sha256sum] = "22e38e1d19c5391abc8ccf936033a9d035e8a8ec7523e5cd76a4c01137d7160c"
+
+FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.42.bb b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.44.bb
similarity index 96%
rename from meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.42.bb
rename to meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.44.bb
index fd75a38..3c1a024 100644
--- a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.42.bb
+++ b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.44.bb
@@ -26,7 +26,7 @@
 SHPV = "${@gnome_verdir("${PV}")}"
 
 SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "aba83a0cbaa6c56edc29ea22f2e8172950a53b96daa51592083d59222bdde02d"
+SRC_URI[sha256sum] = "0a4cdb41635e406a0849cd0d3f03caf7d97cab8aa13d28707d532d0089d56126"
 
 PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
 PACKAGECONFIG:class-native = "libpng librsvg"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_43.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.0.bb
similarity index 86%
rename from meta-openembedded/meta-gnome/recipes-gnome/eog/eog_43.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.0.bb
index 7dbc0ec..c95d0e6 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_43.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.0.bb
@@ -21,7 +21,7 @@
 
 REQUIRED_DISTRO_FEATURES = "opengl"
 
-SRC_URI[archive.sha256sum] = "9dcfdce5585a90e2bb1cf57e377cb1eb12d41bd9bcb9bbacdf506bc1b1354ef9"
+SRC_URI[archive.sha256sum] = "41d85fab05c430898dbfd847e48e1f5b4935dc3cbcee546e759a907eda671054"
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_43.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_44.0.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-gnome/evince/evince_43.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/evince/evince_44.0.bb
index b83c411..1c7103c 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_43.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_44.0.bb
@@ -6,6 +6,7 @@
     adwaita-icon-theme \
     appstream-glib \
     cairo \
+    desktop-file-utils-native \
     dbus \
     gdk-pixbuf \
     glib-2.0 \
@@ -33,7 +34,7 @@
 def gnome_verdir(v):
     return oe.utils.trim_version(v, 1)
 
-SRC_URI[archive.sha256sum] = "6d75ca62b73bfbb600f718a098103dc6b813f9050b9594be929e29b4589d2335"
+SRC_URI[archive.sha256sum] = "339ee9e005dd7823a13fe21c71c2ec6d2c4cb74548026e4741eee7b2703e09da"
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
index e1360af..43717a8 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
@@ -37,7 +37,7 @@
 PACKAGECONFIG ?= "oauth"
 
 PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
-PACKAGECONFIG[oauth]    = "-DENABLE_OAUTH2_WEBKITGTK4=ON -DENABLE_OAUTH2_WEBKITGTK=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk json-glib"
+PACKAGECONFIG[oauth]    = "-DENABLE_OAUTH2_WEBKITGTK=ON -DENABLE_OAUTH2_WEBKITGTK4=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk json-glib"
 PACKAGECONFIG[goa]    = "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts"
 PACKAGECONFIG[kerberos]    = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5"
 # BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
index 9db5e90..59d3b5a 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
@@ -9,5 +9,5 @@
 
 inherit gnomebase upstream-version-is-even
 
-SRC_URI[archive.sha256sum] = "0f25f73331edf53909be40f412b2a86939270327517616303f322de157083c35"
-PV = "3.48.0"
+SRC_URI[archive.sha256sum] = "5ce62c1e67f2789342a7f4a035b102f74e62ed85f60e81a5b7f3e04165404dff"
+PV = "3.48.1"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
index fda84ac..118d93a 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
@@ -1,3 +1,7 @@
+Use G_IR_SCANNER without passing additional environment
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 --- a/cmake/modules/GObjectIntrospection.cmake
 +++ b/cmake/modules/GObjectIntrospection.cmake
 @@ -122,9 +122,7 @@ macro(gir_add_introspection gir)
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
index 23c3a96..51eaf7c 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
@@ -9,6 +9,7 @@
 * TRY_RUN: does not work for OE
 * HAVE_LKSTRFTIME is set by recipe as configure option
 
+Upstream-Status: Inappropriate [Cross-compile specific]
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
 ---
  CMakeLists.txt | 23 -----------------------
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb
index 6d0f1f7..f9b6841 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb
@@ -33,3 +33,12 @@
     ${datadir}/metainfo \
     ${libdir}/nautilus \
 "
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross"
+
+do_write_config:append() {
+    cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+cpio = '${bindir}/cpio'
+EOF
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_44.0.bb
similarity index 93%
rename from meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_44.0.bb
index 1b09c20..09e8acc 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gdm/gdm_44.0.bb
@@ -21,7 +21,7 @@
 
 inherit gnomebase gsettings pkgconfig gobject-introspection gettext systemd useradd itstool gnome-help features_check
 
-SRC_URI[archive.sha256sum] = "94d70d6ed7df59fa7fde4fd02fed1168593a8adce10fcee113c148d52b392294"
+SRC_URI[archive.sha256sum] = "ce20b0a221dbf8cde0064b501fd8f38f73839152857c4535337eb09cc52f7f6c"
 
 EXTRA_OEMESON = " \
     -Dplymouth=disabled \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_43.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_43.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb
index 1c1803d..34c7822 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_43.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb
@@ -21,7 +21,7 @@
 def gnome_verdir(v):
     return oe.utils.trim_version(v, 1)
 
-SRC_URI[archive.sha256sum] = "f950d2d35c594bb6c8dbc9f5440cad7788ca0a8688e2b07846f83de9a4e3fc25"
+SRC_URI[archive.sha256sum] = "3bbb1b3775d4c277daf54aaab44b0eb83a4eb1f09f0391800041c9e56893ec11"
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_43.0.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb
similarity index 88%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_43.0.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb
index 3459b6d..53dafba 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_43.0.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb
@@ -29,7 +29,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRC_URI[archive.sha256sum] = "02c12ded3cf5053d17537d95ec69587f4b919899d7726eceecdb4b47ffb1c90f"
+SRC_URI[archive.sha256sum] = "14e763329f88309a7e152780d57361b543100e323906b34e0655fdc315b71043"
 
 FILES:${PN} += " \
     ${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_43.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb
similarity index 86%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_43.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb
index 06e06e9..dcf5ba7 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_43.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb
@@ -23,7 +23,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRC_URI[archive.sha256sum] = "afa5fc66e2f691553cc7d517db2363cff2d62cd1b5df455e5f4f7133139d21f2"
+SRC_URI[archive.sha256sum] = "96acd74cbf45652934515cc3447a3b895e933f86324ca92436f67ddd63c3a802"
 
 FILES:${PN} += " \
     ${datadir}/gnome-shell \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_43.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb
similarity index 92%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_43.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb
index 2545518..eae9d9d 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_43.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb
@@ -18,7 +18,7 @@
 
 SRC_URI += "file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
             file://0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch"
-SRC_URI[archive.sha256sum] = "3d6e153317486157596aa3802f87676414c570738f450a94a041fe8835420a69"
+SRC_URI[archive.sha256sum] = "42c773745d84ba14bc1cf1c4c6f4606148803a5cd337941c63964795f3c59d42"
 
 DEPENDS += " \
     fontconfig \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb
index 247bf14..d8674fc 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb
@@ -30,7 +30,7 @@
 PACKAGECONFIG[x11] = ",,libcanberra"
 
 SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'file://0001-gnome-disk-utility-remove-libcanberra-dependency.patch', '', d)}"
-SRC_URI[archive.sha256sum] = "7afca9805a6b92db6933dd7efcec4af8386c01bbc1f871e2dae4def7e192a2c5"
+SRC_URI[archive.sha256sum] = "02031097896cdb37d8717a5823f93e3723d4dfce7fdc4002c9dfcb16b7e7a3ef"
 
 EXTRA_OEMESON = "-Dman=false"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_44.0.bb
similarity index 82%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_44.0.bb
index 130c269..ff5e1e2 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_44.0.bb
@@ -16,7 +16,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRC_URI[archive.sha256sum] = "81c6bffb06d5332346e00eaecaec1bdcfd617c51dfd95bcd058d6c76c76dd2b9"
+SRC_URI[archive.sha256sum] = "a1511df30b228cc2ef1175dd9d2b93438ea912e25913404b263cf3d457bb9f97"
 
 FILES:${PN} += " \
     ${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-build-Use-the-appropriate-dependency-object.patch b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-build-Use-the-appropriate-dependency-object.patch
deleted file mode 100644
index 838ca1a..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-build-Use-the-appropriate-dependency-object.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 06240574626eb21af37cf7dde5bf81e892dff467 Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Wed, 5 Oct 2022 22:15:37 +0100
-Subject: [PATCH] build: Use the appropriate dependency object
-
-Just using `link_with` will not ensure that the GOA web extension shared
-module is properly built against libgoa-backend and libgoa; the
-generated headers must be transitively available by the time we build
-the shared module.
-
-Fixes: #226
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/commit/fe86bfb0271735c8130367c46536b08dad5c20d8]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/goabackend/meson.build | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/goabackend/meson.build b/src/goabackend/meson.build
-index f5382b3..865b2d2 100644
---- a/src/goabackend/meson.build
-+++ b/src/goabackend/meson.build
-@@ -157,9 +157,8 @@ libgoa_web_extension = shared_module(
-   'goawebextension',
-   libgoawebextension_sources,
-   include_directories: common_incs + [goa_inc],
--  dependencies: deps,
-+  dependencies: [deps, libgoa_backend_dep],
-   c_args: cflags,
--  link_with: libgoa_backend,
-   install: true,
-   install_dir: join_paths(goa_pkglibdir, 'web-extensions')
- )
--- 
-2.39.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.46.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
similarity index 64%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.46.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
index ce02a50..948a738 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.46.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
@@ -6,22 +6,20 @@
 
 inherit gnomebase gsettings gobject-introspection gtk-icon-cache vala features_check
 
-DEPENDS = "gtk+3 gtk+3-native gdk-pixbuf dbus json-glib libxml2 webkitgtk glib-2.0 rest libsecret"
+DEPENDS = "gdk-pixbuf dbus glib-2.0"
 
-SRC_URI += "file://0001-build-Use-the-appropriate-dependency-object.patch"
-SRC_URI[archive.sha256sum] = "5e7859ce4858a6b99d3995ed70527d66e297bb90bbf75ec8780fe9da22c1fcaa"
+SRC_URI[archive.sha256sum] = "418bb9fcffdbd72a98205ad365137617fc1e3551a54de74f6a98d45d266175bf"
 
-PACKAGECONFIG_SOUP ?= "soup3"
-PACKAGECONFIG ?= "kerberos owncloud lastfm google windows_live ${PACKAGECONFIG_SOUP}"
+PACKAGECONFIG ?= "goabackend kerberos owncloud lastfm google windows_live"
 
+# goabackend requires webkitgtk to be built with gtk+3 and gcr3
+PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk+3 gtk+3-native json-glib libxml2 libsoup rest libsecret webkitgtk"
 PACKAGECONFIG[kerberos] = "-Dkerberos=true, -Dkerberos=false,krb5 gcr3"
 PACKAGECONFIG[exchange] = "-Dexchange=true, -Dexchange=false"
 PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false"
 PACKAGECONFIG[owncloud] = "-Downcloud=true, -Downcloud=false"
 PACKAGECONFIG[windows_live] = "-Dwindows_live=true, -Dwindows_live=false"
 PACKAGECONFIG[lastfm] = "-Dlastfm=true, -Dlastfm=false"
-PACKAGECONFIG[soup2] = ",,libsoup-2.4,,,soup3"
-PACKAGECONFIG[soup3] = ",,libsoup-3.0,,,soup2"
 
 FILES:${PN} += " \
     ${datadir}/dbus-1 \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
similarity index 93%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
index 72ab2ea..cdf9780 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
@@ -36,7 +36,7 @@
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[doc] = "-Dmanuals=true,-Dmanuals=false,libxslt-native docbook-xsl-stylesheets-native"
 
-SRC_URI[archive.sha256sum] = "c7ac7458d533f29d955011c74b76224d79ea31bcc12e9d6d0ce7b6c3704d08e1"
+SRC_URI[archive.sha256sum] = "e78e210397d3c62809c6cd5521da6eccb4a11ddea5bf2af8632a47f4da5c829e"
 
 do_install:append() {
     # make gnome-photos available on all desktops
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb
index 12f48bc..3f642f4 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb
@@ -22,7 +22,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
 
-SRC_URI[archive.sha256sum] = "3fb9949501385c8c14618e78f178d952df98ad8c91080f4c5e1568c7393ae1f2"
+SRC_URI[archive.sha256sum] = "ccf829a96526135e9e9f917526515d36a5092bdfa316f3737dd8c5a524dbf2c6"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.0.bb
similarity index 88%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.0.bb
index fe24695..e8f2014 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.0.bb
@@ -25,7 +25,7 @@
 REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
 GIR_MESON_OPTION = ""
 
-SRC_URI[archive.sha256sum] = "3513bb24fc6f8181667223a64a067534fdccf3bf66326a9403d38b0f0d6013d0"
+SRC_URI[archive.sha256sum] = "b417ada1c1342a8cf29837ecf2dec9bdcdb754235b1a161b6435c3d11f210999"
 
 PACKAGECONFIG ??= " \
     cups nm \
@@ -42,5 +42,5 @@
 
 FILES:${PN} += " \
     ${systemd_user_unitdir} \
-    /usr/lib/gnome-settings-daemon-43/libgsd.so \
+    /usr/lib/gnome-settings-daemon-44/libgsd.so \
 "
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_43.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.0.bb
similarity index 84%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_43.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.0.bb
index 93d791a..126e5ef 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_43.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.0.bb
@@ -8,7 +8,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
 
-SRC_URI[archive.sha256sum] = "adde04bd946a13113557e4c34c890bbe9077505a6a3f0755f17bea1c6e4a2d17"
+SRC_URI[archive.sha256sum] = "8c345e72f31a1e37f55063e0b15997301b01194ed698772fd87aeb50cbb101ab"
 
 EXTRA_OEMESON += " \
     -Dextension_set=all \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_43.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.0.bb
similarity index 93%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_43.4.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.0.bb
index f941c41..f497f5b 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_43.4.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.0.bb
@@ -29,7 +29,7 @@
 
 EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
 
-SRC_URI[archive.sha256sum] = "e9df060ebab59f49697d5ef2630ec36de60454169dc191af60d3483720aadb3e"
+SRC_URI[archive.sha256sum] = "619719f9529e0bb1dad30fadbb780d7b1d99940a6db1f71df51bc737341830af"
 
 PACKAGECONFIG ?= "flatpak"
 PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.46.7.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.0.bb
similarity index 95%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.46.7.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.0.bb
index d9afeec..75e609d 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.46.7.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.0.bb
@@ -22,7 +22,7 @@
 
 SRC_URI = "git://gitlab.gnome.org/GNOME/gnome-terminal.git;protocol=https;nobranch=1"
 SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-SRCREV = "816edf80cd7bf7f253366099ea9fcaf361676139"
+SRCREV = "a85ecc959344ee2e0d345f7dd081dc781d95d364"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ?= ""
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_43.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb
similarity index 83%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_43.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb
index a2ac710..40bcd27 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_43.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb
@@ -19,7 +19,7 @@
 
 REQUIRED_DISTRO_FEATURES = "opengl"
 
-SRC_URI[archive.sha256sum] = "973a4b0deb68f9f91a54a4dd415b6afde9b5ae3ee684bc761471f94290f9f6cb"
+SRC_URI[archive.sha256sum] = "f67bc3780734ffa815fcc4c5daa7b555d24e459f81ea2b548e6a85c1612a31ca"
 
 FILES:${PN} += " \
     ${datadir}/metainfo \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
index a07cd49..6e565e6 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
@@ -1,4 +1,4 @@
-From 9deaed70221a12e26f968be26233b75fa5669476 Mon Sep 17 00:00:00 2001
+From a76c5c40f95b2961bed8f6427080f0fcf6ec00d6 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
 Date: Sat, 15 May 2021 23:25:09 +0200
 Subject: [PATCH] Avoid running trackertestutils
@@ -12,23 +12,21 @@
 Upstream-Status: Inappropriate [OE-Specific]
 
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
 ---
  meson.build | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index 6a03778..17ef1e1 100644
+index fca5f98..3c1aa06 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -78,7 +78,7 @@ totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required:
+@@ -98,7 +98,7 @@ totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required:
  totem_plparser_mini_dep = dependency('totem-plparser-mini', version: '>= 3.4.1', required: false)
  tracker_sparql_dep = dependency('tracker-sparql-2.0', version: '>= 2.3.0', required: false)
  tracker3_dep = dependency('tracker-sparql-3.0', required: false)
 -tracker3_testutils_dep = dependency('tracker-testutils-3.0', required: false)
 +tracker3_testutils_dep = dependency('tracker-testutils-3.0-avoid-find', required: false)
  
- lua_dep = dependency('lua', version: '>= 5.3.0', required: false)
- if not lua_dep.found()
--- 
-2.31.1
-
+ lua_pkg = [
+   'lua',
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb
similarity index 82%
rename from meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb
index b96194d..00474ce 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb
@@ -17,6 +17,6 @@
 inherit gnomebase gnome-help vala
 
 SRC_URI += "file://0001-Avoid-running-trackertestutils.patch"
-SRC_URI[archive.sha256sum] = "8518c3d954f93095d955624a044ce16a7345532f811d299dbfa1e114cfebab33"
+SRC_URI[archive.sha256sum] = "fe6f4dbe586c6b8ba2406394e202f22d009d642a96eb3a54f32f6a21d084cdcb"
 
 FILES:${PN} += "${libdir}/grilo-0.3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.15.bb b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.15.bb
index d51a27f..526a859 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.15.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/grilo/grilo_0.3.15.bb
@@ -26,3 +26,6 @@
 # Once we have a recipe for 'totem-plparser' this can turn into a PACKAGECONFIG
 EXTRA_OEMESON = "-Denable-grl-pls=false"
 
+do_compile:append() {
+        sed -i -e 's,${B}/../,,' ${B}/src/grl-type-builtins.h
+}
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch b/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch
index 29eeef3..6c32bfa 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch
@@ -12,7 +12,7 @@
 | 21 make[3]: *** [install-vapiDATA] Error 1
 | 22 make[3]: *** Waiting for unfinished jobs....
 
-Upstream-Stauts: Pending
+Upstream-Status: Pending
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 ---
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
index 1332a958..7a40ae3 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
@@ -7,22 +7,8 @@
 
 Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
 ---
- src/libtracker-miner/tracker-miner-enum-types.c.template        | 2 +-
- .../tracker-miners-enum-types.c.template                        | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/libtracker-miner/tracker-miner-enum-types.c.template b/src/libtracker-miner/tracker-miner-enum-types.c.template
-index 7be7a01..46a4dc9 100644
---- a/src/libtracker-miner/tracker-miner-enum-types.c.template
-+++ b/src/libtracker-miner/tracker-miner-enum-types.c.template
-@@ -7,7 +7,7 @@
-
- /*** BEGIN file-production ***/
- /* enumerations from "@basename@" */
--#include "@filename@"
-+#include "tracker-miner-enums.h"
- /*** END file-production ***/
-
+ src/libtracker-miners-common/tracker-miner-enum-types.c.template        | 1 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
 
 diff --git a/src/libtracker-miners-common/tracker-miners-enum-types.c.template b/src/libtracker-miners-common/tracker-miners-enum-types.c.template
 index c712dda..cb449e2 100644
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.4.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb
similarity index 75%
rename from meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.4.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb
index cbd1d0d..d093697 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.4.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb
@@ -16,10 +16,9 @@
 inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
 
 SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch \
-            file://0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch \
+	    file://0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch \
            "
-
-SRC_URI[archive.sha256sum] = "101e3608f1c28bfed8ae25522f7a720b559f889a76e280afbe50a4d8b064f92c"
+SRC_URI[archive.sha256sum] = "17966603dc432a98526b490586a48acd7f9f59935f7895dfc51729a46a6901a3"
 
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
@@ -36,25 +35,31 @@
     pdf \
     png \
     tiff \
+    raw \
     xml \
     ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
+    battery \
+    networkmanager \
 "
 
 PACKAGECONFIG[battery]     = "-Dbattery_detection=upower,-Dbattery_detection=none,upower"
-PACKAGECONFIG[ffmpeg]     = ",,ffmpeg"
+PACKAGECONFIG[cue]     = "-Dcue=enabled,-Dcue=disabled,libcue"
+PACKAGECONFIG[ffmpeg]     = "-Dgeneric_media_extractor=libav,,ffmpeg"
 PACKAGECONFIG[gexiv2]     = ",,gexiv2"
-PACKAGECONFIG[gstreamer]  = ",,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG[gupnp]      = ",,gupnp-dlna"
+PACKAGECONFIG[gstreamer]  = "-Dgeneric_media_extractor=gstreamer,,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[gupnp]      = "-Dgstreamer_backend=gupnp,,gupnp-dlna"
 PACKAGECONFIG[gif]        = "-Dgif=enabled,-Dgif=disabled,giflib"
-PACKAGECONFIG[icu]        = ",,icu"
+PACKAGECONFIG[icu]        = "-Dcharset_detection=icu,,icu"
+PACKAGECONFIG[iso]        = "-Diso=enabled,-Diso=disabled,libosinfo"
 PACKAGECONFIG[jpeg]       = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
 PACKAGECONFIG[libexif]    = "-Dexif=enabled,-Dexif=disabled,libexif"
 PACKAGECONFIG[libgsf]     = "-Dgsf=enabled,-Dgsf=disabled,libgsf"
 PACKAGECONFIG[pdf]        = "-Dpdf=enabled,-Dpdf=disabled,poppler"
 PACKAGECONFIG[png]        = "-Dpng=enabled,-Dpng=disabled,libpng"
 PACKAGECONFIG[tiff]       = "-Dtiff=enabled,-Dtiff=disabled,tiff"
+PACKAGECONFIG[raw]       = "-Draw=enabled,-Draw=disabled,libraw"
 PACKAGECONFIG[xml]        = "-Dxml=enabled,-Dxml=disabled,libxml2"
-PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
+PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanager"
 
 # For security reasons it is strongly recommended to set add meta-security in
 # your layers and 'libseccomp' to PACKAGECONFIG".
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
similarity index 63%
rename from meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
index 195e139..8ea24ca 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
@@ -5,21 +5,24 @@
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase pkgconfig itstool gnome-help features_check gettext
+inherit gnomebase pkgconfig itstool gtk-icon-cache features_check gettext
 
 DEPENDS = " \
-    yelp-tools-native \
+    desktop-file-utils-native \
+    hicolor-icon-theme \
     gtk+3 \
+    gtk+3-native \
 "
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
-SRC_URI[archive.sha256sum] = "b0d7ca1e0c1868fa18f05c210260d8a7be1f08ee13b7f5cfdbab9b61fa16f833"
+SRC_URI[archive.sha256sum] = "c15582301ed90b9d42ce521dbccf99a989f22f12041bdd5279c6636da99ebf65"
 SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
 
-PACKAGECONFIG[libnotify] = "-Dlibnotify=true,-Dlibnotify=false,libnotify"
+PACKAGECONFIG ?= "webkitgtk"
 PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
 
 PACKAGES =+ "${PN}-gdialog"
 FILES:${PN}-gdialog = "${bindir}/gdialog"
+FILES:${PN}-doc = "${datadir}/man ${datadir}/help"
 RDEPENDS:${PN}-gdialog += "perl"
diff --git a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
index 99bd09a..944d2f9 100644
--- a/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
+++ b/meta-openembedded/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
@@ -3,6 +3,8 @@
 Date: Sun, 8 Dec 2019 23:42:00 +0100
 Subject: [PATCH] musl: Hack to fix configure
 
+Upstream-Status: Inappropriate [Musl Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  meson.build | 11 ++++++++---
  1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch
index 8ea34cf..7a052b2 100644
--- a/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch
+++ b/meta-openembedded/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch
@@ -3,6 +3,7 @@
 Date: Tue, 25 Jul 2017 18:28:15 -0700
 Subject: [PATCH] Makefile.am: Link with libm for powl() API
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  Makefile.am | 2 +-
diff --git a/meta-openembedded/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.0.bb b/meta-openembedded/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.0.bb
rename to meta-openembedded/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.bb
index acd4acd..71c5244 100644
--- a/meta-openembedded/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.bb
@@ -15,7 +15,7 @@
 SRC_URI = "git://github.com/aruiz/webp-pixbuf-loader.git;protocol=https;nobranch=1"
 
 S = "${WORKDIR}/git"
-SRCREV = "eaa4ea02fd9d8ea8e0f4aac00dc6fa5b0eddd700"
+SRCREV = "a35014104a226265e44fe30fcdb4df9305af3466"
 
 FILES:${PN} = " \
     ${datadir}/thumbnailers/webp-pixbuf.thumbnailer \
diff --git a/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_43.1.bb b/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.0.bb
similarity index 81%
rename from meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_43.1.bb
rename to meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.0.bb
index 050ce1a..c92037d 100644
--- a/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_43.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.0.bb
@@ -24,10 +24,11 @@
 SRC_URI = "git://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome.git;protocol=https;nobranch=1"
 
 S = "${WORKDIR}/git"
-SRCREV = "4fd5a8bf16b01c78ed19764415cb26d29aaf7eab"
+SRCREV = "8e1c4fd928be500208ca1df62441a56e2569bfb8"
 
-PACKAGECONFIG ?= ""
+PACKAGECONFIG ?= "screenshot screencast ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
 
+PACKAGECONFIG[wayland] = ",,wayland-native"
 PACKAGECONFIG[screenshot] = ",,,gnome-shell"
 PACKAGECONFIG[screencast] = ",,,mutter"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch b/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch
index 90e9975..f765691 100644
--- a/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch
+++ b/meta-openembedded/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch
@@ -5,6 +5,7 @@
 
 Adds much needed GNU_HASH section into the .so
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  make/linux/Makefile | 2 +-
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
index 1087b0e..528bd15 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
@@ -5,6 +5,7 @@
 
 include stdint.h for getting the definitions for int types
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  basics.h | 17 +++++++++--------
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
index 3abd381..6e34a8a 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
@@ -1,7 +1,8 @@
 Change the order of linker flags such that -shared is appearig after -pie/-fpie
 this helps in building the package when secuiry flags are enabled
 
--Khem
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
 Index: caps-0.9.24/Makefile
 ===================================================================
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
index 682cf6e..0451a45 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
@@ -8,6 +8,7 @@
 Patch from debian
 http://sources.debian.net/src/cdparanoia/3.10.2%2Bdebian-11/debian/patches/04-endian.patch
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  interface/interface.c | 2 +-
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
index 7699017..b364a3b 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
@@ -5,6 +5,7 @@
 
 Make it portable across different platforms
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  utils.h | 13 +++++++------
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
index 024479c..ea30559 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
@@ -5,6 +5,7 @@
 
 error: format not a string literal and no format arguments
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  main.c | 4 ++--
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
index 9b268b7..2738ba7 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
@@ -1,3 +1,8 @@
+Fix build on aarch64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 Index: cdparanoia-III-10.2/configure.in
 ===================================================================
 --- cdparanoia-III-10.2.orig/configure.in
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
index 06ee820..96c5dda 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
@@ -1,3 +1,8 @@
+Fix build out of tree builds
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 Index: cdparanoia-III-10.2/Makefile.in
 ===================================================================
 --- cdparanoia-III-10.2.orig/Makefile.in
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
index 3e43c0d..e7f9183 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
@@ -22,4 +22,4 @@
 CFLAGS += " -I${S}"
 
 FILES:${PN} += "${datadir}/dbus-1"
-FILES:${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
index b25e446..0713797 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
@@ -19,4 +19,4 @@
 inherit autotools pkgconfig
 
 FILES:${PN} += "${datadir}/dbus-1"
-FILES:${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
index 498607d..f3d1435 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
@@ -5,6 +5,7 @@
 somewhere else. Allow the user to pass CROSS_ROOT to point to the
 root of the cross-compilation environment.
 
+Upstream-Status: Inappropriate [Cross-compile specific]
 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
 ---
 diff -rup dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
index e89f9a3..8ff1e02 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
@@ -6,6 +6,7 @@
 stime() has been deprecated in glibc 2.31+ its recommended to
 replaced with clock_settime()
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  util/dvbdate/dvbdate.c | 5 ++++-
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
index 4dc7c68..ce51084 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
@@ -6,6 +6,7 @@
 Do not build .a library when enable_static is set to "no"
 Do not build .so library when enable_shared is set to "no"
 
+Upstream-Status: Pending
 Signed-off-by: Romain Naour <romain.naour@openwide.fr>
 ---
  Make.rules | 10 ++++++++--
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
index 45bfad9..6ec5b08 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
@@ -5,6 +5,7 @@
 
 Tests needs static libraries, remove them for shared only build.
 
+Upstream-Status: Inappropriate [Cross-compile specific]
 Signed-off-by: Romain Naour <romain.naour@openwide.fr>
 ---
  Makefile | 1 -
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
index f12d35b..dbb848c 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
@@ -1,3 +1,8 @@
+Use -O1 with gcc > 6
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 diff -r 3d43b280298c lib/libucsi/endianops.h
 --- a/lib/libucsi/endianops.h	Fri Mar 21 20:26:36 2014 +0100
 +++ b/lib/libucsi/endianops.h	Fri Jan 19 06:56:15 2018 +0000
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
index e100c65..59abd32 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
@@ -1,3 +1,7 @@
+Fix build with newer than 4.14 kernels
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Index: dvb-apps/util/dst-utils/dst_test.c
 ===================================================================
 --- dvb-apps.orig/util/dst-utils/dst_test.c
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch
index 9de0e4f..bb8e438 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch
@@ -4,6 +4,8 @@
 Subject: [PATCH] Fix build with fmt 9.0
 
 Fixes #2681
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/database/sql_format.h | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
index c1c8899..64fd578 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
@@ -3,6 +3,8 @@
 Date: Fri, 15 Dec 2017 10:14:05 -0600
 Subject: [PATCH] gstd:yocto compatibility
 
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  gstd/Makefile.am                | 2 +-
  3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch
new file mode 100644
index 0000000..55a5977
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch
@@ -0,0 +1,44 @@
+From 2eaffc9ac8b47c354404075761fe8f76fad0ced4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 24 Jan 2023 01:18:25 -0800
+Subject: [PATCH] file_sink.cpp: Avoid dangling-reference
+
+Fixes following errors with gcc-13
+
+../git/src/cam/file_sink.cpp:92:45: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
+   92 |                 const FrameMetadata::Plane &meta = buffer->metadata().planes()[i];
+      |                                             ^~~~
+../git/src/cam/file_sink.cpp:92:81: note: the temporary was destroyed at the end of the full expression '(& buffer->libcamera::FrameBuffer::metadata())->libcamera::FrameMetadata::planes().libcamera::Span<const libcamera::FrameMetadata::Plane>::operator[](i)'
+   92 |                 const FrameMetadata::Plane &meta = buffer->metadata().planes()[i];
+      |                                                                                 ^
+cc1plus: all warnings being treated as errors
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2023-January/036575.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/apps/cam/file_sink.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp
+index b32aad24..9f4c5648 100644
+--- a/src/apps/cam/file_sink.cpp
++++ b/src/apps/cam/file_sink.cpp
+@@ -114,13 +114,13 @@ void FileSink::writeBuffer(const Stream *stream, FrameBuffer *buffer,
+ 	}
+ 
+ 	for (unsigned int i = 0; i < buffer->planes().size(); ++i) {
+-		const FrameMetadata::Plane &meta = buffer->metadata().planes()[i];
++		unsigned int bytesused = buffer->metadata().planes()[i].bytesused;
+ 
+ 		Span<uint8_t> data = image->data(i);
+-		unsigned int length = std::min<unsigned int>(meta.bytesused, data.size());
++		unsigned int length = std::min<unsigned int>(bytesused, data.size());
+ 
+-		if (meta.bytesused > data.size())
+-			std::cerr << "payload size " << meta.bytesused
++		if (bytesused > data.size())
++			std::cerr << "payload size " << bytesused
+ 				  << " larger than plane size " << data.size()
+ 				  << std::endl;
+ 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb
index cbcc33a..12d4299 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb
@@ -8,7 +8,10 @@
     file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
 "
 
-SRC_URI = "git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master"
+SRC_URI = " \
+        git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
+        file://0001-file_sink.cpp-Avoid-dangling-reference.patch \
+"
 
 SRCREV = "6cf637eb253a68edebe59505bea55435fafb00cd"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
index df0c235..51761eb 100755
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
@@ -1,3 +1,8 @@
+Install all examples
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 Index: libdc1394/examples/Makefile.am
 ===================================================================
 --- libdc1394.orig/examples/Makefile.am
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch
new file mode 100644
index 0000000..ac9e70a
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch
@@ -0,0 +1,27 @@
+From 3b74181d626f7dedb47377450ca7c43457a66cda Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_L_K@t-online.de>
+Date: Sat, 1 Apr 2023 04:42:32 +0200
+Subject: [PATCH] Makefile: add clean target
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a51c2c9..fbe2aec 100644
+--- a/Makefile
++++ b/Makefile
+@@ -19,5 +19,7 @@ install: all
+ uninstall:
+ 	rm -rf '$(DESTDIR)$(PREFIX)/include/ffnvcodec' '$(DESTDIR)$(PREFIX)/$(LIBDIR)/pkgconfig/ffnvcodec.pc'
+ 
+-.PHONY: all install uninstall
++clean: uninstall
++
++.PHONY: all clean install uninstall
+ 
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.0.16.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.0.16.0.bb
index 411c406..5ef7ead 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.0.16.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.0.16.0.bb
@@ -3,7 +3,10 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${S}/include/ffnvcodec/dynlink_cuda.h;beginline=1;endline=26;md5=bb54a418154445b0aa99e15f640eacf4"
 
-SRC_URI = "git://git.videolan.org/git/ffmpeg/nv-codec-headers.git;branch=master;protocol=https"
+SRC_URI = " \
+    git://git.videolan.org/git/ffmpeg/nv-codec-headers.git;branch=master;protocol=https \
+    file://0001-Makefile-add-clean-target.patch \
+"
 SRCREV = "c5e4af74850a616c42d39ed45b9b8568b71bf8bf"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.67.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.70.bb
similarity index 98%
rename from meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.67.bb
rename to meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.70.bb
index 0d4dd63..56595e7 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.67.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.70.bb
@@ -13,12 +13,12 @@
 
 DEPENDS = "dbus ncurses"
 
-SRCREV = "26623ff8cb3c9ba774537379a1835c5efb0d5159"
+SRCREV = "9f7d60c1e84cc0481afc3f6ccf76e127567943a8"
 SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
-inherit gsettings meson pkgconfig systemd gettext useradd
+inherit meson pkgconfig systemd gettext useradd
 
 USERADD_PACKAGES = "${PN}"
 
@@ -85,7 +85,6 @@
     ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez bluez-opus ${BLUETOOTH_AAC}', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio gtk', 'gsettings', '', d)} \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
     ${PIPEWIRE_SESSION_MANAGER} \
     ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera \
@@ -285,6 +284,7 @@
 FILES:${PN}-tools = " \
     ${bindir}/pw-cat \
     ${bindir}/pw-cli \
+    ${bindir}/pw-config \
     ${bindir}/pw-dot \
     ${bindir}/pw-dsdplay \
     ${bindir}/pw-dump \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
index 4f02a66..3085bd4 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
@@ -1,11 +1,11 @@
 From d0313be5fb947df399a4db24a5f9244510d2ce87 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 12 Jul 2017 16:36:06 -0700
-Subject: [PATCH] remove the #error line and live without file-type detection
- with pipes
+Subject: [PATCH] remove the #error line and live without file-type detection with pipes
 
 this fallback is executed with musl
 
+Upstream-Status: Inappropriate [musl specific]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/formats.c | 1 -
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
index ace8743..011cbc2 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
@@ -4,7 +4,7 @@
 HOMEPAGE = "http://sox.sourceforge.net"
 SECTION = "audio"
 
-DEPENDS = "libpng ffmpeg libsndfile1 libtool"
+DEPENDS = "libpng libsndfile1 libtool"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \
                    magic \
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
index 078ac41..b9f5ad5 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
@@ -8,6 +8,7 @@
 the libs and header locations instead of assuming /opt/vc which might
 work on some distros ( like raspbian ) but not everywhere
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  configure.ac | 31 +++++++++++--------------------
diff --git a/meta-openembedded/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.6.0.bb b/meta-openembedded/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.6.0.bb
index a721161..3838927 100644
--- a/meta-openembedded/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.6.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.6.0.bb
@@ -19,7 +19,7 @@
 SRC_URI = "git://github.com/emersion/xdg-desktop-portal-wlr.git;protocol=https;nobranch=1"
 
 S = "${WORKDIR}/git"
-SRCREV = "0a8bfa14607022a080f8b6eabc4757d1918d3cd9"
+SRCREV = "6737c209578e7f17536dbcb8fb2169dcf86ce528"
 
 PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'basu', d)}"
 
diff --git a/meta-openembedded/meta-networking/licenses/netperf b/meta-openembedded/meta-networking/licenses/netperf
deleted file mode 100644
index 3f3ceb2..0000000
--- a/meta-openembedded/meta-networking/licenses/netperf
+++ /dev/null
@@ -1,43 +0,0 @@
-
- 
-              Copyright (C) 1993 Hewlett-Packard Company
-                         ALL RIGHTS RESERVED.
- 
-  The enclosed software and documentation includes copyrighted works
-  of Hewlett-Packard Co. For as long as you comply with the following
-  limitations, you are hereby authorized to (i) use, reproduce, and
-  modify the software and documentation, and to (ii) distribute the
-  software and documentation, including modifications, for
-  non-commercial purposes only.
-      
-  1.  The enclosed software and documentation is made available at no
-      charge in order to advance the general development of
-      high-performance networking products.
- 
-  2.  You may not delete any copyright notices contained in the
-      software or documentation. All hard copies, and copies in
-      source code or object code form, of the software or
-      documentation (including modifications) must contain at least
-      one of the copyright notices.
- 
-  3.  The enclosed software and documentation has not been subjected
-      to testing and quality control and is not a Hewlett-Packard Co.
-      product. At a future time, Hewlett-Packard Co. may or may not
-      offer a version of the software and documentation as a product.
-  
-  4.  THE SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS".
-      HEWLETT-PACKARD COMPANY DOES NOT WARRANT THAT THE USE,
-      REPRODUCTION, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR
-      DOCUMENTATION WILL NOT INFRINGE A THIRD PARTY'S INTELLECTUAL
-      PROPERTY RIGHTS. HP DOES NOT WARRANT THAT THE SOFTWARE OR
-      DOCUMENTATION IS ERROR FREE. HP DISCLAIMS ALL WARRANTIES,
-      EXPRESS AND IMPLIED, WITH REGARD TO THE SOFTWARE AND THE
-      DOCUMENTATION. HP SPECIFICALLY DISCLAIMS ALL WARRANTIES OF
-      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-  
-  5.  HEWLETT-PACKARD COMPANY WILL NOT IN ANY EVENT BE LIABLE FOR ANY
-      DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-      (INCLUDING LOST PROFITS) RELATED TO ANY USE, REPRODUCTION,
-      MODIFICATION, OR DISTRIBUTION OF THE SOFTWARE OR DOCUMENTATION.
- 
-
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb b/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
index 3dc304b..de7e2d3 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
@@ -2,9 +2,8 @@
 HOMEPAGE = "https://www.harding.motd.ca/autossh/"
 
 LICENSE = "BSD-1-Clause & BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://autossh.spec;md5=80a6701134723fd3420e733b46a0eb97 \
-                    file://autossh.c;md5=76c37acd40ac45050a4ced145b1e2707;startline=7;endline=23 \
-                    file://daemon.h;md5=6bbeaac616b9bc8de7b40049004f4289;startline=7;endline=39"
+LIC_FILES_CHKSUM = "file://autossh.c;beginline=7;endline=22;md5=9ae0c9b04856148d77984ef58536732b \
+                    file://daemon.h;beginline=7;endline=36;md5=839bb7bf781ff48da4a3fec2a62a1a47"
 
 SRC_URI = "https://www.harding.motd.ca/autossh/${BP}.tgz"
 SRC_URI[md5sum] = "2b804bc1bf6d2f2afaa526d02df7c0a2"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch
new file mode 100644
index 0000000..133ccc4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch
@@ -0,0 +1,39 @@
+From b0c98f93a7f427d18206c79bf2a0350dc81172f6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Apr 2023 10:44:08 -0700
+Subject: [PATCH] configure: Replace use of AC_EGREP_CPP
+
+Use AC_COMPILE_IFELSE instead to compute platform support for arp ioctls
+AC_EGREP_CPP does not work as used with upcoming autoconf 2.72
+
+Upstream-Status: Submitted [https://github.com/ofalk/libdnet/pull/85]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/acinclude.m4 | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
+index d6350a2..3699bf1 100644
+--- a/m4/acinclude.m4
++++ b/m4/acinclude.m4
+@@ -196,12 +196,11 @@ dnl
+ AC_DEFUN([AC_DNET_IOCTL_ARP],
+     [AC_MSG_CHECKING(for arp(7) ioctls)
+     AC_CACHE_VAL(ac_cv_dnet_ioctl_arp,
+-    AC_EGREP_CPP(werd,[#include <sys/types.h>
+-                       #define BSD_COMP
+-                       #include <sys/ioctl.h>
+-                       #ifdef SIOCGARP
+-                 werd
+-                       #endif],
++    AC_COMPILE_IFELSE(
++        [AC_LANG_PROGRAM([[#include <sys/types.h>
++                           #define BSD_COMP
++                           #include <sys/ioctl.h>]],
++                          [[int foo = SIOCGARP;]])],
+     ac_cv_dnet_ioctl_arp=yes,
+     ac_cv_dnet_ioctl_arp=no))
+     case "$host_os" in
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch
new file mode 100644
index 0000000..8a78e7a
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch
@@ -0,0 +1,27 @@
+From 85d8338a3ebc01a3ea7600aa602139c4eac3be07 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Apr 2023 12:13:09 -0700
+Subject: [PATCH] configure: Use pkg-config variable to find check include paths
+
+Upstream-Status: Submitted [https://github.com/ofalk/libdnet/pull/85]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3f0c404..553b487 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -153,7 +153,7 @@ AC_ARG_WITH(check,
+   esac ],
+ [ PKG_CHECK_MODULES([CHECK], [check])
+   if test -n "${CHECK_LIBS}"; then
+-     CHECKINC="-I${prefix}/include"
++     CHECKINC="${CHECK_CFLAGS}"
+      CHECKLIB="${CHECK_LIBS}"
+      AC_MSG_RESULT(yes)
+   else
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
deleted file mode 100644
index 9f2ff51..0000000
--- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "dumb networking library"
-HOMEPAGE = "http://code.google.com/p/libdnet/"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
-
-SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1;protocol=https"
-SRCREV = "3e782472d2a58d5e1b94d04eda4a364c2d257600"
-
-UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit autotools multilib_script
-
-acpaths = "-I ./config/"
-
-BBCLASSEXTEND = "native"
-
-MULTILIB_SCRIPTS = "${PN}:${bindir}/dnet-config"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb
new file mode 100644
index 0000000..05c8fb3
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "dumb networking library"
+HOMEPAGE = "https://github.com/ofalk/libdnet"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
+
+SRC_URI = "git://github.com/ofalk/libdnet.git;nobranch=1;protocol=https \
+           file://0001-configure-Replace-use-of-AC_EGREP_CPP.patch \
+           file://0001-configure-Use-pkg-config-variable-to-find-check-incl.patch"
+SRCREV = "a03043bec8e66b240a45555e37147b22db182c21"
+
+UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit autotools multilib_script pkgconfig
+
+DEPENDS += "libcheck"
+
+EXTRA_AUTORECONF += "-I ./config"
+BBCLASSEXTEND = "native"
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/dnet-config"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.6.bb
similarity index 98%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.4.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.6.bb
index 5ff90be..31687a3 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.6.bb
@@ -31,7 +31,7 @@
     file://enable-iwd.conf \
 "
 
-SRC_URI[sha256sum] = "86ee16a2f7f525629133fa0c3dc060caf96ae4f34084eda1c24551951abe5a3c"
+SRC_URI[sha256sum] = "8c388ac3775ac6bceb605fae21be2c3e261cafe6067994a89f0dfa4610ed0279"
 
 S = "${WORKDIR}/NetworkManager-${PV}"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb b/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
index e715135..03eff43 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
@@ -9,11 +9,11 @@
 LIC_FILES_CHKSUM = "file://../LICENSE;md5=f399b62ce0a152525d1589a5a40c0ff6"
 DEPENDS = "asio fmt http-parser"
 
-SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v.${PV}/restinio-${PV}.tar.bz2"
+SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v.${PV}/${BP}.tar.bz2"
 SRC_URI[md5sum] = "37a4310e98912030a74bdd4ed789f33c"
 SRC_URI[sha256sum] = "b35d696e6fafd4563ca708fcecf9d0cf6705c846d417b5000f5252e0188848e7"
 
-S = "${WORKDIR}/${PN}-${PV}/dev"
+S = "${WORKDIR}/${BP}/dev"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.2.bb
similarity index 99%
rename from meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.0.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.2.bb
index d29c195..51b0ca7 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.2.bb
@@ -32,7 +32,7 @@
            file://cmocka-uintptr_t.patch \
            "
 
-SRC_URI[sha256sum] = "70348656ef807be9c8be4465ca157cef4d99818e234253d2c684cc18b8408149"
+SRC_URI[sha256sum] = "5bf87e179616cd12a52d85fb8b26eec709f13709a2b67fe42b1fb0213f7e8106"
 
 UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.18(\.\d+)+).tar.gz"
 
diff --git a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.6.bb b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.7.bb
similarity index 60%
rename from meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.6.bb
rename to meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.7.bb
index f43a223..8380bbd 100644
--- a/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/nftables/nftables_1.0.7.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Netfilter Tables userspace utillites"
 SECTION = "net"
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
+LIC_FILES_CHKSUM = "file://COPYING;md5=81ec33bb3e47b460fc993ac768c74b62"
 
 DEPENDS = "libmnl libnftnl bison-native \
            ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
@@ -9,7 +9,7 @@
 SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.xz \
            file://run-ptest \
           "
-SRC_URI[sha256sum] = "2407430ddd82987670e48dc2fda9e280baa8307abec04ab18d609df3db005e4c"
+SRC_URI[sha256sum] = "c12ac941fff9adaedf17367d5ce213789b98a0d314277bc22b3d71e10891f412"
 
 inherit autotools manpages pkgconfig ptest
 
@@ -19,31 +19,53 @@
 PACKAGECONFIG[linenoise] = "--with-cli=linenoise, , linenoise, , , editline readline"
 PACKAGECONFIG[manpages] = "--enable-man-doc, --disable-man-doc, asciidoc-native"
 PACKAGECONFIG[mini-gmp] = "--with-mini-gmp, --without-mini-gmp"
-PACKAGECONFIG[python] = "--enable-python --with-python-bin=${PYTHON}, --disable-python, python3-setuptools-native"
+PACKAGECONFIG[python] = ",, python3-setuptools-native"
 PACKAGECONFIG[readline] = "--with-cli=readline, , readline, , , editline linenoise"
 PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
 
-EXTRA_OECONF = "${@bb.utils.contains_any('PACKAGECONFIG', 'editline linenoise readline', '', '--without-cli', d)}"
+# Disable the python via autoconf so we can build it separately via setuptools3
+EXTRA_OECONF = "--disable-python \
+    ${@bb.utils.contains_any('PACKAGECONFIG', 'editline linenoise readline', '', '--without-cli', d)}"
 
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
+SETUPTOOLS_SETUP_PATH = "${S}/py"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'setuptools3', '', d)}
 
 RRECOMMENDS:${PN} += "kernel-module-nf-tables"
 
 PACKAGES =+ "${PN}-python"
-FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
 RDEPENDS:${PN}-python = "python3-core python3-json ${PN}"
 
+# Explicitly define do_configure, do_compile and do_install because both autotools and setuptools3
+# have EXPORT_FUNCTIONS do_configure do_compile do_install
+do_configure() {
+    autotools_do_configure
+    if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+        setuptools3_do_configure
+    fi
+}
+
+do_compile() {
+    autotools_do_compile
+    if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+        setuptools3_do_compile
+    fi
+}
+
+do_install() {
+    autotools_do_install
+    if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+        setuptools3_do_install
+    fi
+}
+
 RDEPENDS:${PN}-ptest += " ${PN}-python bash make iproute2 iputils-ping procps python3-core python3-ctypes python3-json python3-misc sed util-linux"
 
 TESTDIR = "tests"
 
 PRIVATE_LIBS:${PN}-ptest:append = " libnftables.so.1"
 
-do_install:append() {
-    # Avoid "contains reference to TMPDIR" warning
-    find ${D} -name *.pyc -delete
-}
-
 do_install_ptest() {
     cp -rf ${S}/build-aux ${D}${PTEST_PATH}
     cp -rf ${S}/src ${D}${PTEST_PATH}
diff --git a/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch b/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch
new file mode 100644
index 0000000..146501c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch
@@ -0,0 +1,27 @@
+From f8f4e1a617c4610ea7dc40a60f1c696ebc37850c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 09:27:42 -0700
+Subject: [PATCH] Use pkg-config to find gpgme
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/gpgme.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/gpgme.m4 b/m4/gpgme.m4
+index 44bf43c..c9a8ae6 100644
+--- a/m4/gpgme.m4
++++ b/m4/gpgme.m4
+@@ -18,7 +18,7 @@ AC_DEFUN([_AM_PATH_GPGME_CONFIG],
+   if test "x$gpgme_config_prefix" != x ; then
+       GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config"
+   fi
+-  AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
++  GPGME_CONFIG="pkg-config gpgme"
+ 
+   if test "$GPGME_CONFIG" != "no" ; then
+     gpgme_version=`$GPGME_CONFIG --version`
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch b/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch
new file mode 100644
index 0000000..f3e1707
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch
@@ -0,0 +1,29 @@
+From fee4cb0ae2d1fcd012cb7f501c3db0d8ec910798 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:01:51 -0700
+Subject: [PATCH] configure.ac: Fix missing  comma in AS_IF
+
+this is flagged with autconf 2.72
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 47a069e..9cdfd3f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -744,7 +744,7 @@ dnl
+             IPFW_EXE=""
+             IPTABLES_EXE=""
+             FIREWALLD_EXE=""
+-          ]
++          ],
+         ]
+       ]
+     ]
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb b/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
index a35ec06..a1f56cd 100644
--- a/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
+++ b/meta-openembedded/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
@@ -3,29 +3,22 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
 		    "
-inherit autotools-brokensep
+inherit autotools-brokensep pkgconfig
 
 SRC_URI = "http://www.cipherdyne.org/${BPN}/download/${BPN}-${PV}.tar.bz2 \
            file://0001-Fix-compilation-with-GCC-s-fno-common-flag-fixes-305.patch \
+           file://0001-Use-pkg-config-to-find-gpgme.patch \
+	   file://0001-configure.ac-Fix-missing-comma-in-AS_IF.patch \
           "
-SRC_URI[md5sum] = "47a9c7c214c40dceb5dc2aa8832e4f32"
 SRC_URI[sha256sum] = "f6c09bec97ed8e474a98ae14f9f53e1bcdda33393f20667b6af3fb6bb894ca77"
 
 DEPENDS = "libpcap gpgme"
 
-EXTRA_OECONF = " --with-iptables=/usr/sbin/iptables \
-               "
+EXTRA_OECONF = " --with-iptables=${sbindir}/iptables"
 
-do_configure () {
+do_configure:prepend () {
 	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/config
 	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/config
-
-	aclocal
-	libtoolize --automake --copy --force
-	autoconf
-	autoheader
-	automake -a
-	oe_runconf
 }
 
 PACKAGES =+ "${PN}-client ${PN}-daemon"
diff --git a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.7.1.bb b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.7.2.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.7.1.bb
rename to meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.7.2.bb
index d13bd37..daf0f73 100644
--- a/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.7.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/libldb/libldb_2.7.2.bb
@@ -35,8 +35,7 @@
                     file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
                     file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
 
-SRC_URI[md5sum] = "e443a8da17758479c3b5c542e8e3ff1a"
-SRC_URI[sha256sum] = "c4632c9a7f81f8a45ed46fc14d18eb507edf4e79f6e88d16977478ef95ed5b7f"
+SRC_URI[sha256sum] = "26ee72d647854e662d99643eb2b2d341655abf31f4990838d6650fb5cf9209c8"
 
 inherit pkgconfig waf-samba
 
diff --git a/meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb b/meta-openembedded/meta-networking/recipes-support/mctp/mctp_1.1.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb
rename to meta-openembedded/meta-networking/recipes-support/mctp/mctp_1.1.bb
index edc614d..bf3961b 100644
--- a/meta-openembedded/meta-networking/recipes-support/mctp/mctp_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/mctp/mctp_1.1.bb
@@ -5,9 +5,7 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21"
 
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "ae3a9162d6c5df0fa50abc34fc951dfd0e3d23c5"
+SRCREV = "a591ad885aa28f113cb45870b2fd5bce48378d6f"
 
 SRC_URI = "git://github.com/CodeConstruct/mctp;branch=main;protocol=https"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.bb
similarity index 97%
rename from meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
rename to meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.bb
index 6861314..a5b9bd0 100644
--- a/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.bb
@@ -5,7 +5,7 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRCREV = "7e314b23329f9c24c4c097b8513673fed7e7158a"
+SRCREV = "c308ba5370d66acc44d411f12d59af61d522b91a"
 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/ntp/ntp_4.2.8p15.bb b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb
index 3ce2d77..5d2f05e 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb
@@ -27,6 +27,7 @@
 SRC_URI[sha256sum] = "f65840deab68614d5d7ceb2d0bb9304ff70dcdedd09abb79754a87536b849c19"
 
 # CVE-2016-9312 is only for windows.
+# CVE-2019-11331 is inherent to RFC 5905 and cannot be fixed without breaking compatibility
 # The other CVEs are not correctly identified because cve-check
 # is not able to check the version correctly (it only checks for 4.2.8 omitting p15 that makes the difference)
 CVE_CHECK_IGNORE += "\
@@ -50,6 +51,7 @@
     CVE-2016-7433 \
     CVE-2016-9310 \
     CVE-2016-9311 \
+    CVE-2019-11331 \
 "
 
 
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.1.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.1.bb
rename to meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
index 20dac79..76bce7d 100644
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
@@ -14,7 +14,7 @@
 
 UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
 
-SRC_URI[sha256sum] = "8cbc4fd8ce27b85107b449833c3b30fb05f1ca3c81b46a0ba8658036944266bc"
+SRC_URI[sha256sum] = "13b207a376d8880507c74ff78aabc3778a9da47c89f1e247dcee3c7237138ff6"
 
 # CVE-2020-7224 and CVE-2020-27569 are for Aviatrix OpenVPN client, not for openvpn.
 CVE_CHECK_IGNORE += "CVE-2020-7224 CVE-2020-27569"
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.99.3.bb b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb
similarity index 93%
rename from meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.99.3.bb
rename to meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb
index 03f1b76..803a9bb 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.99.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb
@@ -26,7 +26,7 @@
     file://run-ptest \
 "
 
-SRC_URI[sha256sum] = "ad75a6ed3dc0d9732945b2e5483cb41dc8b4b528a169315e499c6861952e73b3"
+SRC_URI[sha256sum] = "0232231bb2f29d6bf2426e70a08a7e0c63a0d59a9b44863b7f5e2357a6e49fea"
 
 UPSTREAM_CHECK_REGEX = "tcpdump-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.17.1.bb b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.17.1.bb
index caa1bb3..24ac601 100644
--- a/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.17.1.bb
+++ b/meta-openembedded/meta-networking/recipes-support/unbound/unbound_1.17.1.bb
@@ -9,7 +9,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5308494bc0590c0cb036afd781d78f06"
 
-SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=https;branch=master \
 	file://0001-contrib-add-yocto-compatible-init-script.patch \
 "
 SRCREV = "90831af981221bbce1cd7b15055562336760e484"
diff --git a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
new file mode 100644
index 0000000..81e0779
--- /dev/null
+++ b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -0,0 +1,62 @@
+#
+# Lists of the ptest in meta-oe, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-oe recipes which inherit ptest
+# meta_oe_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-oe --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
+#
+# ptests which take less than ~30s each
+PTESTS_FAST_META_OE = "\
+    cmocka \
+    cunit \
+    duktape \
+    fmt \
+    function2 \
+    fwupd \
+    gcab \
+    jq \
+    leveldb \
+    libcereal \
+    libee \
+    libio-pty-perl \
+    libmanette \
+    libssh \
+    libtinyxml2 \
+    libxml++-5.0 \
+    libxmlb \
+    libyang \
+    lmdb \
+    minicoredumper \
+    neon \
+    nodejs \
+    onig \
+    poco \
+    protobuf \
+    sdbus-c++ \
+    uthash \
+    xmlsec1 \
+    zeromq \
+"
+PTESTS_FAST_META_OE:remove:libc-musl = "minicoredumper"
+
+PTESTS_SLOW_META_OE = "\
+    fftw \
+    libusb-compat \
+    rsyslog \
+"
+
+PTESTS_PROBLEMS_META_OE ="\
+    jemalloc \
+    kernel-selftest \
+    keyutils \
+    libdbi-perl \
+    libgpiod \
+    libjcat \
+    libteam \
+    libxml++ \
+    mcelog \
+    oprofile \
+    ostree \
+    psqlodbc \
+    pv \
+"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb
index 88e3f04..fcb347a 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb
@@ -51,9 +51,9 @@
 
 # Create PYTHON_TARBALL which LIRC needs for install-nodist_pkgdataDATA
 do_install:prepend() {
-    rm -rf ${WORKDIR}/${PN}-${PV}/python-pkg/dist/
-    mkdir ${WORKDIR}/${PN}-${PV}/python-pkg/dist/
-    tar --exclude='${WORKDIR}/${PN}-${PV}/python-pkg/*' -czf ${WORKDIR}/${PN}-${PV}/python-pkg/dist/${PN}-${PV}.tar.gz ${S}
+    rm -rf ${S}/python-pkg/dist/
+    mkdir ${S}/python-pkg/dist/
+    tar --exclude='${S}/python-pkg/*' -czf ${S}/python-pkg/dist/${BP}.tar.gz ${S}
 }
 
 # In code, path to python is a variable that is replaced with path to native version of it
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 7b85bdd..550fbc3 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
@@ -127,7 +127,7 @@
 
     # install mongo data folder
     install -m 755 -d ${D}${localstatedir}/lib/${BPN}
-    chown ${PN}:${PN} ${D}${localstatedir}/lib/${BPN}
+    chown ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
 
     # Create /var/log/mongodb in runtime.
     if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
diff --git a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
index 75e837f..caf55ed 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
@@ -67,7 +67,7 @@
 
 inherit systemd
 
-SYSTEMD_SERVICE:${PN} = "android-tools-adbd.service"
+SYSTEMD_SERVICE:${PN}-adbd = "android-tools-adbd.service"
 
 # Find libbsd headers during native builds
 CC:append:class-native = " -I${STAGING_INCDIR}"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_2.0.bb
similarity index 64%
rename from meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb
rename to meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_2.0.bb
index cfdcfeb..bb8c462 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_git.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/mbw/mbw_2.0.bb
@@ -1,14 +1,12 @@
 SUMMARY = "MBW determines the copy memory bandwidth available to userspace programs"
 HOMEPAGE = "http://github.com/raas/mbw"
 SECTION = "console/tests"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://mbw.spec;beginline=1;endline=10;md5=34d71e08e6337a8411d82d7dd0c54fe2"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://mbw.spec;beginline=1;endline=10;md5=9ead6bd5826678fcfe229a3cf7257c56"
 
 SRC_URI = "git://github.com/raas/${BPN}.git;branch=master;protocol=https"
 
-SRCREV = "d2cd3d36c353fee578f752c4e65a8c1efcee002c"
-
-PV = "1.5"
+SRCREV = "c3155b544a5065e8235508059c6512af6c46bd4d"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch
new file mode 100644
index 0000000..2273bdf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch
@@ -0,0 +1,41 @@
+From b1df1ed3a21b8ef0244102043a8fb88b0ccc3f91 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Apr 2023 11:30:21 -0700
+Subject: [PATCH] meson: Avoid absolute buildtime paths in generated headers
+
+using meson.project_source_root() means the path emitted to include .h
+files is absolute and it makes its way into PN-src as well, which infact
+is not going to work if the -src package was used to re-build this in a
+different build path. Therefore use relative path which is '.' and
+relative to ${S}
+
+Changes
+include "<abspath>/plugins/acpi-dmar/fu-acpi-dmar-plugin.h"
+to
+include "./plugins/acpi-dmar/fu-acpi-dmar-plugin.h"
+
+in generated build/src/fu-plugin-builtin.h
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index b9f6736..bb856ea 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -188,7 +188,7 @@ plugins_hdr = custom_target('fwupd-generate-plugins-header',
+   command : [
+     join_paths(meson.project_source_root(), 'contrib', 'generate-plugins-header.py'),
+     '@OUTPUT@',
+-    meson.project_source_root(),
++    '.',
+     ','.join(plugin_names),
+   ],
+ )
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb
index 14d83ec..1f95dee 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb
@@ -5,6 +5,7 @@
 DEPENDS = "glib-2.0 libxmlb json-glib libjcat gcab vala-native"
 
 SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+           file://0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch \
            file://run-ptest"
 SRC_URI[sha256sum] = "719a791ac4ba5988aeb93ec42778bd65d33cb075d0c093b5c04e5e1682be528a"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.4.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.2.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.4.bb
index 4aca6fe..c61adb1 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.2.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.4.bb
@@ -5,7 +5,7 @@
                     file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f \
                     "
 
-SRCREV = "c1e878f5710bafb17aca5ece7d9079e73a78c554"
+SRCREV = "a96805508864a46b8a7977aaf131c28742cddd11"
 
 SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.3.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.4.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.3.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.4.bb
index 46e377d..e405ed7 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.3.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.4.bb
@@ -8,7 +8,7 @@
 SRC_URI = "https://www.kernel.org/pub/linux/network/wireless/${BP}.tar.xz \
            file://0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch \
            "
-SRC_URI[sha256sum] = "b0506d797a8bfb88f3c3eeea5e49dcf4ee8e6cef118f57c118e587eeb377ac64"
+SRC_URI[sha256sum] = "3a9c5e7ade45162e5c78b3d7035a2f4a6e20ba6b5974097c35a8f615493012f9"
 
 inherit autotools manpages pkgconfig python3native systemd
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch
new file mode 100644
index 0000000..9d0b066
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5/0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch
@@ -0,0 +1,40 @@
+From 0aa127afa52fd265a4f1bbded1623201390ae96a Mon Sep 17 00:00:00 2001
+From: Julien Rische <jrische@redhat.com>
+Date: Thu, 17 Nov 2022 15:01:24 +0100
+Subject: [PATCH] Fix aclocal.m4 syntax error for autoconf 2.72
+
+An incorrect closure inside KRB5_AC_INET6 is innocuous with autoconf
+versions up to 2.71, but will cause an error at configure time with
+the forthcoming autoconf 2.72.
+
+[ghudson@mit.edu: added more context to commit message]
+
+ticket: 9077 (new)
+tags: pullup
+target_version: 1.20-next
+target_version: 1.19-next
+
+Upstream-Status: Backport [https://github.com/krb5/krb5/commit/d864d740d019fdf2c640460f2aa2760c7fa4d5e9]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/aclocal.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/aclocal.m4 b/src/aclocal.m4
+index 9920476..3d66a87 100644
+--- a/src/aclocal.m4
++++ b/src/aclocal.m4
+@@ -409,8 +409,8 @@ else
+       [[struct sockaddr_in6 in;
+         AF_INET6;
+         IN6_IS_ADDR_LINKLOCAL(&in.sin6_addr);]])],
+-    [krb5_cv_inet6=yes], [krb5_cv_inet6=no])])
+-fi
++    [krb5_cv_inet6=yes], [krb5_cv_inet6=no])
++fi])
+ AC_MSG_RESULT($krb5_cv_inet6)
+ if test "$krb5_cv_inet6" = no && test "$ac_cv_func_inet_ntop" = yes; then
+ AC_MSG_CHECKING(for IPv6 compile-time support with -DINET6)
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
index 6fc630d..10fff11 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
@@ -22,6 +22,7 @@
 SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
            file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
            file://crosscompile_nm.patch \
+           file://0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch;striplevel=2 \
            file://etc/init.d/krb5-kdc \
            file://etc/init.d/krb5-admin-server \
            file://etc/default/krb5-kdc \
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
new file mode 100644
index 0000000..7a40f4e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
@@ -0,0 +1,10 @@
+SUMMARY = "NFS client library"
+HOMEPAGE = "https://github.com/sahlberg/libnfs"
+LICENSE = "LGPL-2.1-only & BSD-2-Clause & GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=825301ba17efc9d188ee0abd4b924ada"
+
+SRC_URI = "git://github.com/sahlberg/libnfs.git;protocol=https;branch=master"
+SRCREV = "40348f45d6beb8a8f50b6b63414a98fc1a061b7d"
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb
index d006ae7..6578bcf 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb
@@ -5,13 +5,12 @@
 LICENSE = "EPL-2.0 | EDL-1.0"
 
 LIC_FILES_CHKSUM = " \
+    file://LICENSE;md5=fd3b896dadaeec3410d753ffaeadcfac \
     file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
     file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
-    file://notice.html;md5=943f861069889acecebf51dfa24478e2 \
-    file://about.html;md5=e5662cbb5f8fd5c9faac526e4077898e \
 "
 
-SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http;branch=master;protocol=https"
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=https;branch=master"
 
 SRCREV = "4157a27d39f1dd5b95750ecb6acd1481432785d8"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb
index a9e16fa..bb5aa69 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb
@@ -5,13 +5,12 @@
 LICENSE = "EPL-1.0 | EDL-1.0"
 
 LIC_FILES_CHKSUM = " \
+    file://src/mqtt/message.h;beginline=9;endline=18;md5=5eec304e6066523386c222963ceeb6ff \
     file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
     file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
-    file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
-    file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \
 "
 
-SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=https;branch=master \
            file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch \
 "
 SRCREV = "33921c8b68b351828650c36816e7ecf936764379"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.11.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.12.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.11.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.12.bb
index ca7982c..e38d9ed 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.11.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.12.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "8f831f11b67538280aa0e8787cb0785ff705cf90749aa175d32c337f29412ae3"
+SRC_URI[sha256sum] = "6101bdf937716be9b019c721b28b45d21efddd1ec19ac935aad351c55bd6f83d"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc b/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
index 8247870..208b39a 100644
--- a/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
+++ b/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=http;branch=master;protocol=https"
+SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=https;branch=master"
 SRCREV = "aee53e8dee862f35291242ba41b0ca88010f6c71"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
index b31bba6..5b0d612 100644
--- a/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
@@ -20,7 +20,17 @@
 
 CFLAGS += "-fPIC"
 
-DEPENDS = "libpng libglu zlib libxrandr libxinerama libxi libxcursor"
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
+DEPENDS = "libpng libglu zlib"
+REQUIRED_DISTRO_FEATURES = "opengl"
+ANY_OF_DISTRO_FEATURES = "wayland x11"
+
+# upstream considers x11 and wayland backends mutually exclusive and will
+# prioritize wayland if it is enabled, but wayland has dependencies that cannot
+# be satisfied by this layer so it is disabled by default
+
+PACKAGECONFIG ??= "x11"
+
+PACKAGECONFIG[wayland] = "-DGLFW_USE_WAYLAND=ON,,wayland wayland-native wayland-protocols extra-cmake-modules libxkbcommon"
+PACKAGECONFIG[x11] = ",,libxrandr libxinerama libxi libxcursor"
 
 COMPATIBLE_HOST:libc-musl = "null"
diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb
index 5028a8b..83ceb64 100644
--- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb
+++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb
@@ -17,13 +17,17 @@
 
 S = "${WORKDIR}/${GNOMEBN}-${PV}"
 
-do_install:append() {
-    for i in generate_wrap_init.pl gmmproc; do
-        sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.68/proc/$i
-    done
-}
-
 FILES:${PN} = "${libdir}/lib*.so.*"
 FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/${BPN}/include/ ${libdir}/${BPN}/proc/ ${libdir}/giomm-2.68/include/"
 
 RDEPENDS:${PN}-dev = "perl"
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross -Dmaintainer-mode=false"
+
+do_write_config:append() {
+    cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+m4 = '${bindir}/m4'
+perl = '${bindir}/perl'
+EOF
+}
diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
index f554a73..a6dc8ff 100644
--- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
+++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
@@ -15,13 +15,17 @@
 
 SRC_URI[archive.sha256sum] = "b2a4cd7b9ae987794cbb5a1becc10cecb65182b9bb841868625d6bbb123edb1d"
 
-do_install:append() {
-    for i in generate_wrap_init.pl gmmproc; do
-        sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i
-    done
-}
-
 FILES:${PN} = "${libdir}/lib*.so.*"
 FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/"
 
 RDEPENDS:${PN}-dev = "perl"
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross -Dmaintainer-mode=false"
+
+do_write_config:append() {
+    cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+m4 = '${bindir}/m4'
+perl = '${bindir}/perl'
+EOF
+}
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-all-image.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-all-image.bb
new file mode 100644
index 0000000..0ea03dd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-all-image.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-oe ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-oe.inc
+
+# Include the full set of ptests
+PTESTS_META_OE = "${PTESTS_FAST_META_OE} ${PTESTS_SLOW_META_OE}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-oe-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_OE').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-oe-ptest-image-'+x+':do_build' for x in d.getVar('PTESTS_META_OE').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+    if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+        bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-fast-image.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-fast-image.bb
new file mode 100644
index 0000000..f56e841
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-fast-image.bb
@@ -0,0 +1,6 @@
+require meta-oe-ptest-all-image.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-oe ptest images."
+
+PTESTS_META_OE = "${PTESTS_FAST_META_OE}"
+
diff --git a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
index 0166b9c..951d91f 100644
--- a/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
+++ b/meta-openembedded/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
@@ -1,5 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-oe.inc
+
 require  meta-oe-image-base.bb
 
 SUMMARY = "meta-oe ptest test image"
 
-IMAGE_INSTALL += "packagegroup-meta-oe"
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_OE = "${PTESTS_SLOW_META_OE} ${PTESTS_FAST_META_OE}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_OE').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+    if not d.getVar("MCNAME"):
+        raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-core/mdbus2/mdbus2_git.bb b/meta-openembedded/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
index 07c5cc9..c6db78b 100644
--- a/meta-openembedded/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
@@ -6,7 +6,7 @@
 
 PV = "2.3.3+git${SRCPV}"
 
-SRC_URI = "git://github.com/freesmartphone/mdbus.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/freesmartphone/mdbus.git;protocol=https;branch=master \
            file://0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch \
            "
 SRCREV = "28202692d0b441000f4ddb8f347f72d1355021aa"
diff --git a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_04.17.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb
rename to meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_04.17.bb
index 83ea652..6ffaf68 100644
--- a/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/opencl/opencl-headers_04.17.bb
@@ -5,8 +5,7 @@
 SECTION = "base"
 
 S = "${WORKDIR}/git"
-PV = "2023.02.06"
-SRCREV = "4c82e9cfaaad18c340f48af3cf5d09ff33e8c1b7"
+SRCREV = "4fdcfb0ae675f2f63a9add9552e0af62c2b4ed30"
 SRC_URI = "git://github.com/KhronosGroup/OpenCL-Headers.git;branch=main;protocol=https"
 
 do_configure[noexec] = "1"
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
index 4bdb7b2..da579d7 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
@@ -1,269 +1,554 @@
+# Autogenerated with 'bitbake -c update_crates uutils-coreutils'
+
+# from Cargo.lock
 SRC_URI += " \
-    crate://crates.io/Inflector/0.11.4 \
-    crate://crates.io/adler/1.0.2 \
-    crate://crates.io/ahash/0.7.6 \
-    crate://crates.io/aho-corasick/0.7.19 \
-    crate://crates.io/aliasable/0.1.3 \
-    crate://crates.io/android_system_properties/0.1.5 \
-    crate://crates.io/arrayref/0.3.6 \
-    crate://crates.io/arrayvec/0.7.2 \
-    crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/1.1.0 \
-    crate://crates.io/bigdecimal/0.3.0 \
-    crate://crates.io/binary-heap-plus/0.5.0 \
-    crate://crates.io/bindgen/0.62.0 \
-    crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/blake2b_simd/1.0.0 \
-    crate://crates.io/blake3/1.3.2 \
-    crate://crates.io/block-buffer/0.10.3 \
-    crate://crates.io/bstr/1.0.1 \
-    crate://crates.io/bumpalo/3.11.1 \
-    crate://crates.io/bytecount/0.6.3 \
-    crate://crates.io/byteorder/1.4.3 \
-    crate://crates.io/cc/1.0.77 \
-    crate://crates.io/cexpr/0.6.0 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.23 \
-    crate://crates.io/clang-sys/1.4.0 \
-    crate://crates.io/clap/4.0.26 \
-    crate://crates.io/clap_complete/4.0.6 \
-    crate://crates.io/clap_lex/0.3.0 \
-    crate://crates.io/codespan-reporting/0.11.1 \
-    crate://crates.io/compare/0.1.0 \
-    crate://crates.io/console/0.15.2 \
-    crate://crates.io/constant_time_eq/0.1.5 \
-    crate://crates.io/constant_time_eq/0.2.4 \
-    crate://crates.io/conv/0.3.3 \
-    crate://crates.io/core-foundation-sys/0.8.3 \
-    crate://crates.io/coz/0.1.3 \
-    crate://crates.io/cpp/0.5.7 \
-    crate://crates.io/cpp_build/0.5.7 \
-    crate://crates.io/cpp_common/0.5.7 \
-    crate://crates.io/cpp_macros/0.5.7 \
-    crate://crates.io/cpufeatures/0.2.5 \
-    crate://crates.io/crc32fast/1.3.2 \
-    crate://crates.io/crossbeam-channel/0.5.6 \
-    crate://crates.io/crossbeam-deque/0.8.2 \
-    crate://crates.io/crossbeam-epoch/0.9.12 \
-    crate://crates.io/crossbeam-utils/0.8.13 \
-    crate://crates.io/crossterm/0.25.0 \
-    crate://crates.io/crossterm_winapi/0.9.0 \
-    crate://crates.io/crunchy/0.2.2 \
-    crate://crates.io/crypto-common/0.1.6 \
-    crate://crates.io/ctor/0.1.26 \
-    crate://crates.io/ctrlc/3.2.3 \
-    crate://crates.io/custom_derive/0.1.7 \
-    crate://crates.io/cxx-build/1.0.82 \
-    crate://crates.io/cxx/1.0.82 \
-    crate://crates.io/cxxbridge-flags/1.0.82 \
-    crate://crates.io/cxxbridge-macro/1.0.82 \
-    crate://crates.io/data-encoding-macro-internal/0.1.10 \
-    crate://crates.io/data-encoding-macro/0.1.12 \
-    crate://crates.io/data-encoding/2.3.2 \
-    crate://crates.io/diff/0.1.13 \
-    crate://crates.io/digest/0.10.6 \
-    crate://crates.io/dlv-list/0.3.0 \
-    crate://crates.io/dns-lookup/1.0.8 \
-    crate://crates.io/dunce/1.0.3 \
-    crate://crates.io/either/1.8.0 \
-    crate://crates.io/encode_unicode/0.3.6 \
-    crate://crates.io/env_logger/0.8.4 \
-    crate://crates.io/errno-dragonfly/0.1.2 \
-    crate://crates.io/errno/0.2.8 \
-    crate://crates.io/exacl/0.9.0 \
-    crate://crates.io/fastrand/1.8.0 \
-    crate://crates.io/file_diff/1.0.0 \
-    crate://crates.io/filetime/0.2.18 \
-    crate://crates.io/flate2/1.0.24 \
-    crate://crates.io/fnv/1.0.7 \
-    crate://crates.io/fs_extra/1.2.0 \
-    crate://crates.io/fsevent-sys/4.1.0 \
-    crate://crates.io/fts-sys/0.2.3 \
-    crate://crates.io/futures-channel/0.3.25 \
-    crate://crates.io/futures-core/0.3.25 \
-    crate://crates.io/futures-executor/0.3.25 \
-    crate://crates.io/futures-io/0.3.25 \
-    crate://crates.io/futures-macro/0.3.25 \
-    crate://crates.io/futures-sink/0.3.25 \
-    crate://crates.io/futures-task/0.3.25 \
-    crate://crates.io/futures-timer/3.0.2 \
-    crate://crates.io/futures-util/0.3.25 \
-    crate://crates.io/futures/0.3.25 \
-    crate://crates.io/gcd/2.1.0 \
-    crate://crates.io/generic-array/0.14.6 \
-    crate://crates.io/getrandom/0.2.8 \
-    crate://crates.io/glob/0.3.0 \
-    crate://crates.io/half/2.1.0 \
-    crate://crates.io/hashbrown/0.12.3 \
-    crate://crates.io/heck/0.4.0 \
-    crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/hex-literal/0.3.4 \
-    crate://crates.io/hex/0.4.3 \
-    crate://crates.io/hostname/0.3.1 \
-    crate://crates.io/iana-time-zone-haiku/0.1.1 \
-    crate://crates.io/iana-time-zone/0.1.53 \
-    crate://crates.io/indicatif/0.17.2 \
-    crate://crates.io/inotify-sys/0.1.5 \
-    crate://crates.io/inotify/0.9.6 \
-    crate://crates.io/instant/0.1.12 \
-    crate://crates.io/io-lifetimes/0.7.5 \
-    crate://crates.io/itertools/0.10.5 \
-    crate://crates.io/itoa/1.0.4 \
-    crate://crates.io/js-sys/0.3.60 \
-    crate://crates.io/keccak/0.1.3 \
-    crate://crates.io/kqueue-sys/1.0.3 \
-    crate://crates.io/kqueue/1.0.7 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.137 \
-    crate://crates.io/libloading/0.7.4 \
-    crate://crates.io/link-cplusplus/1.0.7 \
-    crate://crates.io/linux-raw-sys/0.0.46 \
-    crate://crates.io/lock_api/0.4.9 \
-    crate://crates.io/log/0.4.17 \
-    crate://crates.io/lscolors/0.13.0 \
-    crate://crates.io/match_cfg/0.1.0 \
-    crate://crates.io/md-5/0.10.5 \
-    crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/memmap2/0.5.8 \
-    crate://crates.io/memoffset/0.6.5 \
-    crate://crates.io/memoffset/0.7.1 \
-    crate://crates.io/minimal-lexical/0.2.1 \
-    crate://crates.io/miniz_oxide/0.5.4 \
-    crate://crates.io/mio/0.8.5 \
-    crate://crates.io/nix/0.25.0 \
-    crate://crates.io/nom/7.1.1 \
-    crate://crates.io/notify/5.0.0 \
-    crate://crates.io/nu-ansi-term/0.46.0 \
-    crate://crates.io/num-bigint/0.4.3 \
-    crate://crates.io/num-integer/0.1.45 \
-    crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num_cpus/1.14.0 \
-    crate://crates.io/num_threads/0.1.6 \
-    crate://crates.io/number_prefix/0.4.0 \
-    crate://crates.io/once_cell/1.16.0 \
-    crate://crates.io/onig/6.4.0 \
-    crate://crates.io/onig_sys/69.8.1 \
-    crate://crates.io/ordered-multimap/0.4.3 \
-    crate://crates.io/os_display/0.1.3 \
-    crate://crates.io/os_str_bytes/6.4.1 \
-    crate://crates.io/ouroboros/0.15.5 \
-    crate://crates.io/ouroboros_macro/0.15.5 \
-    crate://crates.io/output_vt100/0.1.3 \
-    crate://crates.io/overload/0.1.1 \
-    crate://crates.io/parking_lot/0.12.1 \
-    crate://crates.io/parking_lot_core/0.9.4 \
-    crate://crates.io/paste/1.0.9 \
-    crate://crates.io/peeking_take_while/0.1.2 \
-    crate://crates.io/phf/0.11.1 \
-    crate://crates.io/phf_codegen/0.11.1 \
-    crate://crates.io/phf_generator/0.11.1 \
-    crate://crates.io/phf_shared/0.11.1 \
-    crate://crates.io/pin-project-lite/0.2.9 \
-    crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/pkg-config/0.3.26 \
-    crate://crates.io/platform-info/1.0.2 \
-    crate://crates.io/portable-atomic/0.3.15 \
-    crate://crates.io/ppv-lite86/0.2.17 \
-    crate://crates.io/pretty_assertions/1.3.0 \
-    crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-error/1.0.4 \
-    crate://crates.io/proc-macro2/1.0.47 \
-    crate://crates.io/procfs/0.14.1 \
-    crate://crates.io/quick-error/2.0.1 \
-    crate://crates.io/quickcheck/1.0.3 \
-    crate://crates.io/quote/1.0.21 \
-    crate://crates.io/rand/0.8.5 \
-    crate://crates.io/rand_chacha/0.3.1 \
-    crate://crates.io/rand_core/0.6.4 \
-    crate://crates.io/rand_pcg/0.3.1 \
-    crate://crates.io/rayon-core/1.10.1 \
-    crate://crates.io/rayon/1.6.0 \
-    crate://crates.io/redox_syscall/0.2.16 \
-    crate://crates.io/reference-counted-singleton/0.1.2 \
-    crate://crates.io/regex-automata/0.1.10 \
-    crate://crates.io/regex-syntax/0.6.28 \
-    crate://crates.io/regex/1.7.0 \
-    crate://crates.io/remove_dir_all/0.5.3 \
-    crate://crates.io/remove_dir_all/0.7.0 \
-    crate://crates.io/retain_mut/0.1.7 \
-    crate://crates.io/rlimit/0.8.3 \
-    crate://crates.io/rstest/0.16.0 \
-    crate://crates.io/rstest_macros/0.16.0 \
-    crate://crates.io/rust-ini/0.18.0 \
-    crate://crates.io/rustc-hash/1.1.0 \
-    crate://crates.io/rustc_version/0.4.0 \
-    crate://crates.io/rustix/0.35.13 \
-    crate://crates.io/rustversion/1.0.9 \
-    crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/scratch/1.0.2 \
-    crate://crates.io/selinux-sys/0.6.1 \
-    crate://crates.io/selinux/0.3.1 \
-    crate://crates.io/semver/1.0.14 \
-    crate://crates.io/serde/1.0.147 \
-    crate://crates.io/sha1/0.10.5 \
-    crate://crates.io/sha2/0.10.6 \
-    crate://crates.io/sha3/0.10.6 \
-    crate://crates.io/shlex/1.1.0 \
-    crate://crates.io/signal-hook-mio/0.2.3 \
-    crate://crates.io/signal-hook-registry/1.4.0 \
-    crate://crates.io/signal-hook/0.3.14 \
-    crate://crates.io/siphasher/0.3.10 \
-    crate://crates.io/slab/0.4.7 \
-    crate://crates.io/smallvec/1.10.0 \
-    crate://crates.io/smawk/0.3.1 \
-    crate://crates.io/socket2/0.4.7 \
-    crate://crates.io/strsim/0.10.0 \
-    crate://crates.io/strum/0.24.1 \
-    crate://crates.io/strum_macros/0.24.3 \
-    crate://crates.io/subtle/2.4.1 \
-    crate://crates.io/syn/1.0.103 \
-    crate://crates.io/tempfile/3.3.0 \
-    crate://crates.io/term_grid/0.1.7 \
-    crate://crates.io/termcolor/1.1.3 \
-    crate://crates.io/terminal_size/0.1.17 \
-    crate://crates.io/terminal_size/0.2.2 \
-    crate://crates.io/textwrap/0.16.0 \
-    crate://crates.io/thiserror-impl/1.0.37 \
-    crate://crates.io/thiserror/1.0.37 \
-    crate://crates.io/time-core/0.1.0 \
-    crate://crates.io/time-macros/0.2.6 \
-    crate://crates.io/time/0.3.17 \
-    crate://crates.io/typenum/1.15.0 \
-    crate://crates.io/unicode-ident/1.0.5 \
-    crate://crates.io/unicode-linebreak/0.1.4 \
-    crate://crates.io/unicode-segmentation/1.10.0 \
-    crate://crates.io/unicode-width/0.1.10 \
-    crate://crates.io/unicode-xid/0.2.4 \
-    crate://crates.io/unindent/0.1.10 \
-    crate://crates.io/users/0.11.0 \
-    crate://crates.io/utf-8/0.7.6 \
-    crate://crates.io/uuid/1.2.2 \
-    crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/walkdir/2.3.2 \
-    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen-backend/0.2.83 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.83 \
-    crate://crates.io/wasm-bindgen-macro/0.2.83 \
-    crate://crates.io/wasm-bindgen-shared/0.2.83 \
-    crate://crates.io/wasm-bindgen/0.2.83 \
-    crate://crates.io/which/4.3.0 \
-    crate://crates.io/wild/2.1.0 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/windows-sys/0.42.0 \
-    crate://crates.io/windows_aarch64_gnullvm/0.42.0 \
-    crate://crates.io/windows_aarch64_msvc/0.42.0 \
-    crate://crates.io/windows_i686_gnu/0.42.0 \
-    crate://crates.io/windows_i686_msvc/0.42.0 \
-    crate://crates.io/windows_x86_64_gnu/0.42.0 \
-    crate://crates.io/windows_x86_64_gnullvm/0.42.0 \
-    crate://crates.io/windows_x86_64_msvc/0.42.0 \
-    crate://crates.io/xattr/0.2.3 \
-    crate://crates.io/yansi/0.5.1 \
-    crate://crates.io/z85/3.0.5 \
-    crate://crates.io/zip/0.6.3 \
+    crate://crates.io/Inflector/0.11.4;name=Inflector-0.11.4 \
+    crate://crates.io/adler/1.0.2;name=adler-1.0.2 \
+    crate://crates.io/ahash/0.7.6;name=ahash-0.7.6 \
+    crate://crates.io/aho-corasick/0.7.19;name=aho-corasick-0.7.19 \
+    crate://crates.io/aliasable/0.1.3;name=aliasable-0.1.3 \
+    crate://crates.io/android_system_properties/0.1.5;name=android_system_properties-0.1.5 \
+    crate://crates.io/anstream/0.2.6;name=anstream-0.2.6 \
+    crate://crates.io/anstyle/0.3.5;name=anstyle-0.3.5 \
+    crate://crates.io/anstyle-parse/0.1.1;name=anstyle-parse-0.1.1 \
+    crate://crates.io/anstyle-wincon/0.2.0;name=anstyle-wincon-0.2.0 \
+    crate://crates.io/arrayref/0.3.6;name=arrayref-0.3.6 \
+    crate://crates.io/arrayvec/0.7.2;name=arrayvec-0.7.2 \
+    crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
+    crate://crates.io/bigdecimal/0.3.0;name=bigdecimal-0.3.0 \
+    crate://crates.io/binary-heap-plus/0.5.0;name=binary-heap-plus-0.5.0 \
+    crate://crates.io/bindgen/0.63.0;name=bindgen-0.63.0 \
+    crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
+    crate://crates.io/blake2b_simd/1.0.1;name=blake2b_simd-1.0.1 \
+    crate://crates.io/blake3/1.3.3;name=blake3-1.3.3 \
+    crate://crates.io/block-buffer/0.10.3;name=block-buffer-0.10.3 \
+    crate://crates.io/bstr/1.4.0;name=bstr-1.4.0 \
+    crate://crates.io/bumpalo/3.11.1;name=bumpalo-3.11.1 \
+    crate://crates.io/bytecount/0.6.3;name=bytecount-0.6.3 \
+    crate://crates.io/byteorder/1.4.3;name=byteorder-1.4.3 \
+    crate://crates.io/cc/1.0.77;name=cc-1.0.77 \
+    crate://crates.io/cexpr/0.6.0;name=cexpr-0.6.0 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/chrono/0.4.24;name=chrono-0.4.24 \
+    crate://crates.io/clang-sys/1.4.0;name=clang-sys-1.4.0 \
+    crate://crates.io/clap/4.2.0;name=clap-4.2.0 \
+    crate://crates.io/clap_builder/4.2.0;name=clap_builder-4.2.0 \
+    crate://crates.io/clap_complete/4.2.0;name=clap_complete-4.2.0 \
+    crate://crates.io/clap_lex/0.4.1;name=clap_lex-0.4.1 \
+    crate://crates.io/clap_mangen/0.2.9;name=clap_mangen-0.2.9 \
+    crate://crates.io/codespan-reporting/0.11.1;name=codespan-reporting-0.11.1 \
+    crate://crates.io/compare/0.1.0;name=compare-0.1.0 \
+    crate://crates.io/concolor-override/1.0.0;name=concolor-override-1.0.0 \
+    crate://crates.io/concolor-query/0.3.3;name=concolor-query-0.3.3 \
+    crate://crates.io/console/0.15.5;name=console-0.15.5 \
+    crate://crates.io/constant_time_eq/0.2.4;name=constant_time_eq-0.2.4 \
+    crate://crates.io/conv/0.3.3;name=conv-0.3.3 \
+    crate://crates.io/core-foundation-sys/0.8.3;name=core-foundation-sys-0.8.3 \
+    crate://crates.io/coz/0.1.3;name=coz-0.1.3 \
+    crate://crates.io/cpp/0.5.7;name=cpp-0.5.7 \
+    crate://crates.io/cpp_build/0.5.7;name=cpp_build-0.5.7 \
+    crate://crates.io/cpp_common/0.5.7;name=cpp_common-0.5.7 \
+    crate://crates.io/cpp_macros/0.5.7;name=cpp_macros-0.5.7 \
+    crate://crates.io/cpufeatures/0.2.5;name=cpufeatures-0.2.5 \
+    crate://crates.io/crc32fast/1.3.2;name=crc32fast-1.3.2 \
+    crate://crates.io/crossbeam-channel/0.5.6;name=crossbeam-channel-0.5.6 \
+    crate://crates.io/crossbeam-deque/0.8.2;name=crossbeam-deque-0.8.2 \
+    crate://crates.io/crossbeam-epoch/0.9.12;name=crossbeam-epoch-0.9.12 \
+    crate://crates.io/crossbeam-utils/0.8.13;name=crossbeam-utils-0.8.13 \
+    crate://crates.io/crossterm/0.26.1;name=crossterm-0.26.1 \
+    crate://crates.io/crossterm_winapi/0.9.0;name=crossterm_winapi-0.9.0 \
+    crate://crates.io/crunchy/0.2.2;name=crunchy-0.2.2 \
+    crate://crates.io/crypto-common/0.1.6;name=crypto-common-0.1.6 \
+    crate://crates.io/ctor/0.1.26;name=ctor-0.1.26 \
+    crate://crates.io/ctrlc/3.2.4;name=ctrlc-3.2.4 \
+    crate://crates.io/custom_derive/0.1.7;name=custom_derive-0.1.7 \
+    crate://crates.io/cxx/1.0.82;name=cxx-1.0.82 \
+    crate://crates.io/cxx-build/1.0.82;name=cxx-build-1.0.82 \
+    crate://crates.io/cxxbridge-flags/1.0.82;name=cxxbridge-flags-1.0.82 \
+    crate://crates.io/cxxbridge-macro/1.0.82;name=cxxbridge-macro-1.0.82 \
+    crate://crates.io/data-encoding/2.3.2;name=data-encoding-2.3.2 \
+    crate://crates.io/data-encoding-macro/0.1.12;name=data-encoding-macro-0.1.12 \
+    crate://crates.io/data-encoding-macro-internal/0.1.10;name=data-encoding-macro-internal-0.1.10 \
+    crate://crates.io/diff/0.1.13;name=diff-0.1.13 \
+    crate://crates.io/digest/0.10.6;name=digest-0.10.6 \
+    crate://crates.io/dlv-list/0.3.0;name=dlv-list-0.3.0 \
+    crate://crates.io/dns-lookup/1.0.8;name=dns-lookup-1.0.8 \
+    crate://crates.io/dunce/1.0.3;name=dunce-1.0.3 \
+    crate://crates.io/either/1.8.0;name=either-1.8.0 \
+    crate://crates.io/encode_unicode/0.3.6;name=encode_unicode-0.3.6 \
+    crate://crates.io/env_logger/0.8.4;name=env_logger-0.8.4 \
+    crate://crates.io/errno/0.2.8;name=errno-0.2.8 \
+    crate://crates.io/errno/0.3.0;name=errno-0.3.0 \
+    crate://crates.io/errno-dragonfly/0.1.2;name=errno-dragonfly-0.1.2 \
+    crate://crates.io/exacl/0.10.0;name=exacl-0.10.0 \
+    crate://crates.io/fastrand/1.8.0;name=fastrand-1.8.0 \
+    crate://crates.io/file_diff/1.0.0;name=file_diff-1.0.0 \
+    crate://crates.io/filetime/0.2.18;name=filetime-0.2.18 \
+    crate://crates.io/flate2/1.0.24;name=flate2-1.0.24 \
+    crate://crates.io/fnv/1.0.7;name=fnv-1.0.7 \
+    crate://crates.io/fs_extra/1.3.0;name=fs_extra-1.3.0 \
+    crate://crates.io/fsevent-sys/4.1.0;name=fsevent-sys-4.1.0 \
+    crate://crates.io/fts-sys/0.2.4;name=fts-sys-0.2.4 \
+    crate://crates.io/fundu/0.5.0;name=fundu-0.5.0 \
+    crate://crates.io/futures/0.3.25;name=futures-0.3.25 \
+    crate://crates.io/futures-channel/0.3.25;name=futures-channel-0.3.25 \
+    crate://crates.io/futures-core/0.3.25;name=futures-core-0.3.25 \
+    crate://crates.io/futures-executor/0.3.25;name=futures-executor-0.3.25 \
+    crate://crates.io/futures-io/0.3.25;name=futures-io-0.3.25 \
+    crate://crates.io/futures-macro/0.3.25;name=futures-macro-0.3.25 \
+    crate://crates.io/futures-sink/0.3.25;name=futures-sink-0.3.25 \
+    crate://crates.io/futures-task/0.3.25;name=futures-task-0.3.25 \
+    crate://crates.io/futures-timer/3.0.2;name=futures-timer-3.0.2 \
+    crate://crates.io/futures-util/0.3.25;name=futures-util-0.3.25 \
+    crate://crates.io/gcd/2.3.0;name=gcd-2.3.0 \
+    crate://crates.io/generic-array/0.14.6;name=generic-array-0.14.6 \
+    crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
+    crate://crates.io/glob/0.3.1;name=glob-0.3.1 \
+    crate://crates.io/half/2.2.1;name=half-2.2.1 \
+    crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \
+    crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
+    crate://crates.io/hermit-abi/0.3.1;name=hermit-abi-0.3.1 \
+    crate://crates.io/hex/0.4.3;name=hex-0.4.3 \
+    crate://crates.io/hex-literal/0.4.0;name=hex-literal-0.4.0 \
+    crate://crates.io/hostname/0.3.1;name=hostname-0.3.1 \
+    crate://crates.io/iana-time-zone/0.1.53;name=iana-time-zone-0.1.53 \
+    crate://crates.io/iana-time-zone-haiku/0.1.1;name=iana-time-zone-haiku-0.1.1 \
+    crate://crates.io/indicatif/0.17.3;name=indicatif-0.17.3 \
+    crate://crates.io/inotify/0.9.6;name=inotify-0.9.6 \
+    crate://crates.io/inotify-sys/0.1.5;name=inotify-sys-0.1.5 \
+    crate://crates.io/instant/0.1.12;name=instant-0.1.12 \
+    crate://crates.io/io-lifetimes/1.0.5;name=io-lifetimes-1.0.5 \
+    crate://crates.io/is-terminal/0.4.6;name=is-terminal-0.4.6 \
+    crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
+    crate://crates.io/itoa/1.0.4;name=itoa-1.0.4 \
+    crate://crates.io/js-sys/0.3.60;name=js-sys-0.3.60 \
+    crate://crates.io/keccak/0.1.3;name=keccak-0.1.3 \
+    crate://crates.io/kqueue/1.0.7;name=kqueue-1.0.7 \
+    crate://crates.io/kqueue-sys/1.0.3;name=kqueue-sys-1.0.3 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/lazycell/1.3.0;name=lazycell-1.3.0 \
+    crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
+    crate://crates.io/libloading/0.7.4;name=libloading-0.7.4 \
+    crate://crates.io/link-cplusplus/1.0.7;name=link-cplusplus-1.0.7 \
+    crate://crates.io/linux-raw-sys/0.1.4;name=linux-raw-sys-0.1.4 \
+    crate://crates.io/linux-raw-sys/0.3.0;name=linux-raw-sys-0.3.0 \
+    crate://crates.io/lock_api/0.4.9;name=lock_api-0.4.9 \
+    crate://crates.io/log/0.4.17;name=log-0.4.17 \
+    crate://crates.io/lscolors/0.13.0;name=lscolors-0.13.0 \
+    crate://crates.io/match_cfg/0.1.0;name=match_cfg-0.1.0 \
+    crate://crates.io/md-5/0.10.5;name=md-5-0.10.5 \
+    crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
+    crate://crates.io/memmap2/0.5.8;name=memmap2-0.5.8 \
+    crate://crates.io/memoffset/0.7.1;name=memoffset-0.7.1 \
+    crate://crates.io/minimal-lexical/0.2.1;name=minimal-lexical-0.2.1 \
+    crate://crates.io/miniz_oxide/0.5.4;name=miniz_oxide-0.5.4 \
+    crate://crates.io/mio/0.8.5;name=mio-0.8.5 \
+    crate://crates.io/nix/0.26.2;name=nix-0.26.2 \
+    crate://crates.io/nom/7.1.3;name=nom-7.1.3 \
+    crate://crates.io/notify/5.1.0;name=notify-5.1.0 \
+    crate://crates.io/nu-ansi-term/0.46.0;name=nu-ansi-term-0.46.0 \
+    crate://crates.io/num-bigint/0.4.3;name=num-bigint-0.4.3 \
+    crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
+    crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
+    crate://crates.io/num_cpus/1.14.0;name=num_cpus-1.14.0 \
+    crate://crates.io/num_threads/0.1.6;name=num_threads-0.1.6 \
+    crate://crates.io/number_prefix/0.4.0;name=number_prefix-0.4.0 \
+    crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
+    crate://crates.io/onig/6.4.0;name=onig-6.4.0 \
+    crate://crates.io/onig_sys/69.8.1;name=onig_sys-69.8.1 \
+    crate://crates.io/ordered-multimap/0.4.3;name=ordered-multimap-0.4.3 \
+    crate://crates.io/os_display/0.1.3;name=os_display-0.1.3 \
+    crate://crates.io/ouroboros/0.15.6;name=ouroboros-0.15.6 \
+    crate://crates.io/ouroboros_macro/0.15.6;name=ouroboros_macro-0.15.6 \
+    crate://crates.io/output_vt100/0.1.3;name=output_vt100-0.1.3 \
+    crate://crates.io/overload/0.1.1;name=overload-0.1.1 \
+    crate://crates.io/parking_lot/0.12.1;name=parking_lot-0.12.1 \
+    crate://crates.io/parking_lot_core/0.9.4;name=parking_lot_core-0.9.4 \
+    crate://crates.io/peeking_take_while/0.1.2;name=peeking_take_while-0.1.2 \
+    crate://crates.io/phf/0.11.1;name=phf-0.11.1 \
+    crate://crates.io/phf_codegen/0.11.1;name=phf_codegen-0.11.1 \
+    crate://crates.io/phf_generator/0.11.1;name=phf_generator-0.11.1 \
+    crate://crates.io/phf_shared/0.11.1;name=phf_shared-0.11.1 \
+    crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
+    crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
+    crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
+    crate://crates.io/platform-info/1.0.2;name=platform-info-1.0.2 \
+    crate://crates.io/portable-atomic/0.3.15;name=portable-atomic-0.3.15 \
+    crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
+    crate://crates.io/pretty_assertions/1.3.0;name=pretty_assertions-1.3.0 \
+    crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
+    crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
+    crate://crates.io/proc-macro2/1.0.47;name=proc-macro2-1.0.47 \
+    crate://crates.io/procfs/0.15.1;name=procfs-0.15.1 \
+    crate://crates.io/quick-error/2.0.1;name=quick-error-2.0.1 \
+    crate://crates.io/quickcheck/1.0.3;name=quickcheck-1.0.3 \
+    crate://crates.io/quote/1.0.21;name=quote-1.0.21 \
+    crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
+    crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
+    crate://crates.io/rand_pcg/0.3.1;name=rand_pcg-0.3.1 \
+    crate://crates.io/rayon/1.7.0;name=rayon-1.7.0 \
+    crate://crates.io/rayon-core/1.11.0;name=rayon-core-1.11.0 \
+    crate://crates.io/redox_syscall/0.2.16;name=redox_syscall-0.2.16 \
+    crate://crates.io/reference-counted-singleton/0.1.2;name=reference-counted-singleton-0.1.2 \
+    crate://crates.io/regex/1.7.3;name=regex-1.7.3 \
+    crate://crates.io/regex-automata/0.1.10;name=regex-automata-0.1.10 \
+    crate://crates.io/regex-syntax/0.6.29;name=regex-syntax-0.6.29 \
+    crate://crates.io/rlimit/0.9.1;name=rlimit-0.9.1 \
+    crate://crates.io/roff/0.2.1;name=roff-0.2.1 \
+    crate://crates.io/rstest/0.17.0;name=rstest-0.17.0 \
+    crate://crates.io/rstest_macros/0.17.0;name=rstest_macros-0.17.0 \
+    crate://crates.io/rust-ini/0.18.0;name=rust-ini-0.18.0 \
+    crate://crates.io/rustc-hash/1.1.0;name=rustc-hash-1.1.0 \
+    crate://crates.io/rustc_version/0.4.0;name=rustc_version-0.4.0 \
+    crate://crates.io/rustix/0.36.8;name=rustix-0.36.8 \
+    crate://crates.io/rustix/0.37.3;name=rustix-0.37.3 \
+    crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
+    crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
+    crate://crates.io/scratch/1.0.2;name=scratch-1.0.2 \
+    crate://crates.io/selinux/0.4.0;name=selinux-0.4.0 \
+    crate://crates.io/selinux-sys/0.6.2;name=selinux-sys-0.6.2 \
+    crate://crates.io/semver/1.0.14;name=semver-1.0.14 \
+    crate://crates.io/serde/1.0.147;name=serde-1.0.147 \
+    crate://crates.io/sha1/0.10.5;name=sha1-0.10.5 \
+    crate://crates.io/sha2/0.10.6;name=sha2-0.10.6 \
+    crate://crates.io/sha3/0.10.6;name=sha3-0.10.6 \
+    crate://crates.io/shlex/1.1.0;name=shlex-1.1.0 \
+    crate://crates.io/signal-hook/0.3.15;name=signal-hook-0.3.15 \
+    crate://crates.io/signal-hook-mio/0.2.3;name=signal-hook-mio-0.2.3 \
+    crate://crates.io/signal-hook-registry/1.4.0;name=signal-hook-registry-1.4.0 \
+    crate://crates.io/siphasher/0.3.10;name=siphasher-0.3.10 \
+    crate://crates.io/slab/0.4.7;name=slab-0.4.7 \
+    crate://crates.io/sm3/0.4.1;name=sm3-0.4.1 \
+    crate://crates.io/smallvec/1.10.0;name=smallvec-1.10.0 \
+    crate://crates.io/smawk/0.3.1;name=smawk-0.3.1 \
+    crate://crates.io/socket2/0.4.7;name=socket2-0.4.7 \
+    crate://crates.io/static_assertions/1.1.0;name=static_assertions-1.1.0 \
+    crate://crates.io/strsim/0.10.0;name=strsim-0.10.0 \
+    crate://crates.io/subtle/2.4.1;name=subtle-2.4.1 \
+    crate://crates.io/syn/1.0.103;name=syn-1.0.103 \
+    crate://crates.io/tempfile/3.4.0;name=tempfile-3.4.0 \
+    crate://crates.io/term_grid/0.1.7;name=term_grid-0.1.7 \
+    crate://crates.io/termcolor/1.1.3;name=termcolor-1.1.3 \
+    crate://crates.io/terminal_size/0.2.5;name=terminal_size-0.2.5 \
+    crate://crates.io/textwrap/0.16.0;name=textwrap-0.16.0 \
+    crate://crates.io/thiserror/1.0.37;name=thiserror-1.0.37 \
+    crate://crates.io/thiserror-impl/1.0.37;name=thiserror-impl-1.0.37 \
+    crate://crates.io/time/0.3.20;name=time-0.3.20 \
+    crate://crates.io/time-core/0.1.0;name=time-core-0.1.0 \
+    crate://crates.io/time-macros/0.2.8;name=time-macros-0.2.8 \
+    crate://crates.io/typenum/1.15.0;name=typenum-1.15.0 \
+    crate://crates.io/unicode-ident/1.0.5;name=unicode-ident-1.0.5 \
+    crate://crates.io/unicode-linebreak/0.1.4;name=unicode-linebreak-0.1.4 \
+    crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
+    crate://crates.io/unicode-width/0.1.10;name=unicode-width-0.1.10 \
+    crate://crates.io/unicode-xid/0.2.4;name=unicode-xid-0.2.4 \
+    crate://crates.io/unindent/0.2.1;name=unindent-0.2.1 \
+    crate://crates.io/users/0.11.0;name=users-0.11.0 \
+    crate://crates.io/utf-8/0.7.6;name=utf-8-0.7.6 \
+    crate://crates.io/utf8parse/0.2.1;name=utf8parse-0.2.1 \
+    crate://crates.io/uuid/1.2.2;name=uuid-1.2.2 \
+    crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
+    crate://crates.io/walkdir/2.3.2;name=walkdir-2.3.2 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen/0.2.83;name=wasm-bindgen-0.2.83 \
+    crate://crates.io/wasm-bindgen-backend/0.2.83;name=wasm-bindgen-backend-0.2.83 \
+    crate://crates.io/wasm-bindgen-macro/0.2.83;name=wasm-bindgen-macro-0.2.83 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.83;name=wasm-bindgen-macro-support-0.2.83 \
+    crate://crates.io/wasm-bindgen-shared/0.2.83;name=wasm-bindgen-shared-0.2.83 \
+    crate://crates.io/which/4.3.0;name=which-4.3.0 \
+    crate://crates.io/wild/2.1.0;name=wild-2.1.0 \
+    crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+    crate://crates.io/windows-sys/0.42.0;name=windows-sys-0.42.0 \
+    crate://crates.io/windows-sys/0.45.0;name=windows-sys-0.45.0 \
+    crate://crates.io/windows-targets/0.42.1;name=windows-targets-0.42.1 \
+    crate://crates.io/windows_aarch64_gnullvm/0.42.1;name=windows_aarch64_gnullvm-0.42.1 \
+    crate://crates.io/windows_aarch64_msvc/0.42.1;name=windows_aarch64_msvc-0.42.1 \
+    crate://crates.io/windows_i686_gnu/0.42.1;name=windows_i686_gnu-0.42.1 \
+    crate://crates.io/windows_i686_msvc/0.42.1;name=windows_i686_msvc-0.42.1 \
+    crate://crates.io/windows_x86_64_gnu/0.42.1;name=windows_x86_64_gnu-0.42.1 \
+    crate://crates.io/windows_x86_64_gnullvm/0.42.1;name=windows_x86_64_gnullvm-0.42.1 \
+    crate://crates.io/windows_x86_64_msvc/0.42.1;name=windows_x86_64_msvc-0.42.1 \
+    crate://crates.io/xattr/1.0.0;name=xattr-1.0.0 \
+    crate://crates.io/yansi/0.5.1;name=yansi-0.5.1 \
+    crate://crates.io/z85/3.0.5;name=z85-3.0.5 \
+    crate://crates.io/zip/0.6.4;name=zip-0.6.4 \
 "
+
+SRC_URI[Inflector-0.11.4.sha256sum] = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+SRC_URI[aho-corasick-0.7.19.sha256sum] = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+SRC_URI[aliasable-0.1.3.sha256sum] = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[anstream-0.2.6.sha256sum] = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f"
+SRC_URI[anstyle-0.3.5.sha256sum] = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2"
+SRC_URI[anstyle-parse-0.1.1.sha256sum] = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116"
+SRC_URI[anstyle-wincon-0.2.0.sha256sum] = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa"
+SRC_URI[arrayref-0.3.6.sha256sum] = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+SRC_URI[arrayvec-0.7.2.sha256sum] = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bigdecimal-0.3.0.sha256sum] = "6aaf33151a6429fe9211d1b276eafdf70cdff28b071e76c0b0e1503221ea3744"
+SRC_URI[binary-heap-plus-0.5.0.sha256sum] = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296"
+SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[blake2b_simd-1.0.1.sha256sum] = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+SRC_URI[blake3-1.3.3.sha256sum] = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef"
+SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+SRC_URI[bstr-1.4.0.sha256sum] = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09"
+SRC_URI[bumpalo-3.11.1.sha256sum] = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+SRC_URI[bytecount-0.6.3.sha256sum] = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cc-1.0.77.sha256sum] = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[chrono-0.4.24.sha256sum] = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+SRC_URI[clang-sys-1.4.0.sha256sum] = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
+SRC_URI[clap-4.2.0.sha256sum] = "6efb5f0a41b5ef5b50c5da28c07609c20091df0c1fc33d418fa2a7e693c2b624"
+SRC_URI[clap_builder-4.2.0.sha256sum] = "671fcaa5debda4b9a84aa7fde49c907c8986c0e6ab927e04217c9cb74e7c8bc9"
+SRC_URI[clap_complete-4.2.0.sha256sum] = "01c22dcfb410883764b29953103d9ef7bb8fe21b3fa1158bc99986c2067294bd"
+SRC_URI[clap_lex-0.4.1.sha256sum] = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1"
+SRC_URI[clap_mangen-0.2.9.sha256sum] = "bb0f09a0ca8f0dd8ac92c546b426f466ef19828185c6d504c80c48c9c2768ed9"
+SRC_URI[codespan-reporting-0.11.1.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3"
+SRC_URI[concolor-override-1.0.0.sha256sum] = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f"
+SRC_URI[concolor-query-0.3.3.sha256sum] = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf"
+SRC_URI[console-0.15.5.sha256sum] = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
+SRC_URI[constant_time_eq-0.2.4.sha256sum] = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
+SRC_URI[conv-0.3.3.sha256sum] = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
+SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+SRC_URI[coz-0.1.3.sha256sum] = "cef55b3fe2f5477d59e12bc792e8b3c95a25bd099eadcfae006ecea136de76e2"
+SRC_URI[cpp-0.5.7.sha256sum] = "dec5e86d4f6547f0218ad923d9508244a71ef83b763196e6698b4f70f3595185"
+SRC_URI[cpp_build-0.5.7.sha256sum] = "16f4d303b8ec35fb3afd7e963e2c898117f1e49930becb703e4a7ac528ad2dd0"
+SRC_URI[cpp_common-0.5.7.sha256sum] = "76071bb9c8c4dd2b5eb209907deab7b031323cf1be3dfdc6ec5d37f4f187d8a1"
+SRC_URI[cpp_macros-0.5.7.sha256sum] = "7fdaa01904c12a8989dbfa110b41ef27efc432ac9934f691b9732f01cb64dc01"
+SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[crossbeam-channel-0.5.6.sha256sum] = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+SRC_URI[crossbeam-deque-0.8.2.sha256sum] = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+SRC_URI[crossbeam-epoch-0.9.12.sha256sum] = "96bf8df95e795db1a4aca2957ad884a2df35413b24bbeb3114422f3cc21498e8"
+SRC_URI[crossbeam-utils-0.8.13.sha256sum] = "422f23e724af1240ec469ea1e834d87a4b59ce2efe2c6a96256b0c47e2fd86aa"
+SRC_URI[crossterm-0.26.1.sha256sum] = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
+SRC_URI[crossterm_winapi-0.9.0.sha256sum] = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[ctor-0.1.26.sha256sum] = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+SRC_URI[ctrlc-3.2.4.sha256sum] = "1631ca6e3c59112501a9d87fd86f21591ff77acd31331e8a73f8d80a65bbdd71"
+SRC_URI[custom_derive-0.1.7.sha256sum] = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
+SRC_URI[cxx-1.0.82.sha256sum] = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453"
+SRC_URI[cxx-build-1.0.82.sha256sum] = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0"
+SRC_URI[cxxbridge-flags-1.0.82.sha256sum] = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71"
+SRC_URI[cxxbridge-macro-1.0.82.sha256sum] = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470"
+SRC_URI[data-encoding-2.3.2.sha256sum] = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
+SRC_URI[data-encoding-macro-0.1.12.sha256sum] = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca"
+SRC_URI[data-encoding-macro-internal-0.1.10.sha256sum] = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db"
+SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+SRC_URI[digest-0.10.6.sha256sum] = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+SRC_URI[dlv-list-0.3.0.sha256sum] = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+SRC_URI[dns-lookup-1.0.8.sha256sum] = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872"
+SRC_URI[dunce-1.0.3.sha256sum] = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c"
+SRC_URI[either-1.8.0.sha256sum] = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[errno-0.3.0.sha256sum] = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[exacl-0.10.0.sha256sum] = "1cfeb22a59deb24c3262c43ffcafd1eb807180f371f9fcc99098d181b5d639be"
+SRC_URI[fastrand-1.8.0.sha256sum] = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+SRC_URI[file_diff-1.0.0.sha256sum] = "31a7a908b8f32538a2143e59a6e4e2508988832d5d4d6f7c156b3cbc762643a5"
+SRC_URI[filetime-0.2.18.sha256sum] = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3"
+SRC_URI[flate2-1.0.24.sha256sum] = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+SRC_URI[fs_extra-1.3.0.sha256sum] = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
+SRC_URI[fsevent-sys-4.1.0.sha256sum] = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+SRC_URI[fts-sys-0.2.4.sha256sum] = "9a66c0a21e344f20c87b4ca12643cf4f40a7018f132c98d344e989b959f49dd1"
+SRC_URI[fundu-0.5.0.sha256sum] = "bd020eeb034c9fc682e8fe6b9a28e1c0eda92eeb347c38776c09a0b227cdf9e5"
+SRC_URI[futures-0.3.25.sha256sum] = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
+SRC_URI[futures-channel-0.3.25.sha256sum] = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
+SRC_URI[futures-core-0.3.25.sha256sum] = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+SRC_URI[futures-executor-0.3.25.sha256sum] = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
+SRC_URI[futures-io-0.3.25.sha256sum] = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+SRC_URI[futures-macro-0.3.25.sha256sum] = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+SRC_URI[futures-sink-0.3.25.sha256sum] = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+SRC_URI[futures-task-0.3.25.sha256sum] = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+SRC_URI[futures-timer-3.0.2.sha256sum] = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+SRC_URI[futures-util-0.3.25.sha256sum] = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+SRC_URI[gcd-2.3.0.sha256sum] = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[half-2.2.1.sha256sum] = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.3.1.sha256sum] = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[hex-literal-0.4.0.sha256sum] = "4bcb5b3e439c92a7191df2f9bbe733de8de55c3f86368cdb1c63f8be7e9e328e"
+SRC_URI[hostname-0.3.1.sha256sum] = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+SRC_URI[iana-time-zone-0.1.53.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+SRC_URI[iana-time-zone-haiku-0.1.1.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+SRC_URI[indicatif-0.17.3.sha256sum] = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
+SRC_URI[inotify-0.9.6.sha256sum] = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+SRC_URI[inotify-sys-0.1.5.sha256sum] = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.5.sha256sum] = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
+SRC_URI[is-terminal-0.4.6.sha256sum] = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[itoa-1.0.4.sha256sum] = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+SRC_URI[keccak-0.1.3.sha256sum] = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768"
+SRC_URI[kqueue-1.0.7.sha256sum] = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
+SRC_URI[kqueue-sys-1.0.3.sha256sum] = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[link-cplusplus-1.0.7.sha256sum] = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
+SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+SRC_URI[linux-raw-sys-0.3.0.sha256sum] = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[lscolors-0.13.0.sha256sum] = "c2dedc85d67baf5327114fad78ab9418f8893b1121c17d5538dd11005ad1ddf2"
+SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+SRC_URI[md-5-0.10.5.sha256sum] = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memmap2-0.5.8.sha256sum] = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc"
+SRC_URI[memoffset-0.7.1.sha256sum] = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.5.4.sha256sum] = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
+SRC_URI[mio-0.8.5.sha256sum] = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+SRC_URI[nix-0.26.2.sha256sum] = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[notify-5.1.0.sha256sum] = "58ea850aa68a06e48fdb069c0ec44d0d64c8dbffa49bf3b6f7f0a901fdea1ba9"
+SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.14.0.sha256sum] = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[onig-6.4.0.sha256sum] = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
+SRC_URI[onig_sys-69.8.1.sha256sum] = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
+SRC_URI[ordered-multimap-0.4.3.sha256sum] = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+SRC_URI[os_display-0.1.3.sha256sum] = "7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75"
+SRC_URI[ouroboros-0.15.6.sha256sum] = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
+SRC_URI[ouroboros_macro-0.15.6.sha256sum] = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
+SRC_URI[output_vt100-0.1.3.sha256sum] = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
+SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.4.sha256sum] = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0"
+SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+SRC_URI[phf-0.11.1.sha256sum] = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
+SRC_URI[phf_codegen-0.11.1.sha256sum] = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770"
+SRC_URI[phf_generator-0.11.1.sha256sum] = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+SRC_URI[phf_shared-0.11.1.sha256sum] = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[platform-info-1.0.2.sha256sum] = "4e7c23cfae725ae06d9e43010153fa77bdfa8c827bf08fe4beeb2a3514e6be12"
+SRC_URI[portable-atomic-0.3.15.sha256sum] = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[pretty_assertions-1.3.0.sha256sum] = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.47.sha256sum] = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+SRC_URI[procfs-0.15.1.sha256sum] = "943ca7f9f29bab5844ecd8fdb3992c5969b6622bb9609b9502fef9b4310e3f1f"
+SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[quote-1.0.21.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rand_pcg-0.3.1.sha256sum] = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e"
+SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[reference-counted-singleton-0.1.2.sha256sum] = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f"
+SRC_URI[regex-1.7.3.sha256sum] = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
+SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+SRC_URI[rlimit-0.9.1.sha256sum] = "f8a29d87a652dc4d43c586328706bb5cdff211f3f39a530f240b53f7221dab8e"
+SRC_URI[roff-0.2.1.sha256sum] = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+SRC_URI[rstest-0.17.0.sha256sum] = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
+SRC_URI[rstest_macros-0.17.0.sha256sum] = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
+SRC_URI[rust-ini-0.18.0.sha256sum] = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[rustix-0.36.8.sha256sum] = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"
+SRC_URI[rustix-0.37.3.sha256sum] = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[scratch-1.0.2.sha256sum] = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+SRC_URI[selinux-0.4.0.sha256sum] = "a00576725d21b588213fbd4af84cd7e4cc4304e8e9bd6c0f5a1498a3e2ca6a51"
+SRC_URI[selinux-sys-0.6.2.sha256sum] = "806d381649bb85347189d2350728817418138d11d738e2482cb644ec7f3c755d"
+SRC_URI[semver-1.0.14.sha256sum] = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
+SRC_URI[serde-1.0.147.sha256sum] = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
+SRC_URI[sha1-0.10.5.sha256sum] = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+SRC_URI[sha2-0.10.6.sha256sum] = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+SRC_URI[sha3-0.10.6.sha256sum] = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9"
+SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+SRC_URI[signal-hook-0.3.15.sha256sum] = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+SRC_URI[signal-hook-mio-0.2.3.sha256sum] = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+SRC_URI[slab-0.4.7.sha256sum] = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+SRC_URI[sm3-0.4.1.sha256sum] = "f943a7c5e3089f2bd046221d1e9f4fa59396bf0fe966360983649683086215da"
+SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[smawk-0.3.1.sha256sum] = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+SRC_URI[socket2-0.4.7.sha256sum] = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-1.0.103.sha256sum] = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
+SRC_URI[tempfile-3.4.0.sha256sum] = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+SRC_URI[term_grid-0.1.7.sha256sum] = "230d3e804faaed5a39b08319efb797783df2fd9671b39b7596490cb486d702cf"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[terminal_size-0.2.5.sha256sum] = "4c9afddd2cec1c0909f06b00ef33f94ab2cc0578c4a610aa208ddfec8aa2b43a"
+SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+SRC_URI[thiserror-1.0.37.sha256sum] = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+SRC_URI[thiserror-impl-1.0.37.sha256sum] = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+SRC_URI[unicode-ident-1.0.5.sha256sum] = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+SRC_URI[unicode-linebreak-0.1.4.sha256sum] = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[unindent-0.2.1.sha256sum] = "5aa30f5ea51ff7edfc797c6d3f9ec8cbd8cfedef5371766b7181d33977f4814f"
+SRC_URI[users-0.11.0.sha256sum] = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
+SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[uuid-1.2.2.sha256sum] = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.83.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+SRC_URI[wasm-bindgen-backend-0.2.83.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+SRC_URI[wasm-bindgen-macro-0.2.83.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+SRC_URI[wasm-bindgen-macro-support-0.2.83.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+SRC_URI[wasm-bindgen-shared-0.2.83.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+SRC_URI[which-4.3.0.sha256sum] = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
+SRC_URI[wild-2.1.0.sha256sum] = "05b116685a6be0c52f5a103334cbff26db643826c7b3735fc0a3ba9871310a74"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-targets-0.42.1.sha256sum] = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+SRC_URI[windows_aarch64_gnullvm-0.42.1.sha256sum] = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+SRC_URI[windows_aarch64_msvc-0.42.1.sha256sum] = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+SRC_URI[windows_i686_gnu-0.42.1.sha256sum] = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+SRC_URI[windows_i686_msvc-0.42.1.sha256sum] = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+SRC_URI[windows_x86_64_gnu-0.42.1.sha256sum] = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+SRC_URI[windows_x86_64_gnullvm-0.42.1.sha256sum] = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+SRC_URI[windows_x86_64_msvc-0.42.1.sha256sum] = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+SRC_URI[xattr-1.0.0.sha256sum] = "ea263437ca03c1522846a4ddafbca2542d0ad5ed9b784909d4b27b76f62bc34a"
+SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+SRC_URI[z85-3.0.5.sha256sum] = "2a599daf1b507819c1121f0bf87fa37eb19daac6aff3aefefd4e6e2e0f2020fc"
+SRC_URI[zip-0.6.4.sha256sum] = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef"
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc
index 68cfa81..973b722 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc
@@ -1,4 +1,3 @@
-# This file contains content which was not automatically generated using cargo-bitbake on the cargo.toml file of uutils-coreutils
 # Copyright (c) 2022, Snap Inc.
 # Released under the MIT license (see COPYING.MIT for the terms)
 
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.17.bb b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.18.bb
similarity index 62%
rename from meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.17.bb
rename to meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.18.bb
index 4d3c2f7..a2e541c 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.17.bb
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.18.bb
@@ -6,7 +6,12 @@
 inherit cargo cargo-update-recipe-crates
 
 SRC_URI += "git://github.com/uutils/coreutils.git;protocol=https;nobranch=1"
-SRCREV = "7e127005afbd6c3632d74ad8082340ccb8329d67"
+
+# musl not supported because the libc crate does not support functions like "endutxent" at the moment,
+# so src/uucore/src/lib/features.rs disables utmpx when targetting musl.
+COMPATIBLE_HOST:libc-musl = "null"
+
+SRCREV = "eb11c4006f3286efee5226e546f119a20998266b"
 S = "${WORKDIR}/git"
 
 require ${BPN}-crates.inc
diff --git a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
index 08f2e26..8617ba5 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
@@ -7,8 +7,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915"
 
-PV = "20230125.1"
-SRCREV = "c8a2f92586fe9b4e1aff049108f5db8064924d8e"
+PV = "20230125.2"
+SRCREV = "b971ac5250ea8de900eae9f95e06548d14cd95fe"
 BRANCH = "lts_2023_01_25"
 SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
            file://0001-absl-always-use-asm-sgidefs.h.patch             \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.10.3.bb b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.bb
similarity index 89%
rename from meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.10.3.bb
rename to meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.bb
index bf98d56..bbdc3b5 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.10.3.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.bb
@@ -5,8 +5,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://../LICENSE;md5=a05663ae6cca874123bf667a60dca8c9"
 
-SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-0.10.3;protocol=https"
-SRCREV = "a16468f296a9584f4068072efecdee8a9eb9c2ed"
+SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-0.10.4;protocol=https"
+SRCREV = "a91ec65323c2577732224d0cf6f5bf1e79d3a724"
 
 S = "${WORKDIR}/git/c++"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230319.0.bb b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230416.0.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230319.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230416.0.bb
index feee721..cc82d99 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230319.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230416.0.bb
@@ -14,7 +14,7 @@
 
 inherit autotools-brokensep pkgconfig manpages
 
-SRCREV = "6e720ab5591d24cd401b720a63110bc224780f6f"
+SRCREV = "5ba7dfcc55471e599375281f52ad2bebdc527c62"
 SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/run-ptest b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/run-ptest
index b351f94..5c826a1 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/files/run-ptest
@@ -1,9 +1,37 @@
 #!/bin/sh
 
+export MALLOC_CONF_ALL=${MALLOC_CONF}
+# Concatenate the individual test's MALLOC_CONF and MALLOC_CONF_ALL.
+export_malloc_conf() {
+  if [ "x${MALLOC_CONF}" != "x" -a "x${MALLOC_CONF_ALL}" != "x" ] ; then
+    export MALLOC_CONF="${MALLOC_CONF},${MALLOC_CONF_ALL}"
+  else
+    export MALLOC_CONF="${MALLOC_CONF}${MALLOC_CONF_ALL}"
+  fi
+}
+
+
+
 saved_dir=$PWD
 for dir in tests/* ; do
 	cd $dir
 	for atest in * ; do
+		if [[ "${atest##*.}" == "sh" ]]; then
+			continue
+		fi
+		if [ -e "${atest}.sh" ] ; then
+		  	# Source the shell script corresponding to the test in a subshell and
+		  	# execute the test.  This allows the shell script to set MALLOC_CONF, which
+		  	# is then used to set MALLOC_CONF (thus allowing the
+		  	# per test shell script to ignore the  detail).
+		  	enable_fill=1 \
+		  	enable_prof=1 \
+		  	. $(pwd)/${atest}.sh && \
+		  	export_malloc_conf
+		else
+		  	export MALLOC_CONF= && \
+		  	export_malloc_conf
+		fi
 		if [ \( -x $atest \) -a \( -f $atest \) ] ; then
 			rm -rf tests.log
 			./$atest > tests.log 2>&1
@@ -18,4 +46,3 @@
 	done
 	cd $saved_dir
 done
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
index 950b64e..9ad8326 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
@@ -42,10 +42,13 @@
 
 do_install_ptest() {
 	install -d ${D}${PTEST_PATH}/tests
-	subdirs="test/unit test/integration test/stress "
+	subdirs="unit integration stress "
 	for tooltest in ${subdirs}
 	do
-		cp -r ${B}/${tooltest} ${D}${PTEST_PATH}/tests
+		cp -r ${B}/test/${tooltest} ${D}${PTEST_PATH}/tests
+        if find ${S}/test/${tooltest}/ -name '*.sh' -print -quit | grep -q .; then
+		    cp ${S}/test/${tooltest}/*.sh ${D}${PTEST_PATH}/tests/${tooltest}
+        fi
 	done
 	find ${D}${PTEST_PATH}/tests \( -name "*.d" -o -name "*.o" \) -exec rm -f {} \;
 }
diff --git a/meta-openembedded/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.6.0.bb b/meta-openembedded/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.6.0.bb
index 8929115..2e06b70 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.6.0.bb
@@ -16,3 +16,5 @@
 inherit cmake
 
 EXTRA_OECMAKE += "-DJWT_BUILD_EXAMPLES=OFF -DJWT_CMAKE_FILES_INSTALL_DIR=${libdir}/cmake"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index 976bb48..d690dd4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -14,7 +14,7 @@
 SRCREV = "c22d359433b333937ee3d803450dc41998115685"
 
 DEPENDS = "elfutils"
-SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http;protocol=https \
+SRC_URI = "git://github.com/sparkleholic/ltrace.git;protocol=https;branch=master \
            file://configure-allow-to-disable-selinux-support.patch \
            file://0001-replace-readdir_r-with-readdir.patch \
            file://0001-Use-correct-enum-type.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-autosetup-cc-check-tools-check-only-the-name.patch b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-autosetup-cc-check-tools-check-only-the-name.patch
deleted file mode 100644
index 165c658..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-autosetup-cc-check-tools-check-only-the-name.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 29e8dfae4593c91f11d7ea31a4722a6d82f6c950 Mon Sep 17 00:00:00 2001
-From: Kory Maincent <kory.maincent@bootlin.com>
-Date: Wed, 2 Nov 2022 16:39:30 +0100
-Subject: [PATCH] autosetup: cc-check-tools: check only the name of the tool
- without its params
-
-Update the tool existence check. Test only the first word of the
-args to keep only the executable without its parameters.
-
-Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
----
- autosetup/cc.tcl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/jimtcl/autosetup/cc.tcl b/jimtcl/autosetup/cc.tcl
-index 585d259..4c87854 100644
---- a/jimtcl/autosetup/cc.tcl
-+++ b/jimtcl/autosetup/cc.tcl
-@@ -264,7 +264,7 @@ proc cc-check-tools {args} {
- 	foreach tool $args {
- 		set TOOL [string toupper $tool]
- 		set exe [get-env $TOOL [get-define cross]$tool]
--		if {[find-executable {*}$exe]} {
-+		if {[find-executable {*}[regexp -inline {\S+} $exe]]} {
- 			define $TOOL $exe
- 			continue
- 		}
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
index 06d77b6..d30d9c3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -1,31 +1,30 @@
 SUMMARY = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LIC_FILES_CHKSUM = "file://COPYING;md5=599d2d1ee7fc84c0467b3d19801db870"
 DEPENDS = "libusb-compat libftdi"
 RDEPENDS:${PN} = "libusb1"
 
 SRC_URI = " \
     git://repo.or.cz/openocd.git;protocol=http;name=openocd;branch=master \
     git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl;branch=master \
-    git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl;branch=master \
+    git://github.com/msteveb/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl;branch=master \
     git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink;branch=master \
-    file://0001-autosetup-cc-check-tools-check-only-the-name.patch \
 "
 
 SRCREV_FORMAT = "openocd"
-SRCREV_openocd = "f342aac0845a69d591ad39a025d74e9c765f6420"
+SRCREV_openocd = "91bd4313444c5a949ce49d88ab487608df7d6c37"
 SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
-SRCREV_jimtcl = "0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"
+SRCREV_jimtcl = "fcbb4499a6b46ef69e7a95da53e30796e20817f0"
 SRCREV_libjaylink = "9aa7a5957c07bb6e862fc1a6d3153d109c7407e4"
 
-PV = "0.11+gitr${SRCPV}"
+PV = "0.12+gitr${SRCPV}"
 S = "${WORKDIR}/git"
 
 inherit pkgconfig autotools-brokensep gettext
 
 BBCLASSEXTEND += "native nativesdk"
 
-EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html --disable-werror"
+EXTRA_OECONF = "--enable-ftdi --enable-jtag_vpi --enable-buspirate --disable-doxygen-html --disable-werror"
 
 do_configure() {
     ./bootstrap nosubmodule
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.24.bb b/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.24.bb
index b7f1f8b..2bb73c3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.24.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.24.bb
@@ -20,7 +20,7 @@
 
 PACKAGECONFIG[python3] = ",,python3-core,python3-core"
 
-EXTRA_OECMAKE = "-D__LIB=lib -DCMAKE_BUILD_TYPE=Release -DLIBBPF_EMBEDDED=OFF"
+EXTRA_OECMAKE = "-D__LIB=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/')} -DCMAKE_BUILD_TYPE=Release -DLIBBPF_EMBEDDED=OFF"
 
 FILES:${PN} =  "${bindir}/pahole \
 		${libdir}/libdwarves.so* \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch
new file mode 100644
index 0000000..13a9e3b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch
@@ -0,0 +1,54 @@
+From 1735a78561dbe139fd138caef2d44d81f5494fe7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Apr 2023 12:28:11 -0700
+Subject: [PATCH] Make function checks more robust within shared libs
+
+Previous attempt to error at link like was with
+
+https://github.com/toddr/IO-Tty/commit/1747cdf9f98cfd3aada9bf6c09f9d46297e18a5e
+
+this however causes issues with newer clang where it detects
+the assignment as -Wint-conversion warning which is treated at error
+and builds with clang fail. So this is an attempt to instruct
+linker explicitly to error out if the symbol is not found during link
+time when building a shared library, this fixes both the problems
+as reported in
+
+https://github.com/toddr/IO-Tty/issues/23
+
+as well as
+
+https://github.com/toddr/IO-Tty/pull/33#issuecomment-1260147256
+
+Upstream-Status: Submitted [https://github.com/toddr/IO-Tty/pull/33]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.PL | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.PL b/Makefile.PL
+index eaf47e0..2e8338d 100644
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -163,7 +163,8 @@ main ()
+ #if defined (__stub_$f) || defined (__stub___$f)
+ choke me
+ #else
+-f = $f ();
++f = $f;
++f();
+ #endif
+ 
+   ;
+@@ -173,7 +174,7 @@ ESQ
+ 
+   close(TST);
+   print "Looking for $f()" . "." x (13-length($f)) . " ";
+-  if (system("$cfg{'cc'} $flags $funcs{$f} functest_$f.c > functest_$f.log 2>&1")) {
++  if (system("$cfg{'cc'} $flags -Wl,--no-undefined $funcs{$f} functest_$f.c > functest_$f.log 2>&1")) {
+     print "not found.\n";
+   } else {
+     $define{"-DHAVE_\U$f"} = undef;
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch
deleted file mode 100644
index 07c7690..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From fae771aefc593a0ef798bc0c1e21b0524eb85e2d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 31 Aug 2022 20:32:35 -0700
-Subject: [PATCH] Tty.xs: Do not mark strlcpy as static
-
-Some libcs e.g. musl do not provide implementation of strlcpy but they
-do provide the signature in string.h, if we mark it static here then it
-conflicts with the libc define and compiler may warn/error
-
-Fixes
-Tty.xs:190:1: error: static declaration of 'strlcpy' follows non-static declaration
-strlcpy(                                                                                                                 ^
-/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libio-pty-perl/1.16-r0/recipe-sysroot/usr/include/string.h:86:8: note: previous declaration is here
-size_t strlcpy (char *, const char *, size_t);                                                                                  ^
-
-Upstream-Status: Submitted [https://github.com/toddr/IO-Tty/pull/33]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Tty.xs | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Tty.xs b/Tty.xs
-index aa638f4..4bab39d 100644
---- a/Tty.xs
-+++ b/Tty.xs
-@@ -186,11 +186,11 @@ mysignal(int sig, mysig_t act)
-  * will be copied.  Always NUL terminates (unless siz == 0).
-  * Returns strlen(src); if retval >= siz, truncation occurred.
-  */
--static size_t
--strlcpy(dst, src, siz)
--        char *dst;
--        const char *src;
--        size_t siz;
-+size_t
-+strlcpy(
-+        char *dst,
-+        const char *src,
-+        size_t siz)
- {
-         register char *d = dst;
-         register const char *s = src;
--- 
-2.37.3
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb
index 684788f..e5c1ec1 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb
@@ -4,9 +4,8 @@
 LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=12;md5=b2562f94907eeb42e8ce9d45f628e587"
 
 SRC_URI = "http://www.cpan.org/modules/by-module/IO/IO-Tty-${PV}.tar.gz \
-           file://0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch \
+           file://0001-Make-function-checks-more-robust-within-shared-libs.patch \
            "
-
 SRC_URI[sha256sum] = "a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8"
 
 S = "${WORKDIR}/IO-Tty-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb
new file mode 100644
index 0000000..ff4e1f0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Perl interface to the PC/SC smart card library"
+DESCRIPTION = "Perl wrapper to the PC/SC smartcard library (pcsc-lite) \
+together with some small examples. \
+The provided modules are Chipcard::PCSC and Chipcard::PCSC::Card."
+HOMEPAGE = "https://metacpan.org/dist/pcsc-perl"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/W/WH/WHOM/pcsc-perl-${PV}.tar.bz2"
+SRC_URI[md5sum] = "45601505dbb7b27329811ac9bad35fab"
+SRC_URI[sha256sum] = "2722b7e5543e4faf3ba1ec6b29a7dfec6d92be1edec09d0a3191992d4d88c69d"
+
+S = "${WORKDIR}/pcsc-perl-${PV}"
+
+inherit cpan pkgconfig
+
+DEPENDS += "pcsc-lite"
+
+RDEPENDS:${PN} += "perl-module-carp"
+
+BBCLASSEXTEND="native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch
new file mode 100644
index 0000000..5b8c762
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch
@@ -0,0 +1,93 @@
+From 1eeb59366d6140a799f6051fb9f57d988b81fd5b Mon Sep 17 00:00:00 2001
+From: easyaspi314 <easyaspi314@users.noreply.github.com>
+Date: Wed, 12 Apr 2023 13:33:07 +0800
+Subject: [PATCH] Change whether to inline XXH3_hashLong_withSecret to a config
+ option
+
+Change whether to inline XXH3_hashLong_withSecret to a config option to fix
+GCC 12 -Og.
+
+Upstream-Status: Submitted [https://github.com/php/php-src/pull/11062]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ ext/hash/xxhash/xxhash.h | 35 +++++++++++++++++++++++++++++++++--
+ 1 file changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/ext/hash/xxhash/xxhash.h b/ext/hash/xxhash/xxhash.h
+index b5bd2864..8e816c05 100644
+--- a/ext/hash/xxhash/xxhash.h
++++ b/ext/hash/xxhash/xxhash.h
+@@ -1375,6 +1375,23 @@ XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
+  */
+ #  define XXH_NO_INLINE_HINTS 0
+ 
++/*!
++ * @def XXH3_INLINE_SECRET
++ * @brief Determines whether to inline the XXH3 withSecret code.
++ *
++ * When the secret size is known, the compiler can improve the performance
++ * of XXH3_64bits_withSecret() and XXH3_128bits_withSecret().
++ *
++ * However, if the secret size is not known, it doesn't have any benefit. This
++ * happens when xxHash is compiled into a global symbol. Therefore, if
++ * @ref XXH_INLINE_ALL is *not* defined, this will be defined to 0.
++ *
++ * Additionally, this defaults to 0 on GCC 12+, which has an issue with function pointers
++ * that are *sometimes* force inline on -Og, and it is impossible to automatically
++ * detect this optimization level.
++ */
++#  define XXH3_INLINE_SECRET 0
++
+ /*!
+  * @def XXH32_ENDJMP
+  * @brief Whether to use a jump for `XXH32_finalize`.
+@@ -1439,6 +1456,15 @@ XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
+ #  endif
+ #endif
+ 
++#ifndef XXH3_INLINE_SECRET
++#  if (defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12) \
++     || !defined(XXH_INLINE_ALL)
++#    define XXH3_INLINE_SECRET 0
++#  else
++#    define XXH3_INLINE_SECRET 1
++#  endif
++#endif
++
+ #ifndef XXH32_ENDJMP
+ /* generally preferable for performance */
+ #  define XXH32_ENDJMP 0
+@@ -1515,6 +1541,11 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
+ #  define XXH_NO_INLINE static
+ #endif
+ 
++#if XXH3_INLINE_SECRET
++#  define XXH3_WITH_SECRET_INLINE XXH_FORCE_INLINE
++#else
++#  define XXH3_WITH_SECRET_INLINE XXH_NO_INLINE
++#endif
+ 
+ 
+ /* *************************************
+@@ -4465,7 +4496,7 @@ XXH3_hashLong_64b_internal(const void* XXH_RESTRICT input, size_t len,
+  * so that the compiler can properly optimize the vectorized loop.
+  * This makes a big performance difference for "medium" keys (<1 KB) when using AVX instruction set.
+  */
+-XXH_FORCE_INLINE XXH64_hash_t
++XXH3_WITH_SECRET_INLINE XXH64_hash_t
+ XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len,
+                              XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen)
+ {
+@@ -5263,7 +5294,7 @@ XXH3_hashLong_128b_default(const void* XXH_RESTRICT input, size_t len,
+  * It's important for performance to pass @secretLen (when it's static)
+  * to the compiler, so that it can properly optimize the vectorized loop.
+  */
+-XXH_FORCE_INLINE XXH128_hash_t
++XXH3_WITH_SECRET_INLINE XXH128_hash_t
+ XXH3_hashLong_128b_withSecret(const void* XXH_RESTRICT input, size_t len,
+                               XXH64_hash_t seed64,
+                               const void* XXH_RESTRICT secret, size_t secretLen)
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.4.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.5.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.4.bb
rename to meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.5.bb
index aec222b..ff432f3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.4.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.5.bb
@@ -19,6 +19,7 @@
            file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \
            file://0009-php-don-t-use-broken-wrapper-for-mkdir.patch \
            file://0010-iconv-fix-detection.patch \
+           file://0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch \
           "
 
 SRC_URI:append:class-target = " \
@@ -33,7 +34,7 @@
           "
 
 S = "${WORKDIR}/php-${PV}"
-SRC_URI[sha256sum] = "79186f94bd510db86e31e535dd448277a1eb92a87878303a1ead44602d8b1197"
+SRC_URI[sha256sum] = "e5a80663cca4f6044ad86a489798147c7af037eca96f6cd357ab36d28cb63757"
 
 CVE_CHECK_IGNORE += "\
     CVE-2007-2728 \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.7.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.7.bb
rename to meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
index 5e361d9..f6c2457 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.7.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
@@ -11,6 +11,6 @@
 inherit pypi setuptools3 python3native
 
 PYPI_PACKAGE = "sip"
-SRC_URI[sha256sum] = "dee9c06fa8ae6d441a401f922867fc6196edda274eebd9fbfec54f0769c2a9e2"
+SRC_URI[sha256sum] = "35d51fc10f599d3696abb50f29d068ad04763df7b77808c76b74597660f99b17"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.06.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.06.bb
rename to meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb
index 0a7ad33..278db6d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.06.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb
@@ -9,8 +9,8 @@
            file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
            file://0002-fix-formatting-issues.patch \
            "
-#Release 1.54.06
-SRCREV = "00870af80021aa0a66cc72c9aeb00587cbfde560"
+#Release 1.59.01
+SRCREV = "352aeaa9ae49e90e55187cbda839f2113df06278"
 
 S = "${WORKDIR}/git/stable"
 
@@ -40,6 +40,10 @@
         rm -fv ${S}/tools/turbocharger/mod_gzip.c
 }
 
+do_install:append:class-target() {
+        sed -i 's,${WORKDIR},/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR},g' ${D}${bindir}/xmlrpc-c-config
+}
+
 BBCLASSEXTEND = "native"
 
 CLEANBROKEN = "1"
diff --git a/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb b/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
index 713492b..3a99439 100644
--- a/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
@@ -12,6 +12,8 @@
 
 SRC_URI = "https://github.com/mellowcandle/bitwise/releases/download/v${PV}/bitwise-v${PV}.tar.gz \
            file://0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch \
+           file://run-ptest \
+           file://ptest.out.expected \
            "
 SRC_URI[sha256sum] = "f524f794188a10defc4df673d8cf0b3739f93e58e93aff0cdb8a99fbdcca2ffb"
 
@@ -21,4 +23,10 @@
 
 DEPENDS = "ncurses readline"
 
-inherit autotools
+inherit autotools ptest
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}
+    install -m 0644 ${WORKDIR}/ptest.out.expected ${D}${PTEST_PATH}/ptest.out.expected
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/bitwise/files/ptest.out.expected b/meta-openembedded/meta-oe/recipes-extended/bitwise/files/ptest.out.expected
new file mode 100644
index 0000000..c5ca3e5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/bitwise/files/ptest.out.expected
@@ -0,0 +1,13 @@
+Unsigned decimal: 66
+Signed decimal: 66
+Hexadecimal: 0x42
+Octal: 0102
+Human: 66
+Radix64: 0/
+IPv4 (Network byte order - Big):  66.0.0.0
+IPv4 (Reverwsed byte order - Little):  0.0.0.66
+ASCII: .......B
+Binary:
+0 1 0 0 0 0 1 0
+     7 -  0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/bitwise/files/run-ptest b/meta-openembedded/meta-oe/recipes-extended/bitwise/files/run-ptest
new file mode 100755
index 0000000..c29e1ea
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/bitwise/files/run-ptest
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Test 1: Basic bitwise operation
+bitwise --no-color -w b 0x42 > test.out
+
+# Compare expected output with actual output
+
+if ! cmp test.out ptest.out.expected; then
+    echo "[FAIL] Test 1: Basic bitwise operation"
+    exit 1
+fi
diff --git a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
index 464d25a..3b74535 100644
--- a/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
@@ -6,7 +6,7 @@
 SECTION = "Development/Libraries"
 DEPENDS = "swig-native python3 sblim-cmpi-devel"
 
-SRC_URI = "git://github.com/kkaempf/cmpi-bindings.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/kkaempf/cmpi-bindings.git;protocol=https;branch=master \
            file://cmpi-bindings-0.4.17-no-ruby-perl.patch \
            file://cmpi-bindings-0.4.17-sblim-sigsegv.patch \
            file://cmpi-bindings-0.9.5-python-lib-dir.patch \
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-memory-leak.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-memory-leak.patch
new file mode 100644
index 0000000..72e3b98
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-Fix-memory-leak.patch
@@ -0,0 +1,34 @@
+From b6149e203f919c899fefc702a17fbb78bdec3700 Mon Sep 17 00:00:00 2001
+From: Le Van Khanh <Khanh.LeVan@vn.bosch.com>
+Date: Thu, 9 Feb 2023 03:17:13 -0500
+Subject: [PATCH] Fix memory leak
+
+Free the ecuid_conf in case of memory alllocated
+
+CVE: CVE-2023-26257
+
+Upstream-Status: Backport
+[https://github.com/COVESA/dlt-daemon/pull/441/commits/b6149e203f919c899fefc702a17fbb78bdec3700]
+
+Signed-off-by: Le Van Khanh <Khanh.LeVan@vn.bosch.com>
+
+Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
+---
+ src/console/dlt-control-common.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c
+index abcaf92..64951c1 100644
+--- a/src/console/dlt-control-common.c
++++ b/src/console/dlt-control-common.c
+@@ -124,6 +124,8 @@ void set_ecuid(char *ecuid)
+             if (dlt_parse_config_param("ECUId", &ecuid_conf) == 0) {
+                 memset(local_ecuid, 0, DLT_CTRL_ECUID_LEN);
+                 strncpy(local_ecuid, ecuid_conf, DLT_CTRL_ECUID_LEN);
++                if (ecuid_conf !=NULL)
++                    free(ecuid_conf);
+                 local_ecuid[DLT_CTRL_ECUID_LEN - 1] = '\0';
+             }
+             else {
+--
+2.34.1
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb
index aa5ef46..cfbe0ff 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb
@@ -19,6 +19,7 @@
            file://0004-Modify-systemd-config-directory.patch \
            file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
            file://0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch \
+           file://0001-Fix-memory-leak.patch \
            "
 SRCREV = "6a3bd901d825c7206797e36ea98e10a218f5aad2"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.2.bb b/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.2.bb
new file mode 100644
index 0000000..2994df3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.2.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "C++ API for etcd's v3 client API"
+HOMEPAGE = "https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eae7da6a2cd1788a5cf8a9f838cf6450"
+
+SRC_URI += "git://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git;branch=master;protocol=https"
+SRCREV = "91c64e18d325f4b63f0dfbd795c50c9c3ec3d3e0"
+
+inherit cmake
+
+DEPENDS += "grpc protobuf cpprest grpc-native protobuf-native"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "-DCPPREST_EXCLUDE_WEBSOCKETS=ON"
+
+INSANE_SKIP:${PN}:append = " ldflags"
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
diff --git a/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.3.bb b/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.3.bb
rename to meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
index 3aafa3f..fcf80fc 100644
--- a/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
@@ -8,7 +8,7 @@
     file://0001-flatpak-pc-add-pc_sysrootdir.patch \
 "
 
-SRCREV = "756994b5c433dad9786f9fad736667c4f524aeac"
+SRCREV = "e936e3100d406c50ba49f3ad6a0ecae455345ec0"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch
new file mode 100644
index 0000000..71ed697
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch
@@ -0,0 +1,38 @@
+From 5cfe30829174a18ec64e53c84292a0229ffa5602 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
+ <zboszor@gmail.com>
+Date: Thu, 30 Mar 2023 11:31:27 +0200
+Subject: [PATCH] Fix installing ipp-usb quirk
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use $(DESTDIR) as installation prefix for
+/usr/share/usb-ipp/quirk/HPLIP.conf.
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+---
+ Makefile.am | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index e10364d..f520225 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -703,10 +703,9 @@ if !DISBALE_IMAGEPROCESSOR_BUILD
+ 		ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+ 	fi
+ endif #DISABLE_IMAGEPROCESSOR
+-	if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
+-		echo "ipp-usb directory exists"; \
+-		cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
+-	fi
++	install -d -m0755 $(DESTDIR)/usr/share/ipp-usb/quirks ; \
++	echo "ipp-usb directory exists"; \
++	cp prnt/ipp-usb/HPLIP.conf $(DESTDIR)/usr/share/ipp-usb/quirks/
+ if !HPLIP_CLASS_DRIVER
+ #	   If scanner build, add hpaio entry to sane dll.conf.
+ 	if [ "$(scan_build)" = "yes" ]; then \
+-- 
+2.39.2
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
index 2cfe125..fa973a8 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
@@ -7,8 +7,8 @@
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- Makefile.am | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
+ Makefile.am | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/Makefile.am b/Makefile.am
 index 5f75759..73421b1 100644
@@ -27,6 +27,22 @@
  #else
  #hpcupsdir = $(cupsfilterdir)
  #hpcups_PROGRAMS = hpcups
+@@ -687,6 +692,7 @@
+ 
+ install-data-hook:
+ if HPLIP_BUILD
++if !DISBALE_IMAGEPROCESSOR_BUILD
+ 	if [ \( "$(UNAME)" = "x86_64" -a  -d "$(libdir)/" \) ]; then \
+ 		cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
+ 		chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
+@@ -697,6 +703,7 @@
+ 		chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
+ 		ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+ 	fi
++endif #DISABLE_IMAGEPROCESSOR
+ 	if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
+ 		echo "ipp-usb directory exists"; \
+ 		cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
 -- 
 2.37.3
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
index 23cc519..ca68348 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
@@ -15,6 +15,7 @@
            file://0004-Define-missing-prototype-for-functions.patch \
            file://0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch \
            file://0006-Workaround-patch-for-missing-Python3-transition-of-t.patch \
+           file://0001-Fix-installing-ipp-usb-quirk.patch \
            file://0001-Drop-using-register-storage-classifier.patch"
 SRC_URI[sha256sum] = "533c3f2f6b53e4163ded4fd81d1f11ae6162a0f6451bd5e62a8382d0c1366624"
 
@@ -80,6 +81,7 @@
         ${PYTHON_SITEPACKAGES_DIR}/.debug \
         ${libexecdir}/cups/filter/.debug "
 
+FILES:${PN} += "${datadir}/ipp-usb/quirks/HPLIP.conf"
 FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
 FILES:${PN}-ppd = "${datadir}/ppd"
 FILES:${PN}-cups = "${datadir}/cups"
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.0.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.1.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.1.bb
index 51ceb4c..7e8cd5f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.1.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714"
 
 SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "2070e963596a2421b9af8eca43bdec113ee1107aaf7ccb475d4d3767a8856887"
+SRC_URI[sha256sum] = "7cc4931a20fef457e0933af3f375be6eafa7703fde21e137bfb9685b1409599e"
 UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v2.9/"
 
 inherit autotools bash-completion pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb b/meta-openembedded/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
index d003279..39d6459 100644
--- a/meta-openembedded/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
@@ -4,7 +4,7 @@
 
 PV = "2.3.6+git${SRCPV}"
 
-SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=http;branch=master;protocol=https"
+SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=https;branch=master"
 SRCREV = "bc1d4f6587a4a4829b5d55e3ca7ad584da6de545"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.17.bb b/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.17.bb
rename to meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb
index 9cd6baa..b1c3371 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.17.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb
@@ -9,7 +9,7 @@
 SRC_URI = "git://github.com/ebiggers/libdeflate.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
-SRCREV = "bd925ae68e99f65d69f20181cb845aaba5c8f098"
+SRCREV = "495fee110ebb48a5eb63b75fd67e42b2955871e2"
 
 inherit cmake pkgconfig
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch
new file mode 100644
index 0000000..1dbf295
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch
@@ -0,0 +1,390 @@
+From 66c1646a3f12836846a054ebd2c427e30c93d3a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:37:15 -0700
+Subject: [PATCH] largefile.m4: Sync with latest gnulib
+
+This ensures it can work with latest autoconf 2.72 release ( upcoming )
+
+Upstream-Status: Backport [it will be not needed with 1.42 release]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gl/m4/largefile.m4 | 330 ++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 263 insertions(+), 67 deletions(-)
+
+diff --git a/gl/m4/largefile.m4 b/gl/m4/largefile.m4
+index 3e8b5e3..7fb81b8 100644
+--- a/gl/m4/largefile.m4
++++ b/gl/m4/largefile.m4
+@@ -1,7 +1,7 @@
+ # Enable large files on systems where this is not the default.
+ # Enable support for files on Linux file systems with 64-bit inode numbers.
+ 
+-# Copyright 1992-1996, 1998-2022 Free Software Foundation, Inc.
++# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -10,8 +10,9 @@
+ # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
+ # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
+ # and ftello in C++ mode as well.
++# Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038.
+ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+-[
++ m4_ifndef([AC_SYS_YEAR2038], [[
+   AC_REQUIRE([AC_CANONICAL_HOST])
+   AC_FUNC_FSEEKO
+   case "$host_os" in
+@@ -20,10 +21,10 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+         [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).])
+       ;;
+   esac
+-])
++ ]])
++)
+ 
+-# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+
+-# with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
++# Work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+ m4_version_prereq([2.70], [], [
+@@ -43,33 +44,258 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+ ])
+ ])# m4_version_prereq 2.70
+ 
++# Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier.
++# This code is taken from Autoconf master.
++m4_ifndef([AC_SYS_YEAR2038], [
++
++# _AC_SYS_YEAR2038_TEST_CODE
++# --------------------------
++# C code used to probe for time_t that can represent time points more
++# than 2**31 - 1 seconds after the epoch.  With the usual Unix epoch,
++# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian),
++# hence the name.
++AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE],
++[[
++  #include <time.h>
++  /* Check that time_t can represent 2**32 - 1 correctly.  */
++  #define LARGE_TIME_T \\
++    ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
++  int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
++                           && LARGE_TIME_T % 65537 == 0)
++                          ? 1 : -1];
++]])
++
++# _AC_SYS_YEAR2038_OPTIONS
++# ------------------------
++# List of known ways to enable support for large time_t.  If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_YEAR2038_PROBE.
++m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
++    ["none needed"]                   dnl 64-bit and newer 32-bit Unix
++    ["-D_TIME_BITS=64"]               dnl glibc 2.34 with some 32-bit ABIs
++    ["-D__MINGW_USE_VC2005_COMPAT"]   dnl 32-bit MinGW
++    ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"]
++                                      dnl 32-bit MinGW (misconfiguration)
++))
++
++# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
++# -----------------------------------------
++# Subroutine of AC_SYS_YEAR2038.  Probe for time_t that can represent
++# time points more than 2**31 - 1 seconds after the epoch (dates after
++# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
++# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to
++# "support not detected" if none of them worked.  Then, set compilation
++# options and #defines as necessary to enable large time_t support.
++#
++# Note that we do not test whether mktime, localtime, etc. handle
++# large values of time_t correctly, as that would require use of
++# AC_TRY_RUN.  Note also that some systems only support large time_t
++# together with large off_t.
++#
++# If support is not detected, the behavior depends on which of the
++# top-level AC_SYS_YEAR2038 macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_YEAR2038_OPTIONS.
++AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
++  [ac_cv_sys_year2038_opts],
++  [ac_save_CPPFLAGS="$CPPFLAGS"
++  ac_opt_found=no
++  for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do
++    AS_IF([test x"$ac_opt" != x"none needed"],
++      [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
++    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])],
++      [ac_cv_sys_year2038_opts="$ac_opt"
++      ac_opt_found=yes])
++    test $ac_opt_found = no || break
++  done
++  CPPFLAGS="$ac_save_CPPFLAGS"
++  test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"])
++
++ac_have_year2038=yes
++AS_CASE([$ac_cv_sys_year2038_opts],
++  ["none needed"], [],
++  ["support not detected"],
++    [ac_have_year2038=no
++     AS_CASE([$enable_year2038],
++      [yes],
++        [# If we're not cross compiling and 'touch' works with a large
++        # timestamp, then we can presume the system supports wider time_t
++        # *somehow* and we just weren't able to detect it.  One common
++        # case that we deliberately *don't* probe for is a system that
++        # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
++        # wide time_t.  (It would be inappropriate for us to override an
++        # intentional use of -m32.)  Error out, demanding use of
++        # --disable-year2038 if this is intentional.
++        AS_IF([test $cross_compiling = no],
++          [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
++            [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
++              [*'Feb  7  2106'* | *'Feb  7 17:10'*],
++              [AC_MSG_FAILURE(m4_text_wrap(
++      [this system appears to support timestamps after January 2038,
++       but no mechanism for enabling wide 'time_t' was detected.
++       Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
++       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++      [], [], [55]))])])])])],
++
++  ["-D_TIME_BITS=64"],
++    [AC_DEFINE([_TIME_BITS], [64],
++      [Number of bits in time_t, on hosts where this is settable.])],
++
++  ["-D__MINGW_USE_VC2005_COMPAT=1"],
++    [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
++      [Define to 1 on platforms where this makes time_t a 64-bit type.])],
+ 
+-# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+-#                               CACHE-VAR,
+-#                               DESCRIPTION,
+-#                               PROLOGUE, [FUNCTION-BODY])
+-# --------------------------------------------------------
+-m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+-[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+-[while :; do
+-  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+-    [AC_LANG_PROGRAM([$5], [$6])],
+-    [$3=no; break])
+-  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+-    [AC_LANG_PROGRAM([#undef $1
+-#define $1 $2
+-$5], [$6])],
+-    [$3=$2; break])
+-  $3=unknown
+-  break
+-done])
+-case $$3 in #(
+-  no | unknown) ;;
+-  *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+-esac
+-rm -rf conftest*[]dnl
+-])# _AC_SYS_LARGEFILE_MACRO_VALUE
++  ["-U_USE_32_BIT_TIME_T"*],
++    [AC_MSG_FAILURE(m4_text_wrap(
++      [the 'time_t' type is currently forced to be 32-bit.
++       It will stop working after January 2038.
++       Remove _USE_32BIT_TIME_T from the compiler flags.],
++      [], [], [55]))],
++
++  [AC_MSG_ERROR(
++    [internal error: bad value for \$ac_cv_sys_year2038_opts])])
++])
++
++# _AC_SYS_YEAR2038_ENABLE
++# -----------------------
++# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
++# Depending on which of the YEAR2038 macros was used, add either an
++# --enable-year2038, or a --disable-year2038, or no option at all to
++# the configure script.  Note that this is expanded very late and
++# therefore there cannot be any code in the AC_ARG_ENABLE.  The
++# default value for enable_year2038 is emitted unconditionally
++# because the generated code always looks at this variable.
++m4_define([_AC_SYS_YEAR2038_ENABLE],
++[m4_divert_text([DEFAULTS],
++  m4_provide_if([AC_SYS_YEAR2038],
++    [enable_year2038=yes],
++    [enable_year2038=no]))]dnl
++[AC_ARG_ENABLE([year2038],
++  m4_provide_if([AC_SYS_YEAR2038],
++    [AS_HELP_STRING([--disable-year2038],
++      [do not support timestamps after 2038])],
++    [AS_HELP_STRING([--enable-year2038],
++      [support timestamps after 2038])]))])
++
++# _AC_SYS_YEAR2038_OPT_IN
++# -----------------------
++# If the --enable-year2038 option is given to configure, attempt to
++# detect and activate support for large time_t on 32-bit systems.
++# This macro is automatically invoked by AC_SYS_LARGEFILE when large
++# *file* support is detected.  It does not AC_REQUIRE AC_SYS_LARGEFILE
++# to avoid a dependency loop, and is therefore unsafe to expose as a
++# documented macro.
++AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# AC_SYS_YEAR2038
++# ---------------
++# Attempt to detect and activate support for large time_t.
++# On systems where time_t is not always 64 bits, this probe can be
++# skipped by passing the --disable-year2038 option to configure.
++AC_DEFUN([AC_SYS_YEAR2038],
++[AC_REQUIRE([AC_SYS_LARGEFILE])]dnl
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# _AC_SYS_LARGEFILE_TEST_CODE
++# ---------------------------
++# C code used to probe for large file support.
++m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
++[@%:@include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++    We can't simply define LARGE_OFF_T to be 9223372036854775807,
++    since some C++ compilers masquerading as C compilers
++    incorrectly reject 9223372036854775807.  */
++@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
++  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
++		       && LARGE_OFF_T % 2147483647 == 1)
++		      ? 1 : -1]];[]dnl
++])
++
++# _AC_SYS_LARGEFILE_OPTIONS
++# -------------------------
++# List of known ways to enable support for large files.  If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_LARGEFILE_PROBE.
++m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
++    ["none needed"]                   dnl Most current systems
++    ["-D_FILE_OFFSET_BITS=64"]        dnl X/Open LFS spec
++    ["-D_LARGE_FILES=1"]              dnl AIX (which versions?)
++    ["-n32"]                          dnl Irix 6.2 w/ SGI compiler
++))
++
++# _AC_SYS_LARGEFILE_PROBE
++# -----------------------
++# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set
++# the cache variable ac_cv_sys_largefile_opts to one of the values in
++# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if
++# none of the options in that list worked.  Then, set compilation
++# options and #defines as necessary to enable large file support.
++#
++# If large file support is not detected, the behavior depends on which of
++# the top-level AC_SYS_LARGEFILE macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_LARGEFILE_OPTIONS.
++AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable large file support],
++  [ac_cv_sys_largefile_opts],
++  [ac_save_CC="$CC"
++  ac_opt_found=no
++  for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
++    AS_IF([test x"$ac_opt" != x"none needed"],
++      [CC="$ac_save_CC $ac_opt"])
++    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
++      [ac_cv_sys_largefile_opts="$ac_opt"
++      ac_opt_found=yes])
++    test $ac_opt_found = no || break
++  done
++  CC="$ac_save_CC"
++  test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
++
++ac_have_largefile=yes
++AS_CASE([$ac_cv_sys_largefile_opts],
++  ["none needed"], [],
++  ["support not detected"],
++    [ac_have_largefile=no],
++
++  ["-D_FILE_OFFSET_BITS=64"],
++    [AC_DEFINE([_FILE_OFFSET_BITS], [64],
++      [Number of bits in a file offset, on hosts where this is settable.])],
++
++  ["-D_LARGE_FILES=1"],
++    [AC_DEFINE([_LARGE_FILES], [1],
++      [Define to 1 on platforms where this makes off_t a 64-bit type.])],
++
++  ["-n32"],
++    [CC="$CC -n32"],
++
++  [AC_MSG_ERROR(
++    [internal error: bad value for \$ac_cv_sys_largefile_opts])])
++
++_AC_SYS_YEAR2038_OPT_IN
++])
+ 
++# _AC_SYS_LARGEFILE_ENABLE
++# ------------------------
++# Subroutine of AC_SYS_LARGEFILE.  Note that this
++# is expanded very late and therefore there cannot be any code in the
++# AC_ARG_ENABLE.  The default value for enable_largefile is emitted
++# unconditionally because the generated shell code always looks at
++# this variable.
++m4_define([_AC_SYS_LARGEFILE_ENABLE],
++[m4_divert_text([DEFAULTS],
++  enable_largefile=yes)]dnl
++[AC_ARG_ENABLE([largefile],
++  [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])
+ 
+ # AC_SYS_LARGEFILE
+ # ----------------
+@@ -80,44 +306,14 @@ rm -rf conftest*[]dnl
+ # Additionally, on Linux file systems with 64-bit inodes a file that happens
+ # to have a 64-bit inode number cannot be accessed by 32-bit applications on
+ # Linux x86/x86_64.  This can occur with file systems such as XFS and NFS.
++# This macro allows configuration to continue if the system doesn't support
++# large files.
+ AC_DEFUN([AC_SYS_LARGEFILE],
+-[AC_ARG_ENABLE(largefile,
+-               [  --disable-largefile     omit support for large files])
+-AS_IF([test "$enable_largefile" != no],
+- [AC_CACHE_CHECK([for special C compiler options needed for large files],
+-    ac_cv_sys_largefile_CC,
+-    [ac_cv_sys_largefile_CC=no
+-     if test "$GCC" != yes; then
+-       ac_save_CC=$CC
+-       while :; do
+-         # IRIX 6.2 and later do not support large files by default,
+-         # so use the C compiler's -n32 option if that helps.
+-         AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+-         AC_COMPILE_IFELSE([], [break])
+-         CC="$CC -n32"
+-         AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+-         break
+-       done
+-       CC=$ac_save_CC
+-       rm -f conftest.$ac_ext
+-    fi])
+-  if test "$ac_cv_sys_largefile_CC" != no; then
+-    CC=$CC$ac_cv_sys_largefile_CC
+-  fi
+-
+-  _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+-    ac_cv_sys_file_offset_bits,
+-    [Number of bits in a file offset, on hosts where this is settable.],
+-    [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+-  AS_CASE([$ac_cv_sys_file_offset_bits],
+-    [unknown],
+-      [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
+-         [ac_cv_sys_large_files],
+-         [Define for large files, on AIX-style hosts.],
+-         [_AC_SYS_LARGEFILE_TEST_INCLUDES])],
+-    [64],
+-      [gl_YEAR2038_BODY([])])])
+-])# AC_SYS_LARGEFILE
++[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
++  AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
++  AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
++])])
++])# m4_ifndef AC_SYS_YEAR2038
+ 
+ # Enable large files on systems where this is implemented by Gnulib, not by the
+ # system headers.
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.41.bb b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.41.bb
index b4303a1..17ffc6c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.41.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libidn/libidn_1.41.bb
@@ -18,6 +18,7 @@
 
 SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
            file://dont-depend-on-help2man.patch \
+           file://0001-largefile.m4-Sync-with-latest-gnulib.patch \
            "
 
 #SRC_URI[md5sum] = "813c7b268d1051ca02c3610986126f38"
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-LFS64-functions-on-linux-musl.patch b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-LFS64-functions-on-linux-musl.patch
new file mode 100644
index 0000000..29f5b94
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-LFS64-functions-on-linux-musl.patch
@@ -0,0 +1,35 @@
+From 6690e7fe566445e20fec178e9e209e5f9f2fdde3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Apr 2023 23:33:46 -0700
+Subject: [PATCH] Do not use LFS64 functions on linux/musl
+
+On musl, off_t is 64bit always ( even on 32bit platforms ), therefore using
+LFS64 funcitons is not needed on such platforms. Moreover, musl has stopped
+providing aliases for these functions [1] which means it wont compile on
+newer musl systems. Therefore only use it on 32bit glibc/linux platforms
+and exclude musl like cygwin or OSX
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
+
+Upstream-Status: Submitted [https://github.com/gabime/spdlog/pull/2589]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ thirdparty/spdlog-20170710/include/spdlog/details/os.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/thirdparty/spdlog-20170710/include/spdlog/details/os.h b/thirdparty/spdlog-20170710/include/spdlog/details/os.h
+index 735f60147..639b07a79 100644
+--- a/thirdparty/spdlog-20170710/include/spdlog/details/os.h
++++ b/thirdparty/spdlog-20170710/include/spdlog/details/os.h
+@@ -237,7 +237,7 @@ inline size_t filesize(FILE *f)
+ #else // unix
+     int fd = fileno(f);
+     //64 bits(but not in osx, where fstat64 is deprecated)
+-#if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__))
++#if !defined(__FreeBSD__) && !defined(__APPLE__) && ((defined(__x86_64__) || defined(__ppc64__)) && (!defined(__linux__)))
+     struct stat64 st;
+     if (fstat64(fd, &st) == 0)
+         return static_cast<size_t>(st.st_size);
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
index 1bf99d4..b76f120 100644
--- a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
@@ -32,6 +32,7 @@
             file://0001-Fix-build-with-libc.patch \
             file://0001-civetweb-Disable-lto.patch \
             file://0001-Add-missing-includes-cstdint-and-cstdio.patch \
+            file://0001-Do-not-use-LFS64-functions-on-linux-musl.patch \
             file://minifi.service \
             file://systemd-volatile.conf \
             file://sysvinit-volatile.conf \
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102/py-3.11.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102/py-3.11.patch
deleted file mode 100644
index 85af547..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102/py-3.11.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From 1479dd9c75917d2be70ee840c9db141e59987e44 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Wed, 14 Sep 2022 14:03:10 +0200
-Subject: [PATCH] mozjs-91: backport a python 3.11 compatibility patch
-
-# HG changeset patch
-# User ahochheiden <ahochheiden@mozilla.com>
-# Date 1654151264 0
-# Node ID f54162b2c1f2fe52c6137ab2c3469a1944f58b27
-# Parent  6e7776492240c27732840d65a33dcc440fa1aba0
-Bug 1769631 - Remove 'U' from 'mode' parameters for various 'open' calls to ensure Python3.11 compatibility r=firefox-build-system-reviewers,glandium
-
-The 'U' flag represents "universal newline". It has been deprecated
-since Python3.3. Since then "universal newline" is the default when a
-file is opened in text mode (not bytes). In Python3.11 using the 'U'
-flag throws errors. There should be no harm in removing 'U' from 'open'
-everywhere it is used, and doing allows the use of Python3.11.
-
-For more reading see: https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api
-
-Differential Revision: https://phabricator.services.mozilla.com/D147721
-
-Upstream-Status: Backport [https://hg.mozilla.org/mozilla-central/rev/f54162b2c1f2fe52c6137ab2c3469a1944f58b27]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
----
- dom/base/usecounters.py                                 | 2 +-
- python/mozbuild/mozbuild/action/process_define_files.py | 2 +-
- python/mozbuild/mozbuild/backend/base.py                | 2 +-
- python/mozbuild/mozbuild/preprocessor.py                | 6 +++---
- python/mozbuild/mozbuild/util.py                        | 2 +-
- python/mozbuild/mozpack/files.py                        | 4 ++--
- 6 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py
-index 780e3b32b2..7e2c7148ec 100644
---- a/dom/base/usecounters.py
-+++ b/dom/base/usecounters.py
-@@ -8,7 +8,7 @@ import re
- 
- def read_conf(conf_filename):
-     # Can't read/write from a single StringIO, so make a new one for reading.
--    stream = open(conf_filename, "rU")
-+    stream = open(conf_filename, "r")
- 
-     def parse_counters(stream):
-         for line_num, line in enumerate(stream):
-diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
-index f1d401ac26..aca59d0f05 100644
---- a/python/mozbuild/mozbuild/action/process_define_files.py
-+++ b/python/mozbuild/mozbuild/action/process_define_files.py
-@@ -36,7 +36,7 @@ def process_define_file(output, input):
-     ) and not config.substs.get("JS_STANDALONE"):
-         config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
- 
--    with open(path, "rU") as input:
-+    with open(path, "r") as input:
-         r = re.compile(
-             "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
-         )
-diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
-index 7bc1986d86..b64a709468 100644
---- a/python/mozbuild/mozbuild/backend/base.py
-+++ b/python/mozbuild/mozbuild/backend/base.py
-@@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin):
-         return status
- 
-     @contextmanager
--    def _write_file(self, path=None, fh=None, readmode="rU"):
-+    def _write_file(self, path=None, fh=None, readmode="r"):
-         """Context manager to write a file.
- 
-         This is a glorified wrapper around FileAvoidWrite with integration to
-diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
-index f7820b9c91..857f1a6c9b 100644
---- a/python/mozbuild/mozbuild/preprocessor.py
-+++ b/python/mozbuild/mozbuild/preprocessor.py
-@@ -531,7 +531,7 @@ class Preprocessor:
- 
-         if args:
-             for f in args:
--                with io.open(f, "rU", encoding="utf-8") as input:
-+                with io.open(f, "r", encoding="utf-8") as input:
-                     self.processFile(input=input, output=out)
-             if depfile:
-                 mk = Makefile()
-@@ -860,7 +860,7 @@ class Preprocessor:
-                     args = self.applyFilters(args)
-                 if not os.path.isabs(args):
-                     args = os.path.join(self.curdir, args)
--                args = io.open(args, "rU", encoding="utf-8")
-+                args = io.open(args, "r", encoding="utf-8")
-             except Preprocessor.Error:
-                 raise
-             except Exception:
-@@ -914,7 +914,7 @@ class Preprocessor:
- def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
-     pp = Preprocessor(defines=defines, marker=marker)
-     for f in includes:
--        with io.open(f, "rU", encoding="utf-8") as input:
-+        with io.open(f, "r", encoding="utf-8") as input:
-             pp.processFile(input=input, output=output)
-     return pp.includes
- 
-diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
-index b09f164698..4f1e0cdc5f 100644
---- a/python/mozbuild/mozbuild/util.py
-+++ b/python/mozbuild/mozbuild/util.py
-@@ -236,7 +236,7 @@ class FileAvoidWrite(BytesIO):
-     still occur, as well as diff capture if requested.
-     """
- 
--    def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
-+    def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
-         BytesIO.__init__(self)
-         self.name = filename
-         assert type(capture_diff) == bool
-diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
-index 1d8a1ed2d8..a295a67b5a 100644
---- a/python/mozbuild/mozpack/files.py
-+++ b/python/mozbuild/mozpack/files.py
-@@ -554,7 +554,7 @@ class PreprocessedFile(BaseFile):
-         pp = Preprocessor(defines=self.defines, marker=self.marker)
-         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- 
--        with _open(self.path, "rU") as input:
-+        with _open(self.path, "r") as input:
-             with _open(os.devnull, "w") as output:
-                 pp.processFile(input=input, output=output)
- 
-@@ -611,7 +611,7 @@ class PreprocessedFile(BaseFile):
-         pp = Preprocessor(defines=self.defines, marker=self.marker)
-         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- 
--        with _open(self.path, "rU") as input:
-+        with _open(self.path, "r") as input:
-             pp.processFile(input=input, output=dest, depfile=deps_out)
- 
-         dest.close()
diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.5.0.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.5.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb
index 5e884b6..e6ff379 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb
@@ -13,11 +13,10 @@
            file://riscv32.patch \
            file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \
            file://0001-rewrite-cargo-host-linker-in-python3.patch  \
-           file://py-3.11.patch \
            file://musl-disable-stackwalk.patch \
            file://0001-add-arm-to-list-of-mozinline.patch \
            "
-SRC_URI[sha256sum] = "017dd44b1285913f477074802707a4c76ed1a28270ec5a327bbb76574cc057d8"
+SRC_URI[sha256sum] = "31b074623f09ca821a8a7dee0b3d2df1a45f1164264d31c26b4969a4d6a21dd1"
 
 S = "${WORKDIR}/firefox-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
index 2a50550..f1cdf66 100644
--- a/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -8,7 +8,7 @@
 SRCREV = "7786c7ded5c9ce7773890d0e3dc27632898fc6b1"
 PV = "2.2.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=https;branch=master \
            file://0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch \
            file://0001-include-Declare-gVERSION-global-as-extern.patch \
            "
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.1.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.2.bb
similarity index 98%
rename from meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.1.bb
rename to meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.2.bb
index bd566e1..2990122 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.2.bb
@@ -22,7 +22,7 @@
     ${GITHUB_BASE_URI}/download/v${PV}/libostree-${PV}.tar.xz \
     file://run-ptest \
 "
-SRC_URI[sha256sum] = "dd792b167693a1971c9f6e3168013d906ac035100ff6c719a3b322eb44b96f55"
+SRC_URI[sha256sum] = "ceb0788755a0bff5738d44543552fbf883cf71df481baa3ca7288da7a402bb85"
 
 S = "${WORKDIR}/libostree-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
new file mode 100644
index 0000000..98e186c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
@@ -0,0 +1,27 @@
+p7zip: Update CVE-2016-9296 patch URL.
+From: Robert Luberda <robert@debian.org>
+Date: Sat, 19 Nov 2016 08:48:08 +0100
+Subject: Fix nullptr dereference (CVE-2016-9296)
+
+Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
+This patch file taken from Debian's patch set for p7zip
+
+Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
+CVE: CVE-2016-9296
+
+Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
+
+Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
+===================================================================
+--- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
++++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
+@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
+       if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
+         ThrowIncorrect();
+   }
+-  HeadersSize += folders.PackPositions[folders.NumPackStreams];
++  if (folders.PackPositions)
++      HeadersSize += folders.PackPositions[folders.NumPackStreams];
+   return S_OK;
+ }
+ 
diff --git a/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
new file mode 100644
index 0000000..47868c9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
@@ -0,0 +1,227 @@
+From: Robert Luberda <robert@debian.org>
+Date: Sun, 28 Jan 2018 23:47:40 +0100
+Subject: CVE-2018-5996
+
+Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
+applying a few changes from 7Zip 18.00-beta.
+
+Bug-Debian: https://bugs.debian.org/#888314
+
+Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
+CVE: CVE-2018-5996
+
+Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
+---
+ CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
+ CPP/7zip/Compress/Rar1Decoder.h   |  1 +
+ CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
+ CPP/7zip/Compress/Rar2Decoder.h   |  1 +
+ CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
+ CPP/7zip/Compress/Rar3Decoder.h   |  2 ++
+ 6 files changed, 42 insertions(+), 8 deletions(-)
+
+diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
+index 1aaedcc..68030c7 100644
+--- a/CPP/7zip/Compress/Rar1Decoder.cpp
++++ b/CPP/7zip/Compress/Rar1Decoder.cpp
+@@ -29,7 +29,7 @@ public:
+ };
+ */
+ 
+-CDecoder::CDecoder(): m_IsSolid(false) { }
++CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
+ 
+ void CDecoder::InitStructures()
+ {
+@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+   InitData();
+   if (!m_IsSolid)
+   {
++    _errorMode = false;
+     InitStructures();
+     InitHuff();
+   }
++
++  if (_errorMode)
++    return S_FALSE;
++
+   if (m_UnpackSize > 0)
+   {
+     GetFlagsBuf();
+@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
+     const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
+ {
+   try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
+-  catch(const CInBufferException &e) { return e.ErrorCode; }
+-  catch(const CLzOutWindowException &e) { return e.ErrorCode; }
+-  catch(...) { return S_FALSE; }
++  catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
++  catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
++  catch(...) { _errorMode = true; return S_FALSE; }
+ }
+ 
+ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
+diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
+index 630f089..01b606b 100644
+--- a/CPP/7zip/Compress/Rar1Decoder.h
++++ b/CPP/7zip/Compress/Rar1Decoder.h
+@@ -39,6 +39,7 @@ public:
+ 
+   Int64 m_UnpackSize;
+   bool m_IsSolid;
++  bool _errorMode;
+ 
+   UInt32 ReadBits(int numBits);
+   HRESULT CopyBlock(UInt32 distance, UInt32 len);
+diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
+index b3f2b4b..0580c8d 100644
+--- a/CPP/7zip/Compress/Rar2Decoder.cpp
++++ b/CPP/7zip/Compress/Rar2Decoder.cpp
+@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
+ static const UInt32 kWindowReservSize = (1 << 22) + 256;
+ 
+ CDecoder::CDecoder():
+-  m_IsSolid(false)
++  m_IsSolid(false),
++  m_TablesOK(false)
+ {
+ }
+ 
+@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
+ 
+ bool CDecoder::ReadTables(void)
+ {
++  m_TablesOK = false;
++
+   Byte levelLevels[kLevelTableSize];
+   Byte newLevels[kMaxTableSize];
+   m_AudioMode = (ReadBits(1) == 1);
+@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
+   }
+   
+   memcpy(m_LastLevels, newLevels, kMaxTableSize);
++  m_TablesOK = true;
++
+   return true;
+ }
+ 
+@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+       return S_FALSE;
+   }
+ 
++  if (!m_TablesOK)
++    return S_FALSE;
++
+   UInt64 startPos = m_OutWindowStream.GetProcessedSize();
+   while (pos < unPackSize)
+   {
+diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
+index 3a0535c..0e9005f 100644
+--- a/CPP/7zip/Compress/Rar2Decoder.h
++++ b/CPP/7zip/Compress/Rar2Decoder.h
+@@ -139,6 +139,7 @@ class CDecoder :
+ 
+   UInt64 m_PackSize;
+   bool m_IsSolid;
++  bool m_TablesOK;
+ 
+   void InitStructures();
+   UInt32 ReadBits(unsigned numBits);
+diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
+index 3bf2513..6cb8a6a 100644
+--- a/CPP/7zip/Compress/Rar3Decoder.cpp
++++ b/CPP/7zip/Compress/Rar3Decoder.cpp
+@@ -92,7 +92,8 @@ CDecoder::CDecoder():
+   _writtenFileSize(0),
+   _vmData(0),
+   _vmCode(0),
+-  m_IsSolid(false)
++  m_IsSolid(false),
++  _errorMode(false)
+ {
+   Ppmd7_Construct(&_ppmd);
+ }
+@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
+     return InitPPM();
+   }
+ 
++  TablesRead = false;
++  TablesOK = false;
++
+   _lzMode = true;
+   PrevAlignBits = 0;
+   PrevAlignCount = 0;
+@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
+       }
+     }
+   }
++  if (InputEofError())
++    return S_FALSE;
++
+   TablesRead = true;
+ 
+   // original code has check here:
+@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
+   RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
+ 
+   memcpy(m_LastLevels, newLevels, kTablesSizesSum);
++
++  TablesOK = true;
++
+   return S_OK;
+ }
+ 
+@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+     PpmEscChar = 2;
+     PpmError = true;
+     InitFilters();
++    _errorMode = false;
+   }
++
++  if (_errorMode)
++    return S_FALSE;
++
+   if (!m_IsSolid || !TablesRead)
+   {
+     bool keepDecompressing;
+@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+     bool keepDecompressing;
+     if (_lzMode)
+     {
++      if (!TablesOK)
++        return S_FALSE;
+       RINOK(DecodeLZ(keepDecompressing))
+     }
+     else
+@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
+     _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
+     return CodeReal(progress);
+   }
+-  catch(const CInBufferException &e)  { return e.ErrorCode; }
+-  catch(...) { return S_FALSE; }
++  catch(const CInBufferException &e)  { _errorMode = true; return e.ErrorCode; }
++  catch(...) { _errorMode = true; return S_FALSE; }
+   // CNewException is possible here. But probably CNewException is caused
+   // by error in data stream.
+ }
+diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
+index c130cec..2f72d7d 100644
+--- a/CPP/7zip/Compress/Rar3Decoder.h
++++ b/CPP/7zip/Compress/Rar3Decoder.h
+@@ -192,6 +192,7 @@ class CDecoder:
+   UInt32 _lastFilter;
+ 
+   bool m_IsSolid;
++  bool _errorMode;
+ 
+   bool _lzMode;
+   bool _unsupportedFilter;
+@@ -200,6 +201,7 @@ class CDecoder:
+   UInt32 PrevAlignCount;
+ 
+   bool TablesRead;
++  bool TablesOK;
+ 
+   CPpmd7 _ppmd;
+   int PpmEscChar;
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
index 0492311..e795482 100644
--- a/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
@@ -10,6 +10,8 @@
            file://CVE-2017-17969.patch \
            file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
            file://change_numMethods_from_bool_to_unsigned.patch \
+           file://CVE-2018-5996.patch \
+           file://CVE-2016-9296.patch \
            "
 
 SRC_URI[md5sum] = "a0128d661cfe7cc8c121e73519c54fbf"
diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb
index b441da7..2906406 100644
--- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_122.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb"
 
-SRC_URI = "git://github.com/freedesktop/polkit.git;protocol=https;branch=master"
+SRC_URI = "git://gitlab.freedesktop.org/polkit/polkit.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
 SRCREV = "da87c5698019897dd731bb2cbb54ebd9c9481f52"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.10.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.11.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.10.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.11.bb
index 5d21f7e..4626044 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.10.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.11.bb
@@ -19,7 +19,7 @@
            file://GNU_SOURCE-7.patch \
            file://0006-Define-correct-gregs-for-RISCV32.patch \
            "
-SRC_URI[sha256sum] = "1dee4c6487341cae7bd6432ff7590906522215a061fdef87c7d040a0cb600131"
+SRC_URI[sha256sum] = "ce250d1fba042c613de38a15d40889b78f7cb6d5461a27e35017ba39b07221e3"
 
 inherit autotools-brokensep update-rc.d systemd useradd
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
index 961fe7c..f0c083c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
@@ -10,7 +10,7 @@
 PV = "1.8.0"
 
 SRC_URI = "\
-    git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http;;protocol=https \
+    git://github.com/oetiker/rrdtool-1.x.git;protocol=https;branch=master \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
index 0ae7760..0695f99 100644
--- a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb
@@ -10,7 +10,7 @@
 SRCREV = "5cf20df96c6b35c19d5b871ba4e319e96b4df72d"
 PV = "2.0.0+git${SRCPV}"
 
-SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=https;branch=master \
            file://0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch \
            file://0001-Use-stdint-types.patch \
            file://0001-initialize-local-variables-before-use.patch \
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch
deleted file mode 100644
index 1f9bdd3..0000000
--- a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -150,7 +150,6 @@ AC_EXEEXT
- AC_PROG_LIBTOOL
- dnl when using libtool 2.x create libtool early, because it's used in configure
- m4_ifdef([LT_OUTPUT], [LT_OUTPUT])
--DOLT
- 
- dnl Checks for header files.
- AC_CHECK_HEADERS(sys/mman.h)
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb
new file mode 100644
index 0000000..c4738b2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb
@@ -0,0 +1,22 @@
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+DESCRIPTION = "Runtime libraries for parsing and creating MIME mail"
+SECTION = "libs"
+
+DEPENDS = "glib-2.0 zlib"
+
+inherit gnomebase gobject-introspection vala
+
+SRC_URI = "https://github.com/jstedfast/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+    file://iconv-detect.h \
+"
+SRC_URI[sha256sum] = "2e10a54d4821daf8b16c019ad5d567e0fb8e766f8ffe5fec3d4c6a37373d6406"
+
+EXTRA_OECONF += "--enable-largefile"
+
+export ac_cv_have_iconv_detect_h="yes"
+export ac_cv_sys_file_offset_bits="64"
+
+do_configure:append () {
+    cp ${WORKDIR}/iconv-detect.h ${S}
+}
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb b/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb
deleted file mode 100644
index 2677f5c..0000000
--- a/meta-openembedded/meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-DESCRIPTION = "Runtime libraries for parsing and creating MIME mail"
-SECTION = "libs"
-
-DEPENDS = "glib-2.0 zlib"
-
-inherit gnomebase gobject-introspection vala
-
-SRC_URI += "file://iconv-detect.h \
-            file://nodolt.patch"
-SRC_URI[archive.sha256sum] = "2aea96647a468ba2160a64e17c6dc6afe674ed9ac86070624a3f584c10737d44"
-
-export ac_cv_have_iconv_detect_h="yes"
-
-do_configure:append () {
-    cp ${WORKDIR}/iconv-detect.h ${S}
-}
diff --git a/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.5.bb b/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.5.bb
new file mode 100644
index 0000000..cb79b5d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "An unofficial GTK3 port of libadwaita."
+HOMEPAGE = "http://github.com/lassekongo83/adw-gtk3"
+SECTION = "graphics"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+DEPENDS = "sassc-native"
+
+inherit meson
+
+SRC_URI = "git://github.com/lassekongo83/adw-gtk3.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "bbc539534e881aa9c554665bd3cbf42ffeec6b76"
+
+FILES:${PN} = "${datadir}/themes"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.9.1.bb b/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.9.1.bb
rename to meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb
index d78fe7e..0f0e618 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.9.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb
@@ -10,7 +10,7 @@
 "
 
 SRC_URI = "https://feh.finalrewind.org/feh-${PV}.tar.bz2"
-SRC_URI[sha256sum] = "455c92711b588af149b945edc5c145f3e9aa137ed9689dabed49d5e4acac75fa"
+SRC_URI[sha256sum] = "1d71d1f6dcfe9ffee5e2766969a11978f7eb4fac7d7ae556f104c11f9c57cc98"
 
 inherit mime-xdg features_check
 # depends on virtual/libx11
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch b/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
new file mode 100644
index 0000000..c9d63c9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
@@ -0,0 +1,31 @@
+From fb6eb15b34b5b07a431bb4c3585341411a3e088f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 28 Feb 2023 13:42:18 +0100
+Subject: [PATCH] libdecor-gtk.c: dont skip for conflicting_symbols
+
+This is a hack that should be removed, once the underlying bug in glibc was fixed and
+libdecor was updated to use dlmopen() instead of dlopen()
+
+https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/47
+https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/44
+
+---
+ src/plugins/gtk/libdecor-gtk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/gtk/libdecor-gtk.c b/src/plugins/gtk/libdecor-gtk.c
+index 228161e..fd91afb 100644
+--- a/src/plugins/gtk/libdecor-gtk.c
++++ b/src/plugins/gtk/libdecor-gtk.c
+@@ -2606,7 +2606,7 @@ libdecor_plugin_description = {
+ 	.priorities = priorities,
+ 	.constructor = libdecor_plugin_new,
+ 	.conflicting_symbols = {
+-		"png_free",
++		//"png_free",
+ 		NULL,
+ 	},
+ };
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb
deleted file mode 100644
index 4e396d8..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor_0.1.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "libdecor - A client-side decorations library for Wayland clients"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7ae2be7fb1637141840314b51970a9f7"
-
-SRC_URI = "git://gitlab.gnome.org/jadahl/libdecor.git;protocol=https;branch=master"
-
-DEPENDS = " \
-	cairo \
-	pango \
-	wayland \
-	wayland-native \
-	wayland-protocols \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "e87dcfdaf83f332fa83b43c804fcf93c151ff0f5"
-
-PACKAGECONFIG ?= "dbus ${@bb.utils.filter('DISTRO_FEATURES', 'gtk3 opengl', d)}"
-
-PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
-PACKAGECONFIG[demo] = "-Ddemo=true,-Ddemo=false,virtual/libegl libxkbcommon"
-PACKAGECONFIG[gtk3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
-PACKAGECONFIG[opengl] = ",,virtual/libgl"
-
-inherit meson pkgconfig
-
-EXTRA_OEMESON += "--buildtype release"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb b/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
new file mode 100644
index 0000000..ed0b05f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
@@ -0,0 +1,32 @@
+SUMMARY = "libdecor - A client-side decorations library for Wayland clients"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7ae2be7fb1637141840314b51970a9f7"
+
+SRC_URI = " \
+    git://gitlab.freedesktop.org/libdecor/libdecor.git;protocol=https;branch=master \
+    file://0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch \
+"
+
+DEPENDS = " \
+    cairo \
+    pango \
+    wayland \
+    wayland-native \
+    wayland-protocols \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "a254d0c2ff0cbfcf0bbf14cc67cc403640880c01"
+
+PACKAGECONFIG ?= "dbus ${@bb.utils.filter('DISTRO_FEATURES', 'gtk+3', d)}"
+
+PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
+PACKAGECONFIG[demo] = "-Ddemo=true,-Ddemo=false,virtual/libegl libxkbcommon"
+PACKAGECONFIG[install_demo] = "-Dinstall_demo=true,-Dinstall_demo=false"
+PACKAGECONFIG[gtk+3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON += "--buildtype release"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb
index 1a94215..cf33c69 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
 
 # TODO: Pin upstream release (current v7.11.0-80-g419a757)
-SRC_URI = "git://github.com/lvgl/lv_drivers;destsuffix=${S};protocol=https;nobranch=1"
+SRC_URI = "git://github.com/lvgl/lv_drivers;protocol=https;nobranch=1"
 SRCREV = "419a757c23aaa67c676fe3a2196d64808fcf2254"
 
 DEPENDS = "libxkbcommon lvgl wayland"
@@ -19,15 +19,15 @@
 inherit cmake
 inherit features_check
 
-S = "${WORKDIR}/${PN}-${PV}"
+S = "${WORKDIR}/git"
 
 LVGL_CONFIG_WAYLAND_HOR_RES ?= "480"
 LVGL_CONFIG_WAYLAND_VER_RES ?= "320"
 
-EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${BASELIB}"
+EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
 
 TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
-TARGET_CFLAGS += "-I${RECIPE_SYSROOT}/${includedir}/lvgl"
+TARGET_CFLAGS += "-I${STAGING_INCDIR}/lvgl"
 
 # Upstream does not support a default configuration
 # but propose a default "disabled" template, which is used as reference
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb
index 032e85f..22b4826 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb
@@ -8,21 +8,23 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
 
-SRC_URI = "git://github.com/lvgl/lv_lib_png;destsuffix=${S};protocol=https;nobranch=1"
+SRC_URI = "git://github.com/lvgl/lv_lib_png;;protocol=https;nobranch=1"
 SRCREV = "bf1531afe07c9f861107559e29ab8a2d83e4715a"
 
+S = "${WORKDIR}/git"
+
 # because of lvgl dependency
 REQUIRED_DISTRO_FEATURES = "wayland"
 
 DEPENDS += "lvgl"
 
-EXTRA_OECMAKE += "-DLIB_INSTALL_DIR=${BASELIB}"
+EXTRA_OECMAKE += "-DLIB_INSTALL_DIR=${baselib}"
 
 inherit cmake
 inherit features_check
 
 TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
-TARGET_CFLAGS += "-I${RECIPE_SYSROOT}/${includedir}/lvgl"
+TARGET_CFLAGS += "-I${STAGING_INCDIR}/lvgl"
 
 FILES:${PN}-dev = "\
     ${includedir}/lvgl/lv_lib_png/ \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb
index 2005afa..ea74c59 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb
@@ -8,7 +8,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
 
-SRC_URI = "gitsm://github.com/lvgl/lvgl;destsuffix=${S};protocol=https;nobranch=1"
+SRC_URI = "gitsm://github.com/lvgl/lvgl;protocol=https;nobranch=1"
 SRCREV = "d38eb1e689fa5a64c25e677275172d9c8a4ab2f0"
 
 REQUIRED_DISTRO_FEATURES = "wayland"
@@ -16,8 +16,8 @@
 inherit cmake
 inherit features_check
 
-EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${BASELIB}"
-S = "${WORKDIR}/${PN}-${PV}"
+EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${baselib}"
+S = "${WORKDIR}/git"
 
 LVGL_CONFIG_LV_MEM_CUSTOM ?= "0"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
index 143ab6a..225619e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
@@ -12,4 +12,9 @@
 
 inherit autotools pkgconfig
 
-EXTRA_OECONF += "--without-tools --without-tests"
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF += "--without-tests"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[tools] = "--with-tools,--without-tools,libpng"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
index 0bc0394..ceff54f 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
@@ -6,7 +6,7 @@
 
 SRCREV = "cc05b288b6d1660ab04c6cf01173f1bb62e6f5dd"
 SRC_URI = " \
-    git://github.com/baldurk/${BPN}.git;protocol=http;branch=v1.x;protocol=https \
+    git://github.com/baldurk/${BPN}.git;protocol=https;branch=v1.x \
     file://0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch \
 "
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch b/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
index 2fb44eb..f31018c 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
@@ -8,25 +8,33 @@
  config.mk | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
 
-diff --git a/config.mk b/config.mk
-index 032bf9f..850afbf 100644
 --- a/config.mk
 +++ b/config.mk
-@@ -12,10 +12,10 @@ LIBDIR = $(LIBPREFIX)/surf
- X11INC = `pkg-config --cflags x11`
- X11LIB = `pkg-config --libs x11`
+@@ -2,6 +2,7 @@
+ VERSION = 2.1
+ 
+ # Customize below to fit your system
++PKG_CONFIG ?= pkg-config
+ 
+ # paths
+ PREFIX = /usr/local
+@@ -9,13 +10,13 @@ MANPREFIX = $(PREFIX)/share/man
+ LIBPREFIX = $(PREFIX)/lib
+ LIBDIR = $(LIBPREFIX)/surf
+ 
+-X11INC = `pkg-config --cflags x11`
+-X11LIB = `pkg-config --libs x11`
++X11INC = $(shell $(PKG_CONFIG) --cflags x11)
++X11LIB = $(shell $(PKG_CONFIG) --libs x11)
  
 -GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0`
 -GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.0`
 -WEBEXTINC = `pkg-config --cflags webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0`
 -WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0`
-+GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.1`
-+GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.1`
-+WEBEXTINC = `pkg-config --cflags webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0`
-+WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0`
++GTKINC = $(shell $(PKG_CONFIG) --cflags gtk+-3.0 gcr-3 webkit2gtk-4.1)
++GTKLIB = $(shell $(PKG_CONFIG) --libs gtk+-3.0 gcr-3 webkit2gtk-4.1)
++WEBEXTINC = $(shell $(PKG_CONFIG) --cflags webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0)
++WEBEXTLIBS = $(shell $(PKG_CONFIG) --libs webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0)
  
  # includes and libs
  INCS = $(X11INC) $(GTKINC)
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb b/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb
index 7523ed5..7140a72 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb
@@ -9,7 +9,7 @@
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRCREV = "bcd7d74e613fb8af11b40c351f0a6c1a771b2d2b"
+SRCREV = "665a709b522a6fa18c671f1fc41297603292d0e8"
 SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \
            "
 SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'soup3', 'file://0001-config.mk-Fix-compiler-and-linker.patch file://0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch', '', d)}"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract/0001-Fix-build-with-gcc-13-by-including-cstdint.patch b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract/0001-Fix-build-with-gcc-13-by-including-cstdint.patch
deleted file mode 100644
index 2978080..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract/0001-Fix-build-with-gcc-13-by-including-cstdint.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 2025b53de6b3d97285d7c5f80497493007c586c3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 30 Jan 2023 11:27:07 -0800
-Subject: [PATCH] Fix build with gcc 13 by including <cstdint>
-
-gcc 13 moved some includes around and as a result <cstdint> is
-no longer transitively included [1]. Explicitly include it for
-int32_t.
-
-[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
-
-Upstream-Status: Submitted [https://github.com/tesseract-ocr/tesseract/pull/4009]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/ccutil/params.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/ccutil/params.h b/src/ccutil/params.h
-index f514d870..0f3f8743 100644
---- a/src/ccutil/params.h
-+++ b/src/ccutil/params.h
-@@ -21,6 +21,7 @@
- 
- #include <tesseract/export.h> // for TESS_API
- 
-+#include <cstdint>
- #include <cstdio>
- #include <cstring>
- #include <string>
--- 
-2.39.1
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.0.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.1.bb
similarity index 79%
rename from meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.0.bb
rename to meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.1.bb
index 057a7cd..8e54a27 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.1.bb
@@ -5,9 +5,8 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRCREV = "080da83cc51c4ef8b324a7e03146fe0bd7e0944b"
-SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=main;protocol=https \
-           file://0001-Fix-build-with-gcc-13-by-including-cstdint.patch"
+SRCREV = "71af4542990adae6d9f31d6657068bc0139c6ec4"
+SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=main;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
index 01f4a57..4fd32d9 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
+++ b/meta-openembedded/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
@@ -21,7 +21,7 @@
 
 inherit pkgconfig cmake features_check python3native qemu
 
-ANY_OF_DISTRO_FEATURES += "opengl wayland"
+ANY_OF_DISTRO_FEATURES += "opengl vulkan"
 
 DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native"
 
diff --git a/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb b/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb
rename to meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb
index 4baed62..be0659a 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb
@@ -16,7 +16,7 @@
            file://0001-Include-poll.h-instead-of-sys-poll.h.patch \
            file://0002-perf_examples-Remove-unused-sum-variable.patch \
            "
-SRC_URI[sha256sum] = "4b0c1f53f39a61525b69bebf532c68040c1b984d7544a8ae0844b13cd91e1ee4"
+SRC_URI[sha256sum] = "d18b97764c755528c1051d376e33545d0eb60c6ebf85680436813fa5b04cc3d1"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/perfmon2/files/libpfm4/"
 
diff --git a/meta-openembedded/meta-oe/recipes-kernel/libtraceevent/libtraceevent_1.7.1.bb b/meta-openembedded/meta-oe/recipes-kernel/libtraceevent/libtraceevent_1.7.2.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-kernel/libtraceevent/libtraceevent_1.7.1.bb
rename to meta-openembedded/meta-oe/recipes-kernel/libtraceevent/libtraceevent_1.7.2.bb
index f876f75..089b681 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/libtraceevent/libtraceevent_1.7.1.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/libtraceevent/libtraceevent_1.7.2.bb
@@ -8,7 +8,7 @@
                     file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
 SECTION = "libs"
 
-SRCREV = "4e51588b1f4d6617df7e39a38acc0d0daa3d8a3f"
+SRCREV = "1c6f0f3b2bb47571fc455dc565dc343152517d98"
 SRC_URI = "git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git;branch=${BPN};protocol=https \
            file://0001-makefile-Do-not-preserve-ownership-in-cp-command.patch"
 
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.4.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
rename to meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.4.bb
index 830bc04..2002117 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/libopus/libopus_1.4.bb
@@ -9,8 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3"
 
 SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz"
-SRC_URI[md5sum] = "d7c07db796d21c9cf1861e0c2b0c0617"
-SRC_URI[sha256sum] = "65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d"
+SRC_URI[sha256sum] = "c9b32b4253be5ae63d1ff16eea06b94b5f0f2951b7a02aceef58e3a3ce49c51f"
 
 S = "${WORKDIR}/opus-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb
rename to meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb
index c600e88..cfb461a 100644
--- a/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb
+++ b/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb
@@ -11,18 +11,14 @@
     libass \
 "
 
-DEPENDS += " \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' virtual/libx11 xsp libxv libxscrnsaver libxinerama', '', d)} \
-"
-
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRCREV_mpv = "349e437466163cb52f7d0aa227d4606edd9db501"
-SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.34;protocol=https \
-           https://waf.io/waf-2.0.20;name=waf;subdir=git \
+SRCREV_mpv = "140ec21c89d671d392877a7f3b91d67e7d7b9239"
+SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.35;protocol=https \
+           https://waf.io/waf-2.0.25;name=waf;subdir=git \
            "
-SRC_URI[waf.sha256sum] = "bf971e98edc2414968a262c6aa6b88541a26c3cd248689c89f4c57370955ee7f"
+SRC_URI[waf.sha256sum] = "21199cd220ccf60434133e1fd2ab8c8e5217c3799199c82722543970dc8e38d5"
 
 S = "${WORKDIR}/git"
 
@@ -46,7 +42,7 @@
     ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
 "
 
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 xsp libxv libxscrnsaver libxinerama libxpresent libxext"
 PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
 PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
 PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
@@ -103,7 +99,7 @@
 "
 
 link_waf() {
-    ln -s waf-2.0.20 ${S}/waf
+    ln -s waf-2.0.25 ${S}/waf
 }
 do_unpack[postfuncs] += "link_waf"
 
@@ -111,5 +107,6 @@
     ${datadir}/icons \
     ${datadir}/zsh \
     ${datadir}/bash-completion \
+    ${datadir}/metainfo \
     "
 EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch b/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
index a6df213..3b7054a 100644
--- a/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
+++ b/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
@@ -28,11 +28,9 @@
  plugins/cram.c | 4 ++++
  2 files changed, 5 insertions(+), 1 deletion(-)
 
-diff --git a/configure.ac b/configure.ac
-index e1bf53b6..ad781830 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1290,7 +1290,7 @@ AC_CHECK_HEADERS_ONCE([sys/time.h])
+@@ -1231,7 +1231,7 @@ AC_CHECK_HEADERS_ONCE([sys/time.h])
  
  AC_HEADER_DIRENT
  AC_HEADER_SYS_WAIT
@@ -41,8 +39,6 @@
  
  IPv6_CHECK_SS_FAMILY()
  IPv6_CHECK_SA_LEN()
-diff --git a/plugins/cram.c b/plugins/cram.c
-index d02e9baa..695aaa91 100644
 --- a/plugins/cram.c
 +++ b/plugins/cram.c
 @@ -53,6 +53,10 @@
@@ -56,6 +52,3 @@
  #include <sasl.h>
  #include <saslplug.h>
  #include <saslutil.h>
--- 
-2.37.3
-
diff --git a/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch b/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
index 1e6f996..308d882 100644
--- a/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
+++ b/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
@@ -1,50 +1,39 @@
-From 288430d3c2d3f36a4c9d40c4fffa85288f44549a Mon Sep 17 00:00:00 2001
-From: "Roy.Li" <rongqing.li@windriver.com>
-Date: Tue, 25 Jun 2013 09:22:59 +0800
-Subject: [PATCH] Avoid to call AC_TRY_RUN
+Remove AC_TRY_RUN
 
-Upstream-Status: Inappropriate [configuration]
+It can not be run during cross compile
 
-Avoid to call AC_TRY_RUN to check if GSSAPI libraries support SPNEGO
-on cross-compile environment by definition AC_ARG_ENABLE enable-spnego
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- m4/sasl2.m4 | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
-index 80371ef..ff70083 100644
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 --- a/m4/sasl2.m4
 +++ b/m4/sasl2.m4
-@@ -316,6 +316,18 @@ if test "$gssapi" != no; then
+@@ -316,28 +316,8 @@ if test "$gssapi" != no; then
    AC_CACHE_CHECK([for SPNEGO support in GSSAPI libraries],[ac_cv_gssapi_supports_spnego],[
      cmu_save_LIBS="$LIBS"
      LIBS="$LIBS $GSSAPIBASE_LIBS"
-+    AC_ARG_ENABLE([spnego],
-+                [AC_HELP_STRING([--enable-spnego=<DIR>],
-+                                [enable SPNEGO support in GSSAPI libraries [no]])],
-+                [spnego=$enableval],
-+                [spnego=no])
-+  
-+    if test "$spnego" = no; then
-+         echo "no"
-+    elif test "$spnego" = yes; then
-+         AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
-+    else
-+         AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries])
-     AC_TRY_RUN([
- #ifdef HAVE_GSSAPI_H
- #include <gssapi.h>
-@@ -343,7 +355,7 @@ int main(void)
-   AS_IF([test "$ac_cv_gssapi_supports_spnego" = yes],[
-     AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
-   ])
+-    AC_TRY_RUN([
+-#ifdef HAVE_GSSAPI_H
+-#include <gssapi.h>
+-#else
+-#include <gssapi/gssapi.h>
+-#endif
 -
-+   fi
- else
-   AC_MSG_RESULT([disabled])
- fi
--- 
-2.25.1
-
+-int main(void)
+-{
+-    gss_OID_desc spnego_oid = { 6, (void *) "\x2b\x06\x01\x05\x05\x02" };
+-    gss_OID_set mech_set;
+-    OM_uint32 min_stat;
+-    int have_spnego = 0;
+-                                                                               
+-    if (gss_indicate_mechs(&min_stat, &mech_set) == GSS_S_COMPLETE) {
+-	gss_test_oid_set_member(&min_stat, &spnego_oid, mech_set, &have_spnego);
+-	gss_release_oid_set(&min_stat, &mech_set);
+-    }
+-
+-    return (!have_spnego);  // 0 = success, 1 = failure
+-}
+-],[ac_cv_gssapi_supports_spnego=yes],[ac_cv_gssapi_supports_spnego=no])
++    AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
++    AC_MSG_RESULT(yes)
+     LIBS="$cmu_save_LIBS"
+   ])
+   AS_IF([test "$ac_cv_gssapi_supports_spnego" = yes],[
diff --git a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.24.07.bb b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.24.10.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.24.07.bb
rename to meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.24.10.bb
index f136c06..abeb6e8 100644
--- a/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.24.07.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/tcsh/tcsh_6.24.10.bb
@@ -13,7 +13,7 @@
     file://0001-Enable-system-malloc-on-all-linux.patch \
     file://0002-Add-debian-csh-scripts.patch \
 "
-SRC_URI[sha256sum] = "74e4e9805cbd9413ed34b4ffa1d72fc8d0ef81a5b79476854091416ce9336995"
+SRC_URI[sha256sum] = "13475c0fbeb74139d33ed793bf00ffbbb2ac2dc9fb1d44467a410760aba36664"
 
 EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'"
 inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.8.bb b/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.8.bb
index b023e8d..7602ff9 100644
--- a/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.8.bb
+++ b/meta-openembedded/meta-oe/recipes-shells/zsh/zsh_5.8.bb
@@ -22,8 +22,8 @@
 EXTRA_OECONF = " \
     --bindir=${base_bindir} \
     --enable-etcdir=${sysconfdir} \
-    --enable-fndir=${datadir}/${PN}/${PV}/functions \
-    --enable-site-fndir=${datadir}/${PN}/site-functions \
+    --enable-fndir=${datadir}/${BPN}/${PV}/functions \
+    --enable-site-fndir=${datadir}/${BPN}/site-functions \
     --with-term-lib='ncursesw ncurses' \
     --with-tcsetpgrp \
     --enable-cap \
diff --git a/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb b/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.1.bb
similarity index 78%
rename from meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb
rename to meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.1.bb
index b5bdcd5..3379ba1 100644
--- a/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.1.bb
@@ -6,10 +6,10 @@
 SECTION = "libs"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4097ec544cf01e9c7cfc4bdf8e4ed887"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=be30d45bdc453f70a494c149c2168289"
 
 SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https;branch=master"
-SRCREV = "23bfa4ab481edbad82a69ee385fc58ce03b63084"
+SRCREV = "6c5302cf8255c9bb75e535c566a8f1d94cfded5d"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_2.3.2.bb b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_2.3.2.bb
index b9ff914..7c6b254 100644
--- a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_2.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_2.3.2.bb
@@ -15,11 +15,10 @@
 
 do_configure:prepend() {
     mkdir -p ${S}/tests/catch2
-    cp ${DL_DIR}/catch.hpp ${S}/tests/catch2/catch.hpp 
+    cp ${DL_DIR}/catch.hpp ${S}/tests/catch2/catch.hpp
 }
 
 inherit cmake
-inherit ptest
 
 # cli11 is a header only C++ library, so the main package will be empty.
 RDEPENDS:${PN}-dev = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/dc/double-conversion_3.2.1.bb b/meta-openembedded/meta-oe/recipes-support/dc/double-conversion_3.2.1.bb
index cc54dc6..92466f6 100644
--- a/meta-openembedded/meta-oe/recipes-support/dc/double-conversion_3.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/dc/double-conversion_3.2.1.bb
@@ -10,9 +10,32 @@
 
 SRC_URI = " \
         git://github.com/google/double-conversion.git;protocol=https;branch=master \
+        file://run-ptest \
 "
 SRCREV = "af09fd65fcf24eee95dc62813ba9123414635428"
 
-inherit cmake
+inherit cmake ptest
 
 EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
+
+# These ptest use ctest (provided by cmake)
+RDEPENDS:${PN}-ptest += "cmake"
+# Build tests only if ptest is enabled
+EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTING=ON', '', d)}"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/test
+    cp -rf ${B}/test ${D}${PTEST_PATH}
+    install -m 0644 ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}/
+    files="
+        CTestTestfile.cmake
+        test/CTestTestfile.cmake
+        test/cmake_install.cmake
+        test/cctest/CTestTestfile.cmake
+        test/cctest/cmake_install.cmake
+    "
+    for file in $files; do
+        sed -i -e "s|${B}|${PTEST_PATH}|g" -e "s|${S}|${PTEST_PATH}|g" -e "s|${WORKDIR}/recipe-sysroot-native||g" "${D}${PTEST_PATH}/${file}"
+    done
+
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/dc/files/run-ptest b/meta-openembedded/meta-oe/recipes-support/dc/files/run-ptest
new file mode 100644
index 0000000..9240a3f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/dc/files/run-ptest
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# This script runs tests taken from the github CI for the Double-Conversion library.
+# For more information, please see: https://github.com/google/double-conversion/blob/master/.github/workflows/ci.yml#L60
+
+# Count the number of failed tests
+NUM_FAILS=0
+
+# Run all tests using ctest
+ctest -V
+
+# VCount the number of failed tests by checking the LastTest.log file generated by ctest
+NUM_FAILS=$(grep -c "Failed" Testing/Temporary/LastTest.log)
+
+# Run the tests directly as well, just in case we forgot to add it to ctest
+test/cctest/cctest
+if [ $? -ne 0 ]; then
+    # If the test failed, increment the number of failed tests
+    NUM_FAILS=$(expr $NUM_FAILS + 1)
+fi
+
+# Return the number of failed tests
+exit $NUM_FAILS
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb
index 7b0a422..df210ef 100644
--- a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb
@@ -5,6 +5,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
 
 SRC_URI = "https://ftp.gnu.org/pub/gnu/emacs/emacs-${PV}.tar.xz \
+           file://0001-largefile.m4-Update-from-latest-gnulib.patch \
           "
 SRC_URI:append:class-target = " file://usemake-docfile-native.patch"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/files/0001-largefile.m4-Update-from-latest-gnulib.patch b/meta-openembedded/meta-oe/recipes-support/emacs/files/0001-largefile.m4-Update-from-latest-gnulib.patch
new file mode 100644
index 0000000..72c0c0e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/files/0001-largefile.m4-Update-from-latest-gnulib.patch
@@ -0,0 +1,390 @@
+From c2bea3d033b5abd44698722d8eedc2b87373b33b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:42:43 -0700
+Subject: [PATCH] largefile.m4: Update from latest gnulib
+
+brings in latest largefile specific changes which autoconf 2.72+ requires
+
+Upstream-Status: Inappropriate [Drop it with new emacs release which has it]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/largefile.m4 | 330 ++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 263 insertions(+), 67 deletions(-)
+
+diff --git a/m4/largefile.m4 b/m4/largefile.m4
+index 3e8b5e3..7fb81b8 100644
+--- a/m4/largefile.m4
++++ b/m4/largefile.m4
+@@ -1,7 +1,7 @@
+ # Enable large files on systems where this is not the default.
+ # Enable support for files on Linux file systems with 64-bit inode numbers.
+ 
+-# Copyright 1992-1996, 1998-2022 Free Software Foundation, Inc.
++# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -10,8 +10,9 @@
+ # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
+ # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
+ # and ftello in C++ mode as well.
++# Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038.
+ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+-[
++ m4_ifndef([AC_SYS_YEAR2038], [[
+   AC_REQUIRE([AC_CANONICAL_HOST])
+   AC_FUNC_FSEEKO
+   case "$host_os" in
+@@ -20,10 +21,10 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+         [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).])
+       ;;
+   esac
+-])
++ ]])
++)
+ 
+-# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+
+-# with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
++# Work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+ m4_version_prereq([2.70], [], [
+@@ -43,33 +44,258 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+ ])
+ ])# m4_version_prereq 2.70
+ 
++# Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier.
++# This code is taken from Autoconf master.
++m4_ifndef([AC_SYS_YEAR2038], [
++
++# _AC_SYS_YEAR2038_TEST_CODE
++# --------------------------
++# C code used to probe for time_t that can represent time points more
++# than 2**31 - 1 seconds after the epoch.  With the usual Unix epoch,
++# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian),
++# hence the name.
++AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE],
++[[
++  #include <time.h>
++  /* Check that time_t can represent 2**32 - 1 correctly.  */
++  #define LARGE_TIME_T \\
++    ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
++  int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
++                           && LARGE_TIME_T % 65537 == 0)
++                          ? 1 : -1];
++]])
++
++# _AC_SYS_YEAR2038_OPTIONS
++# ------------------------
++# List of known ways to enable support for large time_t.  If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_YEAR2038_PROBE.
++m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
++    ["none needed"]                   dnl 64-bit and newer 32-bit Unix
++    ["-D_TIME_BITS=64"]               dnl glibc 2.34 with some 32-bit ABIs
++    ["-D__MINGW_USE_VC2005_COMPAT"]   dnl 32-bit MinGW
++    ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"]
++                                      dnl 32-bit MinGW (misconfiguration)
++))
++
++# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
++# -----------------------------------------
++# Subroutine of AC_SYS_YEAR2038.  Probe for time_t that can represent
++# time points more than 2**31 - 1 seconds after the epoch (dates after
++# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
++# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to
++# "support not detected" if none of them worked.  Then, set compilation
++# options and #defines as necessary to enable large time_t support.
++#
++# Note that we do not test whether mktime, localtime, etc. handle
++# large values of time_t correctly, as that would require use of
++# AC_TRY_RUN.  Note also that some systems only support large time_t
++# together with large off_t.
++#
++# If support is not detected, the behavior depends on which of the
++# top-level AC_SYS_YEAR2038 macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_YEAR2038_OPTIONS.
++AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
++  [ac_cv_sys_year2038_opts],
++  [ac_save_CPPFLAGS="$CPPFLAGS"
++  ac_opt_found=no
++  for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do
++    AS_IF([test x"$ac_opt" != x"none needed"],
++      [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
++    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])],
++      [ac_cv_sys_year2038_opts="$ac_opt"
++      ac_opt_found=yes])
++    test $ac_opt_found = no || break
++  done
++  CPPFLAGS="$ac_save_CPPFLAGS"
++  test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"])
++
++ac_have_year2038=yes
++AS_CASE([$ac_cv_sys_year2038_opts],
++  ["none needed"], [],
++  ["support not detected"],
++    [ac_have_year2038=no
++     AS_CASE([$enable_year2038],
++      [yes],
++        [# If we're not cross compiling and 'touch' works with a large
++        # timestamp, then we can presume the system supports wider time_t
++        # *somehow* and we just weren't able to detect it.  One common
++        # case that we deliberately *don't* probe for is a system that
++        # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
++        # wide time_t.  (It would be inappropriate for us to override an
++        # intentional use of -m32.)  Error out, demanding use of
++        # --disable-year2038 if this is intentional.
++        AS_IF([test $cross_compiling = no],
++          [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
++            [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
++              [*'Feb  7  2106'* | *'Feb  7 17:10'*],
++              [AC_MSG_FAILURE(m4_text_wrap(
++      [this system appears to support timestamps after January 2038,
++       but no mechanism for enabling wide 'time_t' was detected.
++       Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
++       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++      [], [], [55]))])])])])],
++
++  ["-D_TIME_BITS=64"],
++    [AC_DEFINE([_TIME_BITS], [64],
++      [Number of bits in time_t, on hosts where this is settable.])],
++
++  ["-D__MINGW_USE_VC2005_COMPAT=1"],
++    [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
++      [Define to 1 on platforms where this makes time_t a 64-bit type.])],
+ 
+-# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+-#                               CACHE-VAR,
+-#                               DESCRIPTION,
+-#                               PROLOGUE, [FUNCTION-BODY])
+-# --------------------------------------------------------
+-m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+-[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+-[while :; do
+-  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+-    [AC_LANG_PROGRAM([$5], [$6])],
+-    [$3=no; break])
+-  m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+-    [AC_LANG_PROGRAM([#undef $1
+-#define $1 $2
+-$5], [$6])],
+-    [$3=$2; break])
+-  $3=unknown
+-  break
+-done])
+-case $$3 in #(
+-  no | unknown) ;;
+-  *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+-esac
+-rm -rf conftest*[]dnl
+-])# _AC_SYS_LARGEFILE_MACRO_VALUE
++  ["-U_USE_32_BIT_TIME_T"*],
++    [AC_MSG_FAILURE(m4_text_wrap(
++      [the 'time_t' type is currently forced to be 32-bit.
++       It will stop working after January 2038.
++       Remove _USE_32BIT_TIME_T from the compiler flags.],
++      [], [], [55]))],
++
++  [AC_MSG_ERROR(
++    [internal error: bad value for \$ac_cv_sys_year2038_opts])])
++])
++
++# _AC_SYS_YEAR2038_ENABLE
++# -----------------------
++# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
++# Depending on which of the YEAR2038 macros was used, add either an
++# --enable-year2038, or a --disable-year2038, or no option at all to
++# the configure script.  Note that this is expanded very late and
++# therefore there cannot be any code in the AC_ARG_ENABLE.  The
++# default value for enable_year2038 is emitted unconditionally
++# because the generated code always looks at this variable.
++m4_define([_AC_SYS_YEAR2038_ENABLE],
++[m4_divert_text([DEFAULTS],
++  m4_provide_if([AC_SYS_YEAR2038],
++    [enable_year2038=yes],
++    [enable_year2038=no]))]dnl
++[AC_ARG_ENABLE([year2038],
++  m4_provide_if([AC_SYS_YEAR2038],
++    [AS_HELP_STRING([--disable-year2038],
++      [do not support timestamps after 2038])],
++    [AS_HELP_STRING([--enable-year2038],
++      [support timestamps after 2038])]))])
++
++# _AC_SYS_YEAR2038_OPT_IN
++# -----------------------
++# If the --enable-year2038 option is given to configure, attempt to
++# detect and activate support for large time_t on 32-bit systems.
++# This macro is automatically invoked by AC_SYS_LARGEFILE when large
++# *file* support is detected.  It does not AC_REQUIRE AC_SYS_LARGEFILE
++# to avoid a dependency loop, and is therefore unsafe to expose as a
++# documented macro.
++AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# AC_SYS_YEAR2038
++# ---------------
++# Attempt to detect and activate support for large time_t.
++# On systems where time_t is not always 64 bits, this probe can be
++# skipped by passing the --disable-year2038 option to configure.
++AC_DEFUN([AC_SYS_YEAR2038],
++[AC_REQUIRE([AC_SYS_LARGEFILE])]dnl
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# _AC_SYS_LARGEFILE_TEST_CODE
++# ---------------------------
++# C code used to probe for large file support.
++m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
++[@%:@include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++    We can't simply define LARGE_OFF_T to be 9223372036854775807,
++    since some C++ compilers masquerading as C compilers
++    incorrectly reject 9223372036854775807.  */
++@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
++  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
++		       && LARGE_OFF_T % 2147483647 == 1)
++		      ? 1 : -1]];[]dnl
++])
++
++# _AC_SYS_LARGEFILE_OPTIONS
++# -------------------------
++# List of known ways to enable support for large files.  If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_LARGEFILE_PROBE.
++m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
++    ["none needed"]                   dnl Most current systems
++    ["-D_FILE_OFFSET_BITS=64"]        dnl X/Open LFS spec
++    ["-D_LARGE_FILES=1"]              dnl AIX (which versions?)
++    ["-n32"]                          dnl Irix 6.2 w/ SGI compiler
++))
++
++# _AC_SYS_LARGEFILE_PROBE
++# -----------------------
++# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set
++# the cache variable ac_cv_sys_largefile_opts to one of the values in
++# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if
++# none of the options in that list worked.  Then, set compilation
++# options and #defines as necessary to enable large file support.
++#
++# If large file support is not detected, the behavior depends on which of
++# the top-level AC_SYS_LARGEFILE macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_LARGEFILE_OPTIONS.
++AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable large file support],
++  [ac_cv_sys_largefile_opts],
++  [ac_save_CC="$CC"
++  ac_opt_found=no
++  for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
++    AS_IF([test x"$ac_opt" != x"none needed"],
++      [CC="$ac_save_CC $ac_opt"])
++    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
++      [ac_cv_sys_largefile_opts="$ac_opt"
++      ac_opt_found=yes])
++    test $ac_opt_found = no || break
++  done
++  CC="$ac_save_CC"
++  test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
++
++ac_have_largefile=yes
++AS_CASE([$ac_cv_sys_largefile_opts],
++  ["none needed"], [],
++  ["support not detected"],
++    [ac_have_largefile=no],
++
++  ["-D_FILE_OFFSET_BITS=64"],
++    [AC_DEFINE([_FILE_OFFSET_BITS], [64],
++      [Number of bits in a file offset, on hosts where this is settable.])],
++
++  ["-D_LARGE_FILES=1"],
++    [AC_DEFINE([_LARGE_FILES], [1],
++      [Define to 1 on platforms where this makes off_t a 64-bit type.])],
++
++  ["-n32"],
++    [CC="$CC -n32"],
++
++  [AC_MSG_ERROR(
++    [internal error: bad value for \$ac_cv_sys_largefile_opts])])
++
++_AC_SYS_YEAR2038_OPT_IN
++])
+ 
++# _AC_SYS_LARGEFILE_ENABLE
++# ------------------------
++# Subroutine of AC_SYS_LARGEFILE.  Note that this
++# is expanded very late and therefore there cannot be any code in the
++# AC_ARG_ENABLE.  The default value for enable_largefile is emitted
++# unconditionally because the generated shell code always looks at
++# this variable.
++m4_define([_AC_SYS_LARGEFILE_ENABLE],
++[m4_divert_text([DEFAULTS],
++  enable_largefile=yes)]dnl
++[AC_ARG_ENABLE([largefile],
++  [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])
+ 
+ # AC_SYS_LARGEFILE
+ # ----------------
+@@ -80,44 +306,14 @@ rm -rf conftest*[]dnl
+ # Additionally, on Linux file systems with 64-bit inodes a file that happens
+ # to have a 64-bit inode number cannot be accessed by 32-bit applications on
+ # Linux x86/x86_64.  This can occur with file systems such as XFS and NFS.
++# This macro allows configuration to continue if the system doesn't support
++# large files.
+ AC_DEFUN([AC_SYS_LARGEFILE],
+-[AC_ARG_ENABLE(largefile,
+-               [  --disable-largefile     omit support for large files])
+-AS_IF([test "$enable_largefile" != no],
+- [AC_CACHE_CHECK([for special C compiler options needed for large files],
+-    ac_cv_sys_largefile_CC,
+-    [ac_cv_sys_largefile_CC=no
+-     if test "$GCC" != yes; then
+-       ac_save_CC=$CC
+-       while :; do
+-         # IRIX 6.2 and later do not support large files by default,
+-         # so use the C compiler's -n32 option if that helps.
+-         AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+-         AC_COMPILE_IFELSE([], [break])
+-         CC="$CC -n32"
+-         AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+-         break
+-       done
+-       CC=$ac_save_CC
+-       rm -f conftest.$ac_ext
+-    fi])
+-  if test "$ac_cv_sys_largefile_CC" != no; then
+-    CC=$CC$ac_cv_sys_largefile_CC
+-  fi
+-
+-  _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+-    ac_cv_sys_file_offset_bits,
+-    [Number of bits in a file offset, on hosts where this is settable.],
+-    [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+-  AS_CASE([$ac_cv_sys_file_offset_bits],
+-    [unknown],
+-      [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
+-         [ac_cv_sys_large_files],
+-         [Define for large files, on AIX-style hosts.],
+-         [_AC_SYS_LARGEFILE_TEST_INCLUDES])],
+-    [64],
+-      [gl_YEAR2038_BODY([])])])
+-])# AC_SYS_LARGEFILE
++[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
++  AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
++  AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
++])])
++])# m4_ifndef AC_SYS_YEAR2038
+ 
+ # Enable large files on systems where this is implemented by Gnulib, not by the
+ # system headers.
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb
index a1bf67c..0fc779a 100644
--- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb
@@ -28,6 +28,7 @@
     -DBUILD_STATIC_LIBS=OFF \
     -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
     -DWITH_MANPAGES=OFF \
+    -DPROXY_PLUGINDIR=${libdir}/freerdp/proxy/plugins \
 "
 
 PACKAGECONFIG ??= " \
diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb b/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb
index 4feec61..d0ff2ef 100644
--- a/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "HDF5"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ac1039f6bf7c9ab2b3693836f46d0735"
 
-inherit cmake siteinfo qemu
+inherit cmake siteinfo qemu multilib_header
 
 DEPENDS += "qemu-native"
 
@@ -44,6 +44,7 @@
     # Used for generating config files on target
     install -m 755 ${B}/bin/H5detect ${D}${bindir}
     install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir}
+    oe_multilib_header H5pubconf.h
 }
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.368.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.369.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.368.bb
rename to meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.369.bb
index 786cc00..c20e243 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.368.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.369.bb
@@ -5,7 +5,7 @@
 LICENSE = "GPL-2.0-or-later | XFree86-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
 
-SRCREV = "0e25d93ac6433791edbb9d28b3f8eae0cf5e46ff"
+SRCREV = "ced93f9d1c15e45e35378e82b8da96027e58174a"
 SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch
new file mode 100644
index 0000000..6b225a1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch
@@ -0,0 +1,42 @@
+From 0912e49d58c2a5f455fabf76ab7dc61cfc44cfb9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 30 Mar 2023 20:50:26 -0700
+Subject: [PATCH] m4: Use autconf provided AC_FUNC_FSEEKO
+
+This helps in building with autoconf 2.72
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/ac_func_fseeko.m4 | 18 +-----------------
+ 1 file changed, 1 insertion(+), 17 deletions(-)
+
+diff --git a/m4/ac_func_fseeko.m4 b/m4/ac_func_fseeko.m4
+index eaeabb978..f9b8859cf 100644
+--- a/m4/ac_func_fseeko.m4
++++ b/m4/ac_func_fseeko.m4
+@@ -53,20 +53,4 @@
+ # --------------
+ AN_FUNCTION([ftello], [AC_FUNC_FSEEKO])
+ AN_FUNCTION([fseeko], [AC_FUNC_FSEEKO])
+-AC_DEFUN([AC_FUNC_FSEEKO],
+-[_AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1,
+-   [ac_cv_sys_largefile_source],
+-   [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).],
+-   [[#include <sys/types.h> /* for off_t */
+-     #include <stdio.h>]],
+-   [[int (*fp) (FILE *, off_t, int) = fseeko;
+-     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);]])
+-
+-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+-# in glibc 2.1.3, but that breaks too many other things.
+-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+-if test $ac_cv_sys_largefile_source != unknown; then
+-  AC_DEFINE(HAVE_FSEEKO, 1,
+-    [Define to 1 if fseeko (and presumably ftello) exists and is declared.])
+-fi
+-])# AC_FUNC_FSEEKO
++AC_FUNC_FSEEKO
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
rename to meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
index b6344a3..07434c0 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
@@ -4,23 +4,27 @@
 DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \
 editing raster and vector image files. It can read and write over 200 image file formats."
 LICENSE = "ImageMagick"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b97c12a9213df1499565d69b92c73dd7 \
-                    file://NOTICE;md5=d8b9d2ccf273687ad12ebd06e5d8478f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ac58ac14f9d9d02cafd2d81ef38fb2cc \
+                    file://NOTICE;md5=bcbf1f1897b40ec8df39700cb560e9ed"
 # FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
 DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool"
 
 BASE_PV := "${PV}"
-PV .= "-62"
-SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=https"
-SRCREV = "35b4991eb0939a327f3489988c366e21068b0178"
+PV .= "-5"
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=https \
+           file://0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch"
+SRCREV = "2d24be538f286962c355cf422bb525375ac77998"
 
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig update-alternatives
+export ac_cv_sys_file_offset_bits="64"
 
 # xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2
 # if someone needs xml support then fix it first
-EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl"
+EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl \
+                --disable-openmp --without-xml --disable-opencl \
+                --enable-largefile"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
 PACKAGECONFIG[cxx] = "--with-magick-plus-plus,--without-magick-plus-plus"
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch b/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
deleted file mode 100644
index 9ac0770..0000000
--- a/meta-openembedded/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
+++ /dev/null
@@ -1,898 +0,0 @@
-From ec3e1f411c332cbc2f2bc7ab7e2175ebf918b37a Mon Sep 17 00:00:00 2001
-From: Peter Oberparleiter <oberpar@linux.ibm.com>
-Date: Fri, 24 May 2019 16:56:52 +0200
-Subject: [PATCH 1/2] geninfo: Add intermediate text format support
-
-This change adds support for parsing the output of gcov's intermediate
-text file format as implemented by GCC versions 5 to 8.  The use of the
-gcov intermediate format should increase processing speed. It also
-provides branch coverage data when using the --initial command line
-option.
-
-Users can control whether geninfo uses the intermediate format via the
-geninfo_intermediate configuration file option. Valid values are:
-
-     0: Use normal text format
-     1: Use intermediate format
-  auto: Use intermediate format if available. This is the default.
-
-Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
----
- bin/geninfo  | 567 ++++++++++++++++++++++++++++++++++++++++++++-------
- lcovrc       |   3 +
- man/lcovrc.5 |  24 +++
- 3 files changed, 521 insertions(+), 73 deletions(-)
-
-Upstream-Status: Backport
-Download URL: https://github.com/linux-test-project/lcov/commit/ebfeb3e179e450c69c3532f98cd5ea1fbf6ccba7
-
-diff --git a/bin/geninfo b/bin/geninfo
-index f41eaec..0276666 100755
---- a/bin/geninfo
-+++ b/bin/geninfo
-@@ -54,6 +54,8 @@ use warnings;
- use File::Basename; 
- use File::Spec::Functions qw /abs2rel catdir file_name_is_absolute splitdir
- 			      splitpath catpath/;
-+use File::Temp qw(tempfile tempdir);
-+use File::Copy qw(copy);
- use Getopt::Long;
- use Digest::MD5 qw(md5_base64);
- use Cwd qw/abs_path/;
-@@ -163,13 +165,13 @@ sub solve_relative_path($$);
- sub read_gcov_header($);
- sub read_gcov_file($);
- sub info(@);
-+sub process_intermediate($$$);
- sub map_llvm_version($);
- sub version_to_str($);
- sub get_gcov_version();
- sub system_no_output($@);
- sub read_config($);
- sub apply_config($);
--sub get_exclusion_data($);
- sub apply_exclusion_data($$);
- sub process_graphfile($$);
- sub filter_fn_name($);
-@@ -264,6 +266,8 @@ our $gcno_split_crc;
- our $func_coverage = 1;
- our $br_coverage = 0;
- our $rc_auto_base = 1;
-+our $rc_intermediate = "auto";
-+our $intermediate;
- our $excl_line = "LCOV_EXCL_LINE";
- our $excl_br_line = "LCOV_EXCL_BR_LINE";
- 
-@@ -331,6 +335,7 @@ if ($config || %opt_rc)
- 		"geninfo_compat"		=> \$opt_compat,
- 		"geninfo_adjust_src_path"	=> \$rc_adjust_src_path,
- 		"geninfo_auto_base"		=> \$rc_auto_base,
-+		"geninfo_intermediate"		=> \$rc_intermediate,
- 		"lcov_function_coverage"	=> \$func_coverage,
- 		"lcov_branch_coverage"		=> \$br_coverage,
- 		"lcov_excl_line"		=> \$excl_line,
-@@ -460,15 +465,38 @@ if (system_no_output(3, $gcov_tool, "--help") == -1)
- }
- 
- ($gcov_version, $gcov_version_string) = get_gcov_version();
-+$gcov_caps = get_gcov_capabilities();
-+
-+# Determine intermediate mode
-+if ($rc_intermediate eq "0") {
-+	$intermediate = 0;
-+} elsif ($rc_intermediate eq "1") {
-+	$intermediate = 1;
-+} elsif (lc($rc_intermediate) eq "auto") {
-+	# Use intermediate format if supported by gcov
-+	$intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
-+} else {
-+	die("ERROR: invalid value for geninfo_intermediate: ".
-+	    "'$rc_intermediate'\n");
-+}
-+
-+if ($intermediate) {
-+	info("Using intermediate gcov format\n");
-+	if ($opt_derive_func_data) {
-+		warn("WARNING: --derive-func-data is not compatible with ".
-+		     "intermediate format - ignoring\n");
-+		$opt_derive_func_data = 0;
-+	}
-+}
- 
- # Determine gcov options
--$gcov_caps = get_gcov_capabilities();
- push(@gcov_options, "-b") if ($gcov_caps->{'branch-probabilities'} &&
- 			      ($br_coverage || $func_coverage));
- push(@gcov_options, "-c") if ($gcov_caps->{'branch-counts'} &&
- 			      $br_coverage);
- push(@gcov_options, "-a") if ($gcov_caps->{'all-blocks'} &&
--			      $opt_gcov_all_blocks && $br_coverage);
-+			      $opt_gcov_all_blocks && $br_coverage &&
-+			      !$intermediate);
- if ($gcov_caps->{'hash-filenames'})
- {
- 	push(@gcov_options, "-x");
-@@ -599,7 +627,7 @@ foreach my $entry (@data_directory) {
- 	gen_info($entry);
- }
- 
--if ($initial && $br_coverage) {
-+if ($initial && $br_coverage && !$intermediate) {
- 	warn("Note: --initial does not generate branch coverage ".
- 	     "data\n");
- }
-@@ -768,6 +796,7 @@ sub gen_info($)
- 	my $prefix;
- 	my $type;
- 	my $ext;
-+	my $tempdir;
- 
- 	if ($initial) {
- 		$type = "graph";
-@@ -798,16 +827,22 @@ sub gen_info($)
- 		$prefix = "";
- 	}
- 
-+	$tempdir = tempdir(CLEANUP => 1);
-+
- 	# Process all files in list
- 	foreach $file (@file_list) {
- 		# Process file
--		if ($initial) {
-+		if ($intermediate) {
-+			process_intermediate($file, $prefix, $tempdir);
-+		} elsif ($initial) {
- 			process_graphfile($file, $prefix);
- 		} else {
- 			process_dafile($file, $prefix);
- 		}
- 	}
- 
-+	unlink($tempdir);
-+
- 	# Report whether files were excluded.
- 	if (%excluded_files) {
- 		info("Excluded data for %d files due to include/exclude options\n",
-@@ -1058,10 +1093,12 @@ sub process_dafile($$)
- 
- 	# Try to find base directory automatically if requested by user
- 	if ($rc_auto_base) {
--		$base_dir = find_base_from_graph($base_dir, $instr, $graph);
-+		$base_dir = find_base_from_source($base_dir,
-+			[ keys(%{$instr}), keys(%{$graph}) ]);
- 	}
- 
--	($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
-+	adjust_source_filenames($instr, $base_dir);
-+	adjust_source_filenames($graph, $base_dir);
- 
- 	# Set $object_dir to real location of object files. This may differ
- 	# from $da_dir if the graph file is just a link to the "real" object
-@@ -2017,6 +2054,299 @@ sub read_gcov_file($)
- }
- 
- 
-+#
-+# read_intermediate_text(gcov_filename, data)
-+#
-+# Read gcov intermediate text format in GCOV_FILENAME and add the resulting
-+# data to DATA in the following format:
-+#
-+# data:      source_filename -> file_data
-+# file_data: concatenated lines of intermediate text data
-+#
-+
-+sub read_intermediate_text($$)
-+{
-+	my ($gcov_filename, $data) = @_;
-+	my $fd;
-+	my $filename;
-+
-+	open($fd, "<", $gcov_filename) or
-+		die("ERROR: Could not read $gcov_filename: $!\n");
-+	while (my $line = <$fd>) {
-+		if ($line =~ /^file:(.*)$/) {
-+			$filename = $1;
-+			chomp($filename);
-+		} elsif (defined($filename)) {
-+			$data->{$filename} .= $line;
-+		}
-+	}
-+	close($fd);
-+}
-+
-+
-+#
-+# intermediate_text_to_info(fd, data, srcdata)
-+#
-+# Write DATA in info format to file descriptor FD.
-+#
-+# data:      filename -> file_data:
-+# file_data: concatenated lines of intermediate text data
-+#
-+# srcdata:   filename -> [ excl, brexcl, checksums ]
-+# excl:      lineno -> 1 for all lines for which to exclude all data
-+# brexcl:    lineno -> 1 for all lines for which to exclude branch data
-+# checksums: lineno -> source code checksum
-+#
-+# Note: To simplify processing, gcov data is not combined here, that is counts
-+#       that appear multiple times for the same lines/branches are not added.
-+#       This is done by lcov/genhtml when reading the data files.
-+#
-+
-+sub intermediate_text_to_info($$$)
-+{
-+	my ($fd, $data, $srcdata) = @_;
-+	my $branch_num = 0;
-+	my $c;
-+
-+	return if (!%{$data});
-+
-+	print($fd "TN:$test_name\n");
-+	for my $filename (keys(%{$data})) {
-+		my ($excl, $brexcl, $checksums);
-+
-+		if (defined($srcdata->{$filename})) {
-+			($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
-+		}
-+
-+		print($fd "SF:$filename\n");
-+		for my $line (split(/\n/, $data->{$filename})) {
-+			if ($line =~ /^lcount:(\d+),(\d+),?/) {
-+				# lcount:<line>,<count>
-+				# lcount:<line>,<count>,<has_unexecuted_blocks>
-+				if ($checksum && exists($checksums->{$1})) {
-+					$c = ",".$checksums->{$1};
-+				} else {
-+					$c = "";
-+				}
-+				print($fd "DA:$1,$2$c\n") if (!$excl->{$1});
-+
-+				# Intermediate text format does not provide
-+				# branch numbers, and the same branch may appear
-+				# multiple times on the same line (e.g. in
-+				# template instances). Synthesize a branch
-+				# number based on the assumptions:
-+				# a) the order of branches is fixed across
-+				#    instances
-+				# b) an instance starts with an lcount line
-+				$branch_num = 0;
-+			} elsif ($line =~ /^function:(\d+),(\d+),([^,]+)$/) {
-+				next if (!$func_coverage || $excl->{$1});
-+
-+				# function:<line>,<count>,<name>
-+				print($fd "FN:$1,$3\n");
-+				print($fd "FNDA:$2,$3\n");
-+			} elsif ($line =~ /^function:(\d+),\d+,(\d+),([^,]+)$/) {
-+				next if (!$func_coverage || $excl->{$1});
-+
-+				# function:<start_line>,<end_line>,<count>,
-+				#          <name>
-+				print($fd "FN:$1,$3\n");
-+				print($fd "FNDA:$2,$3\n");
-+			} elsif ($line =~ /^branch:(\d+),(taken|nottaken|notexec)/) {
-+				next if (!$br_coverage || $excl->{$1} ||
-+					 $brexcl->{$1});
-+
-+				# branch:<line>,taken|nottaken|notexec
-+				if ($2 eq "taken") {
-+					$c = 1;
-+				} elsif ($2 eq "nottaken") {
-+					$c = 0;
-+				} else {
-+					$c = "-";
-+				}
-+				print($fd "BRDA:$1,0,$branch_num,$c\n");
-+				$branch_num++;
-+			}
-+		}
-+		print($fd "end_of_record\n");
-+	}
-+}
-+
-+
-+sub get_output_fd($$)
-+{
-+	my ($outfile, $file) = @_;
-+	my $fd;
-+
-+	if (!defined($outfile)) {
-+		open($fd, ">", "$file.info") or
-+			die("ERROR: Cannot create file $file.info: $!\n");
-+	} elsif ($outfile eq "-") {
-+		open($fd, ">&STDOUT") or
-+			die("ERROR: Cannot duplicate stdout: $!\n");
-+	} else {
-+		open($fd, ">>", $outfile) or
-+			die("ERROR: Cannot write to file $outfile: $!\n");
-+	}
-+
-+	return $fd;
-+}
-+
-+
-+#
-+# print_gcov_warnings(stderr_file, is_graph, map)
-+#
-+# Print GCOV warnings in file STDERR_FILE to STDERR. If IS_GRAPH is non-zero,
-+# suppress warnings about missing as these are expected. Replace keys found
-+# in MAP with their values.
-+#
-+
-+sub print_gcov_warnings($$$)
-+{
-+	my ($stderr_file, $is_graph, $map) = @_;
-+	my $fd;
-+
-+	if (!open($fd, "<", $stderr_file)) {
-+		warn("WARNING: Could not open GCOV stderr file ".
-+		     "$stderr_file: $!\n");
-+		return;
-+	}
-+	while (my $line = <$fd>) {
-+		next if ($is_graph && $line =~ /cannot open data file/);
-+
-+		for my $key (keys(%{$map})) {
-+			$line =~ s/\Q$key\E/$map->{$key}/g;
-+		}
-+
-+		print(STDERR $line);
-+	}
-+	close($fd);
-+}
-+
-+
-+#
-+# process_intermediate(file, dir, tempdir)
-+#
-+# Create output for a single file (either a data file or a graph file) using
-+# gcov's intermediate option.
-+#
-+
-+sub process_intermediate($$$)
-+{
-+	my ($file, $dir, $tempdir) = @_;
-+	my ($fdir, $fbase, $fext);
-+	my $data_file;
-+	my $errmsg;
-+	my %data;
-+	my $fd;
-+	my $base;
-+	my $srcdata;
-+	my $is_graph = 0;
-+	my ($out, $err, $rc);
-+
-+	info("Processing %s\n", abs2rel($file, $dir));
-+
-+	$file = solve_relative_path($cwd, $file);
-+	($fdir, $fbase, $fext) = split_filename($file);
-+
-+	$is_graph = 1 if (".$fext" eq $graph_file_extension);
-+
-+	if ($is_graph) {
-+		# Process graph file - copy to temp directory to prevent
-+		# accidental processing of associated data file
-+		$data_file = "$tempdir/$fbase$graph_file_extension";
-+		if (!copy($file, $data_file)) {
-+			$errmsg = "ERROR: Could not copy file $file";
-+			goto err;
-+		}
-+	} else {
-+		# Process data file in place
-+		$data_file = $file;
-+	}
-+
-+	# Change directory
-+	if (!chdir($tempdir)) {
-+		$errmsg = "Could not change to directory $tempdir: $!";
-+		goto err;
-+	}
-+
-+	# Run gcov on data file
-+	($out, $err, $rc) = system_no_output(1 + 2 + 4, $gcov_tool,
-+					     $data_file, @gcov_options, "-i");
-+	defined($out) && unlink($out);
-+	if (defined($err)) {
-+		print_gcov_warnings($err, $is_graph, {
-+			$data_file => $file,
-+		});
-+		unlink($err);
-+	}
-+	if ($rc) {
-+		$errmsg = "GCOV failed for $file";
-+		goto err;
-+	}
-+
-+	if ($is_graph) {
-+		# Remove graph file copy
-+		unlink($data_file);
-+	}
-+
-+	# Parse resulting file(s)
-+	for my $gcov_filename (glob("*.gcov")) {
-+		read_intermediate_text($gcov_filename, \%data);
-+		unlink($gcov_filename);
-+	}
-+
-+	if (!%data) {
-+		warn("WARNING: GCOV did not produce any data for $file\n");
-+		return;
-+	}
-+
-+	# Determine base directory
-+	if (defined($base_directory)) {
-+		$base = $base_directory;
-+	} else {
-+		$base = $fdir;
-+
-+		if (is_compat($COMPAT_MODE_LIBTOOL)) {
-+			# Avoid files from .libs dirs
-+			$base =~ s/\.libs$//;
-+		}
-+
-+		# Try to find base directory automatically if requested by user
-+		if ($rc_auto_base) {
-+			$base = find_base_from_source($base, [ keys(%data) ]);
-+		}
-+	}
-+
-+	# Apply base file name to relative source files
-+	adjust_source_filenames(\%data, $base);
-+
-+	# Remove excluded source files
-+	filter_source_files(\%data);
-+
-+	# Get data on exclusion markers and checksums if requested
-+	if (!$no_markers || $checksum) {
-+		$srcdata = get_all_source_data(keys(%data));
-+	}
-+
-+	# Generate output
-+	$fd = get_output_fd($output_filename, $file);
-+	intermediate_text_to_info($fd, \%data, $srcdata);
-+	close($fd);
-+
-+	chdir($cwd);
-+
-+	return;
-+
-+err:
-+	if ($ignore[$ERROR_GCOV]) {
-+		warn("WARNING: $errmsg!\n");
-+	} else {
-+		die("ERROR: $errmsg!\n")
-+	}
-+}
-+
-+
- # Map LLVM versions to the version of GCC gcov which they emulate.
- 
- sub map_llvm_version($)
-@@ -2151,8 +2481,12 @@ sub int_handler()
- #
- #   MODE & 1: suppress STDOUT
- #   MODE & 2: suppress STDERR
-+#   MODE & 4: redirect to temporary files instead of suppressing
- #
--# Return 0 on success, non-zero otherwise.
-+# Return (stdout, stderr, rc):
-+#    stdout: path to tempfile containing stdout or undef
-+#    stderr: path to tempfile containing stderr or undef
-+#    0 on success, non-zero otherwise
- #
- 
- sub system_no_output($@)
-@@ -2161,14 +2495,31 @@ sub system_no_output($@)
- 	my $result;
- 	local *OLD_STDERR;
- 	local *OLD_STDOUT;
-+	my $stdout_file;
-+	my $stderr_file;
-+	my $fd;
- 
- 	# Save old stdout and stderr handles
- 	($mode & 1) && open(OLD_STDOUT, ">>&", "STDOUT");
- 	($mode & 2) && open(OLD_STDERR, ">>&", "STDERR");
- 
--	# Redirect to /dev/null
--	($mode & 1) && open(STDOUT, ">", "/dev/null");
--	($mode & 2) && open(STDERR, ">", "/dev/null");
-+	if ($mode & 4) {
-+		# Redirect to temporary files
-+		if ($mode & 1) {
-+			($fd, $stdout_file) = tempfile(UNLINK => 1);
-+			open(STDOUT, ">", $stdout_file) || warn("$!\n");
-+			close($fd);
-+		}
-+		if ($mode & 2) {
-+			($fd, $stderr_file) = tempfile(UNLINK => 1);
-+			open(STDERR, ">", $stderr_file) || warn("$!\n");
-+			close($fd);
-+		}
-+	} else {
-+		# Redirect to /dev/null
-+		($mode & 1) && open(STDOUT, ">", "/dev/null");
-+		($mode & 2) && open(STDERR, ">", "/dev/null");
-+	}
-  
- 	debug("system(".join(' ', @_).")\n");
- 	system(@_);
-@@ -2181,8 +2532,18 @@ sub system_no_output($@)
- 	# Restore old handles
- 	($mode & 1) && open(STDOUT, ">>&", "OLD_STDOUT");
- 	($mode & 2) && open(STDERR, ">>&", "OLD_STDERR");
-+
-+	# Remove empty output files
-+	if (defined($stdout_file) && -z $stdout_file) {
-+		unlink($stdout_file);
-+		$stdout_file = undef;
-+	}
-+	if (defined($stderr_file) && -z $stderr_file) {
-+		unlink($stderr_file);
-+		$stderr_file = undef;
-+	}
-  
--	return $result;
-+	return ($stdout_file, $stderr_file, $result);
- }
- 
- 
-@@ -2260,23 +2621,28 @@ sub apply_config($)
- 
- 
- #
--# get_exclusion_data(filename)
-+# get_source_data(filename)
- #
--# Scan specified source code file for exclusion markers and return
--#   linenumber -> 1
--# for all lines which should be excluded.
-+# Scan specified source code file for exclusion markers and checksums. Return
-+#   ( excl, brexcl, checksums ) where
-+#   excl:      lineno -> 1 for all lines for which to exclude all data
-+#   brexcl:    lineno -> 1 for all lines for which to exclude branch data
-+#   checksums: lineno -> source code checksum
- #
- 
--sub get_exclusion_data($)
-+sub get_source_data($)
- {
- 	my ($filename) = @_;
- 	my %list;
- 	my $flag = 0;
-+	my %brdata;
-+	my $brflag = 0;
-+	my %checksums;
- 	local *HANDLE;
- 
- 	if (!open(HANDLE, "<", $filename)) {
- 		warn("WARNING: could not open $filename\n");
--		return undef;
-+		return;
- 	}
- 	while (<HANDLE>) {
- 		if (/$EXCL_STOP/) {
-@@ -2287,14 +2653,62 @@ sub get_exclusion_data($)
- 		if (/$excl_line/ || $flag) {
- 			$list{$.} = 1;
- 		}
-+		if (/$EXCL_BR_STOP/) {
-+			$brflag = 0;
-+		} elsif (/$EXCL_BR_START/) {
-+			$brflag = 1;
-+		}
-+		if (/$excl_br_line/ || $brflag) {
-+			$brdata{$.} = 1;
-+		}
-+		if ($checksum) {
-+			chomp();
-+			$checksums{$.} = md5_base64($_);
-+		}
- 	}
- 	close(HANDLE);
- 
--	if ($flag) {
-+	if ($flag || $brflag) {
- 		warn("WARNING: unterminated exclusion section in $filename\n");
- 	}
- 
--	return \%list;
-+	return (\%list, \%brdata, \%checksums);
-+}
-+
-+
-+#
-+# get_all_source_data(filenames)
-+#
-+# Scan specified source code files for exclusion markers and return
-+#   filename -> [ excl, brexcl, checksums ]
-+#   excl:      lineno -> 1 for all lines for which to exclude all data
-+#   brexcl:    lineno -> 1 for all lines for which to exclude branch data
-+#   checksums: lineno -> source code checksum
-+#
-+
-+sub get_all_source_data(@)
-+{
-+	my @filenames = @_;
-+	my %data;
-+	my $failed = 0;
-+
-+	for my $filename (@filenames) {
-+		my @d;
-+		next if (exists($data{$filename}));
-+
-+		@d = get_source_data($filename);
-+		if (@d) {
-+			$data{$filename} = [ @d ];
-+		} else {
-+			$failed = 1;
-+		}
-+	}
-+
-+	if ($failed) {
-+		warn("WARNING: some exclusion markers may be ignored\n");
-+	}
-+
-+	return \%data;
- }
- 
- 
-@@ -2318,35 +2732,17 @@ sub apply_exclusion_data($$)
- {
- 	my ($instr, $graph) = @_;
- 	my $filename;
--	my %excl_data;
--	my $excl_read_failed = 0;
-+	my $excl_data;
- 
--	# Collect exclusion marker data
--	foreach $filename (sort_uniq_lex(keys(%{$graph}), keys(%{$instr}))) {
--		my $excl = get_exclusion_data($filename);
--
--		# Skip and note if file could not be read
--		if (!defined($excl)) {
--			$excl_read_failed = 1;
--			next;
--		}
--
--		# Add to collection if there are markers
--		$excl_data{$filename} = $excl if (keys(%{$excl}) > 0);
--	}
--
--	# Warn if not all source files could be read
--	if ($excl_read_failed) {
--		warn("WARNING: some exclusion markers may be ignored\n");
--	}
-+	($excl_data) = get_all_source_data(keys(%{$graph}), keys(%{$instr}));
- 
- 	# Skip if no markers were found
--	return ($instr, $graph) if (keys(%excl_data) == 0);
-+	return ($instr, $graph) if (!%$excl_data);
- 
- 	# Apply exclusion marker data to graph
--	foreach $filename (keys(%excl_data)) {
-+	foreach $filename (keys(%$excl_data)) {
- 		my $function_data = $graph->{$filename};
--		my $excl = $excl_data{$filename};
-+		my $excl = $excl_data->{$filename}->[0];
- 		my $function;
- 
- 		next if (!defined($function_data));
-@@ -2384,9 +2780,9 @@ sub apply_exclusion_data($$)
- 	}
- 
- 	# Apply exclusion marker data to instr
--	foreach $filename (keys(%excl_data)) {
-+	foreach $filename (keys(%$excl_data)) {
- 		my $line_data = $instr->{$filename};
--		my $excl = $excl_data{$filename};
-+		my $excl = $excl_data->{$filename}->[0];
- 		my $line;
- 		my @new_data;
- 
-@@ -2468,10 +2864,12 @@ sub process_graphfile($$)
- 
- 	# Try to find base directory automatically if requested by user
- 	if ($rc_auto_base) {
--		$base_dir = find_base_from_graph($base_dir, $instr, $graph);
-+		$base_dir = find_base_from_source($base_dir,
-+			[ keys(%{$instr}), keys(%{$graph}) ]);
- 	}
- 
--	($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
-+	adjust_source_filenames($instr, $base_dir);
-+	adjust_source_filenames($graph, $base_dir);
- 
- 	if (!$no_markers) {
- 		# Apply exclusion marker data to graph file data
-@@ -2767,11 +3165,11 @@ sub parent_dir($)
- }
- 
- #
--# find_base_from_graph(base_dir, instr, graph)
-+# find_base_from_source(base_dir, source_files)
- #
--# Try to determine the base directory of the graph file specified by INSTR
--# and GRAPH. The base directory is the base for all relative filenames in
--# the graph file. It is defined by the current working directory at time
-+# Try to determine the base directory of the object file built from
-+# SOURCE_FILES. The base directory is the base for all relative filenames in
-+# the gcov data. It is defined by the current working directory at time
- # of compiling the source file.
- #
- # This function implements a heuristic which relies on the following
-@@ -2781,16 +3179,16 @@ sub parent_dir($)
- # - files by the same name are not present in multiple parent directories
- #
- 
--sub find_base_from_graph($$$)
-+sub find_base_from_source($$)
- {
--	my ($base_dir, $instr, $graph) = @_;
-+	my ($base_dir, $source_files) = @_;
- 	my $old_base;
- 	my $best_miss;
- 	my $best_base;
- 	my %rel_files;
- 
- 	# Determine list of relative paths
--	foreach my $filename (keys(%{$instr}), keys(%{$graph})) {
-+	foreach my $filename (@$source_files) {
- 		next if (file_name_is_absolute($filename));
- 
- 		$rel_files{$filename} = 1;
-@@ -2829,17 +3227,17 @@ sub find_base_from_graph($$$)
- }
- 
- #
--# adjust_graph_filenames(base_dir, instr, graph)
-+# adjust_source_filenames(hash, base_dir)
- #
--# Make relative paths in INSTR and GRAPH absolute and apply
--# geninfo_adjust_src_path setting to graph file data.
-+# Transform all keys of HASH to absolute form and apply requested
-+# transformations.
- #
- 
--sub adjust_graph_filenames($$$)
-+sub adjust_source_filenames($$$)
- {
--	my ($base_dir, $instr, $graph) = @_;
-+	my ($hash, $base_dir) = @_;
- 
--	foreach my $filename (keys(%{$instr})) {
-+	foreach my $filename (keys(%{$hash})) {
- 		my $old_filename = $filename;
- 
- 		# Convert to absolute canonical form
-@@ -2851,28 +3249,50 @@ sub adjust_graph_filenames($$$)
- 		}
- 
- 		if ($filename ne $old_filename) {
--			$instr->{$filename} = delete($instr->{$old_filename});
-+			$hash->{$filename} = delete($hash->{$old_filename});
- 		}
- 	}
-+}
- 
--	foreach my $filename (keys(%{$graph})) {
--		my $old_filename = $filename;
- 
--		# Make absolute
--		# Convert to absolute canonical form
--		$filename = solve_relative_path($base_dir, $filename);
-+#
-+# filter_source_files(hash)
-+#
-+# Remove unwanted source file data from HASH.
-+#
- 
--		# Apply adjustment
--		if (defined($adjust_src_pattern)) {
--			$filename =~ s/$adjust_src_pattern/$adjust_src_replace/g;
-+sub filter_source_files($)
-+{
-+	my ($hash) = @_;
-+
-+	foreach my $filename (keys(%{$hash})) {
-+		# Skip external files if requested
-+		goto del if (!$opt_external && is_external($filename));
-+
-+		# Apply include patterns
-+		if (@include_patterns) {
-+			my $keep;
-+
-+			foreach my $pattern (@include_patterns) {
-+				if ($filename =~ (/^$pattern$/)) {
-+					$keep = 1;
-+					last;
-+				}
-+			}
-+			goto del if (!$keep);
- 		}
- 
--		if ($filename ne $old_filename) {
--			$graph->{$filename} = delete($graph->{$old_filename});
-+		# Apply exclude patterns
-+		foreach my $pattern (@exclude_patterns) {
-+			goto del if ($filename =~ (/^$pattern$/));
- 		}
--	}
-+		next;
- 
--	return ($instr, $graph);
-+del:
-+		# Remove file data
-+		delete($hash->{$filename});
-+		$excluded_files{$filename} = 1;
-+	}
- }
- 
- #
-@@ -3784,6 +4204,7 @@ sub get_gcov_capabilities()
- 		'c' => 'branch-counts',
- 		'f' => 'function-summaries',
- 		'h' => 'help',
-+		'i' => 'intermediate-format',
- 		'l' => 'long-file-names',
- 		'n' => 'no-output',
- 		'o' => 'object-directory',
-diff --git a/lcovrc b/lcovrc
-index 40f364f..bd4bc3b 100644
---- a/lcovrc
-+++ b/lcovrc
-@@ -134,6 +134,9 @@ genhtml_desc_html=0
- # when collecting coverage data.
- geninfo_auto_base = 1
- 
-+# Use gcov intermediate format? Valid values are 0, 1, auto
-+geninfo_intermediate = auto
-+
- # Directory containing gcov kernel files
- # lcov_gcov_dir = /proc/gcov
- 
-diff --git a/man/lcovrc.5 b/man/lcovrc.5
-index f20d273..bf0ce7a 100644
---- a/man/lcovrc.5
-+++ b/man/lcovrc.5
-@@ -223,6 +223,11 @@ geninfo_compat_libtool = 0
- geninfo_auto_base = 1
- .br
- 
-+# Use gcov intermediate format? Valid values are 0, 1, auto
-+.br
-+geninfo_intermediate = auto
-+.br
-+
- # Directory containing gcov kernel files
- .br
- lcov_gcov_dir = /proc/gcov
-@@ -789,6 +794,25 @@ located, and in addition, is different between files of the same project.
- Default is 1.
- .PP
- 
-+.BR geninfo_intermediate " ="
-+.IR 0 | 1 | auto
-+.IP
-+Specify whether to use gcov intermediate format
-+.br
-+
-+Use this option to control whether geninfo should use the gcov intermediate
-+format while collecting coverage data. The use of the gcov intermediate format
-+should increase processing speed. It also provides branch coverage data when
-+using the \-\-initial command line option.
-+.br
-+
-+Valid values are 0 for off, 1 for on, and "auto" to let geninfo automatically
-+use immediate format when supported by gcov.
-+.br
-+
-+Default is "auto".
-+.PP
-+
- .BR lcov_gcov_dir " ="
- .I path_to_kernel_coverage_data
- .IP
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch b/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
deleted file mode 100644
index 7b18063..0000000
--- a/meta-openembedded/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
+++ /dev/null
@@ -1,247 +0,0 @@
-From e13b2b6f8443da660cafa0679c3b16240843ce9f Mon Sep 17 00:00:00 2001
-From: Peter Oberparleiter <oberpar@linux.ibm.com>
-Date: Fri, 24 May 2019 17:16:56 +0200
-Subject: [PATCH 2/2] geninfo: Add intermediate JSON format support
-
-This change adds support for parsing the output of gcov's intermediate
-JSON file format as implemented by GCC version 9.
-
-Note: The way that the intermediate file format support is implemented
-in geninfo removes the need to parse .gcno files directly. Since geninfo
-does not include support for parsing GCC 9 .gcno files, using the
-intermediate format is the only option for geninfo to collect coverage
-data generated by GCC version 9.
-
-Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
----
- bin/geninfo | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 160 insertions(+), 2 deletions(-)
-
-Upstream-Status: Backport
-Download URL: https://github.com/linux-test-project/lcov/commit/75fbae1cfc5027f818a0bb865bf6f96fab3202da
-
-diff --git a/bin/geninfo b/bin/geninfo
-index 0276666..cceb782 100755
---- a/bin/geninfo
-+++ b/bin/geninfo
-@@ -59,6 +59,9 @@ use File::Copy qw(copy);
- use Getopt::Long;
- use Digest::MD5 qw(md5_base64);
- use Cwd qw/abs_path/;
-+use PerlIO::gzip;
-+use JSON qw(decode_json);
-+
- if( $^O eq "msys" )
- {
- 	require File::Spec::Win32;
-@@ -474,7 +477,8 @@ if ($rc_intermediate eq "0") {
- 	$intermediate = 1;
- } elsif (lc($rc_intermediate) eq "auto") {
- 	# Use intermediate format if supported by gcov
--	$intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
-+	$intermediate = ($gcov_caps->{'intermediate-format'} ||
-+			 $gcov_caps->{'json-format'}) ? 1 : 0;
- } else {
- 	die("ERROR: invalid value for geninfo_intermediate: ".
- 	    "'$rc_intermediate'\n");
-@@ -2084,6 +2088,48 @@ sub read_intermediate_text($$)
- }
- 
- 
-+#
-+# read_intermediate_json(gcov_filename, data, basedir_ref)
-+#
-+# Read gcov intermediate JSON format in GCOV_FILENAME and add the resulting
-+# data to DATA in the following format:
-+#
-+# data:      source_filename -> file_data
-+# file_data: GCOV JSON data for file
-+#
-+# Also store the value for current_working_directory to BASEDIR_REF.
-+#
-+
-+sub read_intermediate_json($$$)
-+{
-+	my ($gcov_filename, $data, $basedir_ref) = @_;
-+	my $fd;
-+	my $text;
-+	my $json;
-+
-+	open($fd, "<:gzip", $gcov_filename) or
-+		die("ERROR: Could not read $gcov_filename: $!\n");
-+	local $/;
-+	$text = <$fd>;
-+	close($fd);
-+
-+	$json = decode_json($text);
-+	if (!defined($json) || !exists($json->{"files"}) ||
-+	    ref($json->{"files"} ne "ARRAY")) {
-+		die("ERROR: Unrecognized JSON output format in ".
-+		    "$gcov_filename\n");
-+	}
-+
-+	$$basedir_ref = $json->{"current_working_directory"};
-+
-+	for my $file (@{$json->{"files"}}) {
-+		my $filename = $file->{"file"};
-+
-+		$data->{$filename} = $file;
-+	}
-+}
-+
-+
- #
- # intermediate_text_to_info(fd, data, srcdata)
- #
-@@ -2173,6 +2219,104 @@ sub intermediate_text_to_info($$$)
- }
- 
- 
-+#
-+# intermediate_json_to_info(fd, data, srcdata)
-+#
-+# Write DATA in info format to file descriptor FD.
-+#
-+# data:      filename -> file_data:
-+# file_data: GCOV JSON data for file
-+#
-+# srcdata:   filename -> [ excl, brexcl, checksums ]
-+# excl:      lineno -> 1 for all lines for which to exclude all data
-+# brexcl:    lineno -> 1 for all lines for which to exclude branch data
-+# checksums: lineno -> source code checksum
-+#
-+# Note: To simplify processing, gcov data is not combined here, that is counts
-+#       that appear multiple times for the same lines/branches are not added.
-+#       This is done by lcov/genhtml when reading the data files.
-+#
-+
-+sub intermediate_json_to_info($$$)
-+{
-+	my ($fd, $data, $srcdata) = @_;
-+	my $branch_num = 0;
-+
-+	return if (!%{$data});
-+
-+	print($fd "TN:$test_name\n");
-+	for my $filename (keys(%{$data})) {
-+		my ($excl, $brexcl, $checksums);
-+		my $file_data = $data->{$filename};
-+
-+		if (defined($srcdata->{$filename})) {
-+			($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
-+		}
-+
-+		print($fd "SF:$filename\n");
-+
-+		# Function data
-+		if ($func_coverage) {
-+			for my $d (@{$file_data->{"functions"}}) {
-+				my $line = $d->{"start_line"};
-+				my $count = $d->{"execution_count"};
-+				my $name = $d->{"name"};
-+
-+				next if (!defined($line) || !defined($count) ||
-+					 !defined($name) || $excl->{$line});
-+
-+				print($fd "FN:$line,$name\n");
-+				print($fd "FNDA:$count,$name\n");
-+			}
-+		}
-+
-+		# Line data
-+		for my $d (@{$file_data->{"lines"}}) {
-+			my $line = $d->{"line_number"};
-+			my $count = $d->{"count"};
-+			my $c;
-+			my $branches = $d->{"branches"};
-+			my $unexec = $d->{"unexecuted_block"};
-+
-+			next if (!defined($line) || !defined($count) ||
-+				 $excl->{$line});
-+
-+			if (defined($unexec) && $unexec && $count == 0) {
-+				$unexec = 1;
-+			} else {
-+				$unexec = 0;
-+			}
-+
-+			if ($checksum && exists($checksums->{$line})) {
-+				$c = ",".$checksums->{$line};
-+			} else {
-+				$c = "";
-+			}
-+			print($fd "DA:$line,$count$c\n");
-+
-+			$branch_num = 0;
-+			# Branch data
-+			if ($br_coverage && !$brexcl->{$line}) {
-+				for my $b (@$branches) {
-+					my $brcount = $b->{"count"};
-+
-+					if (!defined($brcount) || $unexec) {
-+						$brcount = "-";
-+					}
-+					print($fd "BRDA:$line,0,$branch_num,".
-+					      "$brcount\n");
-+
-+					$branch_num++;
-+				}
-+			}
-+
-+		}
-+
-+		print($fd "end_of_record\n");
-+	}
-+}
-+
-+
- sub get_output_fd($$)
- {
- 	my ($outfile, $file) = @_;
-@@ -2243,6 +2387,8 @@ sub process_intermediate($$$)
- 	my $srcdata;
- 	my $is_graph = 0;
- 	my ($out, $err, $rc);
-+	my $json_basedir;
-+	my $json_format;
- 
- 	info("Processing %s\n", abs2rel($file, $dir));
- 
-@@ -2296,6 +2442,12 @@ sub process_intermediate($$$)
- 		unlink($gcov_filename);
- 	}
- 
-+	for my $gcov_filename (glob("*.gcov.json.gz")) {
-+		read_intermediate_json($gcov_filename, \%data, \$json_basedir);
-+		unlink($gcov_filename);
-+		$json_format = 1;
-+	}
-+
- 	if (!%data) {
- 		warn("WARNING: GCOV did not produce any data for $file\n");
- 		return;
-@@ -2304,6 +2456,8 @@ sub process_intermediate($$$)
- 	# Determine base directory
- 	if (defined($base_directory)) {
- 		$base = $base_directory;
-+	} elsif (defined($json_basedir)) {
-+		$base = $json_basedir;
- 	} else {
- 		$base = $fdir;
- 
-@@ -2331,7 +2485,11 @@ sub process_intermediate($$$)
- 
- 	# Generate output
- 	$fd = get_output_fd($output_filename, $file);
--	intermediate_text_to_info($fd, \%data, $srcdata);
-+	if ($json_format) {
-+		intermediate_json_to_info($fd, \%data, $srcdata);
-+	} else {
-+		intermediate_text_to_info($fd, \%data, $srcdata);
-+	}
- 	close($fd);
- 
- 	chdir($cwd);
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.16.bb
similarity index 76%
rename from meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
rename to meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.16.bb
index 47062cc..22d6881 100755
--- a/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/lcov/lcov_1.16.bb
@@ -1,5 +1,5 @@
 SUMMARY = "A graphical front-end for gcov"
-HOMEPAGE = "http://ltp.sourceforge.net/coverage/lcov.php"
+HOMEPAGE = "https://github.com/linux-test-project/lcov"
 DESCRIPTION = "LCOV is a graphical front-end for GCC's coverage testing \
 tool gcov. It collects gcov data for multiple source files and creates \
 HTML pages containing the source code annotated with coverage information. \
@@ -9,8 +9,6 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
 RDEPENDS:${PN} += " \
-    libjson-perl \
-    libperlio-gzip-perl \
     perl \
     perl-module-filehandle \
     perl-module-getopt-std \
@@ -48,18 +46,12 @@
     gcov \
     gcov-symlinks \
 "
-
-SRC_URI = " \
-           http://downloads.sourceforge.net/ltp/${BP}.tar.gz \
-           file://0001-geninfo-Add-intermediate-text-format-support.patch \
-           file://0002-geninfo-Add-intermediate-JSON-format-support.patch \
-	   "
-
-SRC_URI[md5sum] = "0220d01753469f83921f8f41ae5054c1"
-SRC_URI[sha256sum] = "14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a"
+SRC_URI = "https://github.com/linux-test-project/lcov/releases/download/v${PV}/lcov-${PV}.tar.gz"
+SRC_URI[md5sum] = "bfee0cef50d7b7bd1df03bfadf68dcef"
+SRC_URI[sha256sum] = "987031ad5528c8a746d4b52b380bc1bffe412de1f2b9c2ba5224995668e3240b"
 
 do_install() {
-    oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir}
+    oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir} LCOV_PERL_PATH="/usr/bin/env perl"
 }
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.8.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb
rename to meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.8.bb
index c83ee92..0afe8a6 100644
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.8.bb
@@ -9,7 +9,7 @@
 S = "${WORKDIR}/git"
 B = "${S}"
 
-SRCREV = "0f47dde41f92f00b12160387659501edefd05b38"
+SRCREV = "12b8e6bff611eecb0343ee8a765151e7d9d3547b"
 SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master;protocol=https"
 
 inherit gettext autotools pkgconfig python3native
diff --git a/meta-openembedded/meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch b/meta-openembedded/meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch
new file mode 100644
index 0000000..9396cc5
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch
@@ -0,0 +1,38 @@
+From 03bbb1b055c41ec652470f775b55a7cf80d664ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Apr 2023 16:46:12 -0700
+Subject: [PATCH] doctest: Do not use unnamed class
+
+When compiling with clang this results in emitting absolute path into
+debug info, especially .debug_str section has
+
+~(unnamed class at /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/git/unittests/doctest.h:6428:5)
+(unnamed class at /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/git/unittests/doctest.h:6428:5)
+
+Therefore use a name for the class instead and help get rid of this
+absolute path in debug info. This fixes
+
+File /usr/lib/libcereal/ptest/tests/.debug/test_unordered_map in package libcereal-dbg contains reference to TMPDIR
+
+Upstream-Status: Submitted [https://github.com/USCiLab/cereal/pull/788]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ unittests/doctest.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unittests/doctest.h b/unittests/doctest.h
+index cd5b44d6..e6d8f7f9 100644
+--- a/unittests/doctest.h
++++ b/unittests/doctest.h
+@@ -6424,7 +6424,7 @@ void Context::setCout(std::ostream* out) { p->cout = out; }
+ static class DiscardOStream : public std::ostream
+ {
+ private:
+-    class : public std::streambuf
++    class discardBufStream: public std::streambuf
+     {
+     private:
+         // allowing some buffering decreases the amount of calls to overflow
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
index f159275..c5f26ec 100644
--- a/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
@@ -21,6 +21,7 @@
 SRC_URI = "git://github.com/USCiLab/cereal.git;branch=master;protocol=https \
            file://0001-sandbox-Do-not-use-int8_t-in-std-uniform_int_distrib.patch \
            file://0001-cmake-Use-idirafter-instead-of-isystem.patch \
+           file://0001-doctest-Do-not-use-unnamed-class.patch \
            file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-1.6.4/run-ptest b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-1.6.4/run-ptest
rename to meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-2.0/run-ptest b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-2.0/run-ptest
rename to meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-src.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-src.inc
deleted file mode 100644
index 6bab4c1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod-src.inc
+++ /dev/null
@@ -1 +0,0 @@
-SRC_URI += "https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
index abb6544..0329caa 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -1,11 +1,12 @@
 SUMMARY = "C library and tools for interacting with the linux GPIO character device"
 AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
 
-require libgpiod-src.inc
-
 inherit autotools pkgconfig ptest
 
-SRC_URI += "file://run-ptest"
+SRC_URI += " \
+    https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz \
+    file://run-ptest \
+"
 
 PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
 
@@ -29,17 +30,18 @@
     ${bindir}/gpioset \
     ${bindir}/gpiomon \
 "
-FILES:${PN}-ptest += " \
-    ${bindir}/gpiod-test \
-    ${bindir}/gpio-tools-test \
-    ${bindir}/gpio-tools-test.bats \
-    ${bindir}/gpiod-cxx-test \
-"
 FILES:libgpiodcxx = "${libdir}/libgpiodcxx.so.*"
 
 RRECOMMENDS:${PN}-ptest += "coreutils"
 RDEPENDS:${PN}-ptest += "bats"
 
+do_install:append() {
+    rm -f ${D}${bindir}/gpiod-test
+    rm -f ${D}${bindir}/gpio-tools-test
+    rm -f ${D}${bindir}/gpio-tools-test.bats
+    rm -f ${D}${bindir}/gpiod-cxx-test
+}
+
 do_install_ptest() {
     install -d ${D}${PTEST_PATH}/tests/
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb
index df0e3f1..b28aa8e 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb
@@ -5,6 +5,8 @@
 
 SRC_URI[sha256sum] = "7b146e12f28fbca3df7557f176eb778c5ccf952ca464698dba8a61b2e1e3f9b5"
 
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-1.x:"
+
 inherit python3native
 
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev glib-2.0 catch2"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
new file mode 100644
index 0000000..337554c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
@@ -0,0 +1,27 @@
+require libgpiod.inc
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
+LIC_FILES_CHKSUM = " \
+    file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+    file://LICENSES/LGPL-2.1-or-later.txt;md5=4b54a1fd55a448865a0b32d41598759d \
+    file://LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f \
+"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-2.x:"
+
+SRC_URI[sha256sum] = "b5367d28d045b36007a4ffd42cceda4c358737ef4f2ce22b0c1d05ec57a38392"
+
+# Enable all project features for ptest
+PACKAGECONFIG[tests] = "--enable-tests --enable-tools --enable-bindings-cxx --enable-gpioset-interactive,--disable-tests,kmod util-linux glib-2.0 catch2 libedit"
+PACKAGECONFIG[gpioset-interactive] = "--enable-gpioset-interactive,--disable-gpioset-interactive,libedit"
+
+PACKAGES =+ "${PN}-ptest-dev"
+FILES:${PN}-tools += "${bindir}/gpionotify"
+FILES:${PN}-ptest += "${libdir}/libgpiosim.so.*"
+FILES:${PN}-ptest-dev += "${includedir}/gpiosim.h"
+
+RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim"
+
+do_install_ptest:append() {
+    install -m 0644 ${S}/tests/gpiosim/gpiosim.h ${D}${includedir}/gpiosim.h
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.0.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.0.bb
deleted file mode 100644
index becc9ad..0000000
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_2.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require libgpiod.inc
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
-LIC_FILES_CHKSUM = " \
-    file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-    file://LICENSES/LGPL-2.1-or-later.txt;md5=4b54a1fd55a448865a0b32d41598759d \
-    file://LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f \
-"
-
-SRC_URI[sha256sum] = "f74cbf82038b3cb98ebeb25bce55ee2553be28194002d2a9889b9268cce2dd07"
-
-S = "${WORKDIR}/libgpiod-2.0"
-
-# We must enable gpioset-interactive for all gpio-tools tests to pass
-PACKAGECONFIG[tests] = "--enable-tests --enable-gpioset-interactive,--disable-tests,kmod util-linux glib-2.0 catch2 libedit"
-PACKAGECONFIG[gpioset-interactive] = "--enable-gpioset-interactive,--disable-gpioset-interactive,libedit"
-
-FILES:${PN}-tools += "${bindir}/gpionotify"
-FILES:${PN}-ptest += "${libdir}/libgpiosim.so.*"
-
-RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim"
diff --git a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
index c208a20..491b6a7 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
@@ -6,9 +6,13 @@
 
 inherit meson gobject-introspection gtk-doc gettext vala
 
-PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)}"
+PACKAGECONFIG:class-target ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)}"
 PACKAGECONFIG[vapi] = "-Dvapi=true,-Dvapi=false"
 
+EXTRA_OEMESON:append:class-native = " -Dtests=false -Dintrospection=false"
+
 SRC_URI = "git://github.com/hughsie/libgusb.git;branch=main;protocol=https"
 SRCREV = "332d5b987ffecb824426e88518e05547faf2b520"
 S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb
index 2db16e1..53882b2 100644
--- a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e16cf0e247d84f8999bf55865a9c98cf"
 
-SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=http;branch=master;protocol=https"
+SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=https;branch=master"
 
 SRCREV = "0ba77141dd215782cc7770347a457906908c66ff"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch b/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
index 37c5c3d..2529d5d 100644
--- a/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
+++ b/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
@@ -8,7 +8,7 @@
 
 Stolen from [1]
 
-[1] https://aur.archlinux.org/cgit/aur.git/commit/dynamiclib.patch?h=snowball-git&id=a9cbf4f42f3661e4b8f791cd4374233821716ea1
+[1] https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/snowball/trunk/dynamiclib.diff
 
 Upstream-Status: Pending
 
@@ -19,36 +19,33 @@
  2 files changed, 11 insertions(+), 2 deletions(-)
  create mode 100644 libstemmer/symbol.map
 
-diff --git a/GNUmakefile b/GNUmakefile
-index cbd6ff7..a85230b 100644
 --- a/GNUmakefile
 +++ b/GNUmakefile
-@@ -162,10 +162,10 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.o)
+@@ -170,12 +170,12 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.
  JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
  JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
  
 -CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
 +CFLAGS=-O2 -fPIC -W -Wall -Wmissing-prototypes -Wmissing-declarations
- CPPFLAGS=-Iinclude
+ CPPFLAGS=
  
--all: snowball libstemmer.o stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
-+all: snowball libstemmer.o libstemmer.so stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
+ INCLUDES=-Iinclude
  
- clean:
- 	rm -f $(COMPILER_OBJECTS) $(RUNTIME_OBJECTS) \
-@@ -212,6 +212,9 @@ libstemmer/libstemmer.o: libstemmer/modules.h $(C_LIB_HEADERS)
- libstemmer.o: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
+-all: snowball$(EXEEXT) libstemmer.a stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
++all: snowball$(EXEEXT) libstemmer.a libstemmer.so stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
+ 
+ algorithms.mk: libstemmer/mkalgorithms.pl libstemmer/modules.txt
+ 	libstemmer/mkalgorithms.pl algorithms.mk libstemmer/modules.txt
+@@ -225,6 +225,9 @@ libstemmer/libstemmer.o: libstemmer/modu
+ libstemmer.a: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
  	$(AR) -cru $@ $^
  
 +libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
 +	$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^
 +
- stemwords: $(STEMWORDS_OBJECTS) libstemmer.o
- 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
+ examples/%.o: examples/%.c
+ 	$(CC) $(CFLAGS) $(INCLUDES) $(CPPFLAGS) -c -o $@ $<
  
-diff --git a/libstemmer/symbol.map b/libstemmer/symbol.map
-new file mode 100644
-index 0000000..7a3d423
 --- /dev/null
 +++ b/libstemmer/symbol.map
 @@ -0,0 +1,6 @@
@@ -58,6 +55,3 @@
 +    local:
 +        *;
 +};
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer_git.bb b/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
similarity index 72%
rename from meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer_git.bb
rename to meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
index 7f0706e..be2935a 100644
--- a/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
@@ -3,21 +3,18 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=19139aaf3c8c8fa1ca6edd59c072fb9f"
 
-DEPENDS:class-target = "${BPN}-native"
+DEPENDS:append:class-target = " ${BPN}-native"
 
-SRC_URI = "\
-    git://github.com/snowballstem/snowball.git;branch=master;protocol=https \
-    file://0001-Build-so-lib.patch \
-"
-SRCREV = "4764395431c8f2a0b4fe18b816ab1fc966a45837"
+SRC_URI = "git://github.com/snowballstem/snowball.git;branch=master;protocol=https \
+           file://0001-Build-so-lib.patch \
+           "
+SRCREV = "48a67a2831005f49c48ec29a5837640e23e54e6b"
 S = "${WORKDIR}/git"
-PV = "2.1.0"
+
 LIBVER = "0.0.0"
 
 inherit lib_package
 
-BBCLASSEXTEND = "native"
-
 do_compile:prepend:class-target() {
     # use native tools
     sed -i 's:./snowball :snowball :g' ${S}/GNUmakefile
@@ -34,5 +31,7 @@
     ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so
 
     install -d ${D}${includedir}
-	install -m 644 ${S}/include/*.h ${D}${includedir}
+    install -m 644 ${S}/include/*.h ${D}${includedir}
 }
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/files/run-ptest b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/files/run-ptest
new file mode 100644
index 0000000..8709126
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/files/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+for i in `ls xmltest`; do
+    ./$i
+    if [ $? -eq 0 ]; then
+        echo "PASS: $i"
+    else
+        echo "FAIL: $i"
+    fi
+done
diff --git a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
index 7f20598..7ef4d89 100644
--- a/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
@@ -4,14 +4,22 @@
 LICENSE = "Zlib"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=135624eef03e1f1101b9ba9ac9b5fffd"
 
-SRC_URI = "git://github.com/leethomason/tinyxml2.git;branch=master;protocol=https"
-
 SRCREV = "1dee28e51f9175a31955b9791c74c430fe13dc82"
+SRC_URI = "git://github.com/leethomason/tinyxml2.git;branch=master;protocol=https \
+           file://run-ptest"
 
 S = "${WORKDIR}/git"
 
-inherit cmake
+inherit meson ptest
+
+EXTRA_OEMESON += "${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true', '', d)}"
+
+CXXFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+
+do_install_ptest() {
+    install -Dm 0755 ${B}/xmltest ${D}${PTEST_PATH}/xmltest
+    install -d ${D}${PTEST_PATH}/resources/out
+    install -Dm 0644 ${B}/resources/*.xml ${D}${PTEST_PATH}/resources/
+}
 
 BBCLASSEXTEND = "native"
-
-EXTRA_OECMAKE += "-Dtinyxml2_SHARED_LIBS=YES"
diff --git a/meta-openembedded/meta-oe/recipes-support/links/links_2.28.bb b/meta-openembedded/meta-oe/recipes-support/links/links_2.29.bb
similarity index 78%
rename from meta-openembedded/meta-oe/recipes-support/links/links_2.28.bb
rename to meta-openembedded/meta-oe/recipes-support/links/links_2.29.bb
index a36393f..e3a15d1 100644
--- a/meta-openembedded/meta-oe/recipes-support/links/links_2.28.bb
+++ b/meta-openembedded/meta-oe/recipes-support/links/links_2.29.bb
@@ -8,4 +8,4 @@
                 --without-libtiff --without-svgalib --with-fb \
                 --without-directfb --without-pmshell --without-atheos \
                 --without-x"
-SRC_URI[sha256sum] = "2fd5499b13dee59457c132c167b8495c40deda75389489c6cccb683193f454b4"
+SRC_URI[sha256sum] = "22aa96c0b38e1a6f8f7ed9d7a4167a47fc37246097759ef6059ecf8f9ead7998"
diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
index ba7a2c7..320240f 100644
--- a/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mcelog/run-ptest
@@ -1,3 +1,9 @@
 #!/bin/sh
 
-make -C tests test
+make -C tests test | sed -e '/\[PASS\]/ s/^/PASS: /g' \
+                         -e '/\[FAIL\]/ s/^/FAIL: /g' \
+                         -e '/\[IGNORE\]/ s/^/SKIP: /g' \
+                         -e 's/IGNORE:/SKIP:/' \
+                         -e 's/: \[PASS\]//' \
+                         -e 's/: \[FAIL\]//' \
+                         -e 's/: \[IGNORE\]//'
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg_20221112.bb b/meta-openembedded/meta-oe/recipes-support/mg/mg_20230406.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/mg/mg_20221112.bb
rename to meta-openembedded/meta-oe/recipes-support/mg/mg_20230406.bb
index 2d0afe8..8d61b7f 100644
--- a/meta-openembedded/meta-oe/recipes-support/mg/mg_20221112.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg_20230406.bb
@@ -1,11 +1,11 @@
 SUMMARY = "A portable version of the mg maintained by the OpenBSD team"
 HOMEPAGE = "http://homepage.boetes.org/software/mg/"
 LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://version.c;md5=43616508f42ab3fdb082c5f932bd2eb4"
+LIC_FILES_CHKSUM = "file://version.c;md5=36d8ace99e6cd003132975a9266d3f77"
 DEPENDS = "ncurses libbsd"
 SECTION = "console/editors"
 
-SRCREV = "5dbacce10b4cc5fe0785840c09398fc5b19fb96a"
+SRCREV = "4e6d2de9582cfe7f0977be4ce9532e3d33c5be15"
 SRC_URI = "git://github.com/hboetes/mg;branch=master;protocol=https \
            file://0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch \
            file://0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch
new file mode 100644
index 0000000..d905bf1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch
@@ -0,0 +1,64 @@
+From 1109c1b8259ad840ac1688d533f76ca268c67b6b Mon Sep 17 00:00:00 2001
+From: "John M. Schanck" <jschanck@mozilla.com>
+Date: Sat, 5 Feb 2022 11:12:43 +0000
+Subject: [PATCH] Bug 1750624 - Pin validation date for PayPalEE test cert.
+ r=nss-reviewers,bbeurdouche,rrelyea
+
+Differential Revision: https://phabricator.services.mozilla.com/D136289
+
+--HG--
+extra : moz-landing-system : lando
+
+Upstream-Status: Backport
+
+---
+ tests/chains/chains.sh               | 6 +++++-
+ tests/chains/scenarios/realcerts.cfg | 1 +
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tests/chains/chains.sh b/tests/chains/chains.sh
+index 32c7ef54c..e13ae52f9 100755
+--- a/nss/tests/chains/chains.sh
++++ b/nss/tests/chains/chains.sh
+@@ -917,7 +917,7 @@ verify_cert()
+     done
+ 
+     VFY_OPTS_TNAME="${DB_OPT} ${ENGINE} ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${TRUST_OPT}"
+-    VFY_OPTS_ALL="${DB_OPT} ${ENGINE} -vv ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${VFY_CERTS} ${TRUST_OPT}"
++    VFY_OPTS_ALL="${DB_OPT} ${ENGINE} -vv ${VFY_TIME_OPT} ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${VFY_CERTS} ${TRUST_OPT}"
+ 
+     TESTNAME="Verifying certificate(s) ${VFY_LIST} with flags ${VFY_OPTS_TNAME}"
+     echo "${SCRIPTNAME}: ${TESTNAME}"
+@@ -1118,6 +1118,7 @@ parse_config()
+             ;;
+         "verify")
+             VERIFY="${VALUE}"
++            VFY_TIME_OPT=
+             TRUST=
+             TRUST_AND_DB=
+             POLICY=
+@@ -1126,6 +1127,9 @@ parse_config()
+             REV_OPTS=
+             USAGE_OPT=
+             ;;
++        "at_time")
++            VFY_TIME_OPT="-b ${VALUE}"
++            ;;
+         "cert")
+             VERIFY="${VERIFY} ${VALUE}"
+             ;;
+diff --git a/tests/chains/scenarios/realcerts.cfg b/tests/chains/scenarios/realcerts.cfg
+index 305443fc3..f8b0fc452 100644
+--- a/nss/tests/chains/scenarios/realcerts.cfg
++++ b/nss/tests/chains/scenarios/realcerts.cfg
+@@ -22,6 +22,7 @@ verify TestUser51:x
+ 
+ verify PayPalEE:x
+   policy OID.2.16.840.1.114412.2.1 
++  at_time 2201010000Z
+   result pass
+ 
+ verify BrAirWaysBadSig:x
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb
index 4a9482f..a7048f0 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb
@@ -32,6 +32,7 @@
            file://system-pkcs11.txt \
            file://nss-fix-nsinstall-build.patch \
            file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
+           file://0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch \
            "
 SRC_URI[sha256sum] = "88928811f9f40f87d42e2eaccdf6e454562e51486067f2ddbe90aa47ea6cd056"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest b/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest
index 2574d7e..fbce336 100755
--- a/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/onig/onig/run-ptest
@@ -17,7 +17,7 @@
 status="${workdir}/failed"
 touch "${status}"
 
-find tests/ -perm -111 -type f -exec sh -c '
+find tests/ -perm -111 -type f ! -path "tests/.debug/*" -exec sh -c '
     workdir="${1}"
     status="${2}"
     t="${3}"
diff --git a/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb b/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb
index 26faade..b71fb04 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb
@@ -13,4 +13,12 @@
 
 DEPENDS = "pcsc-lite"
 
+RDEPENDS:${PN} += " \
+	${@bb.utils.contains('DISTRO_FEATURES','systemd','pcsc-lite-systemd', 'pcsc-lite', d)} \
+	perl \
+	perl-module-getopt-std \
+	perl-module-file-stat \
+	libpcsc-perl \
+"
+
 FILES:${PN} += "${datadir}/pcsc/smartcard_list.txt"
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
index c479f7a..c9896ea 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
@@ -1,9 +1,8 @@
 #!/bin/sh
 while read runner; do
-  pushd . >/dev/null
+  oldpath=`pwd` >/dev/null
   cd bin
   echo Testing $runner
   ./$runner-testrunner -all
-  popd >/dev/null
+  cd $oldpath >/dev/null
 done < testrunners
-
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch
index 44a2296..b4e3fb0 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch
@@ -1,4 +1,4 @@
-From 51a2a1e4d8ca4040a6a7eac398cb704da35f39e5 Mon Sep 17 00:00:00 2001
+From 04686340c4cd375a17d60d31bf6943367cc33214 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 21 Jan 2023 03:09:08 -0800
 Subject: [PATCH] cmake: Do not use -isystem
@@ -28,6 +28,7 @@
 issue is addressed
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  CMakeLists.txt         |  4 ++--
  glib/CMakeLists.txt    |  4 ++--
@@ -38,7 +39,7 @@
  6 files changed, 16 insertions(+), 16 deletions(-)
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4768ac8..cdc014d 100644
+index c6c757c..5f1c540 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
 @@ -603,10 +603,10 @@ add_library(poppler ${poppler_SRCS})
@@ -53,7 +54,7 @@
 +  target_include_directories(poppler  PRIVATE ${LCMS2_INCLUDE_DIR})
  endif()
  generate_export_header(poppler BASE_NAME poppler-private EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/poppler_private_export.h")
- set_target_properties(poppler PROPERTIES VERSION 126.0.0 SOVERSION 126)
+ set_target_properties(poppler PROPERTIES VERSION 127.0.0 SOVERSION 127)
 diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt
 index 52e8687..08ab39a 100644
 --- a/glib/CMakeLists.txt
@@ -187,6 +188,3 @@
  endif()
  install(TARGETS pdftops DESTINATION bin)
  install(FILES pdftops.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
--- 
-2.39.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.03.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.03.0.bb
rename to meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
index 165e155..19bdce4 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.03.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
@@ -8,7 +8,7 @@
            file://basename-include.patch \
            file://0001-cmake-Do-not-use-isystem.patch \
            "
-SRC_URI[sha256sum] = "b04148bf849c1965ada7eff6be4685130e3a18a84e0cce73bf9bc472ec32f2b4"
+SRC_URI[sha256sum] = "b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1"
 
 DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb b/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
index 20e77c6..4c34368 100644
--- a/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
@@ -10,9 +10,9 @@
 S = "${WORKDIR}/git"
 
 do_compile() {
-    ${CC} ${CFLAGS} ${LDFLAGS} reboot-mode.c -o reboot-mode
+    ${CC} ${CFLAGS} ${LDFLAGS} ${S}/reboot-mode.c -o ${B}/reboot-mode
 }
 
 do_install() {
-    install -D -m 0755 ${S}/reboot-mode ${D}${bindir}/reboot-mode
+    install -D -m 0755 ${B}/reboot-mode ${D}${bindir}/reboot-mode
 }
diff --git a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.29.bb b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.30.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.29.bb
rename to meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.30.bb
index a92a3b2..c22eaf1 100644
--- a/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.29.bb
+++ b/meta-openembedded/meta-oe/recipes-support/remmina/remmina_1.4.30.bb
@@ -25,7 +25,7 @@
 DEPENDS:append:libc-musl = " libexecinfo"
 LDFLAGS:append:libc-musl = " -lexecinfo"
 
-SRCREV = "fb19eb5f11f206ffb442a9e0c519cb0f2cb3fd8b"
+SRCREV = "61ea9b6681104cadf0a3f8c25bd3e5685ee6691a"
 SRC_URI = "git://gitlab.com/Remmina/Remmina;protocol=https;branch=master"
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb b/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb
index 0d9a8c9..15380f5 100644
--- a/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb
@@ -9,4 +9,3 @@
 S = "${WORKDIR}/git"
 
 inherit cmake
-inherit ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
index 4521593..650c7bd 100644
--- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
@@ -85,6 +85,10 @@
     # Remove /var/run as it is created on startup
     rm -rf ${D}${localstatedir}/run
 
+    # it causes install conflict when multilib enabled
+    # since python support is disabled, not deliver it
+    rm -f ${D}${bindir}/syslog-ng-update-virtualenv
+
     # support for systemd
     if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
         install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.8.0.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.9.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.8.0.bb
rename to meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.9.0.bb
index 5606d38..028291c 100644
--- a/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb_2021.9.0.bb
@@ -12,7 +12,7 @@
 PE = "1"
 
 BRANCH = "onetbb_2021"
-SRCREV = "c9497714821c3d443ee44c732609eb6850195ffb"
+SRCREV = "a00cc3b8b5fb4d8115e9de56bf713157073ed68c"
 SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
             file://0001-CMakeLists.txt-exclude-riscv64-riscv32.patch \
 "
diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
index 3de5557..2030063 100644
--- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
@@ -35,6 +35,12 @@
     touch ${S}/build-aux/config.rpath
 }
 
+PACKAGECONFIG ?= ""
+
+PACKAGECONFIG[lvm2] = "--enable-lvm2,--disable-lvm2,lvm2"
+PACKAGECONFIG[btrfs] = "--enable-btrfs,--disable-btrfs,,btrfs-tools"
+PACKAGECONFIG[lsm] = "--enable-lsm,--disable-lsm,libstoragemgmt"
+
 FILES:${PN} += " \
     ${datadir}/dbus-1/ \
     ${datadir}/polkit-1 \
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.4.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.4.bb
rename to meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
index 91f5ae0..ed3e429 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
@@ -15,7 +15,7 @@
     file://Makefile.utils \
 "
 
-SRC_URI[sha256sum] = "58951f7d1bcda836c5e50ca0a6b13f0e61a07a904f476526a831df3d9bfe5b17"
+SRC_URI[sha256sum] = "c305fbe480f507eac7c36893ead66dffaacda944f19c3813a4533e9c39bae237"
 
 S ?= "${WORKDIR}/vbox_module"
 S:task-patch = "${WORKDIR}/${VBOX_NAME}"
diff --git a/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc b/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
new file mode 100644
index 0000000..1a8c759
--- /dev/null
+++ b/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
@@ -0,0 +1,50 @@
+#
+# Lists of the ptest in meta-perl, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-perl recipes which inherit ptest
+# meta_perl_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-perl --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
+#
+# ptests which take less than ~30s each
+PTESTS_FAST_META_PERL = "\
+    libcapture-tiny-perl \
+    libcgi-perl \
+    libcrypt-openssl-random-perl \
+    libextutils-config-perl \
+    libhtml-tagset-perl \
+    libmozilla-ca-perl \
+    libstrictures-perl \
+    libterm-readkey-perl \
+    libtest-nowarnings-perl \
+"
+
+PTESTS_SLOW_META_PERL = "\
+    libio-socket-ssl-perl \
+"
+
+PTESTS_PROBLEMS_META_PERL ="\
+    libauthen-sasl-perl \
+    libconfig-autoconf-perl \
+    libcrypt-openssl-guess-perl \
+    libcrypt-openssl-rsa-perl \
+    libdata-hexdump-perl \
+    libdbd-sqlite-perl \
+    libdigest-hmac-perl \
+    libdigest-sha1-perl \
+    libnet-dns-perl \
+    libnet-dns-sec-perl \
+    libnet-ldap-perl \
+    libencode-perl \
+    libextutils-installpaths-perl \
+    libfile-slurper-perl \
+    libhtml-parser-perl \
+    libmime-types-perl \
+    libnet-ssleay-perl \
+    libsub-uplevel-perl \
+    libtest-deep-perl \
+    libtest-harness-perl \
+    libtest-warn-perl \
+    libunicode-linebreak-perl \
+    libunix-statgrab \
+    libxml-libxml-perl \
+"
diff --git a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-base.bb b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-base.bb
similarity index 100%
rename from meta-openembedded/meta-perl/recipes-perl/images/meta-perl-base.bb
rename to meta-openembedded/meta-perl/recipes-core/images/meta-perl-base.bb
diff --git a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-image.bb b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-image.bb
similarity index 100%
rename from meta-openembedded/meta-perl/recipes-perl/images/meta-perl-image.bb
rename to meta-openembedded/meta-perl/recipes-core/images/meta-perl-image.bb
diff --git a/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-all-image.bb b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-all-image.bb
new file mode 100644
index 0000000..236043c
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-all-image.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-perl ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-perl.inc
+
+# Include the full set of ptests
+PTESTS_META_PERL = "${PTESTS_FAST_META_PERL} ${PTESTS_SLOW_META_PERL}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-perl-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-perl-ptest-image-'+x+':do_build' for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+    if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+        bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-fast-image.bb b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-fast-image.bb
new file mode 100644
index 0000000..5d8afa0
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-fast-image.bb
@@ -0,0 +1,6 @@
+require meta-perl-ptest-all-image.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-perl ptest images."
+
+PTESTS_META_PERL = "${PTESTS_FAST_META_PERL}"
+
diff --git a/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-image.bb b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-image.bb
new file mode 100644
index 0000000..7cca640
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-core/images/meta-perl-ptest-image.bb
@@ -0,0 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES += "ptest"
+
+require  meta-perl-base.bb
+
+SUMMARY = "meta-perl build ptest image"
+
+require conf/include/ptest-packagelists-meta-perl.inc
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_PERL = "${PTESTS_SLOW_META_PERL} ${PTESTS_FAST_META_PERL}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memory, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+    if not d.getVar("MCNAME"):
+        raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb b/meta-openembedded/meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb
similarity index 100%
rename from meta-openembedded/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
rename to meta-openembedded/meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb
diff --git a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb b/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
deleted file mode 100644
index a9b4cc3..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require  meta-perl-base.bb
-
-SUMMARY = "meta-perl build ptest image"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES += "ptest"
-
-IMAGE_INSTALL += "packagegroup-meta-perl-ptest"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb b/meta-openembedded/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.29.bb
similarity index 86%
rename from meta-openembedded/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb
rename to meta-openembedded/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.29.bb
index ff28c76..92d9bac 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.29.bb
@@ -15,6 +15,6 @@
 
 SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RS/RSAVAGE/Config-Tiny-${PV}.tgz"
 
-SRC_URI[sha256sum] = "12df843a0d29d48f61bcc14c4f18f0858fd27a8dd829a00319529d654fe01500"
+SRC_URI[sha256sum] = "3de79b0ea03a8d6a93e9d9128fe845fb556222b14699a4f6f0d5ca057ae3333b"
 
 inherit cpan
diff --git a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.043.bb
similarity index 89%
rename from meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb
rename to meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.043.bb
index ff3f4d6..dd60d01 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.043.bb
@@ -10,13 +10,12 @@
 HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/"
 
 LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=57b8100f0b648cd37fbc3725fe3c111a"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6374136f6774db2f51cc116f5efbf705"
 
 DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native"
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz"
-SRC_URI[md5sum] = "2332c90c17454107fea3f2614e11a3a9"
-SRC_URI[sha256sum] = "7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c"
+SRC_URI[sha256sum] = "68f4e4620e8a75124ce2dadee48d2ba5160b9167012924588d6fb242ff2d7206"
 
 S = "${WORKDIR}/Module-Build-Tiny-${PV}"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
index 6efa7d8..9620df5 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
+++ b/meta-openembedded/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
@@ -1,3 +1,7 @@
+Avoid running target binaries during in cross build
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 --- a/inc/Module/Install/PRIVATE/Net/SSLeay.pm	2018-08-27 14:56:24.788544991 +0200
 +++ b/inc/Module/Install/PRIVATE/Net/SSLeay.pm	2018-08-27 15:00:12.847266331 +0200
 @@ -24,20 +24,7 @@
diff --git a/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc b/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
new file mode 100644
index 0000000..ef5d20b
--- /dev/null
+++ b/meta-openembedded/meta-python/conf/include/ptest-packagelists-meta-python.inc
@@ -0,0 +1,82 @@
+#
+# Lists of the ptest in meta-python, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-python recipes which inherit ptest
+# meta_python_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-python --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
+#
+# ptests which take less than ~30s each
+PTESTS_FAST_META_PYTHON = "\
+    python3-ansicolors \
+    python3-asgiref \
+    python3-aspectlib \
+    python3-blinker \
+    python3-cachetools \
+    python3-cbor2 \
+    python3-click \
+    python3-dominate \
+    python3-execnet \
+    python3-geojson \
+    python3-html2text \
+    python3-inflection \
+    python3-intervals \
+    python3-ipy \
+    python3-iso3166 \
+    python3-parse-type \
+    python3-polyline \
+    python3-precise-runner \
+    python3-prettytable \
+    python3-ptyprocess \
+    python3-pyasn1-modules \
+    python3-pyroute2 \
+    python3-pyserial \
+    python3-pytoml \
+    python3-requests-file \
+    python3-requests-toolbelt \
+    python3-semver \
+    python3-serpent \
+    python3-simpleeval \
+    python3-smpplib \
+    python3-soupsieve \
+    python3-sqlparse \
+    python3-u-msgpack-python \
+    python3-unidiff \
+    python3-uritemplate \
+    python3-xmltodict \
+    python3-xxhash \
+"
+
+PTESTS_SLOW_META_PYTHON = "\
+    python3-lz4 \
+"
+
+PTESTS_PROBLEMS_META_PYTHON ="\
+    python3-appdirs \
+    python3-betamax \
+    python3-dnspython \
+    python3-fastjsonschema \
+    python3-gpiod \
+    python3-gunicorn \
+    python3-inotify \
+    python3-jdcal \
+    python3-jsmin \
+    python3-license-expression \
+    python3-msgpack \
+    python3-multidict \
+    python3-ordered-set \
+    python3-parse \
+    python3-pillow \
+    python3-pint \
+    python3-py-cpuinfo \
+    python3-pytest-lazy-fixture \
+    python3-pyzmq \
+    python3-scrypt \
+    python3-service-identity \
+    python3-trustme \
+    python3-typeguard \
+    python3-whoosh \
+    python3-ujson \
+    python3-xlrd \
+    python3-yappi \
+    python3-yarl \
+"
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-all-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-all-image.bb
new file mode 100644
index 0000000..fd4dc42
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-all-image.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-python ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-python.inc
+
+# Include the full set of ptests
+PTESTS_META_PYTHON = "${PTESTS_FAST_META_PYTHON} ${PTESTS_SLOW_META_PYTHON}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-python-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-python-ptest-image-'+x+':do_build' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+    if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+        bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-fast-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-fast-image.bb
new file mode 100644
index 0000000..4f93a15
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-fast-image.bb
@@ -0,0 +1,6 @@
+require meta-python-ptest-all-image.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-python ptest images."
+
+PTESTS_META_PYTHON = "${PTESTS_FAST_META_PYTHON}"
+
diff --git a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
index d497016..a649cbb 100644
--- a/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
+++ b/meta-openembedded/meta-python/recipes-core/images/meta-python-ptest-image.bb
@@ -1,5 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-python.inc
+
 require  meta-python-image-base.bb
 
 SUMMARY = "meta-python ptest test image"
 
-IMAGE_INSTALL += "packagegroup-meta-python3-ptest"
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_PYTHON = "${PTESTS_SLOW_META_PYTHON} ${PTESTS_FAST_META_PYTHON}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memory, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+    if not d.getVar("MCNAME"):
+        raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.12.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.12.bb
index b2fba6f..e3c4382 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.12.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
 
-SRC_URI[sha256sum] = "aed2c273547ae72a0d5ee869719c02a643da16bf507c80958faadc7e038e3f73"
+SRC_URI[sha256sum] = "3e531c91860a81f885f7e6e97d219ae9772cb899580084788935dad7d9742ef0"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.3.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.3.bb
index 3b3c9a5..6bdc9cf 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.3.bb
@@ -4,7 +4,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "457eafbdc0769d855c2c92cbafe6b7f319f916c80cf4ed02b8f394f38b51b89d"
+SRC_URI[sha256sum] = "32a69b13a613aeb7e8093f242da60eff9daed13c0df02fff279c1b06c32965d2"
 
 PYPI_PACKAGE = "alembic"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
index 977999b..95d1ac0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
@@ -19,3 +19,5 @@
 	install -d ${D}${PTEST_PATH}/test
 	cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
 }
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.0.5.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.0.5.bb
index 3ec271b..1e884f4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.0.5.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[sha256sum] = "69db74ba0c72897452f2666267bd76c9cd10829686e99889e6758fac99b23286"
+SRC_URI[sha256sum] = "fe3ce77125f434a0dd1bffe5f4643e64126d5731ce8d173d36f62fa43d6eb6f7"
 
 PYPI_PACKAGE = "argcomplete"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
index b63c4de..8d2017d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
@@ -1,3 +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}}'
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb
index 416b031..d2b0864 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb
@@ -21,8 +21,10 @@
 }
 
 RDEPENDS:${PN}-ptest += "\
-    python3-tornado \
     python3-process-tests \
+    python3-pytest \
+    python3-tornado \
+    python3-unittest-automake-output \
 "
 
 RDEPENDS:${PN} += "python3-core python3-fields"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.3.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.3.bb
index a5f30b7..bcde069 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.3.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
 
-SRC_URI[sha256sum] = "525f126d5dc1b8b0b6ee398b33159105615d92dc4a17f2cd064125d57f6186fa"
+SRC_URI[sha256sum] = "44224ad27c54d770233751315fa7f74c46fa3ee0fab7beef1065f99f09897efe"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.26.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.26.0.bb
index cf27f7f..4c5c781 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cassandra-driver_3.26.0.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
 SRCNAME = "cassandra-driver"
 
-SRC_URI[sha256sum] = "8ad7d7c090eb1cac6110b3bfc1fd2d334ac62f415aac09350ebb8d241b7aa7ee"
+SRC_URI[sha256sum] = "425338478c14324704f6973451f3c54f7ffa65b49be045ad1de19628ab6e9492"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click/0001-tests-Fix-test_bytes_args.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-click/0001-tests-Fix-test_bytes_args.patch
new file mode 100644
index 0000000..e69a37c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click/0001-tests-Fix-test_bytes_args.patch
@@ -0,0 +1,41 @@
+From da83bd7ca0959027086115f23534957b0917aaa5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 27 Apr 2023 22:21:24 -0700
+Subject: [PATCH] tests: Fix test_bytes_args
+
+sys.stdin.encoding is readonly therefore use Mocking to wrap it.
+Sourced from - Alpine
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/test_arguments.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_arguments.py b/tests/test_arguments.py
+index 735df4b..3395c55 100644
+--- a/tests/test_arguments.py
++++ b/tests/test_arguments.py
+@@ -1,4 +1,5 @@
+ import sys
++from unittest import mock
+ 
+ import pytest
+ 
+@@ -86,9 +87,12 @@ def test_bytes_args(runner, monkeypatch):
+         ), "UTF-8 encoded argument should be implicitly converted to Unicode"
+ 
+     # Simulate empty locale environment variables
+-    monkeypatch.setattr(sys.stdin, "encoding", "utf-8")
+     monkeypatch.setattr(sys, "getfilesystemencoding", lambda: "utf-8")
+     monkeypatch.setattr(sys, "getdefaultencoding", lambda: "utf-8")
++    # sys.stdin.encoding is readonly, needs some extra effort to patch.
++    stdin = mock.Mock(wraps=sys.stdin)
++    stdin.encoding = "utf-8"
++    monkeypatch.setattr(sys, "stdin", stdin)
+ 
+     runner.invoke(
+         from_bytes,
+-- 
+2.40.1
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
index 006742f..9b8ea94 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
@@ -13,6 +13,7 @@
 inherit pypi setuptools3 ptest
 
 SRC_URI += " \
+	file://0001-tests-Fix-test_bytes_args.patch \
 	file://run-ptest \
 "
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.3.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.3.bb
index e4644d9..8e924ac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.3.bb
@@ -11,7 +11,7 @@
 PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
 
 inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "c18185c9cc147d0fa1e9228962aa37901b37866bd5d617e9efa23dfe706f7321"
+SRC_URI[sha256sum] = "b54cde1f1c0573321b22382bd2ffaf5d08f65188572d128cd4867fb9669723c5"
 
 SRC_URI += " \
 	file://CMakeLists.txt \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.2.3.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.2.3.bb
index 58d0b46..057c119 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-coverage_7.2.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[sha256sum] = "36dd42da34fe94ed98c39887b86db9d06777b1c8f860520e21126a75507024f2"
+SRC_URI[sha256sum] = "d298c2815fa4891edd9abe5ad6e6cb4207104c7dd9fd13aea3fdebf6f9b91259"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
index 2032568..da756ea 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
@@ -6,7 +6,7 @@
     file://LICENSE;md5=4fbd65380cdd255951079008b364516c \
     file://LICENSE.google-crc32c;md5=e9ed01b5e5ac9eae23fc2bb33701220c \
     file://LICENSE.slice-by-8;md5=6b3bc7709d6b2db6646ec2467310ff6b \
-    file://crc32c_adler.c;startline=9;endline=24;md5=c60e6e55d0e5d95effa6fad27db0711a \
+    file://crc32c_adler.c;beginline=9;endline=24;md5=9c8bd2afd2d340fd37c038759cd4eff8 \
 "
 
 SRC_URI[sha256sum] = "17ce6c596ad0d53df52dcd72defb66984aeabd98fbefea7ba848a6b6bdece36a"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.3.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.3.14.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.3.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.3.14.bb
index 691c250..af8892e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.3.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-croniter_1.3.14.bb
@@ -5,7 +5,7 @@
 
 PYPI_PACKAGE = "croniter"
 
-SRC_URI[sha256sum] = "32a5ec04e97ec0837bcdf013767abd2e71cceeefd3c2e14c804098ce51ad6cd9"
+SRC_URI[sha256sum] = "d067b1f95b553c6e82d95a983c465695913dcd12f47a8b9aa938a0450d94dd5e"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.8.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.8.bb
index 4d59230..67b8294 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dateparser_1.1.8.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3d3ed25571191e7aa3f55d0a6efe0051"
 
-SRC_URI[sha256sum] = "ff047d9cffad4d3113ead8ec0faf8a7fc43bab7d853ac8715e071312b53c465a"
+SRC_URI[sha256sum] = "86b8b7517efcc558f085a142cdb7620f0921543fcabdb538c8a4c4001d8178e3"
 
 PYPI_PACKAGE = "dateparser"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.6.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.6.1.bb
index 84d42e5..447bfc4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-diskcache_5.6.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c60ef82f0f40155453f6d5f2c94b6e8e"
 
-SRC_URI[sha256sum] = "8879eb8c9b4a2509a5e633d2008634fb2b0b35c2b36192d89655dbde02419644"
+SRC_URI[sha256sum] = "e4c978532feff5814c4cc00fe1e11e40501985946643d73220d41ee7737c72c3"
 
 PYPI_PACKAGE = "diskcache"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.1.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.1.bb
index 22de9d4..c5f96f2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
 
-SRC_URI[sha256sum] = "1162e4c8e5501bd36291b668f4449b8125fea5ef64a26da8d71da31126725aa5"
+SRC_URI[sha256sum] = "cd2bff3de8cddf8a480f728e648c6cae47d8ab66696c7d830a7a84536d8cae58"
 
 PYPI_PACKAGE = "elementpath"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.1.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.1.bb
index 03a7d48..b20a641 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.1.bb
@@ -17,4 +17,4 @@
 	python3-asyncio \
 "
 
-SRC_URI[sha256sum] = "bcc035c70ecc30acc3cfd49ef19aca6c51fa6caaadd0fa58c2d7480f50d04cf2"
+SRC_URI[sha256sum] = "eb3663ecb300195926b526386f712dff84cd092c818fb7b62eeeda9160120c29"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_6.0.bb
index 901d001..21c3668 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gcovr_6.0.bb
@@ -12,6 +12,6 @@
 inherit setuptools3
 PIP_INSTALL_PACKAGE = "gcovr"
 
-RDEPENDS:${PN} += "${PYTHON_PN}-jinja2 ${PYTHON_PN}-lxml ${PYTHON_PN}-setuptools ${PYTHON_PN}-pygments"
+RDEPENDS:${PN} += "${PYTHON_PN}-jinja2 ${PYTHON_PN}-lxml ${PYTHON_PN}-setuptools ${PYTHON_PN}-pygments ${PYTHON_PN}-multiprocessing"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.81.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.86.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.81.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.86.0.bb
index d471d9a..119ed0f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.81.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.86.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "8faab0b9b19d3797b455d33320c643253b6761fd0d3f3adb54792ab155d0795a"
+SRC_URI[sha256sum] = "3ca4e93821f4e9ac29b91ab0d9df168b42c8ad0fb8bff65b8c2ccb2d462b0464"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.16.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.17.3.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.16.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.17.3.bb
index b5f2b7e..a767710 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.16.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.17.3.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "07e14f34ec288e3f33e00e2e3cc40c8942aa5d4ceac06256a28cd8e786591420"
+SRC_URI[sha256sum] = "ce311e2bc58b130fddf316df57c9b3943c2a7b4f6ec31de9663a9333e4064efc"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.58.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.58.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.0.bb
index 27c3b9b..49725ed 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.58.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.0.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "c727251ec025947d545184ba17e3578840fc3a24a0516a020479edab660457df"
+SRC_URI[sha256sum] = "4168fcb568a826a52f23510412da405abd93f4d23ba544bb68d943b14ba3cb44"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-grpcio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
new file mode 100644
index 0000000..f833e69
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Python bindings for libgpiod."
+AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
+# The actual license files live in the upstream libgpiod from which the pypi
+# package is spun out.
+LIC_FILES_CHKSUM = "file://setup.py;beginline=57;endline=57;md5=120334ed83ec0cb248605e775bd13b87"
+
+SRC_URI += "file://run-ptest"
+
+SRC_URI[sha256sum] = "d5c0f9502e97e7359b9dd601e29f15d668983ce50f5c13323f3302845f790fa6"
+
+inherit setuptools3 ptest pypi
+
+PYPI_PACKAGE = "libgpiod"
+
+DEPENDS += "libgpiod"
+RDEPENDS:${PN} += " \
+    libgpiod (>= 2.0) \
+    python3-datetime \
+    python3-profile \
+"
+RDEPENDS:${PN}-ptest += " \
+    libgpiod-ptest \
+    python3-setuptools \
+"
+
+export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim
+    install -d ${D}${PTEST_PATH}/gpiod-test/procname
+    install -m 0644 ${S}/tests/*.py ${D}${PTEST_PATH}/gpiod-test/
+    install -m 0644 ${B}/build/lib*/tests/gpiosim/_ext* ${D}${PTEST_PATH}/gpiod-test/gpiosim
+    install -m 0644 ${S}/tests/gpiosim/*.py ${D}${PTEST_PATH}/gpiod-test/gpiosim
+    install -m 0644 ${B}/build/lib*/tests/procname/_ext* ${D}${PTEST_PATH}/gpiod-test/procname
+    install -m 0644 ${S}/tests/procname/*.py ${D}${PTEST_PATH}/gpiod-test/procname
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
deleted file mode 100644
index 18cf8ae..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Python bindings for libgpiod."
-AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
-LIC_FILES_CHKSUM = " \
-    file://../../LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-    file://../../LICENSES/LGPL-2.1-or-later.txt;md5=4b54a1fd55a448865a0b32d41598759d \
-    file://../../LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f \
-"
-
-require recipes-support/libgpiod/libgpiod-src.inc
-
-SRC_URI += "file://run-ptest"
-
-SRC_URI[sha256sum] = "f74cbf82038b3cb98ebeb25bce55ee2553be28194002d2a9889b9268cce2dd07"
-S = "${WORKDIR}/libgpiod-2.0/bindings/python"
-
-inherit setuptools3 ptest
-
-DEPENDS += "libgpiod"
-RDEPENDS:${PN} += "libgpiod (>= 2.0)"
-RDEPENDS:${PN}-ptest += "python3-setuptools"
-
-export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}"
-PTEST_CFLAGS = "${@bb.utils.contains("PTEST_ENABLED", "1", "-I../../tests/gpiosim", "", d)}"
-# Setuptools store full filesystem paths in DWARF files. Map them to './' to
-# avoid QA warnings.
-export CFLAGS = "${PTEST_CFLAGS} -fdebug-prefix-map=${B}=./"
-
-do_install:append() {
-    # Python setuptools have an issue where they install C extensions even if
-    # they're not in the list of packages to be packaged. This is how the test
-    # extensions end up being installed. Remove them here.
-    rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/tests/
-}
-
-do_install_ptest() {
-    install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim
-    install -d ${D}${PTEST_PATH}/gpiod-test/procname
-    install -m 0644 ${B}/tests/*.py ${D}${PTEST_PATH}/gpiod-test/
-    install -m 0644 ${B}/build/lib*/tests/gpiosim/_ext* ${D}${PTEST_PATH}/gpiod-test/gpiosim
-    install -m 0644 ${B}/tests/gpiosim/*.py ${D}${PTEST_PATH}/gpiod-test/gpiosim
-    install -m 0644 ${B}/build/lib*/tests/procname/_ext* ${D}${PTEST_PATH}/gpiod-test/procname
-    install -m 0644 ${B}/tests/procname/*.py ${D}${PTEST_PATH}/gpiod-test/procname
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb
index 75a41e2..3436444 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb
@@ -21,6 +21,16 @@
            hdf5 \
           "
 
+PACKAGESPLITFUNCS =+ "fix_cythonized_sources"
+
+fix_cythonized_sources() {
+	for f in `grep -l -r -e '\/* Generated by Cython.*/$' ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}`; do
+		if [ -e $f ]; then
+			sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' $f
+		fi
+	done
+}
+
 RDEPENDS:${PN} = "python3-numpy \
                   python3-six \
                   python3-json \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.21.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.21.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb
index 3e285d9..9614de9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.21.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
 
-SRC_URI[sha256sum] = "fc144f091c7286b82bec71bdbd9b27323ba709cc612568d3000893bfd9cb4b34"
+SRC_URI[sha256sum] = "d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.10.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.11.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.10.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.11.bb
index cbcc2f8..c66455c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.10.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-icu_2.11.bb
@@ -8,7 +8,7 @@
 DEPENDS += "icu"
 
 PYPI_PACKAGE = "PyICU"
-SRC_URI[sha256sum] = "0c3309eea7fab6857507ace62403515b60fe096cbfb4f90d14f55ff75c5441c1"
+SRC_URI[sha256sum] = "3ab531264cfe9132b3d2ac5d708da9a4649d25f6e6813730ac88cf040a08a844"
 
 SRC_URI += "file://0001-Fix-host-contamination-of-include-files.patch"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.26.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.27.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.26.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.27.0.bb
index 79e6dd7..be0de47 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.26.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imageio_2.27.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=24cb9a367a9e641b459a01c4d15256ba"
 
-SRC_URI[sha256sum] = "169f1642cdb723133fe8fe901887f4f1b39bc036458c4664f1f9d256226ced35"
+SRC_URI[sha256sum] = "ee269c957785ef0373cc7a7323185956d83ec05e6cdf20b42a03ba7b74ac58c6"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.10.0.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.10.0.bb
index 1e5efbe..5282bcc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-imgtool_1.10.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://imgtool/main.py;beginline=3;endline=18;md5=9965f09ae52c04886a1f04e13ccdce57"
 
-SRC_URI[sha256sum] = "7fa7f6bd6bf069b5ffa07ea47478e16b6206bd2fc5b7607def999de0e9134a43"
+SRC_URI[sha256sum] = "03b34e75934ac3d96e7c42b6bcaf11ceaf4f453f7c6f26c17d726bd183104b40"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.11.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.12.0.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.11.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.12.0.bb
index 875e89a..0cfc80e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.11.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.12.0.bb
@@ -6,7 +6,7 @@
 
 PYPI_PACKAGE = "ipython"
 
-SRC_URI[sha256sum] = "735cede4099dbc903ee540307b9171fbfef4aa75cfcacc5a273b2cda2f02be04"
+SRC_URI[sha256sum] = "a950236df04ad75b5bc7f816f9af3d74dc118fd42f2ff7e80e8e60ca1f182e2d"
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
index c96e5c3..1b65f3b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "Python-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c80be45b33471b4a23cf53d06a8172be"
 
-SRC_URI[sha256sum] = "4a67a82ee57e35b5f6f9f7fbe6a0eda63f56ce1dd8af409b4c2a26a3340457db"
+SRC_URI[sha256sum] = "1dd0ee210160c7bd30002803c443e6260ac602ea65b065652a1d567d3bfdca7a"
 
 PYPI_PACKAGE = "jdatetime"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
index 9ce7a62..a855c39 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
@@ -5,12 +5,25 @@
 SRC_URI[md5sum] = "e3f0064a94c13e19780eb724affdb426"
 SRC_URI[sha256sum] = "785f4109a241fc2891e59705e85d065f6e6d3ed6ad91750a8cb54d4f3e59d934"
 
+SRC_URI += "\
+        file://run-ptest \
+"
+
 PYPI_PACKAGE = "lorem"
 
-inherit pypi setuptools3
+inherit pypi setuptools3 ptest
 
 CLEANBROKEN = "1"
 
 RDEPENDS:${PN} += " \
         python3 \
 "
+RDEPENDS:${PN}-ptest += " \
+        ${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-unittest-automake-output \
+"
+
+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-luma-oled_3.11.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-oled_3.12.0.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-luma-oled_3.11.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-luma-oled_3.12.0.bb
index 7ce3570..87f7ad6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-oled_3.11.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-luma-oled_3.12.0.bb
@@ -8,7 +8,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "81583e77ecb1d3ae04a641b3311082719b7a3149c15a5f2577d9b93b243e9331"
+SRC_URI[sha256sum] = "af97d79fa3481d2c48b7bccfb6de349219f6d814fdc9a3dd075c7b2c71206450"
 
 CLEANBROKEN = "1"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.2.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.2.bb
index b916a7b..633b6f2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.2.bb
@@ -13,4 +13,4 @@
             ${PYTHON_PN}-pep8 \
             ${PYTHON_PN}-pyflakes"
 
-SRC_URI[sha256sum] = "e3ea505c03babf7977fd21674a69ad328053d414f05e6433c30d8fa14a534a6b"
+SRC_URI[sha256sum] = "06f18d7d65b44428202b145a9a36e99c2ee00d1eb992df0caf881d4664377891"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_3.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_3.1.bb
index c83771b..7158f7b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-networkx_3.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4266362445d56549f7b8973d02e5f22a"
 
-SRC_URI[sha256sum] = "9a9992345353618ae98339c2b63d8201c381c2944f38a2ab49cb45a4c667e412"
+SRC_URI[sha256sum] = "de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb
index aa8dfe2..129c314 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb
@@ -14,6 +14,16 @@
     ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \
 "
 
+PACKAGESPLITFUNCS =+ "fix_cythonized_sources"
+
+fix_cythonized_sources() {
+	for f in `grep -l -r -e '\/* Generated by Cython.*/$' ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}`; do
+		if [ -e $f ]; then
+			sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' $f
+		fi
+	done
+}
+
 CFLAGS:append:toolchain-clang = " -Wno-error=deprecated-declarations"
 
 RDEPENDS:${PN} += " \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-path/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-path/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-path/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb
index 41fe374..479177e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb
@@ -4,8 +4,27 @@
 
 SRC_URI[sha256sum] = "bea3816e1d54f4e33aac78d2031a0b0ed2f95e69db85b45d51f17df97071da69"
 
-inherit pypi python_setuptools_build_meta
+SRC_URI += "\
+        file://run-ptest \
+"
+
+inherit pypi python_setuptools_build_meta ptest
 
 DEPENDS += "python3-setuptools-scm-native"
 
+RDEPENDS:${PN} += " \
+        ${PYTHON_PN}-appdirs \
+"
+RDEPENDS:${PN}-ptest += " \
+        ${PYTHON_PN}-pytest \
+        ${PYTHON_PN}-unittest-automake-output \
+"
+
 BBCLASSEXTEND = "nativesdk native"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/test
+    cp -rf ${S}/test_* ${D}${PTEST_PATH}/test/
+    install -d ${D}${PTEST_PATH}/path
+    cp -rf ${S}/path/* ${D}${PTEST_PATH}/path/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb
similarity index 67%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb
index 4d81b8d..e284ccc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb
@@ -2,9 +2,9 @@
 HOMEPAGE = "http://pythonhosted.org/python-periphery/"
 LICENSE = "MIT"
 
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fed1784a083509430580a913df680706"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=30fe6f023a80fb33989fb3b9d773fea0"
 
-SRC_URI[sha256sum] = "8a8ec019d9b330a6a6f69a7de61d14b4c98b102d76359047c5ce0263e12246a6"
+SRC_URI[sha256sum] = "61d461d736982a6f766e878720ab10a68151e2e8c1086600d9389ac47e40e88a"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.5.0.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.5.0.bb
index 86705d2..76b3a82 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.5.0.bb
@@ -3,7 +3,7 @@
 Contributors."
 HOMEPAGE = "https://pillow.readthedocs.io"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bc416d18f294943285560364be7cbec1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b22dc6b663b9175820e5e03337c7596b"
 
 SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=main;protocol=https \
            file://0001-support-cross-compiling.patch \
@@ -61,4 +61,4 @@
 
 BBCLASSEXTEND = "native"
 
-SRCREV = "a5bbab1c1e63b439de191ef2040173713b26d2da"
+SRCREV = "204590600c6a8c5246d0564d3312abd6e6b0ed70"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.22.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.22.3.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.22.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.22.3.bb
index add20c0..5b2ff30 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.22.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.22.3.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "dce7a55d501c31ecf688adb2f6c3f763cf11bc0be815d1946a84d74772ab07a7"
+SRC_URI[sha256sum] = "23452f2fdea754a8251d0fc88c0317735ae47217e0d27bf330a30eec2848811a"
 
 # 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-pyalsaaudio_0.9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb
similarity index 71%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb
index e7e706c..8b22faa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "e74a66d6c7a6bcceb990df66d3ebc0fe382fc9d765f35f050f9d98c695304b36"
+SRC_URI[sha256sum] = "e21175500a2bd310ae3867e7991639defc1e2a5c92cf1b9f7083296b346738ab"
 
 DEPENDS += "alsa-lib"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_13.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_13.0.7.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_13.0.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_13.0.7.bb
index 49680c3..c27d490 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_13.0.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_13.0.7.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
 
-SRC_URI[sha256sum] = "792fba3f31e4968a5e99c19c771774083a2aa7e897ebf6f5e218e308e33a461f"
+SRC_URI[sha256sum] = "0de98e9e5be43269dd41efb16126ab0d5ba941ca4acae024329712851c0c0324"
 
 PYPI_PACKAGE = "PyChromecast"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb
index c888f4a..70f6834 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "cf95adb0d1671fc38d8c43dd921ad5814a735e7d9b4d9e437c088002863854fd"
+SRC_URI[sha256sum] = "cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-typing-extensions \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.169.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.170.1.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.169.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.170.1.bb
index fd78306..5fc33d6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.169.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.170.1.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
 
 SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
-SRCREV = "9e2712bb1da00c7bd3559f978c6316ca0287d453"
+SRCREV = "75435df663376d26bf8044b76906ecadba112000"
 S = "${WORKDIR}/git"
 
 inherit python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.2.2.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.2.2.bb
index 5b3ea1b..783bed8 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.2.2.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=430604f78bee72425da231d42eac9cee"
 DEPENDS += "python3-six-native"
 
-SRC_URI[sha256sum] = "2a0c82651a7eb96c784493b5fc26ccca26ba8e9530258d811dab50b87ce132de"
+SRC_URI[sha256sum] = "6f46f55b41875e5ac41ba660f514f4bb7a732811e303f671b76f310906355089"
 S = "${WORKDIR}/pymodbus-${PV}"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.5.0.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.5.0.bb
index 49e5555..f67090d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproj_3.5.0.bb
@@ -1,6 +1,6 @@
 SUMMARY = "Python interface to PROJ (cartographic projections and coordinate transformations library)"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc4bb2668871655e24030dfe8d2a7ce7"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=873757af01d2d221eedb422c4c1dd163"
 DEPENDS = "python3-cython proj"
 DEPENDS:append:class-target = " python3-cython-native proj-native"
 
@@ -8,7 +8,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "261eb29b1d55b1eb7f336127344d9b31284d950a9446d1e0d1c2411f7dd8e3ac"
+SRC_URI[sha256sum] = "9859d1591c1863414d875ae0759e72c2cffc01ab989dc64137fbac572cc81bf6"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-certifi proj"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc
index 52fb9d4..b8a74e6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc
@@ -2,25 +2,22 @@
 
 # from Cargo.lock
 SRC_URI += " \
-    crate://crates.io/aho-corasick/0.7.18 \
-    crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/1.0.1 \
+    crate://crates.io/aho-corasick/0.7.20 \
+    crate://crates.io/autocfg/1.1.0 \
     crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/block-buffer/0.9.0 \
-    crate://crates.io/cc/1.0.72 \
+    crate://crates.io/block-buffer/0.10.3 \
+    crate://crates.io/cc/1.0.78 \
     crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.19 \
-    crate://crates.io/cpufeatures/0.2.1 \
-    crate://crates.io/cpython/0.7.0 \
-    crate://crates.io/crossbeam/0.8.1 \
-    crate://crates.io/crossbeam-channel/0.5.2 \
-    crate://crates.io/crossbeam-deque/0.8.1 \
-    crate://crates.io/crossbeam-epoch/0.9.6 \
-    crate://crates.io/crossbeam-queue/0.3.3 \
-    crate://crates.io/crossbeam-utils/0.8.6 \
-    crate://crates.io/crypto-mac/0.11.1 \
-    crate://crates.io/ctrlc/3.2.1 \
-    crate://crates.io/digest/0.9.0 \
+    crate://crates.io/cpufeatures/0.2.5 \
+    crate://crates.io/cpython/0.7.1 \
+    crate://crates.io/crossbeam/0.8.2 \
+    crate://crates.io/crossbeam-channel/0.5.6 \
+    crate://crates.io/crossbeam-deque/0.8.2 \
+    crate://crates.io/crossbeam-epoch/0.9.13 \
+    crate://crates.io/crossbeam-queue/0.3.8 \
+    crate://crates.io/crossbeam-utils/0.8.14 \
+    crate://crates.io/crypto-common/0.1.6 \
+    crate://crates.io/digest/0.10.6 \
     crate://crates.io/encoding/0.2.33 \
     crate://crates.io/encoding-index-japanese/1.20141219.5 \
     crate://crates.io/encoding-index-korean/1.20141219.5 \
@@ -28,157 +25,192 @@
     crate://crates.io/encoding-index-singlebyte/1.20141219.5 \
     crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
     crate://crates.io/encoding_index_tests/0.1.4 \
-    crate://crates.io/env_logger/0.9.0 \
+    crate://crates.io/env_logger/0.10.0 \
     crate://crates.io/errno/0.2.8 \
     crate://crates.io/errno-dragonfly/0.1.2 \
-    crate://crates.io/fastrand/1.6.0 \
-    crate://crates.io/generic-array/0.14.5 \
-    crate://crates.io/getrandom/0.2.3 \
+    crate://crates.io/fastrand/1.8.0 \
+    crate://crates.io/generic-array/0.14.6 \
+    crate://crates.io/getrandom/0.2.8 \
     crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/hmac/0.11.0 \
-    crate://crates.io/httparse/1.5.1 \
+    crate://crates.io/hermit-abi/0.2.6 \
+    crate://crates.io/hmac/0.12.1 \
+    crate://crates.io/httparse/1.8.0 \
     crate://crates.io/humantime/2.1.0 \
     crate://crates.io/instant/0.1.12 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.112 \
-    crate://crates.io/libsystemd/0.4.1 \
-    crate://crates.io/log/0.4.14 \
-    crate://crates.io/memchr/2.4.1 \
+    crate://crates.io/io-lifetimes/1.0.3 \
+    crate://crates.io/is-terminal/0.4.1 \
+    crate://crates.io/itoa/1.0.5 \
+    crate://crates.io/libc/0.2.138 \
+    crate://crates.io/libsystemd/0.5.0 \
+    crate://crates.io/linux-raw-sys/0.1.4 \
+    crate://crates.io/log/0.4.17 \
+    crate://crates.io/memchr/2.5.0 \
     crate://crates.io/memoffset/0.6.5 \
-    crate://crates.io/mio/0.8.0 \
-    crate://crates.io/miow/0.3.7 \
-    crate://crates.io/nix/0.23.1 \
-    crate://crates.io/ntapi/0.3.6 \
-    crate://crates.io/num-integer/0.1.44 \
-    crate://crates.io/num-traits/0.2.14 \
-    crate://crates.io/num_cpus/1.13.1 \
-    crate://crates.io/once_cell/1.9.0 \
-    crate://crates.io/opaque-debug/0.3.0 \
-    crate://crates.io/paste/1.0.6 \
-    crate://crates.io/ppv-lite86/0.2.16 \
-    crate://crates.io/proc-macro2/1.0.36 \
-    crate://crates.io/python3-sys/0.7.0 \
-    crate://crates.io/quote/1.0.14 \
-    crate://crates.io/rand/0.8.4 \
+    crate://crates.io/memoffset/0.7.1 \
+    crate://crates.io/minimal-lexical/0.2.1 \
+    crate://crates.io/mio/0.8.5 \
+    crate://crates.io/nix/0.23.2 \
+    crate://crates.io/nix/0.26.1 \
+    crate://crates.io/nom/7.1.1 \
+    crate://crates.io/num-traits/0.2.15 \
+    crate://crates.io/num_cpus/1.14.0 \
+    crate://crates.io/num_threads/0.1.6 \
+    crate://crates.io/once_cell/1.16.0 \
+    crate://crates.io/paste/1.0.11 \
+    crate://crates.io/pin-utils/0.1.0 \
+    crate://crates.io/ppv-lite86/0.2.17 \
+    crate://crates.io/proc-macro2/1.0.49 \
+    crate://crates.io/python3-sys/0.7.1 \
+    crate://crates.io/quote/1.0.23 \
+    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/rand_hc/0.3.1 \
-    crate://crates.io/redox_syscall/0.2.10 \
-    crate://crates.io/regex/1.5.4 \
-    crate://crates.io/regex-syntax/0.6.25 \
+    crate://crates.io/rand_core/0.6.4 \
+    crate://crates.io/redox_syscall/0.2.16 \
+    crate://crates.io/regex/1.7.0 \
+    crate://crates.io/regex-syntax/0.6.28 \
     crate://crates.io/remove_dir_all/0.5.3 \
+    crate://crates.io/rustix/0.36.5 \
     crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/serde/1.0.133 \
-    crate://crates.io/serde_derive/1.0.133 \
-    crate://crates.io/sha2/0.9.9 \
-    crate://crates.io/simplelog/0.11.1 \
+    crate://crates.io/serde/1.0.151 \
+    crate://crates.io/serde_derive/1.0.151 \
+    crate://crates.io/sha2/0.10.6 \
+    crate://crates.io/signal-hook/0.3.14 \
+    crate://crates.io/signal-hook-registry/1.4.0 \
+    crate://crates.io/simplelog/0.12.0 \
     crate://crates.io/spmc/0.3.0 \
+    crate://crates.io/static_assertions/1.1.0 \
     crate://crates.io/subtle/2.4.1 \
-    crate://crates.io/syn/1.0.85 \
+    crate://crates.io/syn/1.0.107 \
     crate://crates.io/tempfile/3.3.0 \
-    crate://crates.io/termcolor/1.1.2 \
-    crate://crates.io/thiserror/1.0.30 \
-    crate://crates.io/thiserror-impl/1.0.30 \
+    crate://crates.io/termcolor/1.1.3 \
+    crate://crates.io/thiserror/1.0.38 \
+    crate://crates.io/thiserror-impl/1.0.38 \
     crate://crates.io/threadpool/1.8.1 \
-    crate://crates.io/time/0.1.44 \
-    crate://crates.io/typenum/1.15.0 \
-    crate://crates.io/unicode-xid/0.2.2 \
-    crate://crates.io/urlencoding/2.1.0 \
+    crate://crates.io/time/0.3.17 \
+    crate://crates.io/time-core/0.1.0 \
+    crate://crates.io/time-macros/0.2.6 \
+    crate://crates.io/typenum/1.16.0 \
+    crate://crates.io/unicode-ident/1.0.6 \
+    crate://crates.io/urlencoding/2.1.2 \
     crate://crates.io/uuid/0.8.2 \
     crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
     crate://crates.io/winapi/0.3.9 \
     crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
     crate://crates.io/winapi-util/0.1.5 \
     crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/windows-sys/0.42.0 \
+    crate://crates.io/windows_aarch64_gnullvm/0.42.0 \
+    crate://crates.io/windows_aarch64_msvc/0.42.0 \
+    crate://crates.io/windows_i686_gnu/0.42.0 \
+    crate://crates.io/windows_i686_msvc/0.42.0 \
+    crate://crates.io/windows_x86_64_gnu/0.42.0 \
+    crate://crates.io/windows_x86_64_gnullvm/0.42.0 \
+    crate://crates.io/windows_x86_64_msvc/0.42.0 \
 "
 
-SRC_URI[aho-corasick.sha256sum] = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-SRC_URI[atty.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-SRC_URI[autocfg.sha256sum] = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-SRC_URI[bitflags.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[block-buffer.sha256sum] = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-SRC_URI[cc.sha256sum] = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
-SRC_URI[cfg-if.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono.sha256sum] = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
-SRC_URI[cpufeatures.sha256sum] = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
-SRC_URI[cpython.sha256sum] = "b7d46ba8ace7f3a1d204ac5060a706d0a68de6b42eafb6a586cc08bebcffe664"
-SRC_URI[crossbeam.sha256sum] = "4ae5588f6b3c3cb05239e90bd110f257254aecd01e4635400391aeae07497845"
-SRC_URI[crossbeam-channel.sha256sum] = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
-SRC_URI[crossbeam-deque.sha256sum] = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
-SRC_URI[crossbeam-epoch.sha256sum] = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762"
-SRC_URI[crossbeam-queue.sha256sum] = "b979d76c9fcb84dffc80a73f7290da0f83e4c95773494674cb44b76d13a7a110"
-SRC_URI[crossbeam-utils.sha256sum] = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120"
-SRC_URI[crypto-mac.sha256sum] = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
-SRC_URI[ctrlc.sha256sum] = "a19c6cedffdc8c03a3346d723eb20bd85a13362bb96dc2ac000842c6381ec7bf"
-SRC_URI[digest.sha256sum] = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-SRC_URI[encoding.sha256sum] = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
-SRC_URI[encoding-index-japanese.sha256sum] = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-SRC_URI[encoding-index-korean.sha256sum] = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-SRC_URI[encoding-index-simpchinese.sha256sum] = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-SRC_URI[encoding-index-singlebyte.sha256sum] = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-SRC_URI[encoding-index-tradchinese.sha256sum] = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-SRC_URI[encoding_index_tests.sha256sum] = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-SRC_URI[env_logger.sha256sum] = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
-SRC_URI[errno.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
-SRC_URI[errno-dragonfly.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-SRC_URI[fastrand.sha256sum] = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2"
-SRC_URI[generic-array.sha256sum] = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
-SRC_URI[getrandom.sha256sum] = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
-SRC_URI[hermit-abi.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-SRC_URI[hmac.sha256sum] = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
-SRC_URI[httparse.sha256sum] = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
-SRC_URI[humantime.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-SRC_URI[instant.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-SRC_URI[lazy_static.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc.sha256sum] = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
-SRC_URI[libsystemd.sha256sum] = "6f4f0b5b062ba67aa075e331de778082c09e66b5ef32970ea5a1e9c37c9555d1"
-SRC_URI[log.sha256sum] = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-SRC_URI[memchr.sha256sum] = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-SRC_URI[memoffset.sha256sum] = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-SRC_URI[mio.sha256sum] = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2"
-SRC_URI[miow.sha256sum] = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-SRC_URI[nix.sha256sum] = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6"
-SRC_URI[ntapi.sha256sum] = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
-SRC_URI[num-integer.sha256sum] = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-SRC_URI[num-traits.sha256sum] = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-SRC_URI[num_cpus.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-SRC_URI[once_cell.sha256sum] = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
-SRC_URI[opaque-debug.sha256sum] = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-SRC_URI[paste.sha256sum] = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5"
-SRC_URI[ppv-lite86.sha256sum] = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-SRC_URI[proc-macro2.sha256sum] = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-SRC_URI[python3-sys.sha256sum] = "b18b32e64c103d5045f44644d7ddddd65336f7a0521f6fde673240a9ecceb77e"
-SRC_URI[quote.sha256sum] = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d"
-SRC_URI[rand.sha256sum] = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
-SRC_URI[rand_chacha.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-SRC_URI[rand_core.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-SRC_URI[rand_hc.sha256sum] = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
-SRC_URI[redox_syscall.sha256sum] = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
-SRC_URI[regex.sha256sum] = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-SRC_URI[regex-syntax.sha256sum] = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-SRC_URI[remove_dir_all.sha256sum] = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-SRC_URI[scopeguard.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-SRC_URI[serde.sha256sum] = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a"
-SRC_URI[serde_derive.sha256sum] = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537"
-SRC_URI[sha2.sha256sum] = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
-SRC_URI[simplelog.sha256sum] = "ecabc0118918611790b8615670ab79296272cbe09496b6884b02b1e929c20886"
-SRC_URI[spmc.sha256sum] = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5"
-SRC_URI[subtle.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-SRC_URI[syn.sha256sum] = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7"
-SRC_URI[tempfile.sha256sum] = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
-SRC_URI[termcolor.sha256sum] = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
-SRC_URI[thiserror.sha256sum] = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
-SRC_URI[thiserror-impl.sha256sum] = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
-SRC_URI[threadpool.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
-SRC_URI[time.sha256sum] = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-SRC_URI[typenum.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-SRC_URI[unicode-xid.sha256sum] = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-SRC_URI[urlencoding.sha256sum] = "68b90931029ab9b034b300b797048cf23723400aa757e8a2bfb9d748102f9821"
-SRC_URI[uuid.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
-SRC_URI[version_check.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-SRC_URI[wasi.sha256sum] = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-SRC_URI[winapi.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-SRC_URI[winapi-i686-pc-windows-gnu.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-SRC_URI[winapi-x86_64-pc-windows-gnu.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+SRC_URI[cc-1.0.78.sha256sum] = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+SRC_URI[cpython-0.7.1.sha256sum] = "3052106c29da7390237bc2310c1928335733b286287754ea85e6093d2495280e"
+SRC_URI[crossbeam-0.8.2.sha256sum] = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+SRC_URI[crossbeam-channel-0.5.6.sha256sum] = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+SRC_URI[crossbeam-deque-0.8.2.sha256sum] = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+SRC_URI[crossbeam-epoch-0.9.13.sha256sum] = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
+SRC_URI[crossbeam-queue-0.3.8.sha256sum] = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+SRC_URI[crossbeam-utils-0.8.14.sha256sum] = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[digest-0.10.6.sha256sum] = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+SRC_URI[encoding-0.2.33.sha256sum] = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
+SRC_URI[encoding-index-japanese-1.20141219.5.sha256sum] = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+SRC_URI[encoding-index-korean-1.20141219.5.sha256sum] = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+SRC_URI[encoding-index-simpchinese-1.20141219.5.sha256sum] = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+SRC_URI[encoding-index-singlebyte-1.20141219.5.sha256sum] = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+SRC_URI[encoding-index-tradchinese-1.20141219.5.sha256sum] = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+SRC_URI[encoding_index_tests-0.1.4.sha256sum] = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.8.0.sha256sum] = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+SRC_URI[httparse-1.8.0.sha256sum] = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.3.sha256sum] = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+SRC_URI[is-terminal-0.4.1.sha256sum] = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330"
+SRC_URI[itoa-1.0.5.sha256sum] = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+SRC_URI[libc-0.2.138.sha256sum] = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+SRC_URI[libsystemd-0.5.0.sha256sum] = "8144587c71c16756b1055d3dcb0c75cb605a10ecd6523cc33702d5f90902bf6d"
+SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memoffset-0.6.5.sha256sum] = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+SRC_URI[memoffset-0.7.1.sha256sum] = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[mio-0.8.5.sha256sum] = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+SRC_URI[nix-0.23.2.sha256sum] = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
+SRC_URI[nix-0.26.1.sha256sum] = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694"
+SRC_URI[nom-7.1.1.sha256sum] = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.14.0.sha256sum] = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[once_cell-1.16.0.sha256sum] = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+SRC_URI[paste-1.0.11.sha256sum] = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro2-1.0.49.sha256sum] = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
+SRC_URI[python3-sys-0.7.1.sha256sum] = "49f8b50d72fb3015735aa403eebf19bbd72c093bfeeae24ee798be5f2f1aab52"
+SRC_URI[quote-1.0.23.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[regex-1.7.0.sha256sum] = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+SRC_URI[remove_dir_all-0.5.3.sha256sum] = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+SRC_URI[rustix-0.36.5.sha256sum] = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[serde-1.0.151.sha256sum] = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
+SRC_URI[serde_derive-1.0.151.sha256sum] = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
+SRC_URI[sha2-0.10.6.sha256sum] = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+SRC_URI[signal-hook-0.3.14.sha256sum] = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+SRC_URI[simplelog-0.12.0.sha256sum] = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786"
+SRC_URI[spmc-0.3.0.sha256sum] = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-1.0.107.sha256sum] = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+SRC_URI[tempfile-3.3.0.sha256sum] = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[thiserror-1.0.38.sha256sum] = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+SRC_URI[thiserror-impl-1.0.38.sha256sum] = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+SRC_URI[time-0.3.17.sha256sum] = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.6.sha256sum] = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[unicode-ident-1.0.6.sha256sum] = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+SRC_URI[urlencoding-2.1.2.sha256sum] = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9"
+SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+SRC_URI[windows_aarch64_gnullvm-0.42.0.sha256sum] = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+SRC_URI[windows_aarch64_msvc-0.42.0.sha256sum] = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+SRC_URI[windows_i686_gnu-0.42.0.sha256sum] = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+SRC_URI[windows_i686_msvc-0.42.0.sha256sum] = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+SRC_URI[windows_x86_64_gnu-0.42.0.sha256sum] = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+SRC_URI[windows_x86_64_gnullvm-0.42.0.sha256sum] = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+SRC_URI[windows_x86_64_msvc-0.42.0.sha256sum] = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
index f41e6cf..3f8256b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
@@ -19,7 +19,9 @@
       296 |                 device: stat.st_dev,
           |                         ^^^^^^^^^^^ expected `u64`, found `u32`
 
-Upstream-Status: Submitted [https://github.com/lucab/libsystemd-rs/pull/103]
+Drop this patch when libsystemd-rs crate bumps to 0.6.0+
+
+Upstream-Status: Backport [https://github.com/lucab/libsystemd-rs/pull/104]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  src/logging.rs | 3 +++
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch
new file mode 100644
index 0000000..621249c
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch
@@ -0,0 +1,21 @@
+From fdf98602ad20d06ebf65574541caac68ca421ac4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:19:53 -0700
+Subject: [PATCH] musl: Define O_LARGEFILE for riscv32
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+@@ -370,6 +370,7 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: u
+ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+ pub const O_DIRECT: ::c_int = 16384;
+ pub const O_DIRECTORY: ::c_int = 65536;
++pub const O_LARGEFILE: ::c_int = 0o0100000;
+ pub const O_NOFOLLOW: ::c_int = 131072;
+ pub const MAP_HUGETLB: ::c_int = 262144;
+ pub const MAP_LOCKED: ::c_int = 8192;
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch
new file mode 100644
index 0000000..e19b50d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch
@@ -0,0 +1,99 @@
+From f2b06fa4ea6ec9a33f8b269f0a1730a26276c5b0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 08:25:46 -0700
+Subject: [PATCH] musl: Define SOCK_NONBLOCK with O_NONBLOCK
+
+Much like glibc, these defines are same on musl [1] [2]
+therefore consolidate the definition in one place
+for SOCK_NONBLOCK
+
+[1] https://github.com/search?q=repo%3Abminor%2Fmusl++%22%23define+SOCK_NONBLOCK%22&type=code
+[2] https://github.com/search?q=repo%3Abminor%2Fmusl++%22%23define+O_NONBLOCK%22&type=code
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/arm/mod.rs  | 2 --
+ src/unix/linux_like/linux/musl/b32/hexagon.rs  | 1 -
+ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 2 --
+ src/unix/linux_like/linux/musl/b32/powerpc.rs  | 2 --
+ src/unix/linux_like/linux/musl/b32/x86/mod.rs  | 2 --
+ src/unix/linux_like/linux/musl/b64/mod.rs      | 2 --
+ src/unix/linux_like/linux/musl/mod.rs          | 1 +
+ 7 files changed, 1 insertion(+), 11 deletions(-)
+
+--- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -311,8 +311,6 @@ pub const O_SYNC: ::c_int = 1052672;
+ pub const O_RSYNC: ::c_int = 1052672;
+ pub const O_DSYNC: ::c_int = 4096;
+ 
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const MAP_ANON: ::c_int = 0x0020;
+ pub const MAP_GROWSDOWN: ::c_int = 0x0100;
+ pub const MAP_DENYWRITE: ::c_int = 0x0800;
+--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -295,7 +295,6 @@ pub const SIG_SETMASK: ::c_int = 2; // F
+ pub const SIG_BLOCK: ::c_int = 0x000000;
+ pub const SIG_UNBLOCK: ::c_int = 0x01;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+ pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOL_CAIF: ::c_int = 278;
+--- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -250,8 +250,6 @@ pub const O_SYNC: ::c_int = 0o40020;
+ pub const O_RSYNC: ::c_int = 0o40020;
+ pub const O_DSYNC: ::c_int = 0o020;
+ 
+-pub const SOCK_NONBLOCK: ::c_int = 0o200;
+-
+ pub const MAP_ANON: ::c_int = 0x800;
+ pub const MAP_GROWSDOWN: ::c_int = 0x1000;
+ pub const MAP_DENYWRITE: ::c_int = 0x2000;
+--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -243,8 +243,6 @@ pub const O_SYNC: ::c_int = 1052672;
+ pub const O_RSYNC: ::c_int = 1052672;
+ pub const O_DSYNC: ::c_int = 4096;
+ 
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const MAP_ANON: ::c_int = 0x0020;
+ pub const MAP_GROWSDOWN: ::c_int = 0x0100;
+ pub const MAP_DENYWRITE: ::c_int = 0x0800;
+--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -300,8 +300,6 @@ pub const O_SYNC: ::c_int = 1052672;
+ pub const O_RSYNC: ::c_int = 1052672;
+ pub const O_DSYNC: ::c_int = 4096;
+ 
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const MAP_ANON: ::c_int = 0x0020;
+ pub const MAP_GROWSDOWN: ::c_int = 0x0100;
+ pub const MAP_DENYWRITE: ::c_int = 0x0800;
+--- a/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -133,8 +133,6 @@ s! {
+ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
+ 
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ extern "C" {
+--- a/src/unix/linux_like/linux/musl/mod.rs
++++ b/src/unix/linux_like/linux/musl/mod.rs
+@@ -527,6 +527,7 @@ pub const POSIX_MADV_DONTNEED: ::c_int =
+ pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
+ 
+ pub const SOCK_DCCP: ::c_int = 6;
++pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const SOCK_PACKET: ::c_int = 10;
+ 
+ pub const SOMAXCONN: ::c_int = 128;
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
new file mode 100644
index 0000000..2da3a43
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
@@ -0,0 +1,92 @@
+From e00da82cd46221bfb650895c9cea65082da66b4e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:25:31 -0700
+Subject: [PATCH] musl: Define SOCK_SEQPACKET in common place
+
+This define is not architecture specific in musl [1]
+
+[1] https://git.musl-libc.org/cgit/musl/tree/include/sys/socket.h#n90
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/arm/mod.rs  | 1 -
+ src/unix/linux_like/linux/musl/b32/hexagon.rs  | 1 -
+ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 1 -
+ src/unix/linux_like/linux/musl/b32/powerpc.rs  | 1 -
+ src/unix/linux_like/linux/musl/b32/x86/mod.rs  | 1 -
+ src/unix/linux_like/linux/musl/b64/mod.rs      | 2 --
+ src/unix/linux_like/linux/musl/mod.rs          | 1 +
+ 7 files changed, 1 insertion(+), 7 deletions(-)
+
+--- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -324,7 +324,6 @@ pub const MAP_SYNC: ::c_int = 0x080000;
+ 
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -292,7 +292,6 @@ pub const SIG_SETMASK: ::c_int = 2; // F
+ pub const SIG_BLOCK: ::c_int = 0x000000;
+ pub const SIG_UNBLOCK: ::c_int = 0x01;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOL_CAIF: ::c_int = 278;
+ pub const SOL_IUCV: ::c_int = 277;
+--- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -348,7 +348,6 @@ pub const ERFKILL: ::c_int = 167;
+ 
+ pub const SOCK_STREAM: ::c_int = 2;
+ pub const SOCK_DGRAM: ::c_int = 1;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const SA_ONSTACK: ::c_int = 0x08000000;
+ pub const SA_SIGINFO: ::c_int = 8;
+--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -255,7 +255,6 @@ pub const MAP_STACK: ::c_int = 0x020000;
+ 
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -313,7 +313,6 @@ pub const MAP_SYNC: ::c_int = 0x080000;
+ 
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -133,8 +133,6 @@ s! {
+ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
+ 
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+-
+ extern "C" {
+     pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
+ }
+--- a/src/unix/linux_like/linux/musl/mod.rs
++++ b/src/unix/linux_like/linux/musl/mod.rs
+@@ -530,6 +530,7 @@ pub const POSIX_MADV_DONTNEED: ::c_int =
+ 
+ pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
+ 
++pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_DCCP: ::c_int = 6;
+ pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const SOCK_PACKET: ::c_int = 10;
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch
new file mode 100644
index 0000000..9c93434
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch
@@ -0,0 +1,140 @@
+From e4f6d7b6d57e83633814c54d93dff292ed0e4609 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:01:54 -0700
+Subject: [PATCH] musl: Move F_OFD_GETLK, F_OFD_SETLK and F_OFD_SETLKW to
+ common location
+
+These defines are not architecture specific in musl [1] therefore move them
+to be common
+
+[1] https://git.musl-libc.org/cgit/musl/tree/include/fcntl.h#n48
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/arm/mod.rs     | 3 ---
+ src/unix/linux_like/linux/musl/b32/hexagon.rs     | 3 ---
+ src/unix/linux_like/linux/musl/b32/mips/mod.rs    | 3 ---
+ src/unix/linux_like/linux/musl/b32/powerpc.rs     | 3 ---
+ src/unix/linux_like/linux/musl/b32/x86/mod.rs     | 3 ---
+ src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 3 ---
+ src/unix/linux_like/linux/musl/b64/mips64.rs      | 3 ---
+ src/unix/linux_like/linux/musl/mod.rs             | 4 ++++
+ 8 files changed, 4 insertions(+), 21 deletions(-)
+
+diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+index c47fa2c4c..3c8978e4f 100644
+--- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -451,9 +451,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 13;
+ pub const F_SETLKW: ::c_int = 14;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ 
+ pub const VEOF: usize = 4;
+ pub const VEOL: usize = 11;
+diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+index f83d208d5..720c603da 100644
+--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -225,9 +225,6 @@ pub const F_GETOWN_EX: ::c_int = 16;
+ pub const F_GETSIG: ::c_int = 11;
+ pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024;
+ pub const FLUSHO: ::c_int = 4096;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ pub const F_OWNER_PGRP: ::c_int = 2;
+ pub const F_OWNER_PID: ::c_int = 1;
+ pub const F_OWNER_TID: ::c_int = 0;
+diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+index d09b8278e..69e20ce32 100644
+--- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -388,9 +388,6 @@ pub const F_GETOWN: ::c_int = 23;
+ pub const F_SETLK: ::c_int = 34;
+ pub const F_SETLKW: ::c_int = 35;
+ pub const F_SETOWN: ::c_int = 24;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ 
+ pub const VEOF: usize = 16;
+ pub const VEOL: usize = 17;
+diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+index 3b998329b..63bc9163d 100644
+--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -384,9 +384,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 13;
+ pub const F_SETLKW: ::c_int = 14;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ 
+ pub const VEOF: usize = 4;
+ pub const VEOL: usize = 6;
+diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+index c319b91b6..52ecf3c7e 100644
+--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -441,9 +441,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 13;
+ pub const F_SETLKW: ::c_int = 14;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ 
+ pub const VEOF: usize = 4;
+ pub const VEOL: usize = 11;
+diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
+index 14b4bc6d6..522493ff3 100644
+--- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
++++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
+@@ -250,9 +250,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 6;
+ pub const F_SETLKW: ::c_int = 7;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ 
+ pub const VEOF: usize = 4;
+ 
+diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs
+index 22ac91690..c7f041260 100644
+--- a/src/unix/linux_like/linux/musl/b64/mips64.rs
++++ b/src/unix/linux_like/linux/musl/b64/mips64.rs
+@@ -612,9 +612,6 @@ pub const F_GETOWN: ::c_int = 23;
+ pub const F_SETOWN: ::c_int = 24;
+ pub const F_SETLK: ::c_int = 6;
+ pub const F_SETLKW: ::c_int = 7;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ 
+ pub const MCL_CURRENT: ::c_int = 0x0001;
+ pub const MCL_FUTURE: ::c_int = 0x0002;
+diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs
+index 37a8ca2af..9a4fa7ca7 100644
+--- a/src/unix/linux_like/linux/musl/mod.rs
++++ b/src/unix/linux_like/linux/musl/mod.rs
+@@ -506,6 +506,10 @@ pub const ECOMM: ::c_int = 70;
+ pub const EPROTO: ::c_int = 71;
+ pub const EDOTDOT: ::c_int = 73;
+ 
++pub const F_OFD_GETLK: ::c_int = 36;
++pub const F_OFD_SETLK: ::c_int = 37;
++pub const F_OFD_SETLKW: ::c_int = 38;
++
+ pub const F_RDLCK: ::c_int = 0;
+ pub const F_WRLCK: ::c_int = 1;
+ pub const F_UNLCK: ::c_int = 2;
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch
new file mode 100644
index 0000000..4796954
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch
@@ -0,0 +1,35 @@
+From b87552c504b53a5e5df2438adfe24e35b0168aba Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 08:51:02 -0700
+Subject: [PATCH] musl/riscv32: Define F_SETLK, F_SETLKW and fix F_GETLK
+
+F_SETLK and F_SETLKW were not defined therefore define them
+and F_GETLK value was not matching the musl port hence fixed
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+index 9ce6a9fd3..e56ff4853 100644
+--- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+@@ -339,9 +339,11 @@ pub const POLLWRBAND: ::c_short = 512;
+ pub const O_ASYNC: ::c_int = 8192;
+ pub const O_NDELAY: ::c_int = 2048;
+ pub const EFD_NONBLOCK: ::c_int = 2048;
+-pub const F_GETLK: ::c_int = 5;
+-pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETOWN: ::c_int = 8;
++pub const F_GETOWN: ::c_int = 9;
++pub const F_GETLK: ::c_int = 12;
++pub const F_SETLK: ::c_int = 13;
++pub const F_SETLKW: ::c_int = 14;
+ pub const SFD_NONBLOCK: ::c_int = 2048;
+ pub const TCSANOW: ::c_int = 0;
+ pub const TCSADRAIN: ::c_int = 1;
+-- 
+2.40.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
similarity index 68%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
index db9a4cd..7a96635 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
@@ -5,17 +5,20 @@
 BUGTRACKER = "https://gitlab.com/tschorr/pyruvate/-/issues"
 
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=051b48e640a6e2d795eac75542d9417c \
-                    file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI += "\
     git://gitlab.com/tschorr/pyruvate.git;protocol=https;branch=main \
-    file://0001-linux.rs-Define-consts-for-rv32-architecture.patch;patchdir=../cargo_home/bitbake/nix-0.23.1/ \
+    file://0001-linux.rs-Define-consts-for-rv32-architecture.patch;patchdir=../cargo_home/bitbake/nix-0.23.2/ \
+    file://0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+    file://0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+    file://0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+    file://0001-musl-Define-O_LARGEFILE-for-riscv32.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+    file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
 "
-SRC_URI[sha256sum] = "10befedd97e73fc18b902d02aa3b24e8978aa162242c1b664849c886c0675899"
-SRCREV = "fcbe49cc1a06290e28a211022df759605bce980d"
+SRCREV = "57db64c9f65ced05c71b8d786c1cedfaa2991597"
 
-SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.4.1/"
+SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.5.0/"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.1.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.1.bb
index 980b6d9..8af13b6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.1.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=14a49c74a1d91829908ac756c07e6b91"
 DEPENDS += "python3-setuptools-scm-native"
 
-SRC_URI[sha256sum] = "94088d129b61cd9b4b4607c6a466759b1bb2ada36206d5ac20aa319edcc5d701"
+SRC_URI[sha256sum] = "4dbdb76c45ad860dfe64e00103c18a6279ce382ddd5a7f18651c129c5539a0ab"
 
 inherit pypi python_setuptools_build_meta
 PYPI_PACKAGE = "PyScaffold"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18121.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18121.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.bb
index 518dbb2..9dd9b14 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18121.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.bb
@@ -3,6 +3,6 @@
 LICENSE = "LGPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI[sha256sum] = "24550314a3e6ed55fd347b009491c98b865f9dfa05a92e889d7b0a2210e7485b"
+SRC_URI[sha256sum] = "1039bde287853b4b7b61ba22d83761832434f78506da762dfb060291bf32897d"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.7.bb
new file mode 100644
index 0000000..e7a6c21
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.7.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Pyzstd module provides classes and functions for compressing and \
+decompressing data, using Facebook’s Zstandard (or zstd as short name) algorithm."
+HOMEPAGE = "https://github.com/animalize/pyzstd"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8458383225d7107f3383ee5c521628d2"
+
+PYPI_PACKAGE = "pyzstd"
+
+SRC_URI[sha256sum] = "55e503f28f5a9d225ce9d0639e3f5b1801bacace5aea926ec2998e73c5150fe7"
+
+inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.4.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.4.bb
index 9b26985..1a439cd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.4.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1db1f331d351900707368237cc4880cf"
 
-SRC_URI[sha256sum] = "1eec3741cda408d3a5f84b78d089c8b8d895f21b3b050988351e925faf202864"
+SRC_URI[sha256sum] = "73ec35da4da267d6847e47f68730fdd5f62e2ca69e3ef5885c6a78a9374c3893"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.10.31.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2023.3.23.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.10.31.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2023.3.23.bb
index 19fc153..176f79e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2022.10.31.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-regex_2023.3.23.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83"
+SRC_URI[sha256sum] = "dc80df325b43ffea5cdea2e3eaa97a44f3dd298262b1c7fe9dbb2a9522b956a7"
 
 RDEPENDS:${PN} += " \
 	python3-stringold \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.17.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.20.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.17.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.20.0.bb
index c0a180a..174545d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.17.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.20.0.bb
@@ -15,7 +15,7 @@
 	${PYTHON_PN}-datetime \
 "
 
-SRC_URI[sha256sum] = "ad40860325c94d1a656da70fba5a7c4dbb2f6809d3cc2d00f74ca0b608330f14"
+SRC_URI[sha256sum] = "a3410381ae769a436c0852cce140a5e5e49f566a07fb7c2ab445af1302f6ad89"
 
 PYPI_PACKAGE = "sentry-sdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.18.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.19.1.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.18.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.19.1.bb
index e7d6ca0..1fb31a3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.18.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-simplejson_3.19.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
 
-SRC_URI[sha256sum] = "6197cfebe659ac802a686b5408494115a7062b45cdf37679c4d6a9d4f39649b7"
+SRC_URI[sha256sum] = "6277f60848a7d8319d27d2be767a7546bc965535b28070e310b3a9af90604a4c"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb
index ba5fe50..70c3584 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb
@@ -2,9 +2,9 @@
 HOMEPAGE = "https://github.com/facelessuser/soupsieve"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c7a2acf04248c0d02dac4c82ee8a7f56"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=520586fa71ed2cbda50b4a8c89621e09"
 
-SRC_URI[sha256sum] = "e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"
+SRC_URI[sha256sum] = "89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"
 
 inherit pypi python_hatchling python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.9.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.9.bb
index 2d1cc5e..743d76a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.9.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b707d50badb798e1d897f2c8f649382d"
 
-SRC_URI[sha256sum] = "a4c1e1582492c66dfacc9eab52738f3e64d9a2a380e412668f75aa06e540f649"
+SRC_URI[sha256sum] = "95719215e3ec7337b9f57c3c2eda0e6a7619be194a5166c07c1e599f6afc20fa"
 
 PYPI_PACKAGE = "SQLAlchemy"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.3.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.3.bb
index d94fd39..1535214 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tornado_6.3.bb
@@ -6,7 +6,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[sha256sum] = "9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"
+SRC_URI[sha256sum] = "d68f3192936ff2c4add04dc21a436a43b4408d466746b78bb2b9d0a53a18683f"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_3.0.2.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_3.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_3.0.2.bb
index 932b6f0..1661e71 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_3.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_3.0.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
 
-SRC_URI[sha256sum] = "beb0e67c5dc76eea4a6d00a6606d444d899589908362960769d0c4a1d32bca70"
+SRC_URI[sha256sum] = "fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a"
 
 inherit pypi python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_3.0.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_3.0.0.bb
index b927de4..bcd6489 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_2.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-watchdog_3.0.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRC_URI[sha256sum] = "d9f9ed26ed22a9d331820a8432c3680707ea8b54121ddcc9dc7d9f2ceeb36906"
+SRC_URI[sha256sum] = "4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.2.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.2.0.bb
index 060cc3e..8e09cab 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.2.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1dc2732bdc5e50382737979791cbb3b7"
 
-SRC_URI[sha256sum] = "6b925a19e4a0001337d8b2faa72577d6b7e8f9a8a9a0b98d8834cdf698cfc045"
+SRC_URI[sha256sum] = "7695ee81162c644de0dfd0f5372f96a73be557b46365d218f581ca10197c6389"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_11.0.2.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_11.0.2.bb
index fac4d7a..1653c77 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_10.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-websockets_11.0.2.bb
@@ -2,11 +2,11 @@
 HOMEPAGE = "https://github.com/aaugustin/websockets"
 
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=78c2cc91e172ca96d6f8e4a76c739ec6"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=51924a6af4495b8cfaee1b1da869b6f4"
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3"
+SRC_URI[sha256sum] = "b1a69701eb98ed83dd099de4a686dc892c413d974fa31602bc00aca7cb988ac9"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.0.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.9.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.0.bb
index e4acf41..d556e8b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.0.bb
@@ -16,6 +16,6 @@
 	python3-io \
 "
 
-SRC_URI[sha256sum] = "7216d39a2075afac7a28cad81f6ac31b0b16d8976bf1b775577d157346f891dd"
+SRC_URI[sha256sum] = "02913b50b74c00f165933d5da3e3a02cab4204cb4932722a1b342c5c71034122"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.2.3.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.2.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.2.3.bb
index d2b7504..8e48dc5 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.2.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmlschema_2.2.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0ab20f8e337bea2e6874f372edfd12c0"
 
-SRC_URI[sha256sum] = "0caa96668807b4b51c42a0fe2b6610752bc59f069615df3e34dcfffb962973fd"
+SRC_URI[sha256sum] = "d21ba86af4432720231fb4b40f1205fa75fd718d6856ec3b8118984de31c225b"
 
 PYPI_PACKAGE = "xmlschema"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.47.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.56.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.47.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.56.0.bb
index dcbf8c3..20dc962 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.47.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.56.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=6517bdc8f2416f27ab725d4702f7aac3"
 
-SRC_URI[sha256sum] = "d535fcadd45a3e8f1d27502750965f8d664e66a4c17e27508ef7d8d1b027f90d"
+SRC_URI[sha256sum] = "d21916e98de8d4cb822134b25746dcf321531b8662757a7da402798ba627062e"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.3.2.bb b/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.3.4.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.3.2.bb
rename to meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.3.4.bb
index 1cb90c5..2a832f1 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-extended/python-rich/python3-rich_13.3.4.bb
@@ -8,7 +8,7 @@
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303"
 
-SRC_URI[sha256sum] = "91954fe80cfb7985727a467ca98a7618e5dd15178cc2da10f553b36a93859001"
+SRC_URI[sha256sum] = "b5d573e13605423ec80bdd0cd5f8541f7844a0e71a13f74cf454ccb2f490708b"
 
 inherit pypi python_poetry_core
 
diff --git a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.1.1.bb b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.1.1.bb
rename to meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb
index 1d449cb..5a56d00 100644
--- a/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
 
-SRC_URI[sha256sum] = "aacf4bfffa872bb0e3d0c19ee0630e3c0997d4f13553189b63b297787341735f"
+SRC_URI[sha256sum] = "921fb57ea2ae3ae2806e18895bb0457697f27221b345c8b05afa4cb304a7f939"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
new file mode 100644
index 0000000..996eabf
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
@@ -0,0 +1,31 @@
+From 5c9257fa34335ff83f7c01581cf953111072a457 Mon Sep 17 00:00:00 2001
+From: Valeria Petrov <valeria.petrov@spinetix.com>
+Date: Tue, 18 Apr 2023 15:38:53 +0200
+Subject: [PATCH] * modules/mappers/config9.m4: Add 'server' directory to
+ include path if mod_rewrite is enabled.
+
+Upstream-Status: Accepted [https://svn.apache.org/viewvc?view=revision&revision=1909241]
+
+---
+ modules/mappers/config9.m4 | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/modules/mappers/config9.m4 b/modules/mappers/config9.m4
+index 55a97ab993..7120b729b7 100644
+--- a/modules/mappers/config9.m4
++++ b/modules/mappers/config9.m4
+@@ -14,6 +14,11 @@ APACHE_MODULE(userdir, mapping of requests to user-specific directories, , , mos
+ APACHE_MODULE(alias, mapping of requests to different filesystem parts, , , yes)
+ APACHE_MODULE(rewrite, rule based URL manipulation, , , most)
+ 
++if test "x$enable_rewrite" != "xno"; then
++    # mod_rewrite needs test_char.h
++    APR_ADDTO(INCLUDES, [-I\$(top_builddir)/server])
++fi
++
+ APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
+ 
+ APACHE_MODPATH_FINISH
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.56.bb b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.57.bb
similarity index 97%
rename from meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.56.bb
rename to meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.57.bb
index 1ad222a..00f8aaa 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.56.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/apache2/apache2_2.4.57.bb
@@ -16,6 +16,7 @@
            file://0008-Fix-perl-install-directory-to-usr-bin.patch \
            file://0009-support-apxs.in-force-destdir-to-be-empty-string.patch \
            file://0001-make_exports.awk-not-expose-the-path.patch \
+           file://0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch \
           "
 
 SRC_URI:append:class-target = " \
@@ -27,7 +28,7 @@
            "
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3"
-SRC_URI[sha256sum] = "d8d45f1398ba84edd05bb33ca7593ac2989b17cb9c7a0cafe5442d41afdb2d7c"
+SRC_URI[sha256sum] = "dbccb84aee95e095edfbb81e5eb926ccd24e6ada55dcd83caecb262e5cf94d2a"
 
 S = "${WORKDIR}/httpd-${PV}"
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch
index f3be7c6..b16060f 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch
@@ -7,6 +7,7 @@
 | Makefile.am: error: required file './README' not found
 | Makefile.am: error: required file './ChangeLog' not found
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  configure.ac | 2 +-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch
index d4c0b6e..1d6a218 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch
@@ -5,6 +5,7 @@
 
 Target fails to build
 
+Upstream-Status: Inappropriate [Cross-compile specific]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  Makefile.am | 2 +-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch b/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch
index 7a22951..3eb3067 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch
+++ b/meta-openembedded/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch
@@ -6,6 +6,7 @@
 For musl we need to pass -lexecinfo from env
 this change accomodates that
 
+Upstream-Status: Inappropriate [OE-specific]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  configure | 2 +-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
index 260f5f3..6992a84 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -44,6 +44,7 @@
 PACKAGECONFIG[ssl] = "--with-http_ssl_module,,openssl"
 PACKAGECONFIG[http-auth-request] = "--with-http_auth_request_module,,"
 PACKAGECONFIG[ipv6] = "--with-ipv6,,"
+PACKAGECONFIG[webdav] = "--with-http_dav_module,,"
 
 do_configure () {
     if [ "${SITEINFO_BITS}" = "64" ]; then
@@ -147,7 +148,7 @@
 
 pkg_postinst:${PN} () {
     if [ -z "$D" ]; then
-        if type systemd-tmpfiles >/dev/null; then
+        if type systemd-tmpfiles >/dev/null 2>&1; then
             systemd-tmpfiles --create
         elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
             ${sysconfdir}/init.d/populate-volatile.sh update
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.3.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.3.bb
deleted file mode 100644
index a8ffd9b..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.3.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require nginx.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=175abb631c799f54573dc481454c8632"
-
-SRC_URI[sha256sum] = "75cb5787dbb9fae18b14810f91cc4343f64ce4c24e27302136fb52498042ba54"
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.4.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.4.bb
new file mode 100644
index 0000000..422b6f3
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.4.bb
@@ -0,0 +1,6 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=175abb631c799f54573dc481454c8632"
+
+SRC_URI[sha256sum] = "d43300e36bb249a7e6edc60bca1b0fc372a0bafce2f346d76acfb677a8790fc0"
+
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_289.bb
similarity index 94%
rename from meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb
rename to meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_289.bb
index 93198e3..2f920b4 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_289.bb
@@ -6,12 +6,10 @@
 
 SRC_URI += " \
     https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \
-    file://0001-remove-tests-dep-on-gobject-intro.patch \
-    file://0002-fix-makefile-use-copy-rule-for-unmodified-files.patch \
     file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \
     file://cockpit.pam \
     "
-SRC_URI[sha256sum] = "dde91a157ee8514112334653fa2775a99d71bd1b604067a48eaf7411114d19de"
+SRC_URI[sha256sum] = "3f8e369b21dbe9f5e05ac6ffd8c7a58ad5759065bea29b3b14c937a17f030eb5"
 
 inherit gettext pkgconfig autotools systemd features_check
 
@@ -92,7 +90,10 @@
     ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \
 "
 
-FILES:${PN}-networkmanager = "${datadir}/cockpit/networkmanager"
+FILES:${PN}-networkmanager = " \
+    ${datadir}/cockpit/networkmanager \
+    ${datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml \
+"
 RDEPENDS:${PN}-networkmanager = "networkmanager"
 
 FILES:${PN}-machines = " \
@@ -130,6 +131,8 @@
     ${systemd_system_unitdir}/cockpit.service \
     ${systemd_system_unitdir}/cockpit-motd.service \
     ${systemd_system_unitdir}/cockpit.socket \
+    ${systemd_system_unitdir}/cockpit-session.socket \
+    ${systemd_system_unitdir}/cockpit-session@.service \
     ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \
     ${systemd_system_unitdir}/cockpit-wsinstance-http.service \
     ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
index b3b0988..db583cf 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
@@ -1,27 +1,25 @@
-From 588bb5cb248aaeaf0fea33084229c99ad1574291 Mon Sep 17 00:00:00 2001
+From 7c1f95995ce9180221bac03b7b1e1696b8a79de7 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 7 Sep 2022 11:12:28 -0700
 Subject: [PATCH] Warn not error if xsltproc is not found
 
 Upstream-Status: Inappropriate [oe-core specific]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  configure.ac | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 7659f41..537203e 100644
+index 6896c19..2a1fb52 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -177,7 +177,7 @@ AC_SUBST([systemdunitdir], [$systemdunitdir])
+@@ -182,7 +182,7 @@ AC_SUBST([systemdunitdir], [$systemdunitdir])
  # package as xgettext, and we find them by PATH, so just check for the one.
- AC_PATH_PROG([XGETTEXT], [xsltproc], [no])
+ AC_PATH_PROG([XGETTEXT], [xgettext], [no])
  if test "$XGETTEXT" = "no"; then
 -        AC_MSG_ERROR([Please install gettext tools])
 +        AC_MSG_WARN([Please install gettext tools])
  fi
  
  # ssh-add
--- 
-2.37.3
-
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch
deleted file mode 100644
index 8f70fe9..0000000
--- a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 788aace494f79e8201b18ebcdf1592b5030c5295 Mon Sep 17 00:00:00 2001
-From: Adrian Freihofer <adrian.freihofer@siemens.com>
-Date: Wed, 4 Dec 2019 17:23:46 +0100
-Subject: [PATCH] remove tests dep on gobject-intro
-
----
- src/ws/Makefile-ws.am | 54 ---------------------------------------------------
- 1 file changed, 54 deletions(-)
-
---- a/src/ws/Makefile-ws.am
-+++ b/src/ws/Makefile-ws.am
-@@ -58,46 +58,6 @@ pam_cockpit_cert_so_LDFLAGS = -shared
- pam_cockpit_cert_so_SOURCES = src/ws/pam_cockpit_cert.c
- 
- # -----------------------------------------------------------------------------
--# test-server: server for running the html/browser unit tests against
--
--check_PROGRAMS += test-server
--
--test_server_CPPFLAGS = $(libcockpit_ws_a_CPPFLAGS) $(TEST_CPP)
--test_server_LDADD = $(libcockpit_ws_a_LIBS) $(TEST_LIBS)
--
--test_server_SOURCES = \
--	src/ws/mock-service.c \
--	src/ws/mock-service.h \
--	src/ws/test-server.c \
--	$(NULL)
--
--test_server_CPPFLAGS += -I$(top_builddir)/src/ws
--nodist_test_server_SOURCES = $(GDBUS_CODEGEN_GENERATED)
--
--BUILT_SOURCES += $(GDBUS_CODEGEN_GENERATED)
--CLEANFILES += $(GDBUS_CODEGEN_GENERATED)
--GDBUS_CODEGEN_GENERATED = \
--	src/ws/mock-dbus-tests.h \
--	src/ws/mock-dbus-tests.c \
--	$(NULL)
--
--EXTRA_DIST += $(GDBUS_CODEGEN_XML)
--GDBUS_CODEGEN_XML = $(srcdir)/src/ws/com.redhat.Cockpit.DBusTests.xml
--
--GDBUS_CODEGEN_INVOCATION = \
--	$(AM_V_GEN) gdbus-codegen \
--	--interface-prefix com.redhat.Cockpit.DBusTests \
--	--c-namespace Test \
--	--c-generate-object-manager \
--	$(NULL)
--
--src/ws/mock-dbus-tests.h: $(GDBUS_CODEGEN_XML)
--	$(GDBUS_CODEGEN_INVOCATION) --header --output $@ $<
--
--src/ws/mock-dbus-tests.c: $(GDBUS_CODEGEN_XML)
--	$(GDBUS_CODEGEN_INVOCATION) --body --output $@ $<
--
--# -----------------------------------------------------------------------------
- # Unit tests
- 
- check_SCRIPTS += src/ws/mock-cat-with-init
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch b/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch
deleted file mode 100644
index 48702c3..0000000
--- a/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1edf0756bf4fd002f5b60cf2b86d4b97a00aff20 Mon Sep 17 00:00:00 2001
-From: Michael Haener <michael.haener@siemens.com>
-Date: Wed, 25 Mar 2020 08:32:07 +0100
-Subject: [PATCH] fix(makefile): use copy rule for unmodified files
-
----
- pkg/Makefile.am | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
---- a/pkg/Makefile.am
-+++ b/pkg/Makefile.am
-@@ -7,6 +7,33 @@ TESTS += $(pkg_TESTS)
- %.metainfo.xml: %.metainfo.xml.in
- 	$(AM_V_GEN) mkdir -p $(dir $@) && msgfmt --xml -d $(top_srcdir)/po --template $< --output $@
- 
-+dist/playground/hammer.gif: pkg/playground/hammer.gif
-+	$(COPY_RULE)
-+
-+dist/sosreport/sosreport.png: pkg/sosreport/sosreport.png
-+	$(COPY_RULE)
-+
-+dist/apps/default.png: pkg/apps/default.png
-+	$(COPY_RULE)
-+
-+dist/storaged/images/storage-array.png: pkg/storaged/images/storage-array.png
-+	$(COPY_RULE)
-+
-+dist/storaged/images/storage-disk.png: pkg/storaged/images/storage-disk.png
-+	$(COPY_RULE)
-+
-+dist/shell/images/server-error.png: pkg/shell/images/server-error.png
-+	$(COPY_RULE)
-+
-+dist/shell/images/server-large.png: pkg/shell/images/server-large.png
-+	$(COPY_RULE)
-+
-+dist/shell/images/server-small.png: pkg/shell/images/server-small.png
-+	$(COPY_RULE)
-+
-+dist/shell/index.html: pkg/shell/index.html
-+	$(COPY_RULE)
-+
- metainfodir = ${datarootdir}/metainfo
- nodist_metainfo_DATA = \
- 	pkg/sosreport/org.cockpit-project.cockpit-sosreport.metainfo.xml \
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch
index 4212917..489318b 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch
@@ -1,11 +1,11 @@
-# Hack in support for an "exclude" config option for the init module, so
-# we can hide certain system services that shouldn't really be configurable
-# via the web interface
-#
-# Upstream-status: Pending
-#
-# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-# Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Hack in support for an "exclude" config option for the init module, so
+we can hide certain system services that shouldn't really be configurable
+via the web interface
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
 ---
  init/index.cgi   | 27 ++++++++++++++-------------
  init/init-lib.pl |  5 +++--
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch
index 46f3109..dfc962b 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch
@@ -1,3 +1,7 @@
+add mediatomb support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 diff -Nru webmin-1.570.bak/mediatomb/index.cgi webmin-1.570/mediatomb/index.cgi
 --- webmin-1.570.bak/mediatomb/index.cgi	1969-12-31 16:00:00.000000000 -0800
 +++ webmin-1.570/mediatomb/index.cgi	2011-10-26 10:00:05.992522036 -0700
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch
index 5549392..6ae3dce 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch
@@ -1,8 +1,8 @@
-# Add support for configuring network interfaces on a generic linux system
-#
-# Upstream-status: Not appropriate [config]
-#
-# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Add support for configuring network interfaces on a generic linux system
+
+Upstream-Status: Inappropriate [config]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
 Index: webmin-1.850/net/module.info
 ===================================================================
 --- webmin-1.850.orig/net/module.info
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch
index d957f4a..358e53a 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch
@@ -1,9 +1,9 @@
-# Remove "start on boot" option from webmin configuration, as
-# end-users should not need to configure this from the web interface
-#
-# Upstream-status: Inappropriate
-#
-# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Remove "start on boot" option from webmin configuration, as
+end-users should not need to configure this from the web interface
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
 --- webmin-1.570.orig/webmin/index.cgi
 +++ webmin-1.570/webmin/index.cgi
 @@ -79,20 +79,6 @@ print &ui_buttons_start();
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch
new file mode 100644
index 0000000..719267f
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch
@@ -0,0 +1,41 @@
+Native pkg_config only return basename of the variable queried. Invoke `which`
+to get the absolute path.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0f49e2b..a589147 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -116,7 +116,7 @@ AC_MSG_CHECKING([for gdbus-codegen])
+ if test x"$GDBUS_CODEGEN" = x""; then
+     GDBUS_CODEGEN=`$PKG_CONFIG --variable=gdbus_codegen gio-2.0`
+ fi
+-if test -x "$GDBUS_CODEGEN"; then
++if test -x "$(which $GDBUS_CODEGEN)"; then
+     AC_MSG_RESULT([$GDBUS_CODEGEN])
+ else
+     AC_MSG_ERROR([could not find gdbus-codegen in \$PATH. You can run
+@@ -129,7 +129,7 @@ AC_MSG_CHECKING([for glib-compile-resources])
+ if test x"$GLIB_COMPILE_RESOURCES" = x""; then
+     GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`
+ fi
+-if test -x "$GLIB_COMPILE_RESOURCES"; then
++if test -x "$(which $GLIB_COMPILE_RESOURCES)"; then
+     AC_MSG_RESULT([$GLIB_COMPILE_RESOURCES])
+ else
+     AC_MSG_ERROR([could not find glib-compile-resources in \$PATH. You can run
+@@ -142,7 +142,7 @@ AC_MSG_CHECKING([for glib-genmarshal])
+ if test x"$GLIB_GENMARSHAL" = x""; then
+     GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+ fi
+-if test -x "$GLIB_GENMARSHAL"; then
++if test -x "$(which $GLIB_GENMARSHAL)"; then
+     AC_MSG_RESULT([$GLIB_GENMARSHAL])
+ else
+     AC_MSG_ERROR([could not find glib-genmarshal in \$PATH. You can run
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
similarity index 66%
rename from meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb
rename to meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
index 6086608..7dbd90c 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
@@ -1,10 +1,10 @@
 SUMMARY = "Easily themable notification daemon with transparency effects"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd"
+HOMEPAGE = "https://docs.xfce.org/apps/notifyd/start"
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
 DEPENDS = " \
-    dbus \
-    dbus-glib \
+    glib-2.0-native \
     libnotify \
     libxfce4util \
     libxfce4ui \
@@ -14,7 +14,9 @@
 
 inherit xfce-app
 
-SRC_URI[sha256sum] = "56a9f895aed460042f2abe09bb1a899e29b7c7d5a76ecac63dead3ced990859f"
+SRC_URI:append = " file://xfce4-notifyd-get-var-abs-path.patch"
+
+SRC_URI[sha256sum] = "e3a28adb08daa1411135142a0d421e4d6050c4035a4e513a673a59460ff2ae84"
 
 # Avoid trouble with other desktops e.g KDE which also ships dbus service named
 # org.freedesktop.Notifications
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
index f726064..eabcaaa 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
@@ -6,11 +6,15 @@
 
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
 
+---
+ configure.ac | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
 diff --git a/configure.ac b/configure.ac
-index f0ec537..05c393d 100644
+index 6f149bb..3890677 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -230,9 +230,9 @@ dnl ---------------------------------------------------------------------------
+@@ -237,9 +237,9 @@ dnl ---------------------------------------------------------------------------
  #
  AC_DEFUN([AC_CHECK_X_HEADER], [
    ac_save_CPPFLAGS="$CPPFLAGS"
@@ -23,7 +27,7 @@
    CPPFLAGS="$CPPFLAGS $X_CFLAGS"
    AC_CHECK_HEADER([$1],[$2],[$3],[$4])
    CPPFLAGS="$ac_save_CPPFLAGS"])
-@@ -241,9 +241,9 @@ AC_DEFUN([AC_CHECK_X_HEADER], [
+@@ -248,9 +248,9 @@ AC_DEFUN([AC_CHECK_X_HEADER], [
  #
  AC_DEFUN([AC_TRY_X_COMPILE], [
    ac_save_CPPFLAGS="$CPPFLAGS"
@@ -34,9 +38,9 @@
 +#    CPPFLAGS="$CPPFLAGS -I$includedir"
 +#  fi
    CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-   AC_TRY_COMPILE([$1], [$2], [$3], [$4])
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])
    CPPFLAGS="$ac_save_CPPFLAGS"])
-@@ -257,15 +257,15 @@ AC_DEFUN([AC_CHECK_X_LIB], [
+@@ -264,15 +264,15 @@ AC_DEFUN([AC_CHECK_X_LIB], [
    ac_save_LDFLAGS="$LDFLAGS"
  #  ac_save_LIBS="$LIBS"
  
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb
similarity index 90%
rename from meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb
rename to meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb
index 685c4c1..2c5cba0 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb
@@ -13,7 +13,7 @@
 inherit xfce-app
 
 SRC_URI:append = " file://fix-cross-compile.patch"
-SRC_URI[sha256sum] = "6d4d143e3e62db679ce83ce7da97903390773ee0a8ceb05ff4c3dac36616268d"
+SRC_URI[sha256sum] = "b731e8abd68a18cc5d3b523351aa8f9f293c9f63290c1781c9155259deb04a5c"
 
 do_install:append() {
     install -D -m 0644 ${S}/data/xfce4-screensaver.common-auth ${D}${sysconfdir}/pam.d/xfce4-screensaver
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.3.bb
similarity index 65%
rename from meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb
rename to meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.3.bb
index bb44ec7..10427da 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.3.bb
@@ -1,13 +1,13 @@
 SUMMARY = "Application to take screenshots"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
+HOMEPAGE = "https://docs.xfce.org/apps/xfce4-screenshooter/start"
 SECTION = "x11/application"
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+3 glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11 libxml-parser-perl-native"
 
 inherit xfce-app perlnative
 
-SRC_URI[sha256sum] = "04b4178527f5b98cfe76ae427e95581067edf262a530639d332f6db9a68292d7"
+SRC_URI[sha256sum] = "a454159847becfeca274a5b58c0e5817d4a260a29345a37bbc3b4ff46f8f3818"
 
 do_compile:prepend() {
     mkdir -p lib
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb
deleted file mode 100644
index a3d10cd..0000000
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Easy to use task manager"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-app
-
-DEPENDS += "gtk+3 cairo libwnck libxfce4ui libxmu xfce4-dev-tools-native"
-
-SRC_URI[sha256sum] = "bd25143f47a29000b4148874863dffa521b1a37cb01dbc026f423ea3160f9a35"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.bb
new file mode 100644
index 0000000..802d6af
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Easy to use task manager"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-app
+
+DEPENDS += "gtk+3 cairo libwnck libxfce4ui libxmu xfce4-dev-tools-native"
+
+SRC_URI[sha256sum] = "f64f01ba241a0b8bbf2ed3274e5decc2313c9f8b0e4d160db3ba69b331558ae5"
diff --git a/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb b/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb
similarity index 79%
rename from meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb
rename to meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb
index 85b0812..edb0c61 100644
--- a/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb
@@ -10,6 +10,6 @@
     ${datadir}/gnome-control-center \
 "
 
-SRC_URI[sha256sum] = "593b6a7bd9b18851e51854e075990109b7896a22713b5dd8b913b23f21db6576"
+SRC_URI[sha256sum] = "78e55957af7c6fc1f283e90be33988661593a4da98383da1b0b54fdf6554baf4"
 
 RRECOMMENDS:${PN} += "vte-prompt"
diff --git a/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch b/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch
index d81f702..64f06ce 100644
--- a/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch
+++ b/meta-openembedded/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch
@@ -9,6 +9,7 @@
 
 Makes it compile/build with musl
 
+Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
 Patch Reworked for xfce4-mount-plugin 0.6.4->1.1.2
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.1.bb
similarity index 82%
rename from meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.0.bb
rename to meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.1.bb
index c2c4b9f..044a39a 100644
--- a/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.1.bb
@@ -5,7 +5,7 @@
 
 inherit thunar-plugin
 
-SRC_URI[sha256sum] = "8eca88a358282a5acdea72984db0d930efdf658b4bc5b82ef7bcd06224366ffa"
+SRC_URI[sha256sum] = "a81b3ab1d3cd77c7b3d6db15b37a3c12d65b06e373edc3c21083f02d605d8bed"
 
 # install tap files in ${libdir}/thunar-archive-plugin
 EXTRA_OECONF += "--libexecdir=${libdir}"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb
deleted file mode 100644
index 06695f6..0000000
--- a/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Adds ID3/OGG tag support to the Thunar bulk rename dialog"
-HOMEPAGE = "http://thunar.xfce.org"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit thunar-plugin
-
-DEPENDS += "taglib"
-
-SRC_URI[md5sum] = "5e332113e4b0e548ee7abd87629667f7"
-SRC_URI[sha256sum] = "e265c4415abac40337cc5566c6f706efcf0be4e97723abe22ba8b874c93a591b"
diff --git a/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb b/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb
new file mode 100644
index 0000000..00afa2b
--- /dev/null
+++ b/meta-openembedded/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Adds ID3/OGG tag support to the Thunar bulk rename dialog"
+HOMEPAGE = "https://docs.xfce.org/xfce/thunar/media-tags"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit thunar-plugin
+
+DEPENDS += "taglib"
+
+SRC_URI[sha256sum] = "9592111e11699e449c1fbd5f72d1633ef39b00f17a988cd251ba228dab4fc90a"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_4.18.1.bb
similarity index 82%
rename from meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_4.18.1.bb
index 6a1ee7b..c139bfd 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/garcon/garcon_4.18.1.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "Xfce Menu Library"
 SECTION = "x11/libs"
-LICENSE = "LGPL-2.0-only"
+LICENSE = "LGPL-2.0-only & GFDL-1.1-no-invariants-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b"
 DEPENDS = "xfce4-dev-tools-native libxfce4ui intltool-native"
 
@@ -11,7 +11,7 @@
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
 SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch"
-SRC_URI[sha256sum] = "54633487566a8b8502b71c11a7f719efe27c069bd5773cc95f11ff4ea8f11a14"
+SRC_URI[sha256sum] = "fe7a932a6dac95eb1438f3fbfd53096756ff2e1cb179d10d0fb796cefbb4c20b"
 
 EXTRA_OECONF = "--disable-gtk-doc"
 
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.3.bb
similarity index 92%
rename from meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.3.bb
index 7ff9d1b..417858c 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.3.bb
@@ -12,7 +12,7 @@
 
 # TODO: Check if 0001-... can go
 SRC_URI += "file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch"
-SRC_URI[sha256sum] = "532247c4387c17bb9ef94a73147039b8d013c3131c95cdbd2fa85fbcc848d06b"
+SRC_URI[sha256sum] = "afa3a46eeed3ab612d2f7e1308edaf5819f6c33ccc16c13080efabd58f010abd"
 
 EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
 EXTRA_OECONF += "--disable-vala"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.bb
similarity index 75%
rename from meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.bb
index 3dd1f55..683f6c3 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.bb
@@ -6,4 +6,4 @@
 
 inherit xfce gtk-doc gobject-introspection vala
 
-SRC_URI[sha256sum] = "1157ca717fd3dd1da7724a6432a4fb24af9cd922f738e971fd1fd36dfaeac3c9"
+SRC_URI[sha256sum] = "8a52063a5adc66252238cad9ee6997909b59983ed21c77eb83c5e67829d1b01f"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.18.4.bb
similarity index 92%
rename from meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.18.4.bb
index 508416b..921dba0 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/thunar/thunar_4.18.4.bb
@@ -10,7 +10,7 @@
 # cairo would at least needed to be built with xlib.
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
-SRC_URI[sha256sum] = "d1f4b080c97b9e390eff199aaaac7562fb20f031686f8d5ee5207e953bfc2feb"
+SRC_URI[sha256sum] = "c4463ce2fb1d628adce70a828e8b4de5fa0802236894d2c40f749471619bedcc"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
 PACKAGECONFIG[pcre] = "--enable-pcre2,--disable-pcre2,libpcre2"
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
index 10c456f..154f72d 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
@@ -14,7 +14,7 @@
 
 Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
 
-Rebase for xfce4 4.18.0.
+Rebase for xfce4-panel 4.18.3.
 
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
 ---
@@ -22,10 +22,10 @@
  1 file changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/plugins/windowmenu/windowmenu.c b/plugins/windowmenu/windowmenu.c
-index ba245a3..f8fdee8 100644
+index be7dea4..2f432b0 100644
 --- a/plugins/windowmenu/windowmenu.c
 +++ b/plugins/windowmenu/windowmenu.c
-@@ -250,7 +250,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
+@@ -262,7 +262,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
    g_signal_connect (G_OBJECT (plugin->button), "toggled",
        G_CALLBACK (window_menu_plugin_menu), plugin);
  
@@ -33,8 +33,8 @@
 +  plugin->icon = gtk_image_new_from_icon_name (NULL, GTK_ICON_SIZE_BUTTON);
    gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon);
    gtk_widget_show (plugin->icon);
- }
-@@ -680,19 +680,19 @@ window_menu_plugin_active_window_changed (WnckScreen       *screen,
+ 
+@@ -695,19 +695,19 @@ window_menu_plugin_active_window_changed (WnckScreen       *screen,
            /* skip 'fake' windows */
            type = wnck_window_get_window_type (window);
            if (type == WNCK_WINDOW_DESKTOP || type == WNCK_WINDOW_DOCK)
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
index b06e26e..66a33c7 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
@@ -9,15 +9,19 @@
 Upstream-Status: Inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase for xfce4-panel 4.18.3.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
 ---
  plugins/actions/actions.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/plugins/actions/actions.c b/plugins/actions/actions.c
-index 474798e..63eb41d 100644
+index e1f1fa7..440f430 100644
 --- a/plugins/actions/actions.c
 +++ b/plugins/actions/actions.c
-@@ -905,12 +905,12 @@ actions_plugin_actions_allowed (void)
+@@ -977,12 +977,12 @@ actions_plugin_actions_allowed (void)
    GError          *error = NULL;
  
    /* check for commands we use */
@@ -32,7 +36,7 @@
      g_free (path);
      path = g_find_program_in_path ("gdmflexiserver");
      if (path != NULL)
-@@ -1027,9 +1027,9 @@ actions_plugin_action_activate (GtkWidget      *widget,
+@@ -1099,9 +1099,9 @@ actions_plugin_action_activate (GtkWidget      *widget,
        break;
  
      case ACTION_TYPE_SWITCH_USER:
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb
similarity index 94%
rename from meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb
index 5dcd69d..7e70754 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb
@@ -14,7 +14,7 @@
     file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
     file://0002-use-lxdm-to-replace-dm-tool.patch \
 "
-SRC_URI[sha256sum] = "be80023fd546587831bab25ded15ae4c9e346289a75744b6ba4cf4ee53794710"
+SRC_URI[sha256sum] = "4ae0b8615c9811194bbda0172a63567ed7fdb5519ea48f7a4637f4e6e5365e1b"
 
 EXTRA_OECONF += "--disable-vala"
 
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb
similarity index 93%
rename from meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb
index f61c9cd..f7f7235 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb
@@ -11,7 +11,7 @@
 
 DEPENDS += "libnotify libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver"
 
-SRC_URI[sha256sum] = "2eee467886252f9fa704c978ec67dafad5274ede93e59b092a688faa7e72c39a"
+SRC_URI[sha256sum] = "6b08b10c4cb7516377dbd32c6cc2296a9faf47022c555f11e75b38fde14aff03"
 
 EXTRA_OECONF = " \
     --enable-network-manager \
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb
similarity index 91%
rename from meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb
index 25d30ce..4021243 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb
@@ -8,7 +8,7 @@
 inherit xfce update-alternatives features_check
 
 SRC_URI += "file://0001-configure.in-hard-code-path-to-iceauth.patch"
-SRC_URI[sha256sum] = "38badb500b272012f494543a60a9c0563c381647cc95bed73b68aec0b0b89a7f"
+SRC_URI[sha256sum] = "01ff7fe8d4c2091adefc2925c6b7bb93152ba0732e95c9b9e64d8207fdbdeb8a"
 
 REQUIRED_DISTRO_FEATURES = "x11"
 
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch
index 0463d2e..3a4c009 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch
@@ -6,7 +6,7 @@
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
 
-Upstram status:  Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
 
 Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
 
@@ -22,11 +22,11 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/xfsettingsd/xsettings.xml b/xfsettingsd/xsettings.xml
-index 65ba1ee..9efb3cd 100644
+index d8fe2ac..0f5246b 100644
 --- a/xfsettingsd/xsettings.xml
 +++ b/xfsettingsd/xsettings.xml
-@@ -1,8 +1,8 @@
- <?xml version="1.0" encoding="UTF-8"?>
+@@ -6,8 +6,8 @@
+ 
  <channel name="xsettings" version="1.0">
    <property name="Net" type="empty">
 -    <property name="ThemeName" type="empty"/>
diff --git a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.0.bb b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb
similarity index 92%
rename from meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.0.bb
rename to meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb
index 0692970..0a18227 100644
--- a/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.0.bb
+++ b/meta-openembedded/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb
@@ -9,7 +9,7 @@
 REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI += "file://0001-xsettings.xml-Set-default-themes.patch"
-SRC_URI[sha256sum] = "ed3f75837cb33cd694610fc87cd569c4782b7ac4e099143a3dbe8fff1f1c6a9d"
+SRC_URI[sha256sum] = "4661361087faae57efb49741ffcf90bf9078760e163bbdef63b924083bdc4f22"
 
 EXTRA_OECONF += "--enable-maintainer-mode --disable-debug"
 
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index ba3029f..b486633 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -35,6 +35,7 @@
     overlays/i2c-rtc.dtbo \
     overlays/imx219.dtbo \
     overlays/imx477.dtbo \
+    overlays/imx708.dtbo \
     overlays/iqaudio-dac.dtbo \
     overlays/iqaudio-dacplus.dtbo \
     overlays/mcp2515-can0.dtbo \
diff --git a/meta-raspberrypi/docs/extra-build-config.md b/meta-raspberrypi/docs/extra-build-config.md
index 11f7bde..128753d 100644
--- a/meta-raspberrypi/docs/extra-build-config.md
+++ b/meta-raspberrypi/docs/extra-build-config.md
@@ -379,19 +379,27 @@
         # Raspberry Pi 7\" display/touch screen \n \
         lcd_rotate=2 \n \
         '
-## Enable Raspberrypi Camera V2
+## Enable Raspberry Pi Camera Module
 
-RaspberryPi does not have the unicam device ( RaspberryPi Camera ) enabled by default.
+Raspberry Pi does not have the unicam device ( Raspberry Pi Camera ) enabled by default.
 Because this unicam device ( bcm2835-unicam ) as of now is used by libcamera opensource.
-So we have to explicitly set in local.conf.
+So we have to explicitly enable it in local.conf.
 
     RASPBERRYPI_CAMERA_V2 = "1"
 
-This will add the device tree overlays imx219 ( RaspberryPi Camera sensor V2 driver ) to config.txt.
-Also, this will enable adding Contiguous Memory Allocation value in the cmdline.txt.
+This will add the device tree overlay imx219 ( Raspberry Pi Camera Module V2 sensor driver 
+) to config.txt. Also, this will enable adding Contiguous Memory Allocation value in the 
+cmdline.txt.
 
-Ref.:
-* <https://github.com/raspberrypi/documentation/blob/master/linux/software/libcamera/README.md>
+Similarly, the Raspberry Pi Camera Module v3 also has to be explicitly enabled in local.conf.
+
+    RASPBERRYPI_CAMERA_V3 = "1"
+
+This will add the device tree overlay imx708 ( Raspberry Pi Camera Module V3 sensor driver ) 
+to config.txt.
+
+See:
+* <https://www.raspberrypi.com/documentation/computers/camera_software.html>
 * <https://www.raspberrypi.org/blog/an-open-source-camera-stack-for-raspberry-pi-using-libcamera/>
 
 ## WM8960 soundcard support
diff --git a/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-blinka_6.2.2.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
similarity index 100%
rename from meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-blinka_6.2.2.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-blinka_6.2.2.bb
diff --git a/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-busdevice_5.0.5.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
similarity index 100%
rename from meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-busdevice_5.0.5.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-busdevice_5.0.5.bb
diff --git a/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motor_3.2.6.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
similarity index 100%
rename from meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motor_3.2.6.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-motor_3.2.6.bb
diff --git a/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motorkit_1.6.1.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
similarity index 100%
rename from meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-motorkit_1.6.1.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-motorkit_1.6.1.bb
diff --git a/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-pca9685_3.3.4.bb b/meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
similarity index 100%
rename from meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python3-adafruit-circuitpython-pca9685_3.3.4.bb
rename to meta-raspberrypi/dynamic-layers/openembedded-layer/recipes-devtools/python/python3-adafruit-circuitpython-pca9685_3.3.4.bb
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
index 9d007e0..22fce77 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -210,6 +210,12 @@
     #    echo "dtoverlay=imx477" >> $CONFIG
     #fi
 
+    # Choose Camera Sensor to be used, default imx708 sensor
+    if [ "${RASPBERRYPI_CAMERA_V3}" = "1" ]; then
+        echo "# Enable Sony RaspberryPi Camera(imx708)" >> $CONFIG
+        echo "dtoverlay=imx708" >> $CONFIG
+    fi
+
     # Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
     if [ "${WAVESHARE_1024X600_C_2_1}" = "1" ]; then
         echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> $CONFIG
diff --git a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/checksecurity_2.0.15.bb b/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/checksecurity_2.0.15.bb
deleted file mode 100644
index e053a15..0000000
--- a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/checksecurity_2.0.15.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "basic system security checks"
-DESCRIPTION = "checksecurity is a simple package which will scan your system for several simple security holes."
-SECTION = "security"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
-
-SRC_URI = "http://ftp.de.debian.org/debian/pool/main/c/checksecurity/checksecurity_${PV}.tar.gz \
-           file://setuid-log-folder.patch \
-           file://check-setuid-use-more-portable-find-args.patch"
-
-SRC_URI[md5sum] = "a30161c3e24d3be710b2fd13fcd1f32f"
-SRC_URI[sha256sum] = "67abe3d6391c96146e96f376d3fd6eb7a9418b0f7fe205b465219889791dba32"
-
-do_compile() {
-}
-
-do_install() {
-    oe_runmake PREFIX=${D}
-}
-
-RDEPENDS:${PN} = "perl libenv-perl perl-module-tie-array perl-module-getopt-long perl-module-file-glob perl-module-carp perl-module-env perl-module-tap-parser-iterator-array util-linux findutils coreutils"
diff --git a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/checksecurity_2.0.16.bb b/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/checksecurity_2.0.16.bb
new file mode 100644
index 0000000..8006c9f
--- /dev/null
+++ b/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/checksecurity_2.0.16.bb
@@ -0,0 +1,29 @@
+SUMMARY = "basic system security checks"
+DESCRIPTION = "checksecurity is a simple package which will scan your system for several simple security holes."
+SECTION = "security"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "http://ftp.de.debian.org/debian/pool/main/c/checksecurity/checksecurity_${PV}+nmu1.tar.gz \
+           file://check-setuid-use-more-portable-find-args.patch \
+          "
+
+SRC_URI[sha256sum] = "9803b3760e9ec48e06ebaf48cec081db48c6fe72254a476224e4c5c55ed97fb0"
+
+S = "${WORKDIR}/checksecurity-${PV}+nmu1"
+
+
+# allow for anylocal, no need to patch
+LOGDIR="/etc/checksecurity"
+
+do_compile() {
+    sed -i -e "s;LOGDIR=/var/log/setuid;LOGDIR=${LOGDIR};g" ${B}/etc/check-setuid.conf
+    sed -i -e "s;LOGDIR=/var/log/setuid;LOGDIR=${LOGDIR};g" ${B}/plugins/check-setuid
+    sed -i -e "s;LOGDIR:=/var/log/setuid;LOGDIR:=${LOGDIR};g" ${B}/plugins/check-setuid
+}
+
+do_install() {
+    oe_runmake PREFIX=${D}
+}
+
+RDEPENDS:${PN} = "perl libenv-perl perl-module-tie-array perl-module-getopt-long perl-module-file-glob perl-module-carp perl-module-env perl-module-tap-parser-iterator-array util-linux findutils coreutils"
diff --git a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/check-setuid-use-more-portable-find-args.patch b/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/check-setuid-use-more-portable-find-args.patch
index f1fe8ed..1a2f364 100644
--- a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/check-setuid-use-more-portable-find-args.patch
+++ b/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/check-setuid-use-more-portable-find-args.patch
@@ -8,16 +8,16 @@
  plugins/check-setuid | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
 
-Index: checksecurity-2.0.15/plugins/check-setuid
+Index: checksecurity-2.0.16+nmu1/plugins/check-setuid
 ===================================================================
---- checksecurity-2.0.15.orig/plugins/check-setuid	2018-09-06 00:49:23.930934294 +0500
-+++ checksecurity-2.0.15/plugins/check-setuid	2018-09-06 00:49:49.694934757 +0500
-@@ -99,7 +99,7 @@
- ionice -t -c3 \
+--- checksecurity-2.0.16+nmu1.orig/plugins/check-setuid
++++ checksecurity-2.0.16+nmu1/plugins/check-setuid
+@@ -100,7 +100,7 @@ ionice -t -c3 \
  find `mount | grep -vE "$CHECKSECURITY_FILTER" | cut -d ' ' -f 3` \
- 	-xdev $PATHCHK \
--	\( -type f -perm +06000 -o \( \( -type b -o -type c \) \
-+	\( -type f \( -perm -4000 -o -perm -2000 \) -o \( \( -type b -o -type c \) \
- 	$DEVCHK \) \) \
          -ignore_readdir_race  \
+ 	-xdev $PATHCHK \
+-	\( -type f -perm /06000 -o \( \( -type b -o -type c \) \
++    \( -type f \( -perm -4000 -o -perm -2000 \) -o \( \( -type b -o -type c \) \	
+ 	$DEVCHK \) \) \
  	-printf "%8i %5m %3n %-10u %-10g %9s %t %h/%f\n" |
+ 	sort -k 12 >$TMPSETUID
diff --git a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/setuid-log-folder.patch b/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/setuid-log-folder.patch
deleted file mode 100644
index 540ea9c..0000000
--- a/meta-security/dynamic-layers/meta-perl/recipes-scanners/checksecurity/files/setuid-log-folder.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 24dbeec135ff83f2fd35ef12fe9842f02d6fd337 Mon Sep 17 00:00:00 2001
-From: Andrei Dinu <andrei.adrianx.dinu@intel.com>
-Date: Thu, 20 Jun 2013 15:14:55 +0300
-Subject: [PATCH] changed log folder for check-setuid
-
-check-setuid was creating logs in /var/log directory,
-which cannot be created persistently. To avoid errors
-the log folder was changed to /etc/checksecurity/.
-
-Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
----
- etc/check-setuid.conf |    2 +-
- plugins/check-setuid  |    6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/etc/check-setuid.conf b/etc/check-setuid.conf
-index 621336f..e1532c0 100644
---- a/etc/check-setuid.conf
-+++ b/etc/check-setuid.conf
-@@ -116,4 +116,4 @@ CHECKSECURITY_PATHFILTER="-false"
- #
- # Location of setuid file databases. 
- #
--LOGDIR=/var/log/setuid
-+LOGDIR=/etc/checksecurity/
-diff --git a/plugins/check-setuid b/plugins/check-setuid
-index 8d6f90b..bdb21c1 100755
---- a/plugins/check-setuid
-+++ b/plugins/check-setuid
-@@ -44,8 +44,8 @@ if [ `/usr/bin/id -u` != 0 ] ; then
-    exit 1
- fi
- 
--TMPSETUID=${LOGDIR:=/var/log/setuid}/setuid.new.tmp
--TMPDIFF=${LOGDIR:=/var/log/setuid}/setuid.diff.tmp
-+TMPSETUID=${LOGDIR:=/etc/checksecurity/}/setuid.new.tmp
-+TMPDIFF=${LOGDIR:=/etc/checksecurity/}/setuid.diff.tmp
- 
- #
- # Check for NFS/AFS mounts that are not nosuid/nodev
-@@ -75,7 +75,7 @@ if [ "$CHECKSECURITY_NOFINDERRORS" = "TRUE" ] ; then
- fi
- 
- # Guard against undefined vars
--[ -z "$LOGDIR" ] && LOGDIR=/var/log/setuid
-+[ -z "$LOGDIR" ] && LOGDIR=/etc/checksecurity/
- if [ ! -e "$LOGDIR" ] ; then
-     echo "ERROR: Log directory $LOGDIR does not exist"
-     exit 1
--- 
-1.7.9.5
-
diff --git a/meta-security/meta-parsec/lib/oeqa/runtime/cases/parsec.py b/meta-security/meta-parsec/lib/oeqa/runtime/cases/parsec.py
index 6be84ba..004717d 100644
--- a/meta-security/meta-parsec/lib/oeqa/runtime/cases/parsec.py
+++ b/meta-security/meta-parsec/lib/oeqa/runtime/cases/parsec.py
@@ -24,6 +24,10 @@
             self.parsec_status='pgrep -l parsec'
             self.parsec_reload='/etc/init.d/parsec reload'
 
+    def tearDown(self):
+        self.target.run('sync')
+        super(ParsecTest, self).tearDown()
+
     def copy_subconfig(self, cfg, provider):
         """ Copy a provider configuration to target and append it to Parsec config """
 
@@ -53,17 +57,26 @@
             self.assertIn("ID: 0x0%d (%s provider)" % (prov_id, provider),
                           output, msg='%s provider is not configured.' % provider)
 
-    def run_cli_tests(self, prov_id=None):
+    def run_cli_tests(self, prov_id=None, extra_params=""):
         """ Run Parsec CLI end-to-end tests against one or all providers """
 
-        status, output = self.target.run('parsec-cli-tests.sh %s' % ("-%d" % prov_id if prov_id else ""))
+        status, output = self.target.run('parsec-cli-tests.sh %s %s' % ("-%d" % prov_id if prov_id else "", extra_params))
         self.assertEqual(status, 0, msg='Parsec CLI tests failed.\n %s' % output)
 
     def check_packageconfig(self, prov):
         """ Check that the require provider is included in Parsec """
-        if prov not in self.tc.td['PACKAGECONFIG:pn-parsec-service']:
+
+        if 'PACKAGECONFIG:pn-parsec-service' in self.tc.td.keys():
+            providers = self.tc.td['PACKAGECONFIG:pn-parsec-service']
+        else:
+            # PACKAGECONFIG is not defined in local.conf
+            # Let's use the default value
+            providers = "PKCS11 MBED-CRYPTO"
+            if 'tpm2' in self.tc.td['DISTRO_FEATURES']:
+                providers += " TPM"
+        if prov not in providers:
             self.skipTest('%s provider is not included in Parsec. Parsec PACKAGECONFIG: "%s"' % \
-                          (prov, self.tc.td['PACKAGECONFIG:pn-parsec-service']))
+                          (prov, providers))
 
     def check_packages(self, prov, packages):
         """ Check for the required packages for Parsec providers software backends """
@@ -181,7 +194,9 @@
             self.configure_pkcs11_provider()
             self.check_parsec_providers("PKCS #11", prov_id)
 
-        self.run_cli_tests(prov_id)
+        # Software PKCS11 we use for OE QA testing
+        # doesn't support RSA-OAEP(SHA256) encryption/decryption operations
+        self.run_cli_tests(prov_id, "--no-oaep")
         self.restore_parsec_config()
 
     def configure_TS_provider(self):
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service-crates.inc b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service-crates.inc
new file mode 100644
index 0000000..604e1ea
--- /dev/null
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service-crates.inc
@@ -0,0 +1,460 @@
+# Autogenerated with 'bitbake -c update_crates parsec-service'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/ahash/0.7.6;name=ahash-0.7.6 \
+    crate://crates.io/aho-corasick/0.7.20;name=aho-corasick-0.7.20 \
+    crate://crates.io/ansi_term/0.12.1;name=ansi_term-0.12.1 \
+    crate://crates.io/anyhow/1.0.69;name=anyhow-1.0.69 \
+    crate://crates.io/asn1-rs/0.3.1;name=asn1-rs-0.3.1 \
+    crate://crates.io/asn1-rs-derive/0.1.0;name=asn1-rs-derive-0.1.0 \
+    crate://crates.io/asn1-rs-impl/0.1.0;name=asn1-rs-impl-0.1.0 \
+    crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
+    crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
+    crate://crates.io/base64/0.13.1;name=base64-0.13.1 \
+    crate://crates.io/bincode/1.3.3;name=bincode-1.3.3 \
+    crate://crates.io/bindgen/0.57.0;name=bindgen-0.57.0 \
+    crate://crates.io/bindgen/0.63.0;name=bindgen-0.63.0 \
+    crate://crates.io/bitfield/0.13.2;name=bitfield-0.13.2 \
+    crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
+    crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \
+    crate://crates.io/bytes/1.4.0;name=bytes-1.4.0 \
+    crate://crates.io/cc/1.0.79;name=cc-1.0.79 \
+    crate://crates.io/cexpr/0.4.0;name=cexpr-0.4.0 \
+    crate://crates.io/cexpr/0.6.0;name=cexpr-0.6.0 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/clang-sys/1.6.0;name=clang-sys-1.6.0 \
+    crate://crates.io/clap/2.34.0;name=clap-2.34.0 \
+    crate://crates.io/cmake/0.1.45;name=cmake-0.1.45 \
+    crate://crates.io/const-oid/0.7.1;name=const-oid-0.7.1 \
+    crate://crates.io/cryptoauthlib-sys/0.2.2;name=cryptoauthlib-sys-0.2.2 \
+    crate://crates.io/cryptoki/0.3.1;name=cryptoki-0.3.1 \
+    crate://crates.io/cryptoki-sys/0.1.5;name=cryptoki-sys-0.1.5 \
+    crate://crates.io/data-encoding/2.3.3;name=data-encoding-2.3.3 \
+    crate://crates.io/der/0.5.1;name=der-0.5.1 \
+    crate://crates.io/der-parser/7.0.0;name=der-parser-7.0.0 \
+    crate://crates.io/derivative/2.2.0;name=derivative-2.2.0 \
+    crate://crates.io/displaydoc/0.2.3;name=displaydoc-0.2.3 \
+    crate://crates.io/either/1.8.1;name=either-1.8.1 \
+    crate://crates.io/enumflags2/0.7.5;name=enumflags2-0.7.5 \
+    crate://crates.io/enumflags2_derive/0.7.4;name=enumflags2_derive-0.7.4 \
+    crate://crates.io/env_logger/0.8.4;name=env_logger-0.8.4 \
+    crate://crates.io/errno/0.2.8;name=errno-0.2.8 \
+    crate://crates.io/errno-dragonfly/0.1.2;name=errno-dragonfly-0.1.2 \
+    crate://crates.io/fallible-iterator/0.2.0;name=fallible-iterator-0.2.0 \
+    crate://crates.io/fallible-streaming-iterator/0.1.9;name=fallible-streaming-iterator-0.1.9 \
+    crate://crates.io/fastrand/1.9.0;name=fastrand-1.9.0 \
+    crate://crates.io/fixedbitset/0.2.0;name=fixedbitset-0.2.0 \
+    crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \
+    crate://crates.io/futures/0.3.27;name=futures-0.3.27 \
+    crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \
+    crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \
+    crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \
+    crate://crates.io/futures-io/0.3.27;name=futures-io-0.3.27 \
+    crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \
+    crate://crates.io/futures-sink/0.3.27;name=futures-sink-0.3.27 \
+    crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \
+    crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \
+    crate://crates.io/generic-array/0.14.6;name=generic-array-0.14.6 \
+    crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
+    crate://crates.io/glob/0.3.1;name=glob-0.3.1 \
+    crate://crates.io/grpcio/0.9.1;name=grpcio-0.9.1 \
+    crate://crates.io/grpcio-sys/0.9.1+1.38.0;name=grpcio-sys-0.9.1+1.38.0 \
+    crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \
+    crate://crates.io/hashlink/0.8.1;name=hashlink-0.8.1 \
+    crate://crates.io/heck/0.3.3;name=heck-0.3.3 \
+    crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
+    crate://crates.io/hermit-abi/0.2.6;name=hermit-abi-0.2.6 \
+    crate://crates.io/hex/0.4.3;name=hex-0.4.3 \
+    crate://crates.io/hostname-validator/1.1.1;name=hostname-validator-1.1.1 \
+    crate://crates.io/humantime/2.1.0;name=humantime-2.1.0 \
+    crate://crates.io/idna/0.3.0;name=idna-0.3.0 \
+    crate://crates.io/indexmap/1.9.2;name=indexmap-1.9.2 \
+    crate://crates.io/instant/0.1.12;name=instant-0.1.12 \
+    crate://crates.io/io-lifetimes/1.0.6;name=io-lifetimes-1.0.6 \
+    crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
+    crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \
+    crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \
+    crate://crates.io/jsonwebkey/0.3.5;name=jsonwebkey-0.3.5 \
+    crate://crates.io/jsonwebtoken/8.2.0;name=jsonwebtoken-8.2.0 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/lazycell/1.3.0;name=lazycell-1.3.0 \
+    crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
+    crate://crates.io/libloading/0.7.4;name=libloading-0.7.4 \
+    crate://crates.io/libsqlite3-sys/0.25.2;name=libsqlite3-sys-0.25.2 \
+    crate://crates.io/libz-sys/1.1.8;name=libz-sys-1.1.8 \
+    crate://crates.io/linux-raw-sys/0.1.4;name=linux-raw-sys-0.1.4 \
+    crate://crates.io/lock_api/0.4.9;name=lock_api-0.4.9 \
+    crate://crates.io/log/0.4.17;name=log-0.4.17 \
+    crate://crates.io/mbox/0.6.0;name=mbox-0.6.0 \
+    crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
+    crate://crates.io/minimal-lexical/0.2.1;name=minimal-lexical-0.2.1 \
+    crate://crates.io/multimap/0.8.3;name=multimap-0.8.3 \
+    crate://crates.io/nom/5.1.2;name=nom-5.1.2 \
+    crate://crates.io/nom/7.1.3;name=nom-7.1.3 \
+    crate://crates.io/num/0.4.0;name=num-0.4.0 \
+    crate://crates.io/num-bigint/0.4.3;name=num-bigint-0.4.3 \
+    crate://crates.io/num-complex/0.4.3;name=num-complex-0.4.3 \
+    crate://crates.io/num-derive/0.3.3;name=num-derive-0.3.3 \
+    crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
+    crate://crates.io/num-iter/0.1.43;name=num-iter-0.1.43 \
+    crate://crates.io/num-rational/0.4.1;name=num-rational-0.4.1 \
+    crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
+    crate://crates.io/num_cpus/1.15.0;name=num_cpus-1.15.0 \
+    crate://crates.io/num_threads/0.1.6;name=num_threads-0.1.6 \
+    crate://crates.io/oid/0.2.1;name=oid-0.2.1 \
+    crate://crates.io/oid-registry/0.4.0;name=oid-registry-0.4.0 \
+    crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
+    crate://crates.io/parking_lot/0.11.2;name=parking_lot-0.11.2 \
+    crate://crates.io/parking_lot_core/0.8.6;name=parking_lot_core-0.8.6 \
+    crate://crates.io/parsec-interface/0.28.0;name=parsec-interface-0.28.0 \
+    crate://crates.io/peeking_take_while/0.1.2;name=peeking_take_while-0.1.2 \
+    crate://crates.io/pem/1.1.1;name=pem-1.1.1 \
+    crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \
+    crate://crates.io/pest/2.5.6;name=pest-2.5.6 \
+    crate://crates.io/petgraph/0.5.1;name=petgraph-0.5.1 \
+    crate://crates.io/picky-asn1/0.3.3;name=picky-asn1-0.3.3 \
+    crate://crates.io/picky-asn1-der/0.2.5;name=picky-asn1-der-0.2.5 \
+    crate://crates.io/picky-asn1-x509/0.6.1;name=picky-asn1-x509-0.6.1 \
+    crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
+    crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
+    crate://crates.io/pkcs8/0.8.0;name=pkcs8-0.8.0 \
+    crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
+    crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
+    crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
+    crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
+    crate://crates.io/proc-macro2/1.0.52;name=proc-macro2-1.0.52 \
+    crate://crates.io/prost/0.8.0;name=prost-0.8.0 \
+    crate://crates.io/prost-build/0.8.0;name=prost-build-0.8.0 \
+    crate://crates.io/prost-derive/0.8.0;name=prost-derive-0.8.0 \
+    crate://crates.io/prost-types/0.8.0;name=prost-types-0.8.0 \
+    crate://crates.io/protobuf/2.28.0;name=protobuf-2.28.0 \
+    crate://crates.io/psa-crypto/0.10.0;name=psa-crypto-0.10.0 \
+    crate://crates.io/psa-crypto-sys/0.10.0;name=psa-crypto-sys-0.10.0 \
+    crate://crates.io/quote/1.0.26;name=quote-1.0.26 \
+    crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
+    crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
+    crate://crates.io/redox_syscall/0.2.16;name=redox_syscall-0.2.16 \
+    crate://crates.io/regex/1.7.1;name=regex-1.7.1 \
+    crate://crates.io/regex-syntax/0.6.28;name=regex-syntax-0.6.28 \
+    crate://crates.io/ring/0.16.20;name=ring-0.16.20 \
+    crate://crates.io/rusqlite/0.28.0;name=rusqlite-0.28.0 \
+    crate://crates.io/rust-cryptoauthlib/0.4.5;name=rust-cryptoauthlib-0.4.5 \
+    crate://crates.io/rustc-hash/1.1.0;name=rustc-hash-1.1.0 \
+    crate://crates.io/rustc_version/0.3.3;name=rustc_version-0.3.3 \
+    crate://crates.io/rusticata-macros/4.1.0;name=rusticata-macros-4.1.0 \
+    crate://crates.io/rustix/0.36.9;name=rustix-0.36.9 \
+    crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \
+    crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
+    crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
+    crate://crates.io/sd-notify/0.3.0;name=sd-notify-0.3.0 \
+    crate://crates.io/secrecy/0.7.0;name=secrecy-0.7.0 \
+    crate://crates.io/semver/0.11.0;name=semver-0.11.0 \
+    crate://crates.io/semver-parser/0.10.2;name=semver-parser-0.10.2 \
+    crate://crates.io/serde/1.0.156;name=serde-1.0.156 \
+    crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \
+    crate://crates.io/serde_derive/1.0.156;name=serde_derive-1.0.156 \
+    crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \
+    crate://crates.io/shlex/0.1.1;name=shlex-0.1.1 \
+    crate://crates.io/shlex/1.1.0;name=shlex-1.1.0 \
+    crate://crates.io/signal-hook/0.3.15;name=signal-hook-0.3.15 \
+    crate://crates.io/signal-hook-registry/1.4.1;name=signal-hook-registry-1.4.1 \
+    crate://crates.io/simple_asn1/0.6.2;name=simple_asn1-0.6.2 \
+    crate://crates.io/slab/0.4.8;name=slab-0.4.8 \
+    crate://crates.io/smallvec/1.10.0;name=smallvec-1.10.0 \
+    crate://crates.io/spiffe/0.2.1;name=spiffe-0.2.1 \
+    crate://crates.io/spin/0.5.2;name=spin-0.5.2 \
+    crate://crates.io/spki/0.5.4;name=spki-0.5.4 \
+    crate://crates.io/stable_deref_trait/1.2.0;name=stable_deref_trait-1.2.0 \
+    crate://crates.io/strsim/0.8.0;name=strsim-0.8.0 \
+    crate://crates.io/structopt/0.3.26;name=structopt-0.3.26 \
+    crate://crates.io/structopt-derive/0.4.18;name=structopt-derive-0.4.18 \
+    crate://crates.io/strum_macros/0.21.1;name=strum_macros-0.21.1 \
+    crate://crates.io/syn/1.0.109;name=syn-1.0.109 \
+    crate://crates.io/synstructure/0.12.6;name=synstructure-0.12.6 \
+    crate://crates.io/target-lexicon/0.12.6;name=target-lexicon-0.12.6 \
+    crate://crates.io/tempfile/3.4.0;name=tempfile-3.4.0 \
+    crate://crates.io/termcolor/1.2.0;name=termcolor-1.2.0 \
+    crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
+    crate://crates.io/thiserror/1.0.39;name=thiserror-1.0.39 \
+    crate://crates.io/thiserror-impl/1.0.39;name=thiserror-impl-1.0.39 \
+    crate://crates.io/threadpool/1.8.1;name=threadpool-1.8.1 \
+    crate://crates.io/time/0.3.15;name=time-0.3.15 \
+    crate://crates.io/time-macros/0.2.4;name=time-macros-0.2.4 \
+    crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
+    crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \
+    crate://crates.io/toml/0.5.11;name=toml-0.5.11 \
+    crate://crates.io/tss-esapi/7.2.0;name=tss-esapi-7.2.0 \
+    crate://crates.io/tss-esapi-sys/0.4.0;name=tss-esapi-sys-0.4.0 \
+    crate://crates.io/typenum/1.16.0;name=typenum-1.16.0 \
+    crate://crates.io/ucd-trie/0.1.5;name=ucd-trie-0.1.5 \
+    crate://crates.io/unicode-bidi/0.3.11;name=unicode-bidi-0.3.11 \
+    crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \
+    crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \
+    crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
+    crate://crates.io/unicode-width/0.1.10;name=unicode-width-0.1.10 \
+    crate://crates.io/unicode-xid/0.2.4;name=unicode-xid-0.2.4 \
+    crate://crates.io/untrusted/0.7.1;name=untrusted-0.7.1 \
+    crate://crates.io/url/2.3.1;name=url-2.3.1 \
+    crate://crates.io/users/0.11.0;name=users-0.11.0 \
+    crate://crates.io/uuid/0.8.2;name=uuid-0.8.2 \
+    crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
+    crate://crates.io/vec_map/0.8.2;name=vec_map-0.8.2 \
+    crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
+    crate://crates.io/walkdir/2.3.2;name=walkdir-2.3.2 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \
+    crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \
+    crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \
+    crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \
+    crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \
+    crate://crates.io/which/4.4.0;name=which-4.4.0 \
+    crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+    crate://crates.io/windows-sys/0.42.0;name=windows-sys-0.42.0 \
+    crate://crates.io/windows-sys/0.45.0;name=windows-sys-0.45.0 \
+    crate://crates.io/windows-targets/0.42.2;name=windows-targets-0.42.2 \
+    crate://crates.io/windows_aarch64_gnullvm/0.42.2;name=windows_aarch64_gnullvm-0.42.2 \
+    crate://crates.io/windows_aarch64_msvc/0.42.2;name=windows_aarch64_msvc-0.42.2 \
+    crate://crates.io/windows_i686_gnu/0.42.2;name=windows_i686_gnu-0.42.2 \
+    crate://crates.io/windows_i686_msvc/0.42.2;name=windows_i686_msvc-0.42.2 \
+    crate://crates.io/windows_x86_64_gnu/0.42.2;name=windows_x86_64_gnu-0.42.2 \
+    crate://crates.io/windows_x86_64_gnullvm/0.42.2;name=windows_x86_64_gnullvm-0.42.2 \
+    crate://crates.io/windows_x86_64_msvc/0.42.2;name=windows_x86_64_msvc-0.42.2 \
+    crate://crates.io/x509-parser/0.13.2;name=x509-parser-0.13.2 \
+    crate://crates.io/yasna/0.4.0;name=yasna-0.4.0 \
+    crate://crates.io/zeroize/1.5.7;name=zeroize-1.5.7 \
+    crate://crates.io/zeroize_derive/1.3.3;name=zeroize_derive-1.3.3 \
+"
+
+SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+SRC_URI[anyhow-1.0.69.sha256sum] = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+SRC_URI[asn1-rs-0.3.1.sha256sum] = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33"
+SRC_URI[asn1-rs-derive-0.1.0.sha256sum] = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf"
+SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[bincode-1.3.3.sha256sum] = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+SRC_URI[bindgen-0.57.0.sha256sum] = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d"
+SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+SRC_URI[bitfield-0.13.2.sha256sum] = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+SRC_URI[bytes-1.4.0.sha256sum] = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cexpr-0.4.0.sha256sum] = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clang-sys-1.6.0.sha256sum] = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
+SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+SRC_URI[cmake-0.1.45.sha256sum] = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855"
+SRC_URI[const-oid-0.7.1.sha256sum] = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
+SRC_URI[cryptoauthlib-sys-0.2.2.sha256sum] = "da232dd4f06ee4600b33a455bb17fcc6c2c3a54ee7fd60496d3a73668a6cb6e4"
+SRC_URI[cryptoki-0.3.1.sha256sum] = "570006e51d08ec89ce5bbfdcf428ad96111636d524bf2447bee6377fd0e1d889"
+SRC_URI[cryptoki-sys-0.1.5.sha256sum] = "1d12231889cbf7e11d2965a063d9518bc7aac60c5b125dc61c8ff2111a160eae"
+SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
+SRC_URI[der-0.5.1.sha256sum] = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
+SRC_URI[der-parser-7.0.0.sha256sum] = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82"
+SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+SRC_URI[displaydoc-0.2.3.sha256sum] = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[enumflags2-0.7.5.sha256sum] = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
+SRC_URI[enumflags2_derive-0.7.4.sha256sum] = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fallible-iterator-0.2.0.sha256sum] = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+SRC_URI[fallible-streaming-iterator-0.1.9.sha256sum] = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[fixedbitset-0.2.0.sha256sum] = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
+SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+SRC_URI[futures-0.3.27.sha256sum] = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549"
+SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
+SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
+SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
+SRC_URI[futures-io-0.3.27.sha256sum] = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
+SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
+SRC_URI[futures-sink-0.3.27.sha256sum] = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2"
+SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
+SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[grpcio-0.9.1.sha256sum] = "24d99e00eed7e0a04ee2705112e7cfdbe1a3cc771147f22f016a8cd2d002187b"
+SRC_URI[grpcio-sys-0.9.1+1.38.0.sha256sum] = "9447d1a926beeef466606cc45717f80897998b548e7dc622873d453e1ecb4be4"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hashlink-0.8.1.sha256sum] = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[hostname-validator-1.1.1.sha256sum] = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.6.sha256sum] = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+SRC_URI[jsonwebkey-0.3.5.sha256sum] = "c57c852b14147e2bd58c14fde40398864453403ef632b1101db130282ee6e2cc"
+SRC_URI[jsonwebtoken-8.2.0.sha256sum] = "09f4f04699947111ec1733e71778d763555737579e44b85844cae8e1940a1828"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[libsqlite3-sys-0.25.2.sha256sum] = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa"
+SRC_URI[libz-sys-1.1.8.sha256sum] = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[mbox-0.6.0.sha256sum] = "0f88d5c34d63aad11aa4321ef55ccb064af58b3ad8091079ae22bf83e5eb75d6"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[multimap-0.8.3.sha256sum] = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
+SRC_URI[nom-5.1.2.sha256sum] = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num-0.4.0.sha256sum] = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-complex-0.4.3.sha256sum] = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
+SRC_URI[num-derive-0.3.3.sha256sum] = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-iter-0.1.43.sha256sum] = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[oid-0.2.1.sha256sum] = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2"
+SRC_URI[oid-registry-0.4.0.sha256sum] = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+SRC_URI[parking_lot_core-0.8.6.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+SRC_URI[parsec-interface-0.28.0.sha256sum] = "f6f1b90789d4cabb8d7100a2ce632baad9683c2598f302d2387d9a45f967de56"
+SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+SRC_URI[pem-1.1.1.sha256sum] = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+SRC_URI[pest-2.5.6.sha256sum] = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7"
+SRC_URI[petgraph-0.5.1.sha256sum] = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7"
+SRC_URI[picky-asn1-0.3.3.sha256sum] = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde"
+SRC_URI[picky-asn1-der-0.2.5.sha256sum] = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe"
+SRC_URI[picky-asn1-x509-0.6.1.sha256sum] = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkcs8-0.8.0.sha256sum] = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.52.sha256sum] = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
+SRC_URI[prost-0.8.0.sha256sum] = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
+SRC_URI[prost-build-0.8.0.sha256sum] = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
+SRC_URI[prost-derive-0.8.0.sha256sum] = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
+SRC_URI[prost-types-0.8.0.sha256sum] = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
+SRC_URI[protobuf-2.28.0.sha256sum] = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
+SRC_URI[psa-crypto-0.10.0.sha256sum] = "31a7f20ebf21c7a53dd8aa24a11bd4cc9f3f838f0de1b32e17cb6cd4f88fdf7f"
+SRC_URI[psa-crypto-sys-0.10.0.sha256sum] = "0d3f19716e0584f8d5627712617b1cc5b9b642943fd9a61b883b8d533f5d400c"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[regex-1.7.1.sha256sum] = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+SRC_URI[ring-0.16.20.sha256sum] = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+SRC_URI[rusqlite-0.28.0.sha256sum] = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a"
+SRC_URI[rust-cryptoauthlib-0.4.5.sha256sum] = "adab07508c090715a5cd3d072f2b8ab60d7e9e04c5af19e1d3d819651b5b25a2"
+SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+SRC_URI[rustc_version-0.3.3.sha256sum] = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
+SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+SRC_URI[rustix-0.36.9.sha256sum] = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc"
+SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[sd-notify-0.3.0.sha256sum] = "0cd08a21f852bd2fe42e3b2a6c76a0db6a95a5b5bd29c0521dd0b30fa1712ec8"
+SRC_URI[secrecy-0.7.0.sha256sum] = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0"
+SRC_URI[semver-0.11.0.sha256sum] = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
+SRC_URI[semver-parser-0.10.2.sha256sum] = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+SRC_URI[serde-1.0.156.sha256sum] = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
+SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
+SRC_URI[serde_derive-1.0.156.sha256sum] = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d"
+SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+SRC_URI[shlex-0.1.1.sha256sum] = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+SRC_URI[signal-hook-0.3.15.sha256sum] = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+SRC_URI[signal-hook-registry-1.4.1.sha256sum] = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+SRC_URI[simple_asn1-0.6.2.sha256sum] = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[spiffe-0.2.1.sha256sum] = "f30161ecb25b9acc06eb61d750aaf1c4b3a536e22ff19fc2d250976537e93a11"
+SRC_URI[spin-0.5.2.sha256sum] = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+SRC_URI[spki-0.5.4.sha256sum] = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
+SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+SRC_URI[strum_macros-0.21.1.sha256sum] = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+SRC_URI[target-lexicon-0.12.6.sha256sum] = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5"
+SRC_URI[tempfile-3.4.0.sha256sum] = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[thiserror-1.0.39.sha256sum] = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
+SRC_URI[thiserror-impl-1.0.39.sha256sum] = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
+SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+SRC_URI[time-0.3.15.sha256sum] = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c"
+SRC_URI[time-macros-0.2.4.sha256sum] = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[tss-esapi-7.2.0.sha256sum] = "891582e26e83f2cbd608b18cbd7ffb921482740524187a2bca20cf44a286547b"
+SRC_URI[tss-esapi-sys-0.4.0.sha256sum] = "e7b8be553262e0924410fe96404830252477f175f228081f21cb0bd87f2ccebe"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[ucd-trie-0.1.5.sha256sum] = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+SRC_URI[unicode-bidi-0.3.11.sha256sum] = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[untrusted-0.7.1.sha256sum] = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+SRC_URI[users-0.11.0.sha256sum] = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
+SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+SRC_URI[which-4.4.0.sha256sum] = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+SRC_URI[x509-parser-0.13.2.sha256sum] = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c"
+SRC_URI[yasna-0.4.0.sha256sum] = "e262a29d0e61ccf2b6190d7050d4b237535fc76ce4c1210d9caa316f71dffa75"
+SRC_URI[zeroize-1.5.7.sha256sum] = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+SRC_URI[zeroize_derive-1.3.3.sha256sum] = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.1.0.inc b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.1.0.inc
deleted file mode 100644
index c04bcbd..0000000
--- a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.1.0.inc
+++ /dev/null
@@ -1,223 +0,0 @@
-# This file is created from parsec repository Cargo.lock using cargo-bitbake tool
-
-SRC_URI += " \
-    crate://crates.io/ahash/0.7.6 \
-    crate://crates.io/aho-corasick/0.7.19 \
-    crate://crates.io/ansi_term/0.12.1 \
-    crate://crates.io/anyhow/1.0.64 \
-    crate://crates.io/asn1-rs-derive/0.1.0 \
-    crate://crates.io/asn1-rs-impl/0.1.0 \
-    crate://crates.io/asn1-rs/0.3.1 \
-    crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/1.1.0 \
-    crate://crates.io/base64/0.13.0 \
-    crate://crates.io/bincode/1.3.3 \
-    crate://crates.io/bindgen/0.57.0 \
-    crate://crates.io/bindgen/0.59.2 \
-    crate://crates.io/bitfield/0.13.2 \
-    crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/bumpalo/3.11.0 \
-    crate://crates.io/bytes/1.2.1 \
-    crate://crates.io/cc/1.0.73 \
-    crate://crates.io/cexpr/0.4.0 \
-    crate://crates.io/cexpr/0.6.0 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/clang-sys/1.3.3 \
-    crate://crates.io/clap/2.34.0 \
-    crate://crates.io/cmake/0.1.45 \
-    crate://crates.io/const-oid/0.7.1 \
-    crate://crates.io/cryptoauthlib-sys/0.2.2 \
-    crate://crates.io/cryptoki-sys/0.1.4 \
-    crate://crates.io/cryptoki/0.3.0 \
-    crate://crates.io/data-encoding/2.3.2 \
-    crate://crates.io/der-parser/7.0.0 \
-    crate://crates.io/der/0.5.1 \
-    crate://crates.io/derivative/2.2.0 \
-    crate://crates.io/displaydoc/0.2.3 \
-    crate://crates.io/either/1.8.0 \
-    crate://crates.io/enumflags2/0.7.5 \
-    crate://crates.io/enumflags2_derive/0.7.4 \
-    crate://crates.io/env_logger/0.8.4 \
-    crate://crates.io/env_logger/0.9.0 \
-    crate://crates.io/fallible-iterator/0.2.0 \
-    crate://crates.io/fallible-streaming-iterator/0.1.9 \
-    crate://crates.io/fastrand/1.8.0 \
-    crate://crates.io/fixedbitset/0.2.0 \
-    crate://crates.io/form_urlencoded/1.0.1 \
-    crate://crates.io/futures-channel/0.3.24 \
-    crate://crates.io/futures-core/0.3.24 \
-    crate://crates.io/futures-executor/0.3.24 \
-    crate://crates.io/futures-io/0.3.24 \
-    crate://crates.io/futures-macro/0.3.24 \
-    crate://crates.io/futures-sink/0.3.24 \
-    crate://crates.io/futures-task/0.3.24 \
-    crate://crates.io/futures-util/0.3.24 \
-    crate://crates.io/futures/0.3.24 \
-    crate://crates.io/generic-array/0.14.6 \
-    crate://crates.io/getrandom/0.2.7 \
-    crate://crates.io/glob/0.3.0 \
-    crate://crates.io/grpcio-sys/0.9.1+1.38.0 \
-    crate://crates.io/grpcio/0.9.1 \
-    crate://crates.io/hashbrown/0.11.2 \
-    crate://crates.io/hashlink/0.7.0 \
-    crate://crates.io/heck/0.3.3 \
-    crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/hex/0.4.3 \
-    crate://crates.io/hostname-validator/1.1.1 \
-    crate://crates.io/humantime/2.1.0 \
-    crate://crates.io/idna/0.2.3 \
-    crate://crates.io/indexmap/1.8.2 \
-    crate://crates.io/instant/0.1.12 \
-    crate://crates.io/itertools/0.10.3 \
-    crate://crates.io/itoa/1.0.3 \
-    crate://crates.io/js-sys/0.3.59 \
-    crate://crates.io/jsonwebkey/0.3.5 \
-    crate://crates.io/jsonwebtoken/8.1.1 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.132 \
-    crate://crates.io/libloading/0.7.3 \
-    crate://crates.io/libsqlite3-sys/0.23.2 \
-    crate://crates.io/libz-sys/1.1.8 \
-    crate://crates.io/lock_api/0.4.8 \
-    crate://crates.io/log/0.4.17 \
-    crate://crates.io/matches/0.1.9 \
-    crate://crates.io/mbox/0.6.0 \
-    crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/minimal-lexical/0.2.1 \
-    crate://crates.io/multimap/0.8.3 \
-    crate://crates.io/nom/5.1.2 \
-    crate://crates.io/nom/7.1.1 \
-    crate://crates.io/num-bigint/0.4.3 \
-    crate://crates.io/num-complex/0.4.2 \
-    crate://crates.io/num-derive/0.3.3 \
-    crate://crates.io/num-integer/0.1.45 \
-    crate://crates.io/num-iter/0.1.43 \
-    crate://crates.io/num-rational/0.4.1 \
-    crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num/0.4.0 \
-    crate://crates.io/num_cpus/1.13.1 \
-    crate://crates.io/num_threads/0.1.6 \
-    crate://crates.io/oid-registry/0.4.0 \
-    crate://crates.io/oid/0.2.1 \
-    crate://crates.io/once_cell/1.14.0 \
-    crate://crates.io/parking_lot/0.11.2 \
-    crate://crates.io/parking_lot_core/0.8.5 \
-    crate://crates.io/parsec-interface/0.27.0 \
-    crate://crates.io/peeking_take_while/0.1.2 \
-    crate://crates.io/pem/1.1.0 \
-    crate://crates.io/percent-encoding/2.1.0 \
-    crate://crates.io/pest/2.3.0 \
-    crate://crates.io/petgraph/0.5.1 \
-    crate://crates.io/picky-asn1-der/0.2.5 \
-    crate://crates.io/picky-asn1-x509/0.6.1 \
-    crate://crates.io/picky-asn1/0.3.3 \
-    crate://crates.io/pin-project-lite/0.2.9 \
-    crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/pkcs8/0.8.0 \
-    crate://crates.io/pkg-config/0.3.25 \
-    crate://crates.io/ppv-lite86/0.2.16 \
-    crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-error/1.0.4 \
-    crate://crates.io/proc-macro2/1.0.43 \
-    crate://crates.io/prost-build/0.8.0 \
-    crate://crates.io/prost-derive/0.8.0 \
-    crate://crates.io/prost-types/0.8.0 \
-    crate://crates.io/prost/0.8.0 \
-    crate://crates.io/protobuf/2.27.1 \
-    crate://crates.io/psa-crypto-sys/0.9.3 \
-    crate://crates.io/psa-crypto/0.9.2 \
-    crate://crates.io/quote/1.0.21 \
-    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.16 \
-    crate://crates.io/regex-syntax/0.6.27 \
-    crate://crates.io/regex/1.6.0 \
-    crate://crates.io/remove_dir_all/0.5.3 \
-    crate://crates.io/ring/0.16.20 \
-    crate://crates.io/rusqlite/0.26.3 \
-    crate://crates.io/rust-cryptoauthlib/0.4.5 \
-    crate://crates.io/rustc-hash/1.1.0 \
-    crate://crates.io/rustc_version/0.3.3 \
-    crate://crates.io/rusticata-macros/4.1.0 \
-    crate://crates.io/ryu/1.0.11 \
-    crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/sd-notify/0.2.0 \
-    crate://crates.io/secrecy/0.7.0 \
-    crate://crates.io/semver-parser/0.10.2 \
-    crate://crates.io/semver/0.11.0 \
-    crate://crates.io/serde/1.0.144 \
-    crate://crates.io/serde_bytes/0.11.7 \
-    crate://crates.io/serde_derive/1.0.144 \
-    crate://crates.io/serde_json/1.0.85 \
-    crate://crates.io/shlex/0.1.1 \
-    crate://crates.io/shlex/1.1.0 \
-    crate://crates.io/signal-hook-registry/1.4.0 \
-    crate://crates.io/signal-hook/0.3.14 \
-    crate://crates.io/simple_asn1/0.6.2 \
-    crate://crates.io/slab/0.4.7 \
-    crate://crates.io/smallvec/1.9.0 \
-    crate://crates.io/spiffe/0.2.1 \
-    crate://crates.io/spin/0.5.2 \
-    crate://crates.io/spki/0.5.4 \
-    crate://crates.io/stable_deref_trait/1.2.0 \
-    crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/structopt-derive/0.4.18 \
-    crate://crates.io/structopt/0.3.26 \
-    crate://crates.io/strum_macros/0.21.1 \
-    crate://crates.io/syn/1.0.99 \
-    crate://crates.io/synstructure/0.12.6 \
-    crate://crates.io/target-lexicon/0.12.4 \
-    crate://crates.io/tempfile/3.3.0 \
-    crate://crates.io/termcolor/1.1.3 \
-    crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/thiserror-impl/1.0.33 \
-    crate://crates.io/thiserror/1.0.33 \
-    crate://crates.io/threadpool/1.8.1 \
-    crate://crates.io/time-macros/0.2.4 \
-    crate://crates.io/time/0.3.14 \
-    crate://crates.io/tinyvec/1.6.0 \
-    crate://crates.io/tinyvec_macros/0.1.0 \
-    crate://crates.io/toml/0.5.9 \
-    crate://crates.io/tss-esapi-sys/0.3.0 \
-    crate://crates.io/tss-esapi/7.1.0 \
-    crate://crates.io/typenum/1.15.0 \
-    crate://crates.io/ucd-trie/0.1.4 \
-    crate://crates.io/unicode-bidi/0.3.8 \
-    crate://crates.io/unicode-ident/1.0.3 \
-    crate://crates.io/unicode-normalization/0.1.21 \
-    crate://crates.io/unicode-segmentation/1.9.0 \
-    crate://crates.io/unicode-width/0.1.9 \
-    crate://crates.io/unicode-xid/0.2.3 \
-    crate://crates.io/untrusted/0.7.1 \
-    crate://crates.io/url/2.2.2 \
-    crate://crates.io/users/0.11.0 \
-    crate://crates.io/uuid/0.8.2 \
-    crate://crates.io/vcpkg/0.2.15 \
-    crate://crates.io/vec_map/0.8.2 \
-    crate://crates.io/version/3.0.0 \
-    crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/walkdir/2.3.2 \
-    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen-backend/0.2.82 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.82 \
-    crate://crates.io/wasm-bindgen-macro/0.2.82 \
-    crate://crates.io/wasm-bindgen-shared/0.2.82 \
-    crate://crates.io/wasm-bindgen/0.2.82 \
-    crate://crates.io/web-sys/0.3.59 \
-    crate://crates.io/which/4.3.0 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/x509-parser/0.13.2 \
-    crate://crates.io/yasna/0.4.0 \
-    crate://crates.io/zeroize/1.5.7 \
-    crate://crates.io/zeroize_derive/1.3.2 \
-"
-
-LIC_FILES_CHKSUM = " \
-    file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
-"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.1.0.bb b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.2.0.bb
similarity index 90%
rename from meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.1.0.bb
rename to meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.2.0.bb
index 218b776..1d38dc5 100644
--- a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.1.0.bb
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_1.2.0.bb
@@ -1,15 +1,20 @@
 SUMMARY = "Platform AbstRaction for SECurity Daemon"
 HOMEPAGE = "https://github.com/parallaxsecond/parsec"
 LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-inherit cargo pkgconfig
-DEPENDS = "clang-native"
+inherit cargo pkgconfig cargo-update-recipe-crates
+
+DEPENDS += "clang-native"
 
 SRC_URI += "crate://crates.io/parsec-service/${PV} \
             file://parsec_init \
             file://systemd.patch \
             file://parsec-tmpfiles.conf \
 "
+SRC_URI[parsec-service-1.2.0.sha256sum] = "f58e7ba859c22cc1904dc8298b1a7d94ee1ba3b4d4808f28e4cc0c96ddb149c9"
+
+S = "${CARGO_VENDORING_DIRECTORY}/${BP}"
 
 PACKAGECONFIG ??= "PKCS11 MBED-CRYPTO"
 have_TPM = "${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', 'TPM', '', d)}"
@@ -82,9 +87,10 @@
     ${sysconfdir}/init.d/parsec \
 "
 
-require parsec-service_${PV}.inc
+require parsec-service-crates.inc
 
-# The QA check has been temporarily disabled. An issue has been created 
-# upstream to fix this. 
+# The QA check has been temporarily disabled. An issue has been created
+# upstream to fix this.
 # https://github.com/parallaxsecond/parsec/issues/645
 INSANE_SKIP:${PN}-dbg += "buildpaths"
+
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool-crates.inc b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool-crates.inc
new file mode 100644
index 0000000..01b3288
--- /dev/null
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool-crates.inc
@@ -0,0 +1,346 @@
+# Autogenerated with 'bitbake -c update_crates parsec-tool'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/aho-corasick/0.7.20;name=aho-corasick-0.7.20 \
+    crate://crates.io/ansi_term/0.12.1;name=ansi_term-0.12.1 \
+    crate://crates.io/anyhow/1.0.69;name=anyhow-1.0.69 \
+    crate://crates.io/asn1-rs/0.3.1;name=asn1-rs-0.3.1 \
+    crate://crates.io/asn1-rs-derive/0.1.0;name=asn1-rs-derive-0.1.0 \
+    crate://crates.io/asn1-rs-impl/0.1.0;name=asn1-rs-impl-0.1.0 \
+    crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
+    crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
+    crate://crates.io/base64/0.13.1;name=base64-0.13.1 \
+    crate://crates.io/base64/0.21.0;name=base64-0.21.0 \
+    crate://crates.io/bincode/1.3.3;name=bincode-1.3.3 \
+    crate://crates.io/bindgen/0.57.0;name=bindgen-0.57.0 \
+    crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
+    crate://crates.io/block-buffer/0.9.0;name=block-buffer-0.9.0 \
+    crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \
+    crate://crates.io/bytes/1.4.0;name=bytes-1.4.0 \
+    crate://crates.io/cc/1.0.79;name=cc-1.0.79 \
+    crate://crates.io/cexpr/0.4.0;name=cexpr-0.4.0 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/clang-sys/1.6.0;name=clang-sys-1.6.0 \
+    crate://crates.io/clap/2.34.0;name=clap-2.34.0 \
+    crate://crates.io/cmake/0.1.45;name=cmake-0.1.45 \
+    crate://crates.io/const-oid/0.7.1;name=const-oid-0.7.1 \
+    crate://crates.io/cpufeatures/0.2.6;name=cpufeatures-0.2.6 \
+    crate://crates.io/data-encoding/2.3.3;name=data-encoding-2.3.3 \
+    crate://crates.io/der/0.5.1;name=der-0.5.1 \
+    crate://crates.io/der-parser/7.0.0;name=der-parser-7.0.0 \
+    crate://crates.io/derivative/2.2.0;name=derivative-2.2.0 \
+    crate://crates.io/digest/0.9.0;name=digest-0.9.0 \
+    crate://crates.io/displaydoc/0.2.3;name=displaydoc-0.2.3 \
+    crate://crates.io/either/1.8.1;name=either-1.8.1 \
+    crate://crates.io/env_logger/0.8.4;name=env_logger-0.8.4 \
+    crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \
+    crate://crates.io/futures/0.3.27;name=futures-0.3.27 \
+    crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \
+    crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \
+    crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \
+    crate://crates.io/futures-io/0.3.27;name=futures-io-0.3.27 \
+    crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \
+    crate://crates.io/futures-sink/0.3.27;name=futures-sink-0.3.27 \
+    crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \
+    crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \
+    crate://crates.io/generic-array/0.14.6;name=generic-array-0.14.6 \
+    crate://crates.io/glob/0.3.1;name=glob-0.3.1 \
+    crate://crates.io/grpcio/0.9.1;name=grpcio-0.9.1 \
+    crate://crates.io/grpcio-sys/0.9.1+1.38.0;name=grpcio-sys-0.9.1+1.38.0 \
+    crate://crates.io/heck/0.3.3;name=heck-0.3.3 \
+    crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
+    crate://crates.io/humantime/2.1.0;name=humantime-2.1.0 \
+    crate://crates.io/idna/0.3.0;name=idna-0.3.0 \
+    crate://crates.io/instant/0.1.12;name=instant-0.1.12 \
+    crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
+    crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \
+    crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \
+    crate://crates.io/jsonwebkey/0.3.5;name=jsonwebkey-0.3.5 \
+    crate://crates.io/jsonwebtoken/8.3.0;name=jsonwebtoken-8.3.0 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/lazycell/1.3.0;name=lazycell-1.3.0 \
+    crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
+    crate://crates.io/libloading/0.7.4;name=libloading-0.7.4 \
+    crate://crates.io/libz-sys/1.1.8;name=libz-sys-1.1.8 \
+    crate://crates.io/lock_api/0.4.9;name=lock_api-0.4.9 \
+    crate://crates.io/log/0.4.17;name=log-0.4.17 \
+    crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
+    crate://crates.io/minimal-lexical/0.2.1;name=minimal-lexical-0.2.1 \
+    crate://crates.io/nom/5.1.2;name=nom-5.1.2 \
+    crate://crates.io/nom/7.1.3;name=nom-7.1.3 \
+    crate://crates.io/num/0.4.0;name=num-0.4.0 \
+    crate://crates.io/num-bigint/0.4.3;name=num-bigint-0.4.3 \
+    crate://crates.io/num-complex/0.4.3;name=num-complex-0.4.3 \
+    crate://crates.io/num-derive/0.3.3;name=num-derive-0.3.3 \
+    crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
+    crate://crates.io/num-iter/0.1.43;name=num-iter-0.1.43 \
+    crate://crates.io/num-rational/0.4.1;name=num-rational-0.4.1 \
+    crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
+    crate://crates.io/oid/0.2.1;name=oid-0.2.1 \
+    crate://crates.io/oid-registry/0.4.0;name=oid-registry-0.4.0 \
+    crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
+    crate://crates.io/opaque-debug/0.3.0;name=opaque-debug-0.3.0 \
+    crate://crates.io/parking_lot/0.11.2;name=parking_lot-0.11.2 \
+    crate://crates.io/parking_lot_core/0.8.6;name=parking_lot_core-0.8.6 \
+    crate://crates.io/parsec-client/0.15.0;name=parsec-client-0.15.0 \
+    crate://crates.io/parsec-interface/0.28.0;name=parsec-interface-0.28.0 \
+    crate://crates.io/peeking_take_while/0.1.2;name=peeking_take_while-0.1.2 \
+    crate://crates.io/pem/1.1.1;name=pem-1.1.1 \
+    crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \
+    crate://crates.io/picky-asn1/0.3.3;name=picky-asn1-0.3.3 \
+    crate://crates.io/picky-asn1-der/0.2.5;name=picky-asn1-der-0.2.5 \
+    crate://crates.io/picky-asn1-x509/0.6.1;name=picky-asn1-x509-0.6.1 \
+    crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
+    crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
+    crate://crates.io/pkcs8/0.8.0;name=pkcs8-0.8.0 \
+    crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
+    crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
+    crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
+    crate://crates.io/proc-macro2/1.0.52;name=proc-macro2-1.0.52 \
+    crate://crates.io/prost/0.8.0;name=prost-0.8.0 \
+    crate://crates.io/prost-derive/0.8.0;name=prost-derive-0.8.0 \
+    crate://crates.io/protobuf/2.28.0;name=protobuf-2.28.0 \
+    crate://crates.io/psa-crypto/0.10.0;name=psa-crypto-0.10.0 \
+    crate://crates.io/psa-crypto-sys/0.10.0;name=psa-crypto-sys-0.10.0 \
+    crate://crates.io/quote/1.0.26;name=quote-1.0.26 \
+    crate://crates.io/rcgen/0.9.3;name=rcgen-0.9.3 \
+    crate://crates.io/redox_syscall/0.2.16;name=redox_syscall-0.2.16 \
+    crate://crates.io/regex/1.7.1;name=regex-1.7.1 \
+    crate://crates.io/regex-syntax/0.6.28;name=regex-syntax-0.6.28 \
+    crate://crates.io/ring/0.16.20;name=ring-0.16.20 \
+    crate://crates.io/rustc-hash/1.1.0;name=rustc-hash-1.1.0 \
+    crate://crates.io/rusticata-macros/4.1.0;name=rusticata-macros-4.1.0 \
+    crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \
+    crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
+    crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
+    crate://crates.io/secrecy/0.7.0;name=secrecy-0.7.0 \
+    crate://crates.io/serde/1.0.158;name=serde-1.0.158 \
+    crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \
+    crate://crates.io/serde_derive/1.0.158;name=serde_derive-1.0.158 \
+    crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \
+    crate://crates.io/sha2/0.9.9;name=sha2-0.9.9 \
+    crate://crates.io/shlex/0.1.1;name=shlex-0.1.1 \
+    crate://crates.io/simple_asn1/0.6.2;name=simple_asn1-0.6.2 \
+    crate://crates.io/slab/0.4.8;name=slab-0.4.8 \
+    crate://crates.io/smallvec/1.10.0;name=smallvec-1.10.0 \
+    crate://crates.io/spiffe/0.2.1;name=spiffe-0.2.1 \
+    crate://crates.io/spin/0.5.2;name=spin-0.5.2 \
+    crate://crates.io/spki/0.5.4;name=spki-0.5.4 \
+    crate://crates.io/strsim/0.8.0;name=strsim-0.8.0 \
+    crate://crates.io/structopt/0.3.26;name=structopt-0.3.26 \
+    crate://crates.io/structopt-derive/0.4.18;name=structopt-derive-0.4.18 \
+    crate://crates.io/syn/1.0.109;name=syn-1.0.109 \
+    crate://crates.io/syn/2.0.10;name=syn-2.0.10 \
+    crate://crates.io/synstructure/0.12.6;name=synstructure-0.12.6 \
+    crate://crates.io/termcolor/1.2.0;name=termcolor-1.2.0 \
+    crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
+    crate://crates.io/thiserror/1.0.40;name=thiserror-1.0.40 \
+    crate://crates.io/thiserror-impl/1.0.40;name=thiserror-impl-1.0.40 \
+    crate://crates.io/time/0.3.20;name=time-0.3.20 \
+    crate://crates.io/time-core/0.1.0;name=time-core-0.1.0 \
+    crate://crates.io/time-macros/0.2.8;name=time-macros-0.2.8 \
+    crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
+    crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \
+    crate://crates.io/typenum/1.16.0;name=typenum-1.16.0 \
+    crate://crates.io/unicode-bidi/0.3.13;name=unicode-bidi-0.3.13 \
+    crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \
+    crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \
+    crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
+    crate://crates.io/unicode-width/0.1.10;name=unicode-width-0.1.10 \
+    crate://crates.io/unicode-xid/0.2.4;name=unicode-xid-0.2.4 \
+    crate://crates.io/untrusted/0.7.1;name=untrusted-0.7.1 \
+    crate://crates.io/url/2.3.1;name=url-2.3.1 \
+    crate://crates.io/users/0.11.0;name=users-0.11.0 \
+    crate://crates.io/uuid/0.8.2;name=uuid-0.8.2 \
+    crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
+    crate://crates.io/vec_map/0.8.2;name=vec_map-0.8.2 \
+    crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
+    crate://crates.io/walkdir/2.3.2;name=walkdir-2.3.2 \
+    crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \
+    crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \
+    crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \
+    crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \
+    crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \
+    crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+    crate://crates.io/x509-parser/0.13.2;name=x509-parser-0.13.2 \
+    crate://crates.io/yasna/0.4.0;name=yasna-0.4.0 \
+    crate://crates.io/yasna/0.5.1;name=yasna-0.5.1 \
+    crate://crates.io/zeroize/1.5.7;name=zeroize-1.5.7 \
+    crate://crates.io/zeroize_derive/1.3.3;name=zeroize_derive-1.3.3 \
+"
+
+SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+SRC_URI[anyhow-1.0.69.sha256sum] = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+SRC_URI[asn1-rs-0.3.1.sha256sum] = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33"
+SRC_URI[asn1-rs-derive-0.1.0.sha256sum] = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf"
+SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[base64-0.21.0.sha256sum] = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+SRC_URI[bincode-1.3.3.sha256sum] = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+SRC_URI[bindgen-0.57.0.sha256sum] = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[block-buffer-0.9.0.sha256sum] = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+SRC_URI[bytes-1.4.0.sha256sum] = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cexpr-0.4.0.sha256sum] = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clang-sys-1.6.0.sha256sum] = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
+SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+SRC_URI[cmake-0.1.45.sha256sum] = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855"
+SRC_URI[const-oid-0.7.1.sha256sum] = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
+SRC_URI[cpufeatures-0.2.6.sha256sum] = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181"
+SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
+SRC_URI[der-0.5.1.sha256sum] = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
+SRC_URI[der-parser-7.0.0.sha256sum] = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82"
+SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+SRC_URI[digest-0.9.0.sha256sum] = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+SRC_URI[displaydoc-0.2.3.sha256sum] = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+SRC_URI[futures-0.3.27.sha256sum] = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549"
+SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
+SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
+SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
+SRC_URI[futures-io-0.3.27.sha256sum] = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
+SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
+SRC_URI[futures-sink-0.3.27.sha256sum] = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2"
+SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
+SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[grpcio-0.9.1.sha256sum] = "24d99e00eed7e0a04ee2705112e7cfdbe1a3cc771147f22f016a8cd2d002187b"
+SRC_URI[grpcio-sys-0.9.1+1.38.0.sha256sum] = "9447d1a926beeef466606cc45717f80897998b548e7dc622873d453e1ecb4be4"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+SRC_URI[jsonwebkey-0.3.5.sha256sum] = "c57c852b14147e2bd58c14fde40398864453403ef632b1101db130282ee6e2cc"
+SRC_URI[jsonwebtoken-8.3.0.sha256sum] = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[libz-sys-1.1.8.sha256sum] = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[nom-5.1.2.sha256sum] = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num-0.4.0.sha256sum] = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-complex-0.4.3.sha256sum] = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
+SRC_URI[num-derive-0.3.3.sha256sum] = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-iter-0.1.43.sha256sum] = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[oid-0.2.1.sha256sum] = "9c19903c598813dba001b53beeae59bb77ad4892c5c1b9b3500ce4293a0d06c2"
+SRC_URI[oid-registry-0.4.0.sha256sum] = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[opaque-debug-0.3.0.sha256sum] = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+SRC_URI[parking_lot_core-0.8.6.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+SRC_URI[parsec-client-0.15.0.sha256sum] = "5798ac04b102b074ad2a26976e53e4c918d2342ccb8ce6f31c2e71ab338b1156"
+SRC_URI[parsec-interface-0.28.0.sha256sum] = "f6f1b90789d4cabb8d7100a2ce632baad9683c2598f302d2387d9a45f967de56"
+SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+SRC_URI[pem-1.1.1.sha256sum] = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+SRC_URI[picky-asn1-0.3.3.sha256sum] = "889bbb26c80acf919e89980dfc8e04eb19df272d8a9893ec9b748d3a1675abde"
+SRC_URI[picky-asn1-der-0.2.5.sha256sum] = "acbbd5390ab967396cc7473e6e0848684aec7166e657c6088604e07b54a73dbe"
+SRC_URI[picky-asn1-x509-0.6.1.sha256sum] = "f3033675030de806aba1d5470949701b7c9f1dbf77e3bb17bd12e5f945e560ba"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkcs8-0.8.0.sha256sum] = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.52.sha256sum] = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
+SRC_URI[prost-0.8.0.sha256sum] = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
+SRC_URI[prost-derive-0.8.0.sha256sum] = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba"
+SRC_URI[protobuf-2.28.0.sha256sum] = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
+SRC_URI[psa-crypto-0.10.0.sha256sum] = "31a7f20ebf21c7a53dd8aa24a11bd4cc9f3f838f0de1b32e17cb6cd4f88fdf7f"
+SRC_URI[psa-crypto-sys-0.10.0.sha256sum] = "0d3f19716e0584f8d5627712617b1cc5b9b642943fd9a61b883b8d533f5d400c"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[rcgen-0.9.3.sha256sum] = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[regex-1.7.1.sha256sum] = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+SRC_URI[ring-0.16.20.sha256sum] = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[secrecy-0.7.0.sha256sum] = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0"
+SRC_URI[serde-1.0.158.sha256sum] = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
+SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
+SRC_URI[serde_derive-1.0.158.sha256sum] = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
+SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+SRC_URI[sha2-0.9.9.sha256sum] = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
+SRC_URI[shlex-0.1.1.sha256sum] = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+SRC_URI[simple_asn1-0.6.2.sha256sum] = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[spiffe-0.2.1.sha256sum] = "f30161ecb25b9acc06eb61d750aaf1c4b3a536e22ff19fc2d250976537e93a11"
+SRC_URI[spin-0.5.2.sha256sum] = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+SRC_URI[spki-0.5.4.sha256sum] = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
+SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+SRC_URI[structopt-0.3.26.sha256sum] = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+SRC_URI[structopt-derive-0.4.18.sha256sum] = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.10.sha256sum] = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40"
+SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[untrusted-0.7.1.sha256sum] = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+SRC_URI[users-0.11.0.sha256sum] = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
+SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[x509-parser-0.13.2.sha256sum] = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c"
+SRC_URI[yasna-0.4.0.sha256sum] = "e262a29d0e61ccf2b6190d7050d4b237535fc76ce4c1210d9caa316f71dffa75"
+SRC_URI[yasna-0.5.1.sha256sum] = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4"
+SRC_URI[zeroize-1.5.7.sha256sum] = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+SRC_URI[zeroize_derive-1.3.3.sha256sum] = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.5.4.inc b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.5.4.inc
deleted file mode 100644
index 36d98d3..0000000
--- a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.5.4.inc
+++ /dev/null
@@ -1,176 +0,0 @@
-# This file is created from parsec-tool repository Cargo.lock using cargo-bitbake tool
-
-SRC_URI += " \
-    crate://crates.io/aho-corasick/0.7.19 \
-    crate://crates.io/ansi_term/0.12.1 \
-    crate://crates.io/anyhow/1.0.64 \
-    crate://crates.io/asn1-rs-derive/0.1.0 \
-    crate://crates.io/asn1-rs-impl/0.1.0 \
-    crate://crates.io/asn1-rs/0.3.1 \
-    crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/1.1.0 \
-    crate://crates.io/base64/0.13.0 \
-    crate://crates.io/bincode/1.3.3 \
-    crate://crates.io/bindgen/0.57.0 \
-    crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/block-buffer/0.9.0 \
-    crate://crates.io/bumpalo/3.11.0 \
-    crate://crates.io/bytes/1.2.1 \
-    crate://crates.io/cc/1.0.73 \
-    crate://crates.io/cexpr/0.4.0 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/clang-sys/1.3.3 \
-    crate://crates.io/clap/2.34.0 \
-    crate://crates.io/cmake/0.1.45 \
-    crate://crates.io/const-oid/0.7.1 \
-    crate://crates.io/cpufeatures/0.2.5 \
-    crate://crates.io/data-encoding/2.3.2 \
-    crate://crates.io/der-parser/7.0.0 \
-    crate://crates.io/der/0.5.1 \
-    crate://crates.io/derivative/2.2.0 \
-    crate://crates.io/digest/0.9.0 \
-    crate://crates.io/displaydoc/0.2.3 \
-    crate://crates.io/either/1.8.0 \
-    crate://crates.io/env_logger/0.8.4 \
-    crate://crates.io/form_urlencoded/1.1.0 \
-    crate://crates.io/futures-channel/0.3.24 \
-    crate://crates.io/futures-core/0.3.24 \
-    crate://crates.io/futures-executor/0.3.24 \
-    crate://crates.io/futures-io/0.3.24 \
-    crate://crates.io/futures-macro/0.3.24 \
-    crate://crates.io/futures-sink/0.3.24 \
-    crate://crates.io/futures-task/0.3.24 \
-    crate://crates.io/futures-util/0.3.24 \
-    crate://crates.io/futures/0.3.24 \
-    crate://crates.io/generic-array/0.14.6 \
-    crate://crates.io/glob/0.3.0 \
-    crate://crates.io/grpcio-sys/0.9.1+1.38.0 \
-    crate://crates.io/grpcio/0.9.1 \
-    crate://crates.io/heck/0.3.3 \
-    crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/humantime/2.1.0 \
-    crate://crates.io/idna/0.3.0 \
-    crate://crates.io/instant/0.1.12 \
-    crate://crates.io/itertools/0.10.3 \
-    crate://crates.io/itoa/1.0.3 \
-    crate://crates.io/js-sys/0.3.59 \
-    crate://crates.io/jsonwebkey/0.3.5 \
-    crate://crates.io/jsonwebtoken/8.1.1 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.132 \
-    crate://crates.io/libloading/0.7.3 \
-    crate://crates.io/libz-sys/1.1.8 \
-    crate://crates.io/lock_api/0.4.8 \
-    crate://crates.io/log/0.4.17 \
-    crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/minimal-lexical/0.2.1 \
-    crate://crates.io/nom/5.1.2 \
-    crate://crates.io/nom/7.1.1 \
-    crate://crates.io/num-bigint/0.4.3 \
-    crate://crates.io/num-complex/0.4.2 \
-    crate://crates.io/num-derive/0.3.3 \
-    crate://crates.io/num-integer/0.1.45 \
-    crate://crates.io/num-iter/0.1.43 \
-    crate://crates.io/num-rational/0.4.1 \
-    crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num/0.4.0 \
-    crate://crates.io/num_threads/0.1.6 \
-    crate://crates.io/oid-registry/0.4.0 \
-    crate://crates.io/oid/0.2.1 \
-    crate://crates.io/once_cell/1.14.0 \
-    crate://crates.io/opaque-debug/0.3.0 \
-    crate://crates.io/parking_lot/0.11.2 \
-    crate://crates.io/parking_lot_core/0.8.5 \
-    crate://crates.io/parsec-client/0.14.1 \
-    crate://crates.io/parsec-interface/0.27.0 \
-    crate://crates.io/peeking_take_while/0.1.2 \
-    crate://crates.io/pem/1.1.0 \
-    crate://crates.io/percent-encoding/2.2.0 \
-    crate://crates.io/picky-asn1-der/0.2.5 \
-    crate://crates.io/picky-asn1-x509/0.6.1 \
-    crate://crates.io/picky-asn1/0.3.3 \
-    crate://crates.io/pin-project-lite/0.2.9 \
-    crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/pkcs8/0.8.0 \
-    crate://crates.io/pkg-config/0.3.25 \
-    crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-error/1.0.4 \
-    crate://crates.io/proc-macro2/1.0.43 \
-    crate://crates.io/prost-derive/0.8.0 \
-    crate://crates.io/prost/0.8.0 \
-    crate://crates.io/protobuf/2.27.1 \
-    crate://crates.io/psa-crypto-sys/0.9.3 \
-    crate://crates.io/psa-crypto/0.9.2 \
-    crate://crates.io/quote/1.0.21 \
-    crate://crates.io/rcgen/0.9.3 \
-    crate://crates.io/redox_syscall/0.2.16 \
-    crate://crates.io/regex-syntax/0.6.27 \
-    crate://crates.io/regex/1.6.0 \
-    crate://crates.io/ring/0.16.20 \
-    crate://crates.io/rustc-hash/1.1.0 \
-    crate://crates.io/rusticata-macros/4.1.0 \
-    crate://crates.io/ryu/1.0.11 \
-    crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/secrecy/0.7.0 \
-    crate://crates.io/serde/1.0.144 \
-    crate://crates.io/serde_bytes/0.11.7 \
-    crate://crates.io/serde_derive/1.0.144 \
-    crate://crates.io/serde_json/1.0.85 \
-    crate://crates.io/sha2/0.9.9 \
-    crate://crates.io/shlex/0.1.1 \
-    crate://crates.io/simple_asn1/0.6.2 \
-    crate://crates.io/slab/0.4.7 \
-    crate://crates.io/smallvec/1.9.0 \
-    crate://crates.io/spiffe/0.2.1 \
-    crate://crates.io/spin/0.5.2 \
-    crate://crates.io/spki/0.5.4 \
-    crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/structopt-derive/0.4.18 \
-    crate://crates.io/structopt/0.3.26 \
-    crate://crates.io/syn/1.0.99 \
-    crate://crates.io/synstructure/0.12.6 \
-    crate://crates.io/termcolor/1.1.3 \
-    crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/thiserror-impl/1.0.34 \
-    crate://crates.io/thiserror/1.0.34 \
-    crate://crates.io/time-macros/0.2.3 \
-    crate://crates.io/time/0.3.7 \
-    crate://crates.io/tinyvec/1.6.0 \
-    crate://crates.io/tinyvec_macros/0.1.0 \
-    crate://crates.io/typenum/1.15.0 \
-    crate://crates.io/unicode-bidi/0.3.8 \
-    crate://crates.io/unicode-ident/1.0.3 \
-    crate://crates.io/unicode-normalization/0.1.21 \
-    crate://crates.io/unicode-segmentation/1.9.0 \
-    crate://crates.io/unicode-width/0.1.9 \
-    crate://crates.io/unicode-xid/0.2.3 \
-    crate://crates.io/untrusted/0.7.1 \
-    crate://crates.io/url/2.3.1 \
-    crate://crates.io/users/0.11.0 \
-    crate://crates.io/uuid/0.8.2 \
-    crate://crates.io/vcpkg/0.2.15 \
-    crate://crates.io/vec_map/0.8.2 \
-    crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/walkdir/2.3.2 \
-    crate://crates.io/wasm-bindgen-backend/0.2.82 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.82 \
-    crate://crates.io/wasm-bindgen-macro/0.2.82 \
-    crate://crates.io/wasm-bindgen-shared/0.2.82 \
-    crate://crates.io/wasm-bindgen/0.2.82 \
-    crate://crates.io/web-sys/0.3.59 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/x509-parser/0.13.2 \
-    crate://crates.io/yasna/0.4.0 \
-    crate://crates.io/yasna/0.5.0 \
-    crate://crates.io/zeroize/1.5.7 \
-    crate://crates.io/zeroize_derive/1.3.2 \
-"
-
-LIC_FILES_CHKSUM = " \
-    file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
-"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.5.4.bb b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.6.0.bb
similarity index 64%
rename from meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.5.4.bb
rename to meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.6.0.bb
index 0f62009..6095ae1 100644
--- a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.5.4.bb
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.6.0.bb
@@ -1,13 +1,15 @@
 SUMMARY = "Parsec Command Line Interface"
 HOMEPAGE = "https://github.com/parallaxsecond/parsec-tool"
 LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-inherit cargo
+inherit cargo cargo-update-recipe-crates
 
 SRC_URI += "crate://crates.io/parsec-tool/${PV} \
 "
+SRC_URI[parsec-tool-0.6.0.sha256sum] = "f51d5d7f0caca1c335324b52482fa5edbf6c9cfd2e6865e5cb22716d52dcb367"
 
-RDEPENDS:${PN} = "openssl-bin"
+S = "${CARGO_VENDORING_DIRECTORY}/${BP}"
 
 do_install() {
   install -d ${D}/${bindir}
@@ -15,9 +17,11 @@
   install -m 755 "${S}/tests/parsec-cli-tests.sh" "${D}${bindir}/parsec-cli-tests.sh"
 }
 
-require parsec-tool_${PV}.inc
+require parsec-tool-crates.inc
 
-# The QA check has been temporarily disabled. An issue has been created 
-# upstream to fix this. 
+RDEPENDS:${PN} = "openssl-bin"
+
+# The QA check has been temporarily disabled. An issue has been created
+# upstream to fix this.
 # https://github.com/parallaxsecond/parsec-tool/issues/94
 INSANE_SKIP:${PN}-dbg += "buildpaths"
diff --git a/meta-security/recipes-ids/suricata/suricata-crates.inc b/meta-security/recipes-ids/suricata/suricata-crates.inc
new file mode 100644
index 0000000..535f53c
--- /dev/null
+++ b/meta-security/recipes-ids/suricata/suricata-crates.inc
@@ -0,0 +1,724 @@
+# ak did manually
+SRC_URI += " \
+    crate://crates.io/autocfg/1.0.1;name=autocfg-1.0.1 \
+    crate://crates.io/brotli/3.3.0;name=brotli-3.0.3 \
+    crate://crates.io/crc/1.8.1;name=crc-1.8.1 \
+    crate://crates.io/der-parser/0.5.0;name=der-parser-0.5.0 \
+    crate://crates.io/der-parser/4.1.0;name=der-parser-4.1.0 \
+    crate://crates.io/der-parser/3.0.4;name=der-parser-3.0.4 \
+    crate://crates.io/flate2/1.0.20;name=flate2-1.0.20 \
+    crate://crates.io/ipsec-parser/0.5.0;name=ipsec-parser-0.5.0 \
+    crate://crates.io/kerberos-parser/0.5.0;name=kerberos-parser-0.5.0 \
+    crate://crates.io/md5/0.7.0;name=md5-0.7.0 \
+    crate://crates.io/memchr/2.3.4;name=memchr-2.3.4 \
+    crate://crates.io/nom/5.1.1;name=nom-5.1.1 \
+    crate://crates.io/ntp-parser/0.4.0;name=ntp-parser-0.5.0 \
+    crate://crates.io/num/0.2.1;name=num-0.2.1 \
+    crate://crates.io/num-derive/0.2.5;name=num-derive-0.2.5 \
+    crate://crates.io/snmp-parser/0.6.0;name=snmp-parser-0.6.0 \
+    crate://crates.io/tls-parser/0.9.4;name=tls-parser-0.9.4 \
+    crate://crates.io/uuid/0.8.2;name=uuid-0.8.2 \
+    crate://crates.io/widestring/0.4.3;name=widestring-0.4.3 \
+    crate://crates.io/x509-parser/0.6.5;name=x509-parser-0.6.5 \
+    crate://crates.io/build_const/0.2.1;name=build_const-0.2.1 \
+    crate://crates.io/der-oid-macro/0.2.0;name=der-oid-macro-0.2.0 \
+    crate://crates.io/proc-macro-hack/0.5.19;name=proc-macro-hack-0.5.19 \
+    crate://crates.io/rusticata-macros/2.1.0;name=rusticata-macros-2.1.0 \
+    crate://crates.io/miniz_oxide/0.4.4;name=miniz_oxide-0.4.4 \
+    crate://crates.io/num-bigint/0.2.6;name=num-bigint-0.2.6 \
+    crate://crates.io/num-bigint/0.3.1;name=num-bigint-0.3.1 \
+    crate://crates.io/num-complex/0.2.4;name=num-complex-0.2.4 \
+    crate://crates.io/num-integer/0.1.44;name=num-integer-0.1.44 \
+    crate://crates.io/num-iter/0.1.42;name=num-iter-0.1.42 \
+    crate://crates.io/num-rational/0.2.4;name=num-rational-0.2.4 \
+    crate://crates.io/num-traits/0.2.14;name=num-traits-0.2.14 \
+    crate://crates.io/num-traits/0.1.43;name=num-traits-0.1.43 \
+    crate://crates.io/enum_primitive/0.1.1;name=enum_primitive-0.1.1 \
+    crate://crates.io/phf/0.8.0;name=phf-0.8.0 \
+    crate://crates.io/phf_codegen/0.8.0;name=phf_codegen-0.8.0 \
+    crate://crates.io/phf_generator/0.8.0;name=phf_generator-0.8.0 \
+    crate://crates.io/base64/0.11.0;name=base64-0.11.0 \
+    crate://crates.io/time/0.1.44;name=time-0.1.44 \
+    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1;name=wasi-0.10.0+wasi-snapshot-preview1 \
+    crate://crates.io/lexical-core/0.6.8;name=lexical-core-0.6.8 \
+"
+
+# test case support
+SRC_URI += " \
+    crate://crates.io/test-case/1.0.1;name=test-case-1.0.1 \
+"
+
+# Autogenerated with 'bitbake -c update_crates suricata'
+# from vendor/base64/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/arrayvec/0.4.11;name=arrayvec-0.4.11 \
+    crate://crates.io/atty/0.2.12;name=atty-0.2.12 \
+    crate://crates.io/autocfg/0.1.4;name=autocfg-0.1.4 \
+    crate://crates.io/bitflags/1.1.0;name=bitflags-1.1.0 \
+    crate://crates.io/bstr/0.2.1;name=bstr-0.2.1 \
+    crate://crates.io/byteorder/1.3.2;name=byteorder-1.3.2 \
+    crate://crates.io/cast/0.2.2;name=cast-0.2.2 \
+    crate://crates.io/cfg-if/0.1.9;name=cfg-if-0.1.9 \
+    crate://crates.io/clap/2.33.0;name=clap-2.33.0 \
+    crate://crates.io/cloudabi/0.0.3;name=cloudabi-0.0.3 \
+    crate://crates.io/criterion/0.3.0;name=criterion-0.3.0 \
+    crate://crates.io/criterion-plot/0.4.0;name=criterion-plot-0.4.0 \
+    crate://crates.io/crossbeam-deque/0.6.3;name=crossbeam-deque-0.6.3 \
+    crate://crates.io/crossbeam-epoch/0.7.1;name=crossbeam-epoch-0.7.1 \
+    crate://crates.io/crossbeam-queue/0.1.2;name=crossbeam-queue-0.1.2 \
+    crate://crates.io/crossbeam-utils/0.6.5;name=crossbeam-utils-0.6.5 \
+    crate://crates.io/csv/1.1.1;name=csv-1.1.1 \
+    crate://crates.io/csv-core/0.1.6;name=csv-core-0.1.6 \
+    crate://crates.io/doc-comment/0.3.1;name=doc-comment-0.3.1 \
+    crate://crates.io/either/1.5.2;name=either-1.5.2 \
+    crate://crates.io/fuchsia-cprng/0.1.1;name=fuchsia-cprng-0.1.1 \
+    crate://crates.io/getrandom/0.1.13;name=getrandom-0.1.13 \
+    crate://crates.io/itertools/0.8.0;name=itertools-0.8.0 \
+    crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
+    crate://crates.io/lazy_static/1.3.0;name=lazy_static-1.3.0 \
+    crate://crates.io/libc/0.2.65;name=libc-0.2.65 \
+    crate://crates.io/memchr/2.2.1;name=memchr-2.2.1 \
+    crate://crates.io/memoffset/0.2.1;name=memoffset-0.2.1 \
+    crate://crates.io/nodrop/0.1.13;name=nodrop-0.1.13 \
+    crate://crates.io/num-traits/0.2.8;name=num-traits-0.2.8 \
+    crate://crates.io/num_cpus/1.10.1;name=num_cpus-1.10.1 \
+    crate://crates.io/proc-macro2/0.4.30;name=proc-macro2-0.4.30 \
+    crate://crates.io/quote/0.6.13;name=quote-0.6.13 \
+    crate://crates.io/rand/0.6.5;name=rand-0.6.5 \
+    crate://crates.io/rand_chacha/0.1.1;name=rand_chacha-0.1.1 \
+    crate://crates.io/rand_core/0.3.1;name=rand_core-0.3.1 \
+    crate://crates.io/rand_core/0.4.0;name=rand_core-0.4.0 \
+    crate://crates.io/rand_core/0.5.1;name=rand_core-0.5.1 \
+    crate://crates.io/rand_hc/0.1.0;name=rand_hc-0.1.0 \
+    crate://crates.io/rand_isaac/0.1.1;name=rand_isaac-0.1.1 \
+    crate://crates.io/rand_jitter/0.1.4;name=rand_jitter-0.1.4 \
+    crate://crates.io/rand_os/0.1.3;name=rand_os-0.1.3 \
+    crate://crates.io/rand_os/0.2.2;name=rand_os-0.2.2 \
+    crate://crates.io/rand_pcg/0.1.2;name=rand_pcg-0.1.2 \
+    crate://crates.io/rand_xorshift/0.1.1;name=rand_xorshift-0.1.1 \
+    crate://crates.io/rand_xoshiro/0.3.1;name=rand_xoshiro-0.3.1 \
+    crate://crates.io/rayon/1.1.0;name=rayon-1.1.0 \
+    crate://crates.io/rayon-core/1.5.0;name=rayon-core-1.5.0 \
+    crate://crates.io/rdrand/0.4.0;name=rdrand-0.4.0 \
+    crate://crates.io/regex-automata/0.1.7;name=regex-automata-0.1.7 \
+    crate://crates.io/ryu/1.0.0;name=ryu-1.0.0 \
+    crate://crates.io/same-file/1.0.4;name=same-file-1.0.4 \
+    crate://crates.io/scopeguard/0.3.3;name=scopeguard-0.3.3 \
+    crate://crates.io/serde/1.0.94;name=serde-1.0.94 \
+    crate://crates.io/serde_derive/1.0.94;name=serde_derive-1.0.94 \
+    crate://crates.io/serde_json/1.0.40;name=serde_json-1.0.40 \
+    crate://crates.io/syn/0.15.39;name=syn-0.15.39 \
+    crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
+    crate://crates.io/tinytemplate/1.0.2;name=tinytemplate-1.0.2 \
+    crate://crates.io/unicode-width/0.1.5;name=unicode-width-0.1.5 \
+    crate://crates.io/unicode-xid/0.1.0;name=unicode-xid-0.1.0 \
+    crate://crates.io/walkdir/2.2.8;name=walkdir-2.2.8 \
+    crate://crates.io/wasi/0.7.0;name=wasi-0.7.0 \
+    crate://crates.io/winapi/0.3.7;name=winapi-0.3.7 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.2;name=winapi-util-0.1.2 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+"
+
+# from vendor/ryu/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/getrandom/0.2.7;name=getrandom-0.2.7 \
+    crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
+    crate://crates.io/libc/0.2.134;name=libc-0.2.134 \
+    crate://crates.io/no-panic/0.1.16;name=no-panic-0.1.16 \
+    crate://crates.io/num_cpus/1.13.1;name=num_cpus-1.13.1 \
+    crate://crates.io/ppv-lite86/0.2.16;name=ppv-lite86-0.2.16 \
+    crate://crates.io/proc-macro2/1.0.46;name=proc-macro2-1.0.46 \
+    crate://crates.io/quote/1.0.21;name=quote-1.0.21 \
+    crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
+    crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
+    crate://crates.io/rand_xorshift/0.3.0;name=rand_xorshift-0.3.0 \
+    crate://crates.io/syn/1.0.102;name=syn-1.0.102 \
+    crate://crates.io/unicode-ident/1.0.4;name=unicode-ident-1.0.4 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+"
+
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[getrandom-0.2.7.sha256sum] = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[libc-0.2.134.sha256sum] = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb"
+SRC_URI[no-panic-0.1.16.sha256sum] = "12f10d4b6dcf2138f0fc171f4cc8f49517cc71ac57e29aa061c61aa57ec2dffc"
+SRC_URI[num_cpus-1.13.1.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+SRC_URI[ppv-lite86-0.2.16.sha256sum] = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+SRC_URI[proc-macro2-1.0.46.sha256sum] = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
+SRC_URI[quote-1.0.21.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rand_xorshift-0.3.0.sha256sum] = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+SRC_URI[syn-1.0.102.sha256sum] = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
+SRC_URI[unicode-ident-1.0.4.sha256sum] = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+# from vendor/flate2/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/adler/1.0.2;name=adler-1.0.2 \
+    crate://crates.io/cc/1.0.77;name=cc-1.0.77 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/cloudflare-zlib-sys/0.3.0;name=cloudflare-zlib-sys-0.3.0 \
+    crate://crates.io/cmake/0.1.49;name=cmake-0.1.49 \
+    crate://crates.io/crc32fast/1.3.2;name=crc32fast-1.3.2 \
+    crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
+    crate://crates.io/libc/0.2.137;name=libc-0.2.137 \
+    crate://crates.io/libz-ng-sys/1.1.8;name=libz-ng-sys-1.1.8 \
+    crate://crates.io/libz-sys/1.1.8;name=libz-sys-1.1.8 \
+    crate://crates.io/miniz_oxide/0.6.2;name=miniz_oxide-0.6.2 \
+    crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
+    crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
+    crate://crates.io/quickcheck/1.0.3;name=quickcheck-1.0.3 \
+    crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
+    crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
+    crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+"
+
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[cc-1.0.77.sha256sum] = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[cloudflare-zlib-sys-0.3.0.sha256sum] = "2040b6d1edfee6d75f172d81e2d2a7807534f3f294ce18184c70e7bb0105cd6f"
+SRC_URI[cmake-0.1.49.sha256sum] = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[libc-0.2.137.sha256sum] = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+SRC_URI[libz-ng-sys-1.1.8.sha256sum] = "4399ae96a9966bf581e726de86969f803a81b7ce795fcd5480e640589457e0f2"
+SRC_URI[libz-sys-1.1.8.sha256sum] = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+SRC_URI[miniz_oxide-0.6.2.sha256sum] = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+# from vendor/nom/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/aho-corasick/0.7.6;name=aho-corasick-0.7.6 \
+    crate://crates.io/arrayvec/0.4.11;name=arrayvec-0.4.11 \
+    crate://crates.io/atty/0.2.13;name=atty-0.2.13 \
+    crate://crates.io/autocfg/0.1.6;name=autocfg-0.1.6 \
+    crate://crates.io/bitflags/1.2.1;name=bitflags-1.2.1 \
+    crate://crates.io/bstr/0.2.7;name=bstr-0.2.7 \
+    crate://crates.io/byteorder/1.3.2;name=byteorder-1.3.2 \
+    crate://crates.io/cast/0.2.2;name=cast-0.2.2 \
+    crate://crates.io/cc/1.0.40;name=cc-1.0.40 \
+    crate://crates.io/cfg-if/0.1.9;name=cfg-if-0.1.9 \
+    crate://crates.io/clap/2.33.0;name=clap-2.33.0 \
+    crate://crates.io/cloudabi/0.0.3;name=cloudabi-0.0.3 \
+    crate://crates.io/criterion/0.2.11;name=criterion-0.2.11 \
+    crate://crates.io/criterion-plot/0.3.1;name=criterion-plot-0.3.1 \
+    crate://crates.io/crossbeam-deque/0.6.3;name=crossbeam-deque-0.6.3 \
+    crate://crates.io/crossbeam-epoch/0.7.2;name=crossbeam-epoch-0.7.2 \
+    crate://crates.io/crossbeam-queue/0.1.2;name=crossbeam-queue-0.1.2 \
+    crate://crates.io/crossbeam-utils/0.6.6;name=crossbeam-utils-0.6.6 \
+    crate://crates.io/csv/1.1.1;name=csv-1.1.1 \
+    crate://crates.io/csv-core/0.1.6;name=csv-core-0.1.6 \
+    crate://crates.io/doc-comment/0.3.1;name=doc-comment-0.3.1 \
+    crate://crates.io/either/1.5.2;name=either-1.5.2 \
+    crate://crates.io/fs_extra/1.1.0;name=fs_extra-1.1.0 \
+    crate://crates.io/fuchsia-cprng/0.1.1;name=fuchsia-cprng-0.1.1 \
+    crate://crates.io/itertools/0.8.0;name=itertools-0.8.0 \
+    crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
+    crate://crates.io/jemalloc-sys/0.1.8;name=jemalloc-sys-0.1.8 \
+    crate://crates.io/jemallocator/0.1.9;name=jemallocator-0.1.9 \
+    crate://crates.io/lazy_static/1.3.0;name=lazy_static-1.3.0 \
+    crate://crates.io/lexical-core/0.6.7;name=lexical-core-0.6.7 \
+    crate://crates.io/libc/0.2.62;name=libc-0.2.62 \
+    crate://crates.io/memchr/2.2.1;name=memchr-2.2.1 \
+    crate://crates.io/memoffset/0.5.1;name=memoffset-0.5.1 \
+    crate://crates.io/nodrop/0.1.13;name=nodrop-0.1.13 \
+    crate://crates.io/num-traits/0.2.8;name=num-traits-0.2.8 \
+    crate://crates.io/num_cpus/1.10.1;name=num_cpus-1.10.1 \
+    crate://crates.io/proc-macro2/1.0.1;name=proc-macro2-1.0.1 \
+    crate://crates.io/quote/1.0.2;name=quote-1.0.2 \
+    crate://crates.io/rand_core/0.3.1;name=rand_core-0.3.1 \
+    crate://crates.io/rand_core/0.4.2;name=rand_core-0.4.2 \
+    crate://crates.io/rand_os/0.1.3;name=rand_os-0.1.3 \
+    crate://crates.io/rand_xoshiro/0.1.0;name=rand_xoshiro-0.1.0 \
+    crate://crates.io/rayon/1.1.0;name=rayon-1.1.0 \
+    crate://crates.io/rayon-core/1.5.0;name=rayon-core-1.5.0 \
+    crate://crates.io/rdrand/0.4.0;name=rdrand-0.4.0 \
+    crate://crates.io/regex/1.2.1;name=regex-1.2.1 \
+    crate://crates.io/regex-automata/0.1.8;name=regex-automata-0.1.8 \
+    crate://crates.io/regex-syntax/0.6.11;name=regex-syntax-0.6.11 \
+    crate://crates.io/rustc_version/0.2.3;name=rustc_version-0.2.3 \
+    crate://crates.io/ryu/1.0.0;name=ryu-1.0.0 \
+    crate://crates.io/same-file/1.0.5;name=same-file-1.0.5 \
+    crate://crates.io/scopeguard/1.0.0;name=scopeguard-1.0.0 \
+    crate://crates.io/semver/0.9.0;name=semver-0.9.0 \
+    crate://crates.io/semver-parser/0.7.0;name=semver-parser-0.7.0 \
+    crate://crates.io/serde/1.0.99;name=serde-1.0.99 \
+    crate://crates.io/serde_derive/1.0.99;name=serde_derive-1.0.99 \
+    crate://crates.io/serde_json/1.0.40;name=serde_json-1.0.40 \
+    crate://crates.io/static_assertions/0.3.4;name=static_assertions-0.3.4 \
+    crate://crates.io/syn/1.0.3;name=syn-1.0.3 \
+    crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
+    crate://crates.io/thread_local/0.3.6;name=thread_local-0.3.6 \
+    crate://crates.io/tinytemplate/1.0.2;name=tinytemplate-1.0.2 \
+    crate://crates.io/unicode-width/0.1.6;name=unicode-width-0.1.6 \
+    crate://crates.io/unicode-xid/0.2.0;name=unicode-xid-0.2.0 \
+    crate://crates.io/version_check/0.9.1;name=version_check-0.9.1 \
+    crate://crates.io/walkdir/2.2.9;name=walkdir-2.2.9 \
+    crate://crates.io/winapi/0.3.7;name=winapi-0.3.7 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.2;name=winapi-util-0.1.2 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+"
+
+# from vendor/brotli/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/alloc-no-stdlib/2.0.3;name=alloc-no-stdlib-2.0.3 \
+    crate://crates.io/alloc-stdlib/0.2.1;name=alloc-stdlib-0.2.1 \
+    crate://crates.io/block-buffer/0.7.3;name=block-buffer-0.7.3 \
+    crate://crates.io/block-padding/0.1.5;name=block-padding-0.1.5 \
+    crate://crates.io/brotli-decompressor/2.3.2;name=brotli-decompressor-2.3.2 \
+    crate://crates.io/byte-tools/0.3.1;name=byte-tools-0.3.1 \
+    crate://crates.io/byteorder/1.4.3;name=byteorder-1.4.3 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/digest/0.8.1;name=digest-0.8.1 \
+    crate://crates.io/fake-simd/0.1.2;name=fake-simd-0.1.2 \
+    crate://crates.io/generic-array/0.12.4;name=generic-array-0.12.4 \
+    crate://crates.io/libm/0.1.4;name=libm-0.1.4 \
+    crate://crates.io/opaque-debug/0.2.3;name=opaque-debug-0.2.3 \
+    crate://crates.io/packed_simd_2/0.3.7;name=packed_simd_2-0.3.7 \
+    crate://crates.io/sha2/0.8.2;name=sha2-0.8.2 \
+    crate://crates.io/typenum/1.15.0;name=typenum-1.15.0 \
+"
+
+SRC_URI[alloc-no-stdlib-2.0.3.sha256sum] = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3"
+SRC_URI[alloc-stdlib-0.2.1.sha256sum] = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2"
+SRC_URI[block-buffer-0.7.3.sha256sum] = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+SRC_URI[block-padding-0.1.5.sha256sum] = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
+SRC_URI[brotli-decompressor-2.3.2.sha256sum] = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80"
+SRC_URI[byte-tools-0.3.1.sha256sum] = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[digest-0.8.1.sha256sum] = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
+SRC_URI[fake-simd-0.1.2.sha256sum] = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+SRC_URI[generic-array-0.12.4.sha256sum] = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
+SRC_URI[libm-0.1.4.sha256sum] = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
+SRC_URI[opaque-debug-0.2.3.sha256sum] = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
+SRC_URI[packed_simd_2-0.3.7.sha256sum] = "defdcfef86dcc44ad208f71d9ff4ce28df6537a4e0d6b0e8e845cb8ca10059a6"
+SRC_URI[sha2-0.8.2.sha256sum] = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
+SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+# from vendor/alloc-stdlib/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/alloc-no-stdlib/2.0.4;name=alloc-no-stdlib-2.0.4 \
+"
+
+SRC_URI[alloc-no-stdlib-2.0.4.sha256sum] = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+# from vendor/brotli-decompressor/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/alloc-no-stdlib/2.0.4;name=alloc-no-stdlib-2.0.4 \
+    crate://crates.io/alloc-stdlib/0.2.2;name=alloc-stdlib-0.2.2 \
+"
+
+SRC_URI[alloc-no-stdlib-2.0.4.sha256sum] = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+SRC_URI[alloc-stdlib-0.2.2.sha256sum] = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+# from vendor/phf_generator/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/arrayvec/0.4.12;name=arrayvec-0.4.12 \
+    crate://crates.io/atty/0.2.13;name=atty-0.2.13 \
+    crate://crates.io/autocfg/0.1.6;name=autocfg-0.1.6 \
+    crate://crates.io/bitflags/1.2.1;name=bitflags-1.2.1 \
+    crate://crates.io/bstr/0.2.8;name=bstr-0.2.8 \
+    crate://crates.io/byteorder/1.3.2;name=byteorder-1.3.2 \
+    crate://crates.io/c2-chacha/0.2.2;name=c2-chacha-0.2.2 \
+    crate://crates.io/cast/0.2.2;name=cast-0.2.2 \
+    crate://crates.io/cfg-if/0.1.10;name=cfg-if-0.1.10 \
+    crate://crates.io/clap/2.33.0;name=clap-2.33.0 \
+    crate://crates.io/criterion/0.3.0;name=criterion-0.3.0 \
+    crate://crates.io/criterion-plot/0.4.0;name=criterion-plot-0.4.0 \
+    crate://crates.io/crossbeam-deque/0.7.1;name=crossbeam-deque-0.7.1 \
+    crate://crates.io/crossbeam-epoch/0.7.2;name=crossbeam-epoch-0.7.2 \
+    crate://crates.io/crossbeam-queue/0.1.2;name=crossbeam-queue-0.1.2 \
+    crate://crates.io/crossbeam-utils/0.6.6;name=crossbeam-utils-0.6.6 \
+    crate://crates.io/csv/1.1.1;name=csv-1.1.1 \
+    crate://crates.io/csv-core/0.1.6;name=csv-core-0.1.6 \
+    crate://crates.io/either/1.5.3;name=either-1.5.3 \
+    crate://crates.io/getrandom/0.1.12;name=getrandom-0.1.12 \
+    crate://crates.io/itertools/0.8.0;name=itertools-0.8.0 \
+    crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/libc/0.2.64;name=libc-0.2.64 \
+    crate://crates.io/memchr/2.2.1;name=memchr-2.2.1 \
+    crate://crates.io/memoffset/0.5.1;name=memoffset-0.5.1 \
+    crate://crates.io/nodrop/0.1.14;name=nodrop-0.1.14 \
+    crate://crates.io/num-traits/0.2.8;name=num-traits-0.2.8 \
+    crate://crates.io/num_cpus/1.10.1;name=num_cpus-1.10.1 \
+    crate://crates.io/phf_shared/0.8.0;name=phf_shared-0.8.0 \
+    crate://crates.io/ppv-lite86/0.2.5;name=ppv-lite86-0.2.5 \
+    crate://crates.io/proc-macro2/1.0.5;name=proc-macro2-1.0.5 \
+    crate://crates.io/quote/1.0.2;name=quote-1.0.2 \
+    crate://crates.io/rand/0.7.2;name=rand-0.7.2 \
+    crate://crates.io/rand_chacha/0.2.1;name=rand_chacha-0.2.1 \
+    crate://crates.io/rand_core/0.5.1;name=rand_core-0.5.1 \
+    crate://crates.io/rand_hc/0.2.0;name=rand_hc-0.2.0 \
+    crate://crates.io/rand_os/0.2.2;name=rand_os-0.2.2 \
+    crate://crates.io/rand_pcg/0.2.0;name=rand_pcg-0.2.0 \
+    crate://crates.io/rand_xoshiro/0.3.1;name=rand_xoshiro-0.3.1 \
+    crate://crates.io/rayon/1.2.0;name=rayon-1.2.0 \
+    crate://crates.io/rayon-core/1.6.0;name=rayon-core-1.6.0 \
+    crate://crates.io/regex-automata/0.1.8;name=regex-automata-0.1.8 \
+    crate://crates.io/rustc_version/0.2.3;name=rustc_version-0.2.3 \
+    crate://crates.io/ryu/1.0.2;name=ryu-1.0.2 \
+    crate://crates.io/same-file/1.0.5;name=same-file-1.0.5 \
+    crate://crates.io/scopeguard/1.0.0;name=scopeguard-1.0.0 \
+    crate://crates.io/semver/0.9.0;name=semver-0.9.0 \
+    crate://crates.io/semver-parser/0.7.0;name=semver-parser-0.7.0 \
+    crate://crates.io/serde/1.0.101;name=serde-1.0.101 \
+    crate://crates.io/serde_derive/1.0.101;name=serde_derive-1.0.101 \
+    crate://crates.io/serde_json/1.0.41;name=serde_json-1.0.41 \
+    crate://crates.io/siphasher/0.3.1;name=siphasher-0.3.1 \
+    crate://crates.io/syn/1.0.5;name=syn-1.0.5 \
+    crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
+    crate://crates.io/tinytemplate/1.0.2;name=tinytemplate-1.0.2 \
+    crate://crates.io/unicode-width/0.1.6;name=unicode-width-0.1.6 \
+    crate://crates.io/unicode-xid/0.2.0;name=unicode-xid-0.2.0 \
+    crate://crates.io/walkdir/2.2.9;name=walkdir-2.2.9 \
+    crate://crates.io/wasi/0.7.0;name=wasi-0.7.0 \
+    crate://crates.io/winapi/0.3.8;name=winapi-0.3.8 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.2;name=winapi-util-0.1.2 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+"
+
+# from vendor/rand/Cargo.lock
+SRC_URI += " \
+    crate://crates.io/base-x/0.2.5;name=base-x-0.2.5 \
+    crate://crates.io/bumpalo/2.6.0;name=bumpalo-2.6.0 \
+    crate://crates.io/c2-chacha/0.2.2;name=c2-chacha-0.2.2 \
+    crate://crates.io/cfg-if/0.1.9;name=cfg-if-0.1.9 \
+    crate://crates.io/discard/1.0.4;name=discard-1.0.4 \
+    crate://crates.io/getrandom/0.1.12;name=getrandom-0.1.12 \
+    crate://crates.io/itoa/0.4.4;name=itoa-0.4.4 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/libc/0.2.62;name=libc-0.2.62 \
+    crate://crates.io/log/0.4.8;name=log-0.4.8 \
+    crate://crates.io/packed_simd/0.3.3;name=packed_simd-0.3.3 \
+    crate://crates.io/ppv-lite86/0.2.5;name=ppv-lite86-0.2.5 \
+    crate://crates.io/proc-macro2/0.4.30;name=proc-macro2-0.4.30 \
+    crate://crates.io/proc-macro2/1.0.3;name=proc-macro2-1.0.3 \
+    crate://crates.io/quote/0.6.13;name=quote-0.6.13 \
+    crate://crates.io/quote/1.0.2;name=quote-1.0.2 \
+    crate://crates.io/rand_chacha/0.2.1;name=rand_chacha-0.2.1 \
+    crate://crates.io/rand_core/0.5.1;name=rand_core-0.5.1 \
+    crate://crates.io/rand_hc/0.2.0;name=rand_hc-0.2.0 \
+    crate://crates.io/rand_pcg/0.2.1;name=rand_pcg-0.2.1 \
+    crate://crates.io/rustc_version/0.2.3;name=rustc_version-0.2.3 \
+    crate://crates.io/ryu/1.0.0;name=ryu-1.0.0 \
+    crate://crates.io/semver/0.9.0;name=semver-0.9.0 \
+    crate://crates.io/semver-parser/0.7.0;name=semver-parser-0.7.0 \
+    crate://crates.io/serde/1.0.100;name=serde-1.0.100 \
+    crate://crates.io/serde_derive/1.0.100;name=serde_derive-1.0.100 \
+    crate://crates.io/serde_json/1.0.40;name=serde_json-1.0.40 \
+    crate://crates.io/sha1/0.6.0;name=sha1-0.6.0 \
+    crate://crates.io/stdweb/0.4.18;name=stdweb-0.4.18 \
+    crate://crates.io/stdweb-derive/0.5.1;name=stdweb-derive-0.5.1 \
+    crate://crates.io/stdweb-internal-macros/0.2.7;name=stdweb-internal-macros-0.2.7 \
+    crate://crates.io/stdweb-internal-runtime/0.1.4;name=stdweb-internal-runtime-0.1.4 \
+    crate://crates.io/syn/0.15.44;name=syn-0.15.44 \
+    crate://crates.io/syn/1.0.5;name=syn-1.0.5 \
+    crate://crates.io/unicode-xid/0.1.0;name=unicode-xid-0.1.0 \
+    crate://crates.io/unicode-xid/0.2.0;name=unicode-xid-0.2.0 \
+    crate://crates.io/wasi/0.7.0;name=wasi-0.7.0 \
+    crate://crates.io/wasm-bindgen/0.2.50;name=wasm-bindgen-0.2.50 \
+    crate://crates.io/wasm-bindgen-backend/0.2.50;name=wasm-bindgen-backend-0.2.50 \
+    crate://crates.io/wasm-bindgen-macro/0.2.50;name=wasm-bindgen-macro-0.2.50 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.50;name=wasm-bindgen-macro-support-0.2.50 \
+    crate://crates.io/wasm-bindgen-shared/0.2.50;name=wasm-bindgen-shared-0.2.50 \
+"
+
+SRC_URI[arrayvec-0.4.11.sha256sum] = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba"
+SRC_URI[atty-0.2.12.sha256sum] = "ecaaea69f52b3b18633611ec0007d188517d0366f47ff703d400fa6879d6f8d5"
+SRC_URI[autocfg-0.1.4.sha256sum] = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf"
+SRC_URI[bitflags-1.1.0.sha256sum] = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
+SRC_URI[bstr-0.2.1.sha256sum] = "6cc0572e02f76cb335f309b19e0a0d585b4f62788f7d26de2a13a836a637385f"
+SRC_URI[byteorder-1.3.2.sha256sum] = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+SRC_URI[cast-0.2.2.sha256sum] = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
+SRC_URI[cfg-if-0.1.9.sha256sum] = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
+SRC_URI[clap-2.33.0.sha256sum] = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
+SRC_URI[cloudabi-0.0.3.sha256sum] = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+SRC_URI[criterion-0.3.0.sha256sum] = "938703e165481c8d612ea3479ac8342e5615185db37765162e762ec3523e2fc6"
+SRC_URI[criterion-plot-0.4.0.sha256sum] = "eccdc6ce8bbe352ca89025bee672aa6d24f4eb8c53e3a8b5d1bc58011da072a2"
+SRC_URI[crossbeam-deque-0.6.3.sha256sum] = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13"
+SRC_URI[crossbeam-epoch-0.7.1.sha256sum] = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4"
+SRC_URI[crossbeam-queue-0.1.2.sha256sum] = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+SRC_URI[crossbeam-utils-0.6.5.sha256sum] = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c"
+SRC_URI[csv-1.1.1.sha256sum] = "37519ccdfd73a75821cac9319d4fce15a81b9fcf75f951df5b9988aa3a0af87d"
+SRC_URI[csv-core-0.1.6.sha256sum] = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c"
+SRC_URI[doc-comment-0.3.1.sha256sum] = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
+SRC_URI[either-1.5.2.sha256sum] = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
+SRC_URI[fuchsia-cprng-0.1.1.sha256sum] = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+SRC_URI[getrandom-0.1.13.sha256sum] = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
+SRC_URI[itertools-0.8.0.sha256sum] = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
+SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+SRC_URI[lazy_static-1.3.0.sha256sum] = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
+SRC_URI[libc-0.2.65.sha256sum] = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
+SRC_URI[memchr-2.2.1.sha256sum] = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+SRC_URI[memoffset-0.2.1.sha256sum] = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
+SRC_URI[nodrop-0.1.13.sha256sum] = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
+SRC_URI[num-traits-0.2.8.sha256sum] = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
+SRC_URI[num_cpus-1.10.1.sha256sum] = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
+SRC_URI[proc-macro2-0.4.30.sha256sum] = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+SRC_URI[quote-0.6.13.sha256sum] = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+SRC_URI[rand-0.6.5.sha256sum] = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+SRC_URI[rand_chacha-0.1.1.sha256sum] = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+SRC_URI[rand_core-0.3.1.sha256sum] = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+SRC_URI[rand_core-0.4.0.sha256sum] = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
+SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+SRC_URI[rand_hc-0.1.0.sha256sum] = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+SRC_URI[rand_isaac-0.1.1.sha256sum] = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+SRC_URI[rand_jitter-0.1.4.sha256sum] = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+SRC_URI[rand_os-0.1.3.sha256sum] = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+SRC_URI[rand_os-0.2.2.sha256sum] = "a788ae3edb696cfcba1c19bfd388cc4b8c21f8a408432b199c072825084da58a"
+SRC_URI[rand_pcg-0.1.2.sha256sum] = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+SRC_URI[rand_xorshift-0.1.1.sha256sum] = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+SRC_URI[rand_xoshiro-0.3.1.sha256sum] = "0e18c91676f670f6f0312764c759405f13afb98d5d73819840cf72a518487bff"
+SRC_URI[rayon-1.1.0.sha256sum] = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4"
+SRC_URI[rayon-core-1.5.0.sha256sum] = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2"
+SRC_URI[rdrand-0.4.0.sha256sum] = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+SRC_URI[regex-automata-0.1.7.sha256sum] = "3ed09217220c272b29ef237a974ad58515bde75f194e3ffa7e6d0bf0f3b01f86"
+SRC_URI[ryu-1.0.0.sha256sum] = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
+SRC_URI[same-file-1.0.4.sha256sum] = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267"
+SRC_URI[scopeguard-0.3.3.sha256sum] = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+SRC_URI[serde-1.0.94.sha256sum] = "076a696fdea89c19d3baed462576b8f6d663064414b5c793642da8dfeb99475b"
+SRC_URI[serde_derive-1.0.94.sha256sum] = "ef45eb79d6463b22f5f9e16d283798b7c0175ba6050bc25c1a946c122727fe7b"
+SRC_URI[serde_json-1.0.40.sha256sum] = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
+SRC_URI[syn-0.15.39.sha256sum] = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[tinytemplate-1.0.2.sha256sum] = "4574b75faccaacddb9b284faecdf0b544b80b6b294f3d062d325c5726a209c20"
+SRC_URI[unicode-width-0.1.5.sha256sum] = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+SRC_URI[unicode-xid-0.1.0.sha256sum] = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+SRC_URI[walkdir-2.2.8.sha256sum] = "c7904a7e2bb3cdf0cf5e783f44204a85a37a93151738fa349f06680f59a98b45"
+SRC_URI[wasi-0.7.0.sha256sum] = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+SRC_URI[winapi-0.3.7.sha256sum] = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.2.sha256sum] = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[aho-corasick-0.7.6.sha256sum] = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
+SRC_URI[arrayvec-0.4.11.sha256sum] = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba"
+SRC_URI[atty-0.2.13.sha256sum] = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
+SRC_URI[autocfg-0.1.6.sha256sum] = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
+SRC_URI[bitflags-1.2.1.sha256sum] = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+SRC_URI[bstr-0.2.7.sha256sum] = "94cdf78eb7e94c566c1f5dbe2abf8fc70a548fc902942a48c4b3a98b48ca9ade"
+SRC_URI[byteorder-1.3.2.sha256sum] = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+SRC_URI[cast-0.2.2.sha256sum] = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
+SRC_URI[cc-1.0.40.sha256sum] = "b548a4ee81fccb95919d4e22cfea83c7693ebfd78f0495493178db20b3139da7"
+SRC_URI[cfg-if-0.1.9.sha256sum] = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
+SRC_URI[clap-2.33.0.sha256sum] = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
+SRC_URI[cloudabi-0.0.3.sha256sum] = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+SRC_URI[criterion-0.2.11.sha256sum] = "0363053954f3e679645fc443321ca128b7b950a6fe288cf5f9335cc22ee58394"
+SRC_URI[criterion-plot-0.3.1.sha256sum] = "76f9212ddf2f4a9eb2d401635190600656a1f88a932ef53d06e7fa4c7e02fb8e"
+SRC_URI[crossbeam-deque-0.6.3.sha256sum] = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13"
+SRC_URI[crossbeam-epoch-0.7.2.sha256sum] = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9"
+SRC_URI[crossbeam-queue-0.1.2.sha256sum] = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+SRC_URI[crossbeam-utils-0.6.6.sha256sum] = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+SRC_URI[csv-1.1.1.sha256sum] = "37519ccdfd73a75821cac9319d4fce15a81b9fcf75f951df5b9988aa3a0af87d"
+SRC_URI[csv-core-0.1.6.sha256sum] = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c"
+SRC_URI[doc-comment-0.3.1.sha256sum] = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
+SRC_URI[either-1.5.2.sha256sum] = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
+SRC_URI[fs_extra-1.1.0.sha256sum] = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
+SRC_URI[fuchsia-cprng-0.1.1.sha256sum] = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+SRC_URI[itertools-0.8.0.sha256sum] = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
+SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+SRC_URI[jemalloc-sys-0.1.8.sha256sum] = "bfc62c8e50e381768ce8ee0428ee53741929f7ebd73e4d83f669bcf7693e00ae"
+SRC_URI[jemallocator-0.1.9.sha256sum] = "9f0cd42ac65f758063fea55126b0148b1ce0a6354ff78e07a4d6806bc65c4ab3"
+SRC_URI[lazy_static-1.3.0.sha256sum] = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
+SRC_URI[lexical-core-0.6.7.sha256sum] = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
+SRC_URI[libc-0.2.62.sha256sum] = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
+SRC_URI[memchr-2.2.1.sha256sum] = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+SRC_URI[memoffset-0.5.1.sha256sum] = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f"
+SRC_URI[nodrop-0.1.13.sha256sum] = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
+SRC_URI[num-traits-0.2.8.sha256sum] = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
+SRC_URI[num_cpus-1.10.1.sha256sum] = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
+SRC_URI[proc-macro2-1.0.1.sha256sum] = "4c5c2380ae88876faae57698be9e9775e3544decad214599c3a6266cca6ac802"
+SRC_URI[quote-1.0.2.sha256sum] = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+SRC_URI[rand_core-0.3.1.sha256sum] = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+SRC_URI[rand_core-0.4.2.sha256sum] = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+SRC_URI[rand_os-0.1.3.sha256sum] = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+SRC_URI[rand_xoshiro-0.1.0.sha256sum] = "03b418169fb9c46533f326efd6eed2576699c44ca92d3052a066214a8d828929"
+SRC_URI[rayon-1.1.0.sha256sum] = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4"
+SRC_URI[rayon-core-1.5.0.sha256sum] = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2"
+SRC_URI[rdrand-0.4.0.sha256sum] = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+SRC_URI[regex-1.2.1.sha256sum] = "88c3d9193984285d544df4a30c23a4e62ead42edf70a4452ceb76dac1ce05c26"
+SRC_URI[regex-automata-0.1.8.sha256sum] = "92b73c2a1770c255c240eaa4ee600df1704a38dc3feaa6e949e7fcd4f8dc09f9"
+SRC_URI[regex-syntax-0.6.11.sha256sum] = "b143cceb2ca5e56d5671988ef8b15615733e7ee16cd348e064333b251b89343f"
+SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+SRC_URI[ryu-1.0.0.sha256sum] = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
+SRC_URI[same-file-1.0.5.sha256sum] = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
+SRC_URI[scopeguard-1.0.0.sha256sum] = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
+SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+SRC_URI[serde-1.0.99.sha256sum] = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f"
+SRC_URI[serde_derive-1.0.99.sha256sum] = "cb4dc18c61206b08dc98216c98faa0232f4337e1e1b8574551d5bad29ea1b425"
+SRC_URI[serde_json-1.0.40.sha256sum] = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
+SRC_URI[static_assertions-0.3.4.sha256sum] = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
+SRC_URI[syn-1.0.3.sha256sum] = "158521e6f544e7e3dcfc370ac180794aa38cb34a1b1e07609376d4adcf429b93"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[thread_local-0.3.6.sha256sum] = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+SRC_URI[tinytemplate-1.0.2.sha256sum] = "4574b75faccaacddb9b284faecdf0b544b80b6b294f3d062d325c5726a209c20"
+SRC_URI[unicode-width-0.1.6.sha256sum] = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
+SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+SRC_URI[version_check-0.9.1.sha256sum] = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
+SRC_URI[walkdir-2.2.9.sha256sum] = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e"
+SRC_URI[winapi-0.3.7.sha256sum] = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.2.sha256sum] = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[arrayvec-0.4.12.sha256sum] = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
+SRC_URI[atty-0.2.13.sha256sum] = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
+SRC_URI[autocfg-0.1.6.sha256sum] = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
+SRC_URI[bitflags-1.2.1.sha256sum] = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+SRC_URI[bstr-0.2.8.sha256sum] = "8d6c2c5b58ab920a4f5aeaaca34b4488074e8cc7596af94e6f8c6ff247c60245"
+SRC_URI[byteorder-1.3.2.sha256sum] = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+SRC_URI[c2-chacha-0.2.2.sha256sum] = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
+SRC_URI[cast-0.2.2.sha256sum] = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
+SRC_URI[cfg-if-0.1.10.sha256sum] = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+SRC_URI[clap-2.33.0.sha256sum] = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
+SRC_URI[criterion-0.3.0.sha256sum] = "938703e165481c8d612ea3479ac8342e5615185db37765162e762ec3523e2fc6"
+SRC_URI[criterion-plot-0.4.0.sha256sum] = "eccdc6ce8bbe352ca89025bee672aa6d24f4eb8c53e3a8b5d1bc58011da072a2"
+SRC_URI[crossbeam-deque-0.7.1.sha256sum] = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
+SRC_URI[crossbeam-epoch-0.7.2.sha256sum] = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9"
+SRC_URI[crossbeam-queue-0.1.2.sha256sum] = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+SRC_URI[crossbeam-utils-0.6.6.sha256sum] = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+SRC_URI[csv-1.1.1.sha256sum] = "37519ccdfd73a75821cac9319d4fce15a81b9fcf75f951df5b9988aa3a0af87d"
+SRC_URI[csv-core-0.1.6.sha256sum] = "9b5cadb6b25c77aeff80ba701712494213f4a8418fcda2ee11b6560c3ad0bf4c"
+SRC_URI[either-1.5.3.sha256sum] = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+SRC_URI[getrandom-0.1.12.sha256sum] = "473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571"
+SRC_URI[itertools-0.8.0.sha256sum] = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358"
+SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.64.sha256sum] = "74dfca3d9957906e8d1e6a0b641dc9a59848e793f1da2165889fd4f62d10d79c"
+SRC_URI[memchr-2.2.1.sha256sum] = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+SRC_URI[memoffset-0.5.1.sha256sum] = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f"
+SRC_URI[nodrop-0.1.14.sha256sum] = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+SRC_URI[num-traits-0.2.8.sha256sum] = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
+SRC_URI[num_cpus-1.10.1.sha256sum] = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
+SRC_URI[phf_shared-0.8.0.sha256sum] = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+SRC_URI[ppv-lite86-0.2.5.sha256sum] = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
+SRC_URI[proc-macro2-1.0.5.sha256sum] = "90cf5f418035b98e655e9cdb225047638296b862b42411c4e45bb88d700f7fc0"
+SRC_URI[quote-1.0.2.sha256sum] = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+SRC_URI[rand-0.7.2.sha256sum] = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
+SRC_URI[rand_chacha-0.2.1.sha256sum] = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+SRC_URI[rand_os-0.2.2.sha256sum] = "a788ae3edb696cfcba1c19bfd388cc4b8c21f8a408432b199c072825084da58a"
+SRC_URI[rand_pcg-0.2.0.sha256sum] = "3e196346cbbc5c70c77e7b4926147ee8e383a38ee4d15d58a08098b169e492b6"
+SRC_URI[rand_xoshiro-0.3.1.sha256sum] = "0e18c91676f670f6f0312764c759405f13afb98d5d73819840cf72a518487bff"
+SRC_URI[rayon-1.2.0.sha256sum] = "83a27732a533a1be0a0035a111fe76db89ad312f6f0347004c220c57f209a123"
+SRC_URI[rayon-core-1.6.0.sha256sum] = "98dcf634205083b17d0861252431eb2acbfb698ab7478a2d20de07954f47ec7b"
+SRC_URI[regex-automata-0.1.8.sha256sum] = "92b73c2a1770c255c240eaa4ee600df1704a38dc3feaa6e949e7fcd4f8dc09f9"
+SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+SRC_URI[ryu-1.0.2.sha256sum] = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
+SRC_URI[same-file-1.0.5.sha256sum] = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
+SRC_URI[scopeguard-1.0.0.sha256sum] = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
+SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+SRC_URI[serde-1.0.101.sha256sum] = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd"
+SRC_URI[serde_derive-1.0.101.sha256sum] = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e"
+SRC_URI[serde_json-1.0.41.sha256sum] = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2"
+SRC_URI[siphasher-0.3.1.sha256sum] = "83da420ee8d1a89e640d0948c646c1c088758d3a3c538f943bfa97bdac17929d"
+SRC_URI[syn-1.0.5.sha256sum] = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[tinytemplate-1.0.2.sha256sum] = "4574b75faccaacddb9b284faecdf0b544b80b6b294f3d062d325c5726a209c20"
+SRC_URI[unicode-width-0.1.6.sha256sum] = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
+SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+SRC_URI[walkdir-2.2.9.sha256sum] = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e"
+SRC_URI[wasi-0.7.0.sha256sum] = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+SRC_URI[winapi-0.3.8.sha256sum] = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.2.sha256sum] = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[base-x-0.2.5.sha256sum] = "76f4eae81729e69bb1819a26c6caac956cc429238388091f98cb6cd858f16443"
+SRC_URI[bumpalo-2.6.0.sha256sum] = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708"
+SRC_URI[c2-chacha-0.2.2.sha256sum] = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
+SRC_URI[cfg-if-0.1.9.sha256sum] = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
+SRC_URI[discard-1.0.4.sha256sum] = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
+SRC_URI[getrandom-0.1.12.sha256sum] = "473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571"
+SRC_URI[itoa-0.4.4.sha256sum] = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.62.sha256sum] = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
+SRC_URI[log-0.4.8.sha256sum] = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+SRC_URI[packed_simd-0.3.3.sha256sum] = "a85ea9fc0d4ac0deb6fe7911d38786b32fc11119afd9e9d38b84ff691ce64220"
+SRC_URI[ppv-lite86-0.2.5.sha256sum] = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
+SRC_URI[proc-macro2-0.4.30.sha256sum] = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+SRC_URI[proc-macro2-1.0.3.sha256sum] = "e98a83a9f9b331f54b924e68a66acb1bb35cb01fb0a23645139967abefb697e8"
+SRC_URI[quote-0.6.13.sha256sum] = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+SRC_URI[quote-1.0.2.sha256sum] = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+SRC_URI[rand_chacha-0.2.1.sha256sum] = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+SRC_URI[rand_pcg-0.2.1.sha256sum] = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+SRC_URI[ryu-1.0.0.sha256sum] = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
+SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+SRC_URI[serde-1.0.100.sha256sum] = "f4473e8506b213730ff2061073b48fa51dcc66349219e2e7c5608f0296a1d95a"
+SRC_URI[serde_derive-1.0.100.sha256sum] = "11e410fde43e157d789fc290d26bc940778ad0fdd47836426fbac36573710dbb"
+SRC_URI[serde_json-1.0.40.sha256sum] = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
+SRC_URI[sha1-0.6.0.sha256sum] = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+SRC_URI[stdweb-0.4.18.sha256sum] = "a68c0ce28cf7400ed022e18da3c4591e14e1df02c70e93573cc59921b3923aeb"
+SRC_URI[stdweb-derive-0.5.1.sha256sum] = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930"
+SRC_URI[stdweb-internal-macros-0.2.7.sha256sum] = "e68f7d08b76979a43e93fe043b66d2626e35d41d68b0b85519202c6dd8ac59fa"
+SRC_URI[stdweb-internal-runtime-0.1.4.sha256sum] = "d52317523542cc0af5b7e31017ad0f7d1e78da50455e38d5657cd17754f617da"
+SRC_URI[syn-0.15.44.sha256sum] = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+SRC_URI[syn-1.0.5.sha256sum] = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
+SRC_URI[unicode-xid-0.1.0.sha256sum] = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+SRC_URI[unicode-xid-0.2.0.sha256sum] = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+SRC_URI[wasi-0.7.0.sha256sum] = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+SRC_URI[wasm-bindgen-0.2.50.sha256sum] = "dcddca308b16cd93c2b67b126c688e5467e4ef2e28200dc7dfe4ae284f2faefc"
+SRC_URI[wasm-bindgen-backend-0.2.50.sha256sum] = "f805d9328b5fc7e5c6399960fd1889271b9b58ae17bdb2417472156cc9fafdd0"
+SRC_URI[wasm-bindgen-macro-0.2.50.sha256sum] = "3ff88201a482abfc63921621f6cb18eb1efd74f136b05e5841e7f8ca434539e9"
+SRC_URI[wasm-bindgen-macro-support-0.2.50.sha256sum] = "6a433d89ecdb9f77d46fcf00c8cf9f3467b7de9954d8710c175f61e2e245bb0e"
+SRC_URI[wasm-bindgen-shared-0.2.50.sha256sum] = "d41fc1bc3570cdf8d108c15e014045fd45a95bb5eb36605f96a90461fc34027d"
+SRC_URI[autocfg-1.0.1.sha256sum] = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+SRC_URI[brotli-3.0.3.sha256sum] = "7f29919120f08613aadcd4383764e00526fc9f18b6c0895814faeed0dd78613e"
+SRC_URI[crc-1.8.1.sha256sum] = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
+SRC_URI[der-parser-0.5.0.sha256sum] = "0a235b98e742e0687137c26dc4e63fe2a3953a8362dc38527e89e54d1513d548"
+SRC_URI[der-parser-4.1.0.sha256sum] = "caca07c50eaae94d43e21f4d14eca5543b6f5f5ce64715e9b7665ac5f5185b4e"
+SRC_URI[flate2-1.0.20.sha256sum] = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
+SRC_URI[ipsec-parser-0.5.0.sha256sum] = "4fa09785b1d327afc9178772b0c8f43b428cbf30d532366fd8e150b98e4fe90a"
+SRC_URI[kerberos-parser-0.5.0.sha256sum] = "58904d6ec6bf7a602f335a9825e96abac9963e27316a6e4681fd10ce15bfcd40"
+SRC_URI[md5-0.7.0.sha256sum] = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+SRC_URI[memchr-2.3.4.sha256sum] = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+SRC_URI[nom-5.1.1.sha256sum] = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
+SRC_URI[ntp-parser-0.5.0.sha256sum] = "b4dcbdbccb49a50f69ea3c98155e6e7678b600a3c097f6aac1e7b32d0ba8ffd6"
+SRC_URI[num-0.2.1.sha256sum] = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
+SRC_URI[num-derive-0.2.5.sha256sum] = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2"
+SRC_URI[snmp-parser-0.6.0.sha256sum] = "ce1062255da4ec2ea2f0d985aecf85864a989d6de97883ec4ccca915d8c86a05"
+SRC_URI[tls-parser-0.9.4.sha256sum] = "579c8a8cdde06a13c7209eb7d5c752d1913489ecdb162264503a39ad9053587f"
+SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+SRC_URI[widestring-0.4.3.sha256sum] = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+SRC_URI[x509-parser-0.6.5.sha256sum] = "99bbe736dd2b422d66e4830f4a06f34387c9814c027efcbda5c2f86463e8e5b0"
+SRC_URI[test-case-1.0.1.sha256sum] = "e8b114c45b5a342ec701e8775ec130bfee537c9d0fedc747594f51d85e7b6988"
+SRC_URI[build_const-0.2.1.sha256sum] = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
+SRC_URI[der-oid-macro-0.2.0.sha256sum] = "e66558629d772c3be040566b7be07be8c8f5aecee95e4a092dfe2efc313277ad"
+SRC_URI[proc-macro-hack-0.5.19.sha256sum] = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+SRC_URI[rusticata-macros-2.1.0.sha256sum] = "f8a9050636e8a1b487ba1fbe99114021cd7594dde3ce6ed95bfc1691e5b5367b"
+SRC_URI[miniz_oxide-0.4.4.sha256sum] = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+SRC_URI[num-bigint-0.2.6.sha256sum] = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
+SRC_URI[num-complex-0.2.4.sha256sum] = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
+SRC_URI[num-integer-0.1.44.sha256sum] = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+SRC_URI[num-iter-0.1.42.sha256sum] = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+SRC_URI[num-rational-0.2.4.sha256sum] = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+SRC_URI[num-traits-0.2.14.sha256sum] = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+SRC_URI[enum_primitive-0.1.1.sha256sum] = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+SRC_URI[phf-0.8.0.sha256sum] = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+SRC_URI[phf_codegen-0.8.0.sha256sum] = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+SRC_URI[phf_generator-0.8.0.sha256sum] = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+SRC_URI[base64-0.11.0.sha256sum] = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+SRC_URI[der-parser-3.0.4.sha256sum] = "f51f64dcdf1cdc550d21d73dc959726c7dbeeab4a01481d08084a7736956464e"
+SRC_URI[time-0.1.44.sha256sum] = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+SRC_URI[num-traits-0.1.43.sha256sum] = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+SRC_URI[wasi-0.10.0+wasi-snapshot-preview1.sha256sum] = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+SRC_URI[lexical-core-0.6.8.sha256sum] = "233853dfa6b87c7c00eb46a205802069263ab27e16b6bdd1b08ddf91a855e30c"
+SRC_URI[num-bigint-0.3.1.sha256sum] = "5e9a41747ae4633fce5adffb4d2e81ffc5e89593cb19917f8fb2cc5ff76507bf"
+
diff --git a/meta-security/recipes-ids/suricata/suricata_6.0.10.bb b/meta-security/recipes-ids/suricata/suricata_6.0.10.bb
index 0422ead..9d53356 100644
--- a/meta-security/recipes-ids/suricata/suricata_6.0.10.bb
+++ b/meta-security/recipes-ids/suricata/suricata_6.0.10.bb
@@ -18,97 +18,9 @@
     file://fixup.patch \
     "
 
-SRC_URI += " \
-    crate://crates.io/autocfg/1.0.1 \
-    crate://crates.io/semver-parser/0.7.0 \
-    crate://crates.io/arrayvec/0.4.12 \
-    crate://crates.io/ryu/1.0.5 \
-    crate://crates.io/libc/0.2.86 \
-    crate://crates.io/bitflags/1.2.1 \
-    crate://crates.io/version_check/0.9.2 \
-    crate://crates.io/memchr/2.3.4 \
-    crate://crates.io/nodrop/0.1.14 \
-    crate://crates.io/cfg-if/0.1.9 \
-    crate://crates.io/static_assertions/0.3.4 \
-    crate://crates.io/getrandom/0.1.16 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/siphasher/0.3.3 \
-    crate://crates.io/ppv-lite86/0.2.10 \
-    crate://crates.io/proc-macro-hack/0.5.19 \
-    crate://crates.io/proc-macro2/0.4.30 \
-    crate://crates.io/unicode-xid/0.1.0 \
-    crate://crates.io/syn/0.15.44 \
-    crate://crates.io/build_const/0.2.1 \
-    crate://crates.io/num-derive/0.2.5 \
-    crate://crates.io/base64/0.11.0 \
-    crate://crates.io/widestring/0.4.3 \
-    crate://crates.io/md5/0.7.0 \
-    crate://crates.io/uuid/0.8.2 \
-    crate://crates.io/byteorder/1.4.2 \
-    crate://crates.io/semver/0.9.0 \
-    crate://crates.io/nom/5.1.1 \
-    crate://crates.io/num-traits/0.2.14 \
-    crate://crates.io/num-integer/0.1.44 \
-    crate://crates.io/num-bigint/0.2.6 \
-    crate://crates.io/num-bigint/0.3.1 \
-    crate://crates.io/num-rational/0.2.4 \
-    crate://crates.io/num-complex/0.2.4 \
-    crate://crates.io/num-iter/0.1.42 \
-    crate://crates.io/phf_shared/0.8.0 \
-    crate://crates.io/crc/1.8.1 \
-    crate://crates.io/rustc_version/0.2.3 \
-    crate://crates.io/phf/0.8.0 \
-    crate://crates.io/lexical-core/0.6.8 \
-    crate://crates.io/time/0.1.44 \
-    crate://crates.io/quote/0.6.13 \
-    crate://crates.io/rand_core/0.5.1 \
-    crate://crates.io/rand_chacha/0.2.2 \
-    crate://crates.io/rand_pcg/0.2.1 \
-    crate://crates.io/num-traits/0.1.43 \
-    crate://crates.io/rand/0.7.3 \
-    crate://crates.io/enum_primitive/0.1.1 \
-    crate://crates.io/phf_generator/0.8.0 \
-    crate://crates.io/phf_codegen/0.8.0 \
-    crate://crates.io/tls-parser/0.9.4 \
-    crate://crates.io/num/0.2.1 \
-    crate://crates.io/rusticata-macros/2.1.0 \
-    crate://crates.io/ntp-parser/0.4.0 \
-    crate://crates.io/der-oid-macro/0.2.0 \
-    crate://crates.io/der-parser/3.0.4 \
-    crate://crates.io/ipsec-parser/0.5.0 \
-    crate://crates.io/x509-parser/0.6.5 \
-    crate://crates.io/der-parser/4.1.0 \
-    crate://crates.io/snmp-parser/0.6.0 \
-    crate://crates.io/kerberos-parser/0.5.0 \
-    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
-    crate://crates.io/winapi/0.3.9 \
-    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/log/0.4.0 \
-    crate://crates.io/rand_hc/0.2.0 \
-    crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
-    crate://crates.io/sawp/0.5.0 \
-    crate://crates.io/sawp-modbus/0.5.0 \
-    crate://crates.io/brotli/3.3.0 \
-    crate://crates.io/flate2/1.0.20 \
-    crate://crates.io/alloc-no-stdlib/2.0.1 \
-    crate://crates.io/alloc-stdlib/0.2.1 \
-    crate://crates.io/brotli-decompressor/2.3.1 \
-    crate://crates.io/crc32fast/1.2.1 \
-    crate://crates.io/miniz_oxide/0.4.4 \
-    crate://crates.io/adler/1.0.2 \
-    "
+inherit autotools pkgconfig python3native systemd ptest cargo cargo-update-recipe-crates
 
-# test case support
-SRC_URI += " \
-    crate://crates.io/test-case/1.0.1 \
-    crate://crates.io/proc-macro2/1.0.1 \
-    crate://crates.io/quote/1.0.1 \
-    crate://crates.io/syn/1.0.1 \
-    crate://crates.io/unicode-xid/0.2.0 \
-    "
-
-inherit autotools pkgconfig python3native systemd ptest cargo
+require  ${BPN}-crates.inc
 
 EXTRA_OECONF += " --disable-debug \
     --disable-gccmarch-native \
@@ -118,6 +30,7 @@
     "
 
 CARGO_SRC_DIR = "rust"
+#CARGO_LOCK_SRC_DIR = "${S}/rust"
 
 B = "${S}"
 
diff --git a/meta-security/recipes-perl/perl/libwhisker2-perl_2.5.bb b/meta-security/recipes-perl/perl/libwhisker2-perl_2.5.bb
index 42c0b42..c58d883 100644
--- a/meta-security/recipes-perl/perl/libwhisker2-perl_2.5.bb
+++ b/meta-security/recipes-perl/perl/libwhisker2-perl_2.5.bb
@@ -19,9 +19,10 @@
 PACKAGEGROUP[ssl] = ", , libnet-ssleay-perl, libnet-ssleay-perl"
 
 do_install() {
-    install -d 755 ${D}${PERLLIBDIRS}/vendor_perl/${PERLVERSION}
-    install -d 755 ${D}${datadir}/perl/${PERLVERSION}
-    oe_runmake install DESTDIR=${D} INSTALLDIR=${PERLLIBDIRS}/vendor_perl/${PERLVERSION} MANDIR=${datadir}/perl/${PERLVERSION}
+    perl_version="${@get_perl_version(d)}"
+    install -d 755 ${D}${PERLLIBDIRS}/vendor_perl/${perl_version}
+    install -d 755 ${D}${datadir}/perl/${perl_version}
+    oe_runmake install DESTDIR=${D} INSTALLDIR=${PERLLIBDIRS}/vendor_perl/${perl_version} MANDIR=${datadir}/perl/${perl_version}
 }
 
 FILES:${PN} += "${datadir}/perl"
diff --git a/meta-security/recipes-security/krill/krill-crates.inc b/meta-security/recipes-security/krill/krill-crates.inc
new file mode 100644
index 0000000..85830ec
--- /dev/null
+++ b/meta-security/recipes-security/krill/krill-crates.inc
@@ -0,0 +1,550 @@
+# Autogenerated with 'bitbake -c update_crates krill'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/addr2line/0.17.0;name=addr2line-0.17.0 \
+    crate://crates.io/adler/1.0.2;name=adler-1.0.2 \
+    crate://crates.io/adler32/1.2.0;name=adler32-1.2.0 \
+    crate://crates.io/aho-corasick/0.7.18;name=aho-corasick-0.7.18 \
+    crate://crates.io/android_system_properties/0.1.5;name=android_system_properties-0.1.5 \
+    crate://crates.io/ansi_term/0.12.1;name=ansi_term-0.12.1 \
+    crate://crates.io/ascii/1.0.0;name=ascii-1.0.0 \
+    crate://crates.io/ascii-canvas/3.0.0;name=ascii-canvas-3.0.0 \
+    crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
+    crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
+    crate://crates.io/backoff/0.3.0;name=backoff-0.3.0 \
+    crate://crates.io/backtrace/0.3.66;name=backtrace-0.3.66 \
+    crate://crates.io/base64/0.13.0;name=base64-0.13.0 \
+    crate://crates.io/basic-cookies/0.1.4;name=basic-cookies-0.1.4 \
+    crate://crates.io/bcder/0.7.0;name=bcder-0.7.0 \
+    crate://crates.io/bit-set/0.5.2;name=bit-set-0.5.2 \
+    crate://crates.io/bit-vec/0.6.3;name=bit-vec-0.6.3 \
+    crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
+    crate://crates.io/block-buffer/0.9.0;name=block-buffer-0.9.0 \
+    crate://crates.io/block-buffer/0.10.2;name=block-buffer-0.10.2 \
+    crate://crates.io/bumpalo/3.10.0;name=bumpalo-3.10.0 \
+    crate://crates.io/bytes/1.1.0;name=bytes-1.1.0 \
+    crate://crates.io/cc/1.0.73;name=cc-1.0.73 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/chrono/0.4.22;name=chrono-0.4.22 \
+    crate://crates.io/chunked_transfer/1.4.0;name=chunked_transfer-1.4.0 \
+    crate://crates.io/cipher/0.2.5;name=cipher-0.2.5 \
+    crate://crates.io/clap/2.34.0;name=clap-2.34.0 \
+    crate://crates.io/codespan-reporting/0.11.1;name=codespan-reporting-0.11.1 \
+    crate://crates.io/core-foundation/0.9.3;name=core-foundation-0.9.3 \
+    crate://crates.io/core-foundation-sys/0.8.3;name=core-foundation-sys-0.8.3 \
+    crate://crates.io/cpufeatures/0.2.2;name=cpufeatures-0.2.2 \
+    crate://crates.io/crc32fast/1.3.2;name=crc32fast-1.3.2 \
+    crate://crates.io/crunchy/0.2.2;name=crunchy-0.2.2 \
+    crate://crates.io/crypto-common/0.1.6;name=crypto-common-0.1.6 \
+    crate://crates.io/crypto-mac/0.10.1;name=crypto-mac-0.10.1 \
+    crate://crates.io/cryptoki/0.3.0;name=cryptoki-0.3.0 \
+    crate://crates.io/cryptoki-sys/0.1.4;name=cryptoki-sys-0.1.4 \
+    crate://crates.io/ctrlc/3.2.2;name=ctrlc-3.2.2 \
+    crate://crates.io/cxx/1.0.79;name=cxx-1.0.79 \
+    crate://crates.io/cxx-build/1.0.79;name=cxx-build-1.0.79 \
+    crate://crates.io/cxxbridge-flags/1.0.79;name=cxxbridge-flags-1.0.79 \
+    crate://crates.io/cxxbridge-macro/1.0.79;name=cxxbridge-macro-1.0.79 \
+    crate://crates.io/derivative/2.2.0;name=derivative-2.2.0 \
+    crate://crates.io/deunicode/0.4.3;name=deunicode-0.4.3 \
+    crate://crates.io/diff/0.1.13;name=diff-0.1.13 \
+    crate://crates.io/digest/0.9.0;name=digest-0.9.0 \
+    crate://crates.io/digest/0.10.3;name=digest-0.10.3 \
+    crate://crates.io/dirs-next/2.0.0;name=dirs-next-2.0.0 \
+    crate://crates.io/dirs-sys-next/0.1.2;name=dirs-sys-next-0.1.2 \
+    crate://crates.io/either/1.7.0;name=either-1.7.0 \
+    crate://crates.io/ena/0.14.0;name=ena-0.14.0 \
+    crate://crates.io/encoding_rs/0.8.31;name=encoding_rs-0.8.31 \
+    crate://crates.io/enum-display-derive/0.1.1;name=enum-display-derive-0.1.1 \
+    crate://crates.io/enum-flags/0.1.8;name=enum-flags-0.1.8 \
+    crate://crates.io/error-chain/0.11.0;name=error-chain-0.11.0 \
+    crate://crates.io/fastrand/1.7.0;name=fastrand-1.7.0 \
+    crate://crates.io/fern/0.5.9;name=fern-0.5.9 \
+    crate://crates.io/fixedbitset/0.4.2;name=fixedbitset-0.4.2 \
+    crate://crates.io/fnv/1.0.7;name=fnv-1.0.7 \
+    crate://crates.io/foreign-types/0.3.2;name=foreign-types-0.3.2 \
+    crate://crates.io/foreign-types-shared/0.1.1;name=foreign-types-shared-0.1.1 \
+    crate://crates.io/form_urlencoded/1.0.1;name=form_urlencoded-1.0.1 \
+    crate://crates.io/fslock/0.2.1;name=fslock-0.2.1 \
+    crate://crates.io/futures/0.3.21;name=futures-0.3.21 \
+    crate://crates.io/futures-channel/0.3.21;name=futures-channel-0.3.21 \
+    crate://crates.io/futures-core/0.3.21;name=futures-core-0.3.21 \
+    crate://crates.io/futures-executor/0.3.21;name=futures-executor-0.3.21 \
+    crate://crates.io/futures-io/0.3.21;name=futures-io-0.3.21 \
+    crate://crates.io/futures-macro/0.3.21;name=futures-macro-0.3.21 \
+    crate://crates.io/futures-sink/0.3.21;name=futures-sink-0.3.21 \
+    crate://crates.io/futures-task/0.3.21;name=futures-task-0.3.21 \
+    crate://crates.io/futures-util/0.3.21;name=futures-util-0.3.21 \
+    crate://crates.io/generic-array/0.14.5;name=generic-array-0.14.5 \
+    crate://crates.io/getrandom/0.2.7;name=getrandom-0.2.7 \
+    crate://crates.io/gimli/0.26.2;name=gimli-0.26.2 \
+    crate://crates.io/h2/0.3.13;name=h2-0.3.13 \
+    crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \
+    crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
+    crate://crates.io/hex/0.4.3;name=hex-0.4.3 \
+    crate://crates.io/hmac/0.10.1;name=hmac-0.10.1 \
+    crate://crates.io/http/0.2.8;name=http-0.2.8 \
+    crate://crates.io/http-body/0.4.5;name=http-body-0.4.5 \
+    crate://crates.io/httparse/1.7.1;name=httparse-1.7.1 \
+    crate://crates.io/httpdate/1.0.2;name=httpdate-1.0.2 \
+    crate://crates.io/hyper/0.14.20;name=hyper-0.14.20 \
+    crate://crates.io/hyper-tls/0.5.0;name=hyper-tls-0.5.0 \
+    crate://crates.io/iana-time-zone/0.1.51;name=iana-time-zone-0.1.51 \
+    crate://crates.io/iana-time-zone-haiku/0.1.1;name=iana-time-zone-haiku-0.1.1 \
+    crate://crates.io/idna/0.2.3;name=idna-0.2.3 \
+    crate://crates.io/impl-trait-for-tuples/0.2.2;name=impl-trait-for-tuples-0.2.2 \
+    crate://crates.io/indexmap/1.9.1;name=indexmap-1.9.1 \
+    crate://crates.io/instant/0.1.12;name=instant-0.1.12 \
+    crate://crates.io/intervaltree/0.2.7;name=intervaltree-0.2.7 \
+    crate://crates.io/ipnet/2.5.0;name=ipnet-2.5.0 \
+    crate://crates.io/itertools/0.10.3;name=itertools-0.10.3 \
+    crate://crates.io/itoa/1.0.2;name=itoa-1.0.2 \
+    crate://crates.io/jmespatch/0.3.0;name=jmespatch-0.3.0 \
+    crate://crates.io/js-sys/0.3.58;name=js-sys-0.3.58 \
+    crate://crates.io/kmip-protocol/0.4.2;name=kmip-protocol-0.4.2 \
+    crate://crates.io/kmip-ttlv/0.3.3;name=kmip-ttlv-0.3.3 \
+    crate://crates.io/lalrpop/0.19.8;name=lalrpop-0.19.8 \
+    crate://crates.io/lalrpop-util/0.19.8;name=lalrpop-util-0.19.8 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/libc/0.2.126;name=libc-0.2.126 \
+    crate://crates.io/libflate/1.2.0;name=libflate-1.2.0 \
+    crate://crates.io/libflate_lz77/1.1.0;name=libflate_lz77-1.1.0 \
+    crate://crates.io/libloading/0.7.3;name=libloading-0.7.3 \
+    crate://crates.io/link-cplusplus/1.0.7;name=link-cplusplus-1.0.7 \
+    crate://crates.io/lock_api/0.4.7;name=lock_api-0.4.7 \
+    crate://crates.io/log/0.4.17;name=log-0.4.17 \
+    crate://crates.io/maplit/1.0.2;name=maplit-1.0.2 \
+    crate://crates.io/matchers/0.0.1;name=matchers-0.0.1 \
+    crate://crates.io/matches/0.1.9;name=matches-0.1.9 \
+    crate://crates.io/maybe-async/0.2.6;name=maybe-async-0.2.6 \
+    crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
+    crate://crates.io/mime/0.3.16;name=mime-0.3.16 \
+    crate://crates.io/miniz_oxide/0.5.3;name=miniz_oxide-0.5.3 \
+    crate://crates.io/mio/0.8.4;name=mio-0.8.4 \
+    crate://crates.io/native-tls/0.2.10;name=native-tls-0.2.10 \
+    crate://crates.io/new_debug_unreachable/1.0.4;name=new_debug_unreachable-1.0.4 \
+    crate://crates.io/nix/0.24.2;name=nix-0.24.2 \
+    crate://crates.io/num-bigint/0.4.3;name=num-bigint-0.4.3 \
+    crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
+    crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
+    crate://crates.io/num_cpus/1.13.1;name=num_cpus-1.13.1 \
+    crate://crates.io/oauth2/4.2.3;name=oauth2-4.2.3 \
+    crate://crates.io/object/0.29.0;name=object-0.29.0 \
+    crate://crates.io/once_cell/1.13.0;name=once_cell-1.13.0 \
+    crate://crates.io/opaque-debug/0.3.0;name=opaque-debug-0.3.0 \
+    crate://crates.io/openidconnect/2.3.2;name=openidconnect-2.3.2 \
+    crate://crates.io/openssl/0.10.41;name=openssl-0.10.41 \
+    crate://crates.io/openssl-macros/0.1.0;name=openssl-macros-0.1.0 \
+    crate://crates.io/openssl-probe/0.1.5;name=openssl-probe-0.1.5 \
+    crate://crates.io/openssl-src/111.25.0+1.1.1t;name=openssl-src-111.25.0+1.1.1t \
+    crate://crates.io/openssl-sys/0.9.75;name=openssl-sys-0.9.75 \
+    crate://crates.io/ordered-float/2.10.0;name=ordered-float-2.10.0 \
+    crate://crates.io/oso/0.12.4;name=oso-0.12.4 \
+    crate://crates.io/parking_lot/0.12.1;name=parking_lot-0.12.1 \
+    crate://crates.io/parking_lot_core/0.9.3;name=parking_lot_core-0.9.3 \
+    crate://crates.io/pbkdf2/0.7.5;name=pbkdf2-0.7.5 \
+    crate://crates.io/percent-encoding/2.1.0;name=percent-encoding-2.1.0 \
+    crate://crates.io/petgraph/0.6.2;name=petgraph-0.6.2 \
+    crate://crates.io/phf_shared/0.10.0;name=phf_shared-0.10.0 \
+    crate://crates.io/pico-args/0.4.2;name=pico-args-0.4.2 \
+    crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
+    crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
+    crate://crates.io/pkg-config/0.3.25;name=pkg-config-0.3.25 \
+    crate://crates.io/polar-core/0.12.4;name=polar-core-0.12.4 \
+    crate://crates.io/ppv-lite86/0.2.16;name=ppv-lite86-0.2.16 \
+    crate://crates.io/precomputed-hash/0.1.1;name=precomputed-hash-0.1.1 \
+    crate://crates.io/priority-queue/1.2.2;name=priority-queue-1.2.2 \
+    crate://crates.io/proc-macro2/1.0.40;name=proc-macro2-1.0.40 \
+    crate://crates.io/quick-xml/0.23.0;name=quick-xml-0.23.0 \
+    crate://crates.io/quote/1.0.20;name=quote-1.0.20 \
+    crate://crates.io/r2d2/0.8.10;name=r2d2-0.8.10 \
+    crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
+    crate://crates.io/rand_core/0.6.3;name=rand_core-0.6.3 \
+    crate://crates.io/redox_syscall/0.2.13;name=redox_syscall-0.2.13 \
+    crate://crates.io/redox_users/0.4.3;name=redox_users-0.4.3 \
+    crate://crates.io/regex/1.6.0;name=regex-1.6.0 \
+    crate://crates.io/regex-automata/0.1.10;name=regex-automata-0.1.10 \
+    crate://crates.io/regex-syntax/0.6.27;name=regex-syntax-0.6.27 \
+    crate://crates.io/remove_dir_all/0.5.3;name=remove_dir_all-0.5.3 \
+    crate://crates.io/reqwest/0.11.11;name=reqwest-0.11.11 \
+    crate://crates.io/ring/0.16.20;name=ring-0.16.20 \
+    crate://crates.io/rle-decode-fast/1.0.3;name=rle-decode-fast-1.0.3 \
+    crate://crates.io/routecore/0.2.0;name=routecore-0.2.0 \
+    crate://crates.io/rpassword/5.0.1;name=rpassword-5.0.1 \
+    crate://crates.io/rpki/0.15.8;name=rpki-0.15.8 \
+    crate://crates.io/rustc-demangle/0.1.21;name=rustc-demangle-0.1.21 \
+    crate://crates.io/rustc_version/0.4.0;name=rustc_version-0.4.0 \
+    crate://crates.io/rustls/0.19.1;name=rustls-0.19.1 \
+    crate://crates.io/rustversion/1.0.8;name=rustversion-1.0.8 \
+    crate://crates.io/ryu/1.0.10;name=ryu-1.0.10 \
+    crate://crates.io/salsa20/0.7.2;name=salsa20-0.7.2 \
+    crate://crates.io/schannel/0.1.20;name=schannel-0.1.20 \
+    crate://crates.io/scheduled-thread-pool/0.2.6;name=scheduled-thread-pool-0.2.6 \
+    crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
+    crate://crates.io/scratch/1.0.2;name=scratch-1.0.2 \
+    crate://crates.io/scrypt/0.6.5;name=scrypt-0.6.5 \
+    crate://crates.io/sct/0.6.1;name=sct-0.6.1 \
+    crate://crates.io/security-framework/2.6.1;name=security-framework-2.6.1 \
+    crate://crates.io/security-framework-sys/2.6.1;name=security-framework-sys-2.6.1 \
+    crate://crates.io/semver/1.0.12;name=semver-1.0.12 \
+    crate://crates.io/serde/1.0.139;name=serde-1.0.139 \
+    crate://crates.io/serde-value/0.7.0;name=serde-value-0.7.0 \
+    crate://crates.io/serde_bytes/0.11.6;name=serde_bytes-0.11.6 \
+    crate://crates.io/serde_derive/1.0.139;name=serde_derive-1.0.139 \
+    crate://crates.io/serde_json/1.0.82;name=serde_json-1.0.82 \
+    crate://crates.io/serde_path_to_error/0.1.7;name=serde_path_to_error-0.1.7 \
+    crate://crates.io/serde_urlencoded/0.7.1;name=serde_urlencoded-0.7.1 \
+    crate://crates.io/sha2/0.9.9;name=sha2-0.9.9 \
+    crate://crates.io/sha2/0.10.2;name=sha2-0.10.2 \
+    crate://crates.io/sharded-slab/0.1.4;name=sharded-slab-0.1.4 \
+    crate://crates.io/signal-hook-registry/1.4.0;name=signal-hook-registry-1.4.0 \
+    crate://crates.io/siphasher/0.3.10;name=siphasher-0.3.10 \
+    crate://crates.io/slab/0.4.6;name=slab-0.4.6 \
+    crate://crates.io/slug/0.1.4;name=slug-0.1.4 \
+    crate://crates.io/smallvec/1.9.0;name=smallvec-1.9.0 \
+    crate://crates.io/socket2/0.4.4;name=socket2-0.4.4 \
+    crate://crates.io/spin/0.5.2;name=spin-0.5.2 \
+    crate://crates.io/string_cache/0.8.4;name=string_cache-0.8.4 \
+    crate://crates.io/strsim/0.8.0;name=strsim-0.8.0 \
+    crate://crates.io/subtle/2.4.1;name=subtle-2.4.1 \
+    crate://crates.io/syn/1.0.98;name=syn-1.0.98 \
+    crate://crates.io/syslog/4.0.1;name=syslog-4.0.1 \
+    crate://crates.io/target-lexicon/0.12.4;name=target-lexicon-0.12.4 \
+    crate://crates.io/tempfile/3.3.0;name=tempfile-3.3.0 \
+    crate://crates.io/term/0.7.0;name=term-0.7.0 \
+    crate://crates.io/termcolor/1.1.3;name=termcolor-1.1.3 \
+    crate://crates.io/textwrap/0.11.0;name=textwrap-0.11.0 \
+    crate://crates.io/thiserror/1.0.31;name=thiserror-1.0.31 \
+    crate://crates.io/thiserror-impl/1.0.31;name=thiserror-impl-1.0.31 \
+    crate://crates.io/thread_local/1.1.4;name=thread_local-1.1.4 \
+    crate://crates.io/time/0.1.44;name=time-0.1.44 \
+    crate://crates.io/tiny-keccak/2.0.2;name=tiny-keccak-2.0.2 \
+    crate://crates.io/tiny_http/0.8.2;name=tiny_http-0.8.2 \
+    crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
+    crate://crates.io/tinyvec_macros/0.1.0;name=tinyvec_macros-0.1.0 \
+    crate://crates.io/tokio/1.20.4;name=tokio-1.20.4 \
+    crate://crates.io/tokio-macros/1.8.0;name=tokio-macros-1.8.0 \
+    crate://crates.io/tokio-native-tls/0.3.0;name=tokio-native-tls-0.3.0 \
+    crate://crates.io/tokio-rustls/0.22.0;name=tokio-rustls-0.22.0 \
+    crate://crates.io/tokio-util/0.7.3;name=tokio-util-0.7.3 \
+    crate://crates.io/toml/0.5.9;name=toml-0.5.9 \
+    crate://crates.io/tower-service/0.3.2;name=tower-service-0.3.2 \
+    crate://crates.io/tracing/0.1.35;name=tracing-0.1.35 \
+    crate://crates.io/tracing-attributes/0.1.22;name=tracing-attributes-0.1.22 \
+    crate://crates.io/tracing-core/0.1.28;name=tracing-core-0.1.28 \
+    crate://crates.io/tracing-log/0.1.3;name=tracing-log-0.1.3 \
+    crate://crates.io/tracing-serde/0.1.3;name=tracing-serde-0.1.3 \
+    crate://crates.io/tracing-subscriber/0.2.25;name=tracing-subscriber-0.2.25 \
+    crate://crates.io/trait-set/0.2.0;name=trait-set-0.2.0 \
+    crate://crates.io/try-lock/0.2.3;name=try-lock-0.2.3 \
+    crate://crates.io/typenum/1.15.0;name=typenum-1.15.0 \
+    crate://crates.io/unicode-bidi/0.3.8;name=unicode-bidi-0.3.8 \
+    crate://crates.io/unicode-ident/1.0.2;name=unicode-ident-1.0.2 \
+    crate://crates.io/unicode-normalization/0.1.21;name=unicode-normalization-0.1.21 \
+    crate://crates.io/unicode-width/0.1.9;name=unicode-width-0.1.9 \
+    crate://crates.io/unicode-xid/0.2.3;name=unicode-xid-0.2.3 \
+    crate://crates.io/untrusted/0.7.1;name=untrusted-0.7.1 \
+    crate://crates.io/url/2.2.2;name=url-2.2.2 \
+    crate://crates.io/urlparse/0.7.3;name=urlparse-0.7.3 \
+    crate://crates.io/uuid/1.1.2;name=uuid-1.1.2 \
+    crate://crates.io/valuable/0.1.0;name=valuable-0.1.0 \
+    crate://crates.io/vcpkg/0.2.15;name=vcpkg-0.2.15 \
+    crate://crates.io/vec_map/0.8.2;name=vec_map-0.8.2 \
+    crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
+    crate://crates.io/want/0.3.0;name=want-0.3.0 \
+    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1;name=wasi-0.10.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen/0.2.81;name=wasm-bindgen-0.2.81 \
+    crate://crates.io/wasm-bindgen-backend/0.2.81;name=wasm-bindgen-backend-0.2.81 \
+    crate://crates.io/wasm-bindgen-futures/0.4.31;name=wasm-bindgen-futures-0.4.31 \
+    crate://crates.io/wasm-bindgen-macro/0.2.81;name=wasm-bindgen-macro-0.2.81 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.81;name=wasm-bindgen-macro-support-0.2.81 \
+    crate://crates.io/wasm-bindgen-shared/0.2.81;name=wasm-bindgen-shared-0.2.81 \
+    crate://crates.io/web-sys/0.3.58;name=web-sys-0.3.58 \
+    crate://crates.io/webpki/0.21.4;name=webpki-0.21.4 \
+    crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+    crate://crates.io/windows-sys/0.36.1;name=windows-sys-0.36.1 \
+    crate://crates.io/windows_aarch64_msvc/0.36.1;name=windows_aarch64_msvc-0.36.1 \
+    crate://crates.io/windows_i686_gnu/0.36.1;name=windows_i686_gnu-0.36.1 \
+    crate://crates.io/windows_i686_msvc/0.36.1;name=windows_i686_msvc-0.36.1 \
+    crate://crates.io/windows_x86_64_gnu/0.36.1;name=windows_x86_64_gnu-0.36.1 \
+    crate://crates.io/windows_x86_64_msvc/0.36.1;name=windows_x86_64_msvc-0.36.1 \
+    crate://crates.io/winreg/0.10.1;name=winreg-0.10.1 \
+"
+
+SRC_URI[addr2line-0.17.0.sha256sum] = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b"
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[adler32-1.2.0.sha256sum] = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+SRC_URI[aho-corasick-0.7.18.sha256sum] = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[ansi_term-0.12.1.sha256sum] = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+SRC_URI[ascii-1.0.0.sha256sum] = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109"
+SRC_URI[ascii-canvas-3.0.0.sha256sum] = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[backoff-0.3.0.sha256sum] = "9fe17f59a06fe8b87a6fc8bf53bb70b3aba76d7685f432487a68cd5552853625"
+SRC_URI[backtrace-0.3.66.sha256sum] = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
+SRC_URI[base64-0.13.0.sha256sum] = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+SRC_URI[basic-cookies-0.1.4.sha256sum] = "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38"
+SRC_URI[bcder-0.7.0.sha256sum] = "f007d8acfb8ef7d219911c7164c025a6d3504735120fc5df59c3c479ab84ea51"
+SRC_URI[bit-set-0.5.2.sha256sum] = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[block-buffer-0.9.0.sha256sum] = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+SRC_URI[block-buffer-0.10.2.sha256sum] = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"
+SRC_URI[bumpalo-3.10.0.sha256sum] = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+SRC_URI[bytes-1.1.0.sha256sum] = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+SRC_URI[cc-1.0.73.sha256sum] = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[chrono-0.4.22.sha256sum] = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+SRC_URI[chunked_transfer-1.4.0.sha256sum] = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
+SRC_URI[cipher-0.2.5.sha256sum] = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
+SRC_URI[clap-2.34.0.sha256sum] = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+SRC_URI[codespan-reporting-0.11.1.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+SRC_URI[core-foundation-0.9.3.sha256sum] = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+SRC_URI[cpufeatures-0.2.2.sha256sum] = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[crypto-mac-0.10.1.sha256sum] = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
+SRC_URI[cryptoki-0.3.0.sha256sum] = "503aa2bd88796da9bc6baf2c47696da40f135721b3d6680c7c6cee0b7d1f7a59"
+SRC_URI[cryptoki-sys-0.1.4.sha256sum] = "1e4895bb04269df9a14f2692c6499dc2769e9a93caa33ef37c4df134f76956d2"
+SRC_URI[ctrlc-3.2.2.sha256sum] = "b37feaa84e6861e00a1f5e5aa8da3ee56d605c9992d33e082786754828e20865"
+SRC_URI[cxx-1.0.79.sha256sum] = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8"
+SRC_URI[cxx-build-1.0.79.sha256sum] = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86"
+SRC_URI[cxxbridge-flags-1.0.79.sha256sum] = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78"
+SRC_URI[cxxbridge-macro-1.0.79.sha256sum] = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f"
+SRC_URI[derivative-2.2.0.sha256sum] = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+SRC_URI[deunicode-0.4.3.sha256sum] = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690"
+SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+SRC_URI[digest-0.9.0.sha256sum] = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+SRC_URI[digest-0.10.3.sha256sum] = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
+SRC_URI[dirs-next-2.0.0.sha256sum] = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+SRC_URI[dirs-sys-next-0.1.2.sha256sum] = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+SRC_URI[either-1.7.0.sha256sum] = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+SRC_URI[ena-0.14.0.sha256sum] = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3"
+SRC_URI[encoding_rs-0.8.31.sha256sum] = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
+SRC_URI[enum-display-derive-0.1.1.sha256sum] = "f16ef37b2a9b242295d61a154ee91ae884afff6b8b933b486b12481cc58310ca"
+SRC_URI[enum-flags-0.1.8.sha256sum] = "3682d2328e61f5529088a02cd20bb0a9aeaeeeb2f26597436dd7d75d1340f8f5"
+SRC_URI[error-chain-0.11.0.sha256sum] = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
+SRC_URI[fastrand-1.7.0.sha256sum] = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+SRC_URI[fern-0.5.9.sha256sum] = "e69ab0d5aca163e388c3a49d284fed6c3d0810700e77c5ae2756a50ec1a4daaa"
+SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+SRC_URI[form_urlencoded-1.0.1.sha256sum] = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+SRC_URI[fslock-0.2.1.sha256sum] = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
+SRC_URI[futures-0.3.21.sha256sum] = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
+SRC_URI[futures-channel-0.3.21.sha256sum] = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+SRC_URI[futures-core-0.3.21.sha256sum] = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+SRC_URI[futures-executor-0.3.21.sha256sum] = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
+SRC_URI[futures-io-0.3.21.sha256sum] = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+SRC_URI[futures-macro-0.3.21.sha256sum] = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
+SRC_URI[futures-sink-0.3.21.sha256sum] = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+SRC_URI[futures-task-0.3.21.sha256sum] = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+SRC_URI[futures-util-0.3.21.sha256sum] = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+SRC_URI[generic-array-0.14.5.sha256sum] = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
+SRC_URI[getrandom-0.2.7.sha256sum] = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+SRC_URI[gimli-0.26.2.sha256sum] = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
+SRC_URI[h2-0.3.13.sha256sum] = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[hmac-0.10.1.sha256sum] = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
+SRC_URI[http-0.2.8.sha256sum] = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+SRC_URI[http-body-0.4.5.sha256sum] = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+SRC_URI[httparse-1.7.1.sha256sum] = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+SRC_URI[httpdate-1.0.2.sha256sum] = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+SRC_URI[hyper-0.14.20.sha256sum] = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac"
+SRC_URI[hyper-tls-0.5.0.sha256sum] = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+SRC_URI[iana-time-zone-0.1.51.sha256sum] = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed"
+SRC_URI[iana-time-zone-haiku-0.1.1.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+SRC_URI[idna-0.2.3.sha256sum] = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+SRC_URI[impl-trait-for-tuples-0.2.2.sha256sum] = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
+SRC_URI[indexmap-1.9.1.sha256sum] = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[intervaltree-0.2.7.sha256sum] = "270bc34e57047cab801a8c871c124d9dc7132f6473c6401f645524f4e6edd111"
+SRC_URI[ipnet-2.5.0.sha256sum] = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
+SRC_URI[itertools-0.10.3.sha256sum] = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+SRC_URI[itoa-1.0.2.sha256sum] = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+SRC_URI[jmespatch-0.3.0.sha256sum] = "7acf91a732ade34d8eda2dee9500a051833f14f0d3d10d77c149845d6ac6a5f0"
+SRC_URI[js-sys-0.3.58.sha256sum] = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27"
+SRC_URI[kmip-protocol-0.4.2.sha256sum] = "396744d490b405f4ff293057bae5625e03dcf8be70fd4ba8c6346a54e78fd837"
+SRC_URI[kmip-ttlv-0.3.3.sha256sum] = "1aa943fd7166db2cc2deaea17bd5c2862ccf68eef9ce15576bcee9e4b494685c"
+SRC_URI[lalrpop-0.19.8.sha256sum] = "b30455341b0e18f276fa64540aff54deafb54c589de6aca68659c63dd2d5d823"
+SRC_URI[lalrpop-util-0.19.8.sha256sum] = "bcf796c978e9b4d983414f4caedc9273aa33ee214c5b887bd55fde84c85d2dc4"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.126.sha256sum] = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+SRC_URI[libflate-1.2.0.sha256sum] = "05605ab2bce11bcfc0e9c635ff29ef8b2ea83f29be257ee7d730cac3ee373093"
+SRC_URI[libflate_lz77-1.1.0.sha256sum] = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a"
+SRC_URI[libloading-0.7.3.sha256sum] = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+SRC_URI[link-cplusplus-1.0.7.sha256sum] = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
+SRC_URI[lock_api-0.4.7.sha256sum] = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[maplit-1.0.2.sha256sum] = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+SRC_URI[matchers-0.0.1.sha256sum] = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1"
+SRC_URI[matches-0.1.9.sha256sum] = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+SRC_URI[maybe-async-0.2.6.sha256sum] = "6007f9dad048e0a224f27ca599d669fca8cfa0dac804725aab542b2eb032bce6"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[mime-0.3.16.sha256sum] = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+SRC_URI[miniz_oxide-0.5.3.sha256sum] = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
+SRC_URI[mio-0.8.4.sha256sum] = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+SRC_URI[native-tls-0.2.10.sha256sum] = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9"
+SRC_URI[new_debug_unreachable-1.0.4.sha256sum] = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+SRC_URI[nix-0.24.2.sha256sum] = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.13.1.sha256sum] = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+SRC_URI[oauth2-4.2.3.sha256sum] = "6d62c436394991641b970a92e23e8eeb4eb9bca74af4f5badc53bcd568daadbd"
+SRC_URI[object-0.29.0.sha256sum] = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
+SRC_URI[once_cell-1.13.0.sha256sum] = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+SRC_URI[opaque-debug-0.3.0.sha256sum] = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+SRC_URI[openidconnect-2.3.2.sha256sum] = "e26afc60b2bf11b9a039db1f3a3c0d5fe201eebdbe646a8ecb8342c8240e3271"
+SRC_URI[openssl-0.10.41.sha256sum] = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0"
+SRC_URI[openssl-macros-0.1.0.sha256sum] = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+SRC_URI[openssl-src-111.25.0+1.1.1t.sha256sum] = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6"
+SRC_URI[openssl-sys-0.9.75.sha256sum] = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f"
+SRC_URI[ordered-float-2.10.0.sha256sum] = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+SRC_URI[oso-0.12.4.sha256sum] = "aec41e2da1ce3a82eb807396f802c172f08aa03e1be31e5df49592a04e12c8c7"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.3.sha256sum] = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+SRC_URI[pbkdf2-0.7.5.sha256sum] = "bf916dd32dd26297907890d99dc2740e33f6bd9073965af4ccff2967962f5508"
+SRC_URI[percent-encoding-2.1.0.sha256sum] = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+SRC_URI[petgraph-0.6.2.sha256sum] = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
+SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+SRC_URI[pico-args-0.4.2.sha256sum] = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkg-config-0.3.25.sha256sum] = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+SRC_URI[polar-core-0.12.4.sha256sum] = "53d2b6ee5b5ff6312ca55e2ba75fbd438c72bc041c799055388d815726eca69b"
+SRC_URI[ppv-lite86-0.2.16.sha256sum] = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+SRC_URI[precomputed-hash-0.1.1.sha256sum] = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+SRC_URI[priority-queue-1.2.2.sha256sum] = "de9cde7493f5f5d2d163b174be9f9a72d756b79b0f6ed85654128d238c347c1e"
+SRC_URI[proc-macro2-1.0.40.sha256sum] = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+SRC_URI[quick-xml-0.23.0.sha256sum] = "9279fbdacaad3baf559d8cabe0acc3d06e30ea14931af31af79578ac0946decc"
+SRC_URI[quote-1.0.20.sha256sum] = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+SRC_URI[r2d2-0.8.10.sha256sum] = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.3.sha256sum] = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+SRC_URI[redox_syscall-0.2.13.sha256sum] = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+SRC_URI[redox_users-0.4.3.sha256sum] = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+SRC_URI[regex-1.6.0.sha256sum] = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+SRC_URI[regex-syntax-0.6.27.sha256sum] = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+SRC_URI[remove_dir_all-0.5.3.sha256sum] = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+SRC_URI[reqwest-0.11.11.sha256sum] = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92"
+SRC_URI[ring-0.16.20.sha256sum] = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+SRC_URI[rle-decode-fast-1.0.3.sha256sum] = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
+SRC_URI[routecore-0.2.0.sha256sum] = "9afd872857e85411c0ba7d18dfe650fc4864b292c02cde997e86c511314fdfc3"
+SRC_URI[rpassword-5.0.1.sha256sum] = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb"
+SRC_URI[rpki-0.15.8.sha256sum] = "46970b82ec6bfec47c88addaaef3d345cec2a5cf9cb89039ef904123e65ba41a"
+SRC_URI[rustc-demangle-0.1.21.sha256sum] = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[rustls-0.19.1.sha256sum] = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
+SRC_URI[rustversion-1.0.8.sha256sum] = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8"
+SRC_URI[ryu-1.0.10.sha256sum] = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+SRC_URI[salsa20-0.7.2.sha256sum] = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15"
+SRC_URI[schannel-0.1.20.sha256sum] = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
+SRC_URI[scheduled-thread-pool-0.2.6.sha256sum] = "977a7519bff143a44f842fd07e80ad1329295bd71686457f18e496736f4bf9bf"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[scratch-1.0.2.sha256sum] = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+SRC_URI[scrypt-0.6.5.sha256sum] = "19230d10daad7f163d8c1fc8edf84fbe52ac71c2ebe5adf3f763aa1557b843e3"
+SRC_URI[sct-0.6.1.sha256sum] = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+SRC_URI[security-framework-2.6.1.sha256sum] = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
+SRC_URI[security-framework-sys-2.6.1.sha256sum] = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
+SRC_URI[semver-1.0.12.sha256sum] = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1"
+SRC_URI[serde-1.0.139.sha256sum] = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6"
+SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
+SRC_URI[serde_bytes-0.11.6.sha256sum] = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54"
+SRC_URI[serde_derive-1.0.139.sha256sum] = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb"
+SRC_URI[serde_json-1.0.82.sha256sum] = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+SRC_URI[serde_path_to_error-0.1.7.sha256sum] = "d7868ad3b8196a8a0aea99a8220b124278ee5320a55e4fde97794b6f85b1a377"
+SRC_URI[serde_urlencoded-0.7.1.sha256sum] = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+SRC_URI[sha2-0.9.9.sha256sum] = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
+SRC_URI[sha2-0.10.2.sha256sum] = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
+SRC_URI[sharded-slab-0.1.4.sha256sum] = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+SRC_URI[slab-0.4.6.sha256sum] = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
+SRC_URI[slug-0.1.4.sha256sum] = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
+SRC_URI[smallvec-1.9.0.sha256sum] = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+SRC_URI[socket2-0.4.4.sha256sum] = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+SRC_URI[spin-0.5.2.sha256sum] = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+SRC_URI[string_cache-0.8.4.sha256sum] = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08"
+SRC_URI[strsim-0.8.0.sha256sum] = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-1.0.98.sha256sum] = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+SRC_URI[syslog-4.0.1.sha256sum] = "a0641142b4081d3d44beffa4eefd7346a228cdf91ed70186db2ca2cef762d327"
+SRC_URI[target-lexicon-0.12.4.sha256sum] = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1"
+SRC_URI[tempfile-3.3.0.sha256sum] = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+SRC_URI[term-0.7.0.sha256sum] = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[textwrap-0.11.0.sha256sum] = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+SRC_URI[thiserror-1.0.31.sha256sum] = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
+SRC_URI[thiserror-impl-1.0.31.sha256sum] = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
+SRC_URI[thread_local-1.1.4.sha256sum] = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+SRC_URI[time-0.1.44.sha256sum] = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+SRC_URI[tiny-keccak-2.0.2.sha256sum] = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+SRC_URI[tiny_http-0.8.2.sha256sum] = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.0.sha256sum] = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+SRC_URI[tokio-1.20.4.sha256sum] = "eb78f30e4b41e98ca4cce5acb51168a033839a7af9e42b380355808e14e98ee0"
+SRC_URI[tokio-macros-1.8.0.sha256sum] = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
+SRC_URI[tokio-native-tls-0.3.0.sha256sum] = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+SRC_URI[tokio-rustls-0.22.0.sha256sum] = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
+SRC_URI[tokio-util-0.7.3.sha256sum] = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+SRC_URI[toml-0.5.9.sha256sum] = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+SRC_URI[tower-service-0.3.2.sha256sum] = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+SRC_URI[tracing-0.1.35.sha256sum] = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160"
+SRC_URI[tracing-attributes-0.1.22.sha256sum] = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
+SRC_URI[tracing-core-0.1.28.sha256sum] = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7"
+SRC_URI[tracing-log-0.1.3.sha256sum] = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+SRC_URI[tracing-serde-0.1.3.sha256sum] = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
+SRC_URI[tracing-subscriber-0.2.25.sha256sum] = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71"
+SRC_URI[trait-set-0.2.0.sha256sum] = "875c4c873cc824e362fa9a9419ffa59807244824275a44ad06fec9684fff08f2"
+SRC_URI[try-lock-0.2.3.sha256sum] = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+SRC_URI[unicode-bidi-0.3.8.sha256sum] = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+SRC_URI[unicode-ident-1.0.2.sha256sum] = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+SRC_URI[unicode-normalization-0.1.21.sha256sum] = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+SRC_URI[unicode-width-0.1.9.sha256sum] = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+SRC_URI[unicode-xid-0.2.3.sha256sum] = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+SRC_URI[untrusted-0.7.1.sha256sum] = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+SRC_URI[url-2.2.2.sha256sum] = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+SRC_URI[urlparse-0.7.3.sha256sum] = "110352d4e9076c67839003c7788d8604e24dcded13e0b375af3efaa8cf468517"
+SRC_URI[uuid-1.1.2.sha256sum] = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f"
+SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+SRC_URI[vec_map-0.8.2.sha256sum] = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[want-0.3.0.sha256sum] = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+SRC_URI[wasi-0.10.0+wasi-snapshot-preview1.sha256sum] = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.81.sha256sum] = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994"
+SRC_URI[wasm-bindgen-backend-0.2.81.sha256sum] = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a"
+SRC_URI[wasm-bindgen-futures-0.4.31.sha256sum] = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f"
+SRC_URI[wasm-bindgen-macro-0.2.81.sha256sum] = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa"
+SRC_URI[wasm-bindgen-macro-support-0.2.81.sha256sum] = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048"
+SRC_URI[wasm-bindgen-shared-0.2.81.sha256sum] = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be"
+SRC_URI[web-sys-0.3.58.sha256sum] = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90"
+SRC_URI[webpki-0.21.4.sha256sum] = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.36.1.sha256sum] = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+SRC_URI[windows_aarch64_msvc-0.36.1.sha256sum] = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+SRC_URI[windows_i686_gnu-0.36.1.sha256sum] = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+SRC_URI[windows_i686_msvc-0.36.1.sha256sum] = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+SRC_URI[windows_x86_64_gnu-0.36.1.sha256sum] = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+SRC_URI[windows_x86_64_msvc-0.36.1.sha256sum] = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+SRC_URI[winreg-0.10.1.sha256sum] = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
diff --git a/meta-security/recipes-security/krill/krill.inc b/meta-security/recipes-security/krill/krill.inc
deleted file mode 100644
index 22fe269..0000000
--- a/meta-security/recipes-security/krill/krill.inc
+++ /dev/null
@@ -1,279 +0,0 @@
-# Auto-Generated by cargo-bitbake 0.3.16
-#
-
-# 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.17.0 \
-    crate://crates.io/adler/1.0.2 \
-    crate://crates.io/adler32/1.2.0 \
-    crate://crates.io/aho-corasick/0.7.18 \
-    crate://crates.io/android_system_properties/0.1.5 \
-    crate://crates.io/ansi_term/0.12.1 \
-    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/1.1.0 \
-    crate://crates.io/backoff/0.3.0 \
-    crate://crates.io/backtrace/0.3.66 \
-    crate://crates.io/base64/0.13.0 \
-    crate://crates.io/basic-cookies/0.1.4 \
-    crate://crates.io/bcder/0.7.0 \
-    crate://crates.io/bit-set/0.5.2 \
-    crate://crates.io/bit-vec/0.6.3 \
-    crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/block-buffer/0.10.2 \
-    crate://crates.io/block-buffer/0.9.0 \
-    crate://crates.io/bumpalo/3.10.0 \
-    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.22 \
-    crate://crates.io/chunked_transfer/1.4.0 \
-    crate://crates.io/cipher/0.2.5 \
-    crate://crates.io/clap/2.34.0 \
-    crate://crates.io/codespan-reporting/0.11.1 \
-    crate://crates.io/core-foundation-sys/0.8.3 \
-    crate://crates.io/core-foundation/0.9.3 \
-    crate://crates.io/cpufeatures/0.2.2 \
-    crate://crates.io/crc32fast/1.3.2 \
-    crate://crates.io/crunchy/0.2.2 \
-    crate://crates.io/crypto-common/0.1.6 \
-    crate://crates.io/crypto-mac/0.10.1 \
-    crate://crates.io/cryptoki-sys/0.1.4 \
-    crate://crates.io/cryptoki/0.3.0 \
-    crate://crates.io/ctrlc/3.2.2 \
-    crate://crates.io/cxx-build/1.0.79 \
-    crate://crates.io/cxx/1.0.79 \
-    crate://crates.io/cxxbridge-flags/1.0.79 \
-    crate://crates.io/cxxbridge-macro/1.0.79 \
-    crate://crates.io/derivative/2.2.0 \
-    crate://crates.io/deunicode/0.4.3 \
-    crate://crates.io/diff/0.1.13 \
-    crate://crates.io/digest/0.10.3 \
-    crate://crates.io/digest/0.9.0 \
-    crate://crates.io/dirs-next/2.0.0 \
-    crate://crates.io/dirs-sys-next/0.1.2 \
-    crate://crates.io/either/1.7.0 \
-    crate://crates.io/ena/0.14.0 \
-    crate://crates.io/encoding_rs/0.8.31 \
-    crate://crates.io/enum-display-derive/0.1.1 \
-    crate://crates.io/enum-flags/0.1.8 \
-    crate://crates.io/error-chain/0.11.0 \
-    crate://crates.io/fastrand/1.7.0 \
-    crate://crates.io/fern/0.5.9 \
-    crate://crates.io/fixedbitset/0.4.2 \
-    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/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.7 \
-    crate://crates.io/gimli/0.26.2 \
-    crate://crates.io/h2/0.3.13 \
-    crate://crates.io/hashbrown/0.12.3 \
-    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.4.5 \
-    crate://crates.io/http/0.2.8 \
-    crate://crates.io/httparse/1.7.1 \
-    crate://crates.io/httpdate/1.0.2 \
-    crate://crates.io/hyper-tls/0.5.0 \
-    crate://crates.io/hyper/0.14.20 \
-    crate://crates.io/iana-time-zone-haiku/0.1.1 \
-    crate://crates.io/iana-time-zone/0.1.51 \
-    crate://crates.io/idna/0.2.3 \
-    crate://crates.io/impl-trait-for-tuples/0.2.2 \
-    crate://crates.io/indexmap/1.9.1 \
-    crate://crates.io/instant/0.1.12 \
-    crate://crates.io/intervaltree/0.2.7 \
-    crate://crates.io/ipnet/2.5.0 \
-    crate://crates.io/itertools/0.10.3 \
-    crate://crates.io/itoa/1.0.2 \
-    crate://crates.io/jmespatch/0.3.0 \
-    crate://crates.io/js-sys/0.3.58 \
-    crate://crates.io/kmip-protocol/0.4.2 \
-    crate://crates.io/kmip-ttlv/0.3.3 \
-    crate://crates.io/lalrpop-util/0.19.8 \
-    crate://crates.io/lalrpop/0.19.8 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.126 \
-    crate://crates.io/libflate/1.2.0 \
-    crate://crates.io/libflate_lz77/1.1.0 \
-    crate://crates.io/libloading/0.7.3 \
-    crate://crates.io/link-cplusplus/1.0.7 \
-    crate://crates.io/lock_api/0.4.7 \
-    crate://crates.io/log/0.4.17 \
-    crate://crates.io/maplit/1.0.2 \
-    crate://crates.io/matchers/0.0.1 \
-    crate://crates.io/matches/0.1.9 \
-    crate://crates.io/maybe-async/0.2.6 \
-    crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/mime/0.3.16 \
-    crate://crates.io/miniz_oxide/0.5.3 \
-    crate://crates.io/mio/0.8.4 \
-    crate://crates.io/native-tls/0.2.10 \
-    crate://crates.io/new_debug_unreachable/1.0.4 \
-    crate://crates.io/nix/0.24.2 \
-    crate://crates.io/num-bigint/0.4.3 \
-    crate://crates.io/num-integer/0.1.45 \
-    crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num_cpus/1.13.1 \
-    crate://crates.io/oauth2/4.2.3 \
-    crate://crates.io/object/0.29.0 \
-    crate://crates.io/once_cell/1.13.0 \
-    crate://crates.io/opaque-debug/0.3.0 \
-    crate://crates.io/openidconnect/2.3.2 \
-    crate://crates.io/openssl-macros/0.1.0 \
-    crate://crates.io/openssl-probe/0.1.5 \
-    crate://crates.io/openssl-src/111.25.0+1.1.1t \
-    crate://crates.io/openssl-sys/0.9.75 \
-    crate://crates.io/openssl/0.10.41 \
-    crate://crates.io/ordered-float/2.10.0 \
-    crate://crates.io/oso/0.12.4 \
-    crate://crates.io/parking_lot/0.12.1 \
-    crate://crates.io/parking_lot_core/0.9.3 \
-    crate://crates.io/pbkdf2/0.7.5 \
-    crate://crates.io/percent-encoding/2.1.0 \
-    crate://crates.io/petgraph/0.6.2 \
-    crate://crates.io/phf_shared/0.10.0 \
-    crate://crates.io/pico-args/0.4.2 \
-    crate://crates.io/pin-project-lite/0.2.9 \
-    crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/pkg-config/0.3.25 \
-    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/priority-queue/1.2.2 \
-    crate://crates.io/proc-macro2/1.0.40 \
-    crate://crates.io/quick-xml/0.23.0 \
-    crate://crates.io/quote/1.0.20 \
-    crate://crates.io/r2d2/0.8.10 \
-    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.13 \
-    crate://crates.io/redox_users/0.4.3 \
-    crate://crates.io/regex-automata/0.1.10 \
-    crate://crates.io/regex-syntax/0.6.27 \
-    crate://crates.io/regex/1.6.0 \
-    crate://crates.io/remove_dir_all/0.5.3 \
-    crate://crates.io/reqwest/0.11.11 \
-    crate://crates.io/ring/0.16.20 \
-    crate://crates.io/rle-decode-fast/1.0.3 \
-    crate://crates.io/routecore/0.2.0 \
-    crate://crates.io/rpassword/5.0.1 \
-    crate://crates.io/rpki/0.15.8 \
-    crate://crates.io/rustc-demangle/0.1.21 \
-    crate://crates.io/rustc_version/0.4.0 \
-    crate://crates.io/rustls/0.19.1 \
-    crate://crates.io/rustversion/1.0.8 \
-    crate://crates.io/ryu/1.0.10 \
-    crate://crates.io/salsa20/0.7.2 \
-    crate://crates.io/schannel/0.1.20 \
-    crate://crates.io/scheduled-thread-pool/0.2.6 \
-    crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/scratch/1.0.2 \
-    crate://crates.io/scrypt/0.6.5 \
-    crate://crates.io/sct/0.6.1 \
-    crate://crates.io/security-framework-sys/2.6.1 \
-    crate://crates.io/security-framework/2.6.1 \
-    crate://crates.io/semver/1.0.12 \
-    crate://crates.io/serde-value/0.7.0 \
-    crate://crates.io/serde/1.0.139 \
-    crate://crates.io/serde_bytes/0.11.6 \
-    crate://crates.io/serde_derive/1.0.139 \
-    crate://crates.io/serde_json/1.0.82 \
-    crate://crates.io/serde_path_to_error/0.1.7 \
-    crate://crates.io/serde_urlencoded/0.7.1 \
-    crate://crates.io/sha2/0.10.2 \
-    crate://crates.io/sha2/0.9.9 \
-    crate://crates.io/sharded-slab/0.1.4 \
-    crate://crates.io/signal-hook-registry/1.4.0 \
-    crate://crates.io/siphasher/0.3.10 \
-    crate://crates.io/slab/0.4.6 \
-    crate://crates.io/slug/0.1.4 \
-    crate://crates.io/smallvec/1.9.0 \
-    crate://crates.io/socket2/0.4.4 \
-    crate://crates.io/spin/0.5.2 \
-    crate://crates.io/string_cache/0.8.4 \
-    crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/subtle/2.4.1 \
-    crate://crates.io/syn/1.0.98 \
-    crate://crates.io/syslog/4.0.1 \
-    crate://crates.io/target-lexicon/0.12.4 \
-    crate://crates.io/tempfile/3.3.0 \
-    crate://crates.io/term/0.7.0 \
-    crate://crates.io/termcolor/1.1.3 \
-    crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/thiserror-impl/1.0.31 \
-    crate://crates.io/thiserror/1.0.31 \
-    crate://crates.io/thread_local/1.1.4 \
-    crate://crates.io/time/0.1.44 \
-    crate://crates.io/tiny-keccak/2.0.2 \
-    crate://crates.io/tiny_http/0.8.2 \
-    crate://crates.io/tinyvec/1.6.0 \
-    crate://crates.io/tinyvec_macros/0.1.0 \
-    crate://crates.io/tokio-macros/1.8.0 \
-    crate://crates.io/tokio-native-tls/0.3.0 \
-    crate://crates.io/tokio-rustls/0.22.0 \
-    crate://crates.io/tokio-util/0.7.3 \
-    crate://crates.io/tokio/1.20.4 \
-    crate://crates.io/toml/0.5.9 \
-    crate://crates.io/tower-service/0.3.2 \
-    crate://crates.io/tracing-attributes/0.1.22 \
-    crate://crates.io/tracing-core/0.1.28 \
-    crate://crates.io/tracing-log/0.1.3 \
-    crate://crates.io/tracing-serde/0.1.3 \
-    crate://crates.io/tracing-subscriber/0.2.25 \
-    crate://crates.io/tracing/0.1.35 \
-    crate://crates.io/trait-set/0.2.0 \
-    crate://crates.io/try-lock/0.2.3 \
-    crate://crates.io/typenum/1.15.0 \
-    crate://crates.io/unicode-bidi/0.3.8 \
-    crate://crates.io/unicode-ident/1.0.2 \
-    crate://crates.io/unicode-normalization/0.1.21 \
-    crate://crates.io/unicode-width/0.1.9 \
-    crate://crates.io/unicode-xid/0.2.3 \
-    crate://crates.io/untrusted/0.7.1 \
-    crate://crates.io/url/2.2.2 \
-    crate://crates.io/urlparse/0.7.3 \
-    crate://crates.io/uuid/1.1.2 \
-    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.4 \
-    crate://crates.io/want/0.3.0 \
-    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen-backend/0.2.81 \
-    crate://crates.io/wasm-bindgen-futures/0.4.31 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.81 \
-    crate://crates.io/wasm-bindgen-macro/0.2.81 \
-    crate://crates.io/wasm-bindgen-shared/0.2.81 \
-    crate://crates.io/wasm-bindgen/0.2.81 \
-    crate://crates.io/web-sys/0.3.58 \
-    crate://crates.io/webpki/0.21.4 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/windows-sys/0.36.1 \
-    crate://crates.io/windows_aarch64_msvc/0.36.1 \
-    crate://crates.io/windows_i686_gnu/0.36.1 \
-    crate://crates.io/windows_i686_msvc/0.36.1 \
-    crate://crates.io/windows_x86_64_gnu/0.36.1 \
-    crate://crates.io/windows_x86_64_msvc/0.36.1 \
-    crate://crates.io/winreg/0.10.1 \
-"
diff --git a/meta-security/recipes-security/krill/krill_0.12.3.bb b/meta-security/recipes-security/krill/krill_0.12.3.bb
index a943c52..ee959c2 100644
--- a/meta-security/recipes-security/krill/krill_0.12.3.bb
+++ b/meta-security/recipes-security/krill/krill_0.12.3.bb
@@ -10,7 +10,7 @@
 SRCREV = "e92098419c7ad82939e0483bc76df21eff705b80"
 SRC_URI += "file://panic_workaround.patch"
 
-include krill.inc
+include krill-crates.inc
 
 UPSTREAM_CHECK_URI = "https://github.com/NLnetLabs/${BPN}/releases"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
@@ -18,7 +18,7 @@
 S = "${WORKDIR}/git"
 CARGO_SRC_DIR = ""
 
-inherit pkgconfig useradd systemd cargo
+inherit pkgconfig useradd systemd cargo cargo-update-recipe-crates
 
 do_install:append () {
     install -d ${D}${sysconfdir}
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake
index 21fb100..42ab148 100755
--- a/poky/bitbake/bin/bitbake
+++ b/poky/bitbake/bin/bitbake
@@ -27,7 +27,7 @@
 
 bb.utils.check_system_locale()
 
-__version__ = "2.3.1"
+__version__ = "2.4.0"
 
 if __name__ == "__main__":
     if __version__ != bb.__version__:
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
index ba8129a..b35c332 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst
@@ -1972,6 +1972,24 @@
 the commonly used functions ``bb.utils.contains()`` and
 ``bb.utils.mkdirhier()``, which come with docstrings.
 
+Extending Python Library Code
+-----------------------------
+
+If you wish to add your own Python library code (e.g. to provide
+functions/classes you can use from Python functions in the metadata)
+you can do so from any layer using the ``addpylib`` directive.
+This directive is typically added to your layer configuration (
+``conf/layer.conf``) although it will be handled in any ``.conf`` file.
+
+Usage is of the form::
+
+   addpylib <directory> <namespace>
+
+Where <directory> specifies the directory to add to the library path.
+The specified <namespace> is imported automatically, and if the imported
+module specifies an attribute named ``BBIMPORTS``, that list of
+sub-modules is iterated and imported too.
+
 Testing and Debugging BitBake Python code
 -----------------------------------------
 
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 25620fd..01d4f8d 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
@@ -99,10 +99,26 @@
       the path of the build. BitBake's output should not (and usually does
       not) depend on the directory in which it was built.
 
+   :term:`BB_CACHEDIR`
+      Specifies the code parser cache directory (distinct from :term:`CACHE`
+      and :term:`PERSISTENT_DIR` although they can be set to the same value
+      if desired). The default value is "${TOPDIR}/cache".
+
    :term:`BB_CHECK_SSL_CERTS`
       Specifies if SSL certificates should be checked when fetching. The default
       value is ``1`` and certificates are not checked if the value is set to ``0``.
 
+   :term:`BB_HASH_CODEPARSER_VALS`
+      Specifies values for variables to use when populating the codeparser cache.
+      This can be used selectively to set dummy values for variables to avoid
+      the codeparser cache growing on every parse. Variables that would typically
+      be included are those where the value is not significant for where the
+      codeparser cache is used (i.e. when calculating variable dependencies for
+      code fragments.) The value is space-separated without quoting values, for
+      example::
+
+         BB_HASH_CODEPARSER_VALS = "T=/ WORKDIR=/ DATE=1234 TIME=1234"
+
    :term:`BB_CONSOLELOG`
       Specifies the path to a log file into which BitBake's user interface
       writes output during the build.
@@ -343,6 +359,14 @@
 
       For example usage, see :term:`BB_GIT_SHALLOW`.
 
+   :term:`BB_GLOBAL_PYMODULES`
+      Specifies the list of Python modules to place in the global namespace.
+      It is intended that only the core layer should set this and it is meant
+      to be a very small list, typically just ``os`` and ``sys``.
+      :term:`BB_GLOBAL_PYMODULES` is expected to be set before the first
+      ``addpylib`` directive.
+      See also ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`".
+
    :term:`BB_HASHCHECK_FUNCTION`
       Specifies the name of the function to call during the "setscene" part
       of the task's execution in order to validate the list of task hashes.
@@ -539,7 +563,7 @@
       :term:`BB_RUNFMT` variable is undefined and the run filenames get
       created using the following form::
 
-         run.{task}.{pid}
+         run.{func}.{pid}
 
       If you want to force run files to take a specific name, you can set this
       variable in a configuration file.
diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py
index 56be5a8..0e2d867 100644
--- a/poky/bitbake/lib/bb/__init__.py
+++ b/poky/bitbake/lib/bb/__init__.py
@@ -9,7 +9,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 #
 
-__version__ = "2.3.1"
+__version__ = "2.4.0"
 
 import sys
 if sys.version_info < (3, 8, 0):
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 1797a1d..f33bca4 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -1764,9 +1764,9 @@
     def shutdown(self, force=False):
         if force:
             self.state = state.forceshutdown
+            bb.event._should_exit.set()
         else:
             self.state = state.shutdown
-        bb.event._should_exit.set()
 
         if self.parser:
             self.parser.shutdown(clean=False)
@@ -2223,7 +2223,7 @@
 
             self.results = itertools.chain(self.results, self.parse_generator())
 
-    def shutdown(self, clean=True):
+    def shutdown(self, clean=True, eventmsg="Parsing halted due to errors"):
         if not self.toparse:
             return
         if self.haveshutdown:
@@ -2238,6 +2238,7 @@
 
             bb.event.fire(event, self.cfgdata)
         else:
+            bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata)
             bb.error("Parsing halted due to errors, see error messages above")
 
         # Cleanup the queue before call process.join(), otherwise there might be
@@ -2355,7 +2356,7 @@
         except bb.parse.ParseError as exc:
             self.error += 1
             logger.error(str(exc))
-            self.shutdown(clean=False)
+            self.shutdown(clean=False, eventmsg=str(exc))
             return False
         except bb.data_smart.ExpansionError as exc:
             self.error += 1
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index 37cc630..0d0e0a6 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -856,3 +856,11 @@
     def __init__(self, result):
         Event.__init__(self)
         self.result = result
+
+class ParseError(Event):
+    """
+    Event to indicate parse failed
+    """
+    def __init__(self, msg):
+        super().__init__()
+        self._msg = msg
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 3172988..1a86d8f 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -560,7 +560,6 @@
     file against those in the recipe each time, rather than only after
     downloading. See https://bugzilla.yoctoproject.org/show_bug.cgi?id=5571.
     """
-
     if ud.ignore_checksums or not ud.method.supports_checksum(ud):
         return {}
 
@@ -605,11 +604,7 @@
 
         # If strict checking enabled and neither sum defined, raise error
         if strict == "1":
-            messages.append("No checksum specified for '%s', please add at " \
-                            "least one to the recipe:" % ud.localpath)
-            messages.extend(checksum_lines)
-            logger.error("\n".join(messages))
-            raise NoChecksumError("Missing SRC_URI checksum", ud.url)
+            raise NoChecksumError("\n".join(checksum_lines))
 
         bb.event.fire(MissingChecksumEvent(ud.url, **checksum_event), d)
 
@@ -1728,6 +1723,7 @@
         network = self.d.getVar("BB_NO_NETWORK")
         premirroronly = bb.utils.to_boolean(self.d.getVar("BB_FETCH_PREMIRRORONLY"))
 
+        checksum_missing_messages = []
         for u in urls:
             ud = self.ud[u]
             ud.setup_localpath(self.d)
@@ -1739,7 +1735,6 @@
 
             try:
                 self.d.setVar("BB_NO_NETWORK", network)
-
                 if m.verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
                     done = True
                 elif m.try_premirror(ud, self.d):
@@ -1811,13 +1806,20 @@
                     raise ChecksumError("Stale Error Detected")
 
             except BBFetchException as e:
-                if isinstance(e, ChecksumError):
+                if isinstance(e, NoChecksumError):
+                    (message, _) = e.args
+                    checksum_missing_messages.append(message)
+                    continue
+                elif isinstance(e, ChecksumError):
                     logger.error("Checksum failure fetching %s" % u)
                 raise
 
             finally:
                 if ud.lockfile:
                     bb.utils.unlockfile(lf)
+        if checksum_missing_messages:
+            logger.error("Missing SRC_URI checksum, please add those to the recipe: \n%s", "\n".join(checksum_missing_messages))
+            raise BBFetchException("There was some missing checksums in the recipe")
 
     def checkstatus(self, urls=None):
         """
diff --git a/poky/bitbake/lib/bb/fetch2/crate.py b/poky/bitbake/lib/bb/fetch2/crate.py
index 590dc9c..a7021e5 100644
--- a/poky/bitbake/lib/bb/fetch2/crate.py
+++ b/poky/bitbake/lib/bb/fetch2/crate.py
@@ -72,7 +72,7 @@
         ud.url = "https://%s/%s/%s/download" % (host, name, version)
         ud.parm['downloadfilename'] = "%s-%s.crate" % (name, version)
         if 'name' not in ud.parm:
-            ud.parm['name'] = name
+            ud.parm['name'] = '%s-%s' % (name, version)
 
         logger.debug2("Fetching %s to %s" % (ud.url, ud.parm['downloadfilename']))
 
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
index 36fcbfb..cc81100 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -205,7 +205,9 @@
         # This fetcher resolves multiple URIs from a shrinkwrap file and then
         # forwards it to a proxy fetcher. The management of the donestamp file,
         # the lockfile and the checksums are forwarded to the proxy fetcher.
-        ud.proxy = Fetch([dep["url"] for dep in ud.deps if dep["url"]], data)
+        shrinkwrap_urls = [dep["url"] for dep in ud.deps if dep["url"]]
+        if shrinkwrap_urls:
+            ud.proxy = Fetch(shrinkwrap_urls, data)
         ud.needdonestamp = False
 
     @staticmethod
diff --git a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index 05c627e..7826dee 100644
--- a/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -21,7 +21,7 @@
     ^
     (?P<exp>export\s+)?
     (?P<var>[a-zA-Z0-9\-_+.${}/~:]+?)
-    (\[(?P<flag>[a-zA-Z0-9\-_+.][a-zA-Z0-9\-_+.@]+)\])?
+    (\[(?P<flag>[a-zA-Z0-9\-_+.][a-zA-Z0-9\-_+.@]*)\])?
 
     \s* (
         (?P<colon>:=) |
@@ -103,7 +103,7 @@
 # We have an issue where a UI might want to enforce particular settings such as
 # an empty DISTRO variable. If configuration files do something like assigning
 # a weak default, it turns out to be very difficult to filter out these changes,
-# particularly when the weak default might appear half way though parsing a chain 
+# particularly when the weak default might appear half way though parsing a chain
 # of configuration files. We therefore let the UIs hook into configuration file
 # parsing. This turns out to be a hard problem to solve any other way.
 confFilters = []
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index e629ab7..02f1474 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -198,15 +198,20 @@
                 curr_cpu_pressure = cpu_pressure_fds.readline().split()[4].split("=")[1]
                 curr_io_pressure = io_pressure_fds.readline().split()[4].split("=")[1]
                 curr_memory_pressure = memory_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
-                exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) > self.rq.max_memory_pressure
                 now = time.time()
-                if now - self.prev_pressure_time > 1.0:
+                tdiff = now - self.prev_pressure_time
+                if tdiff > 1.0:
+                    exceeds_cpu_pressure =  self.rq.max_cpu_pressure and (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) / tdiff > self.rq.max_cpu_pressure
+                    exceeds_io_pressure =  self.rq.max_io_pressure and (float(curr_io_pressure) - float(self.prev_io_pressure)) / tdiff > self.rq.max_io_pressure
+                    exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) / tdiff > self.rq.max_memory_pressure
                     self.prev_cpu_pressure = curr_cpu_pressure
                     self.prev_io_pressure = curr_io_pressure
                     self.prev_memory_pressure = curr_memory_pressure
                     self.prev_pressure_time = now
+                else:
+                    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
+                    exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) > self.rq.max_memory_pressure
             return (exceeds_cpu_pressure or exceeds_io_pressure or exceeds_memory_pressure)
         return False
 
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index da67168..6ef0836 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -2380,7 +2380,7 @@
         ud = fetcher.ud[fetcher.urls[0]]
 
         self.assertIn("name", ud.parm)
-        self.assertEqual(ud.parm["name"], "glob")
+        self.assertEqual(ud.parm["name"], "glob-0.2.11")
         self.assertIn("downloadfilename", ud.parm)
         self.assertEqual(ud.parm["downloadfilename"], "glob-0.2.11.crate")
 
@@ -2428,13 +2428,13 @@
         ud = fetcher.ud[fetcher.urls[0]]
 
         self.assertIn("name", ud.parm)
-        self.assertEqual(ud.parm["name"], "glob")
+        self.assertEqual(ud.parm["name"], "glob-0.2.11")
         self.assertIn("downloadfilename", ud.parm)
         self.assertEqual(ud.parm["downloadfilename"], "glob-0.2.11.crate")
 
         ud = fetcher.ud[fetcher.urls[1]]
         self.assertIn("name", ud.parm)
-        self.assertEqual(ud.parm["name"], "time")
+        self.assertEqual(ud.parm["name"], "time-0.1.35")
         self.assertIn("downloadfilename", ud.parm)
         self.assertEqual(ud.parm["downloadfilename"], "time-0.1.35.crate")
 
@@ -2451,7 +2451,7 @@
     def test_crate_incorrect_cksum(self):
         uri = "crate://crates.io/aho-corasick/0.7.20"
         self.d.setVar('SRC_URI', uri)
-        self.d.setVarFlag("SRC_URI", "aho-corasick.sha256sum", hashlib.sha256("Invalid".encode("utf-8")).hexdigest())
+        self.d.setVarFlag("SRC_URI", "aho-corasick-0.7.20.sha256sum", hashlib.sha256("Invalid".encode("utf-8")).hexdigest())
 
         uris = self.d.getVar('SRC_URI').split()
 
diff --git a/poky/bitbake/lib/bb/tests/parse.py b/poky/bitbake/lib/bb/tests/parse.py
index d27c7c6..a3165d9 100644
--- a/poky/bitbake/lib/bb/tests/parse.py
+++ b/poky/bitbake/lib/bb/tests/parse.py
@@ -222,6 +222,7 @@
     at_sign_in_var_flag = """
 A[flag@.service] = "nonet"
 B[flag@.target] = "ntb"
+C[f] = "flag"
 
 unset A[flag@.service]
 """
@@ -232,6 +233,7 @@
         self.assertEqual(d.getVar("B"), None)
         self.assertEqual(d.getVarFlag("A","flag@.service"), None)
         self.assertEqual(d.getVarFlag("B","flag@.target"), "ntb")
+        self.assertEqual(d.getVarFlag("C","f"), "flag")
 
     def test_parse_invalid_at_sign_in_var_flag(self):
         invalid_at_sign = self.at_sign_in_var_flag.replace("B[f", "B[@f")
diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst
index 7b8baf2..0ccffcc 100644
--- a/poky/documentation/brief-yoctoprojectqs/index.rst
+++ b/poky/documentation/brief-yoctoprojectqs/index.rst
@@ -40,7 +40,13 @@
 Make sure your :term:`Build Host` meets the
 following requirements:
 
--  50 Gbytes of free disk space
+-  At least &MIN_DISK_SPACE; Gbytes of free disk space, though
+   much more will help to run multiple builds and increase
+   performance by reusing build artifacts.
+
+-  At least &MIN_RAM; Gbytes of RAM, though a modern modern build host with as
+   much RAM and as many CPU cores as possible is strongly recommended to
+   maximize build performance.
 
 -  Runs a supported Linux distribution (i.e. recent releases of Fedora,
    openSUSE, CentOS, Debian, or Ubuntu). For a list of Linux
diff --git a/poky/documentation/dev-manual/device-manager.rst b/poky/documentation/dev-manual/device-manager.rst
index 4248c23..0343d19 100644
--- a/poky/documentation/dev-manual/device-manager.rst
+++ b/poky/documentation/dev-manual/device-manager.rst
@@ -1,5 +1,7 @@
 .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
 
+.. _device-manager:
+
 Selecting a Device Manager
 **************************
 
diff --git a/poky/documentation/dev-manual/disk-space.rst b/poky/documentation/dev-manual/disk-space.rst
index 3a5d2b7..c63591c 100644
--- a/poky/documentation/dev-manual/disk-space.rst
+++ b/poky/documentation/dev-manual/disk-space.rst
@@ -17,6 +17,12 @@
 "rm_work", see the :ref:`ref-classes-rm-work` class in the
 Yocto Project Reference Manual.
 
+When you inherit this class and build a ``core-image-sato`` image for a
+``qemux86-64`` machine from an Ubuntu 22.04 x86-64 system, you end up with a
+final disk usage of 22 Gbytes instead of &MIN_DISK_SPACE; Gbytes. However,
+&MIN_DISK_SPACE_RM_WORK; Gbytes of initial free disk space are still needed to
+create temporary files before they can be deleted.
+
 Purging Duplicate Shared State Cache Files
 ==========================================
 
diff --git a/poky/documentation/dev-manual/init-manager.rst b/poky/documentation/dev-manual/init-manager.rst
index 0617fed..fd8747b 100644
--- a/poky/documentation/dev-manual/init-manager.rst
+++ b/poky/documentation/dev-manual/init-manager.rst
@@ -1,83 +1,107 @@
 .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
 
+.. _init-manager:
+
 Selecting an Initialization Manager
 ***********************************
 
-By default, the Yocto Project uses SysVinit as the initialization
-manager. However, there is also support for systemd, which is a full
-replacement for init with parallel starting of services, reduced shell
-overhead and other features that are used by many distributions.
+By default, the Yocto Project uses :wikipedia:`SysVinit <Init#SysV-style>` as
+the initialization manager. There is also support for BusyBox init, a simpler
+implementation, as well as support for :wikipedia:`systemd <Systemd>`, which
+is a full replacement for init with parallel starting of services, reduced
+shell overhead, increased security and resource limits for services, and other
+features that are used by many distributions.
 
-Within the system, SysVinit treats system components as services. These
-services are maintained as shell scripts stored in the ``/etc/init.d/``
-directory. Services organize into different run levels. This
-organization is maintained by putting links to the services in the
-``/etc/rcN.d/`` directories, where `N/` is one of the following options:
-"S", "0", "1", "2", "3", "4", "5", or "6".
+Within the system, SysVinit and BusyBox init treat system components as
+services. These services are maintained as shell scripts stored in the
+``/etc/init.d/`` directory.
+
+SysVinit is more elaborate than BusyBox init and organizes services in
+different run levels. This organization is maintained by putting links
+to the services in the ``/etc/rcN.d/`` directories, where `N/` is one
+of the following options: "S", "0", "1", "2", "3", "4", "5", or "6".
 
 .. note::
 
    Each runlevel has a dependency on the previous runlevel. This
    dependency allows the services to work properly.
 
+Both SysVinit and BusyBox init are configured through the ``/etc/inittab``
+file, with a very similar syntax, though of course BusyBox init features
+are more limited.
+
 In comparison, systemd treats components as units. Using units is a
 broader concept as compared to using a service. A unit includes several
-different types of entities. Service is one of the types of entities.
+different types of entities. ``Service`` is one of the types of entities.
 The runlevel concept in SysVinit corresponds to the concept of a target
 in systemd, where target is also a type of supported unit.
 
-In a SysVinit-based system, services load sequentially (i.e. one by one)
-during init and parallelization is not supported. With systemd, services
-start in parallel. Needless to say, the method can have an impact on
-system startup performance.
+In systems with SysVinit or BusyBox init, services load sequentially (i.e. one
+by one) during init and parallelization is not supported. With systemd, services
+start in parallel. This method can have an impact on the startup performance
+of a given service, though systemd will also provide more services by default,
+therefore increasing the total system boot time. systemd also substantially
+increases system size because of its multiple components and the extra
+dependencies it pulls.
 
-If you want to use SysVinit, you do not have to do anything. But, if you
-want to use systemd, you must take some steps as described in the
-following sections.
+On the contrary, BusyBox init is the simplest and the lightest solution and
+also comes with BusyBox mdev as device manager, a lighter replacement to
+:wikipedia:`udev <Udev>`, which SysVinit and systemd both use.
 
-Using systemd Exclusively
+The ":ref:`device-manager`" chapter has more details about device managers.
+
+Using SysVinit with udev
 =========================
 
-Set these variables in your distribution configuration file as follows::
+SysVinit with  the udev device manager corresponds to the
+default setting in Poky. This corresponds to setting::
 
-   DISTRO_FEATURES:append = " systemd"
-   VIRTUAL-RUNTIME_init_manager = "systemd"
+   INIT_MANAGER = "sysvinit"
 
-You can also prevent the SysVinit distribution feature from
-being automatically enabled as follows::
+Using BusyBox init with BusyBox mdev
+====================================
 
-   DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
+BusyBox init with BusyBox mdev is the simplest and lightest solution
+for small root filesystems. All you need is BusyBox, which most systems
+have anyway::
 
-Doing so removes any
-redundant SysVinit scripts.
+   INIT_MANAGER = "mdev-busybox"
 
-To remove initscripts from your image altogether, set this variable
-also::
+Using systemd
+=============
 
-   VIRTUAL-RUNTIME_initscripts = ""
+The last option is to use systemd together with the udev device
+manager. This is the most powerful and versatile solution, especially
+for more complex systems::
 
-For information on the backfill variable, see
-:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`.
+   INIT_MANAGER = "systemd"
 
-Using systemd for the Main Image and Using SysVinit for the Rescue Image
-========================================================================
+This will enable systemd and remove sysvinit components from the image.
+See :yocto_git:`meta/conf/distro/include/init-manager-systemd.inc
+</poky/tree/meta/conf/distro/include/init-manager-systemd.inc>` for exact
+details on what this does.
 
-Set these variables in your distribution configuration file as follows::
+Controling systemd from the target command line
+-----------------------------------------------
 
-   DISTRO_FEATURES:append = " systemd"
-   VIRTUAL-RUNTIME_init_manager = "systemd"
+Here is a quick reference for controling systemd from the command line on the
+target. Instead of opening and sometimes modifying files, most interaction
+happens through the ``systemctl`` and ``journalctl`` commands:
 
-Doing so causes your main image to use the
-``packagegroup-core-boot.bb`` recipe and systemd. The rescue/minimal
-image cannot use this package group. However, it can install SysVinit
-and the appropriate packages will have support for both systemd and
-SysVinit.
+-  ``systemctl status``: show the status of all services
+-  ``systemctl status <service>``: show the status of one service
+-  ``systemctl [start|stop] <service>``: start or stop a service
+-  ``systemctl [enable|disable] <service>``: enable or disable a service at boot time
+-  ``systemctl list-units``: list all available units
+-  ``journalctl -a``: show all logs for all services
+-  ``journalctl -f``: show only the last log entries, and keep printing updates as they arrive
+-  ``journalctl -u``: show only logs from a particular service
 
 Using systemd-journald without a traditional syslog daemon
-==========================================================
+----------------------------------------------------------
 
 Counter-intuitively, ``systemd-journald`` is not a syslog runtime or provider,
-and the proper way to use systemd-journald as your sole logging mechanism is to
+and the proper way to use ``systemd-journald`` as your sole logging mechanism is to
 effectively disable syslog entirely by setting these variables in your distribution
 configuration file::
 
@@ -85,5 +109,5 @@
    VIRTUAL-RUNTIME_base-utils-syslog = ""
 
 Doing so will prevent ``rsyslog`` / ``busybox-syslog`` from being pulled in by
-default, leaving only ``journald``.
+default, leaving only ``systemd-journald``.
 
diff --git a/poky/documentation/dev-manual/packages.rst b/poky/documentation/dev-manual/packages.rst
index 90c52be..79f21d9 100644
--- a/poky/documentation/dev-manual/packages.rst
+++ b/poky/documentation/dev-manual/packages.rst
@@ -227,18 +227,6 @@
 it harder to forget to bump the variable when you make changes to the
 recipe in future.
 
-If you are sharing a common ``.inc`` file with multiple recipes, you can
-also use the :term:`INC_PR` variable to ensure that the recipes sharing the
-``.inc`` file are rebuilt when the ``.inc`` file itself is changed. The
-``.inc`` file must set :term:`INC_PR` (initially to "r0"), and all recipes
-referring to it should set :term:`PR` to "${INC_PR}.0" initially,
-incrementing the last number when the recipe is changed. If the ``.inc``
-file is changed then its :term:`INC_PR` should be incremented.
-
-When upgrading the version of a binary package, assuming the :term:`PV`
-changes, the :term:`PR` variable should be reset to "r0" (or "${INC_PR}.0"
-if you are using :term:`INC_PR`).
-
 Usually, version increases occur only to binary packages. However, if
 for some reason :term:`PV` changes but does not increase, you can increase
 the :term:`PE` variable (Package Epoch). The :term:`PE` variable defaults to
diff --git a/poky/documentation/dev-manual/sbom.rst b/poky/documentation/dev-manual/sbom.rst
index 448c071..f51d08f 100644
--- a/poky/documentation/dev-manual/sbom.rst
+++ b/poky/documentation/dev-manual/sbom.rst
@@ -63,6 +63,9 @@
    (when :term:`SPDX_ARCHIVE_SOURCES` is set). Those are needed to fulfill
    "source code access" license requirements.
 
+See also the :term:`SPDX_CUSTOM_ANNOTATION_VARS` variable which allows
+to associate custom notes to a recipe.
+
 See the `tools page <https://spdx.dev/resources/tools/>`__ on the :term:`SPDX`
 project website for a list of tools to consume and transform the :term:`SPDX`
 data generated by the OpenEmbedded build system.
diff --git a/poky/documentation/dev-manual/securing-images.rst b/poky/documentation/dev-manual/securing-images.rst
index 6a9223c..e5791d3 100644
--- a/poky/documentation/dev-manual/securing-images.rst
+++ b/poky/documentation/dev-manual/securing-images.rst
@@ -68,7 +68,7 @@
 
 -  Regularly update your version of Poky and OE-Core from their upstream
    developers, e.g. to apply updates and security fixes from stable
-   and LTS branches.
+   and :term:`LTS` branches.
 
 -  Ensure you remove or disable debugging functionality before producing
    the final image. For information on how to do this, see the
diff --git a/poky/documentation/dev-manual/start.rst b/poky/documentation/dev-manual/start.rst
index 498734a..4881481 100644
--- a/poky/documentation/dev-manual/start.rst
+++ b/poky/documentation/dev-manual/start.rst
@@ -302,7 +302,7 @@
    as these releases are frequently tested against the Yocto Project and
    officially supported. For a list of the distributions under
    validation and their status, see the ":ref:`Supported Linux
-   Distributions <detailed-supported-distros>`"
+   Distributions <system-requirements-supported-distros>`"
    section in the Yocto Project Reference Manual and the wiki page at
    :yocto_wiki:`Distribution Support </Distribution_Support>`.
 
@@ -613,44 +613,23 @@
       For information on cloning a repository, see the
       ":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`" section.
 
-Accessing Index of Releases
----------------------------
+Accessing Source Archives
+-------------------------
 
-Yocto Project maintains an Index of Releases area that contains related
-files that contribute to the Yocto Project. Rather than Git
-repositories, these files are tarballs that represent snapshots in time
-of a given component.
+The Yocto Project also provides source archives of its releases, which
+are available on :yocto_dl:`/releases/yocto/`. Then, choose the subdirectory
+containing the release you wish to use, for example
+:yocto_dl:`yocto-&DISTRO; </releases/yocto/yocto-&DISTRO;/>`.
+
+You will find there source archives of individual components (if you wish
+to use them individually), and of the corresponding Poky release bundling
+a selection of these components. 
 
 .. note::
 
    The recommended method for accessing Yocto Project components is to
    use Git to clone the upstream repository and work from within that
-   locally cloned repository. However, this section documents how to
-   use a tarball snapshot of any given component.
-
-Follow these steps to locate and download a particular tarball:
-
-#. *Access the Index of Releases:* Open a browser and go to
-   :yocto_dl:`Index of Releases </releases>`. The
-   list represents released components (e.g. ``bitbake``, ``sato``, and
-   so on).
-
-   .. note::
-
-      The ``yocto`` directory contains the full array of released Poky
-      tarballs. The ``poky`` directory in the Index of Releases was
-      historically used for very early releases and exists now only for
-      retroactive completeness.
-
-#. *Select a Component:* Click on any released component in which you
-   are interested (e.g. ``yocto``).
-
-#. *Find the Tarball:* Drill down to find the associated tarball. For
-   example, click on ``yocto-&DISTRO;`` to view files associated with the
-   Yocto Project &DISTRO; release.
-
-#. *Download the Tarball:* Click the tarball to download and save a
-   snapshot of the given component.
+   locally cloned repository.
 
 Using the Downloads Page
 ------------------------
@@ -659,7 +638,7 @@
 from which you can locate and download tarballs of any Yocto Project
 release. Rather than Git repositories, these files represent snapshot
 tarballs similar to the tarballs located in the Index of Releases
-described in the ":ref:`dev-manual/start:accessing index of releases`" section.
+described in the ":ref:`dev-manual/start:accessing source archives`" section.
 
 #. *Go to the Yocto Project Website:* Open The
    :yocto_home:`Yocto Project Website <>` in your browser.
diff --git a/poky/documentation/dev-manual/wic.rst b/poky/documentation/dev-manual/wic.rst
index a8d2f46..2a4408c 100644
--- a/poky/documentation/dev-manual/wic.rst
+++ b/poky/documentation/dev-manual/wic.rst
@@ -72,7 +72,7 @@
 system needs to meet the following requirements:
 
 -  The Linux distribution on your development host must support the
-   Yocto Project. See the ":ref:`detailed-supported-distros`"
+   Yocto Project. See the ":ref:`system-requirements-supported-distros`"
    section in the Yocto Project Reference Manual for the list of
    distributions that support the Yocto Project.
 
diff --git a/poky/documentation/kernel-dev/common.rst b/poky/documentation/kernel-dev/common.rst
index e0a8557..1d85202 100644
--- a/poky/documentation/kernel-dev/common.rst
+++ b/poky/documentation/kernel-dev/common.rst
@@ -1083,7 +1083,7 @@
 .. note::
 
    The OpenEmbedded build system recognizes this kernel as ``linux-yocto``
-   through Metadata (e.g. :term:`PREFERRED_VERSION`\ ``_linux-yocto ?= "12.4%"``).
+   through Metadata (e.g. :term:`PREFERRED_VERSION`\ ``_linux-yocto ?= "4.12%"``).
 
 Once ``menuconfig`` launches, use the interface to navigate through the
 selections to find the configuration settings in which you are
@@ -1384,7 +1384,7 @@
 ``.config`` file against the input files. During the check, the task
 produces warning messages for the following issues:
 
--  Requested options that did not make the final ``.config`` file.
+-  Requested options that did not make it into the final ``.config`` file.
 
 -  Configuration items that appear twice in the same configuration
    fragment.
diff --git a/poky/documentation/migration-guides/migration-4.2.rst b/poky/documentation/migration-guides/migration-4.2.rst
index 1339411..1db6fbc 100644
--- a/poky/documentation/migration-guides/migration-4.2.rst
+++ b/poky/documentation/migration-guides/migration-4.2.rst
@@ -9,27 +9,109 @@
 This section provides migration information for moving to the Yocto
 Project 4.2 Release (codename "mickledore") from the prior release.
 
+.. _migration-4.2-supported-distributions:
+
+Supported distributions
+~~~~~~~~~~~~~~~~~~~~~~~
+
+This release supports running BitBake on new GNU/Linux distributions:
+
+-  Fedora 36 and 37
+-  AlmaLinux 8.7 and 9.1
+-  OpenSuse 15.4
+
+On the other hand, some earlier distributions are no longer supported:
+
+-  Debian 10.x
+-  Fedora 34 and 35
+-  AlmaLinux 8.5
+
+See :ref:`all supported distributions <system-requirements-supported-distros>`.
+
 .. _migration-4.2-python-3.8:
 
 Python 3.8 is now the minimum required Python version version
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-BitBake and OpenEmbedded-Core are now relying on Python 3.8,
+BitBake and OpenEmbedded-Core now require Python 3.8 or newer,
 making it a requirement to use a distribution providing at least this
-version, or to use :term:`buildtools`.
+version, or to install a :term:`buildtools` tarball.
 
-.. _migration-4.2-qa-checks:
+.. _migration-4.2-gcc-8.0:
 
-QA check changes
-~~~~~~~~~~~~~~~~
+gcc 8.0 is now the minimum required GNU C compiler version
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-.. _migration-4.2-misc-changes:
+This version, released in 2018, is a minimum requirement
+to build the ``mesa-native`` recipe and as the latter is in the
+default dependency chain when building QEMU this has now been
+made a requirement for all builds.
 
-Miscellaneous changes
-~~~~~~~~~~~~~~~~~~~~~
+In the event that your host distribution does not provide this
+or a newer version of gcc, you can install a
+:term:`buildtools-extended` tarball.
 
--  The ``OEBasic`` signature handler (see :term:`BB_SIGNATURE_HANDLER`) has been
-   removed.
+.. _migration-4.2-new-nvd-api:
+
+Fetching the NVD vulnerability database through the 2.0 API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This new version adds a new fetcher for the NVD database using the 2.0 API,
+as the 1.0 API will be retired in 2023.
+
+The implementation changes as little as possible, keeping the current
+database format (but using a different database file for the transition
+period), with a notable exception of not using the META table.
+
+Here are minor changes that you may notice:
+
+-  The database starts in 1999 instead of 2002
+-  The complete fetch is longer (30 minutes typically)
+
+.. _migration-4.2-rust-crate-checksums:
+
+Rust: mandatory checksums for crates
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This release now supports checksums for Rust crates and makes
+them mandatory for each crate in a recipe. See :yocto_git:`python3_bcrypt recipe changes
+</poky/commit/?h=mickledore&id=0dcb5ab3462fdaaf1646b05a00c7150eea711a9a>`
+for example.
+
+The ``cargo-update-recipe-crates`` utility
+:yocto_git:`has been extended </poky/commit/?h=mickledore&id=eef7fbea2c5bf59369390be4d5efa915591b7b22>`
+to include such checksums. So, in case you need to add the list of checksums
+to a recipe just inheriting the :ref:`ref-classes-cargo` class so far, you can
+follow these steps:
+
+#.  Make the recipe inherit :ref:`ref-classes-cargo-update-recipe-crates`
+#.  Remove all ``crate://`` lines from the recipe
+#.  Create an empty ``${BPN}-crates.inc`` file and make your recipe require it
+#.  Execute ``bitbake -c update_crates your_recipe``
+#.  Copy and paste the output of BitBake about the missing checksums into the
+    ``${BPN}-crates.inc`` file.
+
+
+.. _migration-4.2-addpylib:
+
+Python library code extensions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+BitBake in this release now supports a new ``addpylib`` directive to enable
+Python libraries within layers.
+
+This directive should be added to your layer configuration
+as in the below example from ``meta/conf/layer.conf``::
+
+   addpylib ${LAYERDIR}/lib oe
+
+Layers currently adding a lib directory to extend Python library code should now
+use this directive as :term:`BBPATH` is not going to be added automatically by
+OE-Core in future. Note that the directives are immediate operations, so it does
+make modules available for use sooner than the current BBPATH-based approach.
+
+For more information, see :ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`.
+
 
 .. _migration-4.2-removed-variables:
 
@@ -38,7 +120,11 @@
 
 The following variables have been removed:
 
--  ``SERIAL_CONSOLE``, deprecated since version 2.6, replaced by :term:``SERIAL_CONSOLES``.
+-  ``SERIAL_CONSOLE``, deprecated since version 2.6, replaced by :term:`SERIAL_CONSOLES`.
+-  ``PACKAGEBUILDPKGD``, a mostly internal variable in the ref:`ref-classes-package`
+   class was rarely used to customise packaging. If you were using this in your custom
+   recipes or bbappends, you will need to switch to using :term:`PACKAGE_PREPROCESS_FUNCS`
+   or :term:`PACKAGESPLITFUNCS` instead.
 
 .. _migration-4.2-removed-recipes:
 
@@ -47,3 +133,144 @@
 
 The following recipes have been removed in this release:
 
+-  ``python3-picobuild``: after switching to ``python3-build``
+-  ``python3-strict-rfc3339``: unmaintained and not needed by anything in
+   :oe_git:`openembedded-core </openembedded-core>`
+   or :oe_git:`meta-openembedded </meta-openembedded>`.
+-  ``linux-yocto``: removed version 5.19 recipes (6.1 and 5.15 still provided)
+
+
+.. _migration-4.2-removed-classes:
+
+Removed classes
+~~~~~~~~~~~~~~~
+
+The following classes have been removed in this release:
+
+-  ``rust-bin``: no longer used
+-  ``package_tar``: could not be used for actual packaging, and thus not particularly useful.
+
+
+LAYERSERIES_COMPAT for custom layers and devtool workspace
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Some layer maintainers have been setting :term:`LAYERSERIES_COMPAT` in their
+layer's ``conf/layer.conf`` to the value of ``LAYERSERIES_CORENAMES`` to
+effectively bypass the compatibility check - this is no longer permitted.
+Layer maintainers should set :term:`LAYERSERIES_COMPAT` appropriately to
+help users understand the compatibility status of the layer.
+
+Additionally, the :term:`LAYERSERIES_COMPAT` value for the devtool workspace
+layer is now set at the time of creation, thus if you upgrade with the
+workspace layer enabled and you wish to retain it, you will need to manually
+update the :term:`LAYERSERIES_COMPAT` value in ``workspace/conf/layer.conf``
+(or remove the path from :term:`BBLAYERS` in ``conf/bblayers.conf`` and
+delete/move the ``workspace`` directory out of the way if you no longer
+need it).
+
+
+.. _migration-4.2-runqemu-slirp:
+
+runqemu now limits slirp host port forwarding to localhost
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+With default slirp port forwarding configuration in runqemu, qemu
+previously listened on TCP ports 2222 and 2323 on all IP addresses
+available on the build host. Most use cases with runqemu only need
+it for localhost and it is not safe to run qemu images with root
+login without password enabled and listening on all available,
+possibly Internet reachable network interfaces. Thus, in this
+release we limit qemu port forwarding to localhost (127.0.0.1).
+
+However, if you need the qemu machine to be reachable from the
+network, then it can be enabled via ``conf/local.conf`` or machine
+config variable ``QB_SLIRP_OPT``::
+
+   QB_SLIRP_OPT = "-netdev user,id=net0,hostfwd=tcp::2222-:22"
+
+
+.. _migration-4.2-patch-qa:
+
+Patch QA checks
+~~~~~~~~~~~~~~~
+
+The QA checks for patch fuzz and Upstream-Status have been reworked
+slightly in this release. The Upstream-Status checking is now configurable
+from :term:`WARN_QA` / :term:`ERROR_QA` (``patch-status-core`` for the
+core layer, and ``patch-status-noncore`` for other layers).
+
+The ``patch-fuzz`` and ``patch-status-core`` checks are now in the default
+value of :term:`ERROR_QA` so that they will cause the build to fail
+if triggered. If you prefer to avoid this you will need to adjust the value
+of :term:`ERROR_QA` in your configuration as desired.
+
+
+.. _migration-4.2-mesa:
+
+Native/nativesdk mesa usage and graphics drivers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This release includes mesa 23.0, and with that mesa release it is not longer
+possible to use drivers from the host system, as mesa upstream has added strict
+checks for matching builds between drivers and libraries that load them.
+
+This is particularly relevant when running QEMU built within the build
+system. A check has been added to runqemu so that there is a helpful error
+when there is no native/nativesdk opengl/virgl support available.
+
+To support this, a number of drivers have been enabled when building ``mesa-native``.
+The one major dependency pulled in by this change is ``llvm-native`` which will
+add a few minutes to the build on a modern machine. If this is undesirable, you
+can set the value of :term:`DISTRO_FEATURES_NATIVE` in your configuration such
+that ``opengl`` is excluded.
+
+
+.. _migration-4.2-misc-changes:
+
+Miscellaneous changes
+~~~~~~~~~~~~~~~~~~~~~
+
+-  The :term:`IMAGE_NAME` variable is now set based on :term:`IMAGE_LINK_NAME`. This
+   means that if you are setting :term:`IMAGE_LINK_NAME` to "" to disable unversioned
+   image symlink creation, you also now need to set :term:`IMAGE_NAME` to still have
+   a reasonable value e.g.::
+
+      IMAGE_LINK_NAME = ""
+      IMAGE_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}"
+
+-  In ``/etc/os-release``, the ``VERSION_CODENAME`` field is now used instead of
+   ``DISTRO_CODENAME`` (though its value is still set from the :term:`DISTRO_CODENAME`
+   variable) for better conformance to standard os-release usage. If you have runtime
+   code reading this from ``/etc/os-release`` it may need to be updated.
+
+-  The kmod recipe now enables OpenSSL support by default in order to support module
+   signing. If you do not need this and wish to reclaim some space/avoid the dependency
+   you should set :term:`PACKAGECONFIG` in a kmod bbappend (or ``PACKAGECONFIG:pn-kmod``
+   at the configuration level) to exclude ``openssl``.
+
+-  The ``OEBasic`` signature handler (see :term:`BB_SIGNATURE_HANDLER`) has been
+   removed. It is unlikely that you would have selected to use this, but if you have
+   you will need to remove this setting.
+
+-  The :ref:`ref-classes-package` class now checks if package names conflict via
+   ``PKG:${PN}`` override during ``do_package``. If you receive the associated error
+   you will need to address the :term:`PKG` usage so that the conflict is resolved.
+
+-  openssh no longer uses :term:`RRECOMMENDS` to pull in ``rng-tools``, since rngd
+   is no longer needed as of Linux kernel 5.6. If you still need ``rng-tools``
+   installed for other reasons, you should add ``rng-tools`` explicitly to your
+   image. If you additionally need rngd to be started as a service you will also
+   need to add the ``rng-tools-service`` package as that has been split out.
+
+-  The cups recipe no longer builds with the web interface enabled, saving ~1.8M of
+   space in the final image. If you wish to enable it, you should set
+   :term:`PACKAGECONFIG` in a cups bbappend (or ``PACKAGECONFIG:pn-cups`` at the
+   configuration level) to include ``webif``.
+
+-  The :ref:`ref-classes-scons` class now passes a ``MAXLINELENGTH`` argument to
+   scons in order to fix an issue with scons and command line lengths when ccache is
+   enabled. However, some recipes may be using older scons versions which don't support
+   this argument. If that is the case you can set the following in the recipe in order
+   to disable this::
+
+      SCONS_MAXLINELENGTH = ""
diff --git a/poky/documentation/migration-guides/release-4.0.rst b/poky/documentation/migration-guides/release-4.0.rst
index 2294265..1fc74a0 100644
--- a/poky/documentation/migration-guides/release-4.0.rst
+++ b/poky/documentation/migration-guides/release-4.0.rst
@@ -15,3 +15,4 @@
    release-notes-4.0.6
    release-notes-4.0.7
    release-notes-4.0.8
+   release-notes-4.0.9
diff --git a/poky/documentation/migration-guides/release-notes-4.0.1.rst b/poky/documentation/migration-guides/release-notes-4.0.1.rst
index c46142a..5529f71 100644
--- a/poky/documentation/migration-guides/release-notes-4.0.1.rst
+++ b/poky/documentation/migration-guides/release-notes-4.0.1.rst
@@ -86,7 +86,7 @@
 -  migration-3.4: add missing entry on :term:`EXTRA_USERS_PARAMS`
 -  migration-guides: add release notes for 4.0
 -  migration-guides: complete migration guide for 4.0
--  migration-guides: release-notes-4.0: mention LTS release
+-  migration-guides: release-notes-4.0: mention :term:`LTS` release
 -  migration-guides: release-notes-4.0: update 'Repositories / Downloads' section
 -  migration-guides: stop including documents with ".. include"
 -  musl: Fix build when usrmerge distro feature is enabled
diff --git a/poky/documentation/migration-guides/release-notes-4.0.9.rst b/poky/documentation/migration-guides/release-notes-4.0.9.rst
new file mode 100644
index 0000000..7c35b85
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.0.9.rst
@@ -0,0 +1,249 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for Yocto-4.0.9 (Kirkstone)
+-----------------------------------------
+
+Security Fixes in Yocto-4.0.9
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  binutils: Fix :cve:`2023-22608`
+-  curl: Fix :cve:`2023-23914`, :cve:`2023-23915` and :cve:`2023-23916`
+-  epiphany: Fix :cve:`2023-26081`
+-  git: Ignore :cve:`2023-22743`
+-  glibc: Fix  :cve:`2023-0687`
+-  gnutls: Fix :cve:`2023-0361`
+-  go: Fix :cve:`2022-2879`, :cve:`2022-41720` and :cve:`2022-41723`
+-  harfbuzz: Fix :cve:`2023-25193`
+-  less: Fix :cve:`2022-46663`
+-  libmicrohttpd: Fix :cve:`2023-27371`
+-  libsdl2: Fix :cve:`2022-4743`
+-  openssl: Fix :cve:`2022-3996`, :cve:`2023-0464`, :cve:`2023-0465` and :cve:`2023-0466`
+-  pkgconf: Fix :cve:`2023-24056`
+-  python3: Fix :cve:`2023-24329`
+-  shadow: Ignore :cve:`2016-15024`
+-  systemd: Fix :cve:`2022-4415`
+-  tiff: Fix :cve:`2023-0800`, :cve:`2023-0801`, :cve:`2023-0802`, :cve:`2023-0803` and :cve:`2023-0804`
+-  vim: Fix :cve:`2023-0433`, :cve:`2023-0512`, :cve:`2023-1127`, :cve:`2023-1170`, :cve:`2023-1175`, :cve:`2023-1264` and :cve:`2023-1355`
+-  xserver-xorg: Fix :cve:`2023-0494`
+-  xwayland: Fix :cve:`2023-0494`
+
+
+Fixes in Yocto-4.0.9
+~~~~~~~~~~~~~~~~~~~~
+
+-  base-files: Drop localhost.localdomain from hosts file
+-  binutils: Fix nativesdk ld.so search
+-  bitbake: cookerdata: Drop dubious exception handling code
+-  bitbake: cookerdata: Improve early exception handling
+-  bitbake: cookerdata: Remove incorrect SystemExit usage
+-  bitbake: fetch/git: Fix local clone url to make it work with repo
+-  bitbake: utils: Allow to_boolean to support int values
+-  bmap-tools: switch to main branch
+-  buildtools-tarball: Handle spaces within user $PATH
+-  busybox: Fix depmod patch
+-  cracklib: update github branch to 'main'
+-  cups: add/fix web interface packaging
+-  cups: check PACKAGECONFIG for pam feature
+-  cups: use BUILDROOT instead of DESTDIR
+-  curl: fix dependencies when building with ldap/ldaps
+-  cve-check: Fix false negative version issue
+-  dbus: upgrade to 1.14.6
+-  devtool/upgrade: do not delete the workspace/recipes directory
+-  dhcpcd: Fix install conflict when enable multilib.
+-  dhcpcd: fix dhcpcd start failure on qemuppc64
+-  gcc-shared-source: do not use ${S}/.. in deploy_source_date_epoch
+-  glibc: Add missing binutils dependency
+-  image_types: fix multiubi var init
+-  iso-codes: upgrade to  4.13.0
+-  json-c: Add ptest for json-c
+-  kernel-yocto: fix kernel-meta data detection
+-  lib/buildstats: handle tasks that never finished
+-  lib/resulttool: fix typo breaking resulttool log --ptest
+-  libjpeg-turbo: upgrade to 2.1.5.1
+-  libmicrohttpd: upgrade to 0.9.76
+-  libseccomp: fix for the ptest result format
+-  libssh2: Clean up ptest patch/coverage
+-  linux-firmware: add yamato fw files to qcom-adreno-a2xx package
+-  linux-firmware: properly set license for all Qualcomm firmware
+-  linux-firmware: upgrade to 20230210
+-  linux-yocto-rt/5.15: update to -rt59
+-  linux-yocto/5.10: upgrade to v5.10.175
+-  linux-yocto/5.15: upgrade to v5.15.103
+-  linux: inherit pkgconfig in kernel.bbclass
+-  lttng-modules: fix for kernel 6.2+
+-  lttng-modules: upgrade to v2.13.9
+-  lua: Fix install conflict when enable multilib.
+-  mdadm: Fix raid0, 06wrmostly and 02lineargrow tests
+-  meson: Fix wrapper handling of implicit setup command
+-  migration-guides: add 4.0.8 release notes
+-  nghttp2: never build python bindings
+-  oeqa rtc.py: skip if read-only-rootfs
+-  oeqa ssh.py: fix hangs in run()
+-  oeqa/sdk: Improve Meson test
+-  oeqa/selftest/prservice: Improve debug output for failure
+-  oeqa/selftest/resulttooltests: fix minor typo
+-  openssl: upgrade to 3.0.8
+-  package.bbclase: Add check for /build in copydebugsources()
+-  patchelf: replace a rejected patch with an equivalent uninative.bbclass tweak
+-  poky.conf: bump version for 4.0.9
+-  populate_sdk_ext: Handle spaces within user $PATH
+-  pybootchartui: Fix python syntax issue
+-  python3-git: fix indent error
+-  python3-setuptools-rust-native: Add direct dependency of native python3 modules
+-  qemu: Revert "fix :cve:`2021-3507`" as not applicable for qemu 6.2
+-  rsync: Add missing prototypes to function declarations
+-  rsync: Turn on -pedantic-errors at the end of 'configure'
+-  runqemu: kill qemu if it hangs
+-  scripts/lib/buildstats: handle top-level build_stats not being complete
+-  selftest/recipetool: Stop test corrupting tinfoil class
+-  selftest/runtime_test/virgl: Disable for all Rocky Linux
+-  selftest: devtool: set BB_HASHSERVE_UPSTREAM when setting SSTATE_MIRROR
+-  sstatesig: Improve output hash calculation
+-  staging/multilib: Fix manifest corruption
+-  staging: Separate out different multiconfig manifests
+-  sudo: update 1.9.12p2 -> 1.9.13p3
+-  systemd.bbclass: Add /usr/lib/systemd to searchpaths as well
+-  systemd: add group sgx to udev package
+-  systemd: fix wrong nobody-group assignment
+-  timezone: use 'tz' subdir instead of ${WORKDIR} directly
+-  toolchain-scripts: Handle spaces within user $PATH
+-  tzcode-native: fix build with gcc-13 on host
+-  tzdata: use separate B instead of WORKDIR for zic output
+-  uninative: upgrade to 3.9 to include libgcc and glibc 2.37
+-  vala: Fix install conflict when enable multilib.
+-  vim: add missing pkgconfig inherit
+-  vim: set modified-by to the recipe MAINTAINER
+-  vim: upgrade to 9.0.1429
+-  wic: Fix usage of fstype=none in wic
+-  wireless-regdb: upgrade to 2023.02.13
+-  xserver-xorg: upgrade to 21.1.7
+-  xwayland: upgrade to 22.1.8
+
+
+Known Issues in Yocto-4.0.9
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- N/A
+
+
+Contributors to Yocto-4.0.9
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Alexander Kanavin
+-  Alexis Lothoré
+-  Bruce Ashfield
+-  Changqing Li
+-  Chee Yang Lee
+-  Dmitry Baryshkov
+-  Federico Pellegrin
+-  Geoffrey GIRY
+-  Hitendra Prajapati
+-  Hongxu Jia
+-  Joe Slater
+-  Kai Kang
+-  Kenfe-Mickael Laventure
+-  Khem Raj
+-  Martin Jansa
+-  Mateusz Marciniec
+-  Michael Halstead
+-  Michael Opdenacker
+-  Mikko Rapeli
+-  Ming Liu
+-  Mingli Yu
+-  Narpat Mali
+-  Pavel Zhukov
+-  Pawan Badganchi
+-  Peter Marko
+-  Piotr Łobacz
+-  Poonam Jadhav
+-  Randy MacLeod
+-  Richard Purdie
+-  Robert Yang
+-  Romuald Jeanne
+-  Ross Burton
+-  Sakib Sajal
+-  Saul Wold
+-  Shubham Kulkarni
+-  Siddharth Doshi
+-  Simone Weiss
+-  Steve Sakoman
+-  Tim Orling
+-  Tom Hochstein
+-  Trevor Woerner
+-  Ulrich Ölmann
+-  Vivek Kumbhar
+-  Wang Mingyu
+-  Xiangyu Chen
+-  Yash Shinde
+
+
+Repositories / Downloads for Yocto-4.0.9
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: :yocto_git:`/poky`
+-  Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.9 </poky/log/?h=yocto-4.0.9>`
+-  Git Revision: :yocto_git:`09def309f91929f47c6cce386016ccb777bd2cfc </poky/commit/?id=09def309f91929f47c6cce386016ccb777bd2cfc>`
+-  Release Artefact: poky-09def309f91929f47c6cce386016ccb777bd2cfc
+-  sha: 5c7ce209c8a6b37ec2898e5ca21858234d91999c11fa862880ba98e8bde62f63
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.9/poky-09def309f91929f47c6cce386016ccb777bd2cfc.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.9/poky-09def309f91929f47c6cce386016ccb777bd2cfc.tar.bz2
+
+openembedded-core
+
+-  Repository Location: :oe_git:`/openembedded-core`
+-  Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
+-  Tag:  :oe_git:`yocto-4.0.9 </openembedded-core/log/?h=yocto-4.0.9>`
+-  Git Revision: :oe_git:`ff4b57ffff903a93b710284c7c7f916ddd74712f </openembedded-core/commit/?id=ff4b57ffff903a93b710284c7c7f916ddd74712f>`
+-  Release Artefact: oecore-ff4b57ffff903a93b710284c7c7f916ddd74712f
+-  sha: 726778ffc291136db1704316b196de979f68df9f96476b785e1791957fbb66b3
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.9/oecore-ff4b57ffff903a93b710284c7c7f916ddd74712f.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.9/oecore-ff4b57ffff903a93b710284c7c7f916ddd74712f.tar.bz2
+
+meta-mingw
+
+-  Repository Location: :yocto_git:`/meta-mingw`
+-  Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.9 </meta-mingw/log/?h=yocto-4.0.9>`
+-  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.9/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.9/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
+
+meta-gplv2
+
+-  Repository Location: :yocto_git:`/meta-gplv2`
+-  Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.9 </meta-gplv2/log/?h=yocto-4.0.9>`
+-  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.9/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.9/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+
+bitbake
+
+-  Repository Location: :oe_git:`/bitbake`
+-  Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
+-  Tag:  :oe_git:`yocto-4.0.9 </bitbake/log/?h=yocto-4.0.9>`
+-  Git Revision: :oe_git:`2802adb572eb73a3eb2725a74a9bbdaafc543fa7 </bitbake/commit/?id=2802adb572eb73a3eb2725a74a9bbdaafc543fa7>`
+-  Release Artefact: bitbake-2802adb572eb73a3eb2725a74a9bbdaafc543fa7
+-  sha: 5c6e713b5e26b3835c0773095c7a1bc1f8affa28316b33597220ed86f1f1b643
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.9/bitbake-2802adb572eb73a3eb2725a74a9bbdaafc543fa7.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.9/bitbake-2802adb572eb73a3eb2725a74a9bbdaafc543fa7.tar.bz2
+
+yocto-docs
+
+-  Repository Location: :yocto_git:`/yocto-docs`
+-  Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
+-  Tag: :yocto_git:`yocto-4.0.9 </yocto-docs/log/?h=yocto-4.0.9>`
+-  Git Revision: :yocto_git:`86d0b38a97941ad52b1af220c7b801a399d50e93 </yocto-docs/commit/?id=86d0b38a97941ad52b1af220c7b801a399d50e93>`
+
diff --git a/poky/documentation/migration-guides/release-notes-4.1.rst b/poky/documentation/migration-guides/release-notes-4.1.rst
index cd48e20..a0d5196 100644
--- a/poky/documentation/migration-guides/release-notes-4.1.rst
+++ b/poky/documentation/migration-guides/release-notes-4.1.rst
@@ -238,20 +238,20 @@
 - grub2: :cve:`2021-3695`, :cve:`2021-3696`, :cve:`2021-3697`, :cve:`2022-28733`, :cve:`2022-28734`, :cve:`2022-28735`
 - inetutils: :cve:`2022-39028`
 - libtirpc: :cve:`2021-46828`
-- libxml2: :cve:`2016-3709 (ignored)`
-- libxslt: :cve:`2022-29824 (not applicable)`
+- libxml2: :cve:`2016-3709` (ignored)
+- libxslt: :cve:`2022-29824` (not applicable)
 - linux-yocto/5.15: :cve:`2022-28796`
 - logrotate: :cve:`2022-1348`
 - lua: :cve:`2022-33099`
-- nasm: :cve:`2020-18974 (ignored)`
+- nasm: :cve:`2020-18974` (ignored)
 - ncurses: :cve:`2022-29458`
 - openssl: :cve:`2022-1292`, :cve:`2022-1343`, :cve:`2022-1434`, :cve:`2022-1473`, :cve:`2022-2068`, :cve:`2022-2274`, :cve:`2022-2097`
-- python3: :cve:`2015-20107 (ignored)`
-- qemu: :cve:`2021-20255 (ignored)`, :cve:`2019-12067 (ignored)`, :cve:`2021-3507`, :cve:`2022-0216`, :cve:`2022-2962`, :cve:`2022-35414`
+- python3: :cve:`2015-20107` (ignored)
+- qemu: :cve:`2021-20255` (ignored), :cve:`2019-12067` (ignored), :cve:`2021-3507`, :cve:`2022-0216`, :cve:`2022-2962`, :cve:`2022-35414`
 - rpm: :cve:`2021-35937`, :cve:`2021-35938`, :cve:`2021-35939`
 - rsync: :cve:`2022-29154`
 - subversion: :cve:`2021-28544`, :cve:`2022-24070`
-- tiff: :cve:`2022-1210 (not applicable)`, :cve:`2022-1622`, :cve:`2022-1623 (invalid)`, :cve:`2022-2056`, :cve:`2022-2057`, :cve:`2022-2058`, :cve:`2022-2953`, :cve:`2022-34526`
+- tiff: :cve:`2022-1210` (not applicable), :cve:`2022-1622`, :cve:`2022-1623` (invalid), :cve:`2022-2056`, :cve:`2022-2057`, :cve:`2022-2058`, :cve:`2022-2953`, :cve:`2022-34526`
 - unzip: :cve:`2022-0529`, :cve:`2022-0530`
 - vim: :cve:`2022-1381`, :cve:`2022-1420`, :cve:`2022-1621`, :cve:`2022-1629`, :cve:`2022-1674`, :cve:`2022-1733`, :cve:`2022-1735`, :cve:`2022-1769`, :cve:`2022-1771`, :cve:`2022-1785`, :cve:`2022-1796`, :cve:`2022-1927`, :cve:`2022-1942`, :cve:`2022-2257`, :cve:`2022-2264`, :cve:`2022-2284`, :cve:`2022-2285`, :cve:`2022-2286`, :cve:`2022-2287`, :cve:`2022-2816`, :cve:`2022-2817`, :cve:`2022-2819`, :cve:`2022-2845`, :cve:`2022-2849`, :cve:`2022-2862`, :cve:`2022-2874`, :cve:`2022-2889`, :cve:`2022-2980`, :cve:`2022-2946`, :cve:`2022-2982`, :cve:`2022-3099`, :cve:`2022-3134`, :cve:`2022-3234`, :cve:`2022-3278`
 - zlib: :cve:`2022-37434`
diff --git a/poky/documentation/migration-guides/release-notes-4.2.rst b/poky/documentation/migration-guides/release-notes-4.2.rst
index edafe37..30a4afe 100644
--- a/poky/documentation/migration-guides/release-notes-4.2.rst
+++ b/poky/documentation/migration-guides/release-notes-4.2.rst
@@ -6,23 +6,928 @@
 New Features / Enhancements in 4.2
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-- Python 3.8 is the minimum Python version required on the build host.
-  For host distributions that do not provide it, this is included as part of the
-  :term:`buildtools` tarball.
+-  Linux kernel 6.1, glibc 2.37 and ~350 other recipe upgrades
 
-- This release now supports a new ``addpylib`` directive to enable
-  Python libraries within layers.
+-  Python 3.8 is the minimum Python version required on the build host.
+   For host distributions that do not provide it, this is included as part of the
+   :term:`buildtools` tarball.
 
-  This directive should be added to your layer configuration,
-  as in the below example from ``meta/conf/layer.conf``::
+-  BitBake in this release now supports a new ``addpylib`` directive to enable
+   Python libraries within layers.
 
-     addpylib ${LAYERDIR}/lib oe
+   This directive should be added to your layer configuration
+   as in the below example from ``meta/conf/layer.conf``::
+
+      addpylib ${LAYERDIR}/lib oe
+
+-  BitBake has seen multiple internal changes that may impact
+   memory and disk usage as well as parsing time, in particular:
+
+   -  BitBake's Cooker server is now multithreaded.
+
+   -  BitBake's cache has been extended to include more hash
+      debugging data, but has also been optimized to :yocto_git:`compress
+      cache data <https://git.yoctoproject.org/poky/commit/?h=mickledore&id=7d010055e2af3294e17db862f42664ca689a9356>`.
+
+   -  BitBake's Cooker server :yocto_git:`can now be pinged
+      </poky/commit/?h=mickledore&id=26f255da09>`
+      from the UI.
 
 -  Architecture-specific enhancements:
 
+   -  This release adds initial support for the
+      :wikipedia:`LoongArch <Loongson#LoongArch>`
+      (``loongarch64``) architecture, though there is no testing for it yet.
+
+-  New variables:
+
+   -  :term:`VOLATILE_TMP_DIR` allows to specify
+      whether ``/tmp`` should be on persistent storage
+      or in RAM.
+
+   -  :term:`SPDX_CUSTOM_ANNOTATION_VARS` allows to add
+      specific comments to the :term:`SPDX` description of a recipe.
+
+-  Rust improvements:
+
+   -  This release adds Cargo support on the target, and includes
+      automated QA tests for this functionality.
+
+   -  It also supports checksums for Rust crates and makes
+      them mandatory for each crate in a recipe.
+
+   -  New :ref:`ref-classes-cargo-update-recipe-crates` class to
+      enable updating :term:`SRC_URI` crate lists from ``Cargo.lock``
+
+   -  Enabled building Rust for baremetal targets
+
+   -  You can now also easily select to build beta or nightly
+      versions of Rust with a new :term:`RUST_CHANNEL` variable
+      (use at own risk)
+
+   -  Support for local GitHub repos in :term:`SRC_URI` as
+      replacements for Cargo dependencies
+
+   -  Use built-in Rust targets for ``-native`` builds to save several
+      minutes building the Rust toolchain
+
+-  Python 3.8+ and GCC 8.0+ are now the minimum required versions on the build host
+
+-  BitBake in this release now supports a new ``addpylib`` directive to enable
+   Python libraries within layers. For more information,
+   see :ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`.
+
+-  BitBake has seen multiple internal changes that may improve
+   memory and disk usage as well as parsing time, in particular:
+
+   -  BitBake's Cooker server is now multithreaded.
+
+   -  Ctrl+C can now be used to interrupt some long-running operations
+      that previously ignored it.
+
+   -  BitBake's cache has been extended to include more hash
+      debugging data, but has also been optimized to :yocto_git:`compress
+      cache data <https://git.yoctoproject.org/poky/commit/?h=mickledore&id=7d010055e2af3294e17db862f42664ca689a9356>`.
+
+   -  BitBake's UI will now ping the server regularly to ensure
+      it is still alive.
+
+-  Architecture-specific enhancements:
+
+   -  This release adds initial support for the
+      :wikipedia:`LoongArch <Loongson#LoongArch>`
+      (``loongarch64``) architecture, though there is no testing for it yet.
+
+   -  New ``x86-64-v3`` tunes (AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE)
+
+   -  go: add support to build on ppc64le
+   -  rust: rustfmt now working and installed for riscv32
+   -  libpng: enable NEON for aarch64 to ensure consistency with arm32.
+   -  baremetal-helloworld: Enable x86 and x86-64 ports
+
 -  Kernel-related enhancements:
 
+   -  Added some support for building 6.2/6.3-rc kernels
+   -  linux-yocto-dev: mark as compatible with qemuarm64 and qemuarmv5
+   -  Add kernel specific OBJCOPY to help switching toolchains cleanly for kernel build between gcc and clang
+
+-  New core recipes:
+
+   - ``debugedit``
+   - ``gtk4`` (import from meta-gnome)
+   - ``gcr``: add recipe for gcr-4
+   - ``graphene`` (import from meta-oe)
+   - ``libc-test``
+   - ``libportal`` (import from meta-gnome)
+   - ``libslirp``
+   - ``libtest-fatal-perl``
+   - ``libtest-warnings-perl`` (import from meta-perl)
+   - ``libtry-tiny-perl``
+   - ``python3-build``
+   - ``python3-pyproject-hooks``
+   - ``python3-hatch-fancy-pypi-readme``
+   - ``python3-unittest-automake``
+
 -  QEMU/runqemu enhancements:
 
+   -  Set ``QB_SMP`` with ?= to make it easier to modify
+   -  Set ``QB_CPU`` with ?= to make it easier to modify (x86 configuration only)
+   -  New ``QB_NFSROOTFS_EXTRA_OPT`` to allow extra options to be appended to the NFS rootfs options in kernel boot args, e.g. ``"wsize=4096,rsize=4096"``
+   -  New ``QB_SETUP_CMD`` and ``QB_CLEANUP_CMD`` to enable running custom shell setup and cleanup commands before and after QEMU.
+   -  ``QB_DEFAULT_KERNEL`` now defaults to pick the bundled initramfs kernel image if the Linux kernel image is generated with :term:`INITRAMFS_IMAGE_BUNDLE` set to "1"
+   -  Split out the QEMU guest agent to its own ``qemu-guest-agent`` package
+   -  runqemu: new ``guestagent`` option to enable communication with the guest agent
+   -  runqemu: respect :term:`IMAGE_LINK_NAME` when searching for image
+
 -  Image-related enhancements:
 
+   -  Add 7-Zip support in image conversion types (``7zip``)
+   -  New :term:`IMAGE_MACHINE_SUFFIX` variable to allow easily removing machine name suffix from image file names
+
+-  wic Image Creator enhancements:
+
+   -  ``bootimg-efi.py``: add support for directly loading Linux kernel UEFI stub
+   -  ``bootimg-efi.py``: implement ``--include-path``
+   -  Allow usage of ``fstype=none`` to specify an unformatted partition
+   -  Implement repeatable disk identifiers based on :term:`SOURCE_DATE_EPOCH`
+
+-  FIT image related improvements:
+
+   -  FIT image signing support has been reworked to remove interdependencies and make it more easily extensible
+   -  Skip FDT section creation for applicable symlinks to avoid the same dtb being duplicated
+   -  New :term:`FIT_CONF_DEFAULT_DTB` variable to enable selecting default dtb when multiple dtbs exist
+
+-  SDK-related improvements:
+
+   -  Extended the following recipes to nativesdk:
+
+      - ``bc``
+      - ``gi-docgen``
+      - ``gperf``
+      - ``python3-iniconfig``
+      - ``python3-atomicwrites``
+      - ``python3-markdown``
+      - ``python3-smartypants``
+      - ``python3-typogrify``
+      - ``ruby``
+      - ``unifdef``
+
+   -  New :term:`SDK_ZIP_OPTIONS` variable to enable passing additional options to the zip command when preparing the SDK zip archive
+   -  New Rust SDK target packagegroup (``packagegroup-rust-sdk-target``)
+
+-  Testing:
+
+   -  The ptest images have changed structure in this release. The
+      underlying ``core-image-ptest`` recipe now uses :term:`BBCLASSEXTEND` to
+      create a variant for each ptest enabled recipe in OE-Core.
+
+      For example, this means that ``core-image-ptest-bzip2``,
+      ``core-image-ptest-lttng-tools`` and many more image targets now exist
+      and can be built/tested individually.
+
+      The ``core-image-ptest-all`` and ``core-image-ptest-fast`` targets are now
+      wrappers that target groups of individual images and means that the tests
+      can be executed in parallel during our automated testing. This also means
+      the dependencies are more accurately tested.
+
+   -  It is now possible to track regression changes between releases using
+      :oe_git:`yocto_testresults_query.py </openembedded-core/tree/scripts/yocto_testresults_query.py>`,
+      which is a thin wrapper over :oe_git:`resulttool
+      </openembedded-core/tree/scripts/resulttool>`. Here is an example
+      command, which allowed to spot and fix a regression in the
+      ``quilt`` ptest::
+
+         yocto_testresults_query.py regression-report 4.2_M1 4.2_M2
+
+      See this `blog post about regression detection
+      <https://bootlin.com/blog/continuous-integration-in-yocto-improving-the-regressions-detection/>`__.
+
+   -  This release adds support for parallel ptest execution with a ptest per image.
+      This takes ptest execution time from 3.5 hours to around 45 minutes on the autobuilder.
+
+   -  Basic Rust compile/run and cargo tests
+
+   -  New ``python3-unittest-automake`` recipe which provides modules for pytest
+      and unittest to adjust their output to automake-style for easier integration
+      with the ptest system.
+
+   -  ptest support added to ``bc``, ``cpio`` and ``gnutls``, and fixes made to
+      ptests in numerous other recipes.
+
+   -  ``ptest-runner`` now adds a non-root "ptest" user to run tests.
+
+   -  ``resulttool``: add a ``--list-ptest`` option to the log subcommand to list ptest names
+      in a results file
+
+   -  ``resulttool``: regression: add metadata filtering for oeselftest
+
+-  New :term:`PACKAGECONFIG` options in the following recipes:
+
+   - ``at-spi2-core``
+   - ``base-passwd``
+   - ``cronie``
+   - ``cups``
+   - ``cups``
+   - ``curl``
+   - ``file``
+   - ``gstreamer1.0-plugins-good``
+   - ``gtk+3``
+   - ``iproute2``
+   - ``libsdl2``
+   - ``libtiff``
+   - ``llvm``
+   - ``mesa``
+   - ``psmisc``
+   - ``qemu``
+   - ``sudo``
+   - ``systemd``
+   - ``tiff``
+   - ``util-linux``
+
+-  Extended the following recipes to native:
+
+   - ``iso-codes``
+   - ``libxkbcommon``
+   - ``p11-kit``
+   - ``python3-atomicwrites``
+   - ``python3-dbusmock``
+   - ``python3-iniconfig``
+   - ``xkeyboard-config``
+
+-  Utility script changes:
+
+   -  ``devtool``: ignore patch-fuzz errors when extracting source in order to enable fixing fuzz issues
+   -  ``oe-setup-layers``: make efficiently idempotent
+   -  ``oe-setup-layers``: print a note about submodules if present
+   -  New ``buildstats-summary`` script to show a summary of the buildstats data
+   -  :ref:`ref-classes-report-error` class: catch ``Nothing PROVIDES`` error
+   -  ``combo-layer``: add ``sync-revs`` command
+   -  ``convert-overrides``: allow command-line customizations
+
+-  bitbake-layers improvements:
+
+   -  ``layerindex-fetch``: checkout layer(s) branch when clone exists
+   -  ``create``: add ``-a``/``--add-layer option`` to add layer to ``bblayers.conf`` after creating layer
+   -  ``show-layers``: improve output layout
+
+-  Other BitBake improvements:
+
+   -  Inline Python snippets can now include dictionary expressions
+   -  Evaluate the value of export/unexport/network flags so that they can be reset to "0"
+   -  Make :term:`EXCLUDE_FROM_WORLD` boolean so that it can be reset to "0"
+   -  Support int values in ``bb.utils.to_boolean()`` in addition to strings
+   -  ``bitbake-getvar``: Add a ``quiet`` command line argument
+   -  Allow the ``@`` character in variable flag names
+   -  Python library code will now be included when calculating task hashes
+   -  ``fetch2/npmsw``: add more short forms for git operations
+   -  Display a warning when ``SRCREV = "${AUTOREV}"`` is set too late to be effective
+   -  Display all missing :term:`SRC_URI` checksums at once
+   -  Improve error message for a missing multiconfig
+   -  Switch to a new :term:`BB_CACHEDIR` variable for codeparser cache location
+   -  Mechanism introduced to reduce the codeparser cache unnecessarily growing in size
+
+-  Packaging changes:
+
+   -  ``rng-tools`` is no longer recommended by ``openssh``, and the ``rng-tools``
+      service files have been split out to their own package
+   -  ``linux-firmware``: split ``rtl8761`` and ``amdgpu`` firmware
+   -  ``linux-firmware``: add new firmware file to ``${PN}-qcom-adreno-a530``
+   -  ``iproute2``: separate ``routel`` and add Python dependency
+   -  ``xinetd``: move ``xconv.pl`` script to separate package
+   -  ``perf``: enable debug/source packaging
+
+-  Miscellaneous changes:
+
+   -  Supporting 64 bit dates on 32 bit platforms: several packages have been
+      updated to pass year 2038 tests, and a QA check for 32 bit time and file
+      offset functions has been added (default off)
+
+   -  Patch fuzz/Upstream-Status checking has been reworked:
+
+      -  Upstream-Status checking is now configurable from :term:`WARN_QA`/:term:`ERROR_QA` (``patch-status-core``)
+      -  Can now be enabled for non-core layers (``patch-status-noncore``)
+      -  ``patch-fuzz`` is now in :term:`ERROR_QA` by default, and actually stops the build
+
+   -  Many packages were updated to add large file support.
+
+   -  New :term:`VOLATILE_TMP_DIR` variable allows to specify whether ``/tmp``
+      should be on persistent storage or in RAM.
+
+   -  ``vulkan-loader``: allow headless targets to build the loader
+   -  ``dhcpcd``: fix to work with systemd
+   -  ``u-boot``: add /boot to :term:`SYSROOT_DIRS` to allow boot files to be used by other recipes
+   -  ``linux-firmware``: don't put the firmware into the sysroot
+   -  ``cups``: add :term:`PACKAGECONFIG` to control web interface and default to off
+   -  ``buildtools-tarball``: export certificates to python and curl
+   -  ``yocto-check-layer``: allow OE-Core to be tested
+   -  ``yocto-check-layer``: check for patch file upstream status
+   -  ``boost``: enable building ``Boost.URL`` library
+   -  ``native``: drop special variable handling
+   -  Poky: make it easier to set :term:`INIT_MANAGER` from local.conf
+   -  :ref:`ref-classes-create-spdx`: add support for custom annotations (:term:`SPDX_CUSTOM_ANNOTATION_VARS`)
+   -  :ref:`ref-classes-create-spdx`: report downloads as separate packages
+   -  :ref:`ref-classes-create-spdx`: remove the top-level image SPDX file and the JSON index file from :term:`DEPLOYDIR` to avoid confusion
+   -  ``os-release``: replace ``DISTRO_CODENAME`` with ``VERSION_CODENAME`` (still set from :term:`DISTRO_CODENAME`)
+   -  ``weston``: add kiosk shell
+   -  :ref:`ref-classes-overlayfs`: Allow unused mount points
+   -  ``sstatesig``: emit more helpful error message when not finding sstate manifest
+   -  :ref:`ref-classes-pypi`.bbclass: Set :term:`SRC_URI` downloadfilename with an optional prefix
+   -  ``poky-bleeding`` distro: update and rework
+   -  :ref:`package.bbclass <ref-classes-package>`: check if package names conflict via ``PKG:${PN}`` override in :ref:`do_package <ref-tasks-package>`
+   -  ``cve-update-nvd2-native``: new NVD CVE database fetcher using the 2.0 API
+   -  :ref:`ref-classes-mirrors` class: use shallow tarball for ``binutils-native``/``nativesdk-binutils``
+   -  ``meta/conf``: move default configuration templates into ``meta/conf/templates/default``
+   -  ``binutils``: enable ``--enable-new-dtags`` as per many Linux distributions
+   -  ``base-files``: drop ``localhost.localdomain`` from hosts file as per many Linux distributions
+   -  ``packagegroup-core-boot``: make ``init-ifupdown`` package a recommendation
+
+Known Issues in 4.2
+~~~~~~~~~~~~~~~~~~~
+
+Recipe License changes in 4.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following corrections have been made to the :term:`LICENSE` values set by recipes:
+
+- ``curl``: set :term:`LICENSE` appropriately to ``curl`` as it is a special derivative of the MIT/X license, not exactly that license.
+- ``libgit2``: added ``Zlib``, ``ISC``, ``LGPL-2.1-or-later`` and ``CC0-1.0`` to :term:`LICENSE` covering portions of the included code.
+- ``linux-firmware``: set package :term:`LICENSE` appropriately for all qcom packages
+
+Security Fixes in 4.2
+~~~~~~~~~~~~~~~~~~~~~
+
+- binutils: :cve:`2022-4285`, `CVE-2023-25586 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-25586>`__
+- curl: :cve:`2022-32221`, :cve:`2022-35260`, :cve:`2022-42915`, :cve:`2022-42916`
+- epiphany: :cve:`2023-26081`
+- expat: :cve:`2022-43680`
+- ffmpeg: :cve:`2022-3964`, :cve:`2022-3965`
+- git: :cve:`2022-39260`, :cve:`2022-41903`, :cve:`2022-23521`, :cve:`2022-41953` (ignored)
+- glibc: :cve:`2023-25139` (ignored)
+- go: :cve:`2023-24532`, :cve:`2023-24537`
+- grub2: :cve:`2022-2601`, :cve:`2022-3775`, `CVE-2022-28736 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-28736>`__
+- inetutils: :cve:`2019-0053`
+- less: :cve:`2022-46663`
+- libarchive: :cve:`2022-36227`
+- libinput: :cve:`2022-1215`
+- libpam: :cve:`2022-28321`
+- libpng: :cve:`2019-6129`
+- libx11: :cve:`2022-3554`
+- openssh: :cve:`2023-28531`
+- openssl: :cve:`2022-3358`, :cve:`2022-3786`, :cve:`2022-3602`, :cve:`2022-3996`, :cve:`2023-0286`, :cve:`2022-4304`, :cve:`2022-4203`, :cve:`2023-0215`, :cve:`2022-4450`, :cve:`2023-0216`, :cve:`2023-0217`, :cve:`2023-0401`, :cve:`2023-0464`
+- ppp: :cve:`2022-4603`
+- python3-cryptography{-vectors}: :cve:`2022-3602`, :cve:`2022-3786`, :cve:`2023-23931`
+- python3: `CVE-2022-37460 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37460>`__
+- qemu: :cve:`2022-3165`
+- rust: :cve:`2022-46176`
+- rxvt-unicode: :cve:`2022-4170`
+- screen: :cve:`2023-24626`
+- shadow: :cve:`2023-29383`, :cve:`2016-15024` (ignored)
+- sudo: :cve:`2022-43995`
+- systemd: :cve:`2022-4415` (ignored)
+- tar: :cve:`2022-48303`
+- tiff: :cve:`2022-3599`, :cve:`2022-3597`, :cve:`2022-3626`, :cve:`2022-3627`, :cve:`2022-3570`, :cve:`2022-3598`, :cve:`2022-3970`, :cve:`2022-48281`
+- vim: :cve:`2022-3352`, :cve:`2022-4141`, :cve:`2023-0049`, :cve:`2023-0051`, :cve:`2023-0054`, :cve:`2023-0288`, :cve:`2023-1127`, :cve:`2023-1170`, :cve:`2023-1175`, :cve:`2023-1127`, :cve:`2023-1170`, :cve:`2023-1175`, :cve:`2023-1264`, :cve:`2023-1355`, :cve:`2023-0433`, :cve:`2022-47024`, :cve:`2022-3705`
+- xdg-utils: :cve:`2022-4055`
+- xserver-xorg: :cve:`2022-3550`, :cve:`2022-3551`, :cve:`2023-1393`, :cve:`2023-0494`, :cve:`2022-3553` (ignored)
+
+Recipe Upgrades in 4.2
+~~~~~~~~~~~~~~~~~~~~~~
+
+- acpid: upgrade 2.0.33 -> 2.0.34
+- adwaita-icon-theme: update 42.0 -> 43
+- alsa-lib: upgrade 1.2.7.2 -> 1.2.8
+- alsa-ucm-conf: upgrade 1.2.7.2 -> 1.2.8
+- alsa-utils: upgrade 1.2.7 -> 1.2.8
+- apr: update 1.7.0 -> 1.7.2
+- apr-util: update 1.6.1 -> 1.6.3
+- argp-standalone: replace with a maintained fork
+- at-spi2-core: upgrade 2.44.1 -> 2.46.0
+- autoconf-archive: upgrade 2022.09.03 -> 2023.02.20
+- babeltrace: upgrade 1.5.8 -> 1.5.11
+- base-passwd: Update to 3.6.1
+- bash: update 5.1.16 -> 5.2.15
+- bind: upgrade 9.18.7 -> 9.18.12
+- binutils: Upgrade to 2.40 release
+- bluez: update 5.65 -> 5.66
+- boost-build-native: update 1.80.0 -> 1.81.0
+- boost: upgrade 1.80.0 -> 1.81.0
+- btrfs-tools: upgrade 5.19.1 -> 6.1.3
+- busybox: 1.35.0 -> 1.36.0
+- ccache: upgrade 4.6.3 -> 4.7.4
+- cmake: update 3.24.0 -> 3.25.2
+- cracklib: upgrade to v2.9.10
+- curl: upgrade 7.86.0 -> 8.0.1
+- dbus: upgrade 1.14.0 -> 1.14.6
+- diffoscope: upgrade 221 -> 236
+- diffstat: upgrade 1.64 -> 1.65
+- diffutils: update 3.8 -> 3.9
+- dos2unix: upgrade 7.4.3 -> 7.4.4
+- dpkg: update 1.21.9 -> 1.21.21
+- dropbear: upgrade 2022.82 -> 2022.83
+- dtc: upgrade 1.6.1 -> 1.7.0
+- e2fsprogs: upgrade 1.46.5 -> 1.47.0
+- ed: upgrade 1.18 -> 1.19
+- elfutils: update 0.187 -> 0.188
+- ell: upgrade 0.53 -> 0.56
+- enchant2: upgrade 2.3.3 -> 2.3.4
+- encodings: update 1.0.6 -> 1.0.7
+- epiphany: update 42.4 -> 43.1
+- ethtool: upgrade 5.19 -> 6.2
+- expat: upgrade to 2.5.0
+- ffmpeg: upgrade 5.1.1 -> 5.1.2
+- file: upgrade 5.43 -> 5.44
+- flac: update 1.4.0 -> 1.4.2
+- font-alias: update 1.0.4 -> 1.0.5
+- fontconfig: upgrade 2.14.0 -> 2.14.2
+- font-util: upgrade 1.3.3 -> 1.4.0
+- freetype: update 2.12.1 -> 2.13.0
+- gawk: update 5.1.1 -> 5.2.1
+- gcr3: update 3.40.0 -> 3.41.1
+- gcr: rename gcr -> gcr3
+- gdb: Upgrade to 13.1
+- gdk-pixbuf: upgrade 2.42.9 -> 2.42.10
+- gettext: update 0.21 -> 0.21.1
+- ghostscript: update 9.56.1 -> 10.0.0
+- gi-docgen: upgrade 2022.1 -> 2023.1
+- git: upgrade 2.37.3 -> 2.39.2
+- glib-2.0: update 2.72.3 -> 2.74.6
+- glibc: upgrade to 2.37 release + stable updates
+- glib-networking: update 2.72.2 -> 2.74.0
+- glslang: upgrade 1.3.236.0 -> 1.3.239.0
+- gnu-config: upgrade to latest revision
+- gnupg: upgrade 2.3.7 -> 2.4.0
+- gnutls: upgrade 3.7.7 -> 3.8.0
+- gobject-introspection: upgrade 1.72.0 -> 1.74.0
+- go: update 1.19 -> 1.20.1
+- grep: update 3.7 -> 3.10
+- gsettings-desktop-schemas: upgrade 42.0 -> 43.0
+- gstreamer1.0: upgrade 1.20.3 -> 1.22.0
+- gtk+3: upgrade 3.24.34 -> 3.24.36
+- gtk4: update 4.8.2 -> 4.10.0
+- harfbuzz: upgrade 5.1.0 -> 7.1.0
+- hdparm: update 9.64 -> 9.65
+- help2man: upgrade 1.49.2 -> 1.49.3
+- icu: update 71.1 -> 72-1
+- ifupdown: upgrade 0.8.37 -> 0.8.41
+- igt-gpu-tools: upgrade 1.26 -> 1.27.1
+- inetutils: upgrade 2.3 -> 2.4
+- init-system-helpers: upgrade 1.64 -> 1.65.2
+- iproute2: upgrade 5.19.0 -> 6.2.0
+- iptables: update 1.8.8 -> 1.8.9
+- iputils: update to 20221126
+- iso-codes: upgrade 4.11.0 -> 4.13.0
+- jquery: upgrade 3.6.0 -> 3.6.3
+- kexec-tools: upgrade 2.0.25 -> 2.0.26
+- kmscube: upgrade to latest revision
+- libarchive: upgrade 3.6.1 -> 3.6.2
+- libbsd: upgrade 0.11.6 -> 0.11.7
+- libcap: upgrade 2.65 -> 2.67
+- libdnf: update 0.69.0 -> 0.70.0
+- libdrm: upgrade 2.4.113 -> 2.4.115
+- libedit: upgrade 20210910-3.1 -> 20221030-3.1
+- libepoxy: update 1.5.9 -> 1.5.10
+- libffi: upgrade 3.4.2 -> 3.4.4
+- libfontenc: upgrade 1.1.6 -> 1.1.7
+- libgit2: upgrade 1.5.0 -> 1.6.3
+- libgpg-error: update 1.45 -> 1.46
+- libhandy: update 1.6.3 -> 1.8.1
+- libical: upgrade 3.0.14 -> 3.0.16
+- libice: update 1.0.10 -> 1.1.1
+- libidn2: upgrade 2.3.3 -> 2.3.4
+- libinput: upgrade 1.19.4 -> 1.22.1
+- libjpeg-turbo: upgrade 2.1.4 -> 2.1.5.1
+- libksba: upgrade 1.6.0 -> 1.6.3
+- libmicrohttpd: upgrade 0.9.75 -> 0.9.76
+- libmodule-build-perl: update 0.4231 -> 0.4232
+- libmpc: upgrade 1.2.1 -> 1.3.1
+- libnewt: update 0.52.21 -> 0.52.23
+- libnotify: upgrade 0.8.1 -> 0.8.2
+- libpcap: upgrade 1.10.1 -> 1.10.3
+- libpciaccess: update 0.16 -> 0.17
+- libpcre2: upgrade 10.40 -> 10.42
+- libpipeline: upgrade 1.5.6 -> 1.5.7
+- libpng: upgrade 1.6.38 -> 1.6.39
+- libpsl: upgrade 0.21.1 -> 0.21.2
+- librepo: upgrade 1.14.5 -> 1.15.1
+- libsdl2: upgrade 2.24.1 -> 2.26.3
+- libsm: 1.2.3 > 1.2.4
+- libsndfile1: upgrade 1.1.0 -> 1.2.0
+- libsolv: upgrade 0.7.22 -> 0.7.23
+- libsoup-2.4: upgrade 2.74.2 -> 2.74.3
+- libsoup: upgrade 3.0.7 -> 3.2.2
+- libtest-fatal-perl: upgrade 0.016 -> 0.017
+- libtest-needs-perl: upgrade 0.002009 -> 0.002010
+- libunistring: upgrade 1.0 -> 1.1
+- liburcu: upgrade 0.13.2 -> 0.14.0
+- liburi-perl: upgrade 5.08 -> 5.17
+- libva: upgrade 2.15.0 -> 2.16.0
+- libva-utils: upgrade 2.15.0 -> 2.17.1
+- libwebp: upgrade 1.2.4 -> 1.3.0
+- libwpe: upgrade 1.12.3 -> 1.14.1
+- libx11: 1.8.1 -> 1.8.4
+- libx11-compose-data: 1.6.8 -> 1.8.4
+- libxau: upgrade 1.0.10 -> 1.0.11
+- libxcomposite: update 0.4.5 -> 0.4.6
+- libxcrypt-compat: upgrade 4.4.30 -> 4.4.33
+- libxcrypt: upgrade 4.4.28 -> 4.4.30
+- libxdamage: update 1.1.5 -> 1.1.6
+- libxdmcp: update 1.1.3 -> 1.1.4
+- libxext: update 1.3.4 -> 1.3.5
+- libxft: update 2.3.4 -> 2.3.6
+- libxft: upgrade 2.3.6 -> 2.3.7
+- libxinerama: update 1.1.4 -> 1.1.5
+- libxkbcommon: upgrade 1.4.1 -> 1.5.0
+- libxkbfile: update 1.1.0 -> 1.1.1
+- libxkbfile: upgrade 1.1.1 -> 1.1.2
+- libxml2: upgrade 2.9.14 -> 2.10.3
+- libxmu: update 1.1.3 -> 1.1.4
+- libxpm: update 3.5.13 -> 3.5.15
+- libxrandr: update 1.5.2 -> 1.5.3
+- libxrender: update 0.9.10 -> 0.9.11
+- libxres: update 1.2.1 -> 1.2.2
+- libxscrnsaver: update 1.2.3 -> 1.2.4
+- libxshmfence: update 1.3 -> 1.3.2
+- libxslt: upgrade 1.1.35 -> 1.1.37
+- libxtst: update 1.2.3 -> 1.2.4
+- libxv: update 1.0.11 -> 1.0.12
+- libxxf86vm: update 1.1.4 -> 1.1.5
+- lighttpd: upgrade 1.4.66 -> 1.4.69
+- linux-firmware: upgrade 20220913 -> 20230210
+- linux-libc-headers: bump to 6.1
+- linux-yocto/5.15: update genericx86* machines to v5.15.103
+- linux-yocto/5.15: update to v5.15.108
+- linux-yocto/6.1: update to v6.1.25
+- linux-yocto-dev: bump to v6.3
+- linux-yocto-rt/5.15: update to -rt59
+- linux-yocto-rt/6.1: update to -rt7
+- llvm: update 14.0.6 -> 15.0.7
+- log4cplus: upgrade 2.0.8 -> 2.1.0
+- logrotate: upgrade 3.20.1 -> 3.21.0
+- lsof: upgrade 4.95.0 -> 4.98.0
+- ltp: upgrade 20220527 -> 20230127
+- lttng-modules: upgrade 2.13.4 -> 2.13.9
+- lttng-tools: update 2.13.8 -> 2.13.9
+- lttng-ust: upgrade 2.13.4 -> 2.13.5
+- makedepend: upgrade 1.0.6 -> 1.0.8
+- make: update 4.3 -> 4.4.1
+- man-db: update 2.10.2 -> 2.11.2
+- man-pages: upgrade 5.13 -> 6.03
+- matchbox-config-gtk: Update to latest SRCREV
+- matchbox-desktop-2: Update 2.2 -> 2.3
+- matchbox-panel-2: Update 2.11 -> 2.12
+- matchbox-terminal: Update to latest SRCREV
+- matchbox-wm: Update 1.2.2 -> 1.2.3
+- mc: update 4.8.28 -> 4.8.29
+- mesa: update 22.2.0 -> 23.0.0
+- meson: upgrade 0.63.2 -> 1.0.1
+- mmc-utils: upgrade to latest revision
+- mobile-broadband-provider-info: upgrade 20220725 -> 20221107
+- mpfr: upgrade 4.1.0 -> 4.2.0
+- mpg123: upgrade 1.30.2 -> 1.31.2
+- msmtp: upgrade 1.8.22 -> 1.8.23
+- mtd-utils: upgrade 2.1.4 -> 2.1.5
+- mtools: upgrade 4.0.40 -> 4.0.42
+- musl-obstack: Update to 1.2.3
+- musl: Upgrade to latest master
+- nasm: update 2.15.05 -> 2.16.01
+- ncurses: upgrade 6.3+20220423 -> 6.4
+- netbase: upgrade 6.3 -> 6.4
+- newlib: Upgrade 4.2.0 -> 4.3.0
+- nghttp2: upgrade 1.49.0 -> 1.52.0
+- numactl: upgrade 2.0.15 -> 2.0.16
+- opensbi: Upgrade to 1.2 release
+- openssh: upgrade 9.0p1 -> 9.3p1
+- openssl: Upgrade 3.0.5 -> 3.1.0
+- opkg: upgrade to version 0.6.1
+- orc: upgrade 0.4.32 -> 0.4.33
+- ovmf: upgrade edk2-stable202205 -> edk2-stable202211
+- pango: upgrade 1.50.9 -> 1.50.13
+- patchelf: upgrade 0.15.0 -> 0.17.2
+- pciutils: upgrade 3.8.0 -> 3.9.0
+- piglit: upgrade to latest revision
+- pinentry: update 1.2.0 -> 1.2.1
+- pixman: upgrade 0.40.0 -> 0.42.2
+- pkgconf: upgrade 1.9.3 -> 1.9.4
+- popt: update 1.18 -> 1.19
+- powertop: upgrade 2.14 -> 2.15
+- procps: update 3.3.17 -> 4.0.3
+- psmisc: upgrade 23.5 -> 23.6
+- puzzles: upgrade to latest revision
+- python3-alabaster: upgrade 0.7.12 -> 0.7.13
+- python3-attrs: upgrade 22.1.0 -> 22.2.0
+- python3-babel: upgrade 2.10.3 -> 2.12.1
+- python3-bcrypt: upgrade 3.2.2 -> 4.0.1
+- python3-certifi: upgrade 2022.9.14 -> 2022.12.7
+- python3-chardet: upgrade 5.0.0 -> 5.1.0
+- python3-cryptography: upgrade 38.0.3 -> 39.0.4
+- python3-cryptography-vectors: upgrade 37.0.4 -> 39.0.2
+- python3-cython: upgrade 0.29.32 -> 0.29.33
+- python3-dbusmock: update 0.28.4 -> 0.28.7
+- python3-dbus: upgrade 1.2.18 -> 1.3.2
+- python3-dtschema: upgrade 2022.8.3 -> 2023.1
+- python3-flit-core: upgrade 3.7.1 -> 3.8.0
+- python3-gitdb: upgrade 4.0.9 -> 4.0.10
+- python3-git: upgrade 3.1.27 -> 3.1.31
+- python3-hatch-fancy-pypi-readme: upgrade 22.7.0 -> 22.8.0
+- python3-hatchling: upgrade 1.9.0 -> 1.13.0
+- python3-hatch-vcs: upgrade 0.2.0 -> 0.3.0
+- python3-hypothesis: upgrade 6.54.5 -> 6.68.2
+- python3-importlib-metadata: upgrade 4.12.0 -> 6.0.0
+- python3-iniconfig: upgrade 1.1.1 -> 2.0.0
+- python3-installer: update 0.5.1 -> 0.6.0
+- python3-iso8601: upgrade 1.0.2 -> 1.1.0
+- python3-jsonschema: upgrade 4.9.1 -> 4.17.3
+- python3-lxml: upgrade 4.9.1 -> 4.9.2
+- python3-mako: upgrade 1.2.2 -> 1.2.4
+- python3-markupsafe: upgrade 2.1.1 -> 2.1.2
+- python3-more-itertools: upgrade 8.14.0 -> 9.1.0
+- python3-numpy: upgrade 1.23.3 -> 1.24.2
+- python3-packaging: upgrade to 23.0
+- python3-pathspec: upgrade 0.10.1 -> 0.11.0
+- python3-pbr: upgrade 5.10.0 -> 5.11.1
+- python3-pip: upgrade 22.2.2 -> 23.0.1
+- python3-poetry-core: upgrade 1.0.8 -> 1.5.2
+- python3-psutil: upgrade 5.9.2 -> 5.9.4
+- python3-pycairo: upgrade 1.21.0 -> 1.23.0
+- python3-pycryptodome: upgrade 3.15.0 -> 3.17
+- python3-pycryptodomex: upgrade 3.15.0 -> 3.17
+- python3-pygments: upgrade 2.13.0 -> 2.14.0
+- python3-pyopenssl: upgrade 22.0.0 -> 23.0.0
+- python3-pyrsistent: upgrade 0.18.1 -> 0.19.3
+- python3-pytest-subtests: upgrade 0.8.0 -> 0.10.0
+- python3-pytest: upgrade 7.1.3 -> 7.2.2
+- python3-pytz: upgrade 2022.2.1 -> 2022.7.1
+- python3-requests: upgrade 2.28.1 -> 2.28.2
+- python3-scons: upgrade 4.4.0 -> 4.5.2
+- python3-setuptools-rust: upgrade 1.5.1 -> 1.5.2
+- python3-setuptools-scm: upgrade 7.0.5 -> 7.1.0
+- python3-setuptools: upgrade 65.0.2 -> 67.6.0
+- python3-sphinxcontrib-applehelp: update 1.0.2 -> 1.0.4
+- python3-sphinxcontrib-htmlhelp: 2.0.0 -> 2.0.1
+- python3-sphinx-rtd-theme: upgrade 1.0.0 -> 1.2.0
+- python3-sphinx: upgrade 5.1.1 -> 6.1.3
+- python3-subunit: upgrade 1.4.0 -> 1.4.2
+- python3-testtools: upgrade 2.5.0 -> 2.6.0
+- python3-typing-extensions: upgrade 4.3.0 -> 4.5.0
+- python3: update 3.10.6 -> 3.11.2
+- python3-urllib3: upgrade 1.26.12 -> 1.26.15
+- python3-wcwidth: upgrade 0.2.5 -> 0.2.6
+- python3-wheel: upgrade 0.37.1 -> 0.40.0
+- python3-zipp: upgrade 3.8.1 -> 3.15.0
+- qemu: update 7.1.0 -> 7.2.0
+- quota: update 4.06 -> 4.09
+- readline: update 8.1.2 -> 8.2
+- repo: upgrade 2.29.2 -> 2.32
+- rgb: update 1.0.6 -> 1.1.0
+- rng-tools: upgrade 6.15 -> 6.16
+- rsync: update 3.2.5 -> 3.2.7
+- rt-tests: update 2.4 -> 2.5
+- ruby: update 3.1.2 -> 3.2.1
+- rust: update 1.63.0 -> 1.68.1
+- rxvt-unicode: upgrade 9.30 -> 9.31
+- sed: update 4.8 -> 4.9
+- shaderc: upgrade 2022.2 -> 2023.2
+- shadow: update 4.12.1 -> 4.13
+- socat: upgrade 1.7.4.3 -> 1.7.4.4
+- spirv-headers: upgrade 1.3.236.0 -> 1.3.239.0
+- spirv-tools: upgrade 1.3.236.0 -> 1.3.239.0
+- sqlite3: upgrade 3.39.3 -> 3.41.0
+- strace: upgrade 5.19 -> 6.2
+- stress-ng: update 0.14.03 -> 0.15.06
+- sudo: upgrade 1.9.11p3 -> 1.9.13p3
+- swig: update 4.0.2 -> 4.1.1
+- sysstat: upgrade 12.6.0 -> 12.6.2
+- systemd: update 251.4 -> 253.1
+- systemtap: upgrade 4.7 -> 4.8
+- taglib: upgrade 1.12 -> 1.13
+- tcf-agent: Update to current version
+- tcl: update 8.6.11 -> 8.6.13
+- texinfo: update 6.8 -> 7.0.2
+- tiff: update 4.4.0 -> 4.5.0
+- tzdata: update 2022d -> 2023c
+- u-boot: upgrade 2022.07 -> 2023.01
+- unfs: update 0.9.22 -> 0.10.0
+- usbutils: upgrade 014 -> 015
+- util-macros: upgrade 1.19.3 -> 1.20.0
+- vala: upgrade 0.56.3 -> 0.56.4
+- valgrind: update to 3.20.0
+- vim: Upgrade 9.0.0598 -> 9.0.1429
+- virglrenderer: upgrade 0.10.3 -> 0.10.4
+- vte: update 0.68.0 -> 0.72.0
+- vulkan-headers: upgrade 1.3.236.0 -> 1.3.239.0
+- vulkan-loader: upgrade 1.3.236.0 -> 1.3.239.0
+- vulkan-samples: update to latest revision
+- vulkan-tools: upgrade 1.3.236.0 -> 1.3.239.0
+- vulkan: update 1.3.216.0 -> 1.3.236.0
+- wayland-protocols: upgrade 1.26 -> 1.31
+- wayland-utils: update 1.0.0 -> 1.1.0
+- webkitgtk: update 2.36.7 -> 2.38.5
+- weston: update 10.0.2 -> 11.0.1
+- wireless-regdb: upgrade 2022.08.12 -> 2023.02.13
+- wpebackend-fdo: upgrade 1.12.1 -> 1.14.0
+- xcb-util: update 0.4.0 -> 0.4.1
+- xcb-util-keysyms: 0.4.0 -> 0.4.1
+- xcb-util-renderutil: 0.3.9 -> 0.3.10
+- xcb-util-wm: 0.4.1 -> 0.4.2
+- xcb-util-image: 0.4.0 -> 0.4.1
+- xf86-input-mouse: update 1.9.3 -> 1.9.4
+- xf86-input-vmmouse: update 13.1.0 -> 13.2.0
+- xf86-video-vesa: update 2.5.0 -> 2.6.0
+- xf86-video-vmware: update 13.3.0 -> 13.4.0
+- xhost: update 1.0.8 -> 1.0.9
+- xinit: update 1.4.1 -> 1.4.2
+- xkbcomp: update 1.4.5 -> 1.4.6
+- xkeyboard-config: upgrade 2.36 -> 2.38
+- xprop: update 1.2.5 -> 1.2.6
+- xrandr: upgrade 1.5.1 -> 1.5.2
+- xserver-xorg: upgrade 21.1.4 -> 21.1.7
+- xset: update 1.2.4 -> 1.2.5
+- xvinfo: update 1.1.4 -> 1.1.5
+- xwayland: upgrade 22.1.3 -> 22.1.8
+- xz: upgrade 5.2.6 -> 5.4.2
+- zlib: upgrade 1.2.12 -> 1.2.13
+- zstd: upgrade 1.5.2 -> 1.5.4
+
+Contributors to 4.2
+~~~~~~~~~~~~~~~~~~~
+
+Thanks to the following people who contributed to this release:
+
+- Adrian Freihofer
+- Ahmad Fatoum
+- Alejandro Hernandez Samaniego
+- Alexander Kanavin
+- Alexandre Belloni
+- Alexey Smirnov
+- Alexis Lothoré
+- Alex Kiernan
+- Alex Stewart
+- Andrej Valek
+- Andrew Geissler
+- Anton Antonov
+- Antonin Godard
+- Archana Polampalli
+- Armin Kuster
+- Arnout Vandecappelle
+- Arturo Buzarra
+- Atanas Bunchev
+- Benjamin Szőke
+- Benoît Mauduit
+- Bernhard Rosenkränzer
+- Bruce Ashfield
+- Caner Altinbasak
+- Carlos Alberto Lopez Perez
+- Changhyeok Bae
+- Changqing Li
+- Charlie Johnston
+- Chase Qi
+- Chee Yang Lee
+- Chen Qi
+- Chris Elledge
+- Christian Eggers
+- Christoph Lauer
+- Chuck Wolber
+- Ciaran Courtney
+- Claus Stovgaard
+- Clément Péron
+- Daniel Ammann
+- David Bagonyi
+- Denys Dmytriyenko
+- Denys Zagorui
+- Diego Sueiro
+- Dmitry Baryshkov
+- Ed Tanous
+- Enguerrand de Ribaucourt
+- Enrico Jörns
+- Enrico Scholz
+- Etienne Cordonnier
+- Fabio Estevam
+- Fabre Sébastien
+- Fawzi KHABER
+- Federico Pellegrin
+- Frank de Brabander
+- Frederic Martinsons
+- Geoffrey GIRY
+- George Kelly
+- Harald Seiler
+- He Zhe
+- Hitendra Prajapati
+- Jagadeesh Krishnanjanappa
+- James Raphael Tiovalen
+- Jan Kircher
+- Jan Luebbe
+- Jan-Simon Moeller
+- Javier Tia
+- Jeremy Puhlman
+- Jermain Horsman
+- Jialing Zhang
+- Joel Stanley
+- Joe Slater
+- Johan Korsnes
+- Jon Mason
+- Jordan Crouse
+- Jose Quaresma
+- Joshua Watt
+- Justin Bronder
+- Kai Kang
+- Kasper Revsbech
+- Keiya Nobuta
+- Kenfe-Mickael Laventure
+- Kevin Hao
+- Khem Raj
+- Konrad Weihmann
+- Lei Maohui
+- Leon Anavi
+- Liam Beguin
+- Louis Rannou
+- Luca Boccassi
+- Luca Ceresoli
+- Luis Martins
+- Maanya Goenka
+- Marek Vasut
+- Mark Asselstine
+- Mark Hatle
+- Markus Volk
+- Marta Rybczynska
+- Martin Jansa
+- Martin Larsson
+- Mateusz Marciniec
+- Mathieu Dubois-Briand
+- Mauro Queiros
+- Maxim Uvarov
+- Michael Halstead
+- Michael Opdenacker
+- Mike Crowe
+- Mikko Rapeli
+- Ming Liu
+- Mingli Yu
+- Narpat Mali
+- Nathan Rossi
+- Niko Mauno
+- Ola x Nilsson
+- Oliver Lang
+- Ovidiu Panait
+- Pablo Saavedra
+- Patrick Williams
+- Paul Eggleton
+- Paulo Neves
+- Pavel Zhukov
+- Pawel Zalewski
+- Pedro Baptista
+- Peter Bergin
+- Peter Kjellerstedt
+- Peter Marko
+- Petr Kubizňák
+- Petr Vorel
+- pgowda
+- Piotr Łobacz
+- Quentin Schulz
+- Randy MacLeod
+- Ranjitsinh Rathod
+- Ravineet Singh
+- Ravula Adhitya Siddartha
+- Richard Elberger
+- Richard Leitner
+- Richard Purdie
+- Robert Andersson
+- Robert Joslyn
+- Robert Yang
+- Romuald JEANNE
+- Ross Burton
+- Ryan Eatmon
+- Sakib Sajal
+- Sandeep Gundlupet Raju
+- Saul Wold
+- Sean Anderson
+- Sergei Zhmylev
+- Siddharth Doshi
+- Soumya
+- Sudip Mukherjee
+- Sundeep KOKKONDA
+- Teoh Jay Shen
+- Thomas De Schampheleire
+- Thomas Perrot
+- Thomas Roos
+- Tim Orling
+- Tobias Hagelborn
+- Tom Hochstein
+- Trevor Woerner
+- Ulrich Ölmann
+- Vincent Davis Jr
+- Vivek Kumbhar
+- Vyacheslav Yurkov
+- Wang Mingyu
+- Wentao Zhang
+- Xiangyu Chen
+- Xiaotian Wu
+- Yan Xinkuan
+- Yash Shinde
+- Yi Zhao
+- Yoann Congal
+- Yureka Lilian
+- Zang Ruochen
+- Zheng Qiu
+- Zheng Ruoqin
+- Zoltan Boszormenyi
+- 张忠山
+
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index e755114..6db515e 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -638,9 +638,8 @@
    type sub-folder. Given RPM, IPK, or DEB packaging and tarball
    creation, the
    :term:`DEPLOY_DIR_RPM`,
-   :term:`DEPLOY_DIR_IPK`,
-   :term:`DEPLOY_DIR_DEB`, or
-   :term:`DEPLOY_DIR_TAR`,
+   :term:`DEPLOY_DIR_IPK`, or
+   :term:`DEPLOY_DIR_DEB`
    variables are used, respectively.
 
 -  :term:`PACKAGE_ARCH`: Defines
@@ -653,9 +652,8 @@
 (e.g. ``do_package_write_ipk`` for IPK packages). See the
 ":ref:`ref-tasks-package_write_deb`",
 ":ref:`ref-tasks-package_write_ipk`",
-":ref:`ref-tasks-package_write_rpm`",
 and
-":ref:`ref-tasks-package_write_tar`"
+":ref:`ref-tasks-package_write_rpm`"
 sections in the Yocto Project Reference Manual for additional
 information. As an example, consider a scenario where an IPK packaging
 manager is being used and there is package architecture support for both
diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst
index 0d931df..6139e7a 100644
--- a/poky/documentation/overview-manual/development-environment.rst
+++ b/poky/documentation/overview-manual/development-environment.rst
@@ -169,10 +169,9 @@
 In summary, here is where you can get the project files needed for
 development:
 
--  :yocto_git:`Source Repositories: <>` This area contains IDE
-   Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and
-   Yocto Metadata Layers. You can create local copies of Git
-   repositories for each of these areas.
+-  :yocto_git:`Source Repositories: <>` This area contains Poky, Yocto
+   documentation, metadata layers, and Linux kernel. You can create local
+   copies of Git repositories for each of these areas.
 
    .. image:: figures/source-repos.png
       :width: 100%
@@ -181,28 +180,17 @@
    see the ":ref:`dev-manual/start:accessing source repositories`"
    Section in the Yocto Project Development Tasks Manual.
 
--  :yocto_dl:`Index of /releases: </releases>` This is an index
-   of releases such as Poky, Pseudo, installers for cross-development
-   toolchains, miscellaneous support and all released versions of Yocto
-   Project in the form of images or tarballs. Downloading and extracting
-   these files does not produce a local copy of the Git repository but
-   rather a snapshot of a particular release or image.
+-  :yocto_dl:`Yocto release archives: </releases/yocto>` This is where you can
+   download tarballs corresponding to each Yocto Project release. Downloading
+   and extracting these files does not produce a local copy of a Git repository
+   but rather a snapshot corresponding to a particular release.
 
-   .. image:: figures/index-downloads.png
-      :align: center
-      :width: 50%
-
-   For steps on how to view and access these files, see the
-   ":ref:`dev-manual/start:accessing index of releases`"
-   section in the Yocto Project Development Tasks Manual.
-
--  *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:*
-
-   The Yocto Project website includes a "DOWNLOADS" page accessible
+-  :yocto_home:`DOWNLOADS page </software-overview/downloads/>`:
+   The :yocto_home:`Yocto Project website <>` includes a "DOWNLOADS" page accessible
    through the "SOFTWARE" menu that allows you to download any Yocto
    Project release, tool, and Board Support Package (BSP) in tarball
-   form. The tarballs are similar to those found in the
-   :yocto_dl:`Index of /releases: </releases>` area.
+   form. The hyperlinks point to the tarballs under
+   :yocto_dl:`/releases/yocto/`.
 
    .. image:: figures/yp-download.png
       :width: 100%
diff --git a/poky/documentation/overview-manual/figures/index-downloads.png b/poky/documentation/overview-manual/figures/index-downloads.png
deleted file mode 100755
index d8d4475..0000000
--- a/poky/documentation/overview-manual/figures/index-downloads.png
+++ /dev/null
Binary files differ
diff --git a/poky/documentation/overview-manual/figures/source-repos.png b/poky/documentation/overview-manual/figures/source-repos.png
index 603300b..56023d5 100644
--- a/poky/documentation/overview-manual/figures/source-repos.png
+++ b/poky/documentation/overview-manual/figures/source-repos.png
Binary files differ
diff --git a/poky/documentation/overview-manual/figures/yp-download.png b/poky/documentation/overview-manual/figures/yp-download.png
index bfd12b6..c8b50ec 100644
--- a/poky/documentation/overview-manual/figures/yp-download.png
+++ b/poky/documentation/overview-manual/figures/yp-download.png
Binary files differ
diff --git a/poky/documentation/poky.yaml.in b/poky/documentation/poky.yaml.in
index 30e1050..1c072c1 100644
--- a/poky/documentation/poky.yaml.in
+++ b/poky/documentation/poky.yaml.in
@@ -39,5 +39,11 @@
 MIN_PYTHON_VERSION : "3.8.0"
 MIN_TAR_VERSION : "1.28"
 MIN_GIT_VERSION : "1.8.3.1"
-MIN_GCC_VERSION : "7.5"
+MIN_GCC_VERSION : "8.0"
 MIN_MAKE_VERSION : "4.0"
+# Disk space (Gbytes) needed to generate qemux86-64 core-image-sato on Ubuntu 22.04 (x86-64), rounded up from 87
+MIN_DISK_SPACE : "90"
+# Disk space (Gbytes) needed to generate qemux86-64 core-image-sato on Ubuntu 22.04 (x86-64) with "rm_work", rounded up from 38
+MIN_DISK_SPACE_RM_WORK : "40"
+# RAM (Gbytes) needed to generate qemux86-64 core-image-sato on Ubuntu 22.04 (x86-64) on a 4 core system
+MIN_RAM : "8"
diff --git a/poky/documentation/ref-manual/TODO b/poky/documentation/ref-manual/TODO
deleted file mode 100644
index 0510f54..0000000
--- a/poky/documentation/ref-manual/TODO
+++ /dev/null
@@ -1,11 +0,0 @@
-Handbook Todo List:
-
-  * Document adding a new IMAGE_FEATURE to the customising images section
-  * Add instructions about using zaurus/openmoko emulation
-  * Add component overview/block diagrams
-  * Software Development intro should mention its software development for
-    intended target and could be a different arch etc and thus special case.
-  * Expand insane.bbclass documentation to cover tests
-  * Document remaining classes (see list in ref-classes)
-  * Document formfactor
-
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index e8dec31..a78368b 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -137,7 +137,7 @@
 inherits the class. This class contains definitions for standard basic
 tasks such as fetching, unpacking, configuring (empty by default),
 compiling (runs any ``Makefile`` present), installing (empty by default)
-and packaging (empty by default). These classes are often overridden or
+and packaging (empty by default). These tasks are often overridden or
 extended by other classes such as the :ref:`ref-classes-autotools` class or the
 :ref:`ref-classes-package` class.
 
@@ -580,6 +580,49 @@
 :ref:`ref-tasks-install`. The class then takes care of
 staging the files from :term:`DEPLOYDIR` to :term:`DEPLOY_DIR_IMAGE`.
 
+.. _ref-classes-devicetree:
+
+``devicetree``
+==============
+
+The :ref:`ref-classes-devicetree` class allows to build a recipe that compiles
+device tree source files that are not in the kernel tree.
+
+The compilation of out-of-tree device tree sources is the same as the kernel
+in-tree device tree compilation process. This includes the ability to include
+sources from the kernel such as SoC ``dtsi`` files as well as C header files,
+such as ``gpio.h``.
+
+The :ref:`ref-tasks-compile` task will compile two kinds of files:
+
+- Regular device tree sources with a ``.dts`` extension.
+
+- Device tree overlays, detected from the presence of the ``/plugin/;``
+  string in the file contents.
+
+This class behaves in a similar way as the :ref:`ref-classes-kernel-devicetree`
+class, also deploying output files into ``/boot/devicetree``. However, this
+class stores the deployed device tree binaries into the ``devicetree``
+subdirectory. This avoids clashes with the :ref:`ref-classes-kernel-devicetree`
+output. Additionally, the device trees are populated into the sysroot for
+access via the sysroot from within other recipes.
+
+An extra padding is appended to non-overlay device trees binaries. This
+can typically be used as extra space for adding extra properties at boot time.
+The padding size can be modified by setting ``DT_PADDING_SIZE`` to the desired
+size, in bytes.
+
+See :oe_git:`devicetree.bbclass sources
+</openembedded-core/tree/meta/classes-recipe/devicetree.bbclass>` 
+for further variables controlling this class.
+
+Here is an excerpt of an example ``recipes-kernel/linux/devicetree-acme.bb``
+recipe inheriting this class::
+
+   inherit devicetree
+   COMPATIBLE_MACHINE = "^mymachine$"
+   SRC_URI:mymachine = "file://mymachine.dts"
+
 .. _ref-classes-devshell:
 
 ``devshell``
@@ -1192,6 +1235,11 @@
    ``initscripts`` recipe is actually built and thus the
    ``initscripts-functions`` package is made available.
 
+-  ``configure-gettext:`` Checks that if a recipe is building something
+   that uses automake and the automake files contain an ``AM_GNU_GETTEXT``
+   directive, that the recipe also inherits the :ref:`ref-classes-gettext`
+   class to ensure that gettext is available during the build.
+
 -  ``compile-host-path:`` Checks the
    :ref:`ref-tasks-compile` log for indications that
    paths to locations on the build host were used. Using such paths
@@ -1308,11 +1356,39 @@
    ``/usr/libexec``. This check is not performed if the ``libexecdir``
    variable has been set explicitly to ``/usr/libexec``.
 
+-  ``mime:`` Check that if a package contains mime type files (``.xml``
+   files in ``${datadir}/mime/packages``) that the recipe also inherits
+   the :ref:`ref-classes-mime` class in order to ensure that these get
+   properly installed.
+
+-  ``mime-xdg:`` Checks that if a package contains a .desktop file with a
+   'MimeType' key present, that the recipe inherits the
+   :ref:`ref-classes-mime-xdg` class that is required in order for that
+   to be activated.
+
+-  ``missing-update-alternatives:`` Check that if a recipe sets the
+   :term:`ALTERNATIVE` variable that the recipe also inherits
+   :ref:`ref-classes-update-alternatives` such that the alternative will
+   be correctly set up.
+
 -  ``packages-list:`` Checks for the same package being listed
    multiple times through the :term:`PACKAGES` variable
    value. Installing the package in this manner can cause errors during
    packaging.
 
+-  ``patch-fuzz:`` Checks for fuzz in patch files that may allow
+   them to apply incorrectly if the underlying code changes.
+
+-  ``patch-status-core:`` Checks that the Upstream-Status is specified
+   and valid in the headers of patches for recipes in the OE-Core layer.
+
+-  ``patch-status-noncore:`` Checks that the Upstream-Status is specified
+   and valid in the headers of patches for recipes in layers other than
+   OE-Core.
+
+-  ``perllocalpod:`` Checks for ``perllocal.pod`` being erroneously
+   installed and packaged by a recipe.
+
 -  ``perm-config:`` Reports lines in ``fs-perms.txt`` that have an
    invalid format.
 
@@ -1366,12 +1442,20 @@
    options are being passed to the linker commands and your binaries
    have potential security issues.
 
+-  ``shebang-size:`` Check that the shebang line (``#!`` in the first line)
+   in a packaged script is not longer than 128 characters, which can cause
+   an error at runtime depending on the operating system.
+
 -  ``split-strip:`` Reports that splitting or stripping debug symbols
    from binaries has failed.
 
 -  ``staticdev:`` Checks for static library files (``*.a``) in
    non-``staticdev`` packages.
 
+-  ``src-uri-bad:`` Checks that the :term:`SRC_URI` value set by a recipe
+   does not contain a reference to ``${PN}`` (instead of the correct
+   ``${BPN}``) nor refers to unstable Github archive tarballs.
+
 -  ``symlink-to-sysroot:`` Checks for symlinks in packages that point
    into :term:`TMPDIR` on the host. Such symlinks will
    work on the host, but are clearly invalid when running on the target.
@@ -1382,6 +1466,12 @@
    ":doc:`/ref-manual/qa-checks`" for more information regarding runtime performance
    issues.
 
+-  ``unhandled-features-check:`` check that if one of the variables that
+   the :ref:`ref-classes-features_check` class supports (e.g.
+   :term:`REQUIRED_DISTRO_FEATURES`) is set by a recupe, then the recipe
+   also inherits :ref:`ref-classes-features_check` in order for the
+   requirement to actually work.
+
 -  ``unlisted-pkg-lics:`` Checks that all declared licenses applying
    for a package are also declared on the recipe level (i.e. any license
    in ``LICENSE:*`` should appear in :term:`LICENSE`).
@@ -1391,19 +1481,23 @@
    the linker (e.g. ``/lib`` and ``/usr/lib``). While these paths will
    not cause any breakage, they do waste space and are unnecessary.
 
+-  ``usrmerge:`` If ``usrmerge`` is in :term:`DISTRO_FEATURES`, this
+   check will ensure that no package installs files to root (``/bin``,
+   ``/sbin``, ``/lib``, ``/lib64``) directories.
+
 -  ``var-undefined:`` Reports when variables fundamental to packaging
    (i.e. :term:`WORKDIR`,
    :term:`DEPLOY_DIR`, :term:`D`,
    :term:`PN`, and :term:`PKGD`) are undefined
    during :ref:`ref-tasks-package`.
 
--  ``version-going-backwards:`` If Build History is enabled, reports
-   when a package being written out has a lower version than the
-   previously written package under the same name. If you are placing
-   output packages into a feed and upgrading packages on a target system
-   using that feed, the version of a package going backwards can result
-   in the target system not correctly upgrading to the "new" version of
-   the package.
+-  ``version-going-backwards:`` If the :ref:`ref-classes-buildhistory`
+   class is enabled, reports when a package being written out has a lower
+   version than the previously written package under the same name. If
+   you are placing output packages into a feed and upgrading packages on
+   a target system using that feed, the version of a package going
+   backwards can result in the target system not correctly upgrading to
+   the "new" version of the package.
 
    .. note::
 
@@ -2025,13 +2119,7 @@
 output. The core generic functionality is in ``package.bbclass``. The
 code specific to particular package types resides in these
 package-specific classes: :ref:`ref-classes-package_deb`,
-:ref:`ref-classes-package_rpm`, :ref:`ref-classes-package_ipk`, and
-:ref:`ref-classes-package_tar`.
-
-.. note::
-
-   The :ref:`ref-classes-package_tar` class is broken and
-   not supported. It is recommended that you do not use this class.
+:ref:`ref-classes-package_rpm`, :ref:`ref-classes-package_ipk`.
 
 You can control the list of resulting package formats by using the
 :term:`PACKAGE_CLASSES` variable defined in your ``conf/local.conf``
@@ -2121,25 +2209,6 @@
 is enabled through the :term:`PACKAGE_CLASSES`
 variable in the ``local.conf`` file.
 
-.. _ref-classes-package_tar:
-
-``package_tar``
-===============
-
-The :ref:`ref-classes-package_tar` class provides support for creating tarballs. The
-class ensures the packages are written out in a tarball format to the
-``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory.
-
-This class inherits the :ref:`ref-classes-package` class and
-is enabled through the :term:`PACKAGE_CLASSES`
-variable in the ``local.conf`` file.
-
-.. note::
-
-   You cannot specify the :ref:`ref-classes-package_tar` class first using the
-   :term:`PACKAGE_CLASSES` variable. You must use ``.deb``, ``.ipk``, or ``.rpm``
-   file formats for your image or SDK.
-
 .. _ref-classes-packagedata:
 
 ``packagedata``
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index 1309681..6fdb0fb 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -750,6 +750,29 @@
     other things in the patches, those can be discarded.
 
 
+.. _qa-check-patch-status:
+
+- ``Missing Upstream-Status in patch <patchfile> Please add according to <url> [patch-status-core/patch-status-noncore]``
+
+    The Upstream-Status value is missing in the specified patch file's header.
+    This value is intended to track whether or not the patch has been sent
+    upstream, whether or not it has been merged, etc.
+
+    There are two options for this same check - ``patch-status-core`` (for
+    recipes in OE-Core) and ``patch-status-noncore`` (for recipes in any other
+    layer).
+
+    For more information on setting Upstream-Status see:
+    https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status
+
+
+- ``Malformed Upstream-Status in patch <patchfile> Please correct according to <url> [patch-status-core/patch-status-noncore]``
+
+    The Upstream-Status value in the specified patch file's header is invalid -
+    it must be a specific format. See the "Missing Upstream-Status" entry above
+    for more information.
+
+
 .. _qa-check-buildpaths:
 
 - ``File <filename> in package <packagename> contains reference to TMPDIR [buildpaths]``
diff --git a/poky/documentation/ref-manual/release-process.rst b/poky/documentation/ref-manual/release-process.rst
index fa057e0..2ffbd93 100644
--- a/poky/documentation/ref-manual/release-process.rst
+++ b/poky/documentation/ref-manual/release-process.rst
@@ -18,9 +18,9 @@
 also shown. See the ":ref:`ref-manual/release-process:major release codenames`"
 section for information on codenames used with major releases.
 
-  - 2.2 (Morty) 
-  - 2.1 (Krogoth)
-  - 2.0 (Jethro) 
+  - 4.1 ("Langdale")
+  - 4.0 ("Kirkstone")
+  - 3.4 ("Honister")
 
 While the cadence is never perfect, this timescale facilitates
 regular releases that have strong QA cycles while not overwhelming users
@@ -32,9 +32,9 @@
 fixes or enhancements to the associated major release. Following are
 some example past point releases:
 
-  - 2.1.1
-  - 2.1.2
-  - 2.2.1 
+  - 4.1.3
+  - 4.0.8
+  - 3.4.4
 
 The point release
 indicates a point in the major release branch where a full QA cycle and
@@ -87,33 +87,53 @@
    exception to this policy occurs when there is a strong reason such as
    the fix happens to also be the preferred upstream approach.
 
-Stable release branches have strong maintenance for about a year after
-their initial release. Should significant issues be found for any
-release regardless of its age, fixes could be backported to older
-releases. For issues that are not backported given an older release,
-Community LTS trees and branches allow community members to share
-patches for older releases. However, these types of patches do not go
-through the same release process as do point releases. You can find more
-information about stable branch maintenance at
-:yocto_wiki:`/Stable_branch_maintenance`.
+.. _ref-long-term-support-releases:
+
+Long Term Support Releases
+==========================
+
+While stable releases are supported for a duration of seven months,
+some specific ones are now supported for a longer period by the Yocto
+Project, and are called Long Term Support (:term:`LTS`) releases.
+
+This started with version 3.1 ("Dunfell"), released in April 2020, that
+the project committed to supporting until the next :term:`LTS` release was out.
+This next :term:`LTS` release, version 4.0 ("Kirkstone"), was released in May 2022
+and offered with two years of support too.
+
+However, as an experiment, support for "Dunfell" was extended to four years, until
+April 2024, therefore offering more stability to projects and leaving more time
+to upgrade to the latest :term:`LTS` release. The project hasn't made any commitment to
+extending "Kirkstone" support too, as this will also depend on available funding
+for such an effort.
+
+When significant issues are found, :term:`LTS` releases allow to publish
+fixes not only for the current stable release, but also to the
+:term:`LTS` releases that are still supported. Older stable releases which
+have reached their End of Life (EOL) won't receive such updates.
+
+See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management
+of stable and :term:`LTS` releases.
+
+.. image:: svg/releases.*
+   :width: 100%
 
 .. note::
 
    In some circumstances, a layer can be created by the community in order to
-   add a specific feature or support a new version of some package for an LTS
-   release.  This is called a "mixin" layer. These are thin and specific
-   purpose layers which can be stacked with an LTS release to "mix" a specific
+   add a specific feature or support a new version of some package for an :term:`LTS`
+   release.  This is called a :term:`Mixin` layer. These are thin and specific
+   purpose layers which can be stacked with an :term:`LTS` release to "mix" a specific
    feature into that build. These are created on an as-needed basis and
    maintained by the people who need them.
 
    Policies on testing these layers depend on how widespread their usage is and
-   determined on a case-by-case basis. You can find some "mixin" layers in the
+   determined on a case-by-case basis. You can find some :term:`Mixin` layers in the
    :yocto_git:`meta-lts-mixins </meta-lts-mixins>` repository. While the Yocto
    Project provides hosting for those repositories, it does not provides
-   testing on them. Other "mixin" layers may be released elsewhere by the wider
+   testing on them. Other :term:`Mixin` layers may be released elsewhere by the wider
    community.
 
-
 Testing and Quality Assurance
 =============================
 
@@ -161,25 +181,17 @@
    ``oe-selftest`` can run all tests by default or can run selected
    tests or test suites.
 
-   .. note::
-
-      Running ``oe-selftest`` requires host packages beyond the "Essential"
-      grouping. See the :ref:`ref-manual/system-requirements:required packages for the build host`
-      section for more information.
-
 Originally, much of this testing was done manually. However, significant
 effort has been made to automate the tests so that more people can use
 them and the Yocto Project development team can run them faster and more
 efficiently.
 
-The Yocto Project's main Autobuilder (&YOCTO_AB_URL;)
-publicly tests each Yocto Project release's code in the
-:term:`OpenEmbedded-Core (OE-Core)`, Poky, and BitBake repositories. The testing
-occurs for both the current state of the "master" branch and also for
+The Yocto Project's main Autobuilder (&YOCTO_AB_URL;) publicly tests each Yocto
+Project release's code in the :oe_git:`openembedded-core </openembedded-core>`,
+:yocto_git:`poky </poky>` and :oe_git:`bitbake </bitbake>` repositories. The
+testing occurs for both the current state of the "master" branch and also for
 submitted patches. Testing for submitted patches usually occurs in the
-"ross/mut" branch in the ``poky-contrib`` repository (i.e. the
-master-under-test branch) or in the "master-next" branch in the ``poky``
-repository.
+in the "master-next" branch in the :yocto_git:`poky </poky>` repository.
 
 .. note::
 
diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst
index e895382..f1b11ad 100644
--- a/poky/documentation/ref-manual/structure.rst
+++ b/poky/documentation/ref-manual/structure.rst
@@ -750,7 +750,9 @@
 -------------
 
 This directory contains OpenEmbedded Python library code used during the
-build process.
+build process. It is enabled via the ``addpylib`` directive in
+``meta/conf/local.conf``. For more information, see
+:ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`.
 
 .. _structure-meta-recipes-bsp:
 
diff --git a/poky/documentation/ref-manual/svg/releases.svg b/poky/documentation/ref-manual/svg/releases.svg
new file mode 100644
index 0000000..f260724
--- /dev/null
+++ b/poky/documentation/ref-manual/svg/releases.svg
@@ -0,0 +1,1230 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   version="1.1"
+   id="svg2"
+   width="1175.0006"
+   height="568.85858"
+   viewBox="0 0 1175.0006 568.85856"
+   sodipodi:docname="releases.svg"
+   inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:dc="http://purl.org/dc/elements/1.1/">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6">
+    <inkscape:path-effect
+       effect="powerstroke"
+       id="path-effect6121"
+       is_visible="true"
+       lpeversion="1"
+       offset_points="0,0.5"
+       sort_points="true"
+       interpolator_type="CubicBezierJohan"
+       interpolator_beta="0.2"
+       start_linecap_type="zerowidth"
+       linejoin_type="extrp_arc"
+       miter_limit="4"
+       scale_width="1"
+       end_linecap_type="zerowidth"
+       not_jump="false" />
+    <marker
+       style="overflow:visible"
+       id="marker5783"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5781" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5623"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5621" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5487"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5485" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5285"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="scale(0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5283" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5161"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5159" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker4860"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4858" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker4504"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffa348;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4502" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Mend"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Mend"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         style="fill:#62a0ea;fill-opacity:1;fill-rule:evenodd;stroke:#62a0ea;stroke-width:1pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path3318" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker4174"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="scale(0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#62a0ea;fill-opacity:1;fill-rule:evenodd;stroke:#62a0ea;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4172" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Mend"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffa348;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path3336" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Mstart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(0.4,0,0,0.4,4,0)"
+         style="fill:#ff7800;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:1pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path3315" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Lstart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lstart"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ff7800;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path3327" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow1Lstart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lstart"
+       inkscape:isstock="true">
+      <path
+         transform="matrix(0.8,0,0,0.8,10,0)"
+         style="fill:#ff7800;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:1pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path3309" />
+    </marker>
+    <linearGradient
+       id="linearGradient921"
+       inkscape:swatch="solid">
+      <stop
+         style="stop-color:#deddda;stop-opacity:1;"
+         offset="0"
+         id="stop919" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6035-4">
+      <stop
+         id="stop6037-2"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop6039-9"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Mstart-4"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="scale(0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffa348;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path3333-2" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Mend-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffa348;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path3336-7" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5623-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5621-3" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="Arrow2Mend-4"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ffa348;fill-opacity:1;fill-rule:evenodd;stroke:#ffa348;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path3336-3" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5285-1"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="scale(0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5283-7" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5161-4"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5159-3" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5285-1-4"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="scale(0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5283-7-6" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker5161-4-9"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend"
+       inkscape:isstock="true">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path5159-3-4" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="marker4174-8"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mstart"
+       inkscape:isstock="true">
+      <path
+         transform="scale(0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#62a0ea;fill-opacity:1;fill-rule:evenodd;stroke:#62a0ea;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4172-8" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1846"
+     inkscape:window-height="1016"
+     id="namedview4"
+     showgrid="true"
+     inkscape:zoom="0.72360224"
+     inkscape:cx="889.30073"
+     inkscape:cy="397.31773"
+     inkscape:window-x="1994"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g10"
+     inkscape:document-rotation="0"
+     inkscape:snap-perpendicular="true"
+     fit-margin-top="30"
+     lock-margins="true"
+     fit-margin-left="30"
+     fit-margin-right="30"
+     fit-margin-bottom="30"
+     inkscape:pagecheckerboard="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid1257"
+       originx="-289.99935"
+       originy="269.99997" />
+  </sodipodi:namedview>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Image"
+     id="g10"
+     transform="translate(-289.99935,270)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 1080,220.00002 V -240 v 0 0"
+       id="path207708" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 1200,220.00002 V -240 v 0 0"
+       id="path207708-4" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 1320,220.00002 V -240 v 0 0"
+       id="path207708-4-3" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 960,220.00002 V -240 v 0 0"
+       id="path207708-9" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 840,220.00001 v -375 0 0"
+       id="path207708-9-6" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 840,220.00002 V -240 v 0 0"
+       id="path207708-9-6-2" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 720,220.00002 V -240 v 0 0"
+       id="path207708-9-6-2-5" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 600,220.00002 V -240 v 0 0"
+       id="path207708-9-6-2-5-9" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 480,220.00002 V -240 v 0 0"
+       id="path207708-9-6-2-5-9-0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 360,220.00002 V -240 v 0 0"
+       id="path207708-9-6-2-5-9-0-5" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="142.22464"
+       y="565.10297"
+       id="text907"><tspan
+         sodipodi:role="line"
+         id="tspan905"
+         x="142.22464"
+         y="565.10297" /></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="98.363503"
+       y="637.8432"
+       id="text911"><tspan
+         sodipodi:role="line"
+         id="tspan909"
+         x="98.363503"
+         y="637.8432" /></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-59.575905"
+       y="580.05695"
+       id="text915"><tspan
+         sodipodi:role="line"
+         id="tspan913"
+         x="-59.575905"
+         y="580.05695" /></text>
+    <rect
+       style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0"
+       width="960.00006"
+       height="45.000004"
+       x="360"
+       y="154.99997"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="420.52835"
+       y="174.12433"
+       id="text1185-3-55-4"><tspan
+         sodipodi:role="line"
+         x="420.52835"
+         y="174.12433"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8">Dunfell (LTS)</tspan><tspan
+         sodipodi:role="line"
+         x="420.52835"
+         y="192.121"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317">3.1</tspan></text>
+    <rect
+       style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4"
+       width="140.00002"
+       height="45.000004"
+       x="480"
+       y="99.999969"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="534.10651"
+       y="118.94971"
+       id="text1185-3-55-4-0"><tspan
+         sodipodi:role="line"
+         x="534.10651"
+         y="118.94971"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6">Gatesgarth</tspan><tspan
+         sodipodi:role="line"
+         x="534.10651"
+         y="136.9464"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2">3.2</tspan></text>
+    <rect
+       style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4-4"
+       width="140.00002"
+       height="45.000004"
+       x="599.99994"
+       y="45.000011"
+       ry="2.2558987" />
+    <rect
+       style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4-4-9"
+       width="160.00002"
+       height="45.000004"
+       x="720"
+       y="-9.9999905"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="766.10297"
+       y="9.57586"
+       id="text1185-3-55-4-0-0"><tspan
+         sodipodi:role="line"
+         x="766.10297"
+         y="9.57586"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6-3">Honister</tspan><tspan
+         sodipodi:role="line"
+         x="766.10297"
+         y="27.57254"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2-9">3.4</tspan></text>
+    <rect
+       style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4-4-9-4"
+       width="140.00002"
+       height="45.000004"
+       x="960"
+       y="-120"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1008.4941"
+       y="-100.605"
+       id="text1185-3-55-4-0-0-0"><tspan
+         sodipodi:role="line"
+         x="1008.4941"
+         y="-100.605"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6-3-9">Langdale</tspan><tspan
+         sodipodi:role="line"
+         x="1008.4941"
+         y="-82.608322"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2-9-1">4.1</tspan></text>
+    <rect
+       style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4-4-9-4-5"
+       width="140.00002"
+       height="45.000004"
+       x="1080"
+       y="-174.99998"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1134.2344"
+       y="-155.49881"
+       id="text1185-3-55-4-0-0-0-1"><tspan
+         sodipodi:role="line"
+         x="1134.2344"
+         y="-155.49881"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6-3-9-7">Mickledore</tspan><tspan
+         sodipodi:role="line"
+         x="1134.2344"
+         y="-137.50214"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2-9-1-4">4.2</tspan></text>
+    <rect
+       style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4-4-9-4-5-3"
+       width="140.00014"
+       height="45.000004"
+       x="1199.9999"
+       y="-229.99998"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1247.2329"
+       y="-210.32925"
+       id="text1185-3-55-4-0-0-0-1-1"><tspan
+         sodipodi:role="line"
+         x="1247.2329"
+         y="-210.32925"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6-3-9-7-4">Nanbield</tspan><tspan
+         sodipodi:role="line"
+         x="1247.2329"
+         y="-192.33258"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2-9-1-4-6">4.3</tspan></text>
+    <rect
+       style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+       id="rect917-0-0-4-4-9-9"
+       width="480.00006"
+       height="45.000004"
+       x="860"
+       y="-64.999992"
+       ry="2.2558987" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="928.49872"
+       y="-45.648258"
+       id="text1185-3-55-4-0-0-9"><tspan
+         sodipodi:role="line"
+         x="928.49872"
+         y="-45.648258"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan
+         sodipodi:role="line"
+         x="928.49872"
+         y="-27.651579"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2-9-0">4.0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="650.42737"
+       y="64.633629"
+       id="text1185-3-55-4-0-0-7"><tspan
+         sodipodi:role="line"
+         x="650.42737"
+         y="64.633629"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan957-2-8-6-3-2">Hardknott</tspan><tspan
+         sodipodi:role="line"
+         x="650.42737"
+         y="82.63031"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+         id="tspan10317-2-9-8">3.3</tspan></text>
+    <g
+       id="g1125-0"
+       transform="matrix(0.42240595,0,0,0.41654472,354.16682,-355.15199)"
+       style="stroke:none;stroke-width:2.38399">
+      <rect
+         style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.76797;stroke-opacity:1"
+         id="rect1061-9"
+         width="452.00439"
+         height="192.0562"
+         x="11.609296"
+         y="276.44562"
+         ry="4.0176301" />
+      <g
+         id="g1109-1"
+         transform="translate(-2.7615661,-1.7576335)"
+         style="stroke:none;stroke-width:2.38399">
+        <path
+           id="path14-9"
+           class="st0"
+           d="m 439.74452,358.11274 c 0,4.22 -3.41,7.64 -7.64,7.64 -4.22,0 -7.63,-3.42 -7.63,-7.64 0,-4.22 3.41,-7.64 7.63,-7.64 4.23,0 7.64,3.42 7.64,7.64 v 0"
+           style="fill:#4a97d2;fill-opacity:1;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path16-6"
+           class="st1"
+           d="m 114.56452,324.94274 -11.13,-6.3 -22.409996,45.41 -23.9,-45.41 -11.27,6.3 28.41,53.38 c -0.21,0.51 -0.86,1.9 -1.95,4.22 -1.11,2.21 -2.25,4.41 -3.46,6.62 -2.11,3.81 -4.26,6.91 -6.46,9.32 -2.21,2.51 -4.46,4.51 -6.78,6.02 -2.3,1.51 -4.7,2.65 -7.21,3.46 -2.41,0.8 -4.87,1.45 -7.38,1.95 l 5.12,10.68 c 1.6,-0.21 3.75,-0.71 6.46,-1.51 2.81,-0.7 5.86,-2.06 9.17,-4.06 3.3,-2 6.67,-4.86 10.07,-8.57 3.52,-3.71 6.78,-8.62 9.78,-14.73 l 32.939996,-66.78"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path18-2"
+           class="st1"
+           d="m 175.39452,358.18274 c 0,3.51 -0.6,6.76 -1.81,9.78 -1.21,3 -2.86,5.62 -4.95,7.81 -2.01,2.11 -4.41,3.81 -7.22,5.12 -2.71,1.19 -5.67,1.8 -8.87,1.8 -3.21,0 -6.22,-0.6 -9.02,-1.8 -2.81,-1.31 -5.27,-3.01 -7.38,-5.12 -2,-2.19 -3.6,-4.81 -4.81,-7.81 -1.21,-3.01 -1.81,-6.27 -1.81,-9.78 0,-3.51 0.6,-6.76 1.81,-9.77 1.21,-3 2.81,-5.61 4.81,-7.82 2.11,-2.21 4.57,-3.92 7.38,-5.11 2.8,-1.32 5.81,-1.97 9.02,-1.97 3.21,0 6.16,0.65 8.87,1.97 2.81,1.19 5.21,2.9 7.22,5.11 2.1,2.21 3.75,4.81 4.95,7.82 1.2,3.01 1.81,6.26 1.81,9.77 m 13.98,0 c 0,-5.21 -0.95,-10.08 -2.86,-14.59 -1.81,-4.51 -4.36,-8.42 -7.67,-11.73 -3.32,-3.3 -7.22,-5.86 -11.73,-7.67 -4.51,-1.9 -9.38,-2.86 -14.59,-2.86 -5.21,0 -10.08,0.95 -14.59,2.86 -4.51,1.81 -8.43,4.36 -11.73,7.67 -3.3,3.31 -5.92,7.22 -7.82,11.73 -1.9,4.51 -2.86,9.38 -2.86,14.59 0,5.21 0.95,10.08 2.86,14.59 1.9,4.41 4.52,8.27 7.82,11.57 3.3,3.32 7.22,5.92 11.73,7.82 4.51,1.81 9.38,2.71 14.59,2.71 5.21,0 10.08,-0.9 14.59,-2.71 4.51,-1.91 8.41,-4.51 11.73,-7.82 3.3,-3.3 5.86,-7.16 7.67,-11.57 1.91,-4.51 2.86,-9.38 2.86,-14.59"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path20-5"
+           class="st1"
+           d="m 373.22452,358.18274 c 0,3.51 -0.6,6.76 -1.81,9.78 -1.21,3 -2.86,5.62 -4.97,7.81 -2,2.11 -4.4,3.81 -7.21,5.12 -2.71,1.19 -5.67,1.8 -8.87,1.8 -3.21,0 -6.22,-0.6 -9.03,-1.8 -2.8,-1.31 -5.26,-3.01 -7.37,-5.12 -2,-2.19 -3.61,-4.81 -4.81,-7.81 -1.21,-3.01 -1.81,-6.27 -1.81,-9.78 0,-3.51 0.6,-6.76 1.81,-9.77 1.21,-3 2.81,-5.61 4.81,-7.82 2.11,-2.21 4.57,-3.92 7.37,-5.11 2.81,-1.32 5.82,-1.97 9.03,-1.97 3.21,0 6.16,0.65 8.87,1.97 2.81,1.19 5.21,2.9 7.21,5.11 2.11,2.21 3.76,4.81 4.97,7.82 1.21,3.01 1.81,6.26 1.81,9.77 m 13.98,0 c 0,-5.21 -0.95,-10.08 -2.86,-14.59 -1.81,-4.51 -4.36,-8.42 -7.67,-11.73 -3.32,-3.3 -7.22,-5.86 -11.73,-7.67 -4.51,-1.9 -9.38,-2.86 -14.59,-2.86 -5.22,0 -10.08,0.95 -14.59,2.86 -4.51,1.81 -8.43,4.36 -11.73,7.67 -3.3,3.31 -5.92,7.22 -7.82,11.73 -1.9,4.51 -2.86,9.38 -2.86,14.59 0,5.21 0.95,10.08 2.86,14.59 1.9,4.41 4.52,8.27 7.82,11.57 3.3,3.32 7.22,5.92 11.73,7.82 4.51,1.81 9.37,2.71 14.59,2.71 5.21,0 10.08,-0.9 14.59,-2.71 4.51,-1.91 8.41,-4.51 11.73,-7.82 3.3,-3.3 5.86,-7.16 7.67,-11.57 1.91,-4.51 2.86,-9.38 2.86,-14.59"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path22-4"
+           class="st1"
+           d="m 288.05452,298.59274 -13.39,7.52 v 16.45 h -36.21 c -26.15,0 -41.9,12.74 -41.9,35.95 0,36.04 37.55,42.84 64.25,29.96 l -5.63,-10.92 c -21.13,9.23 -44.53,5.3 -44.53,-19.28 0,-15.86 8.26,-24.54 27.49,-24.54 h 36.54 v 43.82 c 0,19.37 22.19,19.81 35.95,11.86 l -5.29,-10.45 c -8.85,4.48 -17.26,5.06 -17.26,-3.53 v -41.7 h 18.32 v -11.17 h -18.32 l -0.02,-23.97 v 0"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path24-4"
+           class="st1"
+           d="m 136.79452,428.30274 h 3.35 c 1.69,-0.01 3.34,1.19 3.34,2.9 0,2.87 -3.23,3.3 -3.23,3.3 l -3.46,0.02 z m -4.84,-4.1 v 25.3 h 4.83 l 0.06,-10.67 c 8.62,0.54 11.84,-2.46 11.84,-7.75 0,-4.75 -4.26,-6.88 -8.34,-6.88 h -8.39 v 0"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path26-9"
+           class="st1"
+           d="m 224.38452,436.87274 c 0,1.23 -0.23,2.39 -0.69,3.46 -0.42,1.04 -1.02,1.95 -1.81,2.74 -0.78,0.78 -1.7,1.4 -2.75,1.86 -1.04,0.42 -2.17,0.64 -3.38,0.64 -1.22,0 -2.35,-0.22 -3.39,-0.64 -1.05,-0.46 -1.96,-1.07 -2.75,-1.86 -0.76,-0.78 -1.36,-1.7 -1.81,-2.74 -0.46,-1.07 -0.69,-2.23 -0.69,-3.46 0,-1.23 0.23,-2.37 0.69,-3.42 0.45,-1.06 1.05,-1.99 1.81,-2.77 0.78,-0.78 1.7,-1.39 2.75,-1.82 1.04,-0.45 2.17,-0.67 3.39,-0.67 1.21,0 2.34,0.23 3.38,0.67 1.05,0.43 1.96,1.04 2.75,1.82 0.78,0.78 1.39,1.71 1.81,2.77 0.46,1.05 0.69,2.19 0.69,3.42 m 4.9,0 c 0,-1.81 -0.35,-3.5 -1.06,-5.06 -0.69,-1.59 -1.65,-2.97 -2.89,-4.12 -1.21,-1.17 -2.64,-2.09 -4.3,-2.75 -1.64,-0.69 -3.41,-1.04 -5.3,-1.04 -1.9,0 -3.69,0.35 -5.35,1.04 -1.64,0.66 -3.06,1.58 -4.27,2.75 -1.22,1.16 -2.17,2.53 -2.89,4.12 -0.69,1.57 -1.03,3.25 -1.03,5.06 0,1.83 0.34,3.53 1.03,5.1 0.72,1.57 1.68,2.94 2.89,4.12 1.21,1.17 2.63,2.09 4.27,2.75 1.66,0.66 3.45,1 5.35,1 1.89,0 3.67,-0.34 5.3,-1 1.66,-0.66 3.1,-1.58 4.3,-2.75 1.24,-1.18 2.21,-2.55 2.89,-4.12 0.71,-1.56 1.06,-3.26 1.06,-5.1"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path28-9"
+           class="st1"
+           d="m 249.02452,424.25274 v 19.18 c 0,0.77 -0.57,1.63 -1.51,1.65 l -1.51,0.06 0.08,4.7 1.41,0.02 c 4.73,0.07 6.36,-4.37 6.36,-6.45 v -19.13"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path30-3"
+           class="st1"
+           d="m 290.20452,424.19274 h -16.13 v 25.22 h 16.2 l -0.07,-4.06 h -11.28 v -6.58 h 9.44 v -4.06 h -9.44 v -6.38 h 11.21 l 0.07,-4.14"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path32-6"
+           class="st1"
+           d="m 327.39452,430.24274 c -8.26,-4.53 -16.39,-1.78 -16.39,6.52 0,6.69 6.43,11.84 17,6.31 l 1.53,4.13 c -10.15,5.58 -23.51,1.6 -23.51,-10.44 0,-10.91 11.85,-16.59 23.36,-10.61 l -1.99,4.09"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path34-0"
+           class="st1"
+           d="m 366.07452,424.19274 0.01,4.13 h -8.05 v 21.16 h -4.85 v -21.15 h -7.73 l 0.11,-4.13 h 20.51"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+        <path
+           id="path36-5"
+           class="st1"
+           d="m 172.67452,428.30274 h 3.35 c 1.69,-0.01 3.34,1.19 3.34,2.9 0,2.87 -3.23,3.3 -3.23,3.3 l -3.46,0.02 z m -4.82,-4.1 v 25.3 h 4.82 v -10.89 h 3.2 l 5.59,10.89 h 5.5 l -6.67,-12.2 c 2.64,-1.18 4.01,-3.26 4.01,-6.22 0,-4.94 -4.33,-6.88 -9.09,-6.88 h -7.36 v 0"
+           style="fill:#ffffff;stroke:none;stroke-width:0.238399;stroke-opacity:1" />
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="313.46567"
+       y="412.9321"
+       id="text3781"><tspan
+         sodipodi:role="line"
+         id="tspan3779"
+         x="313.46567"
+         y="412.9321" /></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1199.6055"
+       y="250.21216"
+       id="text1185-9-7-1-1"><tspan
+         sodipodi:role="line"
+         x="1199.6055"
+         y="250.21216"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="1199.6055"
+         y="268.20883"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906">2023</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="962.71832"
+       y="250.21216"
+       id="text1185-9-7-1-1-0"><tspan
+         sodipodi:role="line"
+         x="962.71832"
+         y="250.21216"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-42">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="962.71832"
+         y="268.20883"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-9">2022</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="721.13617"
+       y="250.21216"
+       id="text1185-9-7-1-1-2"><tspan
+         sodipodi:role="line"
+         x="721.13617"
+         y="250.21216"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-1">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="721.13617"
+         y="268.20883"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-5">2021</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="485.04486"
+       y="250.21216"
+       id="text1185-9-7-1-1-80"><tspan
+         sodipodi:role="line"
+         x="485.04486"
+         y="250.21216"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-5">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="485.04486"
+         y="268.20883"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-6">2020</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="360.96921"
+       y="250.07544"
+       id="text1185-9-7-1-1-8"><tspan
+         sodipodi:role="line"
+         x="360.96921"
+         y="250.07544"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="360.96921"
+         y="268.07211"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7">2020</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="840.9248"
+       y="250.07544"
+       id="text1185-9-7-1-1-8-1"><tspan
+         sodipodi:role="line"
+         x="840.9248"
+         y="250.07544"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0">Apr</tspan><tspan
+         sodipodi:role="line"
+         x="840.9248"
+         y="268.07211"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3">2022</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1317.4003"
+       y="250.07544"
+       id="text1185-9-7-1-1-8-1-0"><tspan
+         sodipodi:role="line"
+         x="1317.4003"
+         y="250.07544"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-4">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="1317.4003"
+         y="268.07211"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-8">2024</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1081.4458"
+       y="250.07544"
+       id="text1185-9-7-1-1-8-1-0-2"><tspan
+         sodipodi:role="line"
+         x="1081.4458"
+         y="250.07544"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-4-8">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="1081.4458"
+         y="268.07211"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-8-3">2023</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="604.18005"
+       y="250.07544"
+       id="text1185-9-7-1-1-8-1-7"><tspan
+         sodipodi:role="line"
+         x="604.18005"
+         y="250.07544"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-5">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="604.18005"
+         y="268.07211"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-6">2021</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-16.290483"
+       y="345.7359"
+       id="text3116"><tspan
+         sodipodi:role="line"
+         id="tspan3114"
+         x="-16.290483"
+         y="345.7359" /></text>
+    <path
+       id="path29430"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 319.99935,219.99912 H 1435 Z" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 360,219.99997 v 10.00004 0"
+       id="path29548" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 480,219.99996 v 10 0"
+       id="path29548-5" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 600,219.99992 v 10.00005 0"
+       id="path29548-5-1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 720,220.00002 v 9.99999 0"
+       id="path29548-5-1-3" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 840,220.00002 v 9.99995 0"
+       id="path29548-5-1-3-6" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 960,220.00002 v 9.99999 0"
+       id="path29548-5-1-3-6-3" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1080,220.00002 v 9.99999 0"
+       id="path29548-5-1-3-6-3-1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 380,219.99997 v 5.00004 0"
+       id="path29548-8"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 400,219.99997 v 5.00004 0"
+       id="path29548-8-5"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 420,219.99997 v 5 0"
+       id="path29548-8-5-0"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282155" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 440,219.99997 v 5 0"
+       id="path29548-8-5-0-6"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282155" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 460,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 500,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 520,219.99997 v 5 0"
+       id="path29548-8-5-0-6-4-6-2-9"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282155" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 540,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 560,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 580,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 620.266,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 640,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 660,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 679.61073,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 700,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 740,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 760,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 780.36587,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 800,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 820,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 860,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 880,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 899.72384,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 920,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 940,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 980,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1000,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1020,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1040,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1059.7216,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9"
+       inkscape:transform-center-x="-14.78205"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1100,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1120,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1140,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1160,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1179.7216,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7"
+       inkscape:transform-center-x="-14.78205"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1200,220.00002 v 9.99999 0"
+       id="path29548-5-1-3-6-3-1-0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1320,219.99996 v 10 0"
+       id="path29548-5-1-3-6-3-1-0-8" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1220,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1240,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1260,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1280,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1299.7216,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0"
+       inkscape:transform-center-x="-14.78205"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1340,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-3"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1360,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-0"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1380,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-3"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1400,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-0"
+       inkscape:transform-center-x="14.782001"
+       inkscape:transform-center-y="-0.085282837" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1419.7216,219.99997 v 5.00004 0"
+       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-9"
+       inkscape:transform-center-x="-14.78205"
+       inkscape:transform-center-y="-0.085282837" />
+  </g>
+  <style
+     type="text/css"
+     id="style1021"> .st0{fill:#4A97D2;} .st1{fill:#333333;} </style>
+</svg>
diff --git a/poky/documentation/ref-manual/system-requirements.rst b/poky/documentation/ref-manual/system-requirements.rst
index 0fbe3f1..fd4a8af 100644
--- a/poky/documentation/ref-manual/system-requirements.rst
+++ b/poky/documentation/ref-manual/system-requirements.rst
@@ -29,7 +29,26 @@
    For more information about the Yocto Project Documentation set, see
    the :ref:`ref-manual/resources:links and related documentation` section.
 
-.. _detailed-supported-distros:
+Minimum Free Disk Space
+=======================
+
+To build an image such as ``core-image-sato`` for the ``qemux86-64`` machine,
+you need a system with at least &MIN_DISK_SPACE; Gbytes of free disk space.
+However, much more disk space will be necessary to build more complex images,
+to run multiple builds and to cache build artifacts, improving build efficiency.
+
+If you have a shortage of disk space, see the ":doc:`/dev-manual/disk-space`"
+section of the Development Tasks Manual.
+
+Minimum System RAM
+==================
+
+You will manage to build an image such as ``core-image-sato`` for the
+``qemux86-64`` machine with as little as &MIN_RAM; Gbytes of RAM on an old
+system with 4 CPU cores, but your builds will be much faster on a system with
+as much RAM and as many CPU cores as possible.
+
+.. _system-requirements-supported-distros:
 
 Supported Linux Distributions
 =============================
diff --git a/poky/documentation/ref-manual/tasks.rst b/poky/documentation/ref-manual/tasks.rst
index f2b9318..0db960b 100644
--- a/poky/documentation/ref-manual/tasks.rst
+++ b/poky/documentation/ref-manual/tasks.rst
@@ -260,17 +260,6 @@
 ":ref:`overview-manual/concepts:package feeds`" section in
 the Yocto Project Overview and Concepts Manual.
 
-.. _ref-tasks-package_write_tar:
-
-``do_package_write_tar``
-------------------------
-
-Creates tarballs and places them in the
-``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory in
-the package feeds area. For more information, see the
-":ref:`overview-manual/concepts:package feeds`" section in
-the Yocto Project Overview and Concepts Manual.
-
 .. _ref-tasks-packagedata:
 
 ``do_packagedata``
diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst
index ec447d3..4baef38 100644
--- a/poky/documentation/ref-manual/terms.rst
+++ b/poky/documentation/ref-manual/terms.rst
@@ -123,6 +123,10 @@
       tools, such as a required version of the GCC compiler to run the
       OpenEmbedded build system.
 
+      See the ":ref:`system-requirements-buildtools`" paragraph in the
+      Reference Manual for details about downloading or building an archive
+      of such tools.
+
    :term:`buildtools-make`
       A variant of :term:`buildtools`, just providing the required
       version of ``make`` to run the OpenEmbedded build system.
@@ -208,6 +212,48 @@
       of the supported image types that the Yocto Project provides, see the
       ":ref:`ref-manual/images:Images`" chapter.
 
+   :term:`Initramfs`
+      An Initial RAM Filesystem (:term:`Initramfs`) is an optionally compressed
+      :wikipedia:`cpio <Cpio>` archive which is extracted
+      by the Linux kernel into RAM in a special :wikipedia:`tmpfs <Tmpfs>`
+      instance, used as the initial root filesystem.
+
+      This is a replacement for the legacy init RAM disk ("initrd")
+      technique, booting on an emulated block device in RAM, but being less
+      efficient because of the overhead of going through a filesystem and
+      having to duplicate accessed file contents in the file cache in RAM,
+      as for any block device.
+
+      .. note:
+
+         As far as bootloaders are concerned, :term:`Initramfs` and "initrd"
+         images are still copied to RAM in the same way. That's why most
+	 most bootloaders refer to :term:`Initramfs` images as "initrd"
+	 or "init RAM disk".
+
+      This kind of mechanism is typically used for two reasons:
+
+      -  For booting the same kernel binary on multiple systems requiring
+         different device drivers. The :term:`Initramfs` image is then customized
+	 for each type of system, to include the specific  kernel modules
+         necessary to access the final root filesystem. This technique
+	 is used on all GNU / Linux distributions for desktops and servers.
+
+      -  For booting faster. As the root filesystem is extracted into RAM,
+         accessing the first user-space applications is very fast, compared
+         to having to initialize a block device, to access multiple blocks
+         from it, and to go through a filesystem having its own overhead.
+         For example, this allows to display a splashscreen very early,
+	 and to later take care of mounting the final root filesystem and
+         loading less time-critical kernel drivers.
+
+      This cpio archive can either be loaded to RAM by the bootloader,
+      or be included in the kernel binary.
+
+      For information on creating and using an :term:`Initramfs`, see the
+      ":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`"
+      section in the Yocto Project Development Tasks Manual.
+
    :term:`Layer`
       A collection of related recipes. Layers allow you to consolidate related
       metadata to customize your build. Layers also isolate information used
@@ -227,6 +273,12 @@
       Layers`" section in the Yocto Project Board Support Packages (BSP)
       Developer's Guide.
 
+   :term:`LTS`
+      This term means "Long Term Support", and in the context of the Yocto
+      Project, it corresponds to selected stable releases for which bug and
+      security fixes are provided for at least two years. See
+      the :ref:`ref-long-term-support-releases` section for details.
+
    :term:`Metadata`
       A key element of the Yocto Project is the Metadata that
       is used to construct a Linux distribution and is contained in the
@@ -246,6 +298,12 @@
       :yocto_git:`yocto-kernel-cache </yocto-kernel-cache>`
       Git repository.
 
+   :term:`Mixin`
+      A :term:`Mixin` layer is a layer which can be created by the community to
+      add a specific feature or support a new version of some package for an
+      :term:`LTS` release. See the :ref:`ref-long-term-support-releases`
+      section for details.
+
    :term:`OpenEmbedded-Core (OE-Core)`
       OE-Core is metadata comprised of
       foundational recipes, classes, and associated files that are meant to
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index c787a17..4dc67a1 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -354,6 +354,9 @@
    :term:`BB_BASEHASH_IGNORE_VARS`
       See :term:`bitbake:BB_BASEHASH_IGNORE_VARS` in the BitBake manual.
 
+   :term:`BB_CACHEDIR`
+      See :term:`bitbake:BB_CACHEDIR` in the BitBake manual.
+
    :term:`BB_CHECK_SSL_CERTS`
       See :term:`bitbake:BB_CHECK_SSL_CERTS` in the BitBake manual.
 
@@ -1986,25 +1989,6 @@
       ":ref:`overview-manual/concepts:package feeds`" section
       in the Yocto Project Overview and Concepts Manual.
 
-   :term:`DEPLOY_DIR_TAR`
-      Points to the area that the OpenEmbedded build system uses to place
-      tarballs that are ready to be used outside of the build system. This
-      variable applies only when :term:`PACKAGE_CLASSES` contains
-      ":ref:`ref-classes-package_tar`".
-
-      The BitBake configuration file initially defines this variable as a
-      sub-folder of :term:`DEPLOY_DIR`::
-
-         DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
-
-      The :ref:`ref-classes-package_tar` class uses the
-      :term:`DEPLOY_DIR_TAR` variable to make sure the
-      :ref:`ref-tasks-package_write_tar` task
-      writes TAR packages into the appropriate folder. For more information
-      on how packaging works, see the
-      ":ref:`overview-manual/concepts:package feeds`" section
-      in the Yocto Project Overview and Concepts Manual.
-
    :term:`DEPLOYDIR`
       When inheriting the :ref:`ref-classes-deploy` class, the
       :term:`DEPLOYDIR` points to a temporary work area for deployed files that
@@ -2914,6 +2898,10 @@
       For guidance on how to create your own file permissions settings
       table file, examine the existing ``fs-perms.txt``.
 
+   :term:`FIT_CONF_DEFAULT_DTB`
+      Specifies the default device tree binary (dtb) file for a fitImage when
+      multiple are provided.
+
    :term:`FIT_DESC`
       Specifies the description string encoded into a fitImage. The default
       value is set by the :ref:`ref-classes-kernel-fitimage`
@@ -3583,11 +3571,34 @@
    :term:`IMAGE_LINK_NAME`
       The name of the output image symlink (which does not include
       the version part as :term:`IMAGE_NAME` does). The default value
-      is derived using the :term:`IMAGE_BASENAME` and :term:`MACHINE`
-      variables::
+      is derived using the :term:`IMAGE_BASENAME` and
+      :term:`IMAGE_MACHINE_SUFFIX` variables::
 
-         IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}"
+         IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}"
 
+      .. note::
+
+         It is possible to set this to "" to disable symlink creation,
+         however, you also need to set :term:`IMAGE_NAME` to still have
+         a reasonable value e.g.::
+
+            IMAGE_LINK_NAME = ""
+            IMAGE_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}"
+
+   :term:`IMAGE_MACHINE_SUFFIX`
+      Specifies the by default machine-specific suffix for image file names
+      (before the extension). The default value is set as follows::
+
+         IMAGE_MACHINE_SUFFIX ??= "-${MACHINE}"
+
+      The default :term:`DEPLOY_DIR_IMAGE` already has a :term:`MACHINE`
+      subdirectory, so you may find it unnecessary to also include this suffix
+      in the name of every image file. If you prefer to remove the suffix you
+      can set this variable to an empty string::
+
+         IMAGE_MACHINE_SUFFIX = ""
+
+      (Not to be confused with :term:`IMAGE_NAME_SUFFIX`.)
 
    :term:`IMAGE_MANIFEST`
       The manifest file for the image. This file lists all the installed
@@ -3608,12 +3619,11 @@
       section in the Yocto Project Overview and Concepts Manual.
 
    :term:`IMAGE_NAME`
-      The name of the output image files minus the extension. This variable
-      is derived using the :term:`IMAGE_BASENAME`,
-      :term:`MACHINE`, and :term:`IMAGE_VERSION_SUFFIX`
-      variables::
+      The name of the output image files minus the extension. By default
+      this variable is set using the :term:`IMAGE_LINK_NAME`, and
+      :term:`IMAGE_VERSION_SUFFIX` variables::
 
-         IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+         IMAGE_NAME ?= "${IMAGE_LINK_NAME}${IMAGE_VERSION_SUFFIX}"
 
    :term:`IMAGE_NAME_SUFFIX`
       Suffix used for the image output filename --- defaults to ``".rootfs"``
@@ -3654,12 +3664,7 @@
       Defines the package type (i.e. DEB, RPM, IPK, or TAR) used by the
       OpenEmbedded build system. The variable is defined appropriately by
       the :ref:`ref-classes-package_deb`, :ref:`ref-classes-package_rpm`,
-      :ref:`ref-classes-package_ipk`, or :ref:`ref-classes-package_tar` class.
-
-      .. note::
-
-         The ``package_tar`` class is broken and is not supported. It is
-         recommended that you do not use it.
+      or :ref:`ref-classes-package_ipk` class.
 
       The :ref:`ref-classes-populate-sdk-*` and :ref:`ref-classes-image`
       classes use the :term:`IMAGE_PKGTYPE` for packaging up images and SDKs.
@@ -3837,43 +3842,6 @@
       files to be deployed into :term:`IMGDEPLOYDIR`, and the class will take
       care of copying them into :term:`DEPLOY_DIR_IMAGE` afterwards.
 
-   :term:`INC_PR`
-      Helps define the recipe revision for recipes that share a common
-      ``include`` file. You can think of this variable as part of the
-      recipe revision as set from within an include file.
-
-      Suppose, for example, you have a set of recipes that are used across
-      several projects. And, within each of those recipes the revision (its
-      :term:`PR` value) is set accordingly. In this case, when
-      the revision of those recipes changes, the burden is on you to find
-      all those recipes and be sure that they get changed to reflect the
-      updated version of the recipe. In this scenario, it can get
-      complicated when recipes that are used in many places and provide
-      common functionality are upgraded to a new revision.
-
-      A more efficient way of dealing with this situation is to set the
-      :term:`INC_PR` variable inside the ``include`` files that the recipes
-      share and then expand the :term:`INC_PR` variable within the recipes to
-      help define the recipe revision.
-
-      The following provides an example that shows how to use the
-      :term:`INC_PR` variable given a common ``include`` file that defines the
-      variable. Once the variable is defined in the ``include`` file, you
-      can use the variable to set the :term:`PR` values in each recipe. You
-      will notice that when you set a recipe's :term:`PR` you can provide more
-      granular revisioning by appending values to the :term:`INC_PR` variable::
-
-         recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
-         recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
-         recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
-         recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
-
-      The
-      first line of the example establishes the baseline revision to be
-      used for all recipes that use the ``include`` file. The remaining
-      lines in the example are from individual recipes and show how the
-      :term:`PR` value is set.
-
    :term:`INCOMPATIBLE_LICENSE`
       Specifies a space-separated list of license names (as they would
       appear in :term:`LICENSE`) that should be excluded
@@ -3988,46 +3956,36 @@
          even if the toolchain's binaries are strippable, there are other files
          needed for the build that are not strippable.
 
-   :term:`Initramfs`
-      An Initial RAM Filesystem (:term:`Initramfs`) is an optionally compressed
-      :wikipedia:`cpio <Cpio>` archive which is extracted
-      by the Linux kernel into RAM in a special :wikipedia:`tmpfs <Tmpfs>`
-      instance, used as the initial root filesystem.
+   :term:`INIT_MANAGER`
+      Specifies the system init manager to use. Available options are:
 
-      This is a replacement for the legacy init RAM disk ("initrd")
-      technique, booting on an emulated block device in RAM, but being less
-      efficient because of the overhead of going through a filesystem and
-      having to duplicate accessed file contents in the file cache in RAM,
-      as for any block device.
+      -  ``sysvinit``
+      -  ``systemd``
+      -  ``mdev-busybox``
+      -  ``none``
 
-      .. note:
+      With ``sysvinit``, the init manager is set to
+      :wikipedia:`SysVinit <Init#SysV-style>`, the traditional UNIX init
+      system. This is the default choice in the Poky distribution, together with
+      the Udev device manager (see the ":ref:`device-manager`" section).
 
-         As far as bootloaders are concerned, :term:`Initramfs` and "initrd"
-         images are still copied to RAM in the same way. That's why most
-	 most bootloaders refer to :term:`Initramfs` images as "initrd"
-	 or "init RAM disk".
+      With ``systemd``, the init manager becomes :wikipedia:`systemd <Systemd>`,
+      which comes with the :wikipedia:`udev <Udev>` device manager.
 
-      This kind of mechanism is typically used for two reasons:
+      With ``mdev-busybox``, the init manager becomes the much simpler BusyBox
+      init, together with the BusyBox mdev device manager. This is the simplest
+      and lightest solution, and probably the best choice for low-end systems
+      with a rather slow CPU and a limited amount of RAM.
 
-      -  For booting the same kernel binary on multiple systems requiring
-         different device drivers. The :term:`Initramfs` image is then customized
-	 for each type of system, to include the specific  kernel modules
-         necessary to access the final root filesystem. This technique
-	 is used on all GNU / Linux distributions for desktops and servers.
+      With ``none``, the init manager is also set to ``sysvinit``. This is the
+      default setting in OpenEmbedded-Core. This option also selects the
+      :wikipedia:`udev <Udev>` device manager.
 
-      -  For booting faster. As the root filesystem is extracted into RAM,
-         accessing the first user-space applications is very fast, compared
-         to having to initialize a block device, to access multiple blocks
-         from it, and to go through a filesystem having its own overhead.
-         For example, this allows to display a splashscreen very early,
-	 and to later take care of mounting the final root filesystem and
-         loading less time-critical kernel drivers.
-
-      This cpio archive can either be loaded to RAM by the bootloader,
-      or be included in the kernel binary.
-
-      For information on creating and using an :term:`Initramfs`, see the
-      ":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`"
+      More concretely, this is used to include
+      ``conf/distro/include/init-manager-${INIT_MANAGER}.inc`` into the global
+      configuration. You can have a look at the
+      :yocto_git:`meta/conf/distro/include/init-manager-*.inc </poky/tree/meta/conf/distro/include>`
+      files for more information, and also the ":ref:`init-manager`"
       section in the Yocto Project Development Tasks Manual.
 
    :term:`INITRAMFS_DEPLOY_DIR_IMAGE`
@@ -4140,6 +4098,19 @@
       :term:`Initramfs`, see the ":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section
       in the Yocto Project Development Tasks Manual.
 
+   :term:`INITRAMFS_IMAGE_NAME`
+
+      This value needs to stay in sync with :term:`IMAGE_LINK_NAME`, but with
+      :term:`INITRAMFS_IMAGE` instead of :term:`IMAGE_BASENAME`. The default value
+      is set as follows:
+
+         INITRAMFS_IMAGE_NAME ?= "${@['${INITRAMFS_IMAGE}${IMAGE_MACHINE_SUFFIX}', ''][d.getVar('INITRAMFS_IMAGE') == '']}"
+
+      That is, if :term:`INITRAMFS_IMAGE` is set, the value of
+      :term:`INITRAMFS_IMAGE_NAME` will be set based upon
+      :term:`INITRAMFS_IMAGE` and :term:`IMAGE_MACHINE_SUFFIX`.
+
+
    :term:`INITRAMFS_LINK_NAME`
       The link name of the initial RAM filesystem image. This variable is
       set in the ``meta/classes-recipe/kernel-artifact-names.bbclass`` file as
@@ -4174,10 +4145,7 @@
 
          INITRAMFS_NAME ?= "initramfs-${KERNEL_ARTIFACT_NAME}"
 
-      The value of the :term:`KERNEL_ARTIFACT_NAME`
-      variable, which is set in the same file, has the following value::
-
-         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+      See :term:`KERNEL_ARTIFACT_NAME` for additional information.
 
    :term:`INITRD`
       Indicates list of filesystem images to concatenate and use as an
@@ -4381,9 +4349,9 @@
       ``meta/classes-recipe/kernel-artifact-names.bbclass`` file, has the
       following default value::
 
-         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}"
 
-      See the :term:`PKGE`, :term:`PKGV`, :term:`PKGR`, :term:`MACHINE`
+      See the :term:`PKGE`, :term:`PKGV`, :term:`PKGR`, :term:`IMAGE_MACHINE_SUFFIX`
       and :term:`IMAGE_VERSION_SUFFIX` variables for additional information.
 
    :term:`KERNEL_CLASSES`
@@ -4395,6 +4363,20 @@
       You can register custom kernel image types with the
       :ref:`ref-classes-kernel` class using this variable.
 
+   :term:`KERNEL_DANGLING_FEATURES_WARN_ONLY`
+      When kernel configuration fragments are missing for some
+      :term:`KERNEL_FEATURES` specified by layers or BSPs,
+      building and configuring the kernel stops with an error.
+    
+      You can turn these errors into warnings by setting the
+      following in ``conf/local.conf``::
+
+         KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
+    
+      You will still be warned that runtime issues may occur,
+      but at least the kernel configuration and build process will
+      be allowed to continue.
+
    :term:`KERNEL_DEBUG_TIMESTAMPS`
       If set to "1", enables timestamping functionality during building
       the kernel. The default is "0" to disable this for reproducibility
@@ -4441,10 +4423,7 @@
 
          KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 
-      The value of the :term:`KERNEL_ARTIFACT_NAME`
-      variable, which is set in the same file, has the following value::
-
-         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+      See :term:`KERNEL_ARTIFACT_NAME` for additional information.
 
    :term:`KERNEL_DTC_FLAGS`
       Specifies the ``dtc`` flags that are passed to the Linux kernel build
@@ -4507,10 +4486,7 @@
 
          KERNEL_FIT_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 
-      The value of the :term:`KERNEL_ARTIFACT_NAME`
-      variable, which is set in the same file, has the following value::
-
-         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+      See :term:`KERNEL_ARTIFACT_NAME` for additional information.
 
    :term:`KERNEL_IMAGE_LINK_NAME`
       The link name for the kernel image. This variable is set in the
@@ -4546,11 +4522,7 @@
 
          KERNEL_IMAGE_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 
-      The value of the
-      :term:`KERNEL_ARTIFACT_NAME` variable,
-      which is set in the same file, has the following value::
-
-         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+      See :term:`KERNEL_ARTIFACT_NAME` for additional information.
 
    :term:`KERNEL_IMAGETYPE`
       The type of kernel to build for a device, usually set by the machine
@@ -5299,10 +5271,7 @@
 
          MODULE_TARBALL_NAME ?= "${KERNEL_ARTIFACT_NAME}"
 
-      The value of the :term:`KERNEL_ARTIFACT_NAME` variable,
-      which is set in the same file, has the following value::
-
-         KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
+      See :term:`KERNEL_ARTIFACT_NAME` for additional information.
 
    :term:`MOUNT_BASE`
       On non-systemd systems (where ``udev-extraconf`` is being used),
@@ -5678,14 +5647,7 @@
       You can provide one or more of the following arguments for the
       variable::
 
-         PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk package_tar"
-
-      .. note::
-
-         While it is a legal option, the :ref:`ref-classes-package_tar`
-         class has limited functionality due to no support for package
-         dependencies by that backend. Therefore, it is recommended that
-         you do not use it.
+         PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
 
       The build system uses only the first argument in the list as the
       package manager when creating your image or SDK. However, packages
@@ -7040,6 +7002,11 @@
 
          RSUGGESTS:${PN} = "useful_package another_package"
 
+   :term:`RUST_CHANNEL`
+      Specifies which version of Rust to build - "stable", "beta" or "nightly".
+      The default value is "stable". Set this at your own risk, as values other
+      than "stable" are not guaranteed to work at a given time.
+
    :term:`S`
       The location in the :term:`Build Directory` where
       unpacked recipe source code resides. By default, this directory is
@@ -7090,6 +7057,14 @@
       The target architecture for the SDK. Typically, you do not directly
       set this variable. Instead, use :term:`SDKMACHINE`.
 
+   :term:`SDK_ARCHIVE_TYPE`
+      Specifies the type of archive to create for the SDK. Valid values:
+
+      - ``tar.xz`` (default)
+      - ``zip``
+
+      Only one archive type can be specified.
+
    :term:`SDK_BUILDINFO_FILE`
       When using the :ref:`ref-classes-image-buildinfo` class,
       specifies the file in the SDK to write the build information into. The
@@ -7318,6 +7293,11 @@
       :term:`DISTRO_VERSION` and
       :term:`METADATA_REVISION` variables.
 
+   :term:`SDK_ZIP_OPTIONS`
+      Specifies extra options to pass to the ``zip`` command when zipping the SDK
+      (i.e. when :term:`SDK_ARCHIVE_TYPE` is set to "zip"). The default value is
+      "-y".
+
    :term:`SDKEXTPATH`
       The default installation directory for the Extensible SDK. By
       default, this directory is based on the :term:`DISTRO`
@@ -7385,9 +7365,9 @@
 
    :term:`SERIAL_CONSOLES`
       Defines a serial console (TTY) to enable using
-      `getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a
-      value that specifies the baud rate followed by the TTY device name
-      separated by a semicolon. Use spaces to separate multiple devices::
+      :wikipedia:`getty <Getty_(Unix)>`. Provide a value that specifies the
+      baud rate followed by the TTY device name separated by a semicolon.
+      Use spaces to separate multiple devices::
 
          SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
 
@@ -7629,6 +7609,32 @@
       (+ 0.07\% with the tested image), compared to just enabling
       :term:`SPDX_INCLUDE_SOURCES`.
 
+   :term:`SPDX_CUSTOM_ANNOTATION_VARS`
+      This option allows to associate `SPDX annotations
+      <https://spdx.github.io/spdx-spec/v2.3/annotations/>`__ to a recipe,
+      using the values of variables in the recipe::
+        
+         ANNOTATION1 = "First annotation for recipe"
+         ANNOTATION2 = "Second annotation for recipe"
+         SPDX_CUSTOM_ANNOTATION_VARS = "ANNOTATION1 ANNOTATION2"
+
+      This will add a new block to the recipe ``.sdpx.json`` output::
+
+         "annotations": [
+           {
+             "annotationDate": "2023-04-18T08:32:12Z",
+             "annotationType": "OTHER",
+             "annotator": "Tool: oe-spdx-creator - 1.0",
+             "comment": "ANNOTATION1=First annotation for recipe"
+           },
+           {
+             "annotationDate": "2023-04-18T08:32:12Z",
+             "annotationType": "OTHER",
+             "annotator": "Tool: oe-spdx-creator - 1.0",
+             "comment": "ANNOTATION2=Second annotation for recipe"
+           }
+         ],
+
    :term:`SPDX_INCLUDE_SOURCES`
       This option allows to add a description of the source files used to build
       the host tools and the target packages, to the ``spdx.json`` files in
@@ -8316,12 +8322,10 @@
       will be silently ignored.
 
    :term:`SYSVINIT_ENABLED_GETTYS`
-      When using
-      :ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
+      When using :ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
       specifies a space-separated list of the virtual terminals that should
-      run a `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
-      (allowing login), assuming :term:`USE_VT` is not set to
-      "0".
+      run a :wikipedia:`getty <Getty_(Unix)>` (allowing login), assuming
+      :term:`USE_VT` is not set to "0".
 
       The default value for :term:`SYSVINIT_ENABLED_GETTYS` is "1" (i.e. only
       run a getty on the first virtual terminal).
@@ -9228,9 +9232,8 @@
    :term:`USE_VT`
       When using
       :ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
-      determines whether or not to run a
-      `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
-      virtual terminals in order to enable logging in through those
+      determines whether or not to run a :wikipedia:`getty <Getty_(Unix)>`
+      on any virtual terminals in order to enable logging in through those
       terminals.
 
       The default value used for :term:`USE_VT` is "1" when no default value is
@@ -9387,6 +9390,18 @@
       file is not persistent. You can override this setting by setting the
       variable to "no" to make the log directory persistent.
 
+   :term:`VOLATILE_TMP_DIR`
+      Specifies the persistence of the target's ``/tmp`` directory.
+
+      By default, :term:`VOLATILE_TMP_DIR` is set to "yes", in which case
+      ``/tmp`` links to a directory which resides in RAM in a ``tmpfs``
+      filesystem.
+
+      If instead, you want the ``/tmp`` directory to be persistent, set the
+      variable to "no" to make it a regular directory in the root filesystem.
+
+      This supports both sysvinit and systemd based systems.
+
    :term:`WARN_QA`
       Specifies the quality assurance checks whose failures are reported as
       warnings by the OpenEmbedded build system. You set this variable in
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index efc795e..c92ef2a 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -1,6 +1,6 @@
 DISTRO = "poky"
 DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
-DISTRO_VERSION = "4.1+snapshot-${METADATA_REVISION}"
+DISTRO_VERSION = "4.2"
 DISTRO_CODENAME = "mickledore"
 SDK_VENDOR = "-pokysdk"
 SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
@@ -33,8 +33,8 @@
 PACKAGE_CLASSES ?= "package_rpm"
 
 SANITY_TESTED_DISTROS ?= " \
-            poky-4.0 \n \
             poky-4.1 \n \
+            poky-4.2 \n \
             ubuntu-18.04 \n \
             ubuntu-20.04 \n \
             ubuntu-22.04 \n \
diff --git a/poky/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc b/poky/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc
new file mode 100644
index 0000000..3a9759c
--- /dev/null
+++ b/poky/meta-selftest/recipes-extended/zvariant/zvariant-crates.inc
@@ -0,0 +1,258 @@
+# Autogenerated with 'bitbake -c update_crates zvariant'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/anes/0.1.6;name=anes-0.1.6 \
+    crate://crates.io/anyhow/1.0.70;name=anyhow-1.0.70 \
+    crate://crates.io/arrayvec/0.7.2;name=arrayvec-0.7.2 \
+    crate://crates.io/atty/0.2.14;name=atty-0.2.14 \
+    crate://crates.io/autocfg/1.1.0;name=autocfg-1.1.0 \
+    crate://crates.io/bitflags/1.3.2;name=bitflags-1.3.2 \
+    crate://crates.io/bumpalo/3.12.0;name=bumpalo-3.12.0 \
+    crate://crates.io/byteorder/1.4.3;name=byteorder-1.4.3 \
+    crate://crates.io/cast/0.3.0;name=cast-0.3.0 \
+    crate://crates.io/cfg-if/1.0.0;name=cfg-if-1.0.0 \
+    crate://crates.io/chrono/0.4.24;name=chrono-0.4.24 \
+    crate://crates.io/ciborium/0.2.0;name=ciborium-0.2.0 \
+    crate://crates.io/ciborium-io/0.2.0;name=ciborium-io-0.2.0 \
+    crate://crates.io/ciborium-ll/0.2.0;name=ciborium-ll-0.2.0 \
+    crate://crates.io/clap/3.2.23;name=clap-3.2.23 \
+    crate://crates.io/clap_lex/0.2.4;name=clap_lex-0.2.4 \
+    crate://crates.io/criterion/0.4.0;name=criterion-0.4.0 \
+    crate://crates.io/criterion-plot/0.5.0;name=criterion-plot-0.5.0 \
+    crate://crates.io/crossbeam-channel/0.5.7;name=crossbeam-channel-0.5.7 \
+    crate://crates.io/crossbeam-deque/0.8.3;name=crossbeam-deque-0.8.3 \
+    crate://crates.io/crossbeam-epoch/0.9.14;name=crossbeam-epoch-0.9.14 \
+    crate://crates.io/crossbeam-utils/0.8.15;name=crossbeam-utils-0.8.15 \
+    crate://crates.io/either/1.8.1;name=either-1.8.1 \
+    crate://crates.io/enumflags2/0.7.5;name=enumflags2-0.7.5 \
+    crate://crates.io/enumflags2_derive/0.7.4;name=enumflags2_derive-0.7.4 \
+    crate://crates.io/form_urlencoded/1.1.0;name=form_urlencoded-1.1.0 \
+    crate://crates.io/futures-channel/0.3.27;name=futures-channel-0.3.27 \
+    crate://crates.io/futures-core/0.3.27;name=futures-core-0.3.27 \
+    crate://crates.io/futures-executor/0.3.27;name=futures-executor-0.3.27 \
+    crate://crates.io/futures-macro/0.3.27;name=futures-macro-0.3.27 \
+    crate://crates.io/futures-task/0.3.27;name=futures-task-0.3.27 \
+    crate://crates.io/futures-util/0.3.27;name=futures-util-0.3.27 \
+    crate://crates.io/getrandom/0.2.8;name=getrandom-0.2.8 \
+    crate://crates.io/half/1.8.2;name=half-1.8.2 \
+    crate://crates.io/hashbrown/0.12.3;name=hashbrown-0.12.3 \
+    crate://crates.io/heck/0.3.3;name=heck-0.3.3 \
+    crate://crates.io/hermit-abi/0.1.19;name=hermit-abi-0.1.19 \
+    crate://crates.io/hermit-abi/0.2.6;name=hermit-abi-0.2.6 \
+    crate://crates.io/idna/0.3.0;name=idna-0.3.0 \
+    crate://crates.io/indexmap/1.9.2;name=indexmap-1.9.2 \
+    crate://crates.io/itertools/0.9.0;name=itertools-0.9.0 \
+    crate://crates.io/itertools/0.10.5;name=itertools-0.10.5 \
+    crate://crates.io/itoa/1.0.6;name=itoa-1.0.6 \
+    crate://crates.io/js-sys/0.3.61;name=js-sys-0.3.61 \
+    crate://crates.io/lazy_static/1.4.0;name=lazy_static-1.4.0 \
+    crate://crates.io/libc/0.2.140;name=libc-0.2.140 \
+    crate://crates.io/log/0.4.17;name=log-0.4.17 \
+    crate://crates.io/memchr/2.5.0;name=memchr-2.5.0 \
+    crate://crates.io/memoffset/0.8.0;name=memoffset-0.8.0 \
+    crate://crates.io/num-integer/0.1.45;name=num-integer-0.1.45 \
+    crate://crates.io/num-traits/0.2.15;name=num-traits-0.2.15 \
+    crate://crates.io/num_cpus/1.15.0;name=num_cpus-1.15.0 \
+    crate://crates.io/once_cell/1.17.1;name=once_cell-1.17.1 \
+    crate://crates.io/oorandom/11.1.3;name=oorandom-11.1.3 \
+    crate://crates.io/os_str_bytes/6.5.0;name=os_str_bytes-6.5.0 \
+    crate://crates.io/percent-encoding/2.2.0;name=percent-encoding-2.2.0 \
+    crate://crates.io/pin-project-lite/0.2.9;name=pin-project-lite-0.2.9 \
+    crate://crates.io/pin-utils/0.1.0;name=pin-utils-0.1.0 \
+    crate://crates.io/pkg-config/0.3.26;name=pkg-config-0.3.26 \
+    crate://crates.io/plotters/0.3.4;name=plotters-0.3.4 \
+    crate://crates.io/plotters-backend/0.3.4;name=plotters-backend-0.3.4 \
+    crate://crates.io/plotters-svg/0.3.3;name=plotters-svg-0.3.3 \
+    crate://crates.io/ppv-lite86/0.2.17;name=ppv-lite86-0.2.17 \
+    crate://crates.io/proc-macro-crate/0.1.5;name=proc-macro-crate-0.1.5 \
+    crate://crates.io/proc-macro-crate/1.3.1;name=proc-macro-crate-1.3.1 \
+    crate://crates.io/proc-macro-error/1.0.4;name=proc-macro-error-1.0.4 \
+    crate://crates.io/proc-macro-error-attr/1.0.4;name=proc-macro-error-attr-1.0.4 \
+    crate://crates.io/proc-macro2/1.0.53;name=proc-macro2-1.0.53 \
+    crate://crates.io/quote/1.0.26;name=quote-1.0.26 \
+    crate://crates.io/rand/0.8.5;name=rand-0.8.5 \
+    crate://crates.io/rand_chacha/0.3.1;name=rand_chacha-0.3.1 \
+    crate://crates.io/rand_core/0.6.4;name=rand_core-0.6.4 \
+    crate://crates.io/rayon/1.7.0;name=rayon-1.7.0 \
+    crate://crates.io/rayon-core/1.11.0;name=rayon-core-1.11.0 \
+    crate://crates.io/regex/1.7.2;name=regex-1.7.2 \
+    crate://crates.io/regex-syntax/0.6.29;name=regex-syntax-0.6.29 \
+    crate://crates.io/ryu/1.0.13;name=ryu-1.0.13 \
+    crate://crates.io/same-file/1.0.6;name=same-file-1.0.6 \
+    crate://crates.io/scopeguard/1.1.0;name=scopeguard-1.1.0 \
+    crate://crates.io/serde/1.0.158;name=serde-1.0.158 \
+    crate://crates.io/serde_bytes/0.11.9;name=serde_bytes-0.11.9 \
+    crate://crates.io/serde_derive/1.0.158;name=serde_derive-1.0.158 \
+    crate://crates.io/serde_json/1.0.94;name=serde_json-1.0.94 \
+    crate://crates.io/serde_repr/0.1.12;name=serde_repr-0.1.12 \
+    crate://crates.io/slab/0.4.8;name=slab-0.4.8 \
+    crate://crates.io/static_assertions/1.1.0;name=static_assertions-1.1.0 \
+    crate://crates.io/strum/0.18.0;name=strum-0.18.0 \
+    crate://crates.io/strum_macros/0.18.0;name=strum_macros-0.18.0 \
+    crate://crates.io/syn/1.0.109;name=syn-1.0.109 \
+    crate://crates.io/syn/2.0.8;name=syn-2.0.8 \
+    crate://crates.io/system-deps/1.3.2;name=system-deps-1.3.2 \
+    crate://crates.io/textwrap/0.16.0;name=textwrap-0.16.0 \
+    crate://crates.io/thiserror/1.0.40;name=thiserror-1.0.40 \
+    crate://crates.io/thiserror-impl/1.0.40;name=thiserror-impl-1.0.40 \
+    crate://crates.io/time/0.3.20;name=time-0.3.20 \
+    crate://crates.io/time-core/0.1.0;name=time-core-0.1.0 \
+    crate://crates.io/time-macros/0.2.8;name=time-macros-0.2.8 \
+    crate://crates.io/tinytemplate/1.2.1;name=tinytemplate-1.2.1 \
+    crate://crates.io/tinyvec/1.6.0;name=tinyvec-1.6.0 \
+    crate://crates.io/tinyvec_macros/0.1.1;name=tinyvec_macros-0.1.1 \
+    crate://crates.io/toml/0.5.11;name=toml-0.5.11 \
+    crate://crates.io/toml_datetime/0.6.1;name=toml_datetime-0.6.1 \
+    crate://crates.io/toml_edit/0.19.8;name=toml_edit-0.19.8 \
+    crate://crates.io/unicode-bidi/0.3.13;name=unicode-bidi-0.3.13 \
+    crate://crates.io/unicode-ident/1.0.8;name=unicode-ident-1.0.8 \
+    crate://crates.io/unicode-normalization/0.1.22;name=unicode-normalization-0.1.22 \
+    crate://crates.io/unicode-segmentation/1.10.1;name=unicode-segmentation-1.10.1 \
+    crate://crates.io/url/2.3.1;name=url-2.3.1 \
+    crate://crates.io/uuid/1.3.0;name=uuid-1.3.0 \
+    crate://crates.io/version-compare/0.0.10;name=version-compare-0.0.10 \
+    crate://crates.io/version_check/0.9.4;name=version_check-0.9.4 \
+    crate://crates.io/walkdir/2.3.3;name=walkdir-2.3.3 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1;name=wasi-0.11.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen/0.2.84;name=wasm-bindgen-0.2.84 \
+    crate://crates.io/wasm-bindgen-backend/0.2.84;name=wasm-bindgen-backend-0.2.84 \
+    crate://crates.io/wasm-bindgen-macro/0.2.84;name=wasm-bindgen-macro-0.2.84 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.84;name=wasm-bindgen-macro-support-0.2.84 \
+    crate://crates.io/wasm-bindgen-shared/0.2.84;name=wasm-bindgen-shared-0.2.84 \
+    crate://crates.io/web-sys/0.3.61;name=web-sys-0.3.61 \
+    crate://crates.io/winapi/0.3.9;name=winapi-0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0;name=winapi-i686-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winapi-util/0.1.5;name=winapi-util-0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0;name=winapi-x86_64-pc-windows-gnu-0.4.0 \
+    crate://crates.io/winnow/0.4.0;name=winnow-0.4.0 \
+    crate://crates.io/zvariant_derive/3.12.0;name=zvariant_derive-3.12.0 \
+    crate://crates.io/zvariant_utils/1.0.0;name=zvariant_utils-1.0.0 \
+"
+
+SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+SRC_URI[anyhow-1.0.70.sha256sum] = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+SRC_URI[arrayvec-0.7.2.sha256sum] = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[chrono-0.4.24.sha256sum] = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+SRC_URI[ciborium-0.2.0.sha256sum] = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+SRC_URI[ciborium-io-0.2.0.sha256sum] = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+SRC_URI[ciborium-ll-0.2.0.sha256sum] = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+SRC_URI[clap-3.2.23.sha256sum] = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+SRC_URI[criterion-0.4.0.sha256sum] = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+SRC_URI[crossbeam-channel-0.5.7.sha256sum] = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
+SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[enumflags2-0.7.5.sha256sum] = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
+SRC_URI[enumflags2_derive-0.7.4.sha256sum] = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
+SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
+SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
+SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
+SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
+SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
+SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
+SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[heck-0.3.3.sha256sum] = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+SRC_URI[itertools-0.9.0.sha256sum] = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[plotters-0.3.4.sha256sum] = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
+SRC_URI[plotters-backend-0.3.4.sha256sum] = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
+SRC_URI[plotters-svg-0.3.3.sha256sum] = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro-crate-0.1.5.sha256sum] = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
+SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro2-1.0.53.sha256sum] = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+SRC_URI[regex-1.7.2.sha256sum] = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c"
+SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[serde-1.0.158.sha256sum] = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
+SRC_URI[serde_bytes-0.11.9.sha256sum] = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
+SRC_URI[serde_derive-1.0.158.sha256sum] = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
+SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+SRC_URI[serde_repr-0.1.12.sha256sum] = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[strum-0.18.0.sha256sum] = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
+SRC_URI[strum_macros-0.18.0.sha256sum] = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.8.sha256sum] = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9"
+SRC_URI[system-deps-1.3.2.sha256sum] = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
+SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+SRC_URI[toml_datetime-0.6.1.sha256sum] = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
+SRC_URI[toml_edit-0.19.8.sha256sum] = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
+SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+SRC_URI[uuid-1.3.0.sha256sum] = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
+SRC_URI[version-compare-0.0.10.sha256sum] = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[winnow-0.4.0.sha256sum] = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1"
+SRC_URI[zvariant_derive-3.12.0.sha256sum] = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a"
+SRC_URI[zvariant_utils-1.0.0.sha256sum] = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b"
diff --git a/poky/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc b/poky/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc
new file mode 100644
index 0000000..f24cfe8
--- /dev/null
+++ b/poky/meta-selftest/recipes-extended/zvariant/zvariant-git-crates.inc
@@ -0,0 +1,14 @@
+SRC_URI += "\
+    git://github.com/gtk-rs/glib;protocol=https;nobranch=1;name=glib;destsuffix=glib;type=git-dependency \
+    git://github.com/gtk-rs/sys;protocol=https;nobranch=1;name=glib-sys;destsuffix=glib-sys;subpath=glib-sys;type=git-dependency \
+    git://github.com/gtk-rs/sys;protocol=https;nobranch=1;name=gobject-sys;destsuffix=gobject-sys;subpath=gobject-sys;type=git-dependency \
+"
+
+SRCREV_FORMAT .= "_glib"
+SRCREV_glib = "c9ee583cea07830c099cdcccd33eda9ef705ea93"
+
+SRCREV_FORMAT .= "_glib-sys"
+SRCREV_glib-sys = "5f35e26c65d24f8f018f643218de0f5807ba5f01"
+
+SRCREV_FORMAT .= "_gobject-sys"
+SRCREV_gobject-sys = "5f35e26c65d24f8f018f643218de0f5807ba5f01"
diff --git a/poky/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch b/poky/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch
new file mode 100644
index 0000000..ac6c511
--- /dev/null
+++ b/poky/meta-selftest/recipes-extended/zvariant/zvariant/0001-Tweak-zvariant-crate-config.patch
@@ -0,0 +1,1292 @@
+From e85ce4136694899f0010d48f47c5e905c3a9d461 Mon Sep 17 00:00:00 2001
+From: Frederic Martinsons <frederic.martinsons@gmail.com>
+Date: Thu, 23 Mar 2023 07:12:37 +0100
+Subject: [PATCH] Tweak zvariant crate config
+
+This library crate is a part of zbus project, and is aimed to
+be published amongst the whole project.
+
+Nevertheless, this recipe is for showing example of real
+code which uses a local registry via git url inside yocto
+environment.
+
+I didn't find a real example of binary crate that uses git
+dependency but it seems to me a very common use case
+when we are working on multiple local crates that are not
+aimed to be published on public registry.
+
+Long story short, this patch add a modified Cargo.toml
+to use the zvariant_derive dependency from crates.io instead
+of zbus local one and a pre generated Cargo.lock in order
+to make cargo patch process inside cargo_common.bbclass work
+
+It also copied the LICENCE file from zbus project instead
+of symlink to it.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
+---
+ zvariant/Cargo.lock | 1198 +++++++++++++++++++++++++++++++++++++++++++
+ zvariant/Cargo.toml |    2 +-
+ zvariant/LICENSE    |   24 +-
+ 3 files changed, 1222 insertions(+), 2 deletions(-)
+ create mode 100644 zvariant/Cargo.lock
+ mode change 120000 => 100644 zvariant/LICENSE
+
+diff --git a/zvariant/Cargo.lock b/zvariant/Cargo.lock
+new file mode 100644
+index 00000000..02a83d42
+--- /dev/null
++++ b/zvariant/Cargo.lock
+@@ -0,0 +1,1198 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "anes"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
++
++[[package]]
++name = "anyhow"
++version = "1.0.70"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
++
++[[package]]
++name = "arrayvec"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi 0.1.19",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "bumpalo"
++version = "3.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
++
++[[package]]
++name = "byteorder"
++version = "1.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
++
++[[package]]
++name = "cast"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "chrono"
++version = "0.4.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
++dependencies = [
++ "num-integer",
++ "num-traits",
++ "serde",
++]
++
++[[package]]
++name = "ciborium"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
++dependencies = [
++ "ciborium-io",
++ "ciborium-ll",
++ "serde",
++]
++
++[[package]]
++name = "ciborium-io"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
++
++[[package]]
++name = "ciborium-ll"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
++dependencies = [
++ "ciborium-io",
++ "half",
++]
++
++[[package]]
++name = "clap"
++version = "3.2.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
++dependencies = [
++ "bitflags",
++ "clap_lex",
++ "indexmap",
++ "textwrap",
++]
++
++[[package]]
++name = "clap_lex"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
++dependencies = [
++ "os_str_bytes",
++]
++
++[[package]]
++name = "criterion"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
++dependencies = [
++ "anes",
++ "atty",
++ "cast",
++ "ciborium",
++ "clap",
++ "criterion-plot",
++ "itertools 0.10.5",
++ "lazy_static",
++ "num-traits",
++ "oorandom",
++ "plotters",
++ "rayon",
++ "regex",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "tinytemplate",
++ "walkdir",
++]
++
++[[package]]
++name = "criterion-plot"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
++dependencies = [
++ "cast",
++ "itertools 0.10.5",
++]
++
++[[package]]
++name = "crossbeam-channel"
++version = "0.5.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
++dependencies = [
++ "cfg-if",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
++dependencies = [
++ "cfg-if",
++ "crossbeam-epoch",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.9.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
++dependencies = [
++ "autocfg",
++ "cfg-if",
++ "crossbeam-utils",
++ "memoffset",
++ "scopeguard",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "either"
++version = "1.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
++
++[[package]]
++name = "enumflags2"
++version = "0.7.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
++dependencies = [
++ "enumflags2_derive",
++ "serde",
++]
++
++[[package]]
++name = "enumflags2_derive"
++version = "0.7.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "form_urlencoded"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
++dependencies = [
++ "percent-encoding",
++]
++
++[[package]]
++name = "futures-channel"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
++dependencies = [
++ "futures-core",
++]
++
++[[package]]
++name = "futures-core"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
++
++[[package]]
++name = "futures-executor"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
++dependencies = [
++ "futures-core",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-macro"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "futures-task"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
++
++[[package]]
++name = "futures-util"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
++dependencies = [
++ "futures-core",
++ "futures-macro",
++ "futures-task",
++ "pin-project-lite",
++ "pin-utils",
++ "slab",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "glib"
++version = "0.10.0"
++source = "git+https://github.com/gtk-rs/glib?rev=c9ee583cea0#c9ee583cea07830c099cdcccd33eda9ef705ea93"
++dependencies = [
++ "bitflags",
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-task",
++ "futures-util",
++ "glib-macros",
++ "glib-sys",
++ "gobject-sys",
++ "libc",
++ "once_cell",
++]
++
++[[package]]
++name = "glib-macros"
++version = "0.10.0"
++source = "git+https://github.com/gtk-rs/glib?rev=c9ee583cea0#c9ee583cea07830c099cdcccd33eda9ef705ea93"
++dependencies = [
++ "anyhow",
++ "heck",
++ "itertools 0.9.0",
++ "proc-macro-crate 0.1.5",
++ "proc-macro-error",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.10.0"
++source = "git+https://github.com/gtk-rs/sys#5f35e26c65d24f8f018f643218de0f5807ba5f01"
++dependencies = [
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.10.0"
++source = "git+https://github.com/gtk-rs/sys#5f35e26c65d24f8f018f643218de0f5807ba5f01"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "half"
++version = "1.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
++
++[[package]]
++name = "hashbrown"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
++
++[[package]]
++name = "heck"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "idna"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
++dependencies = [
++ "unicode-bidi",
++ "unicode-normalization",
++]
++
++[[package]]
++name = "indexmap"
++version = "1.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
++dependencies = [
++ "autocfg",
++ "hashbrown",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itertools"
++version = "0.10.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
++
++[[package]]
++name = "js-sys"
++version = "0.3.61"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
++dependencies = [
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "libc"
++version = "0.2.140"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
++
++[[package]]
++name = "log"
++version = "0.4.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "memchr"
++version = "2.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
++
++[[package]]
++name = "memoffset"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.45"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
++dependencies = [
++ "autocfg",
++ "num-traits",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.15.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
++dependencies = [
++ "hermit-abi 0.2.6",
++ "libc",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.17.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
++
++[[package]]
++name = "oorandom"
++version = "11.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
++
++[[package]]
++name = "os_str_bytes"
++version = "6.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
++
++[[package]]
++name = "percent-encoding"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
++
++[[package]]
++name = "pin-project-lite"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
++
++[[package]]
++name = "pin-utils"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
++
++[[package]]
++name = "plotters"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
++dependencies = [
++ "num-traits",
++ "plotters-backend",
++ "plotters-svg",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "plotters-backend"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
++
++[[package]]
++name = "plotters-svg"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
++dependencies = [
++ "plotters-backend",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
++
++[[package]]
++name = "proc-macro-crate"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++dependencies = [
++ "toml",
++]
++
++[[package]]
++name = "proc-macro-crate"
++version = "1.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
++dependencies = [
++ "once_cell",
++ "toml_edit",
++]
++
++[[package]]
++name = "proc-macro-error"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
++dependencies = [
++ "proc-macro-error-attr",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-error-attr"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.53"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
++dependencies = [
++ "unicode-ident",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.8.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
++dependencies = [
++ "libc",
++ "rand_chacha",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rayon"
++version = "1.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
++dependencies = [
++ "either",
++ "rayon-core",
++]
++
++[[package]]
++name = "rayon-core"
++version = "1.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
++dependencies = [
++ "crossbeam-channel",
++ "crossbeam-deque",
++ "crossbeam-utils",
++ "num_cpus",
++]
++
++[[package]]
++name = "regex"
++version = "1.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c"
++dependencies = [
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
++
++[[package]]
++name = "ryu"
++version = "1.0.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "serde"
++version = "1.0.158"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_bytes"
++version = "0.11.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.158"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.8",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.94"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "serde_repr"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.8",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
++dependencies = [
++ "autocfg",
++]
++
++[[package]]
++name = "static_assertions"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
++
++[[package]]
++name = "strum"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
++
++[[package]]
++name = "strum_macros"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
++dependencies = [
++ "heck",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.109"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "syn"
++version = "2.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "system-deps"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
++dependencies = [
++ "heck",
++ "pkg-config",
++ "strum",
++ "strum_macros",
++ "thiserror",
++ "toml",
++ "version-compare",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
++
++[[package]]
++name = "thiserror"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.8",
++]
++
++[[package]]
++name = "time"
++version = "0.3.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
++dependencies = [
++ "serde",
++ "time-core",
++ "time-macros",
++]
++
++[[package]]
++name = "time-core"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
++
++[[package]]
++name = "time-macros"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
++dependencies = [
++ "time-core",
++]
++
++[[package]]
++name = "tinytemplate"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
++dependencies = [
++ "serde",
++ "serde_json",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
++dependencies = [
++ "tinyvec_macros",
++]
++
++[[package]]
++name = "tinyvec_macros"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
++
++[[package]]
++name = "toml"
++version = "0.5.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "toml_datetime"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
++
++[[package]]
++name = "toml_edit"
++version = "0.19.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13"
++dependencies = [
++ "indexmap",
++ "toml_datetime",
++ "winnow",
++]
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
++dependencies = [
++ "tinyvec",
++]
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
++
++[[package]]
++name = "url"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
++dependencies = [
++ "form_urlencoded",
++ "idna",
++ "percent-encoding",
++ "serde",
++]
++
++[[package]]
++name = "uuid"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "version-compare"
++version = "0.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
++
++[[package]]
++name = "version_check"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
++
++[[package]]
++name = "walkdir"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
++dependencies = [
++ "same-file",
++ "winapi-util",
++]
++
++[[package]]
++name = "wasi"
++version = "0.11.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
++
++[[package]]
++name = "wasm-bindgen"
++version = "0.2.84"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
++dependencies = [
++ "cfg-if",
++ "wasm-bindgen-macro",
++]
++
++[[package]]
++name = "wasm-bindgen-backend"
++version = "0.2.84"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
++dependencies = [
++ "bumpalo",
++ "log",
++ "once_cell",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-macro"
++version = "0.2.84"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
++dependencies = [
++ "quote",
++ "wasm-bindgen-macro-support",
++]
++
++[[package]]
++name = "wasm-bindgen-macro-support"
++version = "0.2.84"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-shared"
++version = "0.2.84"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
++
++[[package]]
++name = "web-sys"
++version = "0.3.61"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
++dependencies = [
++ "js-sys",
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "winnow"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "zvariant"
++version = "3.12.0"
++dependencies = [
++ "arrayvec",
++ "byteorder",
++ "chrono",
++ "criterion",
++ "enumflags2",
++ "glib",
++ "libc",
++ "rand",
++ "serde",
++ "serde_bytes",
++ "serde_json",
++ "serde_repr",
++ "static_assertions",
++ "time",
++ "url",
++ "uuid",
++ "zvariant_derive",
++]
++
++[[package]]
++name = "zvariant_derive"
++version = "3.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34c20260af4b28b3275d6676c7e2a6be0d4332e8e0aba4616d34007fd84e462a"
++dependencies = [
++ "proc-macro-crate 1.3.1",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++ "zvariant_utils",
++]
++
++[[package]]
++name = "zvariant_utils"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53b22993dbc4d128a17a3b6c92f1c63872dd67198537ee728d8b5d7c40640a8b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
+diff --git a/zvariant/Cargo.toml b/zvariant/Cargo.toml
+index 45367729..6981862a 100644
+--- a/zvariant/Cargo.toml
++++ b/zvariant/Cargo.toml
+@@ -27,7 +27,7 @@ byteorder = "1.4.3"
+ serde = { version = "1.0", features = ["derive"] }
+ arrayvec = { version = "0.7.2", features = ["serde"], optional = true }
+ enumflags2 = { version = "0.7.5", features = ["serde"], optional = true }
+-zvariant_derive = { version = "=3.12.0", path = "../zvariant_derive" }
++zvariant_derive = "3.12.0"
+ serde_bytes = { version = "0.11", optional = true }
+ static_assertions = "1.1.0"
+ libc = "0.2.137"
+diff --git a/zvariant/LICENSE b/zvariant/LICENSE
+deleted file mode 120000
+index ea5b6064..00000000
+--- a/zvariant/LICENSE
++++ /dev/null
+@@ -1 +0,0 @@
+-../LICENSE
+\ No newline at end of file
+diff --git a/zvariant/LICENSE b/zvariant/LICENSE
+new file mode 100644
+index 00000000..31aa7938
+--- /dev/null
++++ b/zvariant/LICENSE
+@@ -0,0 +1,23 @@
++Permission is hereby granted, free of charge, to any
++person obtaining a copy of this software and associated
++documentation files (the "Software"), to deal in the
++Software without restriction, including without
++limitation the rights to use, copy, modify, merge,
++publish, distribute, sublicense, and/or sell copies of
++the Software, and to permit persons to whom the Software
++is furnished to do so, subject to the following
++conditions:
++
++The above copyright notice and this permission notice
++shall be included in all copies or substantial portions
++of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
++ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
++TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
++PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
++SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
++CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
++IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++DEALINGS IN THE SOFTWARE.
+-- 
+2.34.1
+
diff --git a/poky/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb b/poky/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb
new file mode 100644
index 0000000..4285d11
--- /dev/null
+++ b/poky/meta-selftest/recipes-extended/zvariant/zvariant_3.12.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Provides API for encoding/decoding of data to/from D-Bus wire format"
+DESCRIPTION = "This crate provides API for encoding/decoding of data to/from D-Bus wire format.\
+This binary wire format is simple and very efficient and hence useful outside of D-Bus context as well.\
+A modified form of this format, GVariant is very commonly used for efficient storage of arbitrary \
+data and is also supported by this crate."
+HOMEPAGE = "https://gitlab.freedesktop.org/dbus/zbus/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b377b220f43d747efdec40d69fcaa69d"
+
+SRC_URI = " \
+    git://gitlab.freedesktop.org/dbus/zbus;protocol=https;branch=main;subpath=zvariant \
+    file://0001-Tweak-zvariant-crate-config.patch;striplevel=2 \
+"
+
+SRCREV = "07506776fab5f58e029760bb4b288f670c7eecd6"
+S = "${WORKDIR}/zvariant"
+
+python do_clean_lic_file_symlink() {
+    bb.utils.remove("LICENCE")
+}
+
+addtask clean_lic_file_symlink after do_unpack before do_patch
+
+inherit cargo cargo-update-recipe-crates
+
+# Remove this when the recipe is reproducible
+EXCLUDE_FROM_WORLD = "1"
+
+require ${BPN}-crates.inc
+require ${BPN}-git-crates.inc
diff --git a/poky/meta-selftest/wic/test_gpt_partition_name.wks b/poky/meta-selftest/wic/test_gpt_partition_name.wks
new file mode 100644
index 0000000..7db6da9
--- /dev/null
+++ b/poky/meta-selftest/wic/test_gpt_partition_name.wks
@@ -0,0 +1,7 @@
+# short-description: image to test part-name in GPT partitions
+
+part --fstype=ext4 --part-name boot-A --label boot --size 1M --align 1024
+part / --source rootfs --fstype=ext4 --part-name root-A --align 1024
+part --fstype=ext4 --label ext-space --size 1M --align 1024
+
+bootloader --ptable gpt
diff --git a/poky/meta/classes-global/sanity.bbclass b/poky/meta/classes-global/sanity.bbclass
index 2d1ff70..abb52fb 100644
--- a/poky/meta/classes-global/sanity.bbclass
+++ b/poky/meta/classes-global/sanity.bbclass
@@ -475,7 +475,7 @@
             bb.warn("You are running bitbake under WSLv2, this works properly but you should optimize your VHDX file eventually to avoid running out of storage space")
     return None
 
-# Require at least gcc version 7.5.
+# Require at least gcc version 8.0
 #
 # This can be fixed on CentOS-7 with devtoolset-6+
 # https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/
@@ -488,8 +488,8 @@
     
     build_cc, version = oe.utils.get_host_compiler_version(sanity_data)
     if build_cc.strip() == "gcc":
-        if bb.utils.vercmp_string_op(version, "7.5", "<"):
-            return "Your version of gcc is older than 7.5 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
+        if bb.utils.vercmp_string_op(version, "8.0", "<"):
+            return "Your version of gcc is older than 8.0 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
     return None
 
 # Tar version 1.24 and onwards handle overwriting symlinks correctly
diff --git a/poky/meta/classes-recipe/cargo-update-recipe-crates.bbclass b/poky/meta/classes-recipe/cargo-update-recipe-crates.bbclass
index daa363b..8980137 100644
--- a/poky/meta/classes-recipe/cargo-update-recipe-crates.bbclass
+++ b/poky/meta/classes-recipe/cargo-update-recipe-crates.bbclass
@@ -38,25 +38,12 @@
     if not crates_candidates:
         raise ValueError("Unable to find any candidate crates that use crates.io")
 
-    # Build a list of crates name that have multiple version
-    crates_multiple_vers = []
-    tmp = []
-    for c in crates_candidates:
-        if c['name'] in tmp:
-            crates_multiple_vers.append(c['name'])
-        else:
-            tmp.append(c['name'])
-
     # Update crates uri and their checksum, to avoid name clashing on the checksum
-    # we need to rename crates of the same name but different version
+    # we need to rename crates with name and version to have a unique key
     cksum_list = ''
     for c in crates_candidates:
-        if c['name'] in crates_multiple_vers:
-            rename = "%s-%s" % (c['name'], c['version'])
-            c_list += '\n    crate://crates.io/%s/%s;name=%s \\\' % (c['name'], c['version'], rename)
-        else:
-            rename = c['name']
-            c_list += '\n    crate://crates.io/%s/%s \\\' % (c['name'], c['version'])
+        rename = "%s-%s" % (c['name'], c['version'])
+        c_list += '\n    crate://crates.io/%s/%s \\\' % (c['name'], c['version'])
         if 'checksum' in c:
             cksum_list += '\nSRC_URI[%s.sha256sum] = "%s"' % (rename, c['checksum'])
 
@@ -69,12 +56,22 @@
 crates = "# Autogenerated with 'bitbake -c update_crates ${PN}'\n\n"
 found = False
 for root, dirs, files in os.walk('${CARGO_LOCK_SRC_DIR}'):
+    # ignore git and patches directories
+    if root.startswith(os.path.join('${CARGO_LOCK_SRC_DIR}', '.pc')):
+        continue
+    if root.startswith(os.path.join('${CARGO_LOCK_SRC_DIR}', '.git')):
+        continue
     for file in files:
         if file == 'Cargo.lock':
-            crates += get_crates(os.path.join(root, file))
-            found = True
+            try:
+                cargo_lock_path = os.path.join(root, file)
+                crates += get_crates(os.path.join(root, file))
+            except Exception as e:
+                raise ValueError("Cannot parse '%s'" % cargo_lock_path) from e
+            else:
+                found = True
 if not found:
-    raise ValueError("Unable to find Cargo.lock in ${CARGO_LOCK_SRC_DIR}")
+    raise ValueError("Unable to find any Cargo.lock in ${CARGO_LOCK_SRC_DIR}")
 open("${TARGET_FILE}", 'w').write(crates)
 EOF
 
diff --git a/poky/meta/classes-recipe/cargo_common.bbclass b/poky/meta/classes-recipe/cargo_common.bbclass
index f503a00..82ab25b 100644
--- a/poky/meta/classes-recipe/cargo_common.bbclass
+++ b/poky/meta/classes-recipe/cargo_common.bbclass
@@ -116,6 +116,39 @@
 	EOF
 }
 
+python cargo_common_do_patch_paths() {
+    cargo_config = os.path.join(d.getVar("CARGO_HOME"), "config")
+    if not os.path.exists(cargo_config):
+        return
+
+    src_uri = (d.getVar('SRC_URI') or "").split()
+    if len(src_uri) == 0:
+        return
+
+    patches = dict()
+    workdir = d.getVar('WORKDIR')
+    fetcher = bb.fetch2.Fetch(src_uri, d)
+    for url in fetcher.urls:
+        ud = fetcher.ud[url]
+        if ud.type == 'git':
+            name = ud.parm.get('name')
+            destsuffix = ud.parm.get('destsuffix')
+            if name is not None and destsuffix is not None:
+                if ud.user:
+                    repo = '%s://%s@%s%s' % (ud.proto, ud.user, ud.host, ud.path)
+                else:
+                    repo = '%s://%s%s' % (ud.proto, ud.host, ud.path)
+                path = '%s = { path = "%s" }' % (name, os.path.join(workdir, destsuffix))
+                patches.setdefault(repo, []).append(path)
+
+    with open(cargo_config, "a+") as config:
+        for k, v in patches.items():
+            print('\n[patch."%s"]' % k, file=config)
+            for name in v:
+                print(name, file=config)
+}
+do_configure[postfuncs] += "cargo_common_do_patch_paths"
+
 oe_cargo_fix_env () {
 	export CC="${RUST_TARGET_CC}"
 	export CXX="${RUST_TARGET_CXX}"
diff --git a/poky/meta/classes-recipe/cmake.bbclass b/poky/meta/classes-recipe/cmake.bbclass
index 554b948..301367b 100644
--- a/poky/meta/classes-recipe/cmake.bbclass
+++ b/poky/meta/classes-recipe/cmake.bbclass
@@ -94,6 +94,8 @@
 cmake_do_generate_toolchain_file() {
 	if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
 		cmake_crosscompiling="set( CMAKE_CROSSCOMPILING FALSE )"
+       else
+               cmake_sysroot="set( CMAKE_SYSROOT \"${RECIPE_SYSROOT}\" )"
 	fi
 	cat > ${WORKDIR}/toolchain.cmake <<EOF
 # CMake system name must be something like "Linux".
@@ -126,6 +128,8 @@
 set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
 set( CMAKE_PROGRAM_PATH "/" )
 
+$cmake_sysroot
+
 # Use qt.conf settings
 set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf )
 
diff --git a/poky/meta/classes-recipe/devicetree.bbclass b/poky/meta/classes-recipe/devicetree.bbclass
index ac1d284..ed2a92e 100644
--- a/poky/meta/classes-recipe/devicetree.bbclass
+++ b/poky/meta/classes-recipe/devicetree.bbclass
@@ -4,7 +4,7 @@
 # SPDX-License-Identifier: MIT
 #
 
-# This bbclass implements device tree compliation for user provided device tree
+# This bbclass implements device tree compilation for user provided device tree
 # sources. The compilation of the device tree sources is the same as the kernel
 # device tree compilation process, this includes being able to include sources
 # from the kernel such as soc dtsi files or header files such as gpio.h. In
diff --git a/poky/meta/classes-recipe/gobject-introspection.bbclass b/poky/meta/classes-recipe/gobject-introspection.bbclass
index 0c7b7d2..98edb93 100644
--- a/poky/meta/classes-recipe/gobject-introspection.bbclass
+++ b/poky/meta/classes-recipe/gobject-introspection.bbclass
@@ -35,7 +35,7 @@
 
 # Generating introspection data depends on a combination of native and target
 # introspection tools, and qemu to run the target tools.
-DEPENDS:append:class-target = " gobject-introspection gobject-introspection-native qemu-native"
+DEPENDS:append:class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'gobject-introspection gobject-introspection-native qemu-native', '', d)}"
 
 # Even though introspection is disabled on -native, gobject-introspection package is still
 # needed for m4 macros.
@@ -46,10 +46,12 @@
 export XDG_DATA_DIRS = "${STAGING_DATADIR}:${STAGING_LIBDIR}"
 
 do_configure:prepend:class-target () {
-    # introspection.m4 pre-packaged with upstream tarballs does not yet
-    # have our fixes
-    mkdir -p ${S}/m4
-    cp ${STAGING_DIR_TARGET}/${datadir}/aclocal/introspection.m4 ${S}/m4
+    if [ "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '1', '0', d)}" = "1" ] ; then
+        # introspection.m4 pre-packaged with upstream tarballs does not yet
+        # have our fixes
+        mkdir -p ${S}/m4
+        cp ${STAGING_DIR_TARGET}/${datadir}/aclocal/introspection.m4 ${S}/m4
+    fi
 }
 
 # .typelib files are needed at runtime and so they go to the main package (so
diff --git a/poky/meta/classes-recipe/kernel-fitimage.bbclass b/poky/meta/classes-recipe/kernel-fitimage.bbclass
index b777474..6684478 100644
--- a/poky/meta/classes-recipe/kernel-fitimage.bbclass
+++ b/poky/meta/classes-recipe/kernel-fitimage.bbclass
@@ -388,6 +388,7 @@
 # $5 ... u-boot script ID
 # $6 ... config ID
 # $7 ... default flag
+# $8 ... default DTB image name
 fitimage_emit_section_config() {
 
 	conf_csum="${FIT_HASH_ALG}"
@@ -404,6 +405,7 @@
 	bootscr_id="$5"
 	config_id="$6"
 	default_flag="$7"
+	default_dtb_image="$8"
 
 	# Test if we have any DTBs at all
 	sep=""
@@ -415,7 +417,6 @@
 	bootscr_line=""
 	setup_line=""
 	default_line=""
-	default_dtb_image="${FIT_CONF_DEFAULT_DTB}"
 
 	dtb_image_sect=$(symlink_points_below $dtb_image "${EXTERNAL_KERNEL_DEVICETREE}")
 	if [ -z "$dtb_image_sect" ]; then
@@ -469,11 +470,7 @@
 		        # Select default node as user specified dtb when
 		        # multiple dtb exists.
 		        if [ -n "$default_dtb_image" ]; then
-			        if [ -s "${EXTERNAL_KERNEL_DEVICETREE}/$default_dtb_image" ]; then
-			                default_line="default = \"${FIT_CONF_PREFIX}$default_dtb_image\";"
-			        else
-			                bbwarn "Couldn't find a valid user specified dtb in ${EXTERNAL_KERNEL_DEVICETREE}/$default_dtb_image"
-			        fi
+			        default_line="default = \"${FIT_CONF_PREFIX}$default_dtb_image\";"
 		        else
 			        default_line="default = \"${FIT_CONF_PREFIX}$dtb_image\";"
 		        fi
@@ -555,7 +552,8 @@
 	ramdiskcount=$3
 	setupcount=""
 	bootscr_id=""
-	rm -f $1 ${KERNEL_OUTPUT_DIR}/$2
+	default_dtb_image=""
+	rm -f $1 arch/${ARCH}/boot/$2
 
 	if [ -n "${UBOOT_SIGN_IMG_KEYNAME}" -a "${UBOOT_SIGN_KEYNAME}" = "${UBOOT_SIGN_IMG_KEYNAME}" ]; then
 		bbfatal "Keys used to sign images and configuration nodes must be different."
@@ -593,6 +591,13 @@
 				DTB_PATH="${KERNEL_OUTPUT_DIR}/$DTB"
 			fi
 
+			# Set the default dtb image if it exists in the devicetree.
+			if [ ${FIT_CONF_DEFAULT_DTB} = $DTB ];then
+				default_dtb_image=$(echo "$DTB" | tr '/' '_')
+			fi
+
+			DTB=$(echo "$DTB" | tr '/' '_')
+
 			# Skip DTB if we've picked it up previously
 			echo "$DTBS" | tr ' ' '\n' | grep -xq "$DTB" && continue
 
@@ -606,6 +611,13 @@
 		dtbcount=1
 		for DTB in $(find "${EXTERNAL_KERNEL_DEVICETREE}" -name '*.dtb' -printf '%P\n' | sort) \
 		$(find "${EXTERNAL_KERNEL_DEVICETREE}" -name '*.dtbo' -printf '%P\n' | sort); do
+			# Set the default dtb image if it exists in the devicetree.
+			if [ ${FIT_CONF_DEFAULT_DTB} = $DTB ];then
+				default_dtb_image=$(echo "$DTB" | tr '/' '_')
+			fi
+
+			DTB=$(echo "$DTB" | tr '/' '_')
+
 			# Skip DTB/DTBO if we've picked it up previously
 			echo "$DTBS" | tr ' ' '\n' | grep -xq "$DTB" && continue
 
@@ -619,6 +631,10 @@
 		done
 	fi
 
+	if [ -n "${FIT_CONF_DEFAULT_DTB}" ] && [ -z $default_dtb_image ]; then 
+		bbwarn "${FIT_CONF_DEFAULT_DTB} is not available in the list of device trees."
+	fi
+
 	#
 	# Step 3: Prepare a u-boot script section
 	#
@@ -691,15 +707,15 @@
 		for DTB in ${DTBS}; do
 			dtb_ext=${DTB##*.}
 			if [ "$dtb_ext" = "dtbo" ]; then
-				fitimage_emit_section_config $1 "" "$DTB" "" "$bootscr_id" "" "`expr $i = $dtbcount`"
+				fitimage_emit_section_config $1 "" "$DTB" "" "$bootscr_id" "" "`expr $i = $dtbcount`" "$default_dtb_image"
 			else
-				fitimage_emit_section_config $1 $kernelcount "$DTB" "$ramdiskcount" "$bootscr_id" "$setupcount" "`expr $i = $dtbcount`"
+				fitimage_emit_section_config $1 $kernelcount "$DTB" "$ramdiskcount" "$bootscr_id" "$setupcount" "`expr $i = $dtbcount`" "$default_dtb_image"
 			fi
 			i=`expr $i + 1`
 		done
 	else
 		defaultconfigcount=1
-		fitimage_emit_section_config $1 $kernelcount "" "$ramdiskcount" "$bootscr_id"  "$setupcount" $defaultconfigcount
+		fitimage_emit_section_config $1 $kernelcount "" "$ramdiskcount" "$bootscr_id"  "$setupcount" $defaultconfigcount "$default_dtb_image"
 	fi
 
 	fitimage_emit_section_maint $1 sectend
diff --git a/poky/meta/classes-recipe/kernel.bbclass b/poky/meta/classes-recipe/kernel.bbclass
index aefa0d2..e634eab 100644
--- a/poky/meta/classes-recipe/kernel.bbclass
+++ b/poky/meta/classes-recipe/kernel.bbclass
@@ -382,7 +382,7 @@
 		use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio
 	fi
 	for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do
-		oe_runmake ${typeformake} ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
+		oe_runmake ${PARALLEL_MAKE} ${typeformake} ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
 	done
 }
 
diff --git a/poky/meta/classes-recipe/populate_sdk_ext.bbclass b/poky/meta/classes-recipe/populate_sdk_ext.bbclass
index 2e6673b..476876e 100644
--- a/poky/meta/classes-recipe/populate_sdk_ext.bbclass
+++ b/poky/meta/classes-recipe/populate_sdk_ext.bbclass
@@ -369,7 +369,8 @@
             f.write('BUILDCFG_HEADER = ""\n\n')
 
             # Write METADATA_REVISION
-            f.write('METADATA_REVISION = "%s"\n\n' % d.getVar('METADATA_REVISION'))
+            # Needs distro override so it can override the value set in the bbclass code (later than local.conf)
+            f.write('METADATA_REVISION:%s = "%s"\n\n' % (d.getVar('DISTRO'), d.getVar('METADATA_REVISION')))
 
             f.write('# Provide a flag to indicate we are in the EXT_SDK Context\n')
             f.write('WITHIN_EXT_SDK = "1"\n\n')
diff --git a/poky/meta/classes-recipe/setuptools3-base.bbclass b/poky/meta/classes-recipe/setuptools3-base.bbclass
index 21b688c..d1c1fa0 100644
--- a/poky/meta/classes-recipe/setuptools3-base.bbclass
+++ b/poky/meta/classes-recipe/setuptools3-base.bbclass
@@ -23,15 +23,8 @@
 # the python executable
 export LINKFORSHARED = "${SECURITY_CFLAGS} -Xlinker -export-dynamic"
 
-FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
+FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
 
-FILES:${PN}-staticdev += "\
-  ${PYTHON_SITEPACKAGES_DIR}/*.a \
-"
-FILES:${PN}-dev += "\
-  ${datadir}/pkgconfig \
-  ${libdir}/pkgconfig \
-  ${PYTHON_SITEPACKAGES_DIR}/*.la \
-"
 inherit python3native python3targetconfig
-
diff --git a/poky/meta/classes-recipe/testimage.bbclass b/poky/meta/classes-recipe/testimage.bbclass
index df22bb2..b48cd96 100644
--- a/poky/meta/classes-recipe/testimage.bbclass
+++ b/poky/meta/classes-recipe/testimage.bbclass
@@ -98,7 +98,7 @@
 
 TESTIMAGE_DUMP_DIR ?= "${LOG_DIR}/runtime-hostdump/"
 
-TESTIMAGE_UPDATE_VARS ?= "DL_DIR WORKDIR DEPLOY_DIR"
+TESTIMAGE_UPDATE_VARS ?= "DL_DIR WORKDIR DEPLOY_DIR_IMAGE IMAGE_LINK_NAME"
 
 testimage_dump_target () {
     top -bn1
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 5e2da56..bd9e7e7 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -32,7 +32,7 @@
 CVE_VERSION ??= "${PV}"
 
 CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK"
-CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_1.1.db"
+CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_2.db"
 CVE_CHECK_DB_FILE_LOCK ?= "${CVE_CHECK_DB_FILE}.lock"
 
 CVE_CHECK_LOG ?= "${T}/cve.log"
@@ -161,7 +161,7 @@
 }
 
 addtask cve_check before do_build
-do_cve_check[depends] = "cve-update-db-native:do_fetch"
+do_cve_check[depends] = "cve-update-nvd2-native:do_fetch"
 do_cve_check[nostamp] = "1"
 
 python cve_check_cleanup () {
diff --git a/poky/meta/classes/externalsrc.bbclass b/poky/meta/classes/externalsrc.bbclass
index 26c5803..b00fdba 100644
--- a/poky/meta/classes/externalsrc.bbclass
+++ b/poky/meta/classes/externalsrc.bbclass
@@ -68,9 +68,7 @@
         for url in fetch.urls:
             url_data = fetch.ud[url]
             parm = url_data.parm
-            if (url_data.type == 'file' or
-                    url_data.type == 'npmsw' or url_data.type == 'crate' or
-                    'type' in parm and parm['type'] == 'kmeta'):
+            if url_data.type in ['file', 'npmsw', 'crate'] or parm.get('type') in ['kmeta', 'git-dependency']:
                 local_srcuri.append(url)
 
         d.setVar('SRC_URI', ' '.join(local_srcuri))
diff --git a/poky/meta/classes/report-error.bbclass b/poky/meta/classes/report-error.bbclass
index 2f692fb..1452513 100644
--- a/poky/meta/classes/report-error.bbclass
+++ b/poky/meta/classes/report-error.bbclass
@@ -39,6 +39,19 @@
                     jsonstring=jsonstring + line
     return jsonstring
 
+def get_common_data(e):
+    data = {}
+    data['machine'] = e.data.getVar("MACHINE")
+    data['build_sys'] = e.data.getVar("BUILD_SYS")
+    data['distro'] = e.data.getVar("DISTRO")
+    data['target_sys'] = e.data.getVar("TARGET_SYS")
+    data['branch_commit'] = str(oe.buildcfg.detect_branch(e.data)) + ": " + str(oe.buildcfg.detect_revision(e.data))
+    data['bitbake_version'] = e.data.getVar("BB_VERSION")
+    data['layer_version'] = get_layers_branch_rev(e.data)
+    data['local_conf'] = get_conf_data(e, 'local.conf')
+    data['auto_conf'] = get_conf_data(e, 'auto.conf')
+    return data
+
 python errorreport_handler () {
         import json
         import codecs
@@ -56,19 +69,10 @@
         if isinstance(e, bb.event.BuildStarted):
             bb.utils.mkdirhier(logpath)
             data = {}
-            machine = e.data.getVar("MACHINE")
-            data['machine'] = machine
-            data['build_sys'] = e.data.getVar("BUILD_SYS")
+            data = get_common_data(e)
             data['nativelsb'] = nativelsb()
-            data['distro'] = e.data.getVar("DISTRO")
-            data['target_sys'] = e.data.getVar("TARGET_SYS")
             data['failures'] = []
             data['component'] = " ".join(e.getPkgs())
-            data['branch_commit'] = str(oe.buildcfg.detect_branch(e.data)) + ": " + str(oe.buildcfg.detect_revision(e.data))
-            data['bitbake_version'] = e.data.getVar("BB_VERSION")
-            data['layer_version'] = get_layers_branch_rev(e.data)
-            data['local_conf'] = get_conf_data(e, 'local.conf')
-            data['auto_conf'] = get_conf_data(e, 'auto.conf')
             lock = bb.utils.lockfile(datafile + '.lock')
             errorreport_savedata(e, data, "error-report.txt")
             bb.utils.unlockfile(lock)
@@ -107,6 +111,37 @@
             errorreport_savedata(e, jsondata, "error-report.txt")
             bb.utils.unlockfile(lock)
 
+        elif isinstance(e, bb.event.NoProvider):
+            bb.utils.mkdirhier(logpath)
+            data = {}
+            data = get_common_data(e)
+            data['nativelsb'] = nativelsb()
+            data['failures'] = []
+            data['component'] = str(e._item)
+            taskdata={}
+            taskdata['log'] = str(e)
+            taskdata['package'] = str(e._item)
+            taskdata['task'] = "Nothing provides " + "'" + str(e._item) + "'"
+            data['failures'].append(taskdata)
+            lock = bb.utils.lockfile(datafile + '.lock')
+            errorreport_savedata(e, data, "error-report.txt")
+            bb.utils.unlockfile(lock)
+
+        elif isinstance(e, bb.event.ParseError):
+            bb.utils.mkdirhier(logpath)
+            data = {}
+            data = get_common_data(e)
+            data['nativelsb'] = nativelsb()
+            data['failures'] = []
+            data['component'] = "parse"
+            taskdata={}
+            taskdata['log'] = str(e._msg)
+            taskdata['task'] = str(e._msg)
+            data['failures'].append(taskdata)
+            lock = bb.utils.lockfile(datafile + '.lock')
+            errorreport_savedata(e, data, "error-report.txt")
+            bb.utils.unlockfile(lock)
+
         elif isinstance(e, bb.event.BuildCompleted):
             lock = bb.utils.lockfile(datafile + '.lock')
             jsondata = json.loads(errorreport_getdata(e))
@@ -120,4 +155,4 @@
 }
 
 addhandler errorreport_handler
-errorreport_handler[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted bb.build.TaskFailed"
+errorreport_handler[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted bb.build.TaskFailed bb.event.NoProvider bb.event.ParseError"
diff --git a/poky/meta/conf/distro/include/cve-extra-exclusions.inc b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
index a281a8a..0ca75ba 100644
--- a/poky/meta/conf/distro/include/cve-extra-exclusions.inc
+++ b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
@@ -136,6 +136,16 @@
 # Backported in version v5.15.58 b2d1e4cd558cffec6bfe318f5d74e6cffc374d29
 CVE_CHECK_IGNORE += "CVE-2022-1462"
 
+# https://nvd.nist.gov/vuln/detail/CVE-2022-2196
+# Introduced in version v5.8 5c911beff20aa8639e7a1f28988736c13e03ed54
+# Breaking commit backported in v5.4.47 64b8f33b2e1e687d465b5cb382e7bec495f1e026
+# Patched in kernel since v6.2 2e7eab81425ad6c875f2ed47c0ce01e78afc38a5
+# Backported in version v5.4.233 f93a1a5bdcdd122aae0a3eab7a52c15b71fb725b
+# Backported in version v5.10.170 1b0cafaae8884726c597caded50af185ffc13349
+# Backported in version v5.15.96 6b539a7dbb49250f92515c2ba60aea239efc9e35
+# Backported in version v6.1.14 63fada296062e91ad9f871970d4e7f19e21a6a15
+CVE_CHECK_IGNORE += "CVE-2022-2196"
+
 # https://nvd.nist.gov/vuln/detail/CVE-2022-2308
 # Introduced in version v5.15 c8a6153b6c59d95c0e091f053f6f180952ade91e
 # Patched in kernel since v6.0 46f8a29272e51b6df7393d58fc5cb8967397ef2b
@@ -169,6 +179,15 @@
 # Backported in version v5.15.65 e9d7ca0c4640cbebe6840ee3bac66a25a9bacaf5
 CVE_CHECK_IGNORE += "CVE-2022-3176"
 
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3424
+# Introduced in version v2.6.33 55484c45dbeca2eec7642932ec3f60f8a2d4bdbf
+# Patched in kernel since v6.2 643a16a0eb1d6ac23744bb6e90a00fc21148a9dc
+# Backported in version v5.4.229 0078dd8758561540ed30b2c5daa1cb647e758977
+# Backported in version v5.10.163 0f67ed565f20ea2fdd98e3b0b0169d9e580bb83c
+# Backported in version v5.15.86 d5c8f9003a289ee2a9b564d109e021fc4d05d106
+# Backported in version v6.1.2 4e947fc71bec7c7da791f8562d5da233b235ba5e
+CVE_CHECK_IGNORE += "CVE-2022-3424"
+
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3435
 # Introduced in version v5.18 6bf92d70e690b7ff12b24f4bfff5e5434d019b82
 # Breaking commit backported in v5.4.189 f5064531c23ad646da7be8b938292b00a7e61438
@@ -365,6 +384,14 @@
 
 
 # 2023
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0179
+# Patched in kernel since v6.2 696e1a48b1a1b01edad542a1ef293665864a4dd0
+# Backported in version v5.10.164 550efeff989b041f3746118c0ddd863c39ddc1aa
+# Backported in version v5.15.89 a8acfe2c6fb99f9375a9325807a179cd8c32e6e3
+# Backported in version v6.1.7 76ef74d4a379faa451003621a84e3498044e7aa3
+CVE_CHECK_IGNORE += "CVE-2023-0179"
+
 # https://nvd.nist.gov/vuln/detail/CVE-2023-0266
 # Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
 # Patched in kernel since v6.2 56b88b50565cd8b946a2d00b0c83927b7ebb055e
@@ -381,6 +408,129 @@
 # Backported in version v6.1.7 0afa5f0736584411771299074bbeca8c1f9706d4
 CVE_CHECK_IGNORE += "CVE-2023-0394"
 
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0461
+# Introduced in version v4.13 734942cc4ea6478eed125af258da1bdbb4afe578
+# Patched in kernel since v6.2 2c02d41d71f90a5168391b6a5f2954112ba2307c
+# Backported in version v5.4.229 c6d29a5ffdbc362314853462a0e24e63330a654d
+# Backported in version v5.10.163 f8ed0a93b5d576bbaf01639ad816473bdfd1dcb0
+# Backported in version v5.15.88 dadd0dcaa67d27f550131de95c8e182643d2c9d6
+# Backported in version v6.1.5 7d242f4a0c8319821548c7176c09a6e0e71f223c
+CVE_CHECK_IGNORE += "CVE-2023-0461"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0386
+# Introduced in 5.11 459c7c565ac36ba09ffbf24231147f408fde4203
+# Patched in kernel v6.2 4f11ada10d0ad3fd53e2bd67806351de63a4f9c3
+# Backported in version 6.1.9 42fea1c35254c49cce07c600d026cbc00c6d3c81
+# Backported in version 5.15.91 e91308e63710574c4b6a0cadda3e042a3699666e
+CVE_CHECK_IGNORE += "CVE-2023-0386"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1073
+# Introduced in v3.16 1b15d2e5b8077670b1e6a33250a0d9577efff4a5
+# Patched in kernel v6.2 b12fece4c64857e5fab4290bf01b2e0317a88456
+# Backported in version 5.10.166 5dc3469a1170dd1344d262a332b26994214eeb58
+# Backported in version 5.15.91 2b49568254365c9c247beb0eabbaa15d0e279d64
+# Backported in version 6.1.9 cdcdc0531a51659527fea4b4d064af343452062d
+CVE_CHECK_IGNORE += "CVE-2023-1073"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1074
+# Patched in kernel v6.2 458e279f861d3f61796894cd158b780765a1569f
+# Backported in version 5.15.91 3391bd42351be0beb14f438c7556912b9f96cb32
+# Backported in version 6.1.9 9f08bb650078dca24a13fea1c375358ed6292df3
+CVE_CHECK_IGNORE += "CVE-2023-1074"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1076
+# Patched in kernel v6.3 a096ccca6e503a5c575717ff8a36ace27510ab0a
+# Backported in version v5.4.235 d92d87000eda9884d49f1acec1c1fccd63cd9b11
+# Backported in version v5.10.173 9a31af61f397500ccae49d56d809b2217d1e2178
+# Backported in version v5.15.99 67f9f02928a34aad0a2c11dab5eea269f5ecf427
+# Backported in version v6.1.16 b4ada752eaf1341f47bfa3d8ada377eca75a8d44
+# Backported in version v6.2.3 4aa4b4b3b3e9551c4de2bf2987247c28805fb8f6
+CVE_CHECK_IGNORE += "CVE-2023-1076"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1077
+# Patched in kernel 6.3rc1 7c4a5b89a0b5a57a64b601775b296abf77a9fe97
+# Backported in version 5.15.99 2c36c390a74981d03f04f01fe7ee9c3ac3ea11f7
+# Backported in version 6.1.16 6b4fcc4e8a3016e85766c161daf0732fca16c3a3
+CVE_CHECK_IGNORE += "CVE-2023-1077"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1078
+# Patched in kernel 6.2 f753a68980cf4b59a80fe677619da2b1804f526d
+# Backported in version 5.15.94 528e3f3a4b53df36dafd10cdf6b8c0fe2aa1c4ba
+# Backported in version 6.1.12 1d52bbfd469af69fbcae88c67f160ce1b968e7f3
+CVE_CHECK_IGNORE += "CVE-2023-1078"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1079
+# Patched in kernel since v6.3-rc1 4ab3a086d10eeec1424f2e8a968827a6336203df
+# Backported in version v5.4.235 dd08e68d04d08d2f42b09162c939a0b0841216cc
+# Backported in version v5.10.173 21a2eec4a440060a6eb294dc890eaf553101ba09
+# Backported in version v5.15.99 3959316f8ceb17866646abc6be4a332655407138
+# Backported in version v6.1.16 ee907829b36949c452c6f89485cb2a58e97c048e
+# Backported in version v6.2.3 b08bcfb4c97d7bd41b362cff44b2c537ce9e8540
+CVE_CHECK_IGNORE += "CVE-2023-1079"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1118
+# Introduced in version v2.6.36 9ea53b74df9c4681f5bb2da6b2e10e37d87ea6d6
+# Patched in kernel since v6.3-rc1 29b0589a865b6f66d141d79b2dd1373e4e50fe17
+# Backported in version v5.4.235 d120334278b370b6a1623a75ebe53b0c76cb247c
+# Backported in version v5.10.173 78da5a378bdacd5bf68c3a6389bdc1dd0c0f5b3c
+# Backported in version v5.15.99 29962c478e8b2e6a6154d8d84b8806dbe36f9c28
+# Backported in version v6.1.16 029c1410e345ce579db5c007276340d072aac54a
+# Backported in version v6.2.3 182ea492aae5b64067277e60a4ea5995c4628555
+CVE_CHECK_IGNORE += "CVE-2023-1118"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1281
+# Introduced in version v4.14 9b0d4446b56904b59ae3809913b0ac760fa941a6
+# Patched in kernel since v6.2 ee059170b1f7e94e55fa6cadee544e176a6e59c2
+# Backported in version v5.10.169 eb8e9d8572d1d9df17272783ad8a84843ce559d4
+# Backported in version v5.15.95 becf55394f6acb60dd60634a1c797e73c747f9da
+# Backported in version v6.1.13 bd662ba56187b5ef8a62a3511371cd38299a507f
+CVE_CHECK_IGNORE += "CVE-2023-1281"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1513
+# Patched in kernel since v6.2 2c10b61421a28e95a46ab489fd56c0f442ff6952
+# Backported in version v5.4.232 9f95a161a7deef62d6d2f57b1a69f94e0546d8d8
+# Backported in version v5.10.169 6416c2108ba54d569e4c98d3b62ac78cb12e7107
+# Backported in version v5.15.95 35351e3060d67eed8af1575d74b71347a87425d8
+# Backported in version v6.1.13 747ca7c8a0c7bce004709143d1cd6596b79b1deb
+CVE_CHECK_IGNORE += "CVE-2023-1513"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1652
+# Patched in kernel since v6.2 e6cf91b7b47ff82b624bdfe2fdcde32bb52e71dd
+# Backported in version v5.15.91 0a27dcd5343026ac0cb168ee63304255372b7a36
+# Backported in version v6.1.9 32d5eb95f8f0e362e37c393310b13b9e95404560
+# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1652
+# Ref: Debian kernel-sec team: https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/retired/CVE-2023-1652
+CVE_CHECK_IGNORE += "CVE-2023-1652"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1829
+# Patched in kernel since v6.3-rc1 8c710f75256bb3cf05ac7b1672c82b92c43f3d28
+# Backported in version v5.4.235 7a6fb69bbcb21e9ce13bdf18c008c268874f0480
+# Backported in version v5.10.173 18c3fa7a7fdbb4d21dafc8a7710ae2c1680930f6
+# Backported in version v5.15.100 7c183dc0af472dec33d2c0786a5e356baa8cad19
+# Backported in version v6.1.18 3abebc503a5148072052c229c6b04b329a420ecd
+# Backported in version v6.2.5 372ae77cf11d11fb118cbe2d37def9dd5f826abd
+# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1829
+# Ref: Debian kernel-sec team : https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/active/CVE-2023-1829
+CVE_CHECK_IGNORE += "CVE-2023-1829"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-23005
+# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b
+# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee
+# But, the CVE is disputed:
+# > NOTE: this is disputed by third parties because there are no realistic cases
+# > in which a user can cause the alloc_memory_type error case to be reached.
+# See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2
+# We can safely ignore it.
+CVE_CHECK_IGNORE += "CVE-2023-23005"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-28466
+# Introduced in version v4.13 3c4d7559159bfe1e3b94df3a657b2cda3a34e218
+# Patched in kernel since v6.3-rc2 49c47cc21b5b7a3d8deb18fc57b0aa2ab1286962
+# Backported in version v5.15.105 0b54d75aa43a1edebc8a3770901f5c3557ee0daa
+# Backported in version v6.1.20 14c17c673e1bba08032d245d5fb025d1cbfee123
+# Backported in version v6.2.7 5231fa057bb0e52095591b303cf95ebd17bc62ce
+CVE_CHECK_IGNORE += "CVE-2023-28466"
+
 # Wrong CPE in NVD database
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3563
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3637
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index d60ebb3..78750a0 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -46,6 +46,7 @@
     libxml-sax-base-perl \
     libxml-simple-perl \
     libxml2 \
+    logrotate \
     lua \
     lzo \
     m4 \
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index ef61377..f9e88ca 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -25,7 +25,7 @@
 QEMUVERSION ?= "7.2%"
 GOVERSION ?= "1.20%"
 LLVMVERSION ?= "15.%"
-RUSTVERSION ?= "1.67%"
+RUSTVERSION ?= "1.68%"
 
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
 PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
diff --git a/poky/meta/conf/machine/qemuarm.conf b/poky/meta/conf/machine/qemuarm.conf
index c523423..aa9ce88 100644
--- a/poky/meta/conf/machine/qemuarm.conf
+++ b/poky/meta/conf/machine/qemuarm.conf
@@ -17,8 +17,6 @@
 QB_MACHINE = "-machine virt,highmem=off"
 QB_CPU = "-cpu cortex-a15"
 QB_SMP ?= "-smp 4"
-# Standard Serial console
-QB_KERNEL_CMDLINE_APPEND = "vmalloc=256"
 # For graphics to work we need to define the VGA device as well as the necessary USB devices
 QB_GRAPHICS = "-device virtio-gpu-pci"
 QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
diff --git a/poky/meta/conf/machine/qemuarmv5.conf b/poky/meta/conf/machine/qemuarmv5.conf
index 6e59e42..ef1b4ec 100644
--- a/poky/meta/conf/machine/qemuarmv5.conf
+++ b/poky/meta/conf/machine/qemuarmv5.conf
@@ -12,7 +12,6 @@
 # For runqemu
 QB_SYSTEM_NAME = "qemu-system-arm"
 QB_MACHINE = "-machine versatilepb"
-QB_KERNEL_CMDLINE_APPEND = "vmalloc=256"
 QB_GRAPHICS = "-device virtio-gpu-pci"
 QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
 QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
diff --git a/poky/meta/lib/oe/gpg_sign.py b/poky/meta/lib/oe/gpg_sign.py
index 613dab8..ede6186 100644
--- a/poky/meta/lib/oe/gpg_sign.py
+++ b/poky/meta/lib/oe/gpg_sign.py
@@ -5,11 +5,12 @@
 #
 
 """Helper module for GPG signing"""
-import os
 
 import bb
-import subprocess
+import os
 import shlex
+import subprocess
+import tempfile
 
 class LocalSigner(object):
     """Class for handling local (on the build host) signing"""
@@ -73,8 +74,6 @@
             cmd += ['--homedir', self.gpg_path]
         if armor:
             cmd += ['--armor']
-        if output_suffix:
-            cmd += ['-o', input_file + "." + output_suffix]
         if use_sha256:
             cmd += ['--digest-algo', "SHA256"]
 
@@ -83,19 +82,27 @@
         if self.gpg_version > (2,1,):
             cmd += ['--pinentry-mode', 'loopback']
 
-        cmd += [input_file]
-
         try:
             if passphrase_file:
                 with open(passphrase_file) as fobj:
                     passphrase = fobj.readline();
 
-            job = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
-            (_, stderr) = job.communicate(passphrase.encode("utf-8"))
+            if not output_suffix:
+                output_suffix = 'asc' if armor else 'sig'
+            output_file = input_file + "." + output_suffix
+            with tempfile.TemporaryDirectory(dir=os.path.dirname(output_file)) as tmp_dir:
+                tmp_file = os.path.join(tmp_dir, os.path.basename(output_file))
+                cmd += ['-o', tmp_file]
 
-            if job.returncode:
-                bb.fatal("GPG exited with code %d: %s" % (job.returncode, stderr.decode("utf-8")))
+                cmd += [input_file]
 
+                job = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
+                (_, stderr) = job.communicate(passphrase.encode("utf-8"))
+
+                if job.returncode:
+                    bb.fatal("GPG exited with code %d: %s" % (job.returncode, stderr.decode("utf-8")))
+
+                os.rename(tmp_file, output_file)
         except IOError as e:
             bb.error("IO error (%s): %s" % (e.errno, e.strerror))
             raise Exception("Failed to sign '%s'" % input_file)
diff --git a/poky/meta/lib/oe/package.py b/poky/meta/lib/oe/package.py
index 7a6b319..edb70da 100644
--- a/poky/meta/lib/oe/package.py
+++ b/poky/meta/lib/oe/package.py
@@ -8,7 +8,7 @@
 import fnmatch
 import itertools
 import os
-import pipes
+import shlex
 import re
 import glob
 import stat
@@ -41,7 +41,7 @@
 
     stripcmd = [strip]
     skip_strip = False
-    # kernel module    
+    # kernel module
     if elftype & 16:
         if is_kernel_module_signed(file):
             bb.debug(1, "Skip strip on signed module %s" % file)
@@ -1556,7 +1556,7 @@
         sonames = set()
         renames = []
         ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
-        cmd = d.getVar('OBJDUMP') + " -p " + pipes.quote(file) + " 2>/dev/null"
+        cmd = d.getVar('OBJDUMP') + " -p " + shlex.quote(file) + " 2>/dev/null"
         fd = os.popen(cmd)
         lines = fd.readlines()
         fd.close()
@@ -2012,4 +2012,3 @@
                 for dep in bb.utils.explode_deps(d.getVar('RDEPENDS:' + base) or ""):
                     add_dep(rdeps, dep)
                 pkg_addrrecs(pkg, base, suffix, func, rdeps, d)
-
diff --git a/poky/meta/lib/oe/patch.py b/poky/meta/lib/oe/patch.py
index b2dc8d0..5990896 100644
--- a/poky/meta/lib/oe/patch.py
+++ b/poky/meta/lib/oe/patch.py
@@ -4,9 +4,11 @@
 # SPDX-License-Identifier: GPL-2.0-only
 #
 
+import os
+import shlex
+import subprocess
 import oe.path
 import oe.types
-import subprocess
 
 class NotFoundError(bb.BBHandledException):
     def __init__(self, path):
@@ -27,8 +29,6 @@
 
 
 def runcmd(args, dir = None):
-    import pipes
-
     if dir:
         olddir = os.path.abspath(os.curdir)
         if not os.path.exists(dir):
@@ -37,7 +37,7 @@
         # print("cwd: %s -> %s" % (olddir, dir))
 
     try:
-        args = [ pipes.quote(str(arg)) for arg in args ]
+        args = [ shlex.quote(str(arg)) for arg in args ]
         cmd = " ".join(args)
         # print("cmd: %s" % cmd)
         proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
@@ -217,7 +217,7 @@
         with open(self.seriespath, 'w') as f:
             for p in patches:
                 f.write(p)
-         
+
     def Import(self, patch, force = None):
         """"""
         PatchSet.Import(self, patch, force)
@@ -499,6 +499,36 @@
         finally:
             shutil.rmtree(tempdir)
 
+    def _need_dirty_check(self):
+        fetch = bb.fetch2.Fetch([], self.d)
+        check_dirtyness = False
+        for url in fetch.urls:
+            url_data = fetch.ud[url]
+            parm = url_data.parm
+            # a git url with subpath param will surely be dirty
+            # since the git tree from which we clone will be emptied
+            # from all files that are not in the subpath
+            if url_data.type == 'git' and parm.get('subpath'):
+                check_dirtyness = True
+        return check_dirtyness
+
+    def _commitpatch(self, patch, patchfilevar):
+        output = ""
+        # Add all files
+        shellcmd = ["git", "add", "-f", "-A", "."]
+        output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
+        # Exclude the patches directory
+        shellcmd = ["git", "reset", "HEAD", self.patchdir]
+        output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
+        # Commit the result
+        (tmpfile, shellcmd) = self.prepareCommit(patch['file'], self.commituser, self.commitemail)
+        try:
+            shellcmd.insert(0, patchfilevar)
+            output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
+        finally:
+            os.remove(tmpfile)
+        return output
+
     def _applypatch(self, patch, force = False, reverse = False, run = True):
         import shutil
 
@@ -534,6 +564,19 @@
         shutil.copy2(commithook, applyhook)
         try:
             patchfilevar = 'PATCHFILE="%s"' % os.path.basename(patch['file'])
+            if self._need_dirty_check():
+                # Check dirtyness of the tree
+                try:
+                    output = runcmd(["git", "--work-tree=%s" % reporoot, "status", "--short"])
+                except CmdError:
+                    pass
+                else:
+                    if output:
+                        # The tree is dirty, not need to try to apply patches with git anymore
+                        # since they fail, fallback directly to patch
+                        output = PatchTree._applypatch(self, patch, force, reverse, run)
+                        output += self._commitpatch(patch, patchfilevar)
+                        return output
             try:
                 shellcmd = [patchfilevar, "git", "--work-tree=%s" % reporoot]
                 self.gitCommandUserOptions(shellcmd, self.commituser, self.commitemail)
@@ -560,19 +603,7 @@
                 except CmdError:
                     # Fall back to patch
                     output = PatchTree._applypatch(self, patch, force, reverse, run)
-                # Add all files
-                shellcmd = ["git", "add", "-f", "-A", "."]
-                output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
-                # Exclude the patches directory
-                shellcmd = ["git", "reset", "HEAD", self.patchdir]
-                output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
-                # Commit the result
-                (tmpfile, shellcmd) = self.prepareCommit(patch['file'], self.commituser, self.commitemail)
-                try:
-                    shellcmd.insert(0, patchfilevar)
-                    output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
-                finally:
-                    os.remove(tmpfile)
+                output += self._commitpatch(patch, patchfilevar)
                 return output
         finally:
             shutil.rmtree(hooks_dir)
@@ -921,4 +952,3 @@
             return False, "applies to later version"
 
     return True, None
-
diff --git a/poky/meta/lib/oeqa/core/loader.py b/poky/meta/lib/oeqa/core/loader.py
index f25b597..d12d5a0 100644
--- a/poky/meta/lib/oeqa/core/loader.py
+++ b/poky/meta/lib/oeqa/core/loader.py
@@ -316,6 +316,9 @@
                                   module_name_small in self.modules) \
                                else False
 
+        if any(c.isupper() for c in module.__name__):
+            raise SystemExit("Module '%s' contains uppercase characters and this isn't supported. Please fix the module name." % module.__name__)
+
         return (load_module, load_underscore)
 
 
diff --git a/poky/meta/lib/oeqa/runtime/cases/apt.py b/poky/meta/lib/oeqa/runtime/cases/apt.py
index 4e09374..8000645 100644
--- a/poky/meta/lib/oeqa/runtime/cases/apt.py
+++ b/poky/meta/lib/oeqa/runtime/cases/apt.py
@@ -39,9 +39,9 @@
         self.target.run('cd %s; echo deb [ allow-insecure=yes ] %s/all ./ > sources.list' % (apt_get_sourceslist_dir, apt_get_source_server))
 
     def setup_source_config_for_package_install_signed(self):
-        apt_get_source_server = 'http:\/\/%s:%s' % (self.tc.target.server_ip, self.repo_server.port)
+        apt_get_source_server = 'http://%s:%s' % (self.tc.target.server_ip, self.repo_server.port)
         apt_get_sourceslist_dir = '/etc/apt/'
-        self.target.run("cd %s; cp sources.list sources.list.bak; sed -i 's/\[trusted=yes\] http:\/\/bogus_ip:bogus_port/%s/g' sources.list" % (apt_get_sourceslist_dir, apt_get_source_server))
+        self.target.run("cd %s; cp sources.list sources.list.bak; sed -i 's|\[trusted=yes\] http://bogus_ip:bogus_port|%s|g' sources.list" % (apt_get_sourceslist_dir, apt_get_source_server))
 
     def cleanup_source_config_for_package_install(self):
         apt_get_sourceslist_dir = '/etc/apt/'
diff --git a/poky/meta/lib/oeqa/runtime/cases/buildcpio.py b/poky/meta/lib/oeqa/runtime/cases/buildcpio.py
index bd3b46d..3728855 100644
--- a/poky/meta/lib/oeqa/runtime/cases/buildcpio.py
+++ b/poky/meta/lib/oeqa/runtime/cases/buildcpio.py
@@ -29,7 +29,10 @@
     @OEHasPackage(['autoconf'])
     def test_cpio(self):
         self.project.download_archive()
-        self.project.run_configure('--disable-maintainer-mode',
-                                   'sed -i -e "/char \*program_name/d" src/global.c;')
+        self.project.run_configure('--disable-maintainer-mode')
+        # This sed is needed until
+        # https://git.savannah.gnu.org/cgit/cpio.git/commit/src/global.c?id=641d3f489cf6238bb916368d4ba0d9325a235afb
+        # is in a release.
+        self.project._run(r'sed -i -e "/char \*program_name/d" %s/src/global.c' % self.project.targetdir)
         self.project.run_make()
         self.project.run_install()
diff --git a/poky/meta/lib/oeqa/runtime/cases/ping.py b/poky/meta/lib/oeqa/runtime/cases/ping.py
index 967b441..f72460e 100644
--- a/poky/meta/lib/oeqa/runtime/cases/ping.py
+++ b/poky/meta/lib/oeqa/runtime/cases/ping.py
@@ -5,6 +5,7 @@
 #
 
 from subprocess import Popen, PIPE
+from time import sleep
 
 from oeqa.runtime.case import OERuntimeTestCase
 from oeqa.core.decorator.oetimeout import OETimeout
@@ -16,6 +17,7 @@
     def test_ping(self):
         output = ''
         count = 0
+        self.assertNotEqual(len(self.target.ip), 0, msg="No target IP address set")
         try:
             while count < 5:
                 cmd = 'ping -c 1 %s' % self.target.ip
@@ -25,6 +27,7 @@
                     count += 1
                 else:
                     count = 0
+                    sleep(1)
         except OEQATimeoutError:
             self.fail("Ping timeout error for address %s, count %s, output: %s" % (self.target.ip, count, output))
         msg = ('Expected 5 consecutive, got %d.\n'
diff --git a/poky/meta/lib/oeqa/runtime/cases/systemd.py b/poky/meta/lib/oeqa/runtime/cases/systemd.py
index 720b4b5..37f2954 100644
--- a/poky/meta/lib/oeqa/runtime/cases/systemd.py
+++ b/poky/meta/lib/oeqa/runtime/cases/systemd.py
@@ -154,7 +154,7 @@
         """
 
         # The expression chain that uniquely identifies the time boot message.
-        expr_items=['Startup finished', 'kernel', 'userspace','\.$']
+        expr_items=['Startup finished', 'kernel', 'userspace', r'\.$']
         try:
             output = self.journalctl(args='-o cat --reverse')
         except AssertionError:
diff --git a/poky/meta/lib/oeqa/selftest/cases/bblogging.py b/poky/meta/lib/oeqa/selftest/cases/bblogging.py
index 1534a36..040c6db 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bblogging.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bblogging.py
@@ -105,16 +105,14 @@
         self.write_config('BBINCLUDELOGS = ""')
         result = bitbake("logging-test -c pythontest_exit -f -v", ignore_status = True)
         self.assertIn("ERROR: Logfile of failure stored in:", result.output)
-        # python tasks don't log output with -v currently
-        #self.assertCount(result.output, "This is python stdout", 1)
+        self.assertCount(result.output, "This is python stdout", 1)
 
     def test_python_exit_loggingD(self):
         # logs, verbose
         self.write_config('BBINCLUDELOGS = "yes"')
         result = bitbake("logging-test -c pythontest_exit -f -v", ignore_status = True)
         self.assertIn("ERROR: Logfile of failure stored in:", result.output)
-        # python tasks don't log output with -v currently
-        #self.assertCount(result.output, "This is python stdout", 1)
+        self.assertCount(result.output, "This is python stdout", 1)
 
     def test_python_exec_func_python_loggingA(self):
         # no logs, no verbose
@@ -139,8 +137,7 @@
         result = bitbake("logging-test -c pythontest_exec_func_python -f -v",
                          ignore_status = True)
         self.assertIn("ERROR: Logfile of failure stored in:", result.output)
-        # python tasks don't log output with -v currently
-        #self.assertCount(result.output, "This is python stdout", 1)
+        self.assertCount(result.output, "This is python stdout", 1)
 
     def test_python_exec_func_python_loggingD(self):
         # logs, verbose
@@ -148,8 +145,7 @@
         result = bitbake("logging-test -c pythontest_exec_func_python -f -v",
                          ignore_status = True)
         self.assertIn("ERROR: Logfile of failure stored in:", result.output)
-        # python tasks don't log output with -v currently
-        #self.assertCount(result.output, "This is python stdout", 1)
+        self.assertCount(result.output, "This is python stdout", 1)
 
     def test_python_fatal_loggingA(self):
         # no logs, no verbose
@@ -173,8 +169,7 @@
         self.write_config('BBINCLUDELOGS = ""')
         result = bitbake("logging-test -c pythontest_fatal -f -v", ignore_status = True)
         self.assertIn("ERROR: Logfile of failure stored in:", result.output)
-        # python tasks don't log output with -v currently
-        #self.assertCount(result.output, "This is python fatal test stdout", 1)
+        self.assertCount(result.output, "This is python fatal test stdout", 1)
         self.assertCount(result.output, "This is a fatal error", 1)
 
     def test_python_fatal_loggingD(self):
@@ -182,7 +177,6 @@
         self.write_config('BBINCLUDELOGS = "yes"')
         result = bitbake("logging-test -c pythontest_fatal -f -v", ignore_status = True)
         self.assertIn("ERROR: Logfile of failure stored in:", result.output)
-        # python tasks don't log output with -v currently
-        #self.assertCount(result.output, "This is python fatal test stdout", 1)
+        self.assertCount(result.output, "This is python fatal test stdout", 1)
         self.assertCount(result.output, "This is a fatal error", 1)
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 81d0201..94873fd 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -848,6 +848,99 @@
         # Try building
         bitbake(testrecipe)
 
+    def test_devtool_modify_git_crates_subpath(self):
+        # This tests two things in devtool context:
+        #   - that we support local git dependencies for cargo based recipe
+        #   - that we support patches in SRC_URI when git url contains subpath parameter
+
+        # Check preconditions:
+        #    recipe inherits cargo
+        #    git:// uri with a subpath as the main package
+        #    some crate:// in SRC_URI
+        #    others git:// in SRC_URI
+        #    cointains a patch
+        testrecipe = 'zvariant'
+        bb_vars = get_bb_vars(['SRC_URI', 'FILE', 'WORKDIR', 'CARGO_HOME'], testrecipe)
+        recipefile = bb_vars['FILE']
+        workdir = bb_vars['WORKDIR']
+        cargo_home = bb_vars['CARGO_HOME']
+        src_uri = bb_vars['SRC_URI'].split()
+        self.assertTrue(src_uri[0].startswith('git://'),
+                        'This test expects the %s recipe to have a git repo has its main uri' % testrecipe)
+        self.assertIn(';subpath=', src_uri[0],
+                      'This test expects the %s recipe to have a git uri with subpath' % testrecipe)
+        self.assertTrue(any([uri.startswith('crate://') for uri in src_uri]),
+                        'This test expects the %s recipe to have some crates in its src uris' % testrecipe)
+        self.assertGreater(sum(map(lambda x:x.startswith('git://'), src_uri)), 2,
+                           'This test expects the %s recipe to have several git:// uris' % testrecipe)
+        self.assertTrue(any([uri.startswith('file://') and '.patch' in uri for uri in src_uri]),
+                        'This test expects the %s recipe to have a patch in its src uris' % testrecipe)
+
+        self._test_recipe_contents(recipefile, {}, ['cargo'])
+
+        # Clean up anything in the workdir/sysroot/sstate cache
+        bitbake('%s -c cleansstate' % testrecipe)
+        # Try modifying a recipe
+        tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+        self.track_for_cleanup(tempdir)
+        self.track_for_cleanup(self.workspacedir)
+        self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe)
+        self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+        result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir))
+        self.assertExists(os.path.join(tempdir, 'Cargo.toml'), 'Extracted source could not be found')
+        self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created. devtool output: %s' % result.output)
+        matches = glob.glob(os.path.join(self.workspacedir, 'appends', 'zvariant_*.bbappend'))
+        self.assertTrue(matches, 'bbappend not created')
+        # Test devtool status
+        result = runCmd('devtool status')
+        self.assertIn(testrecipe, result.output)
+        self.assertIn(tempdir, result.output)
+        # Check git repo
+        self._check_src_repo(tempdir)
+        # Check that the patch is correctly applied
+        # last commit message in the tree must contain
+        # %% original patch: <patchname>
+        # ..
+        patchname = None
+        for uri in src_uri:
+            if uri.startswith('file://') and '.patch' in uri:
+                patchname = uri.replace("file://", "").partition('.patch')[0] + '.patch'
+        self.assertIsNotNone(patchname)
+        result = runCmd('git -C %s log -1' % tempdir)
+        self.assertIn("%%%% original patch: %s" % patchname, result.output)
+
+        # Configure the recipe to check that the git dependencies are correctly patched in cargo config
+        bitbake('-c configure %s' % testrecipe)
+
+        cargo_config_path = os.path.join(cargo_home, 'config')
+        with open(cargo_config_path, "r") as f:
+            cargo_config_contents = [line.strip('\n') for line in f.readlines()]
+
+        # Get back git dependencies of the recipe (ignoring the main one)
+        # and check that they are all correctly patched to be fetched locally
+        git_deps = [uri for uri in src_uri if uri.startswith("git://")][1:]
+        for git_dep in git_deps:
+            raw_url, _, raw_parms = git_dep.partition(";")
+            parms = {}
+            for parm in raw_parms.split(";"):
+                name_parm, _, value_parm = parm.partition('=')
+                parms[name_parm]=value_parm
+            self.assertIn('protocol', parms, 'git dependencies uri should contain the "protocol" parameter')
+            self.assertIn('name', parms, 'git dependencies uri should contain the "name" parameter')
+            self.assertIn('destsuffix', parms, 'git dependencies uri should contain the "destsuffix" parameter')
+            self.assertIn('type', parms, 'git dependencies uri should contain the "type" parameter')
+            self.assertEqual(parms['type'], 'git-dependency', 'git dependencies uri should have "type=git-dependency"')
+            raw_url = raw_url.replace("git://", '%s://' % parms['protocol'])
+            patch_line = '[patch."%s"]' % raw_url
+            path_patched = os.path.join(workdir, parms['destsuffix'])
+            path_override_line = '%s = { path = "%s" }' % (parms['name'], path_patched)
+            # Would have been better to use tomllib to read this file :/
+            self.assertIn(patch_line, cargo_config_contents)
+            self.assertIn(path_override_line, cargo_config_contents)
+
+        # Try to package the recipe
+        bitbake('-c package_qa %s' % testrecipe)
+
     def test_devtool_modify_localfiles(self):
         # Check preconditions
         testrecipe = 'lighttpd'
diff --git a/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py b/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py
index e17da9f..fa74103 100644
--- a/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py
+++ b/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py
@@ -15,7 +15,7 @@
     @skipIfNotMachine("qemux86-64", "test is qemux86-64 specific currently")
     def test_boot_efi(self):
         cmd = "runqemu nographic serial wic ovmf"
-        if oe.types.qemu_use_kvm(self.td['QEMU_USE_KVM'], self.td["TARGET_ARCH"]):
+        if oe.types.qemu_use_kvm(self.td.get('QEMU_USE_KVM', 0), self.td["TARGET_ARCH"]):
             cmd += " kvm"
         image = "core-image-minimal"
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index d31b43d..0292c88 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -229,10 +229,10 @@
                     self.assertTrue(os.path.exists(image_path),
                                     "%s image %s doesn't exist" % (itype, image_path))
             else:
-            	image_path = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], "%s.%s" % (bb_vars['IMAGE_LINK_NAME'], itype))
-            	# check if result image is in deploy directory
-            	self.assertTrue(os.path.exists(image_path),
-                            "%s image %s doesn't exist" % (itype, image_path))
+                image_path = os.path.join(bb_vars['DEPLOY_DIR_IMAGE'], "%s.%s" % (bb_vars['IMAGE_LINK_NAME'], itype))
+                # check if result image is in deploy directory
+                self.assertTrue(os.path.exists(image_path),
+                                "%s image %s doesn't exist" % (itype, image_path))
 
     def test_useradd_static(self):
         config = """
diff --git a/poky/meta/lib/oeqa/selftest/cases/runqemu.py b/poky/meta/lib/oeqa/selftest/cases/runqemu.py
index e72ff52..f01e1ee 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runqemu.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runqemu.py
@@ -4,14 +4,15 @@
 # SPDX-License-Identifier: MIT
 #
 
+import os
 import re
-import tempfile
 import time
 import oe.types
 from oeqa.core.decorator import OETestTag
 from oeqa.core.decorator.data import skipIfNotArch, skipIfNotMachine
 from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import bitbake, runqemu, get_bb_var, runCmd
+from oeqa.utils.commands import bitbake, runqemu, get_bb_var
+
 
 @OETestTag("runqemu")
 class RunqemuTests(OESelftestTestCase):
@@ -23,8 +24,8 @@
     def setUpLocal(self):
         super(RunqemuTests, self).setUpLocal()
         self.recipe = 'core-image-minimal'
-        self.machine =  self.td['MACHINE']
-        self.image_link_name =  get_bb_var('IMAGE_LINK_NAME', self.recipe)
+        self.machine = self.td['MACHINE']
+        self.image_link_name = get_bb_var('IMAGE_LINK_NAME', self.recipe)
 
         self.fstypes = "ext4"
         if self.td["HOST_ARCH"] in ('i586', 'i686', 'x86_64'):
@@ -61,7 +62,8 @@
         cmd = "%s %s ext4" % (self.cmd_common, self.machine)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             with open(qemu.qemurunnerlog) as f:
-                self.assertIn('rootfs.ext4', f.read(), "Failed: %s" % cmd)
+                regexp = r'\nROOTFS: .*\.ext4]\n'
+                self.assertRegex(f.read(), regexp, "Failed to find '%s' in '%s' after running '%s'" % (regexp, qemu.qemurunnerlog, cmd))
 
     @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_boot_machine_iso(self):
@@ -69,7 +71,8 @@
         cmd = "%s %s iso" % (self.cmd_common, self.machine)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             with open(qemu.qemurunnerlog) as f:
-                self.assertIn('media=cdrom', f.read(), "Failed: %s" % cmd)
+                text_in = 'media=cdrom'
+                self.assertIn(text_in, f.read(), "Failed to find '%s' in '%s' after running '%s'" % (text_in, qemu.qemurunnerlog, cmd))
 
     def test_boot_recipe_image(self):
         """Test runqemu recipe-image"""
@@ -85,7 +88,8 @@
         cmd = "%s %s wic.vmdk" % (self.cmd_common, self.recipe)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             with open(qemu.qemurunnerlog) as f:
-                self.assertIn('format=vmdk', f.read(), "Failed: %s" % cmd)
+                text_in = 'format=vmdk'
+                self.assertIn(text_in, f.read(), "Failed to find '%s' in '%s' after running '%s'" % (text_in, qemu.qemurunnerlog, cmd))
 
     @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
     def test_boot_recipe_image_vdi(self):
@@ -93,7 +97,8 @@
         cmd = "%s %s wic.vdi" % (self.cmd_common, self.recipe)
         with runqemu(self.recipe, ssh=False, launch_cmd=cmd) as qemu:
             with open(qemu.qemurunnerlog) as f:
-                self.assertIn('format=vdi', f.read(), "Failed: %s" % cmd)
+                text_in = 'format=vdi'
+                self.assertIn(text_in, f.read(), "Failed to find '%s' in '%s' after running '%s'" % (text_in, qemu.qemurunnerlog, cmd))
 
     def test_boot_deploy(self):
         """Test runqemu deploy_dir_image"""
@@ -102,7 +107,6 @@
             with open(qemu.qemurunnerlog) as f:
                 self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read()))
 
-
     @skipIfNotArch(['i586', 'i686', 'x86_64'])
     def test_boot_deploy_hddimg(self):
         """Test runqemu deploy_dir_image hddimg"""
@@ -166,9 +170,9 @@
     def setUpClass(cls):
         super(QemuTest, cls).setUpClass()
         cls.recipe = 'core-image-minimal'
-        cls.machine =  get_bb_var('MACHINE')
-        cls.deploy_dir_image =  get_bb_var('DEPLOY_DIR_IMAGE')
-        cls.image_link_name =  get_bb_var('IMAGE_LINK_NAME', cls.recipe)
+        cls.machine = get_bb_var('MACHINE')
+        cls.deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+        cls.image_link_name = get_bb_var('IMAGE_LINK_NAME', cls.recipe)
         cls.cmd_common = "runqemu nographic"
         cls.qemuboot_conf = "%s.qemuboot.conf" % (cls.image_link_name)
         cls.qemuboot_conf = os.path.join(cls.deploy_dir_image, cls.qemuboot_conf)
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index b26b649..0b0ca90 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -1348,6 +1348,29 @@
             if os.path.exists(image_path + '.bak'):
                 os.rename(image_path + '.bak', image_path)
 
+    def test_gpt_partition_name(self):
+        """Test --part-name argument to set partition name in GPT table"""
+        config = 'IMAGE_FSTYPES += "wic"\nWKS_FILE = "test_gpt_partition_name.wks"\n'
+        self.append_config(config)
+        bitbake('core-image-minimal')
+        self.remove_config(config)
+        deploy_dir = get_bb_var('DEPLOY_DIR_IMAGE')
+        machine = self.td['MACHINE']
+
+        image_path = os.path.join(deploy_dir, 'core-image-minimal-%s.wic' % machine)
+        # Image is created
+        self.assertTrue(os.path.exists(image_path))
+
+        # Check the names of the three partitions
+        # as listed in test_gpt_partition_name.wks
+        result = runCmd("sfdisk --part-label %s 1" % image_path)
+        self.assertEqual('boot-A', result.output)
+        result = runCmd("sfdisk --part-label %s 2" % image_path)
+        self.assertEqual('root-A', result.output)
+        # When the --part-name is not defined, the partition name is equal to the --label
+        result = runCmd("sfdisk --part-label %s 3" % image_path)
+        self.assertEqual('ext-space', result.output)
+
 class ModifyTests(WicTestCase):
     def test_wic_ls(self):
         """Test listing image content using 'wic ls'"""
diff --git a/poky/meta/lib/oeqa/selftest/context.py b/poky/meta/lib/oeqa/selftest/context.py
index 0a7a9da..f2a5ba7 100644
--- a/poky/meta/lib/oeqa/selftest/context.py
+++ b/poky/meta/lib/oeqa/selftest/context.py
@@ -16,6 +16,7 @@
 import oeqa
 import oe
 import bb.utils
+import bb.tinfoil
 
 from oeqa.core.context import OETestContext, OETestContextExecutor
 from oeqa.core.exception import OEQAPreRun, OEQATestNotFound
@@ -79,6 +80,12 @@
             self.removebuilddir = removebuilddir
 
     def setup_builddir(self, suffix, selftestdir, suite):
+        # Get SSTATE_DIR from the parent build dir
+        with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
+            tinfoil.prepare(quiet=2, config_only=True)
+            d = tinfoil.config_data
+            sstatedir = str(d.getVar('SSTATE_DIR'))
+
         builddir = os.environ['BUILDDIR']
         if not selftestdir:
             selftestdir = get_test_layer()
@@ -118,6 +125,9 @@
             if os.environ[e].endswith(builddir):
                 os.environ[e] = os.environ[e].replace(builddir, newbuilddir)
 
+        # Set SSTATE_DIR to match the parent SSTATE_DIR
+        subprocess.check_output("echo 'SSTATE_DIR ?= \"%s\"' >> %s/conf/local.conf" % (sstatedir, newbuilddir), cwd=newbuilddir, shell=True)
+
         os.chdir(newbuilddir)
 
         def patch_test(t):
diff --git a/poky/meta/lib/oeqa/targetcontrol.py b/poky/meta/lib/oeqa/targetcontrol.py
index 1fdff82..d686fe0 100644
--- a/poky/meta/lib/oeqa/targetcontrol.py
+++ b/poky/meta/lib/oeqa/targetcontrol.py
@@ -7,18 +7,14 @@
 # This module is used by testimage.bbclass for setting up and controlling a target machine.
 
 import os
-import shutil
 import subprocess
 import bb
-import traceback
-import sys
 import logging
 from oeqa.utils.sshcontrol import SSHControl
 from oeqa.utils.qemurunner import QemuRunner
 from oeqa.utils.qemutinyrunner import QemuTinyRunner
 from oeqa.utils.dump import TargetDumper
 from oeqa.utils.dump import MonitorDumper
-from oeqa.controllers.testtargetloader import TestTargetLoader
 from abc import ABCMeta, abstractmethod
 
 class BaseTarget(object, metaclass=ABCMeta):
@@ -42,7 +38,7 @@
         if os.path.islink(sshloglink):
             os.unlink(sshloglink)
         os.symlink(self.sshlog, sshloglink)
-        self.logger.info("SSH log file: %s" %  self.sshlog)
+        self.logger.info("SSH log file: %s" % self.sshlog)
 
     @abstractmethod
     def start(self, params=None, ssh=True, extra_bootparams=None):
@@ -145,7 +141,7 @@
                             boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")),
                             use_kvm = use_kvm,
                             dump_dir = dump_dir,
-                            dump_host_cmds = d.getVar("testimage_dump_host"),
+                            dump_host_cmds = dump_host_cmds,
                             logger = logger,
                             tmpfsdir = d.getVar("RUNQEMU_TMPFS_DIR"),
                             serial_ports = len(d.getVar("SERIAL_CONSOLES").split()))
@@ -163,7 +159,7 @@
             os.unlink(qemuloglink)
         os.symlink(self.qemulog, qemuloglink)
 
-        self.logger.info("rootfs file: %s" %  self.rootfs)
+        self.logger.info("rootfs file: %s" % self.rootfs)
         self.logger.info("Qemu log file: %s" % self.qemulog)
         super(QemuTarget, self).deploy()
 
@@ -205,7 +201,7 @@
             self.server_ip = self.runner.server_ip
             self.connection = SSHControl(ip=self.ip, logfile=self.sshlog)
         else:
-            raise RuntimError("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn)
+            raise RuntimeError("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn)
 
     def run_serial(self, command, timeout=60):
         return self.runner.run_serial(command, timeout=timeout)
diff --git a/poky/meta/lib/oeqa/utils/commands.py b/poky/meta/lib/oeqa/utils/commands.py
index f4daea2..c1f5338 100644
--- a/poky/meta/lib/oeqa/utils/commands.py
+++ b/poky/meta/lib/oeqa/utils/commands.py
@@ -8,11 +8,8 @@
 # This module is mainly used by scripts/oe-selftest and modules under meta/oeqa/selftest
 # It provides a class and methods for running commands on the host in a convienent way for tests.
 
-
-
 import os
 import sys
-import signal
 import subprocess
 import threading
 import time
@@ -21,6 +18,7 @@
 from oeqa.utils import ftools
 import re
 import contextlib
+import errno
 # Export test doesn't require bb
 try:
     import bb
@@ -85,7 +83,7 @@
             except OSError as ex:
                 # It's not an error when the command does not consume all
                 # of our data. subprocess.communicate() also ignores that.
-                if ex.errno != EPIPE:
+                if ex.errno != errno.EPIPE:
                     raise
 
         # We write in a separate thread because then we can read
@@ -117,7 +115,7 @@
             else:
                 deadline = time.time() + self.timeout
                 for thread in self.threads:
-                    timeout = deadline - time.time() 
+                    timeout = deadline - time.time()
                     if timeout < 0:
                         timeout = 0
                     thread.join(timeout)
diff --git a/poky/meta/lib/oeqa/utils/metadata.py b/poky/meta/lib/oeqa/utils/metadata.py
index 8013aa6..15ec190 100644
--- a/poky/meta/lib/oeqa/utils/metadata.py
+++ b/poky/meta/lib/oeqa/utils/metadata.py
@@ -27,9 +27,9 @@
     data_dict = get_bb_vars()
 
     # Distro information
-    info_dict['distro'] = {'id': data_dict['DISTRO'],
-                           'version_id': data_dict['DISTRO_VERSION'],
-                           'pretty_name': '%s %s' % (data_dict['DISTRO'], data_dict['DISTRO_VERSION'])}
+    info_dict['distro'] = {'id': data_dict.get('DISTRO', 'NODISTRO'),
+                                'version_id': data_dict.get('DISTRO_VERSION', 'NO_DISTRO_VERSION'),
+                                'pretty_name': '%s %s' % (data_dict.get('DISTRO', 'NODISTRO'), data_dict.get('DISTRO_VERSION', 'NO_DISTRO_VERSION'))}
 
     # Host distro information
     os_release = get_os_release()
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 0538576..6734cee 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -238,7 +238,7 @@
         self.origchldhandler = signal.getsignal(signal.SIGCHLD)
         signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
 
-        self.logger.debug('launchcmd=%s'%(launch_cmd))
+        self.logger.debug('launchcmd=%s' % (launch_cmd))
 
         # FIXME: We pass in stdin=subprocess.PIPE here to work around stty
         # blocking at the end of the runqemu script when using this within
@@ -275,7 +275,7 @@
             os._exit(0)
 
         self.logger.debug("runqemu started, pid is %s" % self.runqemu.pid)
-        self.logger.debug("waiting at most %s seconds for qemu pid (%s)" %
+        self.logger.debug("waiting at most %d seconds for qemu pid (%s)" %
                           (self.runqemutime, time.strftime("%D %H:%M:%S")))
         endtime = time.time() + self.runqemutime
         while not self.is_alive() and time.time() < endtime:
@@ -299,7 +299,7 @@
             self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
 
         if not self.is_alive():
-            self.logger.error("Qemu pid didn't appear in %s seconds (%s)" %
+            self.logger.error("Qemu pid didn't appear in %d seconds (%s)" %
                               (self.runqemutime, time.strftime("%D %H:%M:%S")))
 
             qemu_pid = None
@@ -332,8 +332,8 @@
         try:
             os.chdir(os.path.dirname(qmp_port))
             try:
-               from qmp.legacy import QEMUMonitorProtocol
-               self.qmp = QEMUMonitorProtocol(os.path.basename(qmp_port))
+                from qmp.legacy import QEMUMonitorProtocol
+                self.qmp = QEMUMonitorProtocol(os.path.basename(qmp_port))
             except OSError as msg:
                 self.logger.warning("Failed to initialize qemu monitor socket: %s File: %s" % (msg, msg.filename))
                 return False
@@ -343,8 +343,8 @@
                 self.logger.debug("QMP Port does not exist waiting for it to be created")
                 endtime = time.time() + self.runqemutime
                 while not os.path.exists(qmp_port) and self.is_alive() and time.time() < endtime:
-                   self.logger.info("QMP port does not exist yet!")
-                   time.sleep(0.5)
+                    self.logger.info("QMP port does not exist yet!")
+                    time.sleep(0.5)
                 if not os.path.exists(qmp_port) and self.is_alive():
                     self.logger.warning("QMP Port still does not exist but QEMU is alive")
                     return False
@@ -354,7 +354,7 @@
                 self.qmp.settimeout(self.runqemutime)
                 self.qmp.connect()
                 connect_time = time.time()
-                self.logger.info("QMP connected to QEMU at %s and took %s seconds" %
+                self.logger.info("QMP connected to QEMU at %s and took %.2f seconds" %
                                   (time.strftime("%D %H:%M:%S"),
                                    time.time() - launch_time))
             except OSError as msg:
@@ -388,14 +388,14 @@
 
         # Release the qemu process to continue running
         self.run_monitor('cont')
-        self.logger.info("QMP released QEMU at %s and took %s seconds from connect" %
+        self.logger.info("QMP released QEMU at %s and took %.2f seconds from connect" %
                           (time.strftime("%D %H:%M:%S"),
                            time.time() - connect_time))
 
         # We are alive: qemu is running
         out = self.getOutput(output)
         netconf = False # network configuration is not required by default
-        self.logger.debug("qemu started in %s seconds - qemu procces pid is %s (%s)" %
+        self.logger.debug("qemu started in %.2f seconds - qemu procces pid is %s (%s)" %
                           (time.time() - (endtime - self.runqemutime),
                            self.qemupid, time.strftime("%D %H:%M:%S")))
         cmdline = ''
@@ -419,7 +419,7 @@
             except (IndexError, ValueError):
                 # Try to get network configuration from runqemu output
                 match = re.match(r'.*Network configuration: (?:ip=)*([0-9.]+)::([0-9.]+):([0-9.]+).*',
-                                 out, re.MULTILINE|re.DOTALL)
+                                 out, re.MULTILINE | re.DOTALL)
                 if match:
                     self.ip, self.server_ip, self.netmask = match.groups()
                     # network configuration is required as we couldn't get it
@@ -486,9 +486,9 @@
                             self.server_socket = qemusock
                             stopread = True
                             reachedlogin = True
-                            self.logger.debug("Reached login banner in %s seconds (%s, %s)" %
+                            self.logger.debug("Reached login banner in %.2f seconds (%s)" %
                                               (time.time() - (endtime - self.boottime),
-                                              time.strftime("%D %H:%M:%S"), time.time()))
+                                              time.strftime("%D %H:%M:%S")))
                     else:
                         # no need to check if reachedlogin unless we support multiple connections
                         self.logger.debug("QEMU socket disconnected before login banner reached. (%s)" %
@@ -516,7 +516,7 @@
             (status, output) = self.run_serial(self.boot_patterns['send_login_user'], raw=True, timeout=120)
             if re.search(self.boot_patterns['search_login_succeeded'], output):
                 self.logged = True
-                self.logger.debug("Logged as root in serial console")
+                self.logger.debug("Logged in as %s in serial console" % self.boot_patterns['send_login_user'].replace("\n", ""))
                 if netconf:
                     # configure guest networking
                     cmd = "ifconfig eth0 %s netmask %s up\n" % (self.ip, self.netmask)
@@ -527,7 +527,7 @@
                         self.logger.debug("Couldn't configure guest networking")
             else:
                 self.logger.warning("Couldn't login into serial console"
-                            " as root using blank password")
+                            " as %s using blank password" % self.boot_patterns['send_login_user'].replace("\n", ""))
                 self.logger.warning("The output:\n%s" % output)
         except:
             self.logger.warning("Serial console failed while trying to login")
@@ -548,12 +548,12 @@
                     if e.errno != errno.ESRCH:
                         raise
             try:
-                outs, errs = self.runqemu.communicate(timeout = self.runqemutime)
+                outs, errs = self.runqemu.communicate(timeout=self.runqemutime)
                 if outs:
                     self.logger.info("Output from runqemu:\n%s", outs.decode("utf-8"))
                 if errs:
                     self.logger.info("Stderr from runqemu:\n%s", errs.decode("utf-8"))
-            except TimeoutExpired:
+            except subprocess.TimeoutExpired:
                 self.logger.debug("Sending SIGKILL to runqemu")
                 os.killpg(os.getpgid(self.runqemu.pid), signal.SIGKILL)
             if not self.runqemu.stdout.closed:
diff --git a/poky/meta/recipes-bsp/u-boot/files/0001-Revert-config-tools-only-add-VIDEO-to-build-bmp_logo.patch b/poky/meta/recipes-bsp/u-boot/files/0001-Revert-config-tools-only-add-VIDEO-to-build-bmp_logo.patch
deleted file mode 100644
index ab05761..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/0001-Revert-config-tools-only-add-VIDEO-to-build-bmp_logo.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 5d663e105f5affbe1ba771a1124855bff748b829 Mon Sep 17 00:00:00 2001
-From: Fabio Estevam <festevam@denx.de>
-Date: Wed, 18 Jan 2023 22:15:04 -0300
-Subject: [PATCH] Revert "config: tools only: add VIDEO to build bmp_logo"
-
-This reverts commit 1cfba53ca46cade2dbf4e067afc8c19e72909a4b.
-
-Since commit 1cfba53ca46c ("config: tools only: add VIDEO to build
-bmp_logo") the build of tools-only_defconfig fails:
-
-| /bin/sh: line 1: tools/bmp_logo: No such file or directory
-
-This has been noticed in OpenEmbedded and Debian [1].
-
-Revert it for now.
-
-[1] https://lists.denx.de/pipermail/u-boot/2023-January/504758.html
-
-Upstream-Status: Backport [https://source.denx.de/u-boot/u-boot/-/commit/6333acb961b6fcaa60c6e5b623d676b332481cfa]
-Signed-off-by: Fabio Estevam <festevam@denx.de>
----
- configs/tools-only_defconfig | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
-index 2197063112..fb75235e3d 100644
---- a/configs/tools-only_defconfig
-+++ b/configs/tools-only_defconfig
-@@ -29,7 +29,6 @@ CONFIG_DM_RTC=y
- CONFIG_SOUND=y
- CONFIG_SYSRESET=y
- CONFIG_TIMER=y
--CONFIG_VIDEO=y
- # CONFIG_VIRTIO_MMIO is not set
- # CONFIG_VIRTIO_PCI is not set
- # CONFIG_VIRTIO_SANDBOX is not set
--- 
-2.25.1
-
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 d72f6d3..8a2e9ae 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,7 +12,7 @@
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "62e2ad1ceafbfdf2c44d3dc1b6efc81e768a96b9"
+SRCREV = "fd4ed6b7e83ec3aea9a2ce21baea8ca9676f40dd"
 
 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_2023.01.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.01.bb
deleted file mode 100644
index 3484b35..0000000
--- a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.01.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require u-boot-common.inc
-require u-boot-tools.inc
-
-SRC_URI += "file://0001-Revert-config-tools-only-add-VIDEO-to-build-bmp_logo.patch"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.04.bb
new file mode 100644
index 0000000..7eaf721
--- /dev/null
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.04.bb
@@ -0,0 +1,2 @@
+require u-boot-common.inc
+require u-boot-tools.inc
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2023.01.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2023.04.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2023.01.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2023.04.bb
diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
index a830385..bf6835e 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -35,7 +35,7 @@
 # Issue only affects Debian/SUSE, not us
 CVE_CHECK_IGNORE += "CVE-2021-26720"
 
-DEPENDS = "expat libcap libdaemon glib-2.0"
+DEPENDS = "expat libcap libdaemon glib-2.0 glib-2.0-native gobject-introspection"
 
 # For gtk related PACKAGECONFIGs: gtk, gtk3
 AVAHI_GTK ?= ""
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.13/0001-avoid-start-failure-with-bind-user.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/0001-avoid-start-failure-with-bind-user.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/0001-avoid-start-failure-with-bind-user.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.13/0001-named-lwresd-V-and-start-log-hide-build-options.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/0001-named-lwresd-V-and-start-log-hide-build-options.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/0001-named-lwresd-V-and-start-log-hide-build-options.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.13/bind-ensure-searching-for-json-headers-searches-sysr.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/bind-ensure-searching-for-json-headers-searches-sysr.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/bind-ensure-searching-for-json-headers-searches-sysr.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.18.13/bind9
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/bind9
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/bind9
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.13/conf.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/conf.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/conf.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.18.13/generate-rndc-key.sh
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/generate-rndc-key.sh
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/generate-rndc-key.sh
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.13/init.d-add-support-for-read-only-rootfs.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/init.d-add-support-for-read-only-rootfs.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/init.d-add-support-for-read-only-rootfs.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.13/make-etc-initd-bind-stop-work.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/make-etc-initd-bind-stop-work.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/make-etc-initd-bind-stop-work.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.12/named.service b/poky/meta/recipes-connectivity/bind/bind-9.18.13/named.service
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.12/named.service
rename to poky/meta/recipes-connectivity/bind/bind-9.18.13/named.service
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.12.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.13.bb
similarity index 96%
rename from poky/meta/recipes-connectivity/bind/bind_9.18.12.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.18.13.bb
index abce1c0..8617137 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.18.12.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.18.13.bb
@@ -20,7 +20,7 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "47766bb7b063aabbad054386b190aa7f6c14524427afd427c30ec426512027e7"
+SRC_URI[sha256sum] = "3b06b6390c1012dd3956b1479c73b2097c0b22207817e2e8aae352fd20e578c7"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # follow the ESV versions divisible by 2
@@ -109,6 +109,5 @@
 # https://github.com/isc-projects/bind9/commit/0e25af628cd776f98c04fc4cc59048f5448f6c88
 FILES_SOLIBSDEV = "${libdir}/*[!0-9].so ${libdir}/libbind9.so"
 FILES:${PN}-libs = "${libdir}/named/*.so* ${libdir}/*-${PV}.so"
-FILES:${PN}-staticdev += "${libdir}/*.la"
 
 DEV_PKG_DEPENDENCY = ""
diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils_2.4.bb b/poky/meta/recipes-connectivity/inetutils/inetutils_2.4.bb
index 6519331..bcc3a02 100644
--- a/poky/meta/recipes-connectivity/inetutils/inetutils_2.4.bb
+++ b/poky/meta/recipes-connectivity/inetutils/inetutils_2.4.bb
@@ -1,3 +1,4 @@
+SUMMARY = "The GNU inetutils are a collection of common networking utilities and servers."
 DESCRIPTION = "The GNU inetutils are a collection of common \
 networking utilities and servers including ftp, ftpd, rcp, \
 rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \
diff --git a/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.3.bb b/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.4.bb
similarity index 94%
rename from poky/meta/recipes-connectivity/libpcap/libpcap_1.10.3.bb
rename to poky/meta/recipes-connectivity/libpcap/libpcap_1.10.4.bb
index eb0a650..27b167c 100644
--- a/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.3.bb
+++ b/poky/meta/recipes-connectivity/libpcap/libpcap_1.10.4.bb
@@ -11,7 +11,7 @@
 DEPENDS = "flex-native bison-native"
 
 SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz"
-SRC_URI[sha256sum] = "2a8885c403516cf7b0933ed4b14d6caa30e02052489ebd414dc75ac52e7559e6"
+SRC_URI[sha256sum] = "ed19a0383fad72e3ad435fd239d7cd80d64916b87269550159d20e47160ebe5f"
 
 inherit autotools binconfig-disabled pkgconfig
 
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_2.0.bb b/poky/meta/recipes-connectivity/ofono/ofono_2.1.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/ofono/ofono_2.0.bb
rename to poky/meta/recipes-connectivity/ofono/ofono_2.1.bb
index afd43d2..0ecac9e 100644
--- a/poky/meta/recipes-connectivity/ofono/ofono_2.0.bb
+++ b/poky/meta/recipes-connectivity/ofono/ofono_2.1.bb
@@ -13,7 +13,7 @@
     file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
     file://0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch \
 "
-SRC_URI[sha256sum] = "b0a31bf4d8ff3030c4aef9f8413df999c54df9db2ff0a1d3ec1710e0a9d1a49e"
+SRC_URI[sha256sum] = "92913dcce9a15cac2174daca249457716a0ec036878d22035e83af0e19e79c52"
 
 inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
 
diff --git a/poky/meta/recipes-core/busybox/busybox.inc b/poky/meta/recipes-core/busybox/busybox.inc
index 4569acd..582d879 100644
--- a/poky/meta/recipes-core/busybox/busybox.inc
+++ b/poky/meta/recipes-core/busybox/busybox.inc
@@ -34,6 +34,7 @@
 
 INITSCRIPT_NAME:${PN}-httpd = "busybox-httpd"
 INITSCRIPT_NAME:${PN}-hwclock = "hwclock.sh"
+INITSCRIPT_PARAMS:${PN}-hwclock = "start 40 S . stop 20 0 1 6 ."
 INITSCRIPT_NAME:${PN}-mdev = "mdev"
 INITSCRIPT_PARAMS:${PN}-mdev = "start 04 S ."
 INITSCRIPT_NAME:${PN}-syslog = "syslog"
diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.1.bb b/poky/meta/recipes-core/coreutils/coreutils_9.1.bb
index 4807eef..e12a6d6 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_9.1.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_9.1.bb
@@ -193,6 +193,7 @@
     sed -i '/^abs_top_builddir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
     sed -i '/^abs_top_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
     sed -i '/^built_programs/s/ginstall/install/g' ${D}${PTEST_PATH}/Makefile
+    sed -i '/^CC =/s/ --sysroot=.*recipe-sysroot/ /g' ${D}${PTEST_PATH}/Makefile
     chmod -R 777 ${D}${PTEST_PATH}
 
     # Disable subcase stty-pairs.sh, it will cause test framework hang
diff --git a/poky/meta/recipes-core/fts/fts_1.2.7.bb b/poky/meta/recipes-core/fts/fts_1.2.7.bb
index d3b0f31..1010383 100644
--- a/poky/meta/recipes-core/fts/fts_1.2.7.bb
+++ b/poky/meta/recipes-core/fts/fts_1.2.7.bb
@@ -1,7 +1,7 @@
 # Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
 # Released under the MIT license (see COPYING.MIT for the terms)
 
-SUMMARY = "Implementation of ftsfor musl libc packages"
+SUMMARY = "Implementation of fts for musl libc packages"
 HOMEPAGE = "https://github.com/pullmoll/musl-fts"
 DESCRIPTION = "The musl-fts package implements the fts(3) functions fts_open, fts_read, fts_children, fts_set and fts_close, which are missing in musl libc."
 LICENSE = "BSD-3-Clause"
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 de0813f..8f54d22 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
@@ -26,7 +26,7 @@
 
 REQUIRED_DISTRO_FEATURES += "xattr"
 
-SRCREV ?= "c45d58f003e8d8b323169ca9d479dc49c43a9974"
+SRCREV ?= "311c76c8e8cf39fa41456561148cebe2b8b3c057"
 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/images/core-image-ptest-all.bb b/poky/meta/recipes-core/images/core-image-ptest-all.bb
index c84e653..d4edb0f 100644
--- a/poky/meta/recipes-core/images/core-image-ptest-all.bb
+++ b/poky/meta/recipes-core/images/core-image-ptest-all.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Recipe to trigger execution of all ptest images."
+SUMMARY = "Recipe to trigger execution of all ptest images."
 HOMEPAGE = "https://www.yoctoproject.org/"
 
 LICENSE = "MIT"
diff --git a/poky/meta/recipes-core/images/core-image-ptest-fast.bb b/poky/meta/recipes-core/images/core-image-ptest-fast.bb
index e768afb..a5364e6 100644
--- a/poky/meta/recipes-core/images/core-image-ptest-fast.bb
+++ b/poky/meta/recipes-core/images/core-image-ptest-fast.bb
@@ -1,6 +1,6 @@
 require core-image-ptest-all.bb
 
-DESCRIPTION = "Recipe to trigger execution of all fast ptest images."
+SUMMARY = "Recipe to trigger execution of all fast ptest images."
 
 PTESTS = "${PTESTS_FAST}"
 
diff --git a/poky/meta/recipes-core/libxml/libxml2_2.10.3.bb b/poky/meta/recipes-core/libxml/libxml2_2.10.4.bb
similarity index 87%
rename from poky/meta/recipes-core/libxml/libxml2_2.10.3.bb
rename to poky/meta/recipes-core/libxml/libxml2_2.10.4.bb
index 6b3dd3e..2886315 100644
--- a/poky/meta/recipes-core/libxml/libxml2_2.10.3.bb
+++ b/poky/meta/recipes-core/libxml/libxml2_2.10.4.bb
@@ -21,7 +21,7 @@
            file://libxml-m4-use-pkgconfig.patch \
            "
 
-SRC_URI[archive.sha256sum] = "5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c"
+SRC_URI[archive.sha256sum] = "ed0c91c5845008f1936739e4eee2035531c1c94742c6541f44ee66d885948d45"
 SRC_URI[testtar.sha256sum] = "c6b2d42ee50b8b236e711a97d68e6c4b5c8d83e69a2be4722379f08702ea7273"
 
 BINCONFIG = "${bindir}/xml2-config"
@@ -40,15 +40,15 @@
 
 inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)}
 
-RDEPENDS:${PN}-ptest += "bash make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
+RDEPENDS:${PN}-ptest += "bash make locale-base-en-us ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
 
 RDEPENDS:${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}"
 
+RDEPENDS:${PN}-ptest:append:libc-musl = " musl-locales"
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-ebcdic-us \
                                            glibc-gconv-ibm1141 \
                                            glibc-gconv-iso8859-5 \
                                            glibc-gconv-euc-jp \
-                                           locale-base-en-us \
                                          "
 
 # WARNING: zlib is required for RPM use
@@ -85,6 +85,11 @@
     fi
 }
 
+# with musl we need to enable icu support explicitly for these tests
+do_install_ptest:append:libc-musl () {
+	rm -rf ${D}/${PTEST_PATH}/test/icu_parse_test.xml
+}
+
 do_install:append:class-native () {
 	# Docs are not needed in the native case
 	rm ${D}${datadir}/gtk-doc -rf
diff --git a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
new file mode 100644
index 0000000..2b58598
--- /dev/null
+++ b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -0,0 +1,334 @@
+SUMMARY = "Updates the NVD CVE database"
+LICENSE = "MIT"
+
+# Important note:
+# This product uses the NVD API but is not endorsed or certified by the NVD.
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+inherit native
+
+deltask do_unpack
+deltask do_patch
+deltask do_configure
+deltask do_compile
+deltask do_install
+deltask do_populate_sysroot
+
+NVDCVE_URL ?= "https://services.nvd.nist.gov/rest/json/cves/2.0"
+
+# CVE database update interval, in seconds. By default: once a day (24*60*60).
+# Use 0 to force the update
+# Use a negative value to skip the update
+CVE_DB_UPDATE_INTERVAL ?= "86400"
+
+# Timeout for blocking socket operations, such as the connection attempt.
+CVE_SOCKET_TIMEOUT ?= "60"
+
+CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_2.db"
+
+CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvdcve_2.db"
+
+python () {
+    if not bb.data.inherits_class("cve-check", d):
+        raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.")
+}
+
+python do_fetch() {
+    """
+    Update NVD database with API 2.0
+    """
+    import bb.utils
+    import bb.progress
+    import shutil
+
+    bb.utils.export_proxies(d)
+
+    db_file = d.getVar("CVE_CHECK_DB_FILE")
+    db_dir = os.path.dirname(db_file)
+    db_tmp_file = d.getVar("CVE_DB_TEMP_FILE")
+
+    cleanup_db_download(db_file, db_tmp_file)
+    # By default let's update the whole database (since time 0)
+    database_time = 0
+
+    # The NVD database changes once a day, so no need to update more frequently
+    # Allow the user to force-update
+    try:
+        import time
+        update_interval = int(d.getVar("CVE_DB_UPDATE_INTERVAL"))
+        if update_interval < 0:
+            bb.note("CVE database update skipped")
+            return
+        if time.time() - os.path.getmtime(db_file) < update_interval:
+            bb.note("CVE database recently updated, skipping")
+            return
+        database_time = os.path.getmtime(db_file)
+
+    except OSError:
+        pass
+
+    bb.utils.mkdirhier(db_dir)
+    if os.path.exists(db_file):
+        shutil.copy2(db_file, db_tmp_file)
+
+    if update_db_file(db_tmp_file, d, database_time) == True:
+        # Update downloaded correctly, can swap files
+        shutil.move(db_tmp_file, db_file)
+    else:
+        # Update failed, do not modify the database
+        bb.warn("CVE database update failed")
+        os.remove(db_tmp_file)
+}
+
+do_fetch[lockfiles] += "${CVE_CHECK_DB_FILE_LOCK}"
+do_fetch[file-checksums] = ""
+do_fetch[vardeps] = ""
+
+def cleanup_db_download(db_file, db_tmp_file):
+    """
+    Cleanup the download space from possible failed downloads
+    """
+
+    # Clean up the updates done on the main file
+    # Remove it only if a journal file exists - it means a complete re-download
+    if os.path.exists("{0}-journal".format(db_file)):
+        # If a journal is present the last update might have been interrupted. In that case,
+        # just wipe any leftovers and force the DB to be recreated.
+        os.remove("{0}-journal".format(db_file))
+
+        if os.path.exists(db_file):
+            os.remove(db_file)
+
+    # Clean-up the temporary file downloads, we can remove both journal
+    # and the temporary database
+    if os.path.exists("{0}-journal".format(db_tmp_file)):
+        # If a journal is present the last update might have been interrupted. In that case,
+        # just wipe any leftovers and force the DB to be recreated.
+        os.remove("{0}-journal".format(db_tmp_file))
+
+    if os.path.exists(db_tmp_file):
+        os.remove(db_tmp_file)
+
+def nvd_request_next(url, api_key, args):
+    """
+    Request next part of the NVD dabase
+    """
+
+    import urllib.request
+    import urllib.parse
+    import gzip
+    import http
+
+    headers = {}
+    if api_key:
+        headers['apiKey'] = api_key
+
+    data = urllib.parse.urlencode(args)
+
+    full_request = url + '?' + data
+
+    for attempt in range(3):
+        try:
+            r = urllib.request.urlopen(full_request)
+
+            if (r.headers['content-encoding'] == 'gzip'):
+                buf = r.read()
+                raw_data = gzip.decompress(buf)
+            else:
+                raw_data = r.read().decode("utf-8")
+
+            r.close()
+
+        except UnicodeDecodeError:
+            # Received garbage, retry
+            bb.debug(2, "CVE database: received malformed data, retrying (request: %s)" %(full_request))
+            pass
+        except http.client.IncompleteRead:
+            # Read incomplete, let's try again
+            bb.debug(2, "CVE database: received incomplete data, retrying (request: %s)" %(full_request))
+            pass
+        else:
+            return raw_data
+    else:
+        # We failed at all attempts
+        return None
+
+def update_db_file(db_tmp_file, d, database_time):
+    """
+    Update the given database file
+    """
+    import bb.utils, bb.progress
+    import datetime
+    import sqlite3
+    import json
+
+    # Connect to database
+    conn = sqlite3.connect(db_tmp_file)
+    initialize_db(conn)
+
+    req_args = {'startIndex' : 0}
+
+    # The maximum range for time is 120 days
+    # Force a complete update if our range is longer
+    if (database_time != 0):
+        database_date = datetime.datetime.combine(datetime.date.fromtimestamp(database_time), datetime.time())
+        today_date = datetime.datetime.combine(datetime.date.today(), datetime.time())
+        delta = today_date - database_date
+        if delta.days < 120:
+            bb.debug(2, "CVE database: performing partial update")
+            req_args['lastModStartDate'] = database_date.isoformat()
+            req_args['lastModEndDate'] = today_date.isoformat()
+        else:
+            bb.note("CVE database: file too old, forcing a full update")
+
+    with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f:
+
+        bb.debug(2, "Updating entries")
+        index = 0
+        url = d.getVar("NVDCVE_URL")
+        while True:
+            req_args['startIndex'] = index
+            raw_data = nvd_request_next(url, None, req_args)
+            if raw_data is None:
+                # We haven't managed to download data
+                return False
+
+            data = json.loads(raw_data)
+
+            index = data["startIndex"]
+            total = data["totalResults"]
+            per_page = data["resultsPerPage"]
+
+            for cve in data["vulnerabilities"]:
+               update_db(conn, cve)
+
+            index += per_page
+            ph.update((float(index) / (total+1)) * 100)
+            if index >= total:
+               break
+
+            # Recommended by NVD
+            time.sleep(6)
+
+        # Update success, set the date to cve_check file.
+        cve_f.write('CVE database update : %s\n\n' % datetime.date.today())
+
+    conn.commit()
+    conn.close()
+    return True
+
+def initialize_db(conn):
+    with conn:
+        c = conn.cursor()
+
+        c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
+
+        c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
+            SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
+
+        c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
+            VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
+            VERSION_END TEXT, OPERATOR_END TEXT)")
+        c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);")
+
+        c.close()
+
+def parse_node_and_insert(conn, node, cveId):
+
+    def cpe_generator():
+        for cpe in node.get('cpeMatch', ()):
+            if not cpe['vulnerable']:
+                return
+            cpe23 = cpe.get('criteria')
+            if not cpe23:
+                return
+            cpe23 = cpe23.split(':')
+            if len(cpe23) < 6:
+                return
+            vendor = cpe23[3]
+            product = cpe23[4]
+            version = cpe23[5]
+
+            if cpe23[6] == '*' or cpe23[6] == '-':
+                version_suffix = ""
+            else:
+                version_suffix = "_" + cpe23[6]
+
+            if version != '*' and version != '-':
+                # Version is defined, this is a '=' match
+                yield [cveId, vendor, product, version + version_suffix, '=', '', '']
+            elif version == '-':
+                # no version information is available
+                yield [cveId, vendor, product, version, '', '', '']
+            else:
+                # Parse start version, end version and operators
+                op_start = ''
+                op_end = ''
+                v_start = ''
+                v_end = ''
+
+                if 'versionStartIncluding' in cpe:
+                    op_start = '>='
+                    v_start = cpe['versionStartIncluding']
+
+                if 'versionStartExcluding' in cpe:
+                    op_start = '>'
+                    v_start = cpe['versionStartExcluding']
+
+                if 'versionEndIncluding' in cpe:
+                    op_end = '<='
+                    v_end = cpe['versionEndIncluding']
+
+                if 'versionEndExcluding' in cpe:
+                    op_end = '<'
+                    v_end = cpe['versionEndExcluding']
+
+                if op_start or op_end or v_start or v_end:
+                    yield [cveId, vendor, product, v_start, op_start, v_end, op_end]
+                else:
+                    # This is no version information, expressed differently.
+                    # Save processing by representing as -.
+                    yield [cveId, vendor, product, '-', '', '', '']
+
+    conn.executemany("insert into PRODUCTS values (?, ?, ?, ?, ?, ?, ?)", cpe_generator()).close()
+
+def update_db(conn, elt):
+    """
+    Update a single entry in the on-disk database
+    """
+
+    accessVector = None
+    cveId = elt['cve']['id']
+    if elt['cve']['vulnStatus'] ==  "Rejected":
+        return
+    cveDesc = ""
+    for desc in elt['cve']['descriptions']:
+        if desc['lang'] == 'en':
+            cveDesc = desc['value']
+    date = elt['cve']['lastModified']
+    try:
+        accessVector = elt['cve']['metrics']['cvssMetricV2'][0]['cvssData']['accessVector']
+        cvssv2 = elt['cve']['metrics']['cvssMetricV2'][0]['cvssData']['baseScore']
+    except KeyError:
+        cvssv2 = 0.0
+    try:
+        accessVector = accessVector or elt['impact']['baseMetricV3']['cvssV3']['attackVector']
+        cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore']
+    except KeyError:
+        accessVector = accessVector or "UNKNOWN"
+        cvssv3 = 0.0
+
+    conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)",
+                [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]).close()
+
+    try:
+        configurations = elt['cve']['configurations'][0]['nodes']
+        for config in configurations:
+            parse_node_and_insert(conn, config, cveId)
+    except KeyError:
+        bb.debug(2, "Entry without a configuration")
+
+do_fetch[nostamp] = "1"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/poky/meta/recipes-core/musl/musl-locales_git.bb b/poky/meta/recipes-core/musl/musl-locales_git.bb
index 9253223..6ffac4f 100644
--- a/poky/meta/recipes-core/musl/musl-locales_git.bb
+++ b/poky/meta/recipes-core/musl/musl-locales_git.bb
@@ -10,7 +10,7 @@
 SRC_URI = "git://git.adelielinux.org/adelie/musl-locales;protocol=https;branch=main"
 
 PV = "1.0+git${SRCPV}"
-SRCREV = "cac3dcdccd1d0c08d17f4919d862737d64b76f79"
+SRCREV = "5663f5bfd30bf9e1e0ba3fc5fe2da6725969f30e"
 
 S = "${WORKDIR}/git"
 
@@ -35,6 +35,7 @@
 LICENSE:locale-base-en-us = "MIT"
 LICENSE:locale-base-es-es = "MIT"
 LICENSE:locale-base-fi-fi = "MIT"
+LICENSE:locale-base-fr-ca = "MIT"
 LICENSE:locale-base-fr-fr = "MIT"
 LICENSE:locale-base-it-it = "MIT"
 LICENSE:locale-base-nb-no = "MIT"
@@ -52,6 +53,7 @@
              locale-base-en-us \
              locale-base-es-es \
              locale-base-fi-fi \
+             locale-base-fr-ca \
              locale-base-fr-fr \
              locale-base-it-it \
              locale-base-nb-no \
@@ -69,6 +71,7 @@
 FILES:locale-base-en-us += "${datadir}/i18n/locales/musl/en_US.UTF-8"
 FILES:locale-base-es-es += "${datadir}/i18n/locales/musl/es_ES.UTF-8"
 FILES:locale-base-fi-fi += "${datadir}/i18n/locales/musl/fi_FI.UTF-8"
+FILES:locale-base-fr-ca += "${datadir}/i18n/locales/musl/fr_CA.UTF-8"
 FILES:locale-base-fr-fr += "${datadir}/i18n/locales/musl/fr_FR.UTF-8"
 FILES:locale-base-it-it += "${datadir}/i18n/locales/musl/it_IT.UTF-8"
 FILES:locale-base-nb-no += "${datadir}/i18n/locales/musl/nb_NO.UTF-8"
diff --git a/poky/meta/recipes-core/musl/musl-utils.bb b/poky/meta/recipes-core/musl/musl-utils.bb
index c42dff3..8280333 100644
--- a/poky/meta/recipes-core/musl/musl-utils.bb
+++ b/poky/meta/recipes-core/musl/musl-utils.bb
@@ -1,7 +1,7 @@
 # Copyright (C) 2018 Khem Raj <raj.khem@gmail.com>
 # Released under the MIT license (see COPYING.MIT for the terms)
 
-DESCRIPTION = "getconf, getent and iconv implementations for musl"
+SUMMARY = "getconf, getent and iconv implementations for musl"
 HOMEPAGE = "https://git.alpinelinux.org/cgit/aports/tree/main/musl"
 LICENSE = "BSD-2-Clause & GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=9d08215e611db87b357e8674b4b42564"
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 39f6dd8..531f337 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
 require musl.inc
 inherit linuxloader
 
-SRCREV = "7d756e1c04de6eb3f2b3d3e1141a218bb329fcfb"
+SRCREV = "1d5750b95c06913a1f18a995481276d698d20fae"
 
 BASEVER = "1.2.3"
 
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_253.1.bb b/poky/meta/recipes-core/systemd/systemd-boot_253.3.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd-boot_253.1.bb
rename to poky/meta/recipes-core/systemd/systemd-boot_253.3.bb
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index 14608f9..d50f2c9 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,11 +14,10 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "6c327d74aa0d350482e82a247d7018559699798d"
+SRCREV = "ed18c2ab79e8b94182d5dcf31d58457763f3e3e1"
 SRCBRANCH = "v253-stable"
 SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
            file://0026-src-boot-efi-efi-string.c-define-wchar_t-from-__WCHA.patch \
-           file://0025-systemctl-explicitly-cast-the-constants-to-uint64_t.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch b/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch
index 6f01721..2090d81 100644
--- a/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch
@@ -21,8 +21,6 @@
  create mode 100644 src/basic/parse-printf-format.c
  create mode 100644 src/basic/parse-printf-format.h
 
-diff --git a/meson.build b/meson.build
-index bfc86857d6..fb96143c37 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -755,6 +755,7 @@ endif
@@ -31,10 +29,8 @@
                    'linux/vm_sockets.h',
 +                  'printf.h',
                    'sys/auxv.h',
+                   'threads.h',
                    'valgrind/memcheck.h',
-                   'valgrind/valgrind.h',
-diff --git a/src/basic/meson.build b/src/basic/meson.build
-index 7aae031d81..1aa9f5006d 100644
 --- a/src/basic/meson.build
 +++ b/src/basic/meson.build
 @@ -173,6 +173,11 @@ endforeach
@@ -49,9 +45,6 @@
  ############################################################
  
  arch_list = [
-diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
-new file mode 100644
-index 0000000000..49437e5445
 --- /dev/null
 +++ b/src/basic/parse-printf-format.c
 @@ -0,0 +1,273 @@
@@ -328,9 +321,6 @@
 +
 +        return last;
 +}
-diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
-new file mode 100644
-index 0000000000..47be7522d7
 --- /dev/null
 +++ b/src/basic/parse-printf-format.h
 @@ -0,0 +1,57 @@
@@ -391,8 +381,6 @@
 +size_t parse_printf_format(const char *fmt, size_t n, int *types);
 +
 +#endif /* HAVE_PRINTF_H */
-diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
-index 4e93ac90c9..f9deb6f662 100644
 --- a/src/basic/stdio-util.h
 +++ b/src/basic/stdio-util.h
 @@ -1,12 +1,12 @@
@@ -409,8 +397,6 @@
  
  _printf_(3, 4)
  static inline char *snprintf_ok(char *buf, size_t len, const char *format, ...) {
-diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
-index 3b74d2246e..136ebcb153 100644
 --- a/src/libsystemd/sd-journal/journal-send.c
 +++ b/src/libsystemd/sd-journal/journal-send.c
 @@ -2,7 +2,6 @@
@@ -429,6 +415,3 @@
  
  #define SNDBUF_SIZE (8*1024*1024)
  
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0025-systemctl-explicitly-cast-the-constants-to-uint64_t.patch b/poky/meta/recipes-core/systemd/systemd/0025-systemctl-explicitly-cast-the-constants-to-uint64_t.patch
deleted file mode 100644
index d840de8..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0025-systemctl-explicitly-cast-the-constants-to-uint64_t.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fad29ce1f5cc7b12bc13671d9ad80775771a67eb Mon Sep 17 00:00:00 2001
-From: Frantisek Sumsal <frantisek@sumsal.cz>
-Date: Fri, 3 Mar 2023 12:17:27 +0100
-Subject: [PATCH] systemctl: explicitly cast the constants to uint64_t
-
-Otherwise under certain conditions `va_arg()` might get garbage instead
-of the expected value, i.e.:
-
-$ sudo build-o0/systemctl disable asdfasfaf
-sd_bus_message_appendv: Got uint64_t: 0
-Failed to disable unit: Unit file asdfasfaf.service does not exist.
-
-$ sudo build-o1/systemctl disable asdfasfaf
-sd_bus_message_appendv: Got uint64_t: 7954875719681572864
-Failed to disable unit: Invalid argument
-
-(reproduced on an armv7hl machine)
-
-Resolves: #26568
-Follow-up to: bf1bea43f15
-Related issue: https://github.com/systemd/systemd/pull/14470#discussion_r362893735
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/commit/c63bfd0884cf20e48befbee49d41f667660a8802]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/systemctl/systemctl-enable.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/systemctl/systemctl-enable.c b/src/systemctl/systemctl-enable.c
-index 86d9f602fa..f94a286122 100644
---- a/src/systemctl/systemctl-enable.c
-+++ b/src/systemctl/systemctl-enable.c
-@@ -211,7 +211,7 @@ int verb_enable(int argc, char *argv[], void *userdata) {
- 
-                 if (send_runtime) {
-                         if (streq(method, "DisableUnitFilesWithFlagsAndInstallInfo"))
--                                r = sd_bus_message_append(m, "t", arg_runtime ? UNIT_FILE_RUNTIME : 0);
-+                                r = sd_bus_message_append(m, "t", arg_runtime ? (uint64_t) UNIT_FILE_RUNTIME : UINT64_C(0));
-                         else
-                                 r = sd_bus_message_append(m, "b", arg_runtime);
-                         if (r < 0)
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd_253.1.bb b/poky/meta/recipes-core/systemd/systemd_253.3.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd_253.1.bb
rename to poky/meta/recipes-core/systemd/systemd_253.3.bb
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.7.4.bb b/poky/meta/recipes-devtools/ccache/ccache_4.8.bb
similarity index 82%
rename from poky/meta/recipes-devtools/ccache/ccache_4.7.4.bb
rename to poky/meta/recipes-devtools/ccache/ccache_4.8.bb
index 0419d07..6cad0dd 100644
--- a/poky/meta/recipes-devtools/ccache/ccache_4.7.4.bb
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.8.bb
@@ -7,14 +7,14 @@
 SECTION = "devel"
 
 LICENSE = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=8fc2cae2bbabeb9236cacfa1c83a3dc5"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=43a02b74c9eb73a0b978ae5082f5f1b6"
 
 DEPENDS = "zstd"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
            file://0001-xxhash.h-Fix-build-with-gcc-12.patch \
            "
-SRC_URI[sha256sum] = "dc283906b73bd7c461178ca472a459e9d86b5523405035921bd8204e77620264"
+SRC_URI[sha256sum] = "ac4b01748fd59cfe07e070c34432b91bdd0fd8640e1e653a80b01d6a523186b0"
 
 inherit cmake github-releases
 
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.20.1.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.20.1.bb
index 053198c..1c4cdd5 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.20.1.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.20.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "C implementation of createrepo."
+SUMMARY = "C implementation of createrepo."
 HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki"
 
 LICENSE = "GPL-2.0-only"
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.47.0.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.47.0.bb
index 2620610..f29c55e 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.47.0.bb
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.47.0.bb
@@ -20,6 +20,7 @@
 
 EXTRA_OECONF:darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
 
+CFLAGS:append:riscv32 = " -D_FILE_OFFSET_BITS=64"
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
 
diff --git a/poky/meta/recipes-devtools/gdb/gdb-common.inc b/poky/meta/recipes-devtools/gdb/gdb-common.inc
index 925b0c2..9db61b7 100644
--- a/poky/meta/recipes-devtools/gdb/gdb-common.inc
+++ b/poky/meta/recipes-devtools/gdb/gdb-common.inc
@@ -58,6 +58,7 @@
 	rm -rf ${D}${includedir}
 	rm -rf ${D}${datadir}/locale
 	rm -f ${D}${infodir}/bfd.info
+        rm -f ${D}${infodir}/sframe-spec.info
 }
 
 RRECOMMENDS:gdb:append:linux = " glibc-thread-db "
diff --git a/poky/meta/recipes-devtools/go/go-1.20.1.inc b/poky/meta/recipes-devtools/go/go-1.20.1.inc
index b1f5692..179f0e2 100644
--- a/poky/meta/recipes-devtools/go/go-1.20.1.inc
+++ b/poky/meta/recipes-devtools/go/go-1.20.1.inc
@@ -16,5 +16,6 @@
     file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
     file://0010-cmd-compile-re-compile-instantiated-generic-methods-.patch \
     file://CVE-2023-24532.patch \
+    file://CVE-2023-24537.patch \
 "
 SRC_URI[main.sha256sum] = "b5c1a3af52c385a6d1c76aed5361cf26459023980d0320de7658bae3915831a2"
diff --git a/poky/meta/recipes-devtools/go/go/CVE-2023-24537.patch b/poky/meta/recipes-devtools/go/go/CVE-2023-24537.patch
new file mode 100644
index 0000000..6b5dc2c
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go/CVE-2023-24537.patch
@@ -0,0 +1,89 @@
+From 110e4fb1c2e3a21631704bbfaf672230b9ba2492 Mon Sep 17 00:00:00 2001
+From: Damien Neil <dneil@google.com>
+Date: Wed, 22 Mar 2023 09:33:22 -0700
+Subject: [PATCH] go/scanner: reject large line and column numbers in //line
+ directives
+
+Setting a large line or column number using a //line directive can cause
+integer overflow even in small source files.
+
+Limit line and column numbers in //line directives to 2^30-1, which
+is small enough to avoid int32 overflow on all reasonbly-sized files.
+
+For #59180
+Fixes CVE-2023-24537
+
+Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1802456
+Reviewed-by: Julie Qiu <julieqiu@google.com>
+Reviewed-by: Roland Shoemaker <bracewell@google.com>
+Run-TryBot: Damien Neil <dneil@google.com>
+Change-Id: I149bf34deca532af7994203fa1e6aca3c890ea14
+Reviewed-on: https://go-review.googlesource.com/c/go/+/482078
+Reviewed-by: Matthew Dempsky <mdempsky@google.com>
+TryBot-Bypass: Michael Knyszek <mknyszek@google.com>
+Run-TryBot: Michael Knyszek <mknyszek@google.com>
+Auto-Submit: Michael Knyszek <mknyszek@google.com>
+
+CVE: CVE-2023-24537
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ src/go/parser/parser_test.go | 16 ++++++++++++++++
+ src/go/scanner/scanner.go    |  7 +++++--
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/src/go/parser/parser_test.go b/src/go/parser/parser_test.go
+index 153562df75068..22b11a0cc4535 100644
+--- a/src/go/parser/parser_test.go
++++ b/src/go/parser/parser_test.go
+@@ -764,3 +764,19 @@ func TestRangePos(t *testing.T) {
+ 		})
+ 	}
+ }
++
++// TestIssue59180 tests that line number overflow doesn't cause an infinite loop.
++func TestIssue59180(t *testing.T) {
++	testcases := []string{
++		"package p\n//line :9223372036854775806\n\n//",
++		"package p\n//line :1:9223372036854775806\n\n//",
++		"package p\n//line file:9223372036854775806\n\n//",
++	}
++
++	for _, src := range testcases {
++		_, err := ParseFile(token.NewFileSet(), "", src, ParseComments)
++		if err == nil {
++			t.Errorf("ParseFile(%s) succeeded unexpectedly", src)
++		}
++	}
++}
+diff --git a/src/go/scanner/scanner.go b/src/go/scanner/scanner.go
+index 16958d22ce299..0cd9f5901d0bb 100644
+--- a/src/go/scanner/scanner.go
++++ b/src/go/scanner/scanner.go
+@@ -253,13 +253,16 @@ func (s *Scanner) updateLineInfo(next, offs int, text []byte) {
+ 		return
+ 	}
+ 
++	// Put a cap on the maximum size of line and column numbers.
++	// 30 bits allows for some additional space before wrapping an int32.
++	const maxLineCol = 1<<30 - 1
+ 	var line, col int
+ 	i2, n2, ok2 := trailingDigits(text[:i-1])
+ 	if ok2 {
+ 		//line filename:line:col
+ 		i, i2 = i2, i
+ 		line, col = n2, n
+-		if col == 0 {
++		if col == 0 || col > maxLineCol {
+ 			s.error(offs+i2, "invalid column number: "+string(text[i2:]))
+ 			return
+ 		}
+@@ -269,7 +272,7 @@ func (s *Scanner) updateLineInfo(next, offs int, text []byte) {
+ 		line = n
+ 	}
+ 
+-	if line == 0 {
++	if line == 0 || line > maxLineCol {
+ 		s.error(offs+i, "invalid line number: "+string(text[i:]))
+ 		return
+ 	}
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index f133653..acf7f4c 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -1,7 +1,7 @@
 # Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
 # Released under the MIT license (see COPYING.MIT for the terms)
 
-DESCRIPTION = "The LLVM Compiler Infrastructure"
+SUMMARY = "The LLVM Compiler Infrastructure"
 HOMEPAGE = "http://llvm.org"
 LICENSE = "Apache-2.0-with-LLVM-exception"
 SECTION = "devel"
@@ -82,9 +82,8 @@
                   -DLLVM_OPTIMIZED_TABLEGEN=ON \
                   -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \
                   -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
-                  -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
                   -DCMAKE_BUILD_TYPE=Release \
-                  -G Ninja"
+                 "
 
 EXTRA_OECMAKE:append:class-target = "\
                   -DCMAKE_CROSSCOMPILING:BOOL=ON \
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 a39d888..26ec35f 100644
--- a/poky/meta/recipes-devtools/lua/lua_5.4.4.bb
+++ b/poky/meta/recipes-devtools/lua/lua_5.4.4.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Lua is a powerful light-weight programming language designed \
+SUMMARY = "Lua is a powerful light-weight programming language designed \
 for extending applications."
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=307;endline=330;md5=79c3f6b19ad05efe24c1681f025026bb"
@@ -56,6 +56,12 @@
         cp -R --no-dereference --preserve=mode,links -v ${WORKDIR}/lua-${PV_testsuites}-tests ${D}${PTEST_PATH}/test
 }
 
+do_install_ptest:append:libc-musl () {
+        # locale tests does not work on musl, due to limited locale implementation
+        # https://wiki.musl-libc.org/open-issues.html#Locale-limitations
+        sed -i -e 's|os.setlocale("pt_BR") or os.setlocale("ptb")|false|g' ${D}${PTEST_PATH}/test/literals.lua
+}
+
 BBCLASSEXTEND = "native nativesdk"
 
 inherit multilib_script
diff --git a/poky/meta/recipes-devtools/m4/m4-1.4.19.inc b/poky/meta/recipes-devtools/m4/m4-1.4.19.inc
index 3b4303b..fcc9e58 100644
--- a/poky/meta/recipes-devtools/m4/m4-1.4.19.inc
+++ b/poky/meta/recipes-devtools/m4/m4-1.4.19.inc
@@ -40,8 +40,6 @@
                 cp -r ${B}/tests                        ${D}${PTEST_PATH}
                 cp -r ${S}/tests/*                      ${D}${PTEST_PATH}/tests/
                 sed -i '/^Makefile:/c Makefile:'        ${D}${PTEST_PATH}/tests/Makefile
-                sed -i -e  "s;LOCALE_FR='fr_FR';LOCALE_FR='fr_FR.iso88591';g" \
-                       -e  "s;LOCALE_FR_UTF8='none';LOCALE_FR_UTF8='fr_FR.utf8';g" ${D}${PTEST_PATH}/tests/Makefile
                 find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {}
                 cp ${S}/build-aux/update-copyright  ${D}${PTEST_PATH}/tests/
                 sed -i 's;update-copyright;./update-copyright;g' ${D}${PTEST_PATH}/tests/test-update-copyright.sh
@@ -52,6 +50,10 @@
                 ln -s ptest ${D}${libdir}/${BPN}/${BP} 
 }
 
+do_install_ptest:append:libc-glibc() {
+                sed -i -e  "s;LOCALE_FR='fr_FR';LOCALE_FR='fr_FR.iso88591';g" \
+                       -e  "s;LOCALE_FR_UTF8='none';LOCALE_FR_UTF8='fr_FR.utf8';g" ${D}${PTEST_PATH}/tests/Makefile
+}
 
 RDEPENDS:${PN}-ptest += "make coreutils diffutils bash"
 RDEPENDS:${PN}-ptest:append:libc-glibc = "\
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.42.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.43.bb
similarity index 93%
rename from poky/meta/recipes-devtools/mtools/mtools_4.0.42.bb
rename to poky/meta/recipes-devtools/mtools/mtools_4.0.43.bb
index 85d9e45..8591039 100644
--- a/poky/meta/recipes-devtools/mtools/mtools_4.0.42.bb
+++ b/poky/meta/recipes-devtools/mtools/mtools_4.0.43.bb
@@ -24,7 +24,7 @@
 	glibc-gconv-ibm866 \
 	glibc-gconv-ibm869 \
 	"
-SRC_URI[sha256sum] = "64bfdfde4d82af6b22f3c1c72c3e231cbb618f4c2309cc46f54d16d5502ccf15"
+SRC_URI[sha256sum] = "541e179665dc4e272b9602f2074243591a157da89cc47064da8c5829dbd2b339"
 
 SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
            file://mtools-makeinfo.patch \
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index 30d1b39..2b77849 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] = "5040764c4a4d2ce964a395da24f0d1ae58144995dab92c6b96f44c3f4d72286a"
+SRC_URI[sha256sum] = "1909688f5d7b521a60c396d20bba9e47a1b2d2784bfb085401e1e1e7d29a29a8"
 UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
 
 inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python3-alabaster_0.7.13.bb b/poky/meta/recipes-devtools/python/python3-alabaster_0.7.13.bb
index 9571137..05d59fe 100644
--- a/poky/meta/recipes-devtools/python/python3-alabaster_0.7.13.bb
+++ b/poky/meta/recipes-devtools/python/python3-alabaster_0.7.13.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Alabaster is a visually (c)lean, responsive, configurable theme for the Sphinx documentation system. It is Python 2+3 compatible."
+SUMMARY = "Alabaster is a visually (c)lean, responsive, configurable theme for the Sphinx documentation system."
 HOMEPAGE = "https://alabaster.readthedocs.io/en/latest/"
 SECTION = "devel/python"
 LICENSE = "BSD-3-Clause"
diff --git a/poky/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb b/poky/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb
index 5fa2ed9..3b8c5f9 100644
--- a/poky/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-asn1crypto_1.5.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A fast, pure Python library for parsing and serializing ASN.1 structures"
+SUMMARY = "A fast, pure Python library for parsing and serializing ASN.1 structures"
 HOMEPAGE = "https://github.com/wbond/asn1crypto"
 SECTION = "devel/python"
 LICENSE = "MIT"
diff --git a/poky/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb b/poky/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb
index f706f5d..f29be37 100644
--- a/poky/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-atomicwrites_1.4.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Powerful Python library for atomic file writes"
+SUMMARY = "Powerful Python library for atomic file writes"
 HOMEPAGE = "https://github.com/untitaker/python-atomicwrites"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=91cc36cfafeefb7863673bcfcb1d4da4"
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_22.2.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_22.2.0.bb
index 20dccc6..8c1ff33 100644
--- a/poky/meta/recipes-devtools/python/python3-attrs_22.2.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-attrs_22.2.0.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Classes Without Boilerplate"
+SUMMARY = "Classes Without Boilerplate"
 HOMEPAGE = "http://www.attrs.org/"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887"
diff --git a/poky/meta/recipes-devtools/python/python3-babel_2.12.1.bb b/poky/meta/recipes-devtools/python/python3-babel_2.12.1.bb
index dfa45fb..794e165 100644
--- a/poky/meta/recipes-devtools/python/python3-babel_2.12.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-babel_2.12.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A collection of tools for internationalizing Python applications"
+SUMMARY = "A collection of tools for internationalizing Python applications"
 HOMEPAGE = "http://babel.edgewall.org/"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0f97d9a63e91407b4c0d01efde91cfc0"
diff --git a/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc b/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc
index 1ff6626..16d9e55 100644
--- a/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc
+++ b/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc
@@ -53,52 +53,52 @@
     crate://crates.io/zeroize/1.5.7 \
 "
 
-SRC_URI[autocfg.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-SRC_URI[base64.sha256sum] = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-SRC_URI[bcrypt.sha256sum] = "a7e7c93a3fb23b2fdde989b2c9ec4dd153063ec81f408507f84c090cd91c6641"
-SRC_URI[bcrypt-pbkdf.sha256sum] = "f4ef233ffa9cb9c7820b2b0e9efd0821ed180e866c9120ec9f45518659742074"
-SRC_URI[bitflags.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[block-buffer.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
-SRC_URI[blowfish.sha256sum] = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
-SRC_URI[byteorder.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-SRC_URI[cfg-if.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[cipher.sha256sum] = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
-SRC_URI[cpufeatures.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
-SRC_URI[crypto-common.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-SRC_URI[digest.sha256sum] = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
-SRC_URI[generic-array.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
-SRC_URI[getrandom.sha256sum] = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
-SRC_URI[indoc.sha256sum] = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
-SRC_URI[indoc-impl.sha256sum] = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
-SRC_URI[inout.sha256sum] = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-SRC_URI[instant.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-SRC_URI[libc.sha256sum] = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb"
-SRC_URI[lock_api.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-SRC_URI[once_cell.sha256sum] = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
-SRC_URI[parking_lot.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-SRC_URI[parking_lot_core.sha256sum] = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
-SRC_URI[paste.sha256sum] = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
-SRC_URI[paste-impl.sha256sum] = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
-SRC_URI[pbkdf2.sha256sum] = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7"
-SRC_URI[proc-macro-hack.sha256sum] = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-SRC_URI[proc-macro2.sha256sum] = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
-SRC_URI[pyo3.sha256sum] = "d41d50a7271e08c7c8a54cd24af5d62f73ee3a6f6a314215281ebdec421d5752"
-SRC_URI[pyo3-build-config.sha256sum] = "779239fc40b8e18bc8416d3a37d280ca9b9fb04bda54b98037bb6748595c2410"
-SRC_URI[pyo3-macros.sha256sum] = "00b247e8c664be87998d8628e86f282c25066165f1f8dda66100c48202fdb93a"
-SRC_URI[pyo3-macros-backend.sha256sum] = "5a8c2812c412e00e641d99eeb79dd478317d981d938aa60325dfa7157b607095"
-SRC_URI[quote.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
-SRC_URI[redox_syscall.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-SRC_URI[scopeguard.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-SRC_URI[sha2.sha256sum] = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
-SRC_URI[smallvec.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-SRC_URI[subtle.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-SRC_URI[syn.sha256sum] = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
-SRC_URI[typenum.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-SRC_URI[unicode-ident.sha256sum] = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
-SRC_URI[unindent.sha256sum] = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112"
-SRC_URI[version_check.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-SRC_URI[wasi.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[winapi.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-SRC_URI[winapi-i686-pc-windows-gnu.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-x86_64-pc-windows-gnu.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[zeroize.sha256sum] = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.0.sha256sum] = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+SRC_URI[bcrypt-0.13.0.sha256sum] = "a7e7c93a3fb23b2fdde989b2c9ec4dd153063ec81f408507f84c090cd91c6641"
+SRC_URI[bcrypt-pbkdf-0.8.1.sha256sum] = "f4ef233ffa9cb9c7820b2b0e9efd0821ed180e866c9120ec9f45518659742074"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+SRC_URI[blowfish-0.9.1.sha256sum] = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[cipher-0.4.3.sha256sum] = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
+SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[digest-0.10.5.sha256sum] = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[getrandom-0.2.7.sha256sum] = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+SRC_URI[indoc-0.3.6.sha256sum] = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
+SRC_URI[indoc-impl-0.3.6.sha256sum] = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
+SRC_URI[inout-0.1.3.sha256sum] = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[libc-0.2.134.sha256sum] = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[once_cell-1.15.0.sha256sum] = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+SRC_URI[parking_lot_core-0.8.5.sha256sum] = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
+SRC_URI[paste-0.1.18.sha256sum] = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+SRC_URI[paste-impl-0.1.18.sha256sum] = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+SRC_URI[pbkdf2-0.10.1.sha256sum] = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7"
+SRC_URI[proc-macro-hack-0.5.19.sha256sum] = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+SRC_URI[proc-macro2-1.0.46.sha256sum] = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
+SRC_URI[pyo3-0.15.2.sha256sum] = "d41d50a7271e08c7c8a54cd24af5d62f73ee3a6f6a314215281ebdec421d5752"
+SRC_URI[pyo3-build-config-0.15.2.sha256sum] = "779239fc40b8e18bc8416d3a37d280ca9b9fb04bda54b98037bb6748595c2410"
+SRC_URI[pyo3-macros-0.15.2.sha256sum] = "00b247e8c664be87998d8628e86f282c25066165f1f8dda66100c48202fdb93a"
+SRC_URI[pyo3-macros-backend-0.15.2.sha256sum] = "5a8c2812c412e00e641d99eeb79dd478317d981d938aa60325dfa7157b607095"
+SRC_URI[quote-1.0.21.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[sha2-0.10.6.sha256sum] = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-1.0.102.sha256sum] = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
+SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+SRC_URI[unicode-ident-1.0.4.sha256sum] = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
+SRC_URI[unindent-0.1.10.sha256sum] = "58ee9362deb4a96cef4d437d1ad49cffc9b9e92d202b6995674e928ce684f112"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[zeroize-1.5.7.sha256sum] = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
diff --git a/poky/meta/recipes-devtools/python/python3-bcrypt_4.0.1.bb b/poky/meta/recipes-devtools/python/python3-bcrypt_4.0.1.bb
index 9f5b813..21f2eb6 100644
--- a/poky/meta/recipes-devtools/python/python3-bcrypt_4.0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-bcrypt_4.0.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Modern password hashing for your software and your servers."
+SUMMARY = "Modern password hashing for your software and your servers."
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c"
 HOMEPAGE = "https://pypi.org/project/bcrypt/"
diff --git a/poky/meta/recipes-devtools/python/python3-build_0.10.0.bb b/poky/meta/recipes-devtools/python/python3-build_0.10.0.bb
index 770a320..b446fa3 100644
--- a/poky/meta/recipes-devtools/python/python3-build_0.10.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-build_0.10.0.bb
@@ -18,6 +18,15 @@
     export PYTHONPATH="${S}/src"
 }
 
-RDEPENDS:${PN} += "python3-packaging python3-pyproject-hooks"
+RDEPENDS:${PN} += " \
+    python3-compression \
+    python3-difflib \
+    python3-ensurepip \
+    python3-logging \
+    python3-packaging \
+    python3-pyproject-hooks \
+    python3-tomllib \
+    python3-venv \
+"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
index 74f4789..410c9f4 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
@@ -70,69 +70,69 @@
     crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
 "
 
-SRC_URI[Inflector.sha256sum] = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
-SRC_URI[aliasable.sha256sum] = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
-SRC_URI[android_system_properties.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-SRC_URI[asn1.sha256sum] = "2affba5e62ee09eeba078f01a00c4aed45ac4287e091298eccbb0d4802efbdc5"
-SRC_URI[asn1_derive.sha256sum] = "bfab79c195875e5aef2bd20b4c8ed8d43ef9610bcffefbbcf66f88f555cc78af"
-SRC_URI[autocfg.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-SRC_URI[base64.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-SRC_URI[bitflags.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[bumpalo.sha256sum] = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
-SRC_URI[cc.sha256sum] = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
-SRC_URI[cfg-if.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono.sha256sum] = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
-SRC_URI[codespan-reporting.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-SRC_URI[core-foundation-sys.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-SRC_URI[cxx.sha256sum] = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd"
-SRC_URI[cxx-build.sha256sum] = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"
-SRC_URI[cxxbridge-flags.sha256sum] = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59"
-SRC_URI[cxxbridge-macro.sha256sum] = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6"
-SRC_URI[iana-time-zone.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-SRC_URI[iana-time-zone-haiku.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
-SRC_URI[indoc.sha256sum] = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
-SRC_URI[indoc-impl.sha256sum] = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
-SRC_URI[instant.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-SRC_URI[js-sys.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
-SRC_URI[libc.sha256sum] = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
-SRC_URI[link-cplusplus.sha256sum] = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
-SRC_URI[lock_api.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-SRC_URI[log.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-SRC_URI[num-integer.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-SRC_URI[num-traits.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-SRC_URI[once_cell.sha256sum] = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0"
-SRC_URI[ouroboros.sha256sum] = "dfbb50b356159620db6ac971c6d5c9ab788c9cc38a6f49619fca2a27acb062ca"
-SRC_URI[ouroboros_macro.sha256sum] = "4a0d9d1a6191c4f391f87219d1ea42b23f09ee84d64763cd05ee6ea88d9f384d"
-SRC_URI[parking_lot.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-SRC_URI[parking_lot_core.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-SRC_URI[paste.sha256sum] = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
-SRC_URI[paste-impl.sha256sum] = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
-SRC_URI[pem.sha256sum] = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4"
-SRC_URI[proc-macro-error.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-SRC_URI[proc-macro-error-attr.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-SRC_URI[proc-macro-hack.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-SRC_URI[proc-macro2.sha256sum] = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
-SRC_URI[pyo3.sha256sum] = "d41d50a7271e08c7c8a54cd24af5d62f73ee3a6f6a314215281ebdec421d5752"
-SRC_URI[pyo3-build-config.sha256sum] = "779239fc40b8e18bc8416d3a37d280ca9b9fb04bda54b98037bb6748595c2410"
-SRC_URI[pyo3-macros.sha256sum] = "00b247e8c664be87998d8628e86f282c25066165f1f8dda66100c48202fdb93a"
-SRC_URI[pyo3-macros-backend.sha256sum] = "5a8c2812c412e00e641d99eeb79dd478317d981d938aa60325dfa7157b607095"
-SRC_URI[quote.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
-SRC_URI[redox_syscall.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-SRC_URI[scopeguard.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-SRC_URI[scratch.sha256sum] = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
-SRC_URI[smallvec.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-SRC_URI[syn.sha256sum] = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
-SRC_URI[termcolor.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-SRC_URI[unicode-ident.sha256sum] = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
-SRC_URI[unicode-width.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-SRC_URI[unindent.sha256sum] = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
-SRC_URI[version_check.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-SRC_URI[wasm-bindgen.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-SRC_URI[wasm-bindgen-backend.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-SRC_URI[wasm-bindgen-macro.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-SRC_URI[wasm-bindgen-macro-support.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-SRC_URI[wasm-bindgen-shared.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-SRC_URI[winapi.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-SRC_URI[winapi-i686-pc-windows-gnu.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-SRC_URI[winapi-x86_64-pc-windows-gnu.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[Inflector-0.11.4.sha256sum] = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+SRC_URI[aliasable-0.1.3.sha256sum] = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[asn1-0.13.0.sha256sum] = "2affba5e62ee09eeba078f01a00c4aed45ac4287e091298eccbb0d4802efbdc5"
+SRC_URI[asn1_derive-0.13.0.sha256sum] = "bfab79c195875e5aef2bd20b4c8ed8d43ef9610bcffefbbcf66f88f555cc78af"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bumpalo-3.10.0.sha256sum] = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+SRC_URI[cc-1.0.78.sha256sum] = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[chrono-0.4.23.sha256sum] = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
+SRC_URI[codespan-reporting-0.11.1.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+SRC_URI[cxx-1.0.85.sha256sum] = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd"
+SRC_URI[cxx-build-1.0.85.sha256sum] = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"
+SRC_URI[cxxbridge-flags-1.0.85.sha256sum] = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59"
+SRC_URI[cxxbridge-macro-1.0.85.sha256sum] = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6"
+SRC_URI[iana-time-zone-0.1.53.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+SRC_URI[iana-time-zone-haiku-0.1.1.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+SRC_URI[indoc-0.3.6.sha256sum] = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
+SRC_URI[indoc-impl-0.3.6.sha256sum] = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+SRC_URI[libc-0.2.139.sha256sum] = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+SRC_URI[link-cplusplus-1.0.8.sha256sum] = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[once_cell-1.14.0.sha256sum] = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0"
+SRC_URI[ouroboros-0.15.5.sha256sum] = "dfbb50b356159620db6ac971c6d5c9ab788c9cc38a6f49619fca2a27acb062ca"
+SRC_URI[ouroboros_macro-0.15.5.sha256sum] = "4a0d9d1a6191c4f391f87219d1ea42b23f09ee84d64763cd05ee6ea88d9f384d"
+SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+SRC_URI[parking_lot_core-0.8.6.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+SRC_URI[paste-0.1.18.sha256sum] = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+SRC_URI[paste-impl-0.1.18.sha256sum] = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+SRC_URI[pem-1.1.0.sha256sum] = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4"
+SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+SRC_URI[proc-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+SRC_URI[proc-macro2-1.0.49.sha256sum] = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
+SRC_URI[pyo3-0.15.2.sha256sum] = "d41d50a7271e08c7c8a54cd24af5d62f73ee3a6f6a314215281ebdec421d5752"
+SRC_URI[pyo3-build-config-0.15.2.sha256sum] = "779239fc40b8e18bc8416d3a37d280ca9b9fb04bda54b98037bb6748595c2410"
+SRC_URI[pyo3-macros-0.15.2.sha256sum] = "00b247e8c664be87998d8628e86f282c25066165f1f8dda66100c48202fdb93a"
+SRC_URI[pyo3-macros-backend-0.15.2.sha256sum] = "5a8c2812c412e00e641d99eeb79dd478317d981d938aa60325dfa7157b607095"
+SRC_URI[quote-1.0.23.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[scratch-1.0.3.sha256sum] = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
+SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[syn-1.0.107.sha256sum] = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[unicode-ident-1.0.6.sha256sum] = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[unindent-0.1.11.sha256sum] = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasm-bindgen-0.2.83.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+SRC_URI[wasm-bindgen-backend-0.2.83.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+SRC_URI[wasm-bindgen-macro-0.2.83.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+SRC_URI[wasm-bindgen-macro-support-0.2.83.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+SRC_URI[wasm-bindgen-shared-0.2.83.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.33.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.34.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-cython_0.29.33.bb
rename to poky/meta/recipes-devtools/python/python3-cython_0.29.34.bb
diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2023.1.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2023.4.bb
similarity index 69%
rename from poky/meta/recipes-devtools/python/python3-dtschema_2023.1.bb
rename to poky/meta/recipes-devtools/python/python3-dtschema_2023.4.bb
index 9767c95..f87563f 100644
--- a/poky/meta/recipes-devtools/python/python3-dtschema_2023.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-dtschema_2023.4.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema"
+SUMMARY = "Tooling for devicetree validation using YAML and jsonschema"
 HOMEPAGE = "https://github.com/devicetree-org/dt-schema"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811"
@@ -7,7 +7,7 @@
 
 PYPI_PACKAGE = "dtschema"
 
-SRC_URI[sha256sum] = "8fc8c269e4c57e9d008af7b32cd33b77afd4ea1ac9552bcfa96b41b9e0c52586"
+SRC_URI[sha256sum] = "6daefb8f54403b4d82961b3346571200571747ab01950fd36c1f69950fa7a8cf"
 
 DEPENDS += "python3-setuptools-scm-native"
 RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987"
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.68.2.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.71.0.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.68.2.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.71.0.bb
index 4ffe278..8ec885f 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.68.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.71.0.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "a7eb2b0c9a18560d8197fe35047ceb58e7e8ab7623a3e5a82613f6a2cd71cffa"
+SRC_URI[sha256sum] = "b2c3bbead72189c0bba6e12848b484ceafadb6e872ac31e40013228239366221"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb b/poky/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb
index 34c5a43..4edac0a 100644
--- a/poky/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-imagesize_1.4.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Parses image files’ header and return image size."
+SUMMARY = "Parses image files’ header and return image size."
 HOMEPAGE = "https://github.com/shibukawa/imagesize_py"
 SECTION = "devel/python"
 LICENSE = "MIT"
diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.0.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.2.0.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-importlib-metadata_6.0.0.bb
rename to poky/meta/recipes-devtools/python/python3-importlib-metadata_6.2.0.bb
index b33a1b5..3e9b40e 100644
--- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.2.0.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Read metadata from Python packages"
+SUMMARY = "Read metadata from Python packages"
 HOMEPAGE = "https://pypi.org/project/importlib-metadata/"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
@@ -8,7 +8,7 @@
 PYPI_PACKAGE = "importlib_metadata"
 UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
 
-SRC_URI[sha256sum] = "e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d"
+SRC_URI[sha256sum] = "9127aad2f49d7203e7112098c12b92e4fd1061ccd18548cdfdc49171a8c073cc"
 
 S = "${WORKDIR}/importlib_metadata-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-installer_0.6.0.bb b/poky/meta/recipes-devtools/python/python3-installer_0.7.0.bb
similarity index 89%
rename from poky/meta/recipes-devtools/python/python3-installer_0.6.0.bb
rename to poky/meta/recipes-devtools/python/python3-installer_0.7.0.bb
index a2130a4..d7f1e79 100644
--- a/poky/meta/recipes-devtools/python/python3-installer_0.6.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-installer_0.7.0.bb
@@ -8,7 +8,7 @@
 
 SRC_URI += "file://interpreter.patch"
 
-SRC_URI[sha256sum] = "f3bd36cd261b440a88a1190b1becca0578fee90b4b62decc796932fdd5ae8839"
+SRC_URI[sha256sum] = "a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"
 
 inherit pypi python_flit_core
 
diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_3.1.2.bb b/poky/meta/recipes-devtools/python/python3-jinja2_3.1.2.bb
index cd248cc..fa6d930 100644
--- a/poky/meta/recipes-devtools/python/python3-jinja2_3.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-jinja2_3.1.2.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
+SUMMARY = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
 HOMEPAGE = "https://pypi.org/project/Jinja2/"
 
 LICENSE = "BSD-3-Clause"
diff --git a/poky/meta/recipes-devtools/python/python3-markdown_3.4.1.bb b/poky/meta/recipes-devtools/python/python3-markdown_3.4.3.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-markdown_3.4.1.bb
rename to poky/meta/recipes-devtools/python/python3-markdown_3.4.3.bb
index b398cd8..1624e15 100644
--- a/poky/meta/recipes-devtools/python/python3-markdown_3.4.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-markdown_3.4.3.bb
@@ -6,7 +6,7 @@
 inherit pypi python_setuptools_build_meta
 
 PYPI_PACKAGE = "Markdown"
-SRC_URI[sha256sum] = "3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff"
+SRC_URI[sha256sum] = "8bf101198e004dc93e84a12a7395e31aac6a9c9942848ae1d99b9d72cf9b3520"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb b/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb
index 3242052..d150403 100644
--- a/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python"
+SUMMARY = "Implements a XML/HTML/XHTML Markup safe string for Python"
 HOMEPAGE = "http://github.com/mitsuhiko/markupsafe"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
diff --git a/poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb b/poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb
index f5d107c..8c33b71 100644
--- a/poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "More routines for operating on iterables, beyond itertools"
+SUMMARY = "More routines for operating on iterables, beyond itertools"
 HOMEPAGE = "https://github.com/erikrose/more-itertools"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
diff --git a/poky/meta/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb b/poky/meta/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
index 6f3c096..6a3d6d3 100644
--- a/poky/meta/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-ndg-httpsclient_0.5.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
+SUMMARY = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
 HOMEPAGE = "https://github.com/cedadev/ndg_httpsclient/"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0"
diff --git a/poky/meta/recipes-devtools/python/python3-packaging_23.0.bb b/poky/meta/recipes-devtools/python/python3-packaging_23.1.bb
similarity index 68%
rename from poky/meta/recipes-devtools/python/python3-packaging_23.0.bb
rename to poky/meta/recipes-devtools/python/python3-packaging_23.1.bb
index 7b69c88..53d3522 100644
--- a/poky/meta/recipes-devtools/python/python3-packaging_23.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-packaging_23.1.bb
@@ -1,9 +1,9 @@
-DESCRIPTION = "Core utilities for Python packages"
+SUMMARY = "Core utilities for Python packages"
 HOMEPAGE = "https://github.com/pypa/packaging"
 LICENSE = "Apache-2.0 | BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91"
 
-SRC_URI[sha256sum] = "b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"
+SRC_URI[sha256sum] = "a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"
 
 inherit pypi python_flit_core
 
@@ -11,6 +11,7 @@
 
 # Bootstrap the native build
 DEPENDS:remove:class-native = "python3-build-native"
+RDEPENDS:${PN} += "python3-profile"
 
 do_compile:class-native () {
     python_flit_core_do_manual_build
diff --git a/poky/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb b/poky/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb
index 673b5c7..92285d1 100644
--- a/poky/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-pathlib2_2.3.7.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Object-oriented filesystem paths"
+SUMMARY = "Object-oriented filesystem paths"
 HOMEPAGE = "https://github.com/mcmtroffaes/pathlib2"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2dc08586cce3ab91bfa091b655c0e440"
diff --git a/poky/meta/recipes-devtools/python/python3-pathspec_0.11.0.bb b/poky/meta/recipes-devtools/python/python3-pathspec_0.11.1.bb
similarity index 78%
rename from poky/meta/recipes-devtools/python/python3-pathspec_0.11.0.bb
rename to poky/meta/recipes-devtools/python/python3-pathspec_0.11.1.bb
index bf0dfbd..f49bf08 100644
--- a/poky/meta/recipes-devtools/python/python3-pathspec_0.11.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pathspec_0.11.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
 
-SRC_URI[sha256sum] = "64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"
+SRC_URI[sha256sum] = "2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"
 
 inherit pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-psutil_5.9.4.bb b/poky/meta/recipes-devtools/python/python3-psutil_5.9.4.bb
index 54d5784..c0977c7 100644
--- a/poky/meta/recipes-devtools/python/python3-psutil_5.9.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-psutil_5.9.4.bb
@@ -24,4 +24,18 @@
     ${PYTHON_PN}-resource \
 "
 
+RDEPENDS:${PN}-tests += " \
+     ${PN} \
+     ${PYTHON_PN} \
+     coreutils \
+     procps \
+     binutils \
+     gcc \
+     gcc-symlinks \
+     libstdc++ \
+     libstdc++-dev \
+"
+
+INSANE_SKIP:${PN}-tests += "dev-deps"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb b/poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb
index 2199e9f..c55682e 100644
--- a/poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyelftools_0.29.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+SUMMARY = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
 HOMEPAGE = "https://github.com/eliben/pyelftools"
 SECTION = "devel/python"
 LICENSE = "PD"
diff --git a/poky/meta/recipes-devtools/python/python3-pygobject_3.42.2.bb b/poky/meta/recipes-devtools/python/python3-pygobject_3.44.1.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-pygobject_3.42.2.bb
rename to poky/meta/recipes-devtools/python/python3-pygobject_3.44.1.bb
index cc7b07e..8bfff43 100644
--- a/poky/meta/recipes-devtools/python/python3-pygobject_3.42.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygobject_3.44.1.bb
@@ -10,7 +10,7 @@
 
 inherit gnomebase setuptools3-base gobject-introspection upstream-version-is-even
 
-DEPENDS += "python3 glib-2.0"
+DEPENDS += "python3 glib-2.0 gobject-introspection"
 
 SRCNAME="pygobject"
 
@@ -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] = "ade8695e2a7073849dd0316d31d8728e15e1e0bc71d9ff6d1c09e86be52bc957"
+SRC_URI[sha256sum] = "3c6805d1321be90cc32e648215a562430e0d3d6edcda8f4c5e7a9daffcad5710"
 
 S = "${WORKDIR}/${SRCNAME}-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pyopenssl_23.0.0.bb b/poky/meta/recipes-devtools/python/python3-pyopenssl_23.1.1.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-pyopenssl_23.0.0.bb
rename to poky/meta/recipes-devtools/python/python3-pyopenssl_23.1.1.bb
index 822d21a..90a6252 100644
--- a/poky/meta/recipes-devtools/python/python3-pyopenssl_23.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyopenssl_23.1.1.bb
@@ -5,7 +5,7 @@
 
 DEPENDS += "openssl ${PYTHON_PN}-cryptography"
 
-SRC_URI[sha256sum] = "c1cc5f86bcacefc84dada7d31175cae1b1518d5f60d3d0bb595a67822a868a6f"
+SRC_URI[sha256sum] = "841498b9bec61623b1b6c47ebbc02367c07d60e0e195f19790817f10cc8db0b7"
 
 PYPI_PACKAGE = "pyOpenSSL"
 inherit pypi setuptools3
diff --git a/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb b/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
index 9aca591..e3893d5 100644
--- a/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
@@ -14,6 +14,8 @@
 # Bootstrap the native build
 DEPENDS:remove:class-native = "python3-build-native"
 
+RDEPENDS:${PN} += "python3-json"
+
 do_compile:class-native () {
     python_flit_core_do_manual_build
 }
diff --git a/poky/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb b/poky/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb
index 9144401..b77bf0f 100644
--- a/poky/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pysocks_1.7.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A Python SOCKS client module"
+SUMMARY = "A Python SOCKS client module"
 HOMEPAGE = "http://python-requests.org"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16"
diff --git a/poky/meta/recipes-devtools/python/python3-pytest_7.2.2.bb b/poky/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
similarity index 92%
rename from poky/meta/recipes-devtools/python/python3-pytest_7.2.2.bb
rename to poky/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
index 4e2c86f..9965844 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest_7.2.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c"
 
-SRC_URI[sha256sum] = "c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"
+SRC_URI[sha256sum] = "434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"
 
 DEPENDS += "python3-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pytz_2022.7.1.bb b/poky/meta/recipes-devtools/python/python3-pytz_2023.3.bb
similarity index 89%
rename from poky/meta/recipes-devtools/python/python3-pytz_2022.7.1.bb
rename to poky/meta/recipes-devtools/python/python3-pytz_2023.3.bb
index e399f21..09fa260 100644
--- a/poky/meta/recipes-devtools/python/python3-pytz_2022.7.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytz_2023.3.bb
@@ -5,7 +5,7 @@
 
 inherit pypi setuptools3 ptest
 
-SRC_URI[sha256sum] = "01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"
+SRC_URI[sha256sum] = "1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"
 
 RDEPENDS:${PN}:class-target += "\
     ${PYTHON_PN}-datetime \
diff --git a/poky/meta/recipes-devtools/python/python3-requests_2.28.2.bb b/poky/meta/recipes-devtools/python/python3-requests_2.28.2.bb
index 2f397dd..8ab1ec0 100644
--- a/poky/meta/recipes-devtools/python/python3-requests_2.28.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-requests_2.28.2.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Python HTTP for Humans."
+SUMMARY = "Python HTTP for Humans."
 HOMEPAGE = "http://python-requests.org"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index b12e4f5..4d56dc8 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From 8a67710131fc1b8246edc4dbcd8077eed96e13f7 Mon Sep 17 00:00:00 2001
+From 2b06ca797d3ccc5b195aaa04a085c44bf61d4de3 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_67.6.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_67.6.1.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-setuptools_67.6.0.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_67.6.1.bb
index aa1d525..ad0d7cc 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_67.6.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_67.6.1.bb
@@ -11,7 +11,7 @@
 SRC_URI += " \
             file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
 
-SRC_URI[sha256sum] = "2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077"
+SRC_URI[sha256sum] = "257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.0.bb b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.0.bb
index 0845646..e8a422b 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.0.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Sphinx Theme reader"
+SUMMARY = "Sphinx Theme reader"
 HOMEPAGE = "https://github.com/readthedocs/sphinx_rtd_theme"
 SECTION = "devel/python"
 LICENSE = "MIT & OFL-1.1"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx_6.1.3.bb b/poky/meta/recipes-devtools/python/python3-sphinx_6.1.3.bb
index f75988a..0de19af 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx_6.1.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx_6.1.3.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Python documentation generator"
+SUMMARY = "Python documentation generator"
 HOMEPAGE = "http://sphinx-doc.org/"
 SECTION = "devel/python"
 LICENSE = "BSD-2-Clause & MIT & BSD-3-Clause"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb
index 4d14216..e352601 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
+SUMMARY = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
 HOMEPAGE = "https://www.sphinx-doc.org"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c7715857042d4c8c0105999ca0c072c5"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb
index 7b7bda7..0d03436 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
+SUMMARY = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
 HOMEPAGE = "https://www.sphinx-doc.org"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fd30d9972a142c857a80c9f312e92b93"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb
index 3958988..bf034fb 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
+SUMMARY = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
 HOMEPAGE = "https://www.sphinx-doc.org"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=24dce5ef6a13563241c24bc366f48886"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb
index 863458a..7c11cfe 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-jsmath_1.0.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A sphinx extension which renders display math in HTML via JavaScript"
+SUMMARY = "A sphinx extension which renders display math in HTML via JavaScript"
 HOMEPAGE = "https://www.sphinx-doc.org"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f0064c10bd544bcffccbc67a41c108d3"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb
index 8ebfbba..41d2b61 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Is a sphinx extension which outputs QtHelp document."
+SUMMARY = "Is a sphinx extension which outputs QtHelp document."
 HOMEPAGE = "http://babel.edgewall.org/"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f7a83b72ea86d04827575ec0b63430eb"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb
index 71dde37..7fa6d8a 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = 'sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle).'
+SUMMARY = 'sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle).'
 HOMEPAGE = "https://www.sphinx-doc.org"
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=32a84ac5cd3bbd10c4d479233ad588b6"
diff --git a/poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb b/poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb
index 5b42dd8..45654ff 100644
--- a/poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Backport of pathlib-compatible object wrapper for zip files"
+SUMMARY = "Backport of pathlib-compatible object wrapper for zip files"
 HOMEPAGE = "https://github.com/jaraco/zipp"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch b/poky/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch
new file mode 100644
index 0000000..5e11341
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3/0001-Update-test_sysconfig-for-posix_user-purelib.patch
@@ -0,0 +1,39 @@
+From b9f825b298b555c4770024d1f68ef1df65aad20a Mon Sep 17 00:00:00 2001
+From: Wentao Zhang <wentao.zhang@windriver.com>
+Date: Mon, 20 Mar 2023 13:39:52 +0800
+Subject: [PATCH] Update test_sysconfig for posix_user purelib
+
+Steps to trigger the failed test:
+Edit local.conf to add something as follows:
+    BASELIB = "lib64"
+    IMAGE_INSTALL:append = " python3-tests".
+bitbake core-image-sato
+runqemu qemux86-64 nographic slirp
+Reproducer:
+    $python3 -m test test_sysconfig
+
+Update test_sysconfig.test_user_similar() for the posix_user scheme:
+"purelib" doesn't use sys.platlibdir.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Wentao Zhang <wentao.zhang@windriver.com>
+---
+ Lib/test/test_sysconfig.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
+index d96371d..20aea4b 100644
+--- a/Lib/test/test_sysconfig.py
++++ b/Lib/test/test_sysconfig.py
+@@ -373,7 +373,7 @@ class TestSysConfig(unittest.TestCase):
+                 expected = os.path.normpath(global_path.replace(base, user, 1))
+                 # bpo-44860: platlib of posix_user doesn't use sys.platlibdir,
+                 # whereas posix_prefix does.
+-                if name == 'platlib':
++                if name == 'platlib' or name == 'purelib':
+                     # Replace "/lib64/python3.11/site-packages" suffix
+                     # with "/lib/python3.11/site-packages".
+                     py_version_short = sysconfig.get_python_version()
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/poky/meta/recipes-devtools/python/python3/python3-manifest.json
index 498402a..f278b18 100644
--- a/poky/meta/recipes-devtools/python/python3/python3-manifest.json
+++ b/poky/meta/recipes-devtools/python/python3/python3-manifest.json
@@ -610,6 +610,28 @@
             "${libdir}/python${PYTHON_MAJMIN}/__pycache__/imaplib.*.pyc"
         ]
     },
+    "ensurepip": {
+        "summary": "Support for bootstrapping the pip installer",
+        "rdepends": [
+            "asyncio",
+            "compile",
+            "core",
+            "ctypes",
+            "image",
+            "io",
+            "mmap",
+            "plistlib",
+            "pprint",
+            "unixadmin",
+            "xmlrpc"
+        ],
+        "files": [
+            "${libdir}/python${PYTHON_MAJMIN}/ensurepip/"
+        ],
+        "cached": [
+            "${libdir}/python${PYTHON_MAJMIN}/ensurepip/_uninstall.*.pyc"
+        ]
+    },
     "fcntl": {
         "summary": "Python's fcntl interface",
         "rdepends": [
@@ -800,6 +822,7 @@
             "distutils",
             "doctest",
             "email",
+            "ensurepip",
             "fcntl",
             "html",
             "idle",
@@ -829,6 +852,7 @@
             "stringold",
             "syslog",
             "terminal",
+            "tomllib",
             "threading",
             "tkinter",
             "unittest",
@@ -1179,6 +1203,22 @@
         ],
         "cached": []
     },
+    "tomllib": {
+        "summary": "Provides an interface for parsing TOML",
+        "rdepends": [
+            "core",
+            "datetime",
+            "stringold"
+        ],
+        "files": [
+            "${libdir}/python${PYTHON_MAJMIN}/tomllib/"
+        ],
+        "cached": [
+            "${libdir}/python${PYTHON_MAJMIN}/tomllib/_re.*.pyc",
+            "${libdir}/python${PYTHON_MAJMIN}/tomllib/_types.*.pyc",
+            "${libdir}/python${PYTHON_MAJMIN}/tomllib/_parser.*.pyc"
+        ]
+    },
     "unittest": {
         "summary": "Python unit testing framework",
         "rdepends": [
diff --git a/poky/meta/recipes-devtools/python/python3_3.11.2.bb b/poky/meta/recipes-devtools/python/python3_3.11.2.bb
index 5060722..5bd8d32 100644
--- a/poky/meta/recipes-devtools/python/python3_3.11.2.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.11.2.bb
@@ -31,6 +31,7 @@
            file://0001-setup.py-Do-not-detect-multiarch-paths-when-cross-co.patch \
            file://deterministic_imports.patch \
            file://0001-Avoid-shebang-overflow-on-python-config.py.patch \
+           file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \
            "
 
 SRC_URI:append:class-native = " \
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index b41055f..e2453dd 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -32,6 +32,7 @@
            file://0001-configure-Fix-check-tcg-not-executing-any-tests.patch \
            file://0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch \
            file://0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch \
+           file://0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch \
            file://qemu-guest-agent.init \
            file://qemu-guest-agent.udev \
            "
@@ -207,7 +208,7 @@
 PACKAGECONFIG[attr] = "--enable-attr,--disable-attr,attr,"
 PACKAGECONFIG[rbd] = "--enable-rbd,--disable-rbd,ceph,ceph"
 PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,,"
-PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust,"
+PACKAGECONFIG[ust] = "--enable-trace-backends=ust,,lttng-ust,"
 PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,,"
 PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
 # libnfs is currently provided by meta-kodi
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch
new file mode 100644
index 0000000..5ef1184
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch
@@ -0,0 +1,87 @@
+From 348ea441db84a211d4fca7ef5544b5cd06a8a872 Mon Sep 17 00:00:00 2001
+From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
+Date: Tue, 4 Apr 2023 15:26:07 +0200
+Subject: [PATCH] tracetool: use relative paths for '#line' preprocessor
+ directives
+
+The event filename is an absolute path. Convert it to a relative path when
+writing '#line' directives, to preserve reproducibility of the generated
+output when different base paths are used.
+
+Upstream-Status: Pending
+
+---
+ scripts/tracetool/backend/ftrace.py | 4 +++-
+ scripts/tracetool/backend/log.py    | 4 +++-
+ scripts/tracetool/backend/syslog.py | 4 +++-
+ 3 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backend/ftrace.py
+index 5fa30ccc08..baed2ae61c 100644
+--- a/scripts/tracetool/backend/ftrace.py
++++ b/scripts/tracetool/backend/ftrace.py
+@@ -12,6 +12,8 @@
+ __email__      = "stefanha@redhat.com"
+ 
+ 
++import os.path
++
+ from tracetool import out
+ 
+ 
+@@ -45,7 +47,7 @@ def generate_h(event, group):
+         args=event.args,
+         event_id="TRACE_" + event.name.upper(),
+         event_lineno=event.lineno,
+-        event_filename=event.filename,
++        event_filename=os.path.relpath(event.filename),
+         fmt=event.fmt.rstrip("\n"),
+         argnames=argnames)
+ 
+diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
+index 17ba1cd90e..de27b7e62e 100644
+--- a/scripts/tracetool/backend/log.py
++++ b/scripts/tracetool/backend/log.py
+@@ -12,6 +12,8 @@
+ __email__      = "stefanha@redhat.com"
+ 
+ 
++import os.path
++
+ from tracetool import out
+ 
+ 
+@@ -53,7 +55,7 @@ def generate_h(event, group):
+         '    }',
+         cond=cond,
+         event_lineno=event.lineno,
+-        event_filename=event.filename,
++        event_filename=os.path.relpath(event.filename),
+         name=event.name,
+         fmt=event.fmt.rstrip("\n"),
+         argnames=argnames)
+diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backend/syslog.py
+index 5a3a00fe31..012970f6cc 100644
+--- a/scripts/tracetool/backend/syslog.py
++++ b/scripts/tracetool/backend/syslog.py
+@@ -12,6 +12,8 @@
+ __email__      = "stefanha@redhat.com"
+ 
+ 
++import os.path
++
+ from tracetool import out
+ 
+ 
+@@ -41,7 +43,7 @@ def generate_h(event, group):
+         '    }',
+         cond=cond,
+         event_lineno=event.lineno,
+-        event_filename=event.filename,
++        event_filename=os.path.relpath(event.filename),
+         name=event.name,
+         fmt=event.fmt.rstrip("\n"),
+         argnames=argnames)
+-- 
+2.39.2
+
diff --git a/poky/meta/recipes-devtools/ruby/ruby_3.2.1.bb b/poky/meta/recipes-devtools/ruby/ruby_3.2.2.bb
similarity index 98%
rename from poky/meta/recipes-devtools/ruby/ruby_3.2.1.bb
rename to poky/meta/recipes-devtools/ruby/ruby_3.2.2.bb
index 3f1bbc2..481fe7c 100644
--- a/poky/meta/recipes-devtools/ruby/ruby_3.2.1.bb
+++ b/poky/meta/recipes-devtools/ruby/ruby_3.2.2.bb
@@ -51,7 +51,7 @@
 
 DEPENDS:append:libc-musl = " libucontext"
 
-SRC_URI[sha256sum] = "13d67901660ee3217dbd9dd56059346bd4212ce64a69c306ef52df64935f8dbd"
+SRC_URI[sha256sum] = "96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc"
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
diff --git a/poky/meta/recipes-devtools/rust/cargo_1.67.1.bb b/poky/meta/recipes-devtools/rust/cargo_1.68.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/rust/cargo_1.67.1.bb
rename to poky/meta/recipes-devtools/rust/cargo_1.68.2.bb
index 2b2394e..a5c1064 100644
--- a/poky/meta/recipes-devtools/rust/cargo_1.67.1.bb
+++ b/poky/meta/recipes-devtools/rust/cargo_1.68.2.bb
@@ -1,4 +1,4 @@
-SUMMARY ?= "Cargo, a package manager for Rust."
+SUMMARY = "Cargo, a package manager for Rust."
 HOMEPAGE = "https://crates.io"
 LICENSE = "MIT | Apache-2.0"
 SECTION = "devel"
diff --git a/poky/meta/recipes-devtools/rust/files/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch b/poky/meta/recipes-devtools/rust/files/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
new file mode 100644
index 0000000..54478a8
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/files/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
@@ -0,0 +1,98 @@
+From 359bfce3da3f47517001bed4a3ab7338faa564f7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:25:31 -0700
+Subject: [PATCH] musl: Define SOCK_SEQPACKET in common place
+
+This define is not architecture specific in musl [1]
+
+[1] https://git.musl-libc.org/cgit/musl/tree/include/sys/socket.h#n90
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs  | 1 -
+ vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs  | 2 +-
+ vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs | 1 -
+ vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs  | 1 -
+ vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs  | 1 -
+ vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs      | 2 --
+ vendor/libc/src/unix/linux_like/linux/musl/mod.rs          | 1 +
+ 7 files changed, 2 insertions(+), 7 deletions(-)
+
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -326,7 +326,6 @@ pub const MAP_SYNC: ::c_int = 0x080000;
+ 
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -296,7 +296,6 @@ pub const SIG_BLOCK: ::c_int = 0x000000;
+ pub const SIG_UNBLOCK: ::c_int = 0x01;
+ pub const SOCK_DGRAM: ::c_int = 2;
+ pub const SOCK_NONBLOCK: ::c_int = 2048;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOL_CAIF: ::c_int = 278;
+ pub const SOL_IUCV: ::c_int = 277;
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -350,7 +350,6 @@ pub const ERFKILL: ::c_int = 167;
+ 
+ pub const SOCK_STREAM: ::c_int = 2;
+ pub const SOCK_DGRAM: ::c_int = 1;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const SA_ONSTACK: ::c_int = 0x08000000;
+ pub const SA_SIGINFO: ::c_int = 8;
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -257,7 +257,6 @@ pub const MAP_STACK: ::c_int = 0x020000;
+ 
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -315,7 +315,6 @@ pub const MAP_SYNC: ::c_int = 0x080000;
+ 
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ 
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -135,8 +135,6 @@ pub const __SIZEOF_PTHREAD_MUTEX_T: usiz
+ 
+ pub const SOCK_NONBLOCK: ::c_int = 2048;
+ 
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+-
+ extern "C" {
+     pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
+ }
+--- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
+@@ -526,6 +526,7 @@ pub const POSIX_MADV_DONTNEED: ::c_int =
+ 
+ pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
+ 
++pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_DCCP: ::c_int = 6;
+ pub const SOCK_PACKET: ::c_int = 10;
+ 
+--- a/vendor/libc/.cargo-checksum.json
++++ b/vendor/libc/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"89e8938bf82dadf7854b0831c879ef1c66708a3917b0c48079aadbc2855b18b8","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"776affa26b66843a2b4f1a1c8f88d92f6461b74568911450fea717e9db6f877b","build.rs":"cecfa3f926ab4a9c87cd59cc0d687f98eceb6035b0dde185152e5206d090f8d0","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"e54e72e15cf4ab2df88da9ac3b69fa12e918b0bcfeadc81843b2a838b43d9547","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"ce753ef318b300bbd441feabdd77d00322dfb6ce9eee8c78a38afe02b57aa4c0","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/mod.rs":"1cc76b056d5925aedae04ead411057dc5c6c9bd3948609fdb30164ac1fb6565e","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"8986a8c79bcadfbdb58ec1a72e1aff8ce9b341c9392d7b0b7449bddf6db59058","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"badda6f0f7666f38345b1f4ca78817a47bc92bbdcdc3a1377f376f4e08c316e5","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"327700c5668be863f1fea205c82b0402e2936b883df63dda677716c30a50a284","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"7f689e9a944c919834ec852b30c224f98e14b4b4087571adefeea5abad5d6374","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"9b6fa1c3f5217f9482e0bed3bd0ea2905cdf56d628307cea48e49d8e00a6b09d","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"26bda8cf730ab4868523a6ed7c513f51885cad30cdd02da905ff35b597576415","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"c5005e3249eb7c93cfbac72a9e9272320d80ce7983da990ceb05a447f59a02c5","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"bd80ce2ff628ed5eaa856ebe8b6a8fb0e89d1c9728040b9ee6b967beb4bcf3a7","src/unix/bsd/mod.rs":"6f7e4f0affa04e5c26375875389a9891f69930bb56842cf20526aad3a0f64299","src/unix/bsd/netbsdlike/mod.rs":"34f60d73631f3c59936c87db1f62ddb8f693901c3cb199f7f370882e84d509fa","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"107a4aa396b8383c66e0ace2f941450b4b69146558cdc4d9fbe33eeab51760f1","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"38b7d65a86701a75a9047a3ef3b006f09ffbb33ab2312174bcee889efb74e100","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"14171bbff41ad7f112198064b80f7b86a78c2c36c689d5cc04a748f2186c6bf3","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"859814f5df89e28fd4b345db399d181e11e7ed413841b6ff703a1fcbdbf013ae","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"433c1530f602cc5ed26610c58055dde0c4ceea5e00150063b24ddc60768332a4","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"8388bd3a0fcb5636bf965eee6dc95ae6860b85a2b555b387c868aa4d4e01ec89","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"ef230d49fd0d182adf2dae6f8e10babf18d72259d65980bf1c4c2dc8a4f84501","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"80e9f93fed838a48b4e2e8d77b95c72cfd7c0647bcce63851555c5ad16dad143","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"e10d19bea39f719723ab6666a5ddbd378b6958769441c5904629e1df173b1dc2","src/unix/linux_like/android/mod.rs":"fbfcd29a13b58a89841ea23737b45d1a3d69e8ec72bd168755297c4d0eb701f3","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"6ef4652dfb94e3c58aed5133ece982ad30569d46b6b1054552cd61905fa61690","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"d6c259942c8e843373accd180fc8f4f45f03544dfd21b93a8d02641ead3ef63e","src/unix/linux_like/linux/arch/generic/mod.rs":"46dd6634e564fb1b60c8a2d1018ef8f365d1a8ed26f162c99528922d06d14134","src/unix/linux_like/linux/arch/mips/mod.rs":"2d166054a586bb4bf6e4a4ba35f7574907b217225eff8f1a43adc4277e142460","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"3f6da7b0fa7b394c7d4eea2bb3caa7a7729ab0d6c1491fef02206a912c41b815","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"5bd3f6b3484e049ddaac95f411b0d82cbf1cd28e6a5defbc927bd917f5f7d299","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"a2a0a9400dae44086ebf579e0448e0676d4a3214d1ae7d13a024857251e23b6b","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"8da281da578cdee972e952b118b903b370320897a7e335342a15e1359864bef2","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"5e7c1e29aeb82fc422f45b73fb0cf3d13d0902300f9150d2755a9074f8d96999","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"666beae35371cb54a4ad091764e0e3ca4983d5205179c119a8ff97d3ae301869","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"6616c38bf8cab53034dce9f968adae8fb7771334445a93876d000cfd08f117a8","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"17e9478b6a5830f6b8f6bea4ccab712cfd1972cdfb43b97408a068e4ea924106","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"80b4b97a41564290c510e68a1fb20cfd8424206f010e71a596f12877de886a71","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"a595e37c2325ceb40ef66c634bd3c255ad184a1d70ff8025e98a075f0ec67704","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"ef4b13477ffd8532fb6705ca3fa63a1f13e8d19ee39b083c5355dfce430c1a5b","src/unix/linux_like/linux/gnu/b64/s390x.rs":"788fde4fa1919859cc028b59da31de00449edd2b2c1530ae76134beac418b73c","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"c4fa0ede3f78b21a9982667922cccd0681bee3cb6d42208ea9958f65e93d6308","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"e37e0421290b152fe508883181c41225e09dd5452a6b085e8d807b3b54823028","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"c1b6345ce14f67d1b2e2f7f2c0ff9a074c07acbd348df69cb4558bda8c8fb9ae","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"3f4d2aeadb7d2620cad09564abdbfc5cf02eeb5a27f2bab8a4e9b4bdbdb258a5","src/unix/linux_like/linux/gnu/mod.rs":"e31aa4bd147c83d05dcd13baca4b9f676320a7713ff50de08b51d0c88f8241a3","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"ddd008ff6304dca5d6fe9b452eb7a69745098bce47834d0999abdedd5978c2b3","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"f5b217a93f99c2852f7fd1459f529798372fa7df84ee0cfd3d8cdd5b2021b8cf","src/unix/linux_like/linux/musl/b32/hexagon.rs":"226a8b64ce9c75abbbee6d2dceb0b44f7b6c750c4102ebd4d015194afee6666e","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"16a7a03d998a5db11be9ee81525c7faec4623383260e8bc125b1c53a050fde75","src/unix/linux_like/linux/musl/b32/mod.rs":"580e27c5ce3344df686f1ffc08fdfa2c282d1ceb623d778c50d210d4bd65ec7e","src/unix/linux_like/linux/musl/b32/powerpc.rs":"dc52adc264c34bce80753d6bd064e8fc4b8237fa1e5c5315ccb6c72df74c2813","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"e57dc5562553aab6d0765e0ec266254aa52975f8757bfe97e0c6028fa7d5d37c","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"7a1586f77bb693f0b319ec720c35963da056287fc42f8e2ccf1d5b2bcccf4fd6","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"8c10627bd582cb272514e7350ae4743a65d489356eae039d2e7e55cd533fbbc8","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"455dc0ffa55afc1db6ffaf461f6f2a7b49d31658bfebe0bb4efac5967a6f956c","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"42d4b6d36807f37759094a732a321080cccdf498b174d632cebba147051de294","src/unix/linux_like/linux/musl/b64/s390x.rs":"d8a4fdfea0960ec284cae4facb8b0fb342e8aa41544cffacdcaf08c5a92a43f8","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"7a877cd23b64be66d28e6b8dddae32d59a88d69115637539daf19381f4e39330","src/unix/linux_like/linux/musl/mod.rs":"8d8b50a0bf7ec53bd4d2ea92e8bfae14529f0beb3f22a65b55623f7086fee8ac","src/unix/linux_like/linux/no_align.rs":"da2a8721becaaaa528781f97f5d9aae6a982ae5d4f5f6d2ffc0150bed72319b3","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"bf2dcf0a468f386899f572324f3bc14be1974f570afdfff1075ca6c5dd57710d","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d2fc251754458b697ef6e599f0a670ebca18f61e4026bf681be4e2baa896b9df","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"256a428290a560163ef7dc7d18b27bd3c6ce9748a0f28d5dc7f82203ee228220","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"367ec5483ad317e6ccba1ac0888da6cf088a8d32689214cc8d16129aa692260c","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"420dbea99e99091f333641e202960fa4bed0733de2a834e610708555be6bab4c","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"03ae2e1f8113ed650e1c9691e715254dd6b6d13cc829b639d5857336ecd11b24","src/unix/mod.rs":"4647dc713fb4208df76fe6009b9716eef1d9e09a77f6b2f1b793d63537b4c670","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"494e56628d4408bf66ad30ff71fbd21bc33d9037935c411dff7bf73dd3f1070b","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"c8afea39f81e73ad4e9bf8a8f25138a200e616048e189debad80a6b7e08f710f","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"eace25beaa4874bfc2451f8136efc261f9dfb7a30caab3c97c708068d5431bbf","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"aea3da66f2140f2a82dfc9c58f6e6531d2dd9c15ea696e0f95a0d4a2a187b5b6","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"3f6219f036ac1d917ab5fa7323e3770857f566bc4189a9d4c4ea8ca6517b8953","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"7fe35c1f5e6272acfba059a1ad7a78b144f5bc63456f6377d58bbc42cc23f509","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"}
+\ No newline at end of file
++{"files":{"CONTRIBUTING.md":"bdc90b52cf803faac96e594069a86dd8ea150d5ba7fb3e6cadfc08dac4c7b0ce","Cargo.toml":"89e8938bf82dadf7854b0831c879ef1c66708a3917b0c48079aadbc2855b18b8","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"776affa26b66843a2b4f1a1c8f88d92f6461b74568911450fea717e9db6f877b","build.rs":"cecfa3f926ab4a9c87cd59cc0d687f98eceb6035b0dde185152e5206d090f8d0","rustfmt.toml":"eaa2ea84fc1ba0359b77680804903e07bb38d257ab11986b95b158e460f787b2","src/fixed_width_ints.rs":"7f986e5f5e68d25ef04d386fd2f640e8be8f15427a8d4a458ea01d26b8dca0ca","src/fuchsia/aarch64.rs":"378776a9e40766154a54c94c2a7b4675b5c302a38e6e42da99e67bfbaee60e56","src/fuchsia/align.rs":"ae1cf8f011a99737eabeb14ffff768e60f13b13363d7646744dbb0f443dab3d6","src/fuchsia/mod.rs":"e54e72e15cf4ab2df88da9ac3b69fa12e918b0bcfeadc81843b2a838b43d9547","src/fuchsia/no_align.rs":"303f3f1b255e0088b5715094353cf00476131d8e94e6aebb3f469557771c8b8a","src/fuchsia/x86_64.rs":"93a3632b5cf67d2a6bcb7dc0a558605252d5fe689e0f38d8aa2ec5852255ac87","src/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/hermit/mod.rs":"d3bfce41e4463d4be8020a2d063c9bfa8b665f45f1cc6cbf3163f5d01e7cb21f","src/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/lib.rs":"ce753ef318b300bbd441feabdd77d00322dfb6ce9eee8c78a38afe02b57aa4c0","src/macros.rs":"b457eb028b8e8ab3c24bb7292b874ad4e491edbb83594f6a3da024df5348c088","src/psp.rs":"dd31aabd46171d474ec5828372e28588935120e7355c90c105360d8fa9264c1c","src/sgx.rs":"16a95cdefc81c5ee00d8353a60db363c4cc3e0f75abcd5d0144723f2a306ed1b","src/solid/aarch64.rs":"a726e47f324adf73a4a0b67a2c183408d0cad105ae66acf36db37a42ab7f8707","src/solid/arm.rs":"e39a4f74ebbef3b97b8c95758ad741123d84ed3eb48d9cf4f1f4872097fc27fe","src/solid/mod.rs":"5f4151dca5132e4b4e4c23ab9737e12856dddbdc0ca3f7dbc004328ef3c8acde","src/switch.rs":"9da3dd39b3de45a7928789926e8572d00e1e11a39e6f7289a1349aadce90edba","src/unix/align.rs":"2cdc7c826ef7ae61f5171c5ae8c445a743d86f1a7f2d9d7e4ceeec56d6874f65","src/unix/bsd/apple/b32/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b32/mod.rs":"2546ad3eb6aecb95f916648bc63264117c92b4b4859532b34cb011e4c75a5a72","src/unix/bsd/apple/b64/aarch64/align.rs":"e8eb38d064b5fefec6f37d42873820a0483e7c758ed336cc59a7155455ca89c9","src/unix/bsd/apple/b64/aarch64/mod.rs":"44c217a4f263afe7a97435de9323d20a96c37836f899ca0925306d4b7e073c27","src/unix/bsd/apple/b64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/mod.rs":"f5e278a1af7fb358891d1c9be4eb7e815aaca0c5cb738d0c3604ba2208a856f7","src/unix/bsd/apple/b64/x86_64/align.rs":"ec833a747866fe19ca2d9b4d3c9ff0385faba5edf4bd0d15fa68884c40b0e26c","src/unix/bsd/apple/b64/x86_64/mod.rs":"8c87c5855038aae5d433c8f5eb3b29b0a175879a0245342b3bfd83bdf4cfd936","src/unix/bsd/apple/mod.rs":"1cc76b056d5925aedae04ead411057dc5c6c9bd3948609fdb30164ac1fb6565e","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"8295b8bb0dfd38d2cdb4d9192cdeeb534cc6c3b208170e64615fa3e0edb3e578","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"8986a8c79bcadfbdb58ec1a72e1aff8ce9b341c9392d7b0b7449bddf6db59058","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"6c8e216385f53a4bf5f171749b57602fc34a4e4b160a44ca31c058cb0c8a2126","src/unix/bsd/freebsdlike/freebsd/arm.rs":"59d6a670eea562fb87686e243e0a84603d29a2028a3d4b3f99ccc01bd04d2f47","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"9808d152c1196aa647f1b0f0cf84dac8c930da7d7f897a44975545e3d9d17681","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"badda6f0f7666f38345b1f4ca78817a47bc92bbdcdc3a1377f376f4e08c316e5","src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"327700c5668be863f1fea205c82b0402e2936b883df63dda677716c30a50a284","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"7f689e9a944c919834ec852b30c224f98e14b4b4087571adefeea5abad5d6374","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs":"61cbe45f8499bedb168106b686d4f8239472f25c7553b069eec2afe197ff2df6","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"9b6fa1c3f5217f9482e0bed3bd0ea2905cdf56d628307cea48e49d8e00a6b09d","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"2df36a7f122f6d6e5753cfb4d22e915cc80f6bc91c0161b3daae55a481bfd052","src/unix/bsd/freebsdlike/freebsd/mod.rs":"26bda8cf730ab4868523a6ed7c513f51885cad30cdd02da905ff35b597576415","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"9ca3f82f88974e6db5569f2d76a5a3749b248a31747a6c0da5820492bdfeca42","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"2dae3ecc87eac3b11657aa98915def55fc4b5c0de11fe26aae23329a54628a9a","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"fa4bed4c58cad24ba3395941c7fa6b11e089551a04714f9561078e400f5b2b62","src/unix/bsd/freebsdlike/freebsd/x86.rs":"c5005e3249eb7c93cfbac72a9e9272320d80ce7983da990ceb05a447f59a02c5","src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs":"0e1f69a88fca1c32874b1daf5db3d446fefbe518dca497f096cc9168c39dde70","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"51e4dd0c8ae247bb652feda5adad9333ea3bb30c750c3a3935e0b0e47d7803eb","src/unix/bsd/freebsdlike/mod.rs":"bd80ce2ff628ed5eaa856ebe8b6a8fb0e89d1c9728040b9ee6b967beb4bcf3a7","src/unix/bsd/mod.rs":"6f7e4f0affa04e5c26375875389a9891f69930bb56842cf20526aad3a0f64299","src/unix/bsd/netbsdlike/mod.rs":"34f60d73631f3c59936c87db1f62ddb8f693901c3cb199f7f370882e84d509fa","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"65dcb58d11e8d8028401a9d07ca3eb4cb4f053e04249cc877353449d84ccc4cb","src/unix/bsd/netbsdlike/netbsd/arm.rs":"58cdbb70b0d6f536551f0f3bb3725d2d75c4690db12c26c034e7d6ec4a924452","src/unix/bsd/netbsdlike/netbsd/mod.rs":"107a4aa396b8383c66e0ace2f941450b4b69146558cdc4d9fbe33eeab51760f1","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"ee7ff5d89d0ed22f531237b5059aa669df93a3b5c489fa641465ace8d405bf41","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"9489f4b3e4566f43bb12dfb92238960613dac7f6a45cc13068a8d152b902d7d9","src/unix/bsd/netbsdlike/netbsd/x86.rs":"20692320e36bfe028d1a34d16fe12ca77aa909cb02bda167376f98f1a09aefe7","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"1afe5ef46b14397cdd68664b5b232e4f5b035b6db1d4cf411c899d51ebca9f30","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"dd91931d373b7ecaf6e2de25adadee10d16fa9b12c2cbacdff3eb291e1ba36af","src/unix/bsd/netbsdlike/openbsd/arm.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"8532a189ae10c7d668d9d4065da8b05d124e09bd39442c9f74a7f231c43eca48","src/unix/bsd/netbsdlike/openbsd/mod.rs":"38b7d65a86701a75a9047a3ef3b006f09ffbb33ab2312174bcee889efb74e100","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"01580d261bc6447bb327a0d982181b7bdabfa066cee65a30373d3ced729ad307","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"1dd5449dd1fd3d51e30ffdeeaece91d0aaf05c710e0ac699fecc5461cfa2c28e","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"d04fd287afbaa2c5df9d48c94e8374a532a3ba491b424ddf018270c7312f4085","src/unix/bsd/netbsdlike/openbsd/x86.rs":"6f7f5c4fde2a2259eb547890cbd86570cea04ef85347d7569e94e679448bec87","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"d31db31630289c85af3339dbe357998a21ca584cbae31607448fe2cf7675a4e1","src/unix/haiku/b32.rs":"a2efdbf7158a6da341e1db9176b0ab193ba88b449616239ed95dced11f54d87b","src/unix/haiku/b64.rs":"ff8115367d3d7d354f792d6176dfaaa26353f57056197b563bf4681f91ff7985","src/unix/haiku/mod.rs":"14171bbff41ad7f112198064b80f7b86a78c2c36c689d5cc04a748f2186c6bf3","src/unix/haiku/native.rs":"dbfcbf4954a79d1df2ff58e0590bbcb8c57dfc7a32392aa73ee4726b66bd6cc8","src/unix/haiku/x86_64.rs":"3ec3aeeb7ed208b8916f3e32d42bfd085ff5e16936a1a35d9a52789f043b7237","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"859814f5df89e28fd4b345db399d181e11e7ed413841b6ff703a1fcbdbf013ae","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/linux_like/android/b32/arm.rs":"433c1530f602cc5ed26610c58055dde0c4ceea5e00150063b24ddc60768332a4","src/unix/linux_like/android/b32/mod.rs":"7c173e0375119bf06a3081652faede95e5bcd6858e7576b7533d037978737c8f","src/unix/linux_like/android/b32/x86/align.rs":"812914e4241df82e32b12375ca3374615dc3a4bdd4cf31f0423c5815320c0dab","src/unix/linux_like/android/b32/x86/mod.rs":"8388bd3a0fcb5636bf965eee6dc95ae6860b85a2b555b387c868aa4d4e01ec89","src/unix/linux_like/android/b64/aarch64/align.rs":"2179c3b1608fa4bf68840482bfc2b2fa3ee2faf6fcae3770f9e505cddca35c7b","src/unix/linux_like/android/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/android/b64/aarch64/mod.rs":"ef230d49fd0d182adf2dae6f8e10babf18d72259d65980bf1c4c2dc8a4f84501","src/unix/linux_like/android/b64/mod.rs":"71e4fcbe952bfa4a5f9022f3972e906917b38f729b9d8ef57cd5d179104894ac","src/unix/linux_like/android/b64/riscv64/align.rs":"0bf138f84e5327d8339bcd4adf071a6832b516445e597552c82bbd881095e3a8","src/unix/linux_like/android/b64/riscv64/mod.rs":"80e9f93fed838a48b4e2e8d77b95c72cfd7c0647bcce63851555c5ad16dad143","src/unix/linux_like/android/b64/x86_64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/android/b64/x86_64/mod.rs":"e10d19bea39f719723ab6666a5ddbd378b6958769441c5904629e1df173b1dc2","src/unix/linux_like/android/mod.rs":"fbfcd29a13b58a89841ea23737b45d1a3d69e8ec72bd168755297c4d0eb701f3","src/unix/linux_like/emscripten/align.rs":"86c95cbed7a7161b1f23ee06843e7b0e2340ad92b2cb86fe2a8ef3e0e8c36216","src/unix/linux_like/emscripten/mod.rs":"6ef4652dfb94e3c58aed5133ece982ad30569d46b6b1054552cd61905fa61690","src/unix/linux_like/emscripten/no_align.rs":"0128e4aa721a9902754828b61b5ec7d8a86619983ed1e0544a85d35b1051fad6","src/unix/linux_like/linux/align.rs":"d6c259942c8e843373accd180fc8f4f45f03544dfd21b93a8d02641ead3ef63e","src/unix/linux_like/linux/arch/generic/mod.rs":"46dd6634e564fb1b60c8a2d1018ef8f365d1a8ed26f162c99528922d06d14134","src/unix/linux_like/linux/arch/mips/mod.rs":"2d166054a586bb4bf6e4a4ba35f7574907b217225eff8f1a43adc4277e142460","src/unix/linux_like/linux/arch/mod.rs":"466a29622e47c6c7f1500682b2eb17f5566dd81b322cd6348f0fdd355cec593a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"3f6da7b0fa7b394c7d4eea2bb3caa7a7729ab0d6c1491fef02206a912c41b815","src/unix/linux_like/linux/arch/sparc/mod.rs":"91593ec0440f1dd8f8e612028f432c44c14089286e2aca50e10511ab942db8c3","src/unix/linux_like/linux/gnu/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/gnu/b32/arm/align.rs":"6ec0eb3ee93f7ae99fd714b4deabfb5e97fbcefd8c26f5a45fb8e7150899cdeb","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"5bd3f6b3484e049ddaac95f411b0d82cbf1cd28e6a5defbc927bd917f5f7d299","src/unix/linux_like/linux/gnu/b32/m68k/align.rs":"8faa92f77a9232c035418d45331774e64a9a841d99c91791570a203bf2b45bcb","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"a2a0a9400dae44086ebf579e0448e0676d4a3214d1ae7d13a024857251e23b6b","src/unix/linux_like/linux/gnu/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"6b9a5dac6f937ddc1453e808e3c43502c87143332df9e43ac64fb8b1eda6c116","src/unix/linux_like/linux/gnu/b32/mod.rs":"8da281da578cdee972e952b118b903b370320897a7e335342a15e1359864bef2","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"5c5d90326b54b57b98eff4745fe7a3fb02f053b2dc782241a73e807b491936a3","src/unix/linux_like/linux/gnu/b32/riscv32/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"5e7c1e29aeb82fc422f45b73fb0cf3d13d0902300f9150d2755a9074f8d96999","src/unix/linux_like/linux/gnu/b32/sparc/align.rs":"21adbed27df73e2d1ed934aaf733a643003d7baf2bde9c48ea440895bcca6d41","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"80894eece66e9348f45d1b07ad37c757ea694bbd10ed49d3f920b34e9f51a9a3","src/unix/linux_like/linux/gnu/b32/x86/align.rs":"e4bafdc4a519a7922a81b37a62bbfd1177a2f620890eef8f1fbc47162e9eb413","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"c703cc5e9de2dc31d9e5831bfb6f354d6e3518b2ae02263f68a9a70f1c0167e2","src/unix/linux_like/linux/gnu/b64/aarch64/align.rs":"ea39d5fd8ca5a71314127d1e1f542bca34ac566eac9a95662076d91ea4bee548","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"21a21503ef2e095f4371044915d4bfb07a8578011cb5c713cd9f45947b0b5730","src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"e78c3cd197f44832338b414d1a9bc0d194f44c74db77bd7bf830c1fff62b2690","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"666beae35371cb54a4ad091764e0e3ca4983d5205179c119a8ff97d3ae301869","src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs":"6616c38bf8cab53034dce9f968adae8fb7771334445a93876d000cfd08f117a8","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"17e9478b6a5830f6b8f6bea4ccab712cfd1972cdfb43b97408a068e4ea924106","src/unix/linux_like/linux/gnu/b64/mips64/align.rs":"7169d07a9fd4716f7512719aec9fda5d8bed306dc0720ffc1b21696c9951e3c6","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"80b4b97a41564290c510e68a1fb20cfd8424206f010e71a596f12877de886a71","src/unix/linux_like/linux/gnu/b64/mod.rs":"3c6555f30a7a8852757b31a542ea73fb6a16a6e27e838397e819278ad56e57a4","src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"a595e37c2325ceb40ef66c634bd3c255ad184a1d70ff8025e98a075f0ec67704","src/unix/linux_like/linux/gnu/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"ef4b13477ffd8532fb6705ca3fa63a1f13e8d19ee39b083c5355dfce430c1a5b","src/unix/linux_like/linux/gnu/b64/s390x.rs":"788fde4fa1919859cc028b59da31de00449edd2b2c1530ae76134beac418b73c","src/unix/linux_like/linux/gnu/b64/sparc64/align.rs":"e29c4868bbecfa4a6cd8a2ad06193f3bbc78a468cc1dc9df83f002f1268130d9","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"c4fa0ede3f78b21a9982667922cccd0681bee3cb6d42208ea9958f65e93d6308","src/unix/linux_like/linux/gnu/b64/x86_64/align.rs":"62e822478356db4a73b6bbd1b36d825b893939ab4b308ec11b0578bcc4b49769","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"e37e0421290b152fe508883181c41225e09dd5452a6b085e8d807b3b54823028","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"c1b6345ce14f67d1b2e2f7f2c0ff9a074c07acbd348df69cb4558bda8c8fb9ae","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"3f4d2aeadb7d2620cad09564abdbfc5cf02eeb5a27f2bab8a4e9b4bdbdb258a5","src/unix/linux_like/linux/gnu/mod.rs":"e31aa4bd147c83d05dcd13baca4b9f676320a7713ff50de08b51d0c88f8241a3","src/unix/linux_like/linux/gnu/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/mod.rs":"ddd008ff6304dca5d6fe9b452eb7a69745098bce47834d0999abdedd5978c2b3","src/unix/linux_like/linux/musl/b32/arm/align.rs":"3e8ac052c1043764776b54c93ba4260e061df998631737a897d9d47d54f7b80c","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"923159f09820a7e3ca2340ef6adb4f3779ebfa9320a1f6a41027529d81d5f699","src/unix/linux_like/linux/musl/b32/hexagon.rs":"5625a3dfcd8fae8c43e6306172dd0c2f7ace8ce9a43a2c03909aef35d96cdaa8","src/unix/linux_like/linux/musl/b32/mips/align.rs":"429fb5e005cb7143602d430098b6ebfb7d360685b194f333dfd587472ae954ee","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"bb5f45dd376e928a22282e1696989399b0e8d0a5fbc8309bb4238926d81e61e7","src/unix/linux_like/linux/musl/b32/mod.rs":"580e27c5ce3344df686f1ffc08fdfa2c282d1ceb623d778c50d210d4bd65ec7e","src/unix/linux_like/linux/musl/b32/powerpc.rs":"f23491f21f3eeac3e05a76b466567ea633b92a4830ab8b401cbb31c74ad1acab","src/unix/linux_like/linux/musl/b32/riscv32/align.rs":"efd2accf33b87de7c7547903359a5da896edc33cd6c719552c7474b60d4a5d48","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"e57dc5562553aab6d0765e0ec266254aa52975f8757bfe97e0c6028fa7d5d37c","src/unix/linux_like/linux/musl/b32/x86/align.rs":"08e77fbd7435d7dec2ff56932433bece3f02e47ce810f89004a275a86d39cbe1","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"5e58f759df421b4473f229da417cd5da080226afc0006d71d5dd578c62e27a50","src/unix/linux_like/linux/musl/b64/aarch64/align.rs":"6ba32725d24d7d8e6aa111f3b57aafa318f83b606abe96561329151829821133","src/unix/linux_like/linux/musl/b64/aarch64/int128.rs":"1735f6f5c56770d20dd426442f09724d9b2052b46a7cd82f23f3288a4a7276de","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"31e75179cbb4e26425b3f5b052e358f593153da662884655e60801d852e55dc2","src/unix/linux_like/linux/musl/b64/mips64.rs":"9a5d29f666332bb056d0e2951e9de989aa1dc016075f009db3f2f628e0cdda8c","src/unix/linux_like/linux/musl/b64/mod.rs":"6480edde6e8b2c3aa7d2561ec9d879e9fc7fe6d3e4568592b42a1564bb1daa9a","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"455dc0ffa55afc1db6ffaf461f6f2a7b49d31658bfebe0bb4efac5967a6f956c","src/unix/linux_like/linux/musl/b64/riscv64/align.rs":"d321491612be8d5c61b6ec2dc0111beb3a22e58803f99cd37543efe86621b119","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"42d4b6d36807f37759094a732a321080cccdf498b174d632cebba147051de294","src/unix/linux_like/linux/musl/b64/s390x.rs":"d8a4fdfea0960ec284cae4facb8b0fb342e8aa41544cffacdcaf08c5a92a43f8","src/unix/linux_like/linux/musl/b64/x86_64/align.rs":"77309276ad7a42cbe59ca381f23590b7a143aded05555b34a5b307b808cbca6e","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"7a877cd23b64be66d28e6b8dddae32d59a88d69115637539daf19381f4e39330","src/unix/linux_like/linux/musl/mod.rs":"9c980de9de01e8675003ed41b98edbcfb8c6dc8ac6b8387769b87085aeda5efa","src/unix/linux_like/linux/no_align.rs":"da2a8721becaaaa528781f97f5d9aae6a982ae5d4f5f6d2ffc0150bed72319b3","src/unix/linux_like/linux/non_exhaustive.rs":"181a05bf94fdb911db83ce793b993bd6548a4115b306a7ef3c10f745a8fea3e9","src/unix/linux_like/linux/uclibc/align.rs":"9ed16138d8e439bd90930845a65eafa7ebd67366e6bf633936d44014f6e4c959","src/unix/linux_like/linux/uclibc/arm/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/arm/mod.rs":"bf2dcf0a468f386899f572324f3bc14be1974f570afdfff1075ca6c5dd57710d","src/unix/linux_like/linux/uclibc/arm/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips32/align.rs":"e4a3c27fe20a57b8d612c34cb05bc70646edb5cec7251957315afa53a7b9f936","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"d2fc251754458b697ef6e599f0a670ebca18f61e4026bf681be4e2baa896b9df","src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs":"9cd223135de75315840ff9c3fd5441ba1cb632b96b5c85a76f8316c86653db25","src/unix/linux_like/linux/uclibc/mips/mips64/align.rs":"a7bdcb18a37a2d91e64d5fad83ea3edc78f5412adb28f77ab077dbb26dd08b2d","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"256a428290a560163ef7dc7d18b27bd3c6ce9748a0f28d5dc7f82203ee228220","src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs":"4a18e3875698c85229599225ac3401a2a40da87e77b2ad4ef47c6fcd5a24ed30","src/unix/linux_like/linux/uclibc/mips/mod.rs":"367ec5483ad317e6ccba1ac0888da6cf088a8d32689214cc8d16129aa692260c","src/unix/linux_like/linux/uclibc/mod.rs":"1c3d25cddcfefa2bd17bdc81550826be31a08eef235e13f825f169a5029c8bca","src/unix/linux_like/linux/uclibc/no_align.rs":"3f28637046524618adaa1012e26cb7ffe94b9396e6b518cccdc69d59f274d709","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"024eba5753e852dbdd212427351affe7e83f9916c1864bce414d7aa2618f192e","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"420dbea99e99091f333641e202960fa4bed0733de2a834e610708555be6bab4c","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"42c3f71e58cabba373f6a55a623f3c31b85049eb64824c09c2b082b3b2d6a0a8","src/unix/linux_like/mod.rs":"03ae2e1f8113ed650e1c9691e715254dd6b6d13cc829b639d5857336ecd11b24","src/unix/mod.rs":"4647dc713fb4208df76fe6009b9716eef1d9e09a77f6b2f1b793d63537b4c670","src/unix/newlib/aarch64/mod.rs":"bac93836a9a57b2c710f32f852e92a4d11ad6759ab0fb6ad33e71d60e53278af","src/unix/newlib/align.rs":"28aaf87fafbc6b312622719d472d8cf65f9e5467d15339df5f73e66d8502b28a","src/unix/newlib/arm/mod.rs":"cbba6b3e957eceb496806e60de8725a23ff3fa0015983b4b4fa27b233732b526","src/unix/newlib/espidf/mod.rs":"816f235f4aa4baabba7f2606b31d0fdb03988c52194c966728de8690bf17299d","src/unix/newlib/generic.rs":"eab066d9f0a0f3eb53cc1073d01496bba0110989e1f6a59838afd19f870cd599","src/unix/newlib/horizon/mod.rs":"7cc5cc120437421db139bfa6a90b18168cd3070bdd0f5be96d40fe4c996f3ca1","src/unix/newlib/mod.rs":"494e56628d4408bf66ad30ff71fbd21bc33d9037935c411dff7bf73dd3f1070b","src/unix/newlib/no_align.rs":"e0743b2179495a9514bc3a4d1781e492878c4ec834ee0085d0891dd1712e82fb","src/unix/newlib/powerpc/mod.rs":"0202ffd57caf75b6afa2c9717750ffb96e375ac33df0ae9609a3f831be393b67","src/unix/no_align.rs":"c06e95373b9088266e0b14bba0954eef95f93fb2b01d951855e382d22de78e53","src/unix/redox/mod.rs":"c8afea39f81e73ad4e9bf8a8f25138a200e616048e189debad80a6b7e08f710f","src/unix/solarish/compat.rs":"00f1ee3faec9da69204e42f025f6735dd13d894071a154425dcc43ecbdd06e7f","src/unix/solarish/illumos.rs":"cd93c2d84722bbf9933a92842a8998eb0b2afc962f50bc2546ad127b82809fa7","src/unix/solarish/mod.rs":"eace25beaa4874bfc2451f8136efc261f9dfb7a30caab3c97c708068d5431bbf","src/unix/solarish/solaris.rs":"41b350a89ddf01cd12a10f93640f92be53be0b0d976021cdc08da17bf3e72edf","src/unix/solarish/x86.rs":"e86e806df0caed72765040eaa2f3c883198d1aa91508540adf9b7008c77f522e","src/unix/solarish/x86_64.rs":"ec2b01f194eb8a6a27133c57681da195a949e03098f3ea1e847227a9c09ef5fc","src/unix/solarish/x86_common.rs":"ac869d9c3c95645c22460468391eb1982023c3a8e02b9e06a72e3aef3d5f1eac","src/vxworks/aarch64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/arm.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/mod.rs":"aea3da66f2140f2a82dfc9c58f6e6531d2dd9c15ea696e0f95a0d4a2a187b5b6","src/vxworks/powerpc.rs":"acb7968ce99fe3f4abdf39d98f8133d21a4fba435b8ef7084777cb181d788e88","src/vxworks/powerpc64.rs":"98f0afdc511cd02557e506c21fed6737585490a1dce7a9d4941d08c437762b99","src/vxworks/x86.rs":"552f007f38317620b23889cb7c49d1d115841252439060122f52f434fbc6e5ba","src/vxworks/x86_64.rs":"018d92be3ad628a129eff9f2f5dfbc0883d8b8e5f2fa917b900a7f98ed6b514a","src/wasi.rs":"3f6219f036ac1d917ab5fa7323e3770857f566bc4189a9d4c4ea8ca6517b8953","src/windows/gnu/align.rs":"b2c13ec1b9f3b39a75c452c80c951dff9d0215e31d77e883b4502afb31794647","src/windows/gnu/mod.rs":"3c8c7edb7cdf5d0c44af936db2a94869585c69dfabeef30571b4f4e38375767a","src/windows/mod.rs":"7fe35c1f5e6272acfba059a1ad7a78b144f5bc63456f6377d58bbc42cc23f509","src/windows/msvc/mod.rs":"c068271e00fca6b62bc4bf44bcf142cfc38caeded9b6c4e01d1ceef3ccf986f4","tests/const_fn.rs":"cb75a1f0864f926aebe79118fc34d51a0d1ade2c20a394e7774c7e545f21f1f4"},"package":"db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"}
diff --git a/poky/meta/recipes-devtools/rust/files/crossbeam_atomic.patch b/poky/meta/recipes-devtools/rust/files/crossbeam_atomic.patch
index 51dd3c5..0a29103 100644
--- a/poky/meta/recipes-devtools/rust/files/crossbeam_atomic.patch
+++ b/poky/meta/recipes-devtools/rust/files/crossbeam_atomic.patch
@@ -48,34 +48,3 @@
 \ No newline at end of file
 +{"files":{"CHANGELOG.md":"65d3e11edf9498bdbc930c8c3878b7d3a90c1a0b1698597dc4a396a547fa0948","Cargo.toml":"1e4259a5a47271e8ae040b91e17652b5a4e0e7e45c3f22de5008db276f3a50bf","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"2a19af38a52dd965c2d66bb39f90a85b430b51ee9ccb29e9e1978ee7091e5087","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d","build.rs":"108ba75398e3169c35b0e9754782391e4e4a9f9bf0ae2b216b55d836c4ac9ba8","no_atomic.rs":"f58085b9d0666ccf62e0ae17fb5dae937c0a86fcc55dc0ae04ad8659e696a49c","src/atomic/atomic_cell.rs":"0fc99463e633144c5d59d39c35b5477da1f1b90f5448cadc37454b7f4b97707e","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"94193895fa03cece415e8d7be700b73a9a8a7015774ca821253438607f9b0736","src/atomic/seq_lock.rs":"27182e6b87a9db73c5f6831759f8625f9fcdec3c2828204c444aef04f427735a","src/atomic/seq_lock_wide.rs":"9888dd03116bb89ca36d4ab8d5a0b5032107a2983a7eb8024454263b09080088","src/backoff.rs":"8fd5e3dcccc05860680e49c8498de8096bee9140bcfee8723d97117106a020d0","src/cache_padded.rs":"8bb8925e2df44224ffa29f31a2f9c08d88d8bd3df6c1ce47003598225055fdb5","src/lib.rs":"6f1bcf157abe06ad8458a53e865bf8efab9fad4a9424790147cee8fefb3795d8","src/sync/mod.rs":"eca73c04f821859b8434d2b93db87d160dc6a3f65498ca201cd40d732ca4c134","src/sync/once_lock.rs":"c03dc9c05a817e087dccf8b682f7307501542805533551da3c2bab442bc40743","src/sync/parker.rs":"91f3a7d4ee8d9e06b6558d180e8a0df08ff5c6cef612b4ce4790f9f75cb34f84","src/sync/sharded_lock.rs":"6391b3b99b194b8e0888446c2dec340e4fb095753bcf0c1a80bc654f9c8be0e3","src/sync/wait_group.rs":"3e339aab014f50e214fea535c841755113ea058153378ed54e50a4acb403c937","src/thread.rs":"21cf9b3e965529e5c0a6ff8fc1ec846bfe0006c41deb238a149be8d07384e955","tests/atomic_cell.rs":"bf8bc869c922a1cbf929c3b741bae0cae98f2157f572b5a4eb2873d20a407c22","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"314adeb8a651a28935f7a49c9a261b8fa1fd82bf6a16c865a5aced6216d7e40b","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"02661c2a820a5abe8b0c8fe15a6650aead707b57cdda0610d1b09a2680ed6969"},"package":"edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"}
 \ No newline at end of file
-Index: rustc-1.66.0-src/vendor/crossbeam-utils-0.8.8/.cargo-checksum.json
-===================================================================
---- rustc-1.66.0-src.orig/vendor/crossbeam-utils-0.8.8/.cargo-checksum.json
-+++ rustc-1.66.0-src/vendor/crossbeam-utils-0.8.8/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"CHANGELOG.md":"665a9f2c5fd37c98bef7c1b6eda753b58bb925d87e5b42d7298df973d7590631","Cargo.toml":"fe22292acd6a868e65baf225f90d5678678971642814d2d8e92a03954b8bdb40","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"dfa9fbed47c344c134a63c84b7c0e4651baeac1554b7b3266d0e38643743fc33","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d","build.rs":"7e74dc72343ff57e83d0a84a9fbdd9ff1645894165909999b4c3d2fba94bc96c","no_atomic.rs":"71b5f78fd701ce604aa766dd3d825fa5bed774282aae4d6c31d7acb01b1b242f","src/atomic/atomic_cell.rs":"01185588e0e16ba81425677966d0c11887dedc4ac0d4a65991a34057c418adc4","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"94193895fa03cece415e8d7be700b73a9a8a7015774ca821253438607f9b0736","src/atomic/seq_lock.rs":"27182e6b87a9db73c5f6831759f8625f9fcdec3c2828204c444aef04f427735a","src/atomic/seq_lock_wide.rs":"9888dd03116bb89ca36d4ab8d5a0b5032107a2983a7eb8024454263b09080088","src/backoff.rs":"7cc7754e15f69b52e92a70d4f49d1bc274693455a0933a2d7eb0605806566af3","src/cache_padded.rs":"6a512698115ad0d5a5b163dbd7a83247e1f1c146c4a30f3fc74b952e3b767b59","src/lib.rs":"6f1bcf157abe06ad8458a53e865bf8efab9fad4a9424790147cee8fefb3795d8","src/sync/mod.rs":"59986f559a8f170a4b3247ab2eea2460b09809d87c8110ed88e4e7103d3519dc","src/sync/parker.rs":"3f997f5b41fec286ccedcf3d36f801d741387badb574820b8e3456117ecd9154","src/sync/sharded_lock.rs":"14be659744918d0b27db24c56b41c618b0f0484b6761da46561023d96c4c120f","src/sync/wait_group.rs":"32e946a7581c55f8aa9904527b92b177c538fa0cf7cbcfa1d1f25990582cb6ea","src/thread.rs":"6a7676fd4e50af63aec6f655121a10cd6e8c704f4677125388186ba58dc5842d","tests/atomic_cell.rs":"d64faa1ca8896373468308031220940d988aa3a1679ea25d2291a7a7d22bc51a","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"eb6c5b59f007e0d290dd0f58758e8ccb5cacd38af34e3341368ced815f0c41be","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"ad8f0cdfed31f9594a2e0737234d418f8b924d784a4db8d7e469deab8c95f5f8"},"package":"0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"}
-\ No newline at end of file
-+{"files":{"CHANGELOG.md":"665a9f2c5fd37c98bef7c1b6eda753b58bb925d87e5b42d7298df973d7590631","Cargo.toml":"fe22292acd6a868e65baf225f90d5678678971642814d2d8e92a03954b8bdb40","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"5734ed989dfca1f625b40281ee9f4530f91b2411ec01cb748223e7eb87e201ab","README.md":"dfa9fbed47c344c134a63c84b7c0e4651baeac1554b7b3266d0e38643743fc33","benches/atomic_cell.rs":"c927eb3cd1e5ecc4b91adbc3bde98af15ffab4086190792ba64d5cde0e24df3d","build.rs":"d983d511c89607ce89473779d1ee195e3eb509cc4d3043b9efe6aa2f94c98158","no_atomic.rs":"71b5f78fd701ce604aa766dd3d825fa5bed774282aae4d6c31d7acb01b1b242f","src/atomic/atomic_cell.rs":"01185588e0e16ba81425677966d0c11887dedc4ac0d4a65991a34057c418adc4","src/atomic/consume.rs":"7a7736fcd64f6473dfea7653559ffc5e1a2a234df43835f8aa8734862145ac15","src/atomic/mod.rs":"94193895fa03cece415e8d7be700b73a9a8a7015774ca821253438607f9b0736","src/atomic/seq_lock.rs":"27182e6b87a9db73c5f6831759f8625f9fcdec3c2828204c444aef04f427735a","src/atomic/seq_lock_wide.rs":"9888dd03116bb89ca36d4ab8d5a0b5032107a2983a7eb8024454263b09080088","src/backoff.rs":"7cc7754e15f69b52e92a70d4f49d1bc274693455a0933a2d7eb0605806566af3","src/cache_padded.rs":"6a512698115ad0d5a5b163dbd7a83247e1f1c146c4a30f3fc74b952e3b767b59","src/lib.rs":"6f1bcf157abe06ad8458a53e865bf8efab9fad4a9424790147cee8fefb3795d8","src/sync/mod.rs":"59986f559a8f170a4b3247ab2eea2460b09809d87c8110ed88e4e7103d3519dc","src/sync/parker.rs":"3f997f5b41fec286ccedcf3d36f801d741387badb574820b8e3456117ecd9154","src/sync/sharded_lock.rs":"14be659744918d0b27db24c56b41c618b0f0484b6761da46561023d96c4c120f","src/sync/wait_group.rs":"32e946a7581c55f8aa9904527b92b177c538fa0cf7cbcfa1d1f25990582cb6ea","src/thread.rs":"6a7676fd4e50af63aec6f655121a10cd6e8c704f4677125388186ba58dc5842d","tests/atomic_cell.rs":"d64faa1ca8896373468308031220940d988aa3a1679ea25d2291a7a7d22bc51a","tests/cache_padded.rs":"1bfaff8354c8184e1ee1f902881ca9400b60effb273b0d3f752801a483d2b66d","tests/parker.rs":"6def4721287d9d70b1cfd63ebb34e1c83fbb3376edbad2bc8aac6ef69dd99d20","tests/sharded_lock.rs":"eb6c5b59f007e0d290dd0f58758e8ccb5cacd38af34e3341368ced815f0c41be","tests/thread.rs":"9a7d7d3028c552fd834c68598b04a1cc252a816bc20ab62cec060d6cd09cab10","tests/wait_group.rs":"ad8f0cdfed31f9594a2e0737234d418f8b924d784a4db8d7e469deab8c95f5f8"},"package":"0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"}
-\ No newline at end of file
-Index: rustc-1.66.0-src/vendor/crossbeam-utils-0.8.8/build.rs
-===================================================================
---- rustc-1.66.0-src.orig/vendor/crossbeam-utils-0.8.8/build.rs
-+++ rustc-1.66.0-src/vendor/crossbeam-utils-0.8.8/build.rs
-@@ -29,7 +29,7 @@ use std::env;
- include!("no_atomic.rs");
- 
- fn main() {
--    let target = match env::var("TARGET") {
-+    let mut target = match env::var("TARGET") {
-         Ok(target) => target,
-         Err(e) => {
-             println!(
-@@ -40,6 +40,8 @@ fn main() {
-             return;
-         }
-     };
-+    let vendor = env::var("TARGET_VENDOR").unwrap();
-+    target = target.replace(&vendor, "-unknown");
- 
-     // Note that this is `no_*`, not `has_*`. This allows treating
-     // `cfg(target_has_atomic = "ptr")` as true when the build script doesn't
diff --git a/poky/meta/recipes-devtools/rust/files/getrandom-open64.patch b/poky/meta/recipes-devtools/rust/files/getrandom-open64.patch
index 6fc981e..b35195e 100644
--- a/poky/meta/recipes-devtools/rust/files/getrandom-open64.patch
+++ b/poky/meta/recipes-devtools/rust/files/getrandom-open64.patch
@@ -6,24 +6,41 @@
 using open64, this is more available. Latest Musl has made these
 namespace changes [1]
 
+There is no need for using LFS64 open explicitly as we are only using it
+for opening device files and not real files
+
 [1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
 
-Upstream-Status: Submitted [https://github.com/rust-random/getrandom/pull/326]
+Upstream-Status: Backport [https://github.com/rust-random/getrandom/commit/7f73e3ccc1f53bfc419e4ddcfd343766aa5837b6]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/vendor/getrandom-0.2.0/.cargo-checksum.json
-+++ b/vendor/getrandom-0.2.0/.cargo-checksum.json
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+--- a/vendor/getrandom/.cargo-checksum.json
++++ b/vendor/getrandom/.cargo-checksum.json
 @@ -1 +1 @@
--{"files":{"CHANGELOG.md":"4a5b61c82668507beffc7ad33f602257013263d7847cf17a246ef1128ba27950","Cargo.toml":"b59322815506cf16acd6e0cbe2634dec1be0886e686b51fa5cdf5a5ac9fdcf32","LICENSE-APACHE":"aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf","LICENSE-MIT":"209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b","README.md":"e0bacefbe4310c23578c65926bda6e4318750f6718bb6b97ff9a4fa9056af6a6","benches/mod.rs":"5495735ff210a50cab23c2cc84191ed910af7c30395a3d9d6095b722765b3864","build.rs":"90355b5e76dedd97d604cd83b4a0a5ab074bbd4dde9632ee2b56c87c175b1e14","src/bsd_arandom.rs":"d2ee195acd80c7d1364a369ad0d2dad46f5f9f973f9d3960367413fd87acfcd6","src/cloudabi.rs":"9201af65a607587aa8615ec92cfab9d176f4199f6799dad9ca743c51d175028b","src/custom.rs":"f75ef80ec024fe3c97c7faff79de9f7d457993ed3c5f69f21593e140c8b62790","src/error.rs":"f40aa6cb36bc024285dc2e40349fdd3754db949a307ec73831ec253549d2b0a3","src/error_impls.rs":"733ed75ab89a9d0d5a7cc7abd85f31a23d772ea9c1e7c10def1477207d19fd8b","src/fuchsia.rs":"470d8509deb5b06fa6417f294c0a49e0e35a580249a5d8944c3be5aa746f64ea","src/ios.rs":"cc46ee9c48ab746d2af342a242e383b8de840045d3f52fd77ee337161367a1a1","src/lib.rs":"6aff4b429e4b1a07aad2ab7148d7cc9d0987b230597649af42041508320592e0","src/linux_android.rs":"39cb80999c8534145240a350976d261b8924436bf9a4563960c7bd8c2c83c773","src/macos.rs":"b692f2fcc2319a5195f47751d5bd7dd87c7c24a61d14fa4e3dbc992ae66212b7","src/openbsd.rs":"066b2dd395c190444a658bb0b52a052eabbd68ea5a534fb729c7e5373abc0a6a","src/rdrand.rs":"79d23183b1905d61bd9df9729dc798505a2ed750d3339e342ab144e1709827e4","src/solaris_illumos.rs":"9c7004446fabe5a7a21c73d5a65d7e2115b5bd1d1dbb735c984cab3dba239785","src/stdweb.rs":"f140081e47cfbb61937212e7840391bce5adf7829039d732d62b82a19e567dfa","src/test_common.rs":"895d71c06722e3a6f365999d29430f37f571aeb1eb4a525777b760005c9818be","src/test_rdrand.rs":"8c8df6de836463a41808396016428bf0a2a69c715ae96e7e0e7598fcea61ace8","src/use_file.rs":"c9fe635a83614be6f303e40f98b8e678c36ac6d9724b024430d3ea1ad1510add","src/util.rs":"da6964dc1523f1cb8d26365fa6a8ece46360587e6974931624b271f0c72cda8b","src/util_libc.rs":"d851394bc9c43dc09afde1e03401aa6c207858ec58fdffbc5131911b116418c7","src/vxworks.rs":"a5aa0e40f890e0f35626458bb656a3340b8af3111e4bacd2e12505a8d50a3505","src/wasi.rs":"3413e5a391b156f5d05600f4651f7f8eb4df2c8984fca7766ca50c0cfe0b2e9c","src/wasm-bindgen.rs":"0648388724c46697a9b3c654b8d931b2bf187a3193ca1888221d4529f764e376","src/windows.rs":"39dfae2814d958993619c3654bb39745de897971aea7a414fa32f90770850ce2","src/windows_uwp.rs":"672f41a0fac79a71bfaaecad59826c948b8538f69a0133ab1c09a1865ecd6114"},"package":"ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4"}
+-{"files":{"CHANGELOG.md":"cb054908f44d0e7f229dcc4580bcc4f2c3e2da198c84292710f730b33cc3d5f6","Cargo.toml":"708a5d9c89443b937aa50260e26a01f9ebfdd50a7ae312956795834e3187baf3","LICENSE-APACHE":"aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf","LICENSE-MIT":"209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b","README.md":"7ae74633326a22fd6298d7f209fb14884277bd98049795f444945acbb2b0dfbd","benches/mod.rs":"c01b05c6d690a4b8937d25252f1385a6bff378517318ce832ea520036aabd571","src/3ds.rs":"0f48fc15f89b518fb92e06aaa4838b62dc073598e8f288df56ad1e5a9251af1e","src/bsd_arandom.rs":"d90c419d4def20f83e7535cd3f5ec07035045011a50c3652951d196a120c5d3e","src/custom.rs":"ce4640776d36872dbbd5e194bf29f6bcda3ef4549ca04fe59f5aeab1dea1d821","src/dragonfly.rs":"47f933eac189f6ea48ecf021efd0747ebce1b43d1bece6bbf72a951bab705987","src/error.rs":"ff09a7e02d7aff3e45eca6bbef6c686cc46f3c2371a0897a856e4dec4b942e46","src/error_impls.rs":"9c34832ebb99cd5e31bc5c8ffc5beb5b3fa6f7ff0226aaa1cdf8e10e6d64b324","src/espidf.rs":"19f101486584fde6dad962f4d9792de168658047312106641a5caf6866a5bbcf","src/fuchsia.rs":"470d8509deb5b06fa6417f294c0a49e0e35a580249a5d8944c3be5aa746f64ea","src/ios.rs":"4bad4f5c096a50338b86aeac91a937c18bc55b9555e6f34806ad13732e64523d","src/js.rs":"370610a19045012c87c986279aad6b150cd728a44015dcc5779256e4a2e6629b","src/lib.rs":"8e5c2c8edcbdbf2cee46b86d96d951cc6d5c00f7c11cfc9c27de27e756b5c4cc","src/linux_android.rs":"ec24575aa4ae71b6991290dadfdea931b05397c3faababf24bd794f1a9624835","src/macos.rs":"6c09827ad5292cd022e063efa79523bfdb50ed08b9867ebaa007cd321b8d218e","src/openbsd.rs":"450a23ead462d4a840fee4aa0bfdab1e3d88c8f48e4bb608d457429ddeca69c0","src/rdrand.rs":"79d23183b1905d61bd9df9729dc798505a2ed750d3339e342ab144e1709827e4","src/solaris_illumos.rs":"d52fee9dd7d661f960c01894edd563c1ff8a512c111f7803092d9aa2ff98718e","src/solid.rs":"997035d54c9762d22a5a14f54e7fbed4dd266cdeacbdf6aab7d8aee05537e8ba","src/use_file.rs":"16e42eb0a56e375c330c1ca8eb58c444e82ef3ad35230b961fdba96a02a68804","src/util.rs":"da6964dc1523f1cb8d26365fa6a8ece46360587e6974931624b271f0c72cda8b","src/util_libc.rs":"2a63ac0e6dab16b85c4728b79a16e0640301e8b876f151b0a1db0b4394fa219f","src/vxworks.rs":"a5aa0e40f890e0f35626458bb656a3340b8af3111e4bacd2e12505a8d50a3505","src/wasi.rs":"dfdd0a870581948bd03abe64d49ca4295d9cfa26e09b97a526fd5e17148ad9ca","src/windows.rs":"d0b4f2afd1959660aa9abcd9477764bd7dc0b7d7048aee748804b37963c77c6f","tests/common/mod.rs":"b6beee8f535d2d094a65711fe0af91a6fc220aa09729ed7269fe33cafdc9177f","tests/custom.rs":"9f2c0193193f6bcf641116ca0b3653b33d2015e0e98ce107ee1d1f60c5eeae3a","tests/normal.rs":"9e1c4b1e468a09ed0225370dfb6608f8b8135e0fabb09bbc1a718105164aade6","tests/rdrand.rs":"4474ccebf9d33c89288862a7e367018405968dddc55c7c6f97e21b5fe2264601"},"package":"c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"}
 \ No newline at end of file
-+{"files":{"CHANGELOG.md":"4a5b61c82668507beffc7ad33f602257013263d7847cf17a246ef1128ba27950","Cargo.toml":"b59322815506cf16acd6e0cbe2634dec1be0886e686b51fa5cdf5a5ac9fdcf32","LICENSE-APACHE":"aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf","LICENSE-MIT":"209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b","README.md":"e0bacefbe4310c23578c65926bda6e4318750f6718bb6b97ff9a4fa9056af6a6","benches/mod.rs":"5495735ff210a50cab23c2cc84191ed910af7c30395a3d9d6095b722765b3864","build.rs":"90355b5e76dedd97d604cd83b4a0a5ab074bbd4dde9632ee2b56c87c175b1e14","src/bsd_arandom.rs":"d2ee195acd80c7d1364a369ad0d2dad46f5f9f973f9d3960367413fd87acfcd6","src/cloudabi.rs":"9201af65a607587aa8615ec92cfab9d176f4199f6799dad9ca743c51d175028b","src/custom.rs":"f75ef80ec024fe3c97c7faff79de9f7d457993ed3c5f69f21593e140c8b62790","src/error.rs":"f40aa6cb36bc024285dc2e40349fdd3754db949a307ec73831ec253549d2b0a3","src/error_impls.rs":"733ed75ab89a9d0d5a7cc7abd85f31a23d772ea9c1e7c10def1477207d19fd8b","src/fuchsia.rs":"470d8509deb5b06fa6417f294c0a49e0e35a580249a5d8944c3be5aa746f64ea","src/ios.rs":"cc46ee9c48ab746d2af342a242e383b8de840045d3f52fd77ee337161367a1a1","src/lib.rs":"6aff4b429e4b1a07aad2ab7148d7cc9d0987b230597649af42041508320592e0","src/linux_android.rs":"39cb80999c8534145240a350976d261b8924436bf9a4563960c7bd8c2c83c773","src/macos.rs":"b692f2fcc2319a5195f47751d5bd7dd87c7c24a61d14fa4e3dbc992ae66212b7","src/openbsd.rs":"066b2dd395c190444a658bb0b52a052eabbd68ea5a534fb729c7e5373abc0a6a","src/rdrand.rs":"79d23183b1905d61bd9df9729dc798505a2ed750d3339e342ab144e1709827e4","src/solaris_illumos.rs":"9c7004446fabe5a7a21c73d5a65d7e2115b5bd1d1dbb735c984cab3dba239785","src/stdweb.rs":"f140081e47cfbb61937212e7840391bce5adf7829039d732d62b82a19e567dfa","src/test_common.rs":"895d71c06722e3a6f365999d29430f37f571aeb1eb4a525777b760005c9818be","src/test_rdrand.rs":"8c8df6de836463a41808396016428bf0a2a69c715ae96e7e0e7598fcea61ace8","src/use_file.rs":"c9fe635a83614be6f303e40f98b8e678c36ac6d9724b024430d3ea1ad1510add","src/util.rs":"da6964dc1523f1cb8d26365fa6a8ece46360587e6974931624b271f0c72cda8b","src/util_libc.rs":"c602b47e2958fa94443b3690faddf52a8c545689d18579c86dd8a07927c145b1","src/vxworks.rs":"a5aa0e40f890e0f35626458bb656a3340b8af3111e4bacd2e12505a8d50a3505","src/wasi.rs":"3413e5a391b156f5d05600f4651f7f8eb4df2c8984fca7766ca50c0cfe0b2e9c","src/wasm-bindgen.rs":"0648388724c46697a9b3c654b8d931b2bf187a3193ca1888221d4529f764e376","src/windows.rs":"39dfae2814d958993619c3654bb39745de897971aea7a414fa32f90770850ce2","src/windows_uwp.rs":"672f41a0fac79a71bfaaecad59826c948b8538f69a0133ab1c09a1865ecd6114"},"package":"ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4"}
---- a/vendor/getrandom-0.2.0/src/util_libc.rs
-+++ b/vendor/getrandom-0.2.0/src/util_libc.rs
-@@ -97,7 +97,7 @@ impl Weak {
++{"files":{"CHANGELOG.md":"cb054908f44d0e7f229dcc4580bcc4f2c3e2da198c84292710f730b33cc3d5f6","Cargo.toml":"708a5d9c89443b937aa50260e26a01f9ebfdd50a7ae312956795834e3187baf3","LICENSE-APACHE":"aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf","LICENSE-MIT":"209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b","README.md":"7ae74633326a22fd6298d7f209fb14884277bd98049795f444945acbb2b0dfbd","benches/mod.rs":"c01b05c6d690a4b8937d25252f1385a6bff378517318ce832ea520036aabd571","src/3ds.rs":"0f48fc15f89b518fb92e06aaa4838b62dc073598e8f288df56ad1e5a9251af1e","src/bsd_arandom.rs":"d90c419d4def20f83e7535cd3f5ec07035045011a50c3652951d196a120c5d3e","src/custom.rs":"ce4640776d36872dbbd5e194bf29f6bcda3ef4549ca04fe59f5aeab1dea1d821","src/dragonfly.rs":"47f933eac189f6ea48ecf021efd0747ebce1b43d1bece6bbf72a951bab705987","src/error.rs":"ff09a7e02d7aff3e45eca6bbef6c686cc46f3c2371a0897a856e4dec4b942e46","src/error_impls.rs":"9c34832ebb99cd5e31bc5c8ffc5beb5b3fa6f7ff0226aaa1cdf8e10e6d64b324","src/espidf.rs":"19f101486584fde6dad962f4d9792de168658047312106641a5caf6866a5bbcf","src/fuchsia.rs":"470d8509deb5b06fa6417f294c0a49e0e35a580249a5d8944c3be5aa746f64ea","src/ios.rs":"4bad4f5c096a50338b86aeac91a937c18bc55b9555e6f34806ad13732e64523d","src/js.rs":"370610a19045012c87c986279aad6b150cd728a44015dcc5779256e4a2e6629b","src/lib.rs":"8e5c2c8edcbdbf2cee46b86d96d951cc6d5c00f7c11cfc9c27de27e756b5c4cc","src/linux_android.rs":"ec24575aa4ae71b6991290dadfdea931b05397c3faababf24bd794f1a9624835","src/macos.rs":"6c09827ad5292cd022e063efa79523bfdb50ed08b9867ebaa007cd321b8d218e","src/openbsd.rs":"450a23ead462d4a840fee4aa0bfdab1e3d88c8f48e4bb608d457429ddeca69c0","src/rdrand.rs":"79d23183b1905d61bd9df9729dc798505a2ed750d3339e342ab144e1709827e4","src/solaris_illumos.rs":"d52fee9dd7d661f960c01894edd563c1ff8a512c111f7803092d9aa2ff98718e","src/solid.rs":"997035d54c9762d22a5a14f54e7fbed4dd266cdeacbdf6aab7d8aee05537e8ba","src/use_file.rs":"16e42eb0a56e375c330c1ca8eb58c444e82ef3ad35230b961fdba96a02a68804","src/util.rs":"da6964dc1523f1cb8d26365fa6a8ece46360587e6974931624b271f0c72cda8b","src/util_libc.rs":"a47b20e73637fed248405650f56358f3339e511b217b7ba80e32011d8ee2ca22","src/vxworks.rs":"a5aa0e40f890e0f35626458bb656a3340b8af3111e4bacd2e12505a8d50a3505","src/wasi.rs":"dfdd0a870581948bd03abe64d49ca4295d9cfa26e09b97a526fd5e17148ad9ca","src/windows.rs":"d0b4f2afd1959660aa9abcd9477764bd7dc0b7d7048aee748804b37963c77c6f","tests/common/mod.rs":"b6beee8f535d2d094a65711fe0af91a6fc220aa09729ed7269fe33cafdc9177f","tests/custom.rs":"9f2c0193193f6bcf641116ca0b3653b33d2015e0e98ce107ee1d1f60c5eeae3a","tests/normal.rs":"9e1c4b1e468a09ed0225370dfb6608f8b8135e0fabb09bbc1a718105164aade6","tests/rdrand.rs":"4474ccebf9d33c89288862a7e367018405968dddc55c7c6f97e21b5fe2264601"},"package":"c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"}
+\ No newline at end of file
+--- a/vendor/getrandom/src/util_libc.rs
++++ b/vendor/getrandom/src/util_libc.rs
+@@ -135,19 +135,11 @@ impl Weak {
+     }
  }
  
- cfg_if! {
+-cfg_if! {
 -    if #[cfg(any(target_os = "linux", target_os = "emscripten"))] {
-+    if #[cfg(any(all(target_os = "linux", not(target_env = "musl")), target_os = "emscripten"))] {
-         use libc::open64 as open;
-     } else {
-         use libc::open;
+-        use libc::open64 as open;
+-    } else {
+-        use libc::open;
+-    }
+-}
+-
+ // SAFETY: path must be null terminated, FD must be manually closed.
+ pub unsafe fn open_readonly(path: &str) -> Result<libc::c_int, Error> {
+     debug_assert_eq!(path.as_bytes().last(), Some(&0));
+     loop {
+-        let fd = open(path.as_ptr() as *const _, libc::O_RDONLY | libc::O_CLOEXEC);
++        let fd = libc::open(path.as_ptr() as *const _, libc::O_RDONLY | libc::O_CLOEXEC);
+         if fd >= 0 {
+             return Ok(fd);
+         }
diff --git a/poky/meta/recipes-devtools/rust/libstd-rs_1.67.1.bb b/poky/meta/recipes-devtools/rust/libstd-rs_1.68.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/rust/libstd-rs_1.67.1.bb
rename to poky/meta/recipes-devtools/rust/libstd-rs_1.68.2.bb
diff --git a/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc b/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc
index 17f9339..8d0dc6a 100644
--- a/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc
@@ -1,3 +1,4 @@
+SUMMARY = "Rust compiler and runtime libaries (cross-canadian for ${TARGET_ARCH} target)"
 PN = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
 
 inherit rust-target-config
diff --git a/poky/meta/recipes-devtools/rust/rust-cross-canadian_1.67.1.bb b/poky/meta/recipes-devtools/rust/rust-cross-canadian_1.68.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/rust/rust-cross-canadian_1.67.1.bb
rename to poky/meta/recipes-devtools/rust/rust-cross-canadian_1.68.2.bb
diff --git a/poky/meta/recipes-devtools/rust/rust-llvm_1.67.1.bb b/poky/meta/recipes-devtools/rust/rust-llvm_1.68.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/rust/rust-llvm_1.67.1.bb
rename to poky/meta/recipes-devtools/rust/rust-llvm_1.68.2.bb
index 4da11da8..6304070 100644
--- a/poky/meta/recipes-devtools/rust/rust-llvm_1.67.1.bb
+++ b/poky/meta/recipes-devtools/rust/rust-llvm_1.68.2.bb
@@ -49,14 +49,12 @@
     -DCMAKE_INSTALL_PREFIX:PATH=${libdir}/llvm-rust \
 "
 EXTRA_OECMAKE:append:class-target = "\
-    -DCMAKE_CROSSCOMPILING:BOOL=ON \
     -DLLVM_BUILD_TOOLS=OFF \
     -DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
     -DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
 "
 
 EXTRA_OECMAKE:append:class-nativesdk = "\
-    -DCMAKE_CROSSCOMPILING:BOOL=ON \
     -DLLVM_BUILD_TOOLS=OFF \
     -DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
     -DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
diff --git a/poky/meta/recipes-devtools/rust/rust-snapshot.inc b/poky/meta/recipes-devtools/rust/rust-snapshot.inc
index d531727..cb49d8e 100644
--- a/poky/meta/recipes-devtools/rust/rust-snapshot.inc
+++ b/poky/meta/recipes-devtools/rust/rust-snapshot.inc
@@ -4,51 +4,51 @@
 ## The exact (previous) version that has been used is specified in the source tarball.
 ## The version is replicated here.
 
-SNAPSHOT_VERSION = "1.66.1"
+SNAPSHOT_VERSION = "1.67.1"
 
-SRC_URI[cargo-snapshot-aarch64.sha256sum] = "61736a6ec61a4eaa9a7b3f219d9f8166ae97c1acd54b5e904c15fb8caff06250"
-SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "9d96ba6a5a255339cd04af079d906753d56c85503c727279c227d24bd4987e24"
-SRC_URI[rustc-snapshot-aarch64.sha256sum] = "b4d842594ba11a84712c2d1bbf7f7945cfcc2485c72861a23b488fefba5c6a45"
+SRC_URI[cargo-snapshot-aarch64.sha256sum] = "b04e33d9beb3cd97501399c17ca297f0adc12a7c0ea16351b8821fc9228de477"
+SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "35027409400faaaa38ea2855b92dea6b553b2e656dff735da730f67ac02e57e6"
+SRC_URI[rustc-snapshot-aarch64.sha256sum] = "053ccc4ab81ea9c16906205c2b653a93b5b44fe4f67f9e45153a2687b7efb65a"
 
-SRC_URI[cargo-snapshot-i686.sha256sum] = "fb0c1aa922c4e41fead9d35090769309cb45648d6f77ccbe8d2ba125a75cc2af"
-SRC_URI[rust-std-snapshot-i686.sha256sum] = "b32cbbb9002f8a20b302823a2ff122a91f077b5e1a7bc1340de690ded86bf10b"
-SRC_URI[rustc-snapshot-i686.sha256sum] = "e2ab464f43d6319ddb9796cbfacd444dc40f3d0e7503d672c23ecbe0daf11e1c"
+SRC_URI[cargo-snapshot-i686.sha256sum] = "36db46e19e8573ea113c38d88f66def5fad848721b3c6dd69361f197b7a02f80"
+SRC_URI[rust-std-snapshot-i686.sha256sum] = "aab2d7aa76793e78c9c8810e93ed8978f6422843b1277e9c60337b0f943a4409"
+SRC_URI[rustc-snapshot-i686.sha256sum] = "0c77fde6daa80825f8cb81a5525c99db238a3ab4f0b226470964062e74603dd6"
 
-SRC_URI[cargo-snapshot-mips.sha256sum] = "0f03d6d35b6044dc81a4d5eb9bd42c9d1e8c0e85363f960ff921ebe46294ae45"
-SRC_URI[rust-std-snapshot-mips.sha256sum] = "e6029b4cec5d6c06c34a0dbec614fa252fdc8cf31013d6e561112cf90f742568"
-SRC_URI[rustc-snapshot-mips.sha256sum] = "64ad92525ae1f018e08c055d7892e0fc613437bde8cf614b1c2a8986488290e7"
+SRC_URI[cargo-snapshot-mips.sha256sum] = "06778d8aedd8e7850f0175483efa015cc2eeb69e6027e3d94352d89d2a510fc5"
+SRC_URI[rust-std-snapshot-mips.sha256sum] = "048b3da190212b742f7a052618b57683dc96ee2b6c25fc7f5ae751143cb79bad"
+SRC_URI[rustc-snapshot-mips.sha256sum] = "d3b7501acdfda6e4e9d8ee64d9de716579791d567c66f1273e601a55c2e23ca8"
 
-SRC_URI[cargo-snapshot-mipsel.sha256sum] = "74d757a456d2fbb418c253db203c0bb3f71d797e4ab3e2804b6c594a18e0f199"
-SRC_URI[rust-std-snapshot-mipsel.sha256sum] = "8bfa3d6079c6df049978fe61b1ccaf992aecd006e23df2439ecfc883bd8bc31b"
-SRC_URI[rustc-snapshot-mipsel.sha256sum] = "f2674d60ce52c49048e9823af57aae24bb6722e8998783819ec884222caeccf3"
+SRC_URI[cargo-snapshot-mipsel.sha256sum] = "7bf800ddd0ee6b69bb66fb7cdf12ae045db025fdb866e00c62b63a1eb99f7d64"
+SRC_URI[rust-std-snapshot-mipsel.sha256sum] = "94410897626546dde806a114299c3c32abb6b4b294af5daea5c4d136751fe063"
+SRC_URI[rustc-snapshot-mipsel.sha256sum] = "eb34b5d901807e1e47fb6ac686571f21b2a80ad831583485872c9e9c59291776"
 
-SRC_URI[cargo-snapshot-powerpc.sha256sum] = "f771fa4294c8e0d5d0e58129fe9d4e0913566dd43523b6f0af19a08004004df8"
-SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "417b12a9bf090d694514937cd8c321ed625f155248f63c0de8207b17fa4b35b1"
-SRC_URI[rustc-snapshot-powerpc.sha256sum] = "ff16d02c100086175b9fbcfff4d3705fb4f5b58a6506ec7667dc86c56b8bb3c7"
+SRC_URI[cargo-snapshot-powerpc.sha256sum] = "b134c63817805f59821024d377196f2821ae53f88d0a4a2ebdbd8152433984b0"
+SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "26efe78c09ed36da34964c0d023cf9aa404766ab790a94d9becd373b8879cb5a"
+SRC_URI[rustc-snapshot-powerpc.sha256sum] = "8f6212756d152f6876a6456f4d3f93ef8b4b7e5c93b96fe515cb8183c0612d7b"
 
-SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "9a933d39e6b028e73db9cc0959af84128824e0b11554e3a0171cad7635a343c7"
-SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "7074c4ea9fcc683ceb0adcca6ba07544a1d91f0e5d2a4cf14c81eb14316ebf35"
-SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "f5bff79d517e2f721839462881331bdc1b8323a434f4ebe0529f93213adb2a24"
+SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "2cd84deb15ed16fc4a1d8a9de45577ba4d9f245de4f7efb3dc6611eec437eef3"
+SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "135f5e6ab6d8f077a14521d387d3f31831abdb840ca4e6a15b6f0d0d5b7dbc81"
+SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "bdb08b549df5d7a421637efb0be00211b5ca9cf1e4214d66eb762b92e0f9b3fe"
 
-SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "29fa2e003f4bf3e37a3fb506d5b7ab19eb6412b5966d865e082b354637d5d84a"
-SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "4c64a09be872b5832b50d681fbe29691b6a5d3e23ee5535020fa22b8b453c770"
-SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "3b4322b519b0f7fbcf88511b2061be1499921517d810d7696be58a16467d4589"
+SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "fbad853a30437653f09001d0de797823dfa32d537163841bec1792c3267f5eab"
+SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "364c47ed22e4268edf238d221c40007d7d8792a66ca325d3937596a9c911ea48"
+SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "4a2368996acd1741200d720674101323fa951dfa580b64c8b2e9fdc09bb22534"
 
-SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "f362cf575fde92f988d5b1fe19fd463a1905d8d2a3844168034df49b1dffb10b"
-SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "776eff6f451845e88224714ee6da7819e34f01b7625bf927394c2b91e5c8243c"
-SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "84bea70d3acb6af04ae4c0f49f904bba4e2644b92c5996aacbafd7610dd0e147"
+SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "3381af9ba39068b9c5e62536125a3abb582aef15932f63cd4f90df0cccb05ac7"
+SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "63a7e6a6c889a3d01bb3c66a3def3e41963511ea52e13906669da5b29b2fd9da"
+SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "916d204d727f485abbadeef914ee881cf61fa3c167741a9ed29c9f4042c99e25"
 
-SRC_URI[cargo-snapshot-s390x.sha256sum] = "f69ea091fa1ee4871a46cb9fa1da5b81fa2980687f3bedbc4677a4a82f8da0c0"
-SRC_URI[rust-std-snapshot-s390x.sha256sum] = "51d1567e1d28e43c2165886f5a4955dcdaa41aa5ddcec5fb08200491fd1f6062"
-SRC_URI[rustc-snapshot-s390x.sha256sum] = "25a047db8ec0627bb7054eafe6edca6ce4c473b30d6766b30cbff1c536d0673b"
+SRC_URI[cargo-snapshot-s390x.sha256sum] = "78d7c2714015ecb7283b417cb265d4d604379d0720aab5f611ca1c113987c283"
+SRC_URI[rust-std-snapshot-s390x.sha256sum] = "04573298d9e815c1e8c47a2f9548ea55d4a2afc538eceaa6a704d44a5e1f7e3e"
+SRC_URI[rustc-snapshot-s390x.sha256sum] = "e786d34e10069dc00774fe53bca092e537e96db6c9d5258a8b0221e4fa5a2caf"
 
-SRC_URI[cargo-snapshot-x86_64.sha256sum] = "a636f83eb2327a66f484b9592ab305c6642df16fc80d0d1cb727e766a60da904"
-SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "c5e2c9b160bd8d99514f13cfbc0e42a722fd9ca14e6aaca4b9b77731a7a48377"
-SRC_URI[rustc-snapshot-x86_64.sha256sum] = "242855e2626860aede6957dc56481cc02acf8cad12fa5bbbcbd93f9c51f0b3ad"
+SRC_URI[cargo-snapshot-x86_64.sha256sum] = "e744dad75de8419e7fea530c29bd56cf931b4d4de62eb4bd442bfac7b54e61ed"
+SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "f4dc8468dfc1dbd86f865b10f06e0e4b4e76f5a3a1cc27317a520ab1660844e9"
+SRC_URI[rustc-snapshot-x86_64.sha256sum] = "e27ec0c6d1a2b2b38e5258904c3741ddb246bff5715aa95e595f818aa77f7bee"
 
-SRC_URI[rust-std-snapshot-i586.sha256sum] = "90eb8e2490283930e682b79842d664d4867414563353d53dafc47eccf44aea17"
+SRC_URI[rust-std-snapshot-i586.sha256sum] = "22cbbf0b22d9b0894cfbd6e1dd6b95b71c7ad02cee4e477d375dcf81af8d1337"
 
-SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "3aee03fa61c28bb242023efb09a22e38a76b075cc72bcad9894560be8b28a927"
+SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "addf0b0beb1966787e599f32849f18c28d5cb65515272b7d9608d4a1dddee2e7"
 
 SRC_URI += " \
     ${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
diff --git a/poky/meta/recipes-devtools/rust/rust-source.inc b/poky/meta/recipes-devtools/rust/rust-source.inc
index 942978e..b25b5c1 100644
--- a/poky/meta/recipes-devtools/rust/rust-source.inc
+++ b/poky/meta/recipes-devtools/rust/rust-source.inc
@@ -6,8 +6,9 @@
             file://getrandom-open64.patch;patchdir=${RUSTSRC} \
             file://0001-Do-not-use-LFS64-on-linux-with-musl.patch;patchdir=${RUSTSRC} \
             file://zlib-off64_t.patch;patchdir=${RUSTSRC} \
+            file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \
 "
-SRC_URI[rust.sha256sum] = "77e0615011f887d9533d5374bf9c15c590c3caf32bbb035b392d1c2ae502a682"
+SRC_URI[rust.sha256sum] = "ce1a115f6aafa912b4622906a92b626354973afa9288e2c7750df4dcf3390fc0"
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
diff --git a/poky/meta/recipes-devtools/rust/rust_1.67.1.bb b/poky/meta/recipes-devtools/rust/rust_1.68.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/rust/rust_1.67.1.bb
rename to poky/meta/recipes-devtools/rust/rust_1.68.2.bb
index f4c6d95..83f9bec 100644
--- a/poky/meta/recipes-devtools/rust/rust_1.67.1.bb
+++ b/poky/meta/recipes-devtools/rust/rust_1.68.2.bb
@@ -200,7 +200,7 @@
 
     # Copy the natively built llvm-config into the target so we can run it. Horrible,
     # but works!
-    if [ ${RUST_ALTERNATE_EXE_PATH_NATIVE} != ${RUST_ALTERNATE_EXE_PATH} ]; then
+    if [ ${RUST_ALTERNATE_EXE_PATH_NATIVE} != ${RUST_ALTERNATE_EXE_PATH} -a ! -f ${RUST_ALTERNATE_EXE_PATH} ]; then
         mkdir -p `dirname ${RUST_ALTERNATE_EXE_PATH}`
         cp ${RUST_ALTERNATE_EXE_PATH_NATIVE} ${RUST_ALTERNATE_EXE_PATH}
         chrpath -d ${RUST_ALTERNATE_EXE_PATH}
@@ -221,17 +221,6 @@
 FILES:${PN}-dev = ""
 
 do_compile () {
-    rust_runx build --stage 2
-}
-
-do_compile:append:class-target () {
-    rust_runx build --stage 2 src/tools/clippy
-    rust_runx build --stage 2 src/tools/rustfmt
-}
-
-do_compile:append:class-nativesdk () {
-    rust_runx build --stage 2 src/tools/clippy
-    rust_runx build --stage 2 src/tools/rustfmt
 }
 
 ALLOW_EMPTY:${PN} = "1"
@@ -256,6 +245,8 @@
 rust_do_install:class-nativesdk() {
     export PSEUDO_UNLOAD=1
     rust_runx install
+    rust_runx install clippy
+    rust_runx install rustfmt
     unset PSEUDO_UNLOAD
 
     install -d ${D}${bindir}
@@ -274,6 +265,8 @@
 rust_do_install:class-target() {
     export PSEUDO_UNLOAD=1
     rust_runx install
+    rust_runx install clippy
+    rust_runx install rustfmt
     unset PSEUDO_UNLOAD
 
     install -d ${D}${bindir}
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.4.bb b/poky/meta/recipes-devtools/vala/vala_0.56.4.bb
deleted file mode 100644
index 32fa81a..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.56.4.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI[sha256sum] = "862c41d938543ed3d8d86c8219a61087797193defee8da0c50caf49993c66b6a"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.6.bb b/poky/meta/recipes-devtools/vala/vala_0.56.6.bb
new file mode 100644
index 0000000..bc5f547
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.56.6.bb
@@ -0,0 +1,3 @@
+require ${BPN}.inc
+
+SRC_URI[sha256sum] = "050e841cbfe2b8e7d0fb350c9506bd7557be1cd86a90c896765f1a09a1870013"
diff --git a/poky/meta/recipes-extended/acpica/acpica_20220331.bb b/poky/meta/recipes-extended/acpica/acpica_20230331.bb
similarity index 91%
rename from poky/meta/recipes-extended/acpica/acpica_20220331.bb
rename to poky/meta/recipes-extended/acpica/acpica_20230331.bb
index 2c554f8..01b8833 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20220331.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20230331.bb
@@ -10,14 +10,14 @@
 SECTION = "console/tools"
 
 LICENSE = "Intel | BSD-3-Clause | GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=41a76b4b1f816240f090cf010fefebf0"
+LIC_FILES_CHKSUM = "file://source/compiler/aslcompile.c;beginline=7;endline=150;md5=79a69059b499bccc70a484459549758f"
 
 COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
 
 DEPENDS = "m4-native flex-native bison-native"
 
 SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
-SRC_URI[sha256sum] = "acaff68b14f1e0804ebbfc4b97268a4ccbefcfa053b02ed9924f2b14d8a98e21"
+SRC_URI[sha256sum] = "0c5d695d605aaa61709f3c63f57a1a99b8902291723998446b0813b57ac310e2"
 
 UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
 
diff --git a/poky/meta/recipes-extended/cpio/cpio-2.13/0001-Wrong-CRC-with-ASCII-CRC-for-large-files.patch b/poky/meta/recipes-extended/cpio/cpio-2.13/0001-Wrong-CRC-with-ASCII-CRC-for-large-files.patch
new file mode 100644
index 0000000..4b96e43
--- /dev/null
+++ b/poky/meta/recipes-extended/cpio/cpio-2.13/0001-Wrong-CRC-with-ASCII-CRC-for-large-files.patch
@@ -0,0 +1,39 @@
+From 77ff5f1be394eb2c786df561ff37dde7f982ec76 Mon Sep 17 00:00:00 2001
+From: Stefano Babic <sbabic@denx.de>
+Date: Fri, 28 Jul 2017 13:20:52 +0200
+Subject: [PATCH] Wrong CRC with ASCII CRC for large files
+
+Due to signedness, the checksum is not computed when filesize is bigger
+a 2GB.
+
+Upstream-Status: Submitted [https://lists.gnu.org/archive/html/bug-cpio/2017-07/msg00004.html]
+Signed-off-by: Stefano Babic <sbabic@denx.de>
+---
+ src/copyout.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/copyout.c b/src/copyout.c
+index 1f0987a..727aeca 100644
+--- a/src/copyout.c
++++ b/src/copyout.c
+@@ -34,13 +34,13 @@
+    compute and return a checksum for them.  */
+ 
+ static uint32_t
+-read_for_checksum (int in_file_des, int file_size, char *file_name)
++read_for_checksum (int in_file_des, unsigned int file_size, char *file_name)
+ {
+   uint32_t crc;
+   char buf[BUFSIZ];
+-  int bytes_left;
+-  int bytes_read;
+-  int i;
++  unsigned int bytes_left;
++  unsigned int bytes_read;
++  unsigned int i;
+ 
+   crc = 0;
+ 
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-extended/cpio/cpio_2.13.bb b/poky/meta/recipes-extended/cpio/cpio_2.13.bb
index 3350ba7..df5e09c 100644
--- a/poky/meta/recipes-extended/cpio/cpio_2.13.bb
+++ b/poky/meta/recipes-extended/cpio/cpio_2.13.bb
@@ -12,6 +12,7 @@
            file://0001-obstack-Fix-a-clang-warning.patch \
            file://CVE-2021-38185.patch \
            file://0001-Use-__alignof__-with-clang.patch \
+           file://0001-Wrong-CRC-with-ASCII-CRC-for-large-files.patch \
            file://run-ptest \
            "
 
diff --git a/poky/meta/recipes-extended/cracklib/cracklib_2.9.10.bb b/poky/meta/recipes-extended/cracklib/cracklib_2.9.11.bb
similarity index 94%
rename from poky/meta/recipes-extended/cracklib/cracklib_2.9.10.bb
rename to poky/meta/recipes-extended/cracklib/cracklib_2.9.11.bb
index 8197cda..34ef2b6 100644
--- a/poky/meta/recipes-extended/cracklib/cracklib_2.9.10.bb
+++ b/poky/meta/recipes-extended/cracklib/cracklib_2.9.11.bb
@@ -13,7 +13,7 @@
            file://0001-packlib.c-support-dictionary-byte-order-dependent.patch \
            "
 
-SRCREV = "e74c539344d024709ee76e2920b0af7f9a5c5556"
+SRCREV = "4cf5125250c6325ef0a2dc085eabff875227edc3"
 S = "${WORKDIR}/git/src"
 
 inherit autotools gettext
diff --git a/poky/meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch b/poky/meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch
deleted file mode 100644
index ffae550..0000000
--- a/poky/meta/recipes-extended/gawk/gawk/remove-sensitive-tests.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 354d24baf7c51977d22ff61ad42e6a2cbd4dc8ac Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Tue, 21 Dec 2021 17:09:12 +0000
-Subject: [PATCH] gawk: remove load-sensitive tests
-
-These tests require an unloaded host as otherwise timing sensitive tests can fail
-https://bugzilla.yoctoproject.org/show_bug.cgi?id=14371
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
----
- test/Maketests | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/test/Maketests b/test/Maketests
-index 3a667af..f117697 100644
---- a/test/Maketests
-+++ b/test/Maketests
-@@ -2137,11 +2137,6 @@ symtab12:
- 	@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
- 	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
- 
--timeout:
--	@echo $@ $(ZOS_FAIL)
--	@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
--	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
--
- typedregex1:
- 	@echo $@
- 	@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
-@@ -2371,11 +2366,6 @@ rwarray:
- 	@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
- 	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
- 
--time:
--	@echo $@
--	@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
--	@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
--
- mpfrbigint:
- 	@echo $@
- 	@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk  -M >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
diff --git a/poky/meta/recipes-extended/gawk/gawk/run-ptest b/poky/meta/recipes-extended/gawk/gawk/run-ptest
index 2675650..f4ef3e7 100644
--- a/poky/meta/recipes-extended/gawk/gawk/run-ptest
+++ b/poky/meta/recipes-extended/gawk/gawk/run-ptest
@@ -3,6 +3,11 @@
 cd test
 for i in `grep -E "^[a-z0-9_-]*:$" Maketests |awk -F: '{print $1}'`; do
   unset LANG
+  grep -q "^$i$" skipped.txt
+  if [ $? -eq 0 ]; then
+    echo "SKIP: $i"
+    continue
+  fi
   srcdir=`pwd` AWKPROG=gawk AWK=gawk CMP=cmp make -f Maketests $i >$i.tmp 2>&1
   if [ -e _$i ]; then
     cat _$i
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.2.1.bb b/poky/meta/recipes-extended/gawk/gawk_5.2.1.bb
index e381bad..768c8eb 100644
--- a/poky/meta/recipes-extended/gawk/gawk_5.2.1.bb
+++ b/poky/meta/recipes-extended/gawk/gawk_5.2.1.bb
@@ -16,7 +16,6 @@
 PACKAGECONFIG[mpfr] = "--with-mpfr,--without-mpfr, mpfr"
 
 SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
-           file://remove-sensitive-tests.patch \
            file://run-ptest \
            "
 
@@ -60,10 +59,29 @@
 	# https://bugzilla.yoctoproject.org/show_bug.cgi?id=14371
 	rm -f ${D}${PTEST_PATH}/test/time.*
 	rm -f ${D}${PTEST_PATH}/test/timeout.*
+	for t in time timeout; do
+		echo $t >> ${D}${PTEST_PATH}/test/skipped.txt
+	done
 }
 
-RDEPENDS:${PN}-ptest += "make"
+do_install_ptest:append:libc-musl() {
+	# Reported  https://lists.gnu.org/archive/html/bug-gawk/2021-02/msg00005.html
+	rm -f ${D}${PTEST_PATH}/test/clos1way6.*
+	# Needs en_US.UTF-8 but then does not work with musl
+	rm -f ${D}${PTEST_PATH}/test/backsmalls1.*
+	# Needs en_US.UTF-8 but then does not work with musl
+	rm -f ${D}${PTEST_PATH}/test/commas.*
+	# The below two need LANG=C inside the make rule for musl
+	rm -f ${D}${PTEST_PATH}/test/rebt8b1.*
+	rm -f ${D}${PTEST_PATH}/test/regx8bit.*
+	for t in clos1way6 backsmalls1 commas rebt8b1 regx8bit; do
+		echo $t >> ${D}${PTEST_PATH}/test/skipped.txt
+	done
+}
 
-RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us locale-base-en-us.iso-8859-1"
+RDEPENDS:${PN}-ptest += "make locale-base-en-us"
+
+RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us.iso-8859-1"
+RDEPENDS:${PN}-ptest:append:libc-musl = " musl-locales"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb b/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
index d0de035..5483ecc 100644
--- a/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
+++ b/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "This is a simple example recipe that cross-compiles a Go program."
+SUMMARY = "This is a simple example recipe that cross-compiles a Go program."
 SECTION = "examples"
 HOMEPAGE = "https://golang.org/"
 
diff --git a/poky/meta/recipes-extended/grep/grep_3.9.bb b/poky/meta/recipes-extended/grep/grep_3.10.bb
similarity index 93%
rename from poky/meta/recipes-extended/grep/grep_3.9.bb
rename to poky/meta/recipes-extended/grep/grep_3.10.bb
index 3c39a5f..33fd64d 100644
--- a/poky/meta/recipes-extended/grep/grep_3.9.bb
+++ b/poky/meta/recipes-extended/grep/grep_3.10.bb
@@ -8,7 +8,7 @@
 
 SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "abcd11409ee23d4caf35feb422e53bbac867014cfeed313bb5f488aca170b599"
+SRC_URI[sha256sum] = "24efa5b595fb5a7100879b51b8868a0bb87a71c183d02c4c602633b88af6855b"
 
 inherit autotools gettext texinfo pkgconfig
 
diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
index f447035..aafede3 100644
--- a/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
+++ b/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
@@ -7,11 +7,7 @@
 
 DEPENDS = "e2fsprogs-native"
 
-PACKAGECONFIG ?= "zlib bz2 xz zstd"
-
-PACKAGECONFIG:append:class-target = "\
-	${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \
-"
+PACKAGECONFIG ?= "zlib bz2 xz zstd ${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)}"
 
 DEPENDS_BZIP2 = "bzip2-replacement-native"
 DEPENDS_BZIP2:class-target = "bzip2"
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.23.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.24.bb
similarity index 95%
rename from poky/meta/recipes-extended/libsolv/libsolv_0.7.23.bb
rename to poky/meta/recipes-extended/libsolv/libsolv_0.7.24.bb
index 1256905..7c8f1fd 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.23.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.24.bb
@@ -12,7 +12,7 @@
            file://0001-utils-Conside-musl-when-wrapping-qsort_r.patch \
 "
 
-SRCREV = "6deaca7cf61ec2b32c4a3b494a751c8d15efbe8b"
+SRCREV = "4d05dca3974156faf2f025ca4a82b68904848307"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-extended/logrotate/logrotate/run-ptest b/poky/meta/recipes-extended/logrotate/logrotate/run-ptest
new file mode 100755
index 0000000..b272def
--- /dev/null
+++ b/poky/meta/recipes-extended/logrotate/logrotate/run-ptest
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+set -u
+
+make -k check
diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb
index 4e4ea10..87c0d9a 100644
--- a/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb
+++ b/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb
@@ -10,7 +10,9 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz"
+SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz \
+           file://run-ptest \
+           "
 
 SRC_URI[sha256sum] = "8fa12015e3b8415c121fc9c0ca53aa872f7b0702f543afda7e32b6c4900f6516"
 
@@ -44,7 +46,7 @@
 # INSTALL=install and BASEDIR=/usr.
 OS_NAME = "Linux"
 
-inherit autotools systemd github-releases
+inherit autotools systemd github-releases ptest
 
 SYSTEMD_SERVICE:${PN} = "\
     ${BPN}.service \
@@ -86,3 +88,27 @@
         install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate
     fi
 }
+
+do_install_ptest() {
+    cp -r ${S}/test/* ${D}${PTEST_PATH}
+    cp ${S}/test-driver ${D}${PTEST_PATH}
+    cp ${B}/test/Makefile ${D}${PTEST_PATH}
+
+    # Do not rebuild Makefile
+    sed -i 's/^Makefile:/_Makefile:/' ${D}${PTEST_PATH}/Makefile
+
+    # Fix top_builddir and top_srcdir
+    sed -e 's/^top_builddir = \(.*\)/top_builddir = ./' \
+        -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \
+        -i ${D}${PTEST_PATH}/Makefile
+
+    # Replace bash with sh
+    sed -i 's,/bin/bash,/bin/sh,' ${D}${PTEST_PATH}/Makefile
+
+    # Replace gawk with awk
+    sed -i 's/gawk/awk/' ${D}${PTEST_PATH}/Makefile
+    ln -s ${sbindir}/logrotate ${D}${PTEST_PATH}
+}
+
+# coreutils is needed to have "readlink"
+RDEPENDS:${PN}-ptest += "make coreutils"
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_6.03.bb b/poky/meta/recipes-extended/man-pages/man-pages_6.04.bb
similarity index 91%
rename from poky/meta/recipes-extended/man-pages/man-pages_6.03.bb
rename to poky/meta/recipes-extended/man-pages/man-pages_6.04.bb
index bc02597..fee57e3 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_6.03.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_6.04.bb
@@ -4,7 +4,7 @@
 HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
 LICENSE = "GPL-2.0-or-later & GPL-2.0-only & GPL-1.0-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause & MIT"
 
-LIC_FILES_CHKSUM = "file://README;md5=0fdad39ebaa973a50785f79f0f59f87f \
+LIC_FILES_CHKSUM = "file://README;md5=5b7d7488344f5af8841dc13aaec49cdf \
                     file://LICENSES/BSD-2-Clause.txt;md5=d0f280d1058e77e66264a9b9e10e6c89 \
                     file://LICENSES/BSD-3-Clause.txt;md5=71f739ef75581cae312e8c711bcdab16 \
                     file://LICENSES/BSD-4-Clause-UC.txt;md5=1da3cf8ad50cd8d5d1de3cfc53196d01 \
@@ -16,7 +16,7 @@
                     "
 SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
 
-SRC_URI[sha256sum] = "76eca045b42a90dd25d094c46d97ac90187bc0f1bfca358bb5dae5c4337acbb0"
+SRC_URI[sha256sum] = "590623b99bf1f8ee958483c35cc0aaef2363e42998c4d927d1f705890d15d51e"
 
 inherit manpages
 
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch b/poky/meta/recipes-extended/pam/libpam/0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch
new file mode 100644
index 0000000..94dcb04
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch
@@ -0,0 +1,108 @@
+From 42404548721c653317c911c83d885e2fc7fbca70 Mon Sep 17 00:00:00 2001
+From: Per Jessen <per@jessen.ch>
+Date: Fri, 22 Apr 2022 18:15:36 +0200
+Subject: [PATCH] pam_motd: do not rely on all filesystems providing a filetype
+
+When using scandir() to look for MOTD files to display, we wrongly
+relied on all filesystems providing a filetype.  This is a fix to divert
+to lstat() when we have no filetype.  To maintain MT safety, it isn't
+possible to use lstat() in the scandir() filter function, so all of the
+filtering has been moved to an additional loop after scanning all the
+motd dirs.
+Also, remove superfluous alphasort from scandir(), we are doing
+a qsort() later.
+
+Resolves: https://github.com/linux-pam/linux-pam/issues/455
+
+Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/commit/42404548721c653317c911c83d885e2fc7fbca70]
+
+Signed-off-by: Per Jessen <per@jessen.ch>
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+---
+ modules/pam_motd/pam_motd.c | 49 ++++++++++++++++++++++++++++++-------
+ 1 file changed, 40 insertions(+), 9 deletions(-)
+
+diff --git a/modules/pam_motd/pam_motd.c b/modules/pam_motd/pam_motd.c
+index 6ac8cba2..5ca486e4 100644
+--- a/modules/pam_motd/pam_motd.c
++++ b/modules/pam_motd/pam_motd.c
+@@ -166,11 +166,6 @@ static int compare_strings(const void *a, const void *b)
+     }
+ }
+ 
+-static int filter_dirents(const struct dirent *d)
+-{
+-    return (d->d_type == DT_REG || d->d_type == DT_LNK);
+-}
+-
+ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
+ 	char **motd_dir_path_split, unsigned int num_motd_dirs, int report_missing)
+ {
+@@ -199,8 +194,7 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
+ 
+     for (i = 0; i < num_motd_dirs; i++) {
+ 	int rv;
+-	rv = scandir(motd_dir_path_split[i], &(dirscans[i]),
+-		filter_dirents, alphasort);
++	rv = scandir(motd_dir_path_split[i], &(dirscans[i]), NULL, NULL);
+ 	if (rv < 0) {
+ 	    if (errno != ENOENT || report_missing) {
+ 		pam_syslog(pamh, LOG_ERR, "error scanning directory %s: %m",
+@@ -215,6 +209,41 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
+     if (dirscans_size_total == 0)
+         goto out;
+ 
++    /* filter out unwanted names, directories, and complement data with lstat() */
++    for (i = 0; i < num_motd_dirs; i++) {
++	struct dirent **d = dirscans[i];
++	for (unsigned int j = 0; j < dirscans_sizes[i]; j++) {
++	    int rc;
++	    char *fullpath;
++	    struct stat s;
++
++	    switch(d[j]->d_type) {    /* the filetype determines how to proceed */
++	    case DT_REG:              /* regular files and     */
++	    case DT_LNK:              /* symlinks              */
++		continue;             /* are good.             */
++	    case DT_UNKNOWN:   /* for file systems that do not provide */
++			       /* a filetype, we use lstat()           */
++		if (join_dir_strings(&fullpath, motd_dir_path_split[i],
++				     d[j]->d_name) <= 0)
++		    break;
++		rc = lstat(fullpath, &s);
++		_pam_drop(fullpath);  /* free the memory alloc'ed by join_dir_strings */
++		if (rc != 0)          /* if the lstat() somehow failed */
++		    break;
++
++		if (S_ISREG(s.st_mode) ||          /* regular files and  */
++		    S_ISLNK(s.st_mode)) continue;  /* symlinks are good  */
++		break;
++	    case DT_DIR:          /* We don't want directories     */
++	    default:              /* nor anything else             */
++		break;
++	    }
++	    _pam_drop(d[j]);  /* free memory                   */
++	    d[j] = NULL;      /* indicate this one was dropped */
++	    dirscans_size_total--;
++	}
++    }
++
+     /* Allocate space for all file names found in the directories, including duplicates. */
+     if ((dirnames_all = calloc(dirscans_size_total, sizeof(*dirnames_all))) == NULL) {
+ 	pam_syslog(pamh, LOG_CRIT, "failed to allocate dirname array");
+@@ -225,8 +254,10 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
+ 	unsigned int j;
+ 
+ 	for (j = 0; j < dirscans_sizes[i]; j++) {
+-	    dirnames_all[i_dirnames] = dirscans[i][j]->d_name;
+-	    i_dirnames++;
++	    if (NULL != dirscans[i][j]) {
++	        dirnames_all[i_dirnames] = dirscans[i][j]->d_name;
++	        i_dirnames++;
++	    }
+ 	}
+     }
+ 
+-- 
+2.39.0
+
diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
index db5410a..59ed174 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
@@ -25,7 +25,7 @@
            file://pam-unix-nullok-secure.patch \
            file://crypt_configure.patch \
            file://pam-volatiles.conf \
-          "
+           "
 
 SRC_URI[md5sum] = "558ff53b0fc0563ca97f79e911822165"
 SRC_URI[sha256sum] = "eff47a4ecd833fbf18de9686632a70ee8d0794b79aecb217ebd0ce11db4cd0db"
diff --git a/poky/meta/recipes-extended/screen/screen/signal-permission.patch b/poky/meta/recipes-extended/screen/screen/signal-permission.patch
new file mode 100644
index 0000000..77dc649
--- /dev/null
+++ b/poky/meta/recipes-extended/screen/screen/signal-permission.patch
@@ -0,0 +1,40 @@
+From e9ad41bfedb4537a6f0de20f00b27c7739f168f7 Mon Sep 17 00:00:00 2001
+From: Alexander Naumov <alexander_naumov@opensuse.org>
+Date: Mon, 30 Jan 2023 17:22:25 +0200
+Subject: fix: missing signal sending permission check on failed query messages
+
+Signed-off-by: Alexander Naumov <alexander_naumov@opensuse.org>
+
+CVE: CVE-2023-24626
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ src/socket.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/socket.c b/src/socket.c
+index 147dc54..54d8cb8 100644
+--- a/socket.c
++++ b/socket.c
+@@ -1285,11 +1285,16 @@ ReceiveMsg()
+           else
+             queryflag = -1;
+ 
+-          Kill(m.m.command.apid,
++          if (CheckPid(m.m.command.apid)) {
++            Msg(0, "Query attempt with bad pid(%d)!", m.m.command.apid);
++          }
++          else {
++            Kill(m.m.command.apid,
+                (queryflag >= 0)
+                    ? SIGCONT
+                    : SIG_BYE); /* Send SIG_BYE if an error happened */
+-          queryflag = -1;
++            queryflag = -1;
++          }
+         }
+         break;
+       case MSG_COMMAND:
+-- 
+cgit v1.1
+
diff --git a/poky/meta/recipes-extended/screen/screen_4.9.0.bb b/poky/meta/recipes-extended/screen/screen_4.9.0.bb
index 77e8000..235cd8c 100644
--- a/poky/meta/recipes-extended/screen/screen_4.9.0.bb
+++ b/poky/meta/recipes-extended/screen/screen_4.9.0.bb
@@ -22,6 +22,7 @@
            file://0001-fix-for-multijob-build.patch \
            file://0001-Remove-more-compatibility-stuff.patch \
            file://0001-configure-Add-needed-system-headers-in-checks.patch \
+           file://signal-permission.patch \
            "
 
 SRC_URI[sha256sum] = "f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4"
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch b/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
new file mode 100644
index 0000000..37ba5f3
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
@@ -0,0 +1,41 @@
+commit 670cae834827a8f794e6f7464fa57790d911b63c
+Author: SoumyaWind <121475834+SoumyaWind@users.noreply.github.com>
+Date:   Tue Dec 27 17:40:17 2022 +0530
+
+    shadow: Fix can not print full login timeout message
+    
+    Login timed out message prints only first few bytes when write is immediately followed by exit.
+    Calling exit from new handler provides enough time to display full message.
+
+Upstream-Status: Accepted [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f7464fa57790d911b63c]
+
+diff --git a/src/login.c b/src/login.c
+index 116e2cb3..c55f4de0 100644
+--- a/src/login.c
++++ b/src/login.c
+@@ -120,6 +120,7 @@ static void get_pam_user (char **ptr_pam_user);
+ 
+ static void init_env (void);
+ static void alarm_handler (int);
++static void exit_handler (int);
+ 
+ /*
+  * usage - print login command usage and exit
+@@ -391,11 +392,16 @@ static void init_env (void)
+ #endif				/* !USE_PAM */
+ }
+ 
++static void exit_handler (unused int sig)
++{
++	_exit (0);
++}
+ 
+ static void alarm_handler (unused int sig)
+ {
+ 	write (STDERR_FILENO, tmsg, strlen (tmsg));
+-	_exit (0);
++	signal(SIGALRM, exit_handler);
++	alarm(2);
+ }
+ 
+ #ifdef USE_PAM
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch b/poky/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch
new file mode 100644
index 0000000..ac08be5
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch
@@ -0,0 +1,65 @@
+From 2eaea70111f65b16d55998386e4ceb4273c19eb4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
+Date: Fri, 31 Mar 2023 14:46:50 +0200
+Subject: [PATCH] Overhaul valid_field()
+
+e5905c4b ("Added control character check") introduced checking for
+control characters but had the logic inverted, so it rejects all
+characters that are not control ones.
+
+Cast the character to `unsigned char` before passing to the character
+checking functions to avoid UB.
+
+Use strpbrk(3) for the illegal character test and return early.
+
+Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/2eaea70111f65b16d55998386e4ceb4273c19eb4]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ lib/fields.c | 24 ++++++++++--------------
+ 1 file changed, 10 insertions(+), 14 deletions(-)
+
+diff --git a/lib/fields.c b/lib/fields.c
+index fb51b582..53929248 100644
+--- a/lib/fields.c
++++ b/lib/fields.c
+@@ -37,26 +37,22 @@ int valid_field (const char *field, const char *illegal)
+ 
+ 	/* For each character of field, search if it appears in the list
+ 	 * of illegal characters. */
++	if (illegal && NULL != strpbrk (field, illegal)) {
++		return -1;
++	}
++
++	/* Search if there are non-printable or control characters */
+ 	for (cp = field; '\0' != *cp; cp++) {
+-		if (strchr (illegal, *cp) != NULL) {
++		unsigned char c = *cp;
++		if (!isprint (c)) {
++			err = 1;
++		}
++		if (iscntrl (c)) {
+ 			err = -1;
+ 			break;
+ 		}
+ 	}
+ 
+-	if (0 == err) {
+-		/* Search if there are non-printable or control characters */
+-		for (cp = field; '\0' != *cp; cp++) {
+-			if (!isprint (*cp)) {
+-				err = 1;
+-			}
+-			if (!iscntrl (*cp)) {
+-				err = -1;
+-				break;
+-			}
+-		}
+-	}
+-
+ 	return err;
+ }
+ 
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-extended/shadow/files/CVE-2023-29383.patch b/poky/meta/recipes-extended/shadow/files/CVE-2023-29383.patch
new file mode 100644
index 0000000..f53341d
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/CVE-2023-29383.patch
@@ -0,0 +1,53 @@
+From e5905c4b84d4fb90aefcd96ee618411ebfac663d Mon Sep 17 00:00:00 2001
+From: tomspiderlabs <128755403+tomspiderlabs@users.noreply.github.com>
+Date: Thu, 23 Mar 2023 23:39:38 +0000
+Subject: [PATCH] Added control character check
+
+Added control character check, returning -1 (to "err") if control characters are present.
+
+CVE: CVE-2023-29383
+Upstream-Status: Backport
+
+Reference to upstream:
+https://github.com/shadow-maint/shadow/commit/e5905c4b84d4fb90aefcd96ee618411ebfac663d
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ lib/fields.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/lib/fields.c b/lib/fields.c
+index 640be931..fb51b582 100644
+--- a/lib/fields.c
++++ b/lib/fields.c
+@@ -21,9 +21,9 @@
+  *
+  * The supplied field is scanned for non-printable and other illegal
+  * characters.
+- *  + -1 is returned if an illegal character is present.
+- *  +  1 is returned if no illegal characters are present, but the field
+- *       contains a non-printable character.
++ *  + -1 is returned if an illegal or control character is present.
++ *  +  1 is returned if no illegal or control characters are present,
++ *       but the field contains a non-printable character.
+  *  +  0 is returned otherwise.
+  */
+ int valid_field (const char *field, const char *illegal)
+@@ -45,10 +45,13 @@ int valid_field (const char *field, const char *illegal)
+ 	}
+ 
+ 	if (0 == err) {
+-		/* Search if there are some non-printable characters */
++		/* Search if there are non-printable or control characters */
+ 		for (cp = field; '\0' != *cp; cp++) {
+ 			if (!isprint (*cp)) {
+ 				err = 1;
++			}
++			if (!iscntrl (*cp)) {
++				err = -1;
+ 				break;
+ 			}
+ 		}
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index 2c70a2d..cf05a3a 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -14,6 +14,9 @@
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://useradd \
+	   file://0001-Fix-can-not-print-full-login.patch \
+           file://CVE-2023-29383.patch \
+           file://0001-Overhaul-valid_field.patch \
            "
 
 SRC_URI:append:class-target = " \
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.15.06.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.15.07.bb
similarity index 94%
rename from poky/meta/recipes-extended/stress-ng/stress-ng_0.15.06.bb
rename to poky/meta/recipes-extended/stress-ng/stress-ng_0.15.07.bb
index 31cf2e8..674c58a 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.15.06.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.15.07.bb
@@ -7,7 +7,7 @@
 
 SRC_URI = "git://github.com/ColinIanKing/stress-ng.git;protocol=https;branch=master \
            "
-SRCREV = "f2a80e4fdba0aaf71d7d3687acb34e3827e68886"
+SRCREV = "83ab1d2d7e39d9accba9d6dd0cc567645bb21d92"
 S = "${WORKDIR}/git"
 
 DEPENDS = "coreutils-native libbsd"
diff --git a/poky/meta/recipes-extended/texinfo/texinfo_7.0.2.bb b/poky/meta/recipes-extended/texinfo/texinfo_7.0.3.bb
similarity index 96%
rename from poky/meta/recipes-extended/texinfo/texinfo_7.0.2.bb
rename to poky/meta/recipes-extended/texinfo/texinfo_7.0.3.bb
index da455df..b149177 100644
--- a/poky/meta/recipes-extended/texinfo/texinfo_7.0.2.bb
+++ b/poky/meta/recipes-extended/texinfo/texinfo_7.0.3.bb
@@ -35,7 +35,7 @@
            ${TARGET_PATCH} \
            "
 
-SRC_URI[sha256sum] = "a9c646bc4f6bb31843f129f8408a3a627334575faf7b22ebc416be5cb1570553"
+SRC_URI[sha256sum] = "3cc5706fb086b895e1dc2b407aade9f95a3a233ff856273e2b659b089f117683"
 
 tex_texinfo = "texmf/tex/texinfo"
 
diff --git a/poky/meta/recipes-extended/xdg-utils/xdg-utils/CVE-2022-4055.patch b/poky/meta/recipes-extended/xdg-utils/xdg-utils/CVE-2022-4055.patch
new file mode 100644
index 0000000..b236030
--- /dev/null
+++ b/poky/meta/recipes-extended/xdg-utils/xdg-utils/CVE-2022-4055.patch
@@ -0,0 +1,145 @@
+xdg-email does not parse mailto uris properly for thunderbird
+
+When using thunderbird as mailto handler xdg-email translates mailto uris into an 'thunderbird -compose' argument. While to, cc and bcc values are properly enclosed in single quotes this is not the case for subject or body. This breaks functionality and allows to use all thunderbird -compose arguments within a mailto uri, e.g.
+
+xdg-email 'mailto:test@example.com?subject=Test,attachment=~/.thunderbird/profiles.ini,message=/home/test/test.txt'
+
+translates into
+
+thunderbird -compose to='test@example.com,',subject=Test,attachment=~/.thunderbird/profiles.ini,message=/home/test/test.txt
+
+with working attachment and message. (And, yes, ~ expands to the home directory.)
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/205]
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+CVE: CVE-2022-4055
+
+
+Index: xdg-utils-1.1.3/scripts/xdg-email.in
+===================================================================
+--- xdg-utils-1.1.3.orig/scripts/xdg-email.in
++++ xdg-utils-1.1.3/scripts/xdg-email.in
+@@ -30,53 +30,6 @@ _USAGE
+ 
+ #@xdg-utils-common@
+ 
+-run_thunderbird()
+-{
+-    local THUNDERBIRD MAILTO NEWMAILTO TO CC BCC SUBJECT BODY
+-    THUNDERBIRD="$1"
+-    MAILTO=$(echo "$2" | sed 's/^mailto://')
+-    echo "$MAILTO" | grep -qs "^?"
+-    if [ "$?" = "0" ] ; then
+-        MAILTO=$(echo "$MAILTO" | sed 's/^?//')
+-    else
+-        MAILTO=$(echo "$MAILTO" | sed 's/^/to=/' | sed 's/?/\&/')
+-    fi
+-
+-    MAILTO=$(echo "$MAILTO" | sed 's/&/\n/g')
+-    TO=$(/bin/echo -e $(echo "$MAILTO" | grep '^to=' | sed 's/^to=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }'))
+-    CC=$(/bin/echo -e $(echo "$MAILTO" | grep '^cc=' | sed 's/^cc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }'))
+-    BCC=$(/bin/echo -e $(echo "$MAILTO" | grep '^bcc=' | sed 's/^bcc=//;s/%\(..\)/\\x\1/g' | awk '{ printf "%s,",$0 }'))
+-    SUBJECT=$(echo "$MAILTO" | grep '^subject=' | tail -n 1)
+-    BODY=$(echo "$MAILTO" | grep '^body=' | tail -n 1)
+-
+-    if [ -z "$TO" ] ; then
+-        NEWMAILTO=
+-    else
+-        NEWMAILTO="to='$TO'"
+-    fi
+-    if [ -n "$CC" ] ; then
+-        NEWMAILTO="${NEWMAILTO},cc='$CC'"
+-    fi
+-    if [ -n "$BCC" ] ; then
+-        NEWMAILTO="${NEWMAILTO},bcc='$BCC'"
+-    fi
+-    if [ -n "$SUBJECT" ] ; then
+-        NEWMAILTO="${NEWMAILTO},$SUBJECT"
+-    fi
+-    if [ -n "$BODY" ] ; then
+-        NEWMAILTO="${NEWMAILTO},$BODY"
+-    fi
+-
+-    NEWMAILTO=$(echo "$NEWMAILTO" | sed 's/^,//')
+-    DEBUG 1 "Running $THUNDERBIRD -compose \"$NEWMAILTO\""
+-    "$THUNDERBIRD" -compose "$NEWMAILTO"
+-    if [ $? -eq 0 ]; then
+-        exit_success
+-    else
+-        exit_failure_operation_failed
+-    fi
+-}
+-
+ open_kde()
+ {
+     if [ -n "$KDE_SESSION_VERSION" ] && [ "$KDE_SESSION_VERSION" -ge 5 ]; then
+@@ -130,15 +83,6 @@ open_kde()
+ 
+ open_gnome3()
+ {
+-    local client
+-    local desktop
+-    desktop=`xdg-mime query default "x-scheme-handler/mailto"`
+-    client=`desktop_file_to_binary "$desktop"`
+-    echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1
+-    if [ $? -eq 0 ] ; then
+-        run_thunderbird "$client" "$1"
+-    fi
+-
+     if gio help open 2>/dev/null 1>&2; then
+         DEBUG 1 "Running gio open \"$1\""
+         gio open "$1"
+@@ -159,13 +103,6 @@ open_gnome3()
+ 
+ open_gnome()
+ {
+-    local client
+-    client=`gconftool-2 --get /desktop/gnome/url-handlers/mailto/command | cut -d ' ' -f 1` || ""
+-    echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1
+-    if [ $? -eq 0 ] ; then
+-        run_thunderbird "$client" "$1"
+-    fi
+-
+     if gio help open 2>/dev/null 1>&2; then
+         DEBUG 1 "Running gio open \"$1\""
+         gio open "$1"
+@@ -231,15 +168,6 @@ open_flatpak()
+ 
+ open_generic()
+ {
+-    local client
+-    local desktop
+-    desktop=`xdg-mime query default "x-scheme-handler/mailto"`
+-    client=`desktop_file_to_binary "$desktop"`
+-    echo $client | grep -E 'thunderbird|icedove' > /dev/null 2>&1
+-    if [ $? -eq 0 ] ; then
+-        run_thunderbird "$client" "$1"
+-    fi
+-
+     xdg-open "$1"
+     local ret=$?
+ 
+@@ -364,21 +292,6 @@ while [ $# -gt 0 ] ; do
+         shift
+         ;;
+ 
+-      --attach)
+-        if [ -z "$1" ] ; then
+-            exit_failure_syntax "file argument missing for --attach option"
+-        fi
+-        check_input_file "$1"
+-        file=`readlink -f "$1"` # Normalize path
+-        if [ -z "$file" ] || [ ! -f "$file" ] ; then
+-            exit_failure_file_missing "file '$1' does not exist"
+-        fi
+-
+-        url_encode "$file"
+-        options="${options}attach=${result}&"
+-        shift
+-        ;;
+-
+       -*)
+         exit_failure_syntax "unexpected option '$parm'"
+         ;;
diff --git a/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb b/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
index 73acf6b..4d93180 100644
--- a/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
+++ b/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
@@ -21,6 +21,7 @@
            file://0001-Reinstate-xdg-terminal.patch \
            file://0001-Don-t-build-the-in-script-manual.patch \
            file://1f199813e0eb0246f63b54e9e154970e609575af.patch \
+           file://CVE-2022-4055.patch \
           "
 
 SRC_URI[md5sum] = "902042508b626027a3709d105f0b63ff"
diff --git a/poky/meta/recipes-extended/xz/xz_5.4.1.bb b/poky/meta/recipes-extended/xz/xz_5.4.2.bb
similarity index 87%
rename from poky/meta/recipes-extended/xz/xz_5.4.1.bb
rename to poky/meta/recipes-extended/xz/xz_5.4.2.bb
index 71bf4b5..87f9602 100644
--- a/poky/meta/recipes-extended/xz/xz_5.4.1.bb
+++ b/poky/meta/recipes-extended/xz/xz_5.4.2.bb
@@ -17,15 +17,15 @@
 LICENSE:${PN}-locale = "GPL-2.0-or-later"
 LICENSE:liblzma = "PD"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8ea84ebe7b93cce676b54355dc6b2c0 \
                     file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.GPLv3;md5=1ebbd3e34237af26da5dc08a4e440464 \
                     file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c \
                     file://lib/getopt.c;endline=23;md5=2069b0ee710572c03bb3114e4532cd84 \
                     "
 
 SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz"
-SRC_URI[sha256sum] = "e4b0f81582efa155ccf27bb88275254a429d44968e488fc94b806f2a61cd3e22"
+SRC_URI[sha256sum] = "87947679abcf77cc509d8d1b474218fd16b72281e2797360e909deaee1ac9d05"
 UPSTREAM_CHECK_REGEX = "xz-(?P<pver>\d+(\.\d+)+)\.tar"
 
 CACHED_CONFIGUREVARS += "gl_cv_posix_shell=/bin/sh"
diff --git a/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb
index 776f609..e712e47 100644
--- a/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -7,7 +7,7 @@
 LICENSE = "LGPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 
-DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native"
+DEPENDS = "glib-2.0 glib-2.0-native gobject-introspection dbus dbus-glib libxml2 intltool-native"
 
 inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache
 
diff --git a/poky/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb b/poky/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb
index 627f389..9c34fb7 100644
--- a/poky/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb
+++ b/poky/meta/recipes-gnome/json-glib/json-glib_1.6.6.bb
@@ -9,7 +9,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 
-DEPENDS = "glib-2.0"
+DEPENDS = "glib-2.0 glib-2.0-native"
 
 GNOMEBASEBUILDCLASS = "meson"
 inherit gnomebase lib_package gobject-introspection gi-docgen gettext ptest-gnome manpages upstream-version-is-even
diff --git a/poky/meta/recipes-gnome/libgudev/libgudev_237.bb b/poky/meta/recipes-gnome/libgudev/libgudev_237.bb
index 9ce43ce..5aa94e5 100644
--- a/poky/meta/recipes-gnome/libgudev/libgudev_237.bb
+++ b/poky/meta/recipes-gnome/libgudev/libgudev_237.bb
@@ -7,7 +7,7 @@
 BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues"
 SRC_URI[archive.sha256sum] = "0d06b21170d20c93e4f0534dbb9b0a8b4f1119ffb00b4031aaeb5b9148b686aa"
 
-DEPENDS = "glib-2.0 udev"
+DEPENDS = "glib-2.0 glib-2.0-native udev"
 
 RCONFLICTS:${PN} = "systemd (<= 220)"
 
diff --git a/poky/meta/recipes-gnome/libhandy/libhandy_1.8.1.bb b/poky/meta/recipes-gnome/libhandy/libhandy_1.8.2.bb
similarity index 95%
rename from poky/meta/recipes-gnome/libhandy/libhandy_1.8.1.bb
rename to poky/meta/recipes-gnome/libhandy/libhandy_1.8.2.bb
index 41c8e9b..e863e8d 100644
--- a/poky/meta/recipes-gnome/libhandy/libhandy_1.8.1.bb
+++ b/poky/meta/recipes-gnome/libhandy/libhandy_1.8.2.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-8"
-SRCREV = "f06c1bfa95a3160575b36315c6d9437376d8af77"
+SRCREV = "48ae7ec0f7f9ee5f666da38b0e39e66874957166"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+))"
diff --git a/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb b/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb
index bbfc217..08e9899 100644
--- a/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb
+++ b/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb
@@ -9,7 +9,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 
-DEPENDS = "dbus glib-2.0 gdk-pixbuf"
+DEPENDS = "glib-2.0 glib-2.0-native gdk-pixbuf"
 
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gtk+3"
diff --git a/poky/meta/recipes-graphics/graphene/graphene_1.10.8.bb b/poky/meta/recipes-graphics/graphene/graphene_1.10.8.bb
index 120ee80..9f5b4d0 100644
--- a/poky/meta/recipes-graphics/graphene/graphene_1.10.8.bb
+++ b/poky/meta/recipes-graphics/graphene/graphene_1.10.8.bb
@@ -11,8 +11,9 @@
 
 # Disable neon support by default on ARM-32 platforms because of the
 # following upstream bug: https://github.com/ebassi/graphene/issues/215
-PACKAGECONFIG ?= "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'neon', '', d)}"
+PACKAGECONFIG ?= "gobject-types ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'neon', '', d)}"
 
+PACKAGECONFIG[gobject-types] = "-Dgobject_types=true,-Dgobject_types=false,glib-2.0"
 PACKAGECONFIG[neon] = "-Darm_neon=true,-Darm_neon=false,"
 
 GIR_MESON_ENABLE_FLAG = 'enabled'
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.1.0.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.1.0.bb
index 4406e15..71c92c6 100644
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.1.0.bb
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.1.0.bb
@@ -11,6 +11,8 @@
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
 SRC_URI[sha256sum] = "f135a61cd464c9ed6bc9823764c188f276c3850a8dc904628de2a87966b7077b"
 
+DEPENDS += "glib-2.0-native"
+
 inherit meson pkgconfig lib_package gtk-doc gobject-introspection github-releases
 
 GIR_MESON_ENABLE_FLAG = 'enabled'
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.3.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.5.bb
similarity index 97%
rename from poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.3.bb
rename to poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.5.bb
index 15054e1..3274475 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.3.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.5.bb
@@ -25,7 +25,7 @@
 
 S = "${WORKDIR}/SDL2-${PV}"
 
-SRC_URI[sha256sum] = "c661205a553b7d252425f4b751ff13209e5e020b876bbfa1598494af61790057"
+SRC_URI[sha256sum] = "ad8fea3da1be64c83c45b1d363a6b4ba8fd60f5bde3b23ec73855709ec5eabf7"
 
 inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_23.0.0.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_23.0.2.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa-gl_23.0.0.bb
rename to poky/meta/recipes-graphics/mesa/mesa-gl_23.0.2.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 8f72f25..babd10a 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -19,7 +19,7 @@
            file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
            "
 
-SRC_URI[sha256sum] = "01f3cff3763f09e0adabcb8011e4aebc6ad48f6a4dd4bae904fe918707d253e4"
+SRC_URI[sha256sum] = "1b7d3399fc6f16f030361f925d33ebc7600cbf98094582f54775b6a1180529e7"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa_23.0.0.bb b/poky/meta/recipes-graphics/mesa/mesa_23.0.2.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa_23.0.0.bb
rename to poky/meta/recipes-graphics/mesa/mesa_23.0.2.bb
diff --git a/poky/meta/recipes-graphics/pango/pango_1.50.13.bb b/poky/meta/recipes-graphics/pango/pango_1.50.14.bb
similarity index 94%
rename from poky/meta/recipes-graphics/pango/pango_1.50.13.bb
rename to poky/meta/recipes-graphics/pango/pango_1.50.14.bb
index e673366..ec7a913 100644
--- a/poky/meta/recipes-graphics/pango/pango_1.50.13.bb
+++ b/poky/meta/recipes-graphics/pango/pango_1.50.14.bb
@@ -24,7 +24,7 @@
            file://0001-Skip-running-test-layout-test.patch \
            "
 
-SRC_URI[archive.sha256sum] = "5cdcf6d761d26a3eb9412b6cb069b32bd1d9b07abf116321167d94c2189299fd"
+SRC_URI[archive.sha256sum] = "1d67f205bfc318c27a29cfdfb6828568df566795df0cb51d2189cde7f2d581e8"
 
 DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
 
diff --git a/poky/meta/recipes-graphics/spir/spirv-headers_1.3.239.0.bb b/poky/meta/recipes-graphics/spir/spirv-headers_1.3.243.0.bb
similarity index 91%
rename from poky/meta/recipes-graphics/spir/spirv-headers_1.3.239.0.bb
rename to poky/meta/recipes-graphics/spir/spirv-headers_1.3.243.0.bb
index afd59cb..4c39b0c 100644
--- a/poky/meta/recipes-graphics/spir/spirv-headers_1.3.239.0.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-headers_1.3.243.0.bb
@@ -7,7 +7,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c938b85bceb8fb26c1a807f28a52ae2d"
 
-SRCREV = "d13b52222c39a7e9a401b44646f0ca3a640fbd47"
+SRCREV = "1feaf4414eb2b353764d01d88f8aa4bcc67b60db"
 SRC_URI = "git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;branch=main"
 PE = "1"
 UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/spir/spirv-tools_1.3.239.0.bb b/poky/meta/recipes-graphics/spir/spirv-tools_1.3.243.0.bb
similarity index 96%
rename from poky/meta/recipes-graphics/spir/spirv-tools_1.3.239.0.bb
rename to poky/meta/recipes-graphics/spir/spirv-tools_1.3.243.0.bb
index 5109bb5..290c53e 100644
--- a/poky/meta/recipes-graphics/spir/spirv-tools_1.3.239.0.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-tools_1.3.243.0.bb
@@ -7,7 +7,7 @@
 LICENSE  = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRCREV = "63de608daeb7e91fbea6d7477a50debe7cac57ce"
+SRCREV = "44d72a9b36702f093dd20815561a56778b2d181e"
 SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;branch=main;protocol=https"
 PE = "1"
 UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
index 05babf4..7e70cf1 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "The Vulkan Samples is collection of resources to help develop optimized Vulkan applications."
+SUMMARY = "The Vulkan Samples is collection of resources to help develop optimized Vulkan applications."
 HOMEPAGE = "https://www.khronos.org/vulkan/"
 BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Samples/issues"
 LICENSE = "Apache-2.0"
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.21.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb
similarity index 96%
rename from poky/meta/recipes-graphics/wayland/wayland_1.21.0.bb
rename to poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb
index ce59e60..26bad58 100644
--- a/poky/meta/recipes-graphics/wayland/wayland_1.21.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland_1.22.0.bb
@@ -16,7 +16,7 @@
            file://run-ptest \
            file://0001-build-Fix-strndup-detection-on-MinGW.patch \
            "
-SRC_URI[sha256sum] = "6dc64d7fc16837a693a51cfdb2e568db538bfdc9f457d4656285bb9594ef11ac"
+SRC_URI[sha256sum] = "1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842"
 
 UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
 UPSTREAM_CHECK_REGEX = "wayland-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.7.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.8.bb
similarity index 91%
rename from poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.7.bb
rename to poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.8.bb
index 212c7d3..19db7ea 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.7.bb
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.8.bb
@@ -3,7 +3,7 @@
 SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
            file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
            "
-SRC_URI[sha256sum] = "d9c60b2dd0ec52326ca6ab20db0e490b1ff4f566f59ca742d6532e92795877bb"
+SRC_URI[sha256sum] = "38aadb735650c8024ee25211c190bf8aad844c5f59632761ab1ef4c4d5aeb152"
 
 # 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.8.bb b/poky/meta/recipes-graphics/xwayland/xwayland_23.1.1.bb
similarity index 95%
rename from poky/meta/recipes-graphics/xwayland/xwayland_22.1.8.bb
rename to poky/meta/recipes-graphics/xwayland/xwayland_23.1.1.bb
index 6919ba4..a065e92 100644
--- a/poky/meta/recipes-graphics/xwayland/xwayland_22.1.8.bb
+++ b/poky/meta/recipes-graphics/xwayland/xwayland_23.1.1.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] = "d11eeee73290b88ea8da42a7d9350dedfaba856ce4ae44e58c045ad9ecaa2f73"
+SRC_URI[sha256sum] = "fb9461f5cb9fea5e07e91882311b0c88b43e8843b017ebac05eb5af69aa34c15"
 
 UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
index c869274..974fcba 100644
--- a/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
+++ b/poky/meta/recipes-kernel/dtc/python3-dtschema-wrapper_2021.10.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Wrapper for tooling for devicetree validation using YAML and jsonschema"
+SUMMARY = "Wrapper for tooling for devicetree validation using YAML and jsonschema"
 HOMEPAGE = "https://yoctoproject.org"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230210.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230404.bb
similarity index 99%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230210.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230404.bb
index bf5d4f5..7412c02 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230210.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230404.bb
@@ -108,7 +108,7 @@
                     file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \
                     file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \
                     file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \
-                    file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \
+                    file://LICENCE.qat_firmware;md5=72de83dfd9b87be7685ed099a39fbea4 \
                     file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \
                     file://LICENSE.qcom_yamato;md5=d0de0eeccaf1843a850bf7a6777eec5c \
                     file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \
@@ -134,7 +134,7 @@
                     "
 # WHENCE checksum is defined separately to ease overriding it if
 # class-devupstream is selected.
-WHENCE_CHKSUM  = "aadb3cccbde1e53fc244a409e9bd5a22"
+WHENCE_CHKSUM  = "0782deea054d4b1b7f10c92c3a245da4"
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
@@ -212,7 +212,7 @@
 # Pin this to the 20220509 release, override this in local.conf
 SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae"
 
-SRC_URI[sha256sum] = "6e3d9e8d52cffc4ec0dbe8533a8445328e0524a20f159a5b61c2706f983ce38a"
+SRC_URI[sha256sum] = "c3f9ad2bb5311cce2490f37a8052f836703d6936aabd840246b6576f1f71f607"
 
 inherit allarch
 
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
new file mode 100644
index 0000000..4cc1519
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
@@ -0,0 +1,36 @@
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3523
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.1 16ce101db85db694a91380aa4c89b25530871d33
+CVE_CHECK_IGNORE += "CVE-2022-3523"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3566
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.1 f49cd2f4d6170d27a2c61f1fecb03d8a70c91f57
+CVE_CHECK_IGNORE += "CVE-2022-3566"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3567
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.1 364f997b5cfe1db0d63a390fe7c801fa2b3115f6
+CVE_CHECK_IGNORE += "CVE-2022-3567"
+
+
+# 2023
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-38457
+# https://nvd.nist.gov/vuln/detail/CVE-2022-40133
+# Both CVE-2022-38457 & CVE-2022-40133 are fixed by the same commit:
+# Introduced in version v4.20 e14c02e6b6990e9f6ee18a214a22ac26bae1b25e
+# Patched in kernel since v6.2 a309c7194e8a2f8bd4539b9449917913f6c2cd50
+# Backported in version v6.1.7 7ac9578e45b20e3f3c0c8eb71f5417a499a7226a
+# See:
+#  * https://www.linuxkernelcves.com/cves/CVE-2022-38457
+#  * https://www.linuxkernelcves.com/cves/CVE-2022-40133
+#  * https://lore.kernel.org/all/CAODzB9q3OBD0k6W2bcWrSZo2jC3EvV0PrLyWmO07rxR4nQgkJA@mail.gmail.com/T/
+CVE_CHECK_IGNORE += "CVE-2022-38457 CVE-2022-40133"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1075
+# Introduced in v4.20 a42055e8d2c30d4decfc13ce943d09c7b9dad221
+# Patched in kernel v6.2 ffe2a22562444720b05bdfeb999c03e810d84cbb
+# Backported in version 6.1.11 37c0cdf7e4919e5f76381ac60817b67bcbdacb50
+# 5.15 still has issue, include/net/tls.h:is_tx_ready() would need patch
+CVE_CHECK_IGNORE += "CVE-2023-1075"
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index b4ea5f7..6764598 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -377,7 +377,7 @@
 FILES:${PN} = "${KERNEL_BUILD_ROOT} ${KERNEL_SRC_PATH}"
 FILES:${PN}-dbg += "${KERNEL_BUILD_ROOT}*/build/scripts/*/.debug/*"
 
-RDEPENDS:${PN} = "bc python3 flex bison ${TCLIBC}-utils"
+RDEPENDS:${PN} = "bc python3-core flex bison ${TCLIBC}-utils"
 # 4.15+ needs these next two RDEPENDS
 RDEPENDS:${PN} += "openssl-dev util-linux"
 # and x86 needs a bit more for 4.15+
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
index 38daab6..2937979 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "e1ca9a177aff19013178aa30a8eccb4d7b2b67d7"
-SRCREV_meta ?= "441f5fe00073620cec471166cf6e94c4ef9c69b2"
+SRCREV_machine ?= "8e0611e36c848a07f9cdd778903c9e51bb90b319"
+SRCREV_meta ?= "e4b95ec17228274acb38bf10061448224df3a312"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.15.103"
+LINUX_VERSION ?= "5.15.108"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
index 5f79bc6..4aaa371 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
@@ -2,6 +2,9 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.1.inc
+
 # Skip processing of this recipe if it is not explicitly specified as the
 # PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
 # to build multiple virtual/kernel providers, e.g. as dependency of
@@ -11,13 +14,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "8d55a90b757757f76ec124508fd2bcace5d276b5"
-SRCREV_meta ?= "1a97a82e62ebf4ef3787768a1f5937e2d2f280ce"
+SRCREV_machine ?= "f974a72071f8b481fc4e38517219bc5c503e14f6"
+SRCREV_meta ?= "36901b5b298e601fe73dd79aaff8b615a7762013"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "6.1.20"
+LINUX_VERSION ?= "6.1.25"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
index eb6af62..c19c289 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
@@ -5,7 +5,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.15.103"
+LINUX_VERSION ?= "5.15.108"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -14,8 +14,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "4ae6c9a73f4e6e356186a541e3fcbea4fa6a09f1"
-SRCREV_meta ?= "441f5fe00073620cec471166cf6e94c4ef9c69b2"
+SRCREV_machine ?= "3d762b85647844790979dd1e17a762003aaa7476"
+SRCREV_meta ?= "e4b95ec17228274acb38bf10061448224df3a312"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
index 58357d0..5046759 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
@@ -5,7 +5,10 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "6.1.20"
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.1.inc
+
+LINUX_VERSION ?= "6.1.25"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -14,8 +17,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_meta ?= "1a97a82e62ebf4ef3787768a1f5937e2d2f280ce"
+SRCREV_machine ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_meta ?= "36901b5b298e601fe73dd79aaff8b615a7762013"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
index 41f20c9..785944c 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
@@ -13,24 +13,24 @@
 KBRANCH:qemux86-64 ?= "v5.15/standard/base"
 KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "21687086c27bb112f19b0aac455d800961c0b830"
-SRCREV_machine:qemuarm64 ?= "7144f86a73fe2ffe4fe57c9e6cf28d8fc8db4b6a"
-SRCREV_machine:qemumips ?= "557c06060cb218ade536fccc66f8f3e755537f31"
-SRCREV_machine:qemuppc ?= "db19dbdcdf51b9d2a071dcf180ba9e20b8286e9b"
-SRCREV_machine:qemuriscv64 ?= "024d08fb706170a9723e9751e505681f9d4c7ab6"
-SRCREV_machine:qemuriscv32 ?= "024d08fb706170a9723e9751e505681f9d4c7ab6"
-SRCREV_machine:qemux86 ?= "024d08fb706170a9723e9751e505681f9d4c7ab6"
-SRCREV_machine:qemux86-64 ?= "024d08fb706170a9723e9751e505681f9d4c7ab6"
-SRCREV_machine:qemumips64 ?= "6f1dbe8c258d49f4dba59827124dfe9aa2c151db"
-SRCREV_machine ?= "024d08fb706170a9723e9751e505681f9d4c7ab6"
-SRCREV_meta ?= "441f5fe00073620cec471166cf6e94c4ef9c69b2"
+SRCREV_machine:qemuarm ?= "80421c525a12141d31bf1592b0d8c176defe3010"
+SRCREV_machine:qemuarm64 ?= "9d140dbc3171bf272f51b524edeeb2f22783aca5"
+SRCREV_machine:qemumips ?= "b29a8fa62d88db512f1fa5d60e430a851d7e3aaf"
+SRCREV_machine:qemuppc ?= "7ee6b7fc4b57933114376cf012218c2ae3d23558"
+SRCREV_machine:qemuriscv64 ?= "e8c818cce43dd720c366d831aeb102c20c237652"
+SRCREV_machine:qemuriscv32 ?= "e8c818cce43dd720c366d831aeb102c20c237652"
+SRCREV_machine:qemux86 ?= "e8c818cce43dd720c366d831aeb102c20c237652"
+SRCREV_machine:qemux86-64 ?= "e8c818cce43dd720c366d831aeb102c20c237652"
+SRCREV_machine:qemumips64 ?= "5c900befc90365f6daa80989e8de0ccc546ff0f5"
+SRCREV_machine ?= "e8c818cce43dd720c366d831aeb102c20c237652"
+SRCREV_meta ?= "e4b95ec17228274acb38bf10061448224df3a312"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "8020ae3c051d1c9ec7b7a872e226f9720547649b"
+SRCREV_machine:class-devupstream ?= "3299fb36854fdc288bddc2c4d265f8a2e5105944"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v5.15/base"
 
@@ -38,7 +38,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.15.103"
+LINUX_VERSION ?= "5.15.108"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
index 6f33032..c2b0e66 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
@@ -2,6 +2,9 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.1.inc
+
 # board specific branches
 KBRANCH:qemuarm  ?= "v6.1/standard/arm-versatile-926ejs"
 KBRANCH:qemuarm64 ?= "v6.1/standard/qemuarm64"
@@ -14,25 +17,25 @@
 KBRANCH:qemuloongarch64  ?= "v6.1/standard/base"
 KBRANCH:qemumips64 ?= "v6.1/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "fad8850ff15dfbf8fb2e7d71583fc54b809d10ef"
-SRCREV_machine:qemuarm64 ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemuloongarch64 ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemumips ?= "dd663b72efce61f63f0b38403254eb52e6ad9a59"
-SRCREV_machine:qemuppc ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemuriscv64 ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemuriscv32 ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemux86 ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemux86-64 ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_machine:qemumips64 ?= "587a945baf13cdca2421e280b7b07dead6ad2a77"
-SRCREV_machine ?= "423e1996694b61fbfc8ec3bf062fc6461d64fde1"
-SRCREV_meta ?= "a8881762b53231bb914329cac3c2cf8db8b6779b"
+SRCREV_machine:qemuarm ?= "0b80e90b38ae1735c7dab701ca3d0b2447376ccc"
+SRCREV_machine:qemuarm64 ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemuloongarch64 ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemumips ?= "db61d7fe3540904fbe77b532ce3e37aeb737524a"
+SRCREV_machine:qemuppc ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemuriscv64 ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemuriscv32 ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemux86 ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemux86-64 ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_machine:qemumips64 ?= "aacc52b6216955723cebb5bc493a4210357b23b2"
+SRCREV_machine ?= "581dc1aa2f340fff2cc010067257185fa2c993f9"
+SRCREV_meta ?= "36901b5b298e601fe73dd79aaff8b615a7762013"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "7eaef76fbc4621ced374c85dbc000dd80dc681d7"
+SRCREV_machine:class-devupstream ?= "f17b0ab65d17988d5e6d6fe22f708ef3721080bf"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v6.1/base"
 
@@ -40,7 +43,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.1.20"
+LINUX_VERSION ?= "6.1.25"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-rpzaenc-stop-accessing-out-of-bounds-frame.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-rpzaenc-stop-accessing-out-of-bounds-frame.patch
deleted file mode 100644
index 2775a81..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-rpzaenc-stop-accessing-out-of-bounds-frame.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 92f9b28ed84a77138105475beba16c146bdaf984 Mon Sep 17 00:00:00 2001
-From: Paul B Mahol <onemda@gmail.com>
-Date: Sat, 12 Nov 2022 16:12:00 +0100
-Subject: [PATCH] avcodec/rpzaenc: stop accessing out of bounds frame
-
-Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/92f9b28ed84a77138105475beba16c146bdaf984]
-
-Signed-off-by: <narpat.mali@windriver.com>
-
----
- libavcodec/rpzaenc.c | 22 +++++++++++++++-------
- 1 file changed, 15 insertions(+), 7 deletions(-)
-
-diff --git a/libavcodec/rpzaenc.c b/libavcodec/rpzaenc.c
-index d710eb4f82..4ced9523e2 100644
---- a/libavcodec/rpzaenc.c
-+++ b/libavcodec/rpzaenc.c
-@@ -205,7 +205,7 @@ static void get_max_component_diff(const BlockInfo *bi, const uint16_t *block_pt
- 
-     // loop thru and compare pixels
-     for (y = 0; y < bi->block_height; y++) {
--        for (x = 0; x < bi->block_width; x++){
-+        for (x = 0; x < bi->block_width; x++) {
-             // TODO:  optimize
-             min_r = FFMIN(R(block_ptr[x]), min_r);
-             min_g = FFMIN(G(block_ptr[x]), min_g);
-@@ -278,7 +278,7 @@ static int leastsquares(const uint16_t *block_ptr, const BlockInfo *bi,
-         return -1;
- 
-     for (i = 0; i < bi->block_height; i++) {
--        for (j = 0; j < bi->block_width; j++){
-+        for (j = 0; j < bi->block_width; j++) {
-             x = GET_CHAN(block_ptr[j], xchannel);
-             y = GET_CHAN(block_ptr[j], ychannel);
-             sumx += x;
-@@ -325,7 +325,7 @@ static int calc_lsq_max_fit_error(const uint16_t *block_ptr, const BlockInfo *bi
-     int max_err = 0;
- 
-     for (i = 0; i < bi->block_height; i++) {
--        for (j = 0; j < bi->block_width; j++){
-+        for (j = 0; j < bi->block_width; j++) {
-             int x_inc, lin_y, lin_x;
-             x = GET_CHAN(block_ptr[j], xchannel);
-             y = GET_CHAN(block_ptr[j], ychannel);
-@@ -420,7 +420,9 @@ static void update_block_in_prev_frame(const uint16_t *src_pixels,
-                                        uint16_t *dest_pixels,
-                                        const BlockInfo *bi, int block_counter)
- {
--    for (int y = 0; y < 4; y++) {
-+    const int y_size = FFMIN(4, bi->image_height - bi->row * 4);
-+
-+    for (int y = 0; y < y_size; y++) {
-         memcpy(dest_pixels, src_pixels, 8);
-         dest_pixels += bi->rowstride;
-         src_pixels += bi->rowstride;
-@@ -730,14 +732,15 @@ post_skip :
- 
-             if (err > s->sixteen_color_thresh) { // DO SIXTEEN COLOR BLOCK
-                 uint16_t *row_ptr;
--                int rgb555;
-+                int y_size, rgb555;
- 
-                 block_offset = get_block_info(&bi, block_counter);
- 
-                 row_ptr = &src_pixels[block_offset];
-+                y_size = FFMIN(4, bi.image_height - bi.row * 4);
- 
--                for (int y = 0; y < 4; y++) {
--                    for (int x = 0; x < 4; x++){
-+                for (int y = 0; y < y_size; y++) {
-+                    for (int x = 0; x < 4; x++) {
-                         rgb555 = row_ptr[x] & ~0x8000;
- 
-                         put_bits(&s->pb, 16, rgb555);
-@@ -745,6 +748,11 @@ post_skip :
-                     row_ptr += bi.rowstride;
-                 }
- 
-+                for (int y = y_size; y < 4; y++) {
-+                    for (int x = 0; x < 4; x++)
-+                        put_bits(&s->pb, 16, 0);
-+                }
-+
-                 block_counter++;
-             } else { // FOUR COLOR BLOCK
-                 block_counter += encode_four_color_block(min_color, max_color,
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-smcenc-stop-accessing-out-of-bounds-frame.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-smcenc-stop-accessing-out-of-bounds-frame.patch
deleted file mode 100644
index 923fc6a..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-smcenc-stop-accessing-out-of-bounds-frame.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 13c13109759090b7f7182480d075e13b36ed8edd Mon Sep 17 00:00:00 2001
-From: Paul B Mahol <onemda@gmail.com>
-Date: Sat, 12 Nov 2022 15:19:21 +0100
-Subject: [PATCH] avcodec/smcenc: stop accessing out of bounds frame
-
-Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/13c13109759090b7f7182480d075e13b36ed8edd]
-
-Signed-off-by: <narpat.mali@windriver.com>
-
----
- libavcodec/smcenc.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/libavcodec/smcenc.c b/libavcodec/smcenc.c
-index f3d26a4e8d..33549b8ab4 100644
---- a/libavcodec/smcenc.c
-+++ b/libavcodec/smcenc.c
-@@ -61,6 +61,7 @@ typedef struct SMCContext {
-         { \
-             row_ptr += stride * 4; \
-             pixel_ptr = row_ptr; \
-+            cur_y += 4; \
-         } \
-     } \
- }
-@@ -117,6 +118,7 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
-     const uint8_t *prev_pixels = (const uint8_t *)s->prev_frame->data[0];
-     uint8_t *distinct_values = s->distinct_values;
-     const uint8_t *pixel_ptr, *row_ptr;
-+    const int height = frame->height;
-     const int width = frame->width;
-     uint8_t block_values[16];
-     int block_counter = 0;
-@@ -125,13 +127,14 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
-     int color_octet_index = 0;
-     int color_table_index;  /* indexes to color pair, quad, or octet tables */
-     int total_blocks;
-+    int cur_y = 0;
- 
-     memset(s->color_pairs, 0, sizeof(s->color_pairs));
-     memset(s->color_quads, 0, sizeof(s->color_quads));
-     memset(s->color_octets, 0, sizeof(s->color_octets));
- 
-     /* Number of 4x4 blocks in frame. */
--    total_blocks = ((frame->width + 3) / 4) * ((frame->height + 3) / 4);
-+    total_blocks = ((width + 3) / 4) * ((height + 3) / 4);
- 
-     pixel_ptr = row_ptr = src_pixels;
- 
-@@ -145,11 +148,13 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
-         int cache_index;
-         int distinct = 0;
-         int blocks = 0;
-+        int frame_y = cur_y;
- 
-         while (prev_pixels && s->key_frame == 0 && block_counter + inter_skip_blocks < total_blocks) {
-+            const int y_size = FFMIN(4, height - cur_y);
-             int compare = 0;
- 
--            for (int y = 0; y < 4; y++) {
-+            for (int y = 0; y < y_size; y++) {
-                 const ptrdiff_t offset = pixel_ptr - src_pixels;
-                 const uint8_t *prev_pixel_ptr = prev_pixels + offset;
- 
-@@ -170,8 +175,10 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
- 
-         pixel_ptr = xpixel_ptr;
-         row_ptr = xrow_ptr;
-+        cur_y = frame_y;
- 
-         while (block_counter > 0 && block_counter + intra_skip_blocks < total_blocks) {
-+            const int y_size = FFMIN(4, height - cur_y);
-             const ptrdiff_t offset = pixel_ptr - src_pixels;
-             const int sy = offset / stride;
-             const int sx = offset % stride;
-@@ -180,7 +187,7 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
-             const uint8_t *old_pixel_ptr = src_pixels + nx + ny * stride;
-             int compare = 0;
- 
--            for (int y = 0; y < 4; y++) {
-+            for (int y = 0; y < y_size; y++) {
-                 compare |= memcmp(old_pixel_ptr + y * stride, pixel_ptr + y * stride, 4);
-                 if (compare)
-                     break;
-@@ -197,9 +204,11 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
- 
-         pixel_ptr = xpixel_ptr;
-         row_ptr = xrow_ptr;
-+        cur_y = frame_y;
- 
-         while (block_counter + coded_blocks < total_blocks && coded_blocks < 256) {
--            for (int y = 0; y < 4; y++)
-+            const int y_size = FFMIN(4, height - cur_y);
-+            for (int y = 0; y < y_size; y++)
-                 memcpy(block_values + y * 4, pixel_ptr + y * stride, 4);
- 
-             qsort(block_values, 16, sizeof(block_values[0]), smc_cmp_values);
-@@ -224,6 +233,7 @@ static void smc_encode_stream(SMCContext *s, const AVFrame *frame,
- 
-         pixel_ptr = xpixel_ptr;
-         row_ptr = xrow_ptr;
-+        cur_y = frame_y;
- 
-         blocks = coded_blocks;
-         distinct = coded_distinct;
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/ffmpeg-fix-vulkan.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/ffmpeg-fix-vulkan.patch
deleted file mode 100644
index 95bd608..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/ffmpeg-fix-vulkan.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Lynne <dev@lynne.ee>
-Date: Sun, 25 Dec 2022 00:03:30 +0000 (+0100)
-Subject: hwcontext_vulkan: remove optional encode/decode extensions from the list
-X-Git-Url: http://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/eb0455d64690
-
-hwcontext_vulkan: remove optional encode/decode extensions from the list
-
-They're not currently used, so they don't need to be there.
-Vulkan stabilized the decode extensions less than a week ago, and their
-name prefixes were changed from EXT to KHR. It's a bit too soon to be
-depending on it, so rather than bumping, just remove these for now.
-
-Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff_plain/eb0455d64690]
----
-
-diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
-index f1db1c7291..2a9b5f4aac 100644
---- a/libavutil/hwcontext_vulkan.c
-+++ b/libavutil/hwcontext_vulkan.c
-@@ -358,14 +358,6 @@ static const VulkanOptExtension optional_device_exts[] = {
-     { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME,            FF_VK_EXT_EXTERNAL_WIN32_MEMORY  },
-     { VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME,         FF_VK_EXT_EXTERNAL_WIN32_SEM     },
- #endif
--
--    /* Video encoding/decoding */
--    { VK_KHR_VIDEO_QUEUE_EXTENSION_NAME,                      FF_VK_EXT_NO_FLAG                },
--    { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME,               FF_VK_EXT_NO_FLAG                },
--    { VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME,               FF_VK_EXT_NO_FLAG                },
--    { VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME,                FF_VK_EXT_NO_FLAG                },
--    { VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME,                FF_VK_EXT_NO_FLAG                },
--    { VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME,                FF_VK_EXT_NO_FLAG                },
- };
- 
- /* Converts return values to strings */
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.2.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
similarity index 94%
rename from poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.2.bb
rename to poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
index cccd9f6..7db43a8 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.2.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
@@ -22,13 +22,9 @@
                     file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
                     file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
-           file://0001-avcodec-rpzaenc-stop-accessing-out-of-bounds-frame.patch \
-           file://0001-avcodec-smcenc-stop-accessing-out-of-bounds-frame.patch \
-           file://ffmpeg-fix-vulkan.patch \
-           "
+SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
 
-SRC_URI[sha256sum] = "619e706d662c8420859832ddc259cd4d4096a48a2ce1eefd052db9e440eef3dc"
+SRC_URI[sha256sum] = "57be87c22d9b49c112b6d24bc67d42508660e6b718b3db89c44e47e289137082"
 
 # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
 ARM_INSTRUCTION_SET:armv4 = "arm"
@@ -130,7 +126,7 @@
 EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
 EXTRA_OECONF:append:mips = " --extra-libs=-latomic --disable-mips32r5 --disable-mipsdsp --disable-mipsdspr2 \
                              --disable-loongson2 --disable-loongson3 --disable-mmi --disable-msa"
-EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic"
+EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic --disable-rvv --disable-asm"
 EXTRA_OECONF:append:armv5 = " --extra-libs=-latomic"
 EXTRA_OECONF:append:powerpc = " --extra-libs=-latomic"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch
new file mode 100644
index 0000000..0a06540
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/ffmpeg-6.0.patch
@@ -0,0 +1,49 @@
+From cde31d23c071ee93fae96331805f696856084254 Mon Sep 17 00:00:00 2001
+From: "U. Artie Eoff" <ullysses.a.eoff@intel.com>
+Date: Mon, 13 Feb 2023 17:02:01 -0500
+Subject: [PATCH] avviddec: change
+ AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADS
+
+This fixes a compile error with recent upstream FFmpeg.
+
+The AV_CODEC_CAP_AUTO_THREADS was deprecated and renamed to
+AV_CODEC_CAP_OTHER_THREADS in FFmpeg upstream commit
+7d09579190de (lavc 58.132.100).
+
+The AV_CODEC_CAP_AUTO_THREADS was finally removed in FFmpeg upstream
+commit 10c9a0874cb3 (lavc 59.63.100).
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3964>
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/cde31d23c071ee93fae96331805f696856084254?merge_request_iid=3964]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ ext/libav/gstavviddec.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
+index 43cea456ae8..6d7c4cd0de8 100644
+--- a/ext/libav/gstavviddec.c
++++ b/ext/libav/gstavviddec.c
+@@ -35,6 +35,10 @@
+ 
+ GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
+ 
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,132,100)
++#define AV_CODEC_CAP_OTHER_THREADS AV_CODEC_CAP_AUTO_THREADS
++#endif
++
+ #define GST_FFMPEG_VIDEO_CODEC_FRAME_FLAG_ALLOCATED (1<<15)
+ 
+ #define MAX_TS_MASK 0xff
+@@ -615,7 +619,7 @@ gst_ffmpegviddec_set_format (GstVideoDecoder * decoder,
+   if (ffmpegdec->max_threads == 0) {
+     /* When thread type is FF_THREAD_FRAME, extra latency is introduced equal
+      * to one frame per thread. We thus need to calculate the thread count ourselves */
+-    if ((!(oclass->in_plugin->capabilities & AV_CODEC_CAP_AUTO_THREADS)) ||
++    if ((!(oclass->in_plugin->capabilities & AV_CODEC_CAP_OTHER_THREADS)) ||
+         (ffmpegdec->context->thread_type & FF_THREAD_FRAME))
+       ffmpegdec->context->thread_count =
+           MIN (gst_ffmpeg_auto_max_threads (), 16);
+-- 
+GitLab
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.bb
index 625a52e..d1dce67 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.0.bb
@@ -11,7 +11,9 @@
                     file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
                     "
 
-SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
+SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
+           file://ffmpeg-6.0.patch \
+          "
 SRC_URI[sha256sum] = "0e48407b4905227a260213dbda84cba3812f0530fc7a75b43829102ef82810f1"
 
 S = "${WORKDIR}/gst-libav-${PV}"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.bb
index b9fc17f..bb6bcb4 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.0.bb
@@ -1,7 +1,7 @@
 require gstreamer1.0-plugins-common.inc
 require gstreamer1.0-plugins-license.inc
 
-DESCRIPTION = "'Bad' GStreamer plugins and helper libraries "
+SUMMARY = "'Bad' GStreamer plugins and helper libraries "
 HOMEPAGE = "https://gstreamer.freedesktop.org/"
 BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.bb
index 01ef63c..91c072a 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.0.bb
@@ -1,6 +1,6 @@
 require gstreamer1.0-plugins-common.inc
 
-DESCRIPTION = "'Base' GStreamer plugins and helper libraries"
+SUMMARY = "'Base' GStreamer plugins and helper libraries"
 HOMEPAGE = "https://gstreamer.freedesktop.org/"
 BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues"
 LICENSE = "LGPL-2.1-or-later"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb
index ef4d82c..67a6a22 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.0.bb
@@ -1,6 +1,6 @@
 require gstreamer1.0-plugins-common.inc
 
-DESCRIPTION = "'Good' GStreamer plugins"
+SUMMARY = "'Good' GStreamer plugins"
 HOMEPAGE = "https://gstreamer.freedesktop.org/"
 BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.bb
index 9c384fe..35baaea 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.0.bb
@@ -1,7 +1,7 @@
 require gstreamer1.0-plugins-common.inc
 require gstreamer1.0-plugins-license.inc
 
-DESCRIPTION = "'Ugly GStreamer plugins"
+SUMMARY = "'Ugly GStreamer plugins"
 HOMEPAGE = "https://gstreamer.freedesktop.org/"
 BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.bb
index 6df84a6..c447f2c 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.0.bb
@@ -24,3 +24,5 @@
 "
 
 inherit meson pkgconfig setuptools3-base upstream-version-is-even
+
+FILES:${PN} += "${libdir}/gstreamer-1.0"
diff --git a/poky/meta/recipes-multimedia/libtiff/files/0001-Revised-handling-of-TIFFTAG_INKNAMES-and-related-TIF.patch b/poky/meta/recipes-multimedia/libtiff/files/0001-Revised-handling-of-TIFFTAG_INKNAMES-and-related-TIF.patch
new file mode 100644
index 0000000..17b37be
--- /dev/null
+++ b/poky/meta/recipes-multimedia/libtiff/files/0001-Revised-handling-of-TIFFTAG_INKNAMES-and-related-TIF.patch
@@ -0,0 +1,267 @@
+From f00484b9519df933723deb38fff943dc291a793d Mon Sep 17 00:00:00 2001
+From: Su_Laus <sulau@freenet.de>
+Date: Tue, 30 Aug 2022 16:56:48 +0200
+Subject: [PATCH] Revised handling of TIFFTAG_INKNAMES and related
+ TIFFTAG_NUMBEROFINKS value
+
+In order to solve the buffer overflow issues related to TIFFTAG_INKNAMES and related TIFFTAG_NUMBEROFINKS value, a revised handling of those tags within LibTiff is proposed:
+
+Behaviour for writing:
+    `NumberOfInks`  MUST fit to the number of inks in the `InkNames` string.
+    `NumberOfInks` is automatically set when `InkNames` is set.
+    If `NumberOfInks` is different to the number of inks within `InkNames` string, that will be corrected and a warning is issued.
+    If `NumberOfInks` is not equal to samplesperpixel only a warning will be issued.
+
+Behaviour for reading:
+    When reading `InkNames` from a TIFF file, the `NumberOfInks` will be set automatically to the number of inks in `InkNames` string.
+    If `NumberOfInks` is different to the number of inks within `InkNames` string, that will be corrected and a warning is issued.
+    If  `NumberOfInks` is not equal to samplesperpixel only a warning will be issued.
+
+This allows the safe use of the NumberOfInks value to read out the InkNames without buffer overflow
+
+This MR will close the following issues:  #149, #150, #152, #168 (to be checked), #250, #269, #398 and #456.
+
+It also fixes the old bug at http://bugzilla.maptools.org/show_bug.cgi?id=2599, for which the limitation of `NumberOfInks = SPP` was introduced, which is in my opinion not necessary and does not solve the general issue.
+
+CVE: CVE-2022-3599 CVE-2022-4645
+Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/e813112545942107551433d61afd16ac094ff246.patch]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+Signed-off-by: Pawan Badganchi <Pawan.Badganchi@kpit.com>
+---
+ libtiff/tif_dir.c      | 119 ++++++++++++++++++++++++-----------------
+ libtiff/tif_dir.h      |   2 +
+ libtiff/tif_dirinfo.c  |   2 +-
+ libtiff/tif_dirwrite.c |   5 ++
+ libtiff/tif_print.c    |   4 ++
+ 5 files changed, 82 insertions(+), 50 deletions(-)
+
+diff --git a/libtiff/tif_dir.c b/libtiff/tif_dir.c
+index 793e8a79..816f7756 100644
+--- a/libtiff/tif_dir.c
++++ b/libtiff/tif_dir.c
+@@ -136,32 +136,30 @@ setExtraSamples(TIFF* tif, va_list ap, uint32_t* v)
+ }
+ 
+ /*
+- * Confirm we have "samplesperpixel" ink names separated by \0.  Returns 
++ * Count ink names separated by \0.  Returns
+  * zero if the ink names are not as expected.
+  */
+-static uint32_t
+-checkInkNamesString(TIFF* tif, uint32_t slen, const char* s)
++static uint16_t
++countInkNamesString(TIFF *tif, uint32_t slen, const char *s)
+ {
+-	TIFFDirectory* td = &tif->tif_dir;
+-	uint16_t i = td->td_samplesperpixel;
++	uint16_t i = 0;
++	const char *ep = s + slen;
++	const char *cp = s;
+ 
+ 	if (slen > 0) {
+-		const char* ep = s+slen;
+-		const char* cp = s;
+-		for (; i > 0; i--) {
++		do {
+ 			for (; cp < ep && *cp != '\0'; cp++) {}
+ 			if (cp >= ep)
+ 				goto bad;
+ 			cp++;				/* skip \0 */
+-		}
+-		return ((uint32_t)(cp - s));
++			i++;
++		} while (cp < ep);
++		return (i);
+ 	}
+ bad:
+ 	TIFFErrorExt(tif->tif_clientdata, "TIFFSetField",
+-	    "%s: Invalid InkNames value; expecting %"PRIu16" names, found %"PRIu16,
+-	    tif->tif_name,
+-	    td->td_samplesperpixel,
+-	    (uint16_t)(td->td_samplesperpixel-i));
++		"%s: Invalid InkNames value; no NUL at given buffer end location %"PRIu32", after %"PRIu16" ink",
++		tif->tif_name, slen, i);
+ 	return (0);
+ }
+ 
+@@ -478,13 +476,61 @@ _TIFFVSetField(TIFF* tif, uint32_t tag, va_list ap)
+ 		_TIFFsetFloatArray(&td->td_refblackwhite, va_arg(ap, float*), 6);
+ 		break;
+ 	case TIFFTAG_INKNAMES:
+-		v = (uint16_t) va_arg(ap, uint16_vap);
+-		s = va_arg(ap, char*);
+-		v = checkInkNamesString(tif, v, s);
+-		status = v > 0;
+-		if( v > 0 ) {
+-			_TIFFsetNString(&td->td_inknames, s, v);
+-			td->td_inknameslen = v;
++		{
++			v = (uint16_t) va_arg(ap, uint16_vap);
++			s = va_arg(ap, char*);
++			uint16_t ninksinstring;
++			ninksinstring = countInkNamesString(tif, v, s);
++			status = ninksinstring > 0;
++			if(ninksinstring > 0 ) {
++				_TIFFsetNString(&td->td_inknames, s, v);
++				td->td_inknameslen = v;
++				/* Set NumberOfInks to the value ninksinstring */
++				if (TIFFFieldSet(tif, FIELD_NUMBEROFINKS))
++				{
++					if (td->td_numberofinks != ninksinstring) {
++						TIFFErrorExt(tif->tif_clientdata, module,
++							"Warning %s; Tag %s:\n  Value %"PRIu16" of NumberOfInks is different from the number of inks %"PRIu16".\n  -> NumberOfInks value adapted to %"PRIu16"",
++							tif->tif_name, fip->field_name, td->td_numberofinks, ninksinstring, ninksinstring);
++						td->td_numberofinks = ninksinstring;
++					}
++				} else {
++					td->td_numberofinks = ninksinstring;
++					TIFFSetFieldBit(tif, FIELD_NUMBEROFINKS);
++				}
++				if (TIFFFieldSet(tif, FIELD_SAMPLESPERPIXEL))
++				{
++					if (td->td_numberofinks != td->td_samplesperpixel) {
++						TIFFErrorExt(tif->tif_clientdata, module,
++							"Warning %s; Tag %s:\n  Value %"PRIu16" of NumberOfInks is different from the SamplesPerPixel value %"PRIu16"",
++							tif->tif_name, fip->field_name, td->td_numberofinks, td->td_samplesperpixel);
++					}
++				}
++			}
++		}
++		break;
++	case TIFFTAG_NUMBEROFINKS:
++		v = (uint16_t)va_arg(ap, uint16_vap);
++		/* If InkNames already set also NumberOfInks is set accordingly and should be equal */
++		if (TIFFFieldSet(tif, FIELD_INKNAMES))
++		{
++			if (v != td->td_numberofinks) {
++				TIFFErrorExt(tif->tif_clientdata, module,
++					"Error %s; Tag %s:\n  It is not possible to set the value %"PRIu32" for NumberOfInks\n  which is different from the number of inks in the InkNames tag (%"PRIu16")",
++					tif->tif_name, fip->field_name, v, td->td_numberofinks);
++				/* Do not set / overwrite number of inks already set by InkNames case accordingly. */
++				status = 0;
++			}
++		} else {
++			td->td_numberofinks = (uint16_t)v;
++			if (TIFFFieldSet(tif, FIELD_SAMPLESPERPIXEL))
++			{
++				if (td->td_numberofinks != td->td_samplesperpixel) {
++					TIFFErrorExt(tif->tif_clientdata, module,
++						"Warning %s; Tag %s:\n  Value %"PRIu32" of NumberOfInks is different from the SamplesPerPixel value %"PRIu16"",
++						tif->tif_name, fip->field_name, v, td->td_samplesperpixel);
++				}
++			}
+ 		}
+ 		break;
+ 	case TIFFTAG_PERSAMPLE:
+@@ -986,34 +1032,6 @@ _TIFFVGetField(TIFF* tif, uint32_t tag, va_list ap)
+ 	if (fip->field_bit == FIELD_CUSTOM) {
+ 		standard_tag = 0;
+ 	}
+-	
+-        if( standard_tag == TIFFTAG_NUMBEROFINKS )
+-        {
+-            int i;
+-            for (i = 0; i < td->td_customValueCount; i++) {
+-                uint16_t val;
+-                TIFFTagValue *tv = td->td_customValues + i;
+-                if (tv->info->field_tag != standard_tag)
+-                    continue;
+-                if( tv->value == NULL )
+-                    return 0;
+-                val = *(uint16_t *)tv->value;
+-                /* Truncate to SamplesPerPixel, since the */
+-                /* setting code for INKNAMES assume that there are SamplesPerPixel */
+-                /* inknames. */
+-                /* Fixes http://bugzilla.maptools.org/show_bug.cgi?id=2599 */
+-                if( val > td->td_samplesperpixel )
+-                {
+-                    TIFFWarningExt(tif->tif_clientdata,"_TIFFVGetField",
+-                                   "Truncating NumberOfInks from %u to %"PRIu16,
+-                                   val, td->td_samplesperpixel);
+-                    val = td->td_samplesperpixel;
+-                }
+-                *va_arg(ap, uint16_t*) = val;
+-                return 1;
+-            }
+-            return 0;
+-        }
+ 
+ 	switch (standard_tag) {
+ 		case TIFFTAG_SUBFILETYPE:
+@@ -1195,6 +1213,9 @@ _TIFFVGetField(TIFF* tif, uint32_t tag, va_list ap)
+ 		case TIFFTAG_INKNAMES:
+ 			*va_arg(ap, const char**) = td->td_inknames;
+ 			break;
++		case TIFFTAG_NUMBEROFINKS:
++			*va_arg(ap, uint16_t *) = td->td_numberofinks;
++			break;
+ 		default:
+ 			{
+ 				int i;
+diff --git a/libtiff/tif_dir.h b/libtiff/tif_dir.h
+index 09065648..0c251c9e 100644
+--- a/libtiff/tif_dir.h
++++ b/libtiff/tif_dir.h
+@@ -117,6 +117,7 @@ typedef struct {
+ 	/* CMYK parameters */
+ 	int     td_inknameslen;
+ 	char*   td_inknames;
++	uint16_t td_numberofinks;                 /* number of inks in InkNames string */
+ 
+ 	int     td_customValueCount;
+         TIFFTagValue *td_customValues;
+@@ -174,6 +175,7 @@ typedef struct {
+ #define FIELD_TRANSFERFUNCTION         44
+ #define FIELD_INKNAMES                 46
+ #define FIELD_SUBIFD                   49
++#define FIELD_NUMBEROFINKS             50
+ /*      FIELD_CUSTOM (see tiffio.h)    65 */
+ /* end of support for well-known tags; codec-private tags follow */
+ #define FIELD_CODEC                    66  /* base of codec-private tags */
+diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c
+index 3371cb5c..3b4bcd33 100644
+--- a/libtiff/tif_dirinfo.c
++++ b/libtiff/tif_dirinfo.c
+@@ -114,7 +114,7 @@ tiffFields[] = {
+ 	{ TIFFTAG_SUBIFD, -1, -1, TIFF_IFD8, 0, TIFF_SETGET_C16_IFD8, TIFF_SETGET_UNDEFINED, FIELD_SUBIFD, 1, 1, "SubIFD", (TIFFFieldArray*) &tiffFieldArray },
+ 	{ TIFFTAG_INKSET, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "InkSet", NULL },
+ 	{ TIFFTAG_INKNAMES, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_C16_ASCII, TIFF_SETGET_UNDEFINED, FIELD_INKNAMES, 1, 1, "InkNames", NULL },
+-	{ TIFFTAG_NUMBEROFINKS, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "NumberOfInks", NULL },
++	{ TIFFTAG_NUMBEROFINKS, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UNDEFINED, FIELD_NUMBEROFINKS, 1, 0, "NumberOfInks", NULL },
+ 	{ TIFFTAG_DOTRANGE, 2, 2, TIFF_SHORT, 0, TIFF_SETGET_UINT16_PAIR, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "DotRange", NULL },
+ 	{ TIFFTAG_TARGETPRINTER, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "TargetPrinter", NULL },
+ 	{ TIFFTAG_EXTRASAMPLES, -1, -1, TIFF_SHORT, 0, TIFF_SETGET_C16_UINT16, TIFF_SETGET_UNDEFINED, FIELD_EXTRASAMPLES, 0, 1, "ExtraSamples", NULL },
+diff --git a/libtiff/tif_dirwrite.c b/libtiff/tif_dirwrite.c
+index 6c86fdca..062e4610 100644
+--- a/libtiff/tif_dirwrite.c
++++ b/libtiff/tif_dirwrite.c
+@@ -626,6 +626,11 @@ TIFFWriteDirectorySec(TIFF* tif, int isimage, int imagedone, uint64_t* pdiroff)
+ 				if (!TIFFWriteDirectoryTagAscii(tif,&ndir,dir,TIFFTAG_INKNAMES,tif->tif_dir.td_inknameslen,tif->tif_dir.td_inknames))
+ 					goto bad;
+ 			}
++			if (TIFFFieldSet(tif, FIELD_NUMBEROFINKS))
++			{
++				if (!TIFFWriteDirectoryTagShort(tif, &ndir, dir, TIFFTAG_NUMBEROFINKS, tif->tif_dir.td_numberofinks))
++					goto bad;
++			}
+ 			if (TIFFFieldSet(tif,FIELD_SUBIFD))
+ 			{
+ 				if (!TIFFWriteDirectoryTagSubifd(tif,&ndir,dir))
+diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c
+index 16ce5780..a91b9e7b 100644
+--- a/libtiff/tif_print.c
++++ b/libtiff/tif_print.c
+@@ -397,6 +397,10 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
+ 		}
+                 fputs("\n", fd);
+ 	}
++	if (TIFFFieldSet(tif, FIELD_NUMBEROFINKS)) {
++		fprintf(fd, "  NumberOfInks: %d\n",
++			td->td_numberofinks);
++	}
+ 	if (TIFFFieldSet(tif,FIELD_THRESHHOLDING)) {
+ 		fprintf(fd, "  Thresholding: ");
+ 		switch (td->td_threshholding) {
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.2.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb
similarity index 96%
rename from poky/meta/recipes-multimedia/mpg123/mpg123_1.31.2.bb
rename to poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb
index 0a2d870..90f2858 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.2.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.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] = "b17f22905e31f43b6b401dfdf6a71ed11bb7d056f68db449d70b9f9ae839c7de"
+SRC_URI[sha256sum] = "1ca77d3a69a5ff845b7a0536f783fee554e1041139a6b978f6afe14f5814ad1a"
 
 UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb
index e529208..36c6233 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb
@@ -38,6 +38,8 @@
           libnotify \
           gstreamer1.0 \
           gstreamer1.0-plugins-base \
+          glib-2.0-native \
+          gettext-native \
           "
 
 PACKAGECONFIG_SOUP ?= "soup3"
@@ -70,20 +72,11 @@
 PACKAGECONFIG[soup3] = ",,libsoup,,,soup2"
 PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd"
 
-# webkitgtk is full of /usr/bin/env python, particular for generating docs
-do_configure[postfuncs] += "setup_python_link"
-setup_python_link() {
-	if [ ! -e ${STAGING_BINDIR_NATIVE}/python ]; then
-		ln -s `which python3` ${STAGING_BINDIR_NATIVE}/python
-	fi
-}
-
 EXTRA_OECMAKE = " \
 		-DPORT=GTK \
 		${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
 		${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \
 		-DENABLE_MINIBROWSER=ON \
-                -DPYTHON_EXECUTABLE=`which python3` \
                 -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
                 -DENABLE_GAMEPAD=OFF \
 		"
diff --git a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.14.0.bb b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.14.2.bb
similarity index 90%
rename from poky/meta/recipes-sato/webkit/wpebackend-fdo_1.14.0.bb
rename to poky/meta/recipes-sato/webkit/wpebackend-fdo_1.14.2.bb
index 7082010..b3d7b22 100644
--- a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.14.0.bb
+++ b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.14.2.bb
@@ -13,7 +13,7 @@
 REQUIRED_DISTRO_FEATURES = "opengl"
 
 SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "e75b0cb2c7145448416e8696013d8883f675c66c11ed750e06865efec5809155"
+SRC_URI[sha256sum] = "93c9766ae9864eeaeaee2b0a74f22cbca08df42c1a1bdb55b086f2528e380d38"
 
 # Especially helps compiling with clang which enable this as error when
 # using c++11
diff --git a/poky/meta/recipes-support/apr/apr-util/0001-test_transformation-Check-if-transform-is-supported-.patch b/poky/meta/recipes-support/apr/apr-util/0001-test_transformation-Check-if-transform-is-supported-.patch
new file mode 100644
index 0000000..261b787
--- /dev/null
+++ b/poky/meta/recipes-support/apr/apr-util/0001-test_transformation-Check-if-transform-is-supported-.patch
@@ -0,0 +1,37 @@
+From 3a97f58cfb40fc1911bbfd067e8457a472613d75 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 18 Apr 2023 22:58:00 -0700
+Subject: [PATCH] test_transformation: Check if transform is supported before
+ using it
+
+This helps in excluding these tests on systems where these are not
+available e.g. musl
+
+Upstream-Status: Submitted [https://bz.apache.org/bugzilla/show_bug.cgi?id=66570]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ test/testxlate.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/test/testxlate.c b/test/testxlate.c
+index 6981eff..de00fa4 100644
+--- a/test/testxlate.c
++++ b/test/testxlate.c
+@@ -116,8 +116,12 @@ static void test_transformation(abts_case *tc, void *data)
+     }
+ 
+     /* 4. Transformation using charset aliases */
+-    one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p);
+-    one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p);
++    if (is_transform_supported(tc, "UTF-8", "UTF-7", p)) {
++        one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p);
++    }
++    if (is_transform_supported(tc, "UTF-7", "UTF-8", p)) {
++        one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p);
++    }
+ }
+ 
+ #endif /* APR_HAS_XLATE */
+-- 
+2.40.0
+
diff --git a/poky/meta/recipes-support/apr/apr-util_1.6.3.bb b/poky/meta/recipes-support/apr/apr-util_1.6.3.bb
index 7c6fcc6..1371e26 100644
--- a/poky/meta/recipes-support/apr/apr-util_1.6.3.bb
+++ b/poky/meta/recipes-support/apr/apr-util_1.6.3.bb
@@ -12,6 +12,7 @@
 SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \
            file://configfix.patch \
            file://configure_fixes.patch \
+	   file://0001-test_transformation-Check-if-transform-is-supported-.patch \
            file://run-ptest \
            "
 
diff --git a/poky/meta/recipes-support/apr/apr_1.7.2.bb b/poky/meta/recipes-support/apr/apr_1.7.3.bb
similarity index 97%
rename from poky/meta/recipes-support/apr/apr_1.7.2.bb
rename to poky/meta/recipes-support/apr/apr_1.7.3.bb
index c9059c9..9a93fe0 100644
--- a/poky/meta/recipes-support/apr/apr_1.7.2.bb
+++ b/poky/meta/recipes-support/apr/apr_1.7.3.bb
@@ -24,7 +24,7 @@
            file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \
            "
 
-SRC_URI[sha256sum] = "75e77cc86776c030c0a5c408dfbd0bf2a0b75eed5351e52d5439fa1e5509a43e"
+SRC_URI[sha256sum] = "455e218c060c474f2c834816873f6ed69c0cf0e4cfee54282cc93e8e989ee59e"
 
 inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script
 
diff --git a/poky/meta/recipes-support/atk/at-spi2-core_2.46.0.bb b/poky/meta/recipes-support/atk/at-spi2-core_2.48.0.bb
similarity index 70%
rename from poky/meta/recipes-support/atk/at-spi2-core_2.46.0.bb
rename to poky/meta/recipes-support/atk/at-spi2-core_2.48.0.bb
index d9161e1..e9648ff 100644
--- a/poky/meta/recipes-support/atk/at-spi2-core_2.46.0.bb
+++ b/poky/meta/recipes-support/atk/at-spi2-core_2.48.0.bb
@@ -11,29 +11,32 @@
 
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "aa0c86c79f7a8d67bae49a5b7a5ab08430c608cffe6e33bf47a72f41ab03c3d0"
+SRC_URI[sha256sum] = "905a5b6f1790b68ee803bffa9f5fab4ceb591fb4fae0b2f8c612c54f1d4e8a30"
 
-DEPENDS = "dbus glib-2.0 libxml2"
+DEPENDS = " \
+	dbus \
+	glib-2.0 \
+	glib-2.0-native \
+	libxml2 \
+	${@'python3-sphinx-native' if d.getVar('GIDOCGEN_ENABLED') == 'True' else ''} \
+"
 
 # For backwards compatibility
 PROVIDES += "atk at-spi2-atk"
 RPROVIDES:${PN} += "atk at-spi2-atk"
 
-inherit meson gtk-doc gettext systemd pkgconfig upstream-version-is-even gobject-introspection
+inherit meson gi-docgen gettext systemd pkgconfig upstream-version-is-even gobject-introspection
 
 EXTRA_OEMESON = " -Dsystemd_user_dir=${systemd_user_unitdir} \
                   -Ddbus_daemon=${bindir}/dbus-daemon"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "-Dx11=yes,-Dx11=no,virtual/libx11 libxi libxtst"
+PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libxi libxtst"
 
-GTKDOC_MESON_OPTION = "docs"
-# The documentation doesn't build if X11 is disabled. Appears to be fixed post 2.46.0.
-EXTRA_OEMESON += "${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "-Ddocs=false", d)}"
-
+GIDOCGEN_MESON_OPTION = "docs"
 GIR_MESON_OPTION = 'introspection'
-GIR_MESON_ENABLE_FLAG = 'yes'
-GIR_MESON_DISABLE_FLAG = 'no'
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
 
 FILES:${PN} += "${libdir}/gnome-settings-daemon-3.0/gtk-modules/at-spi2-atk.desktop \
                 ${libdir}/gtk-2.0/modules/libatk-bridge.so \
diff --git a/poky/meta/recipes-support/attr/acl_2.3.1.bb b/poky/meta/recipes-support/attr/acl_2.3.1.bb
index 9cb19ed..9badd33 100644
--- a/poky/meta/recipes-support/attr/acl_2.3.1.bb
+++ b/poky/meta/recipes-support/attr/acl_2.3.1.bb
@@ -61,6 +61,10 @@
         rm ${D}${PTEST_PATH}/.libs/libtestlookup.lai
 }
 
+do_install_ptest:append:libc-musl() {
+        sed -i -e '/test\/misc.test/d' ${D}${PTEST_PATH}/Makefile
+}
+
 RDEPENDS:${PN}-ptest = "acl \
                         bash \
                         coreutils \
diff --git a/poky/meta/recipes-support/attr/attr.inc b/poky/meta/recipes-support/attr/attr.inc
index ab62563..8ba865a 100644
--- a/poky/meta/recipes-support/attr/attr.inc
+++ b/poky/meta/recipes-support/attr/attr.inc
@@ -48,6 +48,10 @@
 	cp -rf ${S}/test/ ${D}${PTEST_PATH}
 }
 
+do_install_ptest:append:libc-musl() {
+        sed -i -e 's|f: Operation n|f: N|g' ${D}${PTEST_PATH}/test/attr.test
+}
+
 RDEPENDS:${PN}-ptest = "attr \
                         bash \
                         coreutils \
diff --git a/poky/meta/recipes-support/boost/boost-1.81.0.inc b/poky/meta/recipes-support/boost/boost-1.82.0.inc
similarity index 90%
rename from poky/meta/recipes-support/boost/boost-1.81.0.inc
rename to poky/meta/recipes-support/boost/boost-1.82.0.inc
index 291796c..39d3c9c 100644
--- a/poky/meta/recipes-support/boost/boost-1.81.0.inc
+++ b/poky/meta/recipes-support/boost/boost-1.82.0.inc
@@ -12,7 +12,7 @@
 BOOST_P = "boost_${BOOST_VER}"
 
 SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2"
-SRC_URI[sha256sum] = "71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa"
+SRC_URI[sha256sum] = "a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"
 
 UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
 UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
diff --git a/poky/meta/recipes-support/boost/boost-build-native_1.81.0.bb b/poky/meta/recipes-support/boost/boost-build-native_1.82.0.bb
similarity index 92%
rename from poky/meta/recipes-support/boost/boost-build-native_1.81.0.bb
rename to poky/meta/recipes-support/boost/boost-build-native_1.82.0.bb
index d01c765..dcfb65e 100644
--- a/poky/meta/recipes-support/boost/boost-build-native_1.81.0.bb
+++ b/poky/meta/recipes-support/boost/boost-build-native_1.82.0.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
 
 SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master"
-SRCREV = "0271fafc1141c182d4aaa8db8b1c08a109d04c87"
+SRCREV = "9f488e003a568dffe0caed05d86ed6f1a8f8c7f3"
 PE = "1"
 
 UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))"
diff --git a/poky/meta/recipes-support/boost/boost_1.81.0.bb b/poky/meta/recipes-support/boost/boost_1.82.0.bb
similarity index 100%
rename from poky/meta/recipes-support/boost/boost_1.81.0.bb
rename to poky/meta/recipes-support/boost/boost_1.82.0.bb
diff --git a/poky/meta/recipes-support/libcap/libcap_2.67.bb b/poky/meta/recipes-support/libcap/libcap_2.68.bb
similarity index 96%
rename from poky/meta/recipes-support/libcap/libcap_2.67.bb
rename to poky/meta/recipes-support/libcap/libcap_2.68.bb
index 008183d..a302c5a 100644
--- a/poky/meta/recipes-support/libcap/libcap_2.67.bb
+++ b/poky/meta/recipes-support/libcap/libcap_2.68.bb
@@ -19,7 +19,7 @@
 SRC_URI:append:class-nativesdk = " \
            file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \
            "
-SRC_URI[sha256sum] = "ce9b22fdc271beb6dae7543da5f74cf24cb82e6848cfd088a5a069dec5ea5198"
+SRC_URI[sha256sum] = "90be3b6d41be5f81ae4b03ec76012b0d27c829293684f6c05b65d5f9cce724b2"
 
 UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
 
diff --git a/poky/meta/recipes-support/libgit2/libgit2_1.6.3.bb b/poky/meta/recipes-support/libgit2/libgit2_1.6.4.bb
similarity index 83%
rename from poky/meta/recipes-support/libgit2/libgit2_1.6.3.bb
rename to poky/meta/recipes-support/libgit2/libgit2_1.6.4.bb
index 554e18e..ffe00d8 100644
--- a/poky/meta/recipes-support/libgit2/libgit2_1.6.3.bb
+++ b/poky/meta/recipes-support/libgit2/libgit2_1.6.4.bb
@@ -6,16 +6,15 @@
 DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2"
 
 SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v1.6;protocol=https"
-SRCREV = "c058aa87dce4c67a3b86b3349beebd64b7bedcd3"
+SRCREV = "e6325351ceee58cf56f58bdce61b38907805544f"
 
 S = "${WORKDIR}/git"
 
 inherit cmake
 
 EXTRA_OECMAKE = "\
-    -DBUILD_CLAR=OFF \
+    -DBUILD_TESTS=OFF \
     -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-    -DLIB_INSTALL_DIR=${libdir} \
     -DREGEX_BACKEND='pcre2' \
 "
 
diff --git a/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.76.bb b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.76.bb
index 7bd66f6..9dff970 100644
--- a/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.76.bb
+++ b/poky/meta/recipes-support/libmicrohttpd/libmicrohttpd_0.9.76.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
+SUMMARY = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
 HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
 LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=57d09285feac8a64efa878e692b14f36"
diff --git a/poky/meta/recipes-support/libsoup/libsoup_3.2.2.bb b/poky/meta/recipes-support/libsoup/libsoup_3.4.0.bb
similarity index 94%
rename from poky/meta/recipes-support/libsoup/libsoup_3.2.2.bb
rename to poky/meta/recipes-support/libsoup/libsoup_3.4.0.bb
index e16cd17..d35e4f2 100644
--- a/poky/meta/recipes-support/libsoup/libsoup_3.2.2.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup_3.4.0.bb
@@ -12,7 +12,7 @@
 SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
 
 SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
-SRC_URI[sha256sum] = "83673c685b910fb7d39f1f28eee5afbefb71c05798fc350ac3bf1b885e1efaa1"
+SRC_URI[sha256sum] = "23efff6ac70f2c1e873507dac52649eec032c1597a4ae951762ce3123789acc9"
 
 PROVIDES = "libsoup-3.0"
 CVE_PRODUCT = "libsoup"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.41.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.41.2.bb
similarity index 86%
rename from poky/meta/recipes-support/sqlite/sqlite3_3.41.0.bb
rename to poky/meta/recipes-support/sqlite/sqlite3_3.41.2.bb
index f17c15e..b09e8e7 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.41.0.bb
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.41.2.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
 
 SRC_URI = "http://www.sqlite.org/2023/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "49f77ac53fd9aa5d7395f2499cb816410e5621984a121b858ccca05310b05c70"
+SRC_URI[sha256sum] = "e98c100dd1da4e30fa460761dab7c0b91a50b785e167f8c57acc46514fae9499"
 
 # -19242 is only an issue in specific development branch commits
 CVE_CHECK_IGNORE += "CVE-2019-19242"
diff --git a/poky/meta/recipes-support/vte/vte_0.72.0.bb b/poky/meta/recipes-support/vte/vte_0.72.0.bb
index c08ac87..5eaff99 100644
--- a/poky/meta/recipes-support/vte/vte_0.72.0.bb
+++ b/poky/meta/recipes-support/vte/vte_0.72.0.bb
@@ -11,7 +11,7 @@
     file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
 "
 
-DEPENDS = "glib-2.0 gtk+3 libpcre2 libxml2-native gperf-native icu"
+DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu"
 
 GNOMEBASEBUILDCLASS = "meson"
 GIR_MESON_OPTION = 'gir'
diff --git a/poky/scripts/lib/wic/plugins/imager/direct.py b/poky/scripts/lib/wic/plugins/imager/direct.py
index dfaa901..7315d8f 100644
--- a/poky/scripts/lib/wic/plugins/imager/direct.py
+++ b/poky/scripts/lib/wic/plugins/imager/direct.py
@@ -571,11 +571,12 @@
             self._create_partition(self.path, part.type,
                                    parted_fs_type, part.start, part.size_sec)
 
-            if part.part_name:
+            if self.ptable_format == "gpt" and (part.part_name or part.label):
+                partition_label = part.part_name if part.part_name else part.label
                 logger.debug("partition %d: set name to %s",
-                             part.num, part.part_name)
+                             part.num, partition_label)
                 exec_native_cmd("sgdisk --change-name=%d:%s %s" % \
-                                         (part.num, part.part_name,
+                                         (part.num, partition_label,
                                           self.path), self.native_sysroot)
 
             if part.part_type:
@@ -592,13 +593,6 @@
                                 (part.num, part.uuid, self.path),
                                 self.native_sysroot)
 
-            if part.label and self.ptable_format == "gpt":
-                logger.debug("partition %d: set name to %s",
-                             part.num, part.label)
-                exec_native_cmd("parted -s %s name %d %s" % \
-                                (self.path, part.num, part.label),
-                                self.native_sysroot)
-
             if part.active:
                 flag_name = "legacy_boot" if self.ptable_format == 'gpt' else "boot"
                 logger.debug("Set '%s' flag for partition '%s' on disk '%s'",
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index d6aeab2..43c6fd9 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -439,6 +439,13 @@
         logger.debug("Added %d extra blocks to %s to get to %d total blocks",
                      extra_blocks, part.mountpoint, blocks)
 
+        # required for compatibility with certain devices expecting file system
+        # block count to be equal to partition block count
+        if blocks < part.fixed_size:
+            blocks = part.fixed_size
+            logger.debug("Overriding %s to %d total blocks for compatibility",
+                     part.mountpoint, blocks)
+
         # dosfs image, created by mkdosfs
         bootimg = "%s/boot.img" % cr_workdir
 
diff --git a/poky/scripts/rpm2cpio.sh b/poky/scripts/rpm2cpio.sh
index 7cd771b..2034373 100755
--- a/poky/scripts/rpm2cpio.sh
+++ b/poky/scripts/rpm2cpio.sh
@@ -47,7 +47,7 @@
 hdrsize=$rsize
 
 case "$(_dd $offset bs=3 count=1)" in
-	"$(printf '\102\132')"*) _dd $offset | bunzip2 ;; # '\x42\x5a'
+	"$(printf '\102\132')"*) _dd $offset | bzip2 -d ;; # '\x42\x5a'
 	"$(printf '\037\213')"*) _dd $offset | gunzip  ;; # '\x1f\x8b'
 	"$(printf '\375\067')"*) _dd $offset | xzcat   ;; # '\xfd\x37'
 	"$(printf '\135\000')"*) _dd $offset | unlzma  ;; # '\x5d\x00'
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index 09b0ad5..56715c3 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -66,6 +66,7 @@
   MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
   Simplified QEMU command-line options can be passed with:
     nographic - disable video console
+    nonetwork - disable network connectivity
     novga - Disable VGA emulation completely
     sdl - choose the SDL UI frontend
     gtk - choose the Gtk UI frontend
@@ -178,6 +179,7 @@
         self.serialconsole = False
         self.serialstdio = False
         self.nographic = False
+        self.nonetwork = False
         self.sdl = False
         self.gtk = False
         self.gl = False
@@ -384,13 +386,19 @@
                     fst =  m.group(1)
             if fst:
                 self.check_arg_fstype(fst)
-                qb = re.sub('\.' + fst + "$", '', self.rootfs)
-                qb = '%s%s' % (re.sub('\.rootfs$', '', qb), '.qemuboot.conf')
+                qb = re.sub('\.' + fst + "$", '.qemuboot.conf', self.rootfs)
                 if os.path.exists(qb):
                     self.qemuboot = qb
                     self.qbconfload = True
                 else:
-                    logger.warning("%s doesn't exist" % qb)
+                    logger.warning("%s doesn't exist, will try to remove '.rootfs' from filename" % qb)
+                    # They to remove .rootfs (IMAGE_NAME_SUFFIX) as well
+                    qb = re.sub('\.rootfs.qemuboot.conf$', '.qemuboot.conf', qb)
+                    if os.path.exists(qb):
+                        self.qemuboot = qb
+                        self.qbconfload = True
+                    else:
+                        logger.warning("%s doesn't exist" % qb)
             else:
                 raise RunQemuError("Can't find FSTYPE from: %s" % p)
 
@@ -424,6 +432,7 @@
         # are there other scenarios in which we need to support being
         # invoked by bitbake?
         deploy = self.get('DEPLOY_DIR_IMAGE')
+        image_link_name = self.get('IMAGE_LINK_NAME')
         bbchild = deploy and self.get('OE_TMPDIR')
         if bbchild:
             self.set_machine_deploy_dir(arg, deploy)
@@ -448,6 +457,12 @@
         else:
             logger.error("%s not a directory valid DEPLOY_DIR_IMAGE" % deploy_dir_image)
             self.set("MACHINE", arg)
+        if not image_link_name:
+            s = re.search('^IMAGE_LINK_NAME="(.*)"', self.bitbake_e, re.M)
+            if s:
+                image_link_name = s.group(1)
+                self.set("IMAGE_LINK_NAME", image_link_name)
+                logger.debug('Using IMAGE_LINK_NAME = "%s"' % image_link_name)
 
     def set_dri_path(self):
         drivers_path = os.path.join(self.bindir_native, '../lib/dri')
@@ -482,6 +497,8 @@
                 self.check_arg_fstype(arg)
             elif arg == 'nographic':
                 self.nographic = True
+            elif arg == "nonetwork":
+                self.nonetwork = True
             elif arg == 'sdl':
                 self.sdl = True
             elif arg == 'gtk':
@@ -550,11 +567,18 @@
             self.check_arg_machine(unknown_arg)
 
         if not (self.get('DEPLOY_DIR_IMAGE') or self.qbconfload):
-            self.load_bitbake_env()
+            self.load_bitbake_env(target=self.rootfs)
             s = re.search('^DEPLOY_DIR_IMAGE="(.*)"', self.bitbake_e, re.M)
             if s:
                 self.set("DEPLOY_DIR_IMAGE", s.group(1))
 
+        if not self.get('IMAGE_LINK_NAME') and self.rootfs:
+            s = re.search('^IMAGE_LINK_NAME="(.*)"', self.bitbake_e, re.M)
+            if s:
+                image_link_name = s.group(1)
+                self.set("IMAGE_LINK_NAME", image_link_name)
+                logger.debug('Using IMAGE_LINK_NAME = "%s"' % image_link_name)
+
     def check_kvm(self):
         """Check kvm and kvm-host"""
         if not (self.kvm_enabled or self.vhost_enabled):
@@ -660,8 +684,8 @@
 
         if self.rootfs and not os.path.exists(self.rootfs):
             # Lazy rootfs
-            self.rootfs = "%s/%s-%s.%s" % (self.get('DEPLOY_DIR_IMAGE'),
-                    self.rootfs, self.get('MACHINE'),
+            self.rootfs = "%s/%s.%s" % (self.get('DEPLOY_DIR_IMAGE'),
+                    self.get('IMAGE_LINK_NAME'),
                     self.fstype)
         elif not self.rootfs:
             glob_name = '%s/%s*.%s' % (self.get('DEPLOY_DIR_IMAGE'), self.get('IMAGE_NAME'), self.fstype)
@@ -865,8 +889,10 @@
                 machine = self.get('MACHINE')
                 if not machine:
                     machine = os.path.basename(deploy_dir_image)
-                self.qemuboot = "%s/%s-%s.qemuboot.conf" % (deploy_dir_image,
-                        self.rootfs, machine)
+                if not self.get('IMAGE_LINK_NAME'):
+                    raise RunQemuError("IMAGE_LINK_NAME wasn't set to find corresponding .qemuboot.conf file")
+                self.qemuboot = "%s/%s.qemuboot.conf" % (deploy_dir_image,
+                        self.get('IMAGE_LINK_NAME'))
             else:
                 cmd = 'ls -t %s/*.qemuboot.conf' %  deploy_dir_image
                 logger.debug('Running %s...' % cmd)
@@ -1202,7 +1228,8 @@
         self.set('NETWORK_CMD', '%s %s' % (self.network_device.replace('@MAC@', mac), qemu_tap_opt))
 
     def setup_network(self):
-        if self.get('QB_NET') == 'none':
+        if self.nonetwork or self.get('QB_NET') == 'none':
+            self.set('NETWORK_CMD', '-nic none')
             return
         if sys.stdin.isatty():
             self.saved_stty = subprocess.check_output(("stty", "-g")).decode('utf-8').strip()
@@ -1600,7 +1627,7 @@
 
         self.cleaned = True
 
-    def run_bitbake_env(self, mach=None):
+    def run_bitbake_env(self, mach=None, target=''):
         bitbake = shutil.which('bitbake')
         if not bitbake:
             return
@@ -1613,22 +1640,33 @@
             multiconfig = "mc:%s" % multiconfig
 
         if mach:
-            cmd = 'MACHINE=%s bitbake -e %s' % (mach, multiconfig)
+            cmd = 'MACHINE=%s bitbake -e %s %s' % (mach, multiconfig, target)
         else:
-            cmd = 'bitbake -e %s' % multiconfig
+            cmd = 'bitbake -e %s %s' % (multiconfig, target)
 
         logger.info('Running %s...' % cmd)
-        return subprocess.check_output(cmd, shell=True).decode('utf-8')
+        try:
+            return subprocess.check_output(cmd, shell=True).decode('utf-8')
+        except subprocess.CalledProcessError as err:
+            logger.warning("Couldn't run '%s' to gather environment information, maybe the target wasn't an image name, will retry with virtual/kernel as a target:\n%s" % (cmd, err.output.decode('utf-8')))
+            # need something with IMAGE_NAME_SUFFIX/IMAGE_LINK_NAME defined (kernel also inherits image-artifact-names.bbclass)
+            target = 'virtual/kernel'
+            if mach:
+                cmd = 'MACHINE=%s bitbake -e %s %s' % (mach, multiconfig, target)
+            else:
+                cmd = 'bitbake -e %s %s' % (multiconfig, target)
+            try:
+                return subprocess.check_output(cmd, shell=True).decode('utf-8')
+            except subprocess.CalledProcessError as err:
+                logger.warning("Couldn't run '%s' to gather environment information, giving up with 'bitbake -e':\n%s" % (cmd, err.output.decode('utf-8')))
+                return ''
 
-    def load_bitbake_env(self, mach=None):
+
+    def load_bitbake_env(self, mach=None, target=None):
         if self.bitbake_e:
             return
 
-        try:
-            self.bitbake_e = self.run_bitbake_env(mach=mach)
-        except subprocess.CalledProcessError as err:
-            self.bitbake_e = ''
-            logger.warning("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8'))
+        self.bitbake_e = self.run_bitbake_env(mach=mach, target=target)
 
     def validate_combos(self):
         if (self.fstype in self.vmtypes) and self.kernel: